[Search] Reduce polling on Index Details page#251446
Merged
seialkali merged 1 commit intoelastic:mainfrom Feb 4, 2026
Merged
Conversation
37f3f14 to
4fdd45b
Compare
Contributor
💚 Build Succeeded
Metrics [docs]Async chunks
History
|
wildemat
approved these changes
Feb 3, 2026
Contributor
|
Starting backport for target branches: 9.2, 9.3 https://github.com/elastic/kibana/actions/runs/21669114219 |
kibanamachine
pushed a commit
to kibanamachine/kibana
that referenced
this pull request
Feb 4, 2026
## Summary
This change improves how the Index Details page fetches data by reducing
unnecessary polling to backend APIs. Previously, the page repeatedly
polled two endpoints to keep index metadata up to date, even when the
data was not actively changing or required for user interaction.
As part of this update, we reviewed the polling strategy used for:
`GET /api/index_management/mapping/{index_name}`
`GET /internal/index_management/indices/{index_name}`
`POST /internal/search_indices/${indexName}/documents/search`
and adjusted the behavior to better align with how the data is used on
the page.
### What changed
- Polling behavior has been reduced or scoped so that requests are only
made on initial load, on window focus, and when requested.
- A `Refresh data` button was added to allow users to request up to date
data.
- `useUserPrivilegesQuery` no longer refetches on window focus, which is
the default behavior.
- The `queryKey` in `useUserPrivilegesQuery` has been updated to add the
`indexName`.
### Screenshots
**Index with documents**
<img width="700" height="828" alt="Screenshot 2026-02-03 at 13 24 12"
src="https://github.com/user-attachments/assets/c8a99e1e-4f67-4bfd-9b7a-4c7490f8cb7d"
/>
**Index without documents**
<img width="700" height="829" alt="Screenshot 2026-02-03 at 13 24 26"
src="https://github.com/user-attachments/assets/8d752199-2ecf-47e6-b47e-f1966590f0c2"
/>
### Checklist
Check the PR satisfies following conditions.
Reviewers should verify this PR satisfies this list as well.
- [x] 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~
- [ ] ~[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~
- [x] 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)
- [x] Review the [backport
guidelines](https://docs.google.com/document/d/1VyN5k91e5OVumlc0Gb9RPa3h1ewuPE705nRtioPiTvY/edit?usp=sharing)
and apply applicable `backport:*` labels.
## Release note
Reduced background polling on the Index Details page to avoid
unnecessary API requests.
(cherry picked from commit b5e4dbe)
Contributor
💔 Some backports could not be created
Note: Successful backport PRs will be merged automatically after passing CI. Manual backportTo create the backport manually run: Questions ?Please refer to the Backport tool documentation |
kibanamachine
added a commit
that referenced
this pull request
Feb 4, 2026
# Backport This will backport the following commits from `main` to `9.3`: - [[Search] Reduce polling on Index Details page (#251446)](#251446) <!--- Backport version: 9.6.6 --> ### Questions ? Please refer to the [Backport tool documentation](https://github.com/sorenlouv/backport) <!--BACKPORT [{"author":{"name":"Brittany","email":"seialkali@gmail.com"},"sourceCommit":{"committedDate":"2026-02-04T11:09:01Z","message":"[Search] Reduce polling on Index Details page (#251446)\n\n## Summary\n\nThis change improves how the Index Details page fetches data by reducing\nunnecessary polling to backend APIs. Previously, the page repeatedly\npolled two endpoints to keep index metadata up to date, even when the\ndata was not actively changing or required for user interaction.\n\nAs part of this update, we reviewed the polling strategy used for:\n\n`GET /api/index_management/mapping/{index_name}`\n`GET /internal/index_management/indices/{index_name}`\n`POST /internal/search_indices/${indexName}/documents/search`\n\nand adjusted the behavior to better align with how the data is used on\nthe page.\n\n### What changed\n- Polling behavior has been reduced or scoped so that requests are only\nmade on initial load, on window focus, and when requested.\n- A `Refresh data` button was added to allow users to request up to date\ndata.\n- `useUserPrivilegesQuery` no longer refetches on window focus, which is\nthe default behavior.\n- The `queryKey` in `useUserPrivilegesQuery` has been updated to add the\n`indexName`.\n\n### Screenshots\n\n**Index with documents**\n<img width=\"700\" height=\"828\" alt=\"Screenshot 2026-02-03 at 13 24 12\"\nsrc=\"https://github.com/user-attachments/assets/c8a99e1e-4f67-4bfd-9b7a-4c7490f8cb7d\"\n/>\n\n**Index without documents**\n<img width=\"700\" height=\"829\" alt=\"Screenshot 2026-02-03 at 13 24 26\"\nsrc=\"https://github.com/user-attachments/assets/8d752199-2ecf-47e6-b47e-f1966590f0c2\"\n/>\n\n### Checklist\n\nCheck the PR satisfies following conditions. \n\nReviewers should verify this PR satisfies this list as well.\n\n- [x] Any text added follows [EUI's writing\nguidelines](https://elastic.github.io/eui/#/guidelines/writing), uses\nsentence case text and includes [i18n\nsupport](https://github.com/elastic/kibana/blob/main/src/platform/packages/shared/kbn-i18n/README.md)\n- [ ]\n~[Documentation](https://www.elastic.co/guide/en/kibana/master/development-documentation.html)\nwas added for features that require explanation or tutorials~\n- [ ] ~[Unit or functional\ntests](https://www.elastic.co/guide/en/kibana/master/development-tests.html)\nwere updated or added to match the most common scenarios~\n- [ ] ~If a plugin configuration key changed, check if it needs to be\nallowlisted in the cloud and added to the [docker\nlist](https://github.com/elastic/kibana/blob/main/src/dev/build/tasks/os_packages/docker_generator/resources/base/bin/kibana-docker)~\n- [ ] ~This was checked for breaking HTTP API changes, and any breaking\nchanges have been approved by the breaking-change committee. The\n`release_note:breaking` label should be applied in these situations.~\n- [ ] ~[Flaky Test\nRunner](https://ci-stats.kibana.dev/trigger_flaky_test_runner/1) was\nused on any tests changed~\n- [x] The PR description includes the appropriate Release Notes section,\nand the correct `release_note:*` label is applied per the\n[guidelines](https://www.elastic.co/guide/en/kibana/master/contributing.html#kibana-release-notes-process)\n- [x] Review the [backport\nguidelines](https://docs.google.com/document/d/1VyN5k91e5OVumlc0Gb9RPa3h1ewuPE705nRtioPiTvY/edit?usp=sharing)\nand apply applicable `backport:*` labels.\n\n## Release note\n\nReduced background polling on the Index Details page to avoid\nunnecessary API requests.","sha":"b5e4dbeade4a97d5a98cfbdbb6eff44ceee1a137","branchLabelMapping":{"^v9.4.0$":"main","^v(\\d+).(\\d+).\\d+$":"$1.$2"}},"sourcePullRequest":{"labels":["release_note:fix","Team:Search","backport:version","v9.4.0","v9.2.5","v9.3.1"],"title":"[Search] Reduce polling on Index Details page","number":251446,"url":"https://github.com/elastic/kibana/pull/251446","mergeCommit":{"message":"[Search] Reduce polling on Index Details page (#251446)\n\n## Summary\n\nThis change improves how the Index Details page fetches data by reducing\nunnecessary polling to backend APIs. Previously, the page repeatedly\npolled two endpoints to keep index metadata up to date, even when the\ndata was not actively changing or required for user interaction.\n\nAs part of this update, we reviewed the polling strategy used for:\n\n`GET /api/index_management/mapping/{index_name}`\n`GET /internal/index_management/indices/{index_name}`\n`POST /internal/search_indices/${indexName}/documents/search`\n\nand adjusted the behavior to better align with how the data is used on\nthe page.\n\n### What changed\n- Polling behavior has been reduced or scoped so that requests are only\nmade on initial load, on window focus, and when requested.\n- A `Refresh data` button was added to allow users to request up to date\ndata.\n- `useUserPrivilegesQuery` no longer refetches on window focus, which is\nthe default behavior.\n- The `queryKey` in `useUserPrivilegesQuery` has been updated to add the\n`indexName`.\n\n### Screenshots\n\n**Index with documents**\n<img width=\"700\" height=\"828\" alt=\"Screenshot 2026-02-03 at 13 24 12\"\nsrc=\"https://github.com/user-attachments/assets/c8a99e1e-4f67-4bfd-9b7a-4c7490f8cb7d\"\n/>\n\n**Index without documents**\n<img width=\"700\" height=\"829\" alt=\"Screenshot 2026-02-03 at 13 24 26\"\nsrc=\"https://github.com/user-attachments/assets/8d752199-2ecf-47e6-b47e-f1966590f0c2\"\n/>\n\n### Checklist\n\nCheck the PR satisfies following conditions. \n\nReviewers should verify this PR satisfies this list as well.\n\n- [x] Any text added follows [EUI's writing\nguidelines](https://elastic.github.io/eui/#/guidelines/writing), uses\nsentence case text and includes [i18n\nsupport](https://github.com/elastic/kibana/blob/main/src/platform/packages/shared/kbn-i18n/README.md)\n- [ ]\n~[Documentation](https://www.elastic.co/guide/en/kibana/master/development-documentation.html)\nwas added for features that require explanation or tutorials~\n- [ ] ~[Unit or functional\ntests](https://www.elastic.co/guide/en/kibana/master/development-tests.html)\nwere updated or added to match the most common scenarios~\n- [ ] ~If a plugin configuration key changed, check if it needs to be\nallowlisted in the cloud and added to the [docker\nlist](https://github.com/elastic/kibana/blob/main/src/dev/build/tasks/os_packages/docker_generator/resources/base/bin/kibana-docker)~\n- [ ] ~This was checked for breaking HTTP API changes, and any breaking\nchanges have been approved by the breaking-change committee. The\n`release_note:breaking` label should be applied in these situations.~\n- [ ] ~[Flaky Test\nRunner](https://ci-stats.kibana.dev/trigger_flaky_test_runner/1) was\nused on any tests changed~\n- [x] The PR description includes the appropriate Release Notes section,\nand the correct `release_note:*` label is applied per the\n[guidelines](https://www.elastic.co/guide/en/kibana/master/contributing.html#kibana-release-notes-process)\n- [x] Review the [backport\nguidelines](https://docs.google.com/document/d/1VyN5k91e5OVumlc0Gb9RPa3h1ewuPE705nRtioPiTvY/edit?usp=sharing)\nand apply applicable `backport:*` labels.\n\n## Release note\n\nReduced background polling on the Index Details page to avoid\nunnecessary API requests.","sha":"b5e4dbeade4a97d5a98cfbdbb6eff44ceee1a137"}},"sourceBranch":"main","suggestedTargetBranches":["9.2","9.3"],"targetPullRequestStates":[{"branch":"main","label":"v9.4.0","branchLabelMappingKey":"^v9.4.0$","isSourceBranch":true,"state":"MERGED","url":"https://github.com/elastic/kibana/pull/251446","number":251446,"mergeCommit":{"message":"[Search] Reduce polling on Index Details page (#251446)\n\n## Summary\n\nThis change improves how the Index Details page fetches data by reducing\nunnecessary polling to backend APIs. Previously, the page repeatedly\npolled two endpoints to keep index metadata up to date, even when the\ndata was not actively changing or required for user interaction.\n\nAs part of this update, we reviewed the polling strategy used for:\n\n`GET /api/index_management/mapping/{index_name}`\n`GET /internal/index_management/indices/{index_name}`\n`POST /internal/search_indices/${indexName}/documents/search`\n\nand adjusted the behavior to better align with how the data is used on\nthe page.\n\n### What changed\n- Polling behavior has been reduced or scoped so that requests are only\nmade on initial load, on window focus, and when requested.\n- A `Refresh data` button was added to allow users to request up to date\ndata.\n- `useUserPrivilegesQuery` no longer refetches on window focus, which is\nthe default behavior.\n- The `queryKey` in `useUserPrivilegesQuery` has been updated to add the\n`indexName`.\n\n### Screenshots\n\n**Index with documents**\n<img width=\"700\" height=\"828\" alt=\"Screenshot 2026-02-03 at 13 24 12\"\nsrc=\"https://github.com/user-attachments/assets/c8a99e1e-4f67-4bfd-9b7a-4c7490f8cb7d\"\n/>\n\n**Index without documents**\n<img width=\"700\" height=\"829\" alt=\"Screenshot 2026-02-03 at 13 24 26\"\nsrc=\"https://github.com/user-attachments/assets/8d752199-2ecf-47e6-b47e-f1966590f0c2\"\n/>\n\n### Checklist\n\nCheck the PR satisfies following conditions. \n\nReviewers should verify this PR satisfies this list as well.\n\n- [x] Any text added follows [EUI's writing\nguidelines](https://elastic.github.io/eui/#/guidelines/writing), uses\nsentence case text and includes [i18n\nsupport](https://github.com/elastic/kibana/blob/main/src/platform/packages/shared/kbn-i18n/README.md)\n- [ ]\n~[Documentation](https://www.elastic.co/guide/en/kibana/master/development-documentation.html)\nwas added for features that require explanation or tutorials~\n- [ ] ~[Unit or functional\ntests](https://www.elastic.co/guide/en/kibana/master/development-tests.html)\nwere updated or added to match the most common scenarios~\n- [ ] ~If a plugin configuration key changed, check if it needs to be\nallowlisted in the cloud and added to the [docker\nlist](https://github.com/elastic/kibana/blob/main/src/dev/build/tasks/os_packages/docker_generator/resources/base/bin/kibana-docker)~\n- [ ] ~This was checked for breaking HTTP API changes, and any breaking\nchanges have been approved by the breaking-change committee. The\n`release_note:breaking` label should be applied in these situations.~\n- [ ] ~[Flaky Test\nRunner](https://ci-stats.kibana.dev/trigger_flaky_test_runner/1) was\nused on any tests changed~\n- [x] The PR description includes the appropriate Release Notes section,\nand the correct `release_note:*` label is applied per the\n[guidelines](https://www.elastic.co/guide/en/kibana/master/contributing.html#kibana-release-notes-process)\n- [x] Review the [backport\nguidelines](https://docs.google.com/document/d/1VyN5k91e5OVumlc0Gb9RPa3h1ewuPE705nRtioPiTvY/edit?usp=sharing)\nand apply applicable `backport:*` labels.\n\n## Release note\n\nReduced background polling on the Index Details page to avoid\nunnecessary API requests.","sha":"b5e4dbeade4a97d5a98cfbdbb6eff44ceee1a137"}},{"branch":"9.2","label":"v9.2.5","branchLabelMappingKey":"^v(\\d+).(\\d+).\\d+$","isSourceBranch":false,"state":"NOT_CREATED"},{"branch":"9.3","label":"v9.3.1","branchLabelMappingKey":"^v(\\d+).(\\d+).\\d+$","isSourceBranch":false,"state":"NOT_CREATED"}]}] BACKPORT--> Co-authored-by: Brittany <seialkali@gmail.com>
Contributor
Author
💚 All backports created successfully
Note: Successful backport PRs will be merged automatically after passing CI. Questions ?Please refer to the Backport tool documentation |
seialkali
added a commit
to seialkali/kibana
that referenced
this pull request
Feb 4, 2026
## Summary
This change improves how the Index Details page fetches data by reducing
unnecessary polling to backend APIs. Previously, the page repeatedly
polled two endpoints to keep index metadata up to date, even when the
data was not actively changing or required for user interaction.
As part of this update, we reviewed the polling strategy used for:
`GET /api/index_management/mapping/{index_name}`
`GET /internal/index_management/indices/{index_name}`
`POST /internal/search_indices/${indexName}/documents/search`
and adjusted the behavior to better align with how the data is used on
the page.
### What changed
- Polling behavior has been reduced or scoped so that requests are only
made on initial load, on window focus, and when requested.
- A `Refresh data` button was added to allow users to request up to date
data.
- `useUserPrivilegesQuery` no longer refetches on window focus, which is
the default behavior.
- The `queryKey` in `useUserPrivilegesQuery` has been updated to add the
`indexName`.
### Screenshots
**Index with documents**
<img width="700" height="828" alt="Screenshot 2026-02-03 at 13 24 12"
src="https://github.com/user-attachments/assets/c8a99e1e-4f67-4bfd-9b7a-4c7490f8cb7d"
/>
**Index without documents**
<img width="700" height="829" alt="Screenshot 2026-02-03 at 13 24 26"
src="https://github.com/user-attachments/assets/8d752199-2ecf-47e6-b47e-f1966590f0c2"
/>
### Checklist
Check the PR satisfies following conditions.
Reviewers should verify this PR satisfies this list as well.
- [x] 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~
- [ ] ~[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~
- [x] 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)
- [x] Review the [backport
guidelines](https://docs.google.com/document/d/1VyN5k91e5OVumlc0Gb9RPa3h1ewuPE705nRtioPiTvY/edit?usp=sharing)
and apply applicable `backport:*` labels.
## Release note
Reduced background polling on the Index Details page to avoid
unnecessary API requests.
(cherry picked from commit b5e4dbe)
# Conflicts:
# x-pack/solutions/search/plugins/search_indices/public/components/indices/details_page_data.tsx
seialkali
added a commit
to seialkali/kibana
that referenced
this pull request
Feb 4, 2026
This change improves how the Index Details page fetches data by reducing
unnecessary polling to backend APIs. Previously, the page repeatedly
polled two endpoints to keep index metadata up to date, even when the
data was not actively changing or required for user interaction.
As part of this update, we reviewed the polling strategy used for:
`GET /api/index_management/mapping/{index_name}`
`GET /internal/index_management/indices/{index_name}`
`POST /internal/search_indices/${indexName}/documents/search`
and adjusted the behavior to better align with how the data is used on
the page.
- Polling behavior has been reduced or scoped so that requests are only
made on initial load, on window focus, and when requested.
- A `Refresh data` button was added to allow users to request up to date
data.
- `useUserPrivilegesQuery` no longer refetches on window focus, which is
the default behavior.
- The `queryKey` in `useUserPrivilegesQuery` has been updated to add the
`indexName`.
**Index with documents**
<img width="700" height="828" alt="Screenshot 2026-02-03 at 13 24 12"
src="https://github.com/user-attachments/assets/c8a99e1e-4f67-4bfd-9b7a-4c7490f8cb7d"
/>
**Index without documents**
<img width="700" height="829" alt="Screenshot 2026-02-03 at 13 24 26"
src="https://github.com/user-attachments/assets/8d752199-2ecf-47e6-b47e-f1966590f0c2"
/>
Check the PR satisfies following conditions.
Reviewers should verify this PR satisfies this list as well.
- [x] 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~
- [ ] ~[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~
- [x] 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)
- [x] Review the [backport
guidelines](https://docs.google.com/document/d/1VyN5k91e5OVumlc0Gb9RPa3h1ewuPE705nRtioPiTvY/edit?usp=sharing)
and apply applicable `backport:*` labels.
Reduced background polling on the Index Details page to avoid
unnecessary API requests.
(cherry picked from commit b5e4dbe)
seialkali
added a commit
to seialkali/kibana
that referenced
this pull request
Feb 4, 2026
This change improves how the Index Details page fetches data by reducing
unnecessary polling to backend APIs. Previously, the page repeatedly
polled two endpoints to keep index metadata up to date, even when the
data was not actively changing or required for user interaction.
As part of this update, we reviewed the polling strategy used for:
`GET /api/index_management/mapping/{index_name}`
`GET /internal/index_management/indices/{index_name}`
`POST /internal/search_indices/${indexName}/documents/search`
and adjusted the behavior to better align with how the data is used on
the page.
- Polling behavior has been reduced or scoped so that requests are only
made on initial load, on window focus, and when requested.
- A `Refresh data` button was added to allow users to request up to date
data.
- `useUserPrivilegesQuery` no longer refetches on window focus, which is
the default behavior.
- The `queryKey` in `useUserPrivilegesQuery` has been updated to add the
`indexName`.
**Index with documents**
<img width="700" height="828" alt="Screenshot 2026-02-03 at 13 24 12"
src="https://github.com/user-attachments/assets/c8a99e1e-4f67-4bfd-9b7a-4c7490f8cb7d"
/>
**Index without documents**
<img width="700" height="829" alt="Screenshot 2026-02-03 at 13 24 26"
src="https://github.com/user-attachments/assets/8d752199-2ecf-47e6-b47e-f1966590f0c2"
/>
Check the PR satisfies following conditions.
Reviewers should verify this PR satisfies this list as well.
- [x] 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~
- [ ] ~[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~
- [x] 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)
- [x] Review the [backport
guidelines](https://docs.google.com/document/d/1VyN5k91e5OVumlc0Gb9RPa3h1ewuPE705nRtioPiTvY/edit?usp=sharing)
and apply applicable `backport:*` labels.
Reduced background polling on the Index Details page to avoid
unnecessary API requests.
(cherry picked from commit b5e4dbe)
seialkali
added a commit
that referenced
this pull request
Feb 4, 2026
# Backport This will backport the following commits from `main` to `9.2`: - [[Search] Reduce polling on Index Details page (#251446)](#251446) <!--- Backport version: 10.2.0 --> ### Questions ? Please refer to the [Backport tool documentation](https://github.com/sorenlouv/backport) <!--BACKPORT [{"author":{"name":"Brittany","email":"seialkali@gmail.com"},"sourceCommit":{"committedDate":"2026-02-04T11:09:01Z","message":"[Search] Reduce polling on Index Details page (#251446)\n\n## Summary\n\nThis change improves how the Index Details page fetches data by reducing\nunnecessary polling to backend APIs. Previously, the page repeatedly\npolled two endpoints to keep index metadata up to date, even when the\ndata was not actively changing or required for user interaction.\n\nAs part of this update, we reviewed the polling strategy used for:\n\n`GET /api/index_management/mapping/{index_name}`\n`GET /internal/index_management/indices/{index_name}`\n`POST /internal/search_indices/${indexName}/documents/search`\n\nand adjusted the behavior to better align with how the data is used on\nthe page.\n\n### What changed\n- Polling behavior has been reduced or scoped so that requests are only\nmade on initial load, on window focus, and when requested.\n- A `Refresh data` button was added to allow users to request up to date\ndata.\n- `useUserPrivilegesQuery` no longer refetches on window focus, which is\nthe default behavior.\n- The `queryKey` in `useUserPrivilegesQuery` has been updated to add the\n`indexName`.\n\n### Screenshots\n\n**Index with documents**\n<img width=\"700\" height=\"828\" alt=\"Screenshot 2026-02-03 at 13 24 12\"\nsrc=\"https://github.com/user-attachments/assets/c8a99e1e-4f67-4bfd-9b7a-4c7490f8cb7d\"\n/>\n\n**Index without documents**\n<img width=\"700\" height=\"829\" alt=\"Screenshot 2026-02-03 at 13 24 26\"\nsrc=\"https://github.com/user-attachments/assets/8d752199-2ecf-47e6-b47e-f1966590f0c2\"\n/>\n\n### Checklist\n\nCheck the PR satisfies following conditions. \n\nReviewers should verify this PR satisfies this list as well.\n\n- [x] Any text added follows [EUI's writing\nguidelines](https://elastic.github.io/eui/#/guidelines/writing), uses\nsentence case text and includes [i18n\nsupport](https://github.com/elastic/kibana/blob/main/src/platform/packages/shared/kbn-i18n/README.md)\n- [ ]\n~[Documentation](https://www.elastic.co/guide/en/kibana/master/development-documentation.html)\nwas added for features that require explanation or tutorials~\n- [ ] ~[Unit or functional\ntests](https://www.elastic.co/guide/en/kibana/master/development-tests.html)\nwere updated or added to match the most common scenarios~\n- [ ] ~If a plugin configuration key changed, check if it needs to be\nallowlisted in the cloud and added to the [docker\nlist](https://github.com/elastic/kibana/blob/main/src/dev/build/tasks/os_packages/docker_generator/resources/base/bin/kibana-docker)~\n- [ ] ~This was checked for breaking HTTP API changes, and any breaking\nchanges have been approved by the breaking-change committee. The\n`release_note:breaking` label should be applied in these situations.~\n- [ ] ~[Flaky Test\nRunner](https://ci-stats.kibana.dev/trigger_flaky_test_runner/1) was\nused on any tests changed~\n- [x] The PR description includes the appropriate Release Notes section,\nand the correct `release_note:*` label is applied per the\n[guidelines](https://www.elastic.co/guide/en/kibana/master/contributing.html#kibana-release-notes-process)\n- [x] Review the [backport\nguidelines](https://docs.google.com/document/d/1VyN5k91e5OVumlc0Gb9RPa3h1ewuPE705nRtioPiTvY/edit?usp=sharing)\nand apply applicable `backport:*` labels.\n\n## Release note\n\nReduced background polling on the Index Details page to avoid\nunnecessary API requests.","sha":"b5e4dbeade4a97d5a98cfbdbb6eff44ceee1a137","branchLabelMapping":{"^v9.4.0$":"main","^v(\\d+).(\\d+).\\d+$":"$1.$2"}},"sourcePullRequest":{"labels":["release_note:fix","Team:Search","backport:version","v9.3.0","v9.4.0","v9.2.5","v9.3.1"],"title":"[Search] Reduce polling on Index Details page","number":251446,"url":"https://github.com/elastic/kibana/pull/251446","mergeCommit":{"message":"[Search] Reduce polling on Index Details page (#251446)\n\n## Summary\n\nThis change improves how the Index Details page fetches data by reducing\nunnecessary polling to backend APIs. Previously, the page repeatedly\npolled two endpoints to keep index metadata up to date, even when the\ndata was not actively changing or required for user interaction.\n\nAs part of this update, we reviewed the polling strategy used for:\n\n`GET /api/index_management/mapping/{index_name}`\n`GET /internal/index_management/indices/{index_name}`\n`POST /internal/search_indices/${indexName}/documents/search`\n\nand adjusted the behavior to better align with how the data is used on\nthe page.\n\n### What changed\n- Polling behavior has been reduced or scoped so that requests are only\nmade on initial load, on window focus, and when requested.\n- A `Refresh data` button was added to allow users to request up to date\ndata.\n- `useUserPrivilegesQuery` no longer refetches on window focus, which is\nthe default behavior.\n- The `queryKey` in `useUserPrivilegesQuery` has been updated to add the\n`indexName`.\n\n### Screenshots\n\n**Index with documents**\n<img width=\"700\" height=\"828\" alt=\"Screenshot 2026-02-03 at 13 24 12\"\nsrc=\"https://github.com/user-attachments/assets/c8a99e1e-4f67-4bfd-9b7a-4c7490f8cb7d\"\n/>\n\n**Index without documents**\n<img width=\"700\" height=\"829\" alt=\"Screenshot 2026-02-03 at 13 24 26\"\nsrc=\"https://github.com/user-attachments/assets/8d752199-2ecf-47e6-b47e-f1966590f0c2\"\n/>\n\n### Checklist\n\nCheck the PR satisfies following conditions. \n\nReviewers should verify this PR satisfies this list as well.\n\n- [x] Any text added follows [EUI's writing\nguidelines](https://elastic.github.io/eui/#/guidelines/writing), uses\nsentence case text and includes [i18n\nsupport](https://github.com/elastic/kibana/blob/main/src/platform/packages/shared/kbn-i18n/README.md)\n- [ ]\n~[Documentation](https://www.elastic.co/guide/en/kibana/master/development-documentation.html)\nwas added for features that require explanation or tutorials~\n- [ ] ~[Unit or functional\ntests](https://www.elastic.co/guide/en/kibana/master/development-tests.html)\nwere updated or added to match the most common scenarios~\n- [ ] ~If a plugin configuration key changed, check if it needs to be\nallowlisted in the cloud and added to the [docker\nlist](https://github.com/elastic/kibana/blob/main/src/dev/build/tasks/os_packages/docker_generator/resources/base/bin/kibana-docker)~\n- [ ] ~This was checked for breaking HTTP API changes, and any breaking\nchanges have been approved by the breaking-change committee. The\n`release_note:breaking` label should be applied in these situations.~\n- [ ] ~[Flaky Test\nRunner](https://ci-stats.kibana.dev/trigger_flaky_test_runner/1) was\nused on any tests changed~\n- [x] The PR description includes the appropriate Release Notes section,\nand the correct `release_note:*` label is applied per the\n[guidelines](https://www.elastic.co/guide/en/kibana/master/contributing.html#kibana-release-notes-process)\n- [x] Review the [backport\nguidelines](https://docs.google.com/document/d/1VyN5k91e5OVumlc0Gb9RPa3h1ewuPE705nRtioPiTvY/edit?usp=sharing)\nand apply applicable `backport:*` labels.\n\n## Release note\n\nReduced background polling on the Index Details page to avoid\nunnecessary API requests.","sha":"b5e4dbeade4a97d5a98cfbdbb6eff44ceee1a137"}},"sourceBranch":"main","suggestedTargetBranches":["9.2"],"targetPullRequestStates":[{"branch":"9.3","label":"v9.3.0","branchLabelMappingKey":"^v(\\d+).(\\d+).\\d+$","isSourceBranch":false,"url":"https://github.com/elastic/kibana/pull/251633","number":251633,"state":"MERGED","mergeCommit":{"sha":"d3c688337785dc583b8a60a47ee873cfca79a999","message":"[9.3] [Search] Reduce polling on Index Details page (#251446) (#251633)\n\n# Backport\n\nThis will backport the following commits from `main` to `9.3`:\n- [[Search] Reduce polling on Index Details page\n(#251446)](https://github.com/elastic/kibana/pull/251446)\n\n\n\n### Questions ?\nPlease refer to the [Backport tool\ndocumentation](https://github.com/sorenlouv/backport)\n\n\n\nCo-authored-by: Brittany <seialkali@gmail.com>"}},{"branch":"main","label":"v9.4.0","branchLabelMappingKey":"^v9.4.0$","isSourceBranch":true,"state":"MERGED","url":"https://github.com/elastic/kibana/pull/251446","number":251446,"mergeCommit":{"message":"[Search] Reduce polling on Index Details page (#251446)\n\n## Summary\n\nThis change improves how the Index Details page fetches data by reducing\nunnecessary polling to backend APIs. Previously, the page repeatedly\npolled two endpoints to keep index metadata up to date, even when the\ndata was not actively changing or required for user interaction.\n\nAs part of this update, we reviewed the polling strategy used for:\n\n`GET /api/index_management/mapping/{index_name}`\n`GET /internal/index_management/indices/{index_name}`\n`POST /internal/search_indices/${indexName}/documents/search`\n\nand adjusted the behavior to better align with how the data is used on\nthe page.\n\n### What changed\n- Polling behavior has been reduced or scoped so that requests are only\nmade on initial load, on window focus, and when requested.\n- A `Refresh data` button was added to allow users to request up to date\ndata.\n- `useUserPrivilegesQuery` no longer refetches on window focus, which is\nthe default behavior.\n- The `queryKey` in `useUserPrivilegesQuery` has been updated to add the\n`indexName`.\n\n### Screenshots\n\n**Index with documents**\n<img width=\"700\" height=\"828\" alt=\"Screenshot 2026-02-03 at 13 24 12\"\nsrc=\"https://github.com/user-attachments/assets/c8a99e1e-4f67-4bfd-9b7a-4c7490f8cb7d\"\n/>\n\n**Index without documents**\n<img width=\"700\" height=\"829\" alt=\"Screenshot 2026-02-03 at 13 24 26\"\nsrc=\"https://github.com/user-attachments/assets/8d752199-2ecf-47e6-b47e-f1966590f0c2\"\n/>\n\n### Checklist\n\nCheck the PR satisfies following conditions. \n\nReviewers should verify this PR satisfies this list as well.\n\n- [x] Any text added follows [EUI's writing\nguidelines](https://elastic.github.io/eui/#/guidelines/writing), uses\nsentence case text and includes [i18n\nsupport](https://github.com/elastic/kibana/blob/main/src/platform/packages/shared/kbn-i18n/README.md)\n- [ ]\n~[Documentation](https://www.elastic.co/guide/en/kibana/master/development-documentation.html)\nwas added for features that require explanation or tutorials~\n- [ ] ~[Unit or functional\ntests](https://www.elastic.co/guide/en/kibana/master/development-tests.html)\nwere updated or added to match the most common scenarios~\n- [ ] ~If a plugin configuration key changed, check if it needs to be\nallowlisted in the cloud and added to the [docker\nlist](https://github.com/elastic/kibana/blob/main/src/dev/build/tasks/os_packages/docker_generator/resources/base/bin/kibana-docker)~\n- [ ] ~This was checked for breaking HTTP API changes, and any breaking\nchanges have been approved by the breaking-change committee. The\n`release_note:breaking` label should be applied in these situations.~\n- [ ] ~[Flaky Test\nRunner](https://ci-stats.kibana.dev/trigger_flaky_test_runner/1) was\nused on any tests changed~\n- [x] The PR description includes the appropriate Release Notes section,\nand the correct `release_note:*` label is applied per the\n[guidelines](https://www.elastic.co/guide/en/kibana/master/contributing.html#kibana-release-notes-process)\n- [x] Review the [backport\nguidelines](https://docs.google.com/document/d/1VyN5k91e5OVumlc0Gb9RPa3h1ewuPE705nRtioPiTvY/edit?usp=sharing)\nand apply applicable `backport:*` labels.\n\n## Release note\n\nReduced background polling on the Index Details page to avoid\nunnecessary API requests.","sha":"b5e4dbeade4a97d5a98cfbdbb6eff44ceee1a137"}},{"branch":"9.2","label":"v9.2.5","branchLabelMappingKey":"^v(\\d+).(\\d+).\\d+$","isSourceBranch":false,"state":"NOT_CREATED"}]}] BACKPORT-->
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
This change improves how the Index Details page fetches data by reducing unnecessary polling to backend APIs. Previously, the page repeatedly polled two endpoints to keep index metadata up to date, even when the data was not actively changing or required for user interaction.
As part of this update, we reviewed the polling strategy used for:
GET /api/index_management/mapping/{index_name}GET /internal/index_management/indices/{index_name}POST /internal/search_indices/${indexName}/documents/searchand adjusted the behavior to better align with how the data is used on the page.
What changed
Refresh databutton was added to allow users to request up to date data.useUserPrivilegesQueryno longer refetches on window focus, which is the default behavior.queryKeyinuseUserPrivilegesQueryhas been updated to add theindexName.Screenshots
Index with documents

Index without documents

Checklist
Check the PR satisfies following conditions.
Reviewers should verify this PR satisfies this list as well.
Documentation was added for features that require explanation or tutorialsUnit or functional tests were updated or added to match the most common scenariosIf 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 changedrelease_note:*label is applied per the guidelinesbackport:*labels.Release note
Reduced background polling on the Index Details page to avoid unnecessary API requests.