[Search] Deprecate search indices in favour of index management#260210
[Search] Deprecate search indices in favour of index management#260210seialkali merged 11 commits intoelastic:mainfrom
Conversation
ebad0b5 to
359a3bc
Compare
...rch/public/applications/enterprise_search_content/components/connectors/connectors_table.tsx
Show resolved
Hide resolved
x-pack/solutions/search/plugins/enterprise_search/public/index_management_application.tsx
Show resolved
Hide resolved
ApprovabilityVerdict: 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. |
57d1ac8 to
a12bccd
Compare
💔 Build Failed
Failed CI StepsMetrics [docs]
History
|
eadb254 to
4b7f402
Compare
efegurkan
left a comment
There was a problem hiding this comment.
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.
@efegurkan I thought this as well. Definitely one for the a separate PR, as this one is already a monster! |
mattkime
left a comment
There was a problem hiding this comment.
changes look good and work well!
…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) ...
…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>
Summary
This PR deprecates the
search_indicesplugin in favour of the index management plugin. The following changes were made to facilitate this:search_indicesplugin's custom index details and create index pages, consolidating all Search solution index management into the shared platformindex_managementpluginSearch index managementapp registration fromsearch_indicestoenterprise_search, which renders the platformindex_managementplugin's UI within the Search solution layoutIndexDetailsPageRouteextension mechanism fromindex_managementthat allowedsearch_indicesto override the index details route at runtimeSearchIndexManagementLocatorinsearch_navigationthat resolves routes based on chrome style (project vs classic), replacing scatterednavigateToAppcalls and deep link references across Search pluginssearch_homepage,search_playground,search_getting_started,search_inference_endpoints,enterprise_search) to use the new locator for index management linksindex_managementUI and removes tests/page objects for deprecatedsearch_indicesUITo reduce the number of file changes in this PR, the removal of the
search_indicesplugin will be done in a separate PR.Screenshots
Testing
Data Managementin the side nav. Verify it loads atapp/management/data/index_management/indicesand the nav item is highlighted.Create indexon the index list. Verify the new modal opens (not a page redirect). Create an index and confirm it appears.Create an indexbutton (shows when there are no indexes)Data ManagementcardCreate an empty indexmenu item, which is under theAdd databuttonChecklist
Check the PR satisfies following conditions.
Reviewers should verify this PR satisfies this list as well.
Any text added follows EUI's writing guidelines, uses sentence case text and includes [i18n support](https://github.com/elastic/kibana/blob/main/src/platform/packages/shared/kbn-i18n/README.md)Documentation was added for features that require explanation or tutorialsIf a plugin configuration key changed, check if it needs to be allowlisted in the cloud and added to the docker listThis was checked for breaking HTTP API changes, and any breaking changes have been approved by the breaking-change committee. Therelease_note:breakinglabel should be applied in these situations.Flaky Test Runner was used on any tests changedThe PR description includes the appropriate Release Notes section, and the correctrelease_note:*label is applied per the guidelinesReview the backport guidelines and apply applicablebackport:*labels.