Skip to content

Backfill tabs for Discover Session saved object#228115

Merged
lukasolson merged 19 commits intoelastic:mainfrom
lukasolson:discover_tabs_schema_backfill
Jul 25, 2025
Merged

Backfill tabs for Discover Session saved object#228115
lukasolson merged 19 commits intoelastic:mainfrom
lukasolson:discover_tabs_schema_backfill

Conversation

@lukasolson
Copy link
Contributor

Summary

Part of #219268.

Adds tabs field + sync code: Adds a new (optional) tabs field. Implements code to sync the fields between the existing top-level attributes and the new tabs field. (In other words, the tabs array will contain a single item that has the same data that is in the top-level attributes with the exception of title and description.) Uses a data_backfill function to eagerly migrate existing saved objects to populate this field. After this PR is merged, wait for the next serverless release before merging the next steps.

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.

… �H �H �H �H �H �H �H �H �H �H �H �H for Discover Session saved object
@lukasolson lukasolson self-assigned this Jul 15, 2025
@lukasolson lukasolson added release_note:skip Skip the PR/issue when compiling release notes Team:DataDiscovery Discover, search (data plugin and KQL), data views, saved searches. For ES|QL, use Team:ES|QL. t// labels Jul 15, 2025
@lukasolson lukasolson marked this pull request as ready for review July 16, 2025 21:32
@lukasolson lukasolson requested review from a team as code owners July 16, 2025 21:32
@elasticmachine
Copy link
Contributor

Pinging @elastic/kibana-data-discovery (Team:DataDiscovery)

@lukasolson lukasolson added the backport:skip This PR does not require backporting label Jul 17, 2025
Copy link
Contributor

@davismcphee davismcphee left a comment

Choose a reason for hiding this comment

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

Code changes look good to me, and it seemed to work well overall when testing.

An existing Discover session created in main was correctly updated with the tabs array when opening it in this PR branch, and a new Discover session created in this branch included the tabs array as expected. Making changes in either case and saving caused the first tabs entry to be synced with the root attributes as expected.

I then switched back to main and was able to open, modify, and save both of the Discover sessions without issues. After doing this and again switching back to the PR branch, the modifications made in main were again synced to the first tabs array entry.

The only thing I noticed that I'm unsure about is the handling of by value Discover session panels in dashboards. I left some more details in a comment below.

Copy link
Contributor

Choose a reason for hiding this comment

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

I did some testing with Discover session dashboard panels and noticed this situation:

  • Created a dashboard in main with a by reference Discover session panel, then duplicated it which created a separate by value panel. Saved the dashboard with both panels.
  • Switched to this PR branch and opened the dashboard. Duplicated the existing by value panel, leaving me with one by reference panel and two by value panels. Saved the dashboard again.
  • Navigated to saved objects management and inspected the dashboard. The newly duplicated by value panel was updated with a tabs array, but the existing by value panel created in main was not.

So it looks like existing by value panels will not get the tabs array, but new ones will. Does this seem ok for now, or could it cause issues for the followup steps we have planned?

Copy link
Member

Choose a reason for hiding this comment

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

nit: you should also test export/imports 😇

Copy link
Member

Choose a reason for hiding this comment

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

In any case: for the by values use case. Is there anything that we can do in Core to help migrate those?

It sounds like we should apply transforms to dashboards whenever an embeddable declares transforms.

Maybe we can work around it by defining a model version bump of type data_backfill that reapplies the same logic that's currently applied when re-saving the dashboard?

Copy link
Contributor

Choose a reason for hiding this comment

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

@afharo Good catch and suggestion. Tested again today and ensured import/export works as expected:

  • Created a Discover session and a dashboard with a by reference and by value Discover panel in main. Exported both SOs.
  • Switched to the PR branch and imported the Discover session and dashboard. Confirmed both imported as expected and were able to be opened without issues. Similar situation as above where the Discover session was updated with a tabs array, but the by value panel wasn't.
  • Modified both in the PR branch and re-exported/imported, confirming there were still no issues.

Is there anything that we can do in Core to help migrate those?

Regarding the dashboard migration piece, I'm not really sure tbh. I'm under the impression the way panel maintainers are supposed to support backward compatibility currently is through the client side serialize/deserialize logic since there isn't real support for panel transforms yet. But I think there may be plans for something more complete on the Dashboard side. Maybe someone from @elastic/kibana-presentation can give some guidance?

Copy link
Contributor

@nreese nreese Jul 19, 2025

Choose a reason for hiding this comment

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

embeddable transforms registry merged last week. This allows embeddables to register a function to transform embeddable state as part of dashboard CRUD read request prior to sending dashboard response.

This is part of dashboards as code project to allow embeddables to 1) inject references on read so that responses do not contain references. 2) transform embeddable state on read to provide better formated by-value state. Then on write, the transforms provide a way for embeddables to extract references prior to saving dashboard saved object.

Embeddable transforms can make any state changes so you could add tabs support with transforms.

Copy link
Contributor

Choose a reason for hiding this comment

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

Thanks for the info @nreese, great to know. @lukasolson and I chatted about this and we're going to try to use it in this PR to take care of the by value panels.

Copy link
Contributor

Choose a reason for hiding this comment

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

Tested these scenarios again and confirmed both are now working as expected: existing by value Discover session panels are now correctly updated with the tabs array on read, and the tabs array is persisted to the dashboard SO on save.

const { title, description, ...tabAttrs } = attributes;
const tabs = [
{
id: uuidv4(),
Copy link
Contributor

Choose a reason for hiding this comment

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

I assume at some point we'll ned to stabilize these IDs, but it doesn't really matter for now since we're not actually using the tabs yet?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Yes, it would definitely be good to stabilize these once we're using them.

@lukasolson lukasolson requested a review from a team as a code owner July 22, 2025 23:29
@botelastic botelastic bot added the Feature:Embedding Embedding content via iFrame label Jul 22, 2025

plugins.embeddable.registerEmbeddableFactory(createSearchEmbeddableFactory());
plugins.embeddable.registerTransforms(SEARCH_EMBEDDABLE_TYPE, {
transformOut: (state) => {
Copy link
Contributor

Choose a reason for hiding this comment

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

Make sure to register transforms in public as well so that short link URL state gets transformed.

Copy link
Contributor

Choose a reason for hiding this comment

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

Thanks for the heads up 👍

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Yes, thank you! Addressed in 3f6431b.

Copy link
Contributor

@davismcphee davismcphee left a comment

Choose a reason for hiding this comment

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

Thanks for the updates! Tested again after the latest changes and LGTM 👍 Seems like we just need to make one more minor change to run the same panel transform on the client, and this should be good to go.


plugins.embeddable.registerEmbeddableFactory(createSearchEmbeddableFactory());
plugins.embeddable.registerTransforms(SEARCH_EMBEDDABLE_TYPE, {
transformOut: (state) => {
Copy link
Contributor

Choose a reason for hiding this comment

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

Thanks for the heads up 👍

Copy link
Contributor

Choose a reason for hiding this comment

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

Tested these scenarios again and confirmed both are now working as expected: existing by value Discover session panels are now correctly updated with the tabs array on read, and the tabs array is persisted to the dashboard SO on save.

Copy link
Contributor

@davismcphee davismcphee left a comment

Choose a reason for hiding this comment

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

Code-only review, just a final check with the latest updates, LGTM 👍

});

plugins.embeddable.registerTransforms(SEARCH_EMBEDDABLE_TYPE, async () => {
const { searchEmbeddableTransforms } = await import('../common/embeddable');
Copy link
Contributor

Choose a reason for hiding this comment

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

Suggested change
const { searchEmbeddableTransforms } = await import('../common/embeddable');
const { searchEmbeddableTransforms } = await getEmbeddableServices();

Nit: this could probably be grouped with the embeddable_services bundle to limit async module imports:

const getEmbeddableServices = () => import('./plugin_imports/embeddable_services');

@lukasolson
Copy link
Contributor Author

/ci

@kertal kertal requested a review from nreese July 25, 2025 05:59
@lukasolson
Copy link
Contributor Author

/ci

1 similar comment
@kertal
Copy link
Member

kertal commented Jul 25, 2025

/ci

@elasticmachine
Copy link
Contributor

💚 Build Succeeded

Metrics [docs]

Module Count

Fewer modules leads to a faster build time

id before after diff
discover 1432 1434 +2
savedSearch 23 24 +1
total +3

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
savedSearch 62 65 +3

Async chunks

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

id before after diff
discover 1.1MB 1.1MB +161.0B

Page load bundle

Size of the bundles that are downloaded on every page load. Target size is below 100kb

id before after diff
discover 22.6KB 22.7KB +106.0B
savedSearch 11.2KB 11.6KB +326.0B
total +432.0B
Unknown metric groups

API count

id before after diff
savedSearch 63 68 +5

History

cc @lukasolson

Copy link
Contributor

@ThomThomson ThomThomson left a comment

Choose a reason for hiding this comment

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

Copied changes from #228511 to make the transforms registry accessible LGTM! Nice work!

@lukasolson lukasolson merged commit 2888ec8 into elastic:main Jul 25, 2025
12 checks passed
delanni pushed a commit to delanni/kibana that referenced this pull request Aug 5, 2025
## Summary

Part of elastic#219268.

**Adds `tabs` field + sync code**: Adds a new (optional) `tabs` field.
Implements code to sync the fields between the existing top-level
attributes and the new `tabs` field. (In other words, the `tabs` array
will contain a single item that has the same data that is in the
top-level attributes with the exception of `title` and `description`.)
Uses a `data_backfill` function to eagerly migrate existing saved
objects to populate this field. After this PR is merged, wait for the
next serverless release before merging the next steps.

### 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
- [ ] [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.

### 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.

- [ ] [See some risk
examples](https://github.com/elastic/kibana/blob/main/RISK_MATRIX.mdx)
- [ ] ...

---------

Co-authored-by: kibanamachine <42973632+kibanamachine@users.noreply.github.com>
Co-authored-by: Davis McPhee <davis.mcphee@elastic.co>
Co-authored-by: Matthias Wilhelm <matthias.wilhelm@elastic.co>
lukasolson added a commit that referenced this pull request Aug 13, 2025
## Summary

Part of #219268.
Follow-up to #228115.

Marks `tabs` as required inside `SavedSearchAttributes`. Moves consumers
(content management APIs & embeddables) to use the new `tabs` field and
treat the field as required. Preserves the code that syncs these two
shapes of data. After this PR is merged, wait for the next serverless
release before merging the next step.

This is just a temporary step in moving the discover session attributes
(such as `grid`, `columns`) from the top level to the `tabs` array. As
of this step, we are still duplicating the attributes & syncing them
(for backwards compatibility). In a future step we will completely
remove them from the top level & only read them from the `tabs` array.

### 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
- [ ] [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.

### 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.

- [ ] [See some risk
examples](https://github.com/elastic/kibana/blob/main/RISK_MATRIX.mdx)
- [ ] ...

---------

Co-authored-by: Matthias Wilhelm <matthias.wilhelm@elastic.co>
fkanout pushed a commit to fkanout/kibana that referenced this pull request Aug 14, 2025
…ic#229897)

## Summary

Part of elastic#219268.
Follow-up to elastic#228115.

Marks `tabs` as required inside `SavedSearchAttributes`. Moves consumers
(content management APIs & embeddables) to use the new `tabs` field and
treat the field as required. Preserves the code that syncs these two
shapes of data. After this PR is merged, wait for the next serverless
release before merging the next step.

This is just a temporary step in moving the discover session attributes
(such as `grid`, `columns`) from the top level to the `tabs` array. As
of this step, we are still duplicating the attributes & syncing them
(for backwards compatibility). In a future step we will completely
remove them from the top level & only read them from the `tabs` array.

### 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
- [ ] [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.

### 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.

- [ ] [See some risk
examples](https://github.com/elastic/kibana/blob/main/RISK_MATRIX.mdx)
- [ ] ...

---------

Co-authored-by: Matthias Wilhelm <matthias.wilhelm@elastic.co>
NicholasPeretti pushed a commit to NicholasPeretti/kibana that referenced this pull request Aug 18, 2025
…ic#229897)

## Summary

Part of elastic#219268.
Follow-up to elastic#228115.

Marks `tabs` as required inside `SavedSearchAttributes`. Moves consumers
(content management APIs & embeddables) to use the new `tabs` field and
treat the field as required. Preserves the code that syncs these two
shapes of data. After this PR is merged, wait for the next serverless
release before merging the next step.

This is just a temporary step in moving the discover session attributes
(such as `grid`, `columns`) from the top level to the `tabs` array. As
of this step, we are still duplicating the attributes & syncing them
(for backwards compatibility). In a future step we will completely
remove them from the top level & only read them from the `tabs` array.

### 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
- [ ] [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.

### 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.

- [ ] [See some risk
examples](https://github.com/elastic/kibana/blob/main/RISK_MATRIX.mdx)
- [ ] ...

---------

Co-authored-by: Matthias Wilhelm <matthias.wilhelm@elastic.co>
qn895 pushed a commit to qn895/kibana that referenced this pull request Aug 26, 2025
…ic#229897)

## Summary

Part of elastic#219268.
Follow-up to elastic#228115.

Marks `tabs` as required inside `SavedSearchAttributes`. Moves consumers
(content management APIs & embeddables) to use the new `tabs` field and
treat the field as required. Preserves the code that syncs these two
shapes of data. After this PR is merged, wait for the next serverless
release before merging the next step.

This is just a temporary step in moving the discover session attributes
(such as `grid`, `columns`) from the top level to the `tabs` array. As
of this step, we are still duplicating the attributes & syncing them
(for backwards compatibility). In a future step we will completely
remove them from the top level & only read them from the `tabs` array.

### 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
- [ ] [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.

### 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.

- [ ] [See some risk
examples](https://github.com/elastic/kibana/blob/main/RISK_MATRIX.mdx)
- [ ] ...

---------

Co-authored-by: Matthias Wilhelm <matthias.wilhelm@elastic.co>
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 Feature:Embedding Embedding content via iFrame release_note:skip Skip the PR/issue when compiling release notes Team:DataDiscovery Discover, search (data plugin and KQL), data views, saved searches. For ES|QL, use Team:ES|QL. t// v9.2.0

Projects

None yet

Development

Successfully merging this pull request may close these issues.

8 participants