Skip to content

[Search] Deprecate search indices in favour of index management#260210

Merged
seialkali merged 11 commits intoelastic:mainfrom
seialkali:deprecate-search-indices
Apr 2, 2026
Merged

[Search] Deprecate search indices in favour of index management#260210
seialkali merged 11 commits intoelastic:mainfrom
seialkali:deprecate-search-indices

Conversation

@seialkali
Copy link
Copy Markdown
Contributor

@seialkali seialkali commented Mar 30, 2026

Summary

This PR deprecates the search_indices plugin in favour of the index management plugin. The following changes were made to facilitate this:

  • Deprecates the search_indices plugin's custom index details and create index pages, consolidating all Search solution index management into the shared platform index_management plugin
  • Moves the Search index management app registration from search_indices to enterprise_search, which renders the platform index_management plugin's UI within the Search solution layout
  • Removes the IndexDetailsPageRoute extension mechanism from index_management that allowed search_indices to override the index details route at runtime
  • Introduces a SearchIndexManagementLocator in search_navigation that resolves routes based on chrome style (project vs classic), replacing scattered navigateToApp calls and deep link references across Search plugins
  • Updates all Search plugins (search_homepage, search_playground, search_getting_started, search_inference_endpoints, enterprise_search) to use the new locator for index management links
  • Updates FTR and Jest tests to validate against platform index_management UI and removes tests/page objects for deprecated search_indices UI

To reduce the number of file changes in this PR, the removal of the search_indices plugin will be done in a separate PR.

Screenshots

Screenshot 2026-03-31 at 12 42 13 Screenshot 2026-03-31 at 12 40 36

Testing

  • Navigation -- With the Search solution active, click Data Management in the side nav. Verify it loads at app/management/data/index_management/indices and the nav item is highlighted.
  • Index Details -- Create an index and navigate to the index details page. Verify that the page loads with the index management plugin's index details page. See screenshot above.
  • Create Index -- Click Create index on the index list. Verify the new modal opens (not a page redirect). Create an index and confirm it appears.
  • Context Menu -- Open the context menu for an index. Verify overview/settings/mapping/stats actions navigate correctly. Verify delete works from the manage button on the details page.
  • Cross-Plugin Links -- Verify these all navigate to the correct index management pages:
    • Search Playground: Create an index button (shows when there are no indexes)
    • Search Homepage: Data Management card
    • Getting Started: Create an empty index menu item, which is under the Add data button
    • Inference Endpoints: When deleting a custom inference endpoint that's in use by an index mapping, the confirm modal should link to the index and should open in new tab
  • Serverless -- Repeat the above in a serverless Search project.

Checklist

Check the PR satisfies following conditions.

Reviewers should verify this PR satisfies this list as well.

@seialkali seialkali force-pushed the deprecate-search-indices branch 6 times, most recently from ebad0b5 to 359a3bc Compare March 31, 2026 11:36
@seialkali seialkali marked this pull request as ready for review March 31, 2026 12:14
@seialkali seialkali requested review from a team as code owners March 31, 2026 12:14
Copy link
Copy Markdown
Member

@csr csr left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

AppEx QA codeowner changes LGTM 👍

@sphilipse sphilipse added backport:skip This PR does not require backporting release_note:feature Makes this part of the condensed release notes Team:Search v9.4.0 labels Mar 31, 2026
Copy link
Copy Markdown
Member

@delanni delanni left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

👍 limits.yml

@macroscopeapp
Copy link
Copy Markdown
Contributor

macroscopeapp bot commented Mar 31, 2026

Approvability

Verdict: Needs human review

This PR is a major architectural refactor that deprecates the standalone 'search indices' application and consolidates functionality into 'index management'. It introduces new routing/locator patterns, modifies navigation trees, and touches multiple plugins across different team ownership domains. The author does not own any of the modified files, and the cross-cutting nature of these changes warrants review by the designated code owners.

You can customize Macroscope's approvability policy. Learn more.

@seialkali seialkali force-pushed the deprecate-search-indices branch 3 times, most recently from 57d1ac8 to a12bccd Compare March 31, 2026 15:31
@seialkali seialkali requested a review from a team as a code owner March 31, 2026 15:31
@elastic-vault-github-plugin-prod elastic-vault-github-plugin-prod bot requested a review from a team as a code owner March 31, 2026 15:55
@elasticmachine
Copy link
Copy Markdown
Contributor

elasticmachine commented Mar 31, 2026

💔 Build Failed

Failed CI Steps

Metrics [docs]

‼️ ERROR: no builds found for mergeBase sha [2f07833]

History

@seialkali seialkali force-pushed the deprecate-search-indices branch from eadb254 to 4b7f402 Compare March 31, 2026 19:36
@seialkali seialkali requested a review from efegurkan March 31, 2026 21:40
Copy link
Copy Markdown
Member

@efegurkan efegurkan left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM.

Checked locally and as extensively as I can.

One thing maybe is to check whether it makes sense to add a state in index management so "create" links can open the modal by default. If so we can try as a separate PR.

@seialkali
Copy link
Copy Markdown
Contributor Author

One thing maybe is to check whether it makes sense to add a state in index management so "create" links can open the modal by default. If so we can try as a separate PR.

@efegurkan I thought this as well. Definitely one for the a separate PR, as this one is already a monster!

Copy link
Copy Markdown

@leathekd leathekd left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Schema lgtm

@seialkali seialkali requested a review from mattkime April 1, 2026 21:16
Copy link
Copy Markdown
Contributor

@mattkime mattkime left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

changes look good and work well!

@seialkali seialkali merged commit 152db2f into elastic:main Apr 2, 2026
21 checks passed
@seialkali seialkali deleted the deprecate-search-indices branch April 2, 2026 08:20
mbondyra added a commit to mbondyra/kibana that referenced this pull request Apr 2, 2026
…heck

* commit 'af66aadafa7470ca8ba3e3edd3793bde81fa4596': (31 commits)
  [Scout] Update test config manifests (elastic#260850)
  [SLO]: register alerts schema embeddable (elastic#256570)
  [Discover][Flyout] Update overview fields table with new prop headerVisibility set to false (elastic#260692)
  [AiButton/Security] Migrate ai-related buttons to use custom styles (elastic#259847)
  [One Workflow] Fix connector step icons falling back to generic plugs in YAML editor (elastic#260785)
  [Agent Builder] Dashboard skill: Guard against editing non-ESQL based panels (elastic#260714)
  Security quality gate Cypress cleanup - Periodic Pipeline (elastic#260820)
  [Search] Deprecate search indices in favour of index management (elastic#260210)
  Upgrade dependency @elastic/charts to v71.4.0 (elastic#260593)
  [Security Solution] [HDQ]: integration-based targeting and descriptor versioning (elastic#258418)
  docs(saved-objects): consolidate docs and document scoped vs system client (elastic#260743)
  Fix observability UIAM config and add CPS observability variant (elastic#260485)
  [Security Solution] Add "matched_indices_count" rule execution metric (elastic#259938)
  [SigEvents] Add callout with working promote action. (elastic#260433)
  [Alerting V2] Episode table actions (elastic#260195)
  [Automatic Migration] Add ability to skip Reference Set step in QRadar upload workflow (elastic#259959)
  [Rules] KQL-to-DSL conversion without data view produces incorrect queries for keyword fields for Metric threshold rule (elastic#260046)
  Update dependency lightningcss to v1.32.0 (main) (elastic#259017)
  Update postcss (main) (elastic#255420)
  Migrate server-side apm.addLabels to OTel dual-write helpers (elastic#259619)
  ...
paulinashakirova pushed a commit to paulinashakirova/kibana that referenced this pull request Apr 2, 2026
…tic#260210)

## Summary

This PR deprecates the `search_indices` plugin in favour of the index
management plugin. The following changes were made to facilitate this:

- Deprecates the `search_indices` plugin's custom index details and
create index pages, consolidating all Search solution index management
into the shared platform `index_management` plugin
- Moves the `Search index management` app registration from
`search_indices` to `enterprise_search`, which renders the platform
`index_management` plugin's UI within the Search solution layout
- Removes the `IndexDetailsPageRoute` extension mechanism from
`index_management` that allowed `search_indices` to override the index
details route at runtime
- Introduces a `SearchIndexManagementLocator` in `search_navigation`
that resolves routes based on chrome style (project vs classic),
replacing scattered `navigateToApp` calls and deep link references
across Search plugins
- Updates all Search plugins (`search_homepage`, `search_playground`,
`search_getting_started`, `search_inference_endpoints`,
`enterprise_search`) to use the new locator for index management links
- Updates FTR and Jest tests to validate against platform
`index_management` UI and removes tests/page objects for deprecated
`search_indices` UI

To reduce the number of file changes in this PR, the removal of the
`search_indices` plugin will be done in a separate PR.

### Screenshots

<img width="1741" height="1223" alt="Screenshot 2026-03-31 at 12 42 13"
src="https://github.com/user-attachments/assets/eda2d842-d14d-4f91-b463-f999239785a9"
/>
<img width="1509" height="906" alt="Screenshot 2026-03-31 at 12 40 36"
src="https://github.com/user-attachments/assets/f756a5bb-07e7-421c-867c-4dcba1c63ba4"
/>


### Testing

- [ ] **Navigation** -- With the Search solution active, click `Data
Management` in the side nav. Verify it loads at
`app/management/data/index_management/indices` and the nav item is
highlighted.
- [ ] **Index Details** -- Create an index and navigate to the index
details page. Verify that the page loads with the index management
plugin's index details page. See screenshot above.
- [ ] **Create Index** -- Click `Create index` on the index list. Verify
the new modal opens (not a page redirect). Create an index and confirm
it appears.
- [ ] **Context Menu** -- Open the context menu for an index. Verify
overview/settings/mapping/stats actions navigate correctly. Verify
delete works from the manage button on the details page.
- [ ] **Cross-Plugin Links** -- Verify these all navigate to the correct
index management pages:
- [ ] Search Playground: `Create an index` button (shows when there are
no indexes)
  - [ ] Search Homepage: `Data Management` card
- [ ] Getting Started: `Create an empty index` menu item, which is under
the `Add data` button
- [ ] Inference Endpoints: When deleting a custom inference endpoint
that's in use by an index mapping, the confirm modal should link to the
index and should open in new tab
- [ ] **Serverless** -- Repeat the above in a serverless Search project.

### Checklist

Check the PR satisfies following conditions. 

Reviewers should verify this PR satisfies this list as well.

- [ ] ~Any text added follows [EUI's writing
guidelines](https://elastic.github.io/eui/#/guidelines/writing), uses
sentence case text and includes [i18n
support]~(https://github.com/elastic/kibana/blob/main/src/platform/packages/shared/kbn-i18n/README.md)
- [ ]
~[Documentation](https://www.elastic.co/guide/en/kibana/master/development-documentation.html)
was added for features that require explanation or tutorials~
- [x] [Unit or functional
tests](https://www.elastic.co/guide/en/kibana/master/development-tests.html)
were updated or added to match the most common scenarios
- [ ] ~If a plugin configuration key changed, check if it needs to be
allowlisted in the cloud and added to the [docker
list](https://github.com/elastic/kibana/blob/main/src/dev/build/tasks/os_packages/docker_generator/resources/base/bin/kibana-docker)~
- [ ] ~This was checked for breaking HTTP API changes, and any breaking
changes have been approved by the breaking-change committee. The
`release_note:breaking` label should be applied in these situations.~
- [ ] ~[Flaky Test
Runner](https://ci-stats.kibana.dev/trigger_flaky_test_runner/1) was
used on any tests changed~
- [ ] ~The PR description includes the appropriate Release Notes
section, and the correct `release_note:*` label is applied per the
[guidelines](https://www.elastic.co/guide/en/kibana/master/contributing.html#kibana-release-notes-process)~
- [ ] ~Review the [backport
guidelines](https://docs.google.com/document/d/1VyN5k91e5OVumlc0Gb9RPa3h1ewuPE705nRtioPiTvY/edit?usp=sharing)
and apply applicable `backport:*` labels.~

---------

Co-authored-by: kibanamachine <42973632+kibanamachine@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

backport:skip This PR does not require backporting release_note:feature Makes this part of the condensed release notes Team:Search v9.4.0

Projects

None yet

Development

Successfully merging this pull request may close these issues.