-
Notifications
You must be signed in to change notification settings - Fork 8.3k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[Embeddables Rebuild] Meta #167429
Labels
Feature:Embeddables
Relating to the Embeddable system
impact:critical
This issue should be addressed immediately due to a critical level of impact on the product.
Meta
project:embeddableRebuild
Team:Presentation
Presentation Team for Dashboard, Input Controls, and Canvas
Comments
ThomThomson
added
Meta
Team:Presentation
Presentation Team for Dashboard, Input Controls, and Canvas
impact:critical
This issue should be addressed immediately due to a critical level of impact on the product.
Feature:Embeddables
Relating to the Embeddable system
labels
Sep 27, 2023
Pinging @elastic/kibana-presentation (Team:Presentation) |
This was referenced Sep 27, 2023
1 task
3 tasks
Heenawter
added a commit
that referenced
this issue
Jan 30, 2024
) Closes #174703 ## Summary Currently, the burden of determining unsaved changes is handled entirely by the Dashboard - this means that we need special logic for comparing the state of every piece of a dashboard, including the controls and the panels. Once the [embeddable refactor](#167429) work is complete, this will no longer be the case; instead, each component will be responsible for handling its **own** unsaved changes, and the Dashboard will simply listen for updates. As an intermediate step, this PR separates out the control group logic from the Dashboard plugin so that, when it comes time, the transition to the new embeddable framework will be much smoother. This PR also unblocks #170396 since, now that the control group is responsible for handling its own unsaved changes, I should be able to determine when to enable/disable the "reset changes" button. ### Checklist - [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 - [x] This was checked for [cross-browser compatibility](https://www.elastic.co/support/matrix#matrix_browsers) ### For maintainers - [ ] This was checked for breaking API changes and was [labeled appropriately](https://www.elastic.co/guide/en/kibana/master/contributing.html#kibana-release-notes-process) --------- Co-authored-by: kibanamachine <[email protected]>
This was referenced Feb 8, 2024
CoenWarmer
pushed a commit
to CoenWarmer/kibana
that referenced
this issue
Feb 15, 2024
…tic#175146) Closes elastic#174703 ## Summary Currently, the burden of determining unsaved changes is handled entirely by the Dashboard - this means that we need special logic for comparing the state of every piece of a dashboard, including the controls and the panels. Once the [embeddable refactor](elastic#167429) work is complete, this will no longer be the case; instead, each component will be responsible for handling its **own** unsaved changes, and the Dashboard will simply listen for updates. As an intermediate step, this PR separates out the control group logic from the Dashboard plugin so that, when it comes time, the transition to the new embeddable framework will be much smoother. This PR also unblocks elastic#170396 since, now that the control group is responsible for handling its own unsaved changes, I should be able to determine when to enable/disable the "reset changes" button. ### Checklist - [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 - [x] This was checked for [cross-browser compatibility](https://www.elastic.co/support/matrix#matrix_browsers) ### For maintainers - [ ] This was checked for breaking API changes and was [labeled appropriately](https://www.elastic.co/guide/en/kibana/master/contributing.html#kibana-release-notes-process) --------- Co-authored-by: kibanamachine <[email protected]>
fkanout
pushed a commit
to fkanout/kibana
that referenced
this issue
Mar 4, 2024
…tic#175146) Closes elastic#174703 ## Summary Currently, the burden of determining unsaved changes is handled entirely by the Dashboard - this means that we need special logic for comparing the state of every piece of a dashboard, including the controls and the panels. Once the [embeddable refactor](elastic#167429) work is complete, this will no longer be the case; instead, each component will be responsible for handling its **own** unsaved changes, and the Dashboard will simply listen for updates. As an intermediate step, this PR separates out the control group logic from the Dashboard plugin so that, when it comes time, the transition to the new embeddable framework will be much smoother. This PR also unblocks elastic#170396 since, now that the control group is responsible for handling its own unsaved changes, I should be able to determine when to enable/disable the "reset changes" button. ### Checklist - [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 - [x] This was checked for [cross-browser compatibility](https://www.elastic.co/support/matrix#matrix_browsers) ### For maintainers - [ ] This was checked for breaking API changes and was [labeled appropriately](https://www.elastic.co/guide/en/kibana/master/contributing.html#kibana-release-notes-process) --------- Co-authored-by: kibanamachine <[email protected]>
nickpeihl
added a commit
that referenced
this issue
Jun 13, 2024
…legacy embeddable factory (#184466) Fixes #179290, #179291, #179292, #179293 Part of #167429 ## Summary Decouples the legacy embeddable factory from O11y profiling plugin. The class-based embeddable factory is being removed in preference to a [React embeddable factory](#167429). The profiling plugin was using the legacy embeddable factory to register profiling components that could be shared to other observability plugins. While not strictly enforced, the embeddable registry is expected to be used _only_ for embedding components into Dashboards and Canvas. The embeddables registered by the Profiling plugin were never made available to Dashboards or Canvas. And based on offline discussions with Observability leadership, it is not expected that Profiling components will be made available for embedding on Dashboards or Canvas in the near future. In this PR, I have removed the legacy embeddable usage from the Profiling plugin. The Observability shared plugin now includes a custom registration method for the profiling plugin to register React components so they can be shared to other plugins. This avoids any circular dependency concerns while still allowing other Observability plugins to "embed" profiling components in their pages.
nreese
added a commit
that referenced
this issue
Dec 12, 2024
…#203853) Part of #167429 Remove `setCustomEmbeddableFactoryProvider` from embeddable setup API. `setCustomEmbeddableFactoryProvider` only used in `embeddable_enhanced` plugin. Replaced with `initializeReactEmbeddableDynamicActions` in react embeddable system. --------- Co-authored-by: kibanamachine <[email protected]> Co-authored-by: Elastic Machine <[email protected]>
kibanamachine
pushed a commit
to kibanamachine/kibana
that referenced
this issue
Dec 12, 2024
…elastic#203853) Part of elastic#167429 Remove `setCustomEmbeddableFactoryProvider` from embeddable setup API. `setCustomEmbeddableFactoryProvider` only used in `embeddable_enhanced` plugin. Replaced with `initializeReactEmbeddableDynamicActions` in react embeddable system. --------- Co-authored-by: kibanamachine <[email protected]> Co-authored-by: Elastic Machine <[email protected]> (cherry picked from commit 7218d01)
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Labels
Feature:Embeddables
Relating to the Embeddable system
impact:critical
This issue should be addressed immediately due to a critical level of impact on the product.
Meta
project:embeddableRebuild
Team:Presentation
Presentation Team for Dashboard, Input Controls, and Canvas
Embeddables Rebuild
Kibana’s Embeddables system is responsible for much of the behavior we see in Kibana today. Our Embeddable infrastructure underpins: Dashboards & Portable Dashboards, the Save and Return flow, drilldowns, Triggers & Actions, Portable Lens and Maps in solutions, the New Controls, much of Canvas, and a lot more.
This system is fundamental to Kibana, but is not well-liked by the engineers who maintain it, or adopt it. This is because it is over-engineered, boilerplate heavy and prescriptive. The Presentation team is planning to:
Investment here can pay major dividends for the future in terms of performance, stability, and expanding which features are possible.
(Prep work) Decouple Embeddables from Kibana
Build the new engine
React Embeddable review checklist
deserializeState
method whererawState: undefined
.registerSavedObjectToPanelMethod
registry. Register embeddable type in new ??. Also take into account managed state.Migrate all Embeddables
Cleanup
The text was updated successfully, but these errors were encountered: