elastic / kibana

Your window into the Elastic Stack
https://www.elastic.co/products/kibana
Other
19.72k stars 8.13k forks source link

[Meta] Dashboard panel Share-to #60433

Closed streamich closed 2 years ago

streamich commented 4 years ago

Summary

Kibana supports sharing dashboards today, but there is no way to share a single panel. There are many permutations of the general need in our customer requests. The goal of this feature is to allow sharing of a dashboard panel to multiple destinations in multiple formats.

User stories

Some example use cases of this feature are:

Tasks

Panel sharing functionality should live in X-Pack (Gold).

Ideas

Designs

Figma mocks


Parent issue: https://github.com/elastic/kibana/issues/92603

elasticmachine commented 4 years ago

Pinging @elastic/kibana-app-arch (Team:AppArch)

streamich commented 4 years ago
Dosant commented 4 years ago

@streamich, @AlonaNadler, some ideas I had during today meeting, not sure if it would be useful, but just food for thought:

Share link with preprendered meta tags to have a nice preview.

This seems hard to implement, but if we do, we will get a nice and seamless previews in any medium. This basically allows to share both link and image using 1 url.

This could be an improvement of initial "Copy url" functionality without any images. so would be nice do design initial implementation with this future use case in mind.

The would look something like this:

  1. User generates special link from dashboard and pastes it somewhere (e.g. slack channel).
  2. When kibana server receives request for this link instead of sending static kibana root html, we modify its head with meta tags:

e.g.

<meta property="og:title" content="Vis title" />
<meta property="og:description" content="Vis description" />
<meta property="og:image" content="kibana/get_nice_vis.pgn" />
<meta property="og:url" content="url" />

<!-- any other tags usefull for content preview -->
  1. These tags will help client (slack in this example) or other medium to generate a nice preview for a link.
  2. When user navigates to link, user opens kibana dashboard deeplinked into needed state.

(not sure about security model here and what is the expectation)

Please see this in Slack docs: https://api.slack.com/docs/message-link-unfurling#classic_unfurling

Slack app unfurling

Not sure if we already have a slack app for kibana integration or if this is planned. But with that we could intercept any kibana urls and enrich the preview in any way we'd want. This would work for any kibana link.

The flow would look something like this:

  1. User has kibana app installed in Slack
  2. Pasting any kibana link anywhere in that Slack would trigger event in kibana server and will allow to format the preview. We could generate an image in that moment and send it to the client

This is similar to what you see when you past github link into slack

https://api.slack.com/docs/message-link-unfurling#slack_app_unfurling

btw, issue of discoverability of this potentially useful kibana slack app is easy to solve. This is how pasting a GitHub link into slack with no installed GitHub app looks:

telegram-cloud-photo-size-2-5199559830732385882-y

streamich commented 4 years ago

@Dosant nice idea, we may also use oEmbed and/or JSON-LD. The only thing is security, we need to make that visualization "public" then, I guess.

Dosant commented 4 years ago

@streamich, still worth exploring. I guess we could do that content in <head/> meta tags is publicly accessible including vis image, but to access vis in Kibana user would still require to have creds. We could make this behaviour configurable when user is creating the link. we'd also explicitly explain "access" concerns.

AlonaNadler commented 4 years ago

Nice idea @Dosant !!

The ultimate goal: send url with an image when sharing from Kibana In the meeting, we discussed a few options to share I wanted to share how I see these options and the possible outcome :

Other open questions:

Suggestion for next steps:

cc: @alexh97

elasticmachine commented 2 years ago

Pinging @elastic/kibana-app-services (Team:AppServicesUx)

mdefazio commented 2 years ago

We had this previous concept that may be a starting point as we revisit this discussion...

Shows the maximized panel view (would also be the landing destination from the shared link)

image

vadimkibana commented 2 years ago

Thank you everyone who contributed, closing this one as being old and now being tracked in Jira epic.

alexfrancoeur commented 2 years ago

@elastic-jb isn't this still on our roadmap? Or are we planning to open up a new issue when we kick off work?