SIP-145 Proposal for Embeddable Charts using the same mechanism as #17187
Motivation
The existing method of embedding charts is using iframe method. What this means is that the user have to be logged-in in parallel to the superset system for the chart to display without a login screen in the embedded mode.
Similar to embedding dashboards as outlined in SIP-75, superset dashboard developers would like to embed charts in a similar fashion so that the login page does not appear and a parallel login is not needed by the end user, avoiding the user to have an account created in superset to view the charts.
Proposed Change
This SIP is aimed to implement the Embedded Charts capability using the same GuestToken method that the Embeddable Dashboards are using.
New or Changed Public Interfaces
Added REST endpoints
GET {host}/api/v1/chart/{pk}/embedded
POST {host}/api/v1/chart/{pk}/embedded
DELETE {host}/api/v1/chart/{pk}/embedded
Added Views
In addition to existing view {host}/embedded/{uuid}, added the following
{host}/embedded/dashboard/{uuid}
{host}/embedded/chart/{uuid}
NOTE: {host}/embedded/dashboard/{uuid} works the same way as {host}/embedded/{uuid}, which should be deprecated and removed in one of the subsequent versions.
New dependencies
None
Migration Plan and Compatibility
Needs a migration. Please see the attached merge request to see the migration details.
A new table called embedded_charts will be added and a foreign key reference will be made to the slices table.
Rejected Alternatives
Did not discuss alternate approaches
Comment From: Michila0
Is this done
Comment From: rusackas
Is this done
Not even close... the proposal has been numbered, but has not yet been put up for a discussion on the ASF list, which then would lead to a vote, which then would open the door for the work to be completed/merged.
@Michila0 do you have thoughts on the proposal you'd like to add to carry the discussion forward?
Comment From: Michila0
ASF list? I like contribute with you
Comment From: rusackas
Discussion opened! Feedback welcome, and anyone volunteering to help contribute to this should chime in on the linked PR and/or reach out to @jayakrishnankk on slack or other means.
Comment From: rusackas
I'll open the vote on this, if everyone agrees it's ready.
Comment From: villebro
I'd like to add here that I think this is a natural progression of SIP-75, and could arguably have been considered being covered by that SIP already. So big thanks @jayakrishnankk for taking this on, this will be very valuable for cases where one wants to only embed a single chart, as opposed to a full dashboard.
Comment From: mistercrunch
Hey I just wanted to point out that an easy workaround is to create a single-chart dashboard and embed that, which may not fully cover all the use cases. It's not unlikely that in the future of Superset - once we allow for in-dashboard-chart-creation, that charts wouldn't exist outside the context of a dashboard.
Comment From: rusackas
Closing and moving this on the SIP board, since the VOTE thread has PASSED! Thanks @jayakrishnankk and thanks in advance for the implementation!
Comment From: rusackas
@jayakrishnankk is this still on your roadmap? I still like the idea :D
Comment From: rusackas
@amaannawab923 thanks for the PR, but it seems to be quite out of date and needs a rebase. Still intending to get that through?