influxdata / influxdata/influxdb

Public, shareable dashboards and charts

Open
#17,411 17 comments 48 reactions 1 assignee View on GitHub

@bpalani is already working on this.

Since Mar 26, 2020.

Analytics growth ui/needs-discussion ux
Dominant language
Rust
Stars
31.7k
Forks
3.7k
Avg merge
13h 37m
Merged PRs (30d)
8

Description

__Proposal:__
Give users a way to easily share dashboards and individual charts without requiring a login.

Shared dashboards should be accessible via a relatively short, simple URL in one of the following formats.

**For InfluxDB OSS 2:**

hostname:9999/chart/GUID.js

Example:

localhost:9999/chart/33533452sfa345235scxgdsfg.js

**For InfluxDB Cloud 2:**

influxdata.com/chart/GUID.js

Example:

influxdata.com/chart/33533452sfa345235scxgdsfg.js

__Current behavior:__

Currently, sharing charts requires logging into InfluxDB, which in turn requires logging into an InfluxDB account.

__Desired behavior:__

There are two personas below:

1) **InfluxDB admin**: a person who has admin access to an InfluxDB instance and knows how to setup InfluxDB dashboards.
2) **Chart consumer**: a person who views InfluxDB charts. They don't necessarily have admin access to InfluxDB, nor how to set up InfluxDB dashboards.

An **InfluxDB admin** clicks on an icon in a dashboard or individual chart, which copies a URL to the clipboard. user can then past it into a URL, Slack message, email, text, or other location.

A **chart consumer** clicks the URL, and their browser sees a live-updated version of the chart. The chart consumer can embed the URL into a webpage using the HTML element, and the chart will be embedded into their page.

This chart is live updated, defaulting to the same parameters, refresh rate, and time window as the original.

To simplify the initial version of this feature, do not allow chart consumers to adjust the timeframe, refresh rate, or parameters.

Users should NOT, however, see the underlying query, let alone edit it, for security reasons.

Do not rely on iframes to embed this chart, since those have security risks. Here's on article: https://medium.com/@bluepnume/iframes-are-just-terrible-heres-how-they-could-be-better-974b731f0fb4

By making this a .js file, similar to GitHub gists, we should avoid these security issues.

__Alternatives considered:__

We could use the Telegraf output to DataDog, and use DataDog's public sharing capability:

https://docs.datadoghq.com/dashboards/sharing/#screenboards

... but that means a customer needs to create a DataDog account, which is time consuming and expensive.

__Use case:__
Why is this important (helps with prioritizing requests)?

Share time-series data stored in InfluxDB broadly within an organization, without requiring a login. Other charting software lets you do that. The more people who can access your charts, the more value you unlock in your data to drive smart decisions.

Ultimately, charts are a form of communication, and they need to mesh with other digital communcation mechanisms we commonly use: Slack, email, Jira, GitHub, web pages, etc.

In addition to what DataDog does (above), here's what Grafana does...

Share an entire dashboard:
https://grafana.com/docs/grafana/latest/reference/share_dashboard/

Share a panel (analogous to an InfluxDB cell):
https://grafana.com/docs/grafana/latest/reference/share_panel/

And here's what Domo does:

https://knowledge.domo.com/Engage/Sharing_Content_Outside_of_Domo/Sharing_Cards_Outside_of_Domo_Using_Domo_Embed

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.