Skip to content
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

[dashboard][embeddable] document interfaces embeddables can/should implement and how that impacts dashboard features #193729

Open
nreese opened this issue Sep 23, 2024 · 3 comments
Labels
documentation Team:Presentation Presentation Team for Dashboard, Input Controls, and Canvas

Comments

@nreese
Copy link
Contributor

nreese commented Sep 23, 2024

Dashboard uses actions to allow plugins to extend panel functionality. Below are some common triggers

  1. CONTEXT_MENU_TRIGGER trigger adds an action to a panel's context menu.
  2. PANEL_BADGE_TRIGGER trigger adds a badge to a panel's title bar.
  3. PANEL_NOTIFICATION_TRIGGER trigger adds a notification to the top-right corner of a panel.

Actions use compatibility checks to verify a panel supports the action. Actions are not displayed when a panel fails a compatibility check. Compatibility checks verify the panel supports the required interfaces needed by the action. For example, the filters notification badge action compatibility check ensures that a panel implements the unified search interface and provides filters$ or query$.

The problem is that there is no comprehensive list interfaces that panels should expose. This can lead to issues such as #193598.

There should be a table that details all actions shipped with Kibana. Each action should describe the interfaces needed for compatibility so that embeddable authors can use this reference to know which interfaces and how interfaces are used to support dashboard features.

@nreese nreese added documentation Team:Presentation Presentation Team for Dashboard, Input Controls, and Canvas labels Sep 23, 2024
@elasticmachine
Copy link
Contributor

Pinging @elastic/kibana-presentation (Team:Presentation)

@Heenawter
Copy link
Contributor

Summarizing my thoughts from our team meeting:

Since documenting every action and its interfaces would be a large effort, I wonder if a "good enough" solution would be to create a list of "common bugs" and document it there? So in a case like this, we could list "Actions not showing up" and document how you should resolve this. And before an embeddable is ready to be merged, we could point people towards the common bugs section to verify that their embeddable doesn't suffer from any of them.

Not ideal, but possibly a decent mid-term effort 🤷

@nreese
Copy link
Contributor Author

nreese commented Dec 16, 2024

Discussed steps for this effert at todays embeddable sync

  1. add JS docs to all interfaces in packages/presentation that explains what they control
  2. add example plugin that provides a matrix of all runtime actions per trigger. Matrix should define what action does and show type of embeddable that supports actions.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
documentation Team:Presentation Presentation Team for Dashboard, Input Controls, and Canvas
Projects
None yet
Development

No branches or pull requests

3 participants