Skip to content

Conversation

@tsullivan
Copy link
Member

@tsullivan tsullivan commented Jan 10, 2026

Summary

Closes #242706
Closes #220053

This PR adds resilience to the flows for sample data installation and removal. This change brings a client-side polling mechanism for a more async way to update the UI, by verifying the index has been refreshed with the new data.

New UI state update flow:

  1. Call the install/remove API
  2. Poll the status endpoint with exponential backoff using p-retry
  3. Confirm the operation succeeded once the status reflects the expected state
  4. Only then show success notification and proceed with the test

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, uses sentence case text and includes i18n support
  • [ ] Documentation was added for features that require explanation or tutorials
  • [ ] Unit or functional tests 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
  • [ ] 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 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
  • Review the backport guidelines and apply applicable backport:* labels.

Identify risks

Does this PR introduce any risks? For example, consider risks like hard to test bugs, performance regression, potential of data loss.

Describe the risk, its severity, and mitigation for each identified risk. Invite stakeholders and evaluate how to proceed before merging.

This PR adds resilience to the flows for sample data installation and removal. This change brings a client-side polling mechanism for a more async way to update the UI, by verifying the index has been refreshed with the new data.

1. Call the install/remove API (which performs bulk operations without blocking on refresh)
2. Poll the status endpoint with exponential backoff using the battle-tested `p-retry` library
3. Confirm the operation succeeded once the status reflects the expected state
4. Only then show success notification and proceed with the test
@tsullivan tsullivan requested review from a team as code owners January 10, 2026 04:56
@tsullivan
Copy link
Member Author

@tsullivan tsullivan added release_note:skip Skip the PR/issue when compiling release notes backport:skip This PR does not require backporting labels Jan 10, 2026
@kibanamachine
Copy link
Contributor

Flaky Test Runner Stats

🟠 Some tests failed. - kibana-flaky-test-suite-runner#10399

[✅] x-pack/platform/test/serverless/functional/configs/search/config.group1.ts: 25/25 tests passed.
[❌] x-pack/platform/test/serverless/functional/configs/security/config.group1.ts: 0/25 tests passed.
[❌] x-pack/platform/test/serverless/functional/configs/observability/config.group1.ts: 0/25 tests passed.
[❌] x-pack/platform/test/serverless/functional/configs/observability/config.logs_essentials.group1.ts: 0/25 tests passed.
[✅] x-pack/platform/test/serverless/functional/configs/workplaceai/config.group1.ts: 25/25 tests passed.

see run history

@kibanamachine
Copy link
Contributor

Flaky Test Runner Stats

🎉 All tests passed! - kibana-flaky-test-suite-runner#10410

[✅] src/platform/test/functional/apps/home/config.ts: 42/42 tests passed.

see run history

@elasticmachine
Copy link
Contributor

elasticmachine commented Jan 11, 2026

💔 Build Failed

Failed CI Steps

Test Failures

  • [job] [logs] Jest Tests #6 / install footer should invoke onInstall when install button is clicked
  • [job] [logs] Jest Tests #6 / install footer should invoke onInstall when install button is clicked
  • [job] [logs] Jest Tests #6 / install footer should invoke onRemove when remove button is clicked
  • [job] [logs] Jest Tests #6 / install footer should invoke onRemove when remove button is clicked
  • [job] [logs] FTR Configs #63 / kibana server with ssl handles requests using ssl with a P12 keystore that uses an intermediate CA
  • [job] [logs] FTR Configs #63 / kibana server with ssl handles requests using ssl with a P12 keystore that uses an intermediate CA
  • [job] [logs] Jest Tests #6 / SampleDataCard installed removes
  • [job] [logs] Jest Tests #6 / SampleDataCard installed removes
  • [job] [logs] Jest Tests #6 / SampleDataCard not installed installs
  • [job] [logs] Jest Tests #6 / SampleDataCard not installed installs

Metrics [docs]

Module Count

Fewer modules leads to a faster build time

id before after diff
home 119 124 +5

Public APIs missing comments

Total count of every public API that lacks a comment. Target amount is 0. Run node scripts/build_api_docs --plugin [yourplugin] --stats comments for more detailed information.

id before after diff
@kbn/home-sample-data-card 22 23 +1

Async chunks

Total size of all lazy-loaded chunks that will be downloaded as the user navigates the app

id before after diff
home 66.9KB 72.5KB +5.5KB
Unknown metric groups

API count

id before after diff
@kbn/home-sample-data-card 32 33 +1

ESLint disabled line counts

id before after diff
@kbn/home-sample-data-card 1 2 +1

Total ESLint disabled count

id before after diff
@kbn/home-sample-data-card 1 2 +1

History

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:skip Skip the PR/issue when compiling release notes

Projects

None yet

3 participants