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

[SIP-77] Proposal for Links #17296

Closed
cccs-jc opened this issue Oct 30, 2021 · 14 comments
Closed

[SIP-77] Proposal for Links #17296

cccs-jc opened this issue Oct 30, 2021 · 14 comments
Labels
sip Superset Improvement Proposal

Comments

@cccs-jc
Copy link
Contributor

cccs-jc commented Oct 30, 2021

[SIP-77] Proposal for Links

Motivation

Links, enable users to easily navigate to related content directly from Superset. This content can be an Explore, a Chart, a Dashboard or any other web application.

How it's done in Tableau

URL Actions

A URL action is a hyperlink that points to a web page, file, or other web-based resource outside of Tableau. You can use URL actions to create an email or link to additional information about your data. To customize links based on your data, you can automatically enter field values as parameters in URLs.

Documentation: https://help.tableau.com/current/pro/desktop/en-us/actions_url.htm

URL actions are created in the dashboard. Users pick the sheet they want the link to apply to. The tool helps compose the link by providing a drop down list of available fields.
test

Go to Sheet action

Use the Go to Sheet action to let users quickly navigate to a related visualization—a dashboard, sheet, or story—when they click on a mark or a tooltip menu item in the original view.

https://help.tableau.com/current/pro/desktop/en-us/actions_dashboards.htm

test

How it's done in Looker

Link

The link parameter allows you to add web links to dimensions and measures to enable users to easily navigate to related content directly from Looker. The form of a link parameter is:

https://docs.looker.com/reference/field-params/link

Use a field to invoke link to other applications

test

Invoking the link opens a new browser tab with the contextual information

test

Use a field to open a Dashboard, Explore or Chart, invoking the link opens a dashboard with populated filters

test

Actions

The action parameter creates a data action that lets users perform field-level tasks in other tools, directly from Looker. For example, the action can cause an email to be sent, set values in other applications, or perform any other action that you can configure a receiving server to do. The receiving server must be able to accept a JSON POST.

https://docs.looker.com/reference/field-params/action

An action is not use to navigate but rather to invoke a REST call into another service. Looker shows the response of the invocation as failed or succeed.

Proposed Implementation for Superset

Links are registered in a global link registry which allows them to be re-used in the various datasets and visualizations.

Links registration have the following properties:

  • Title
  • Icon
  • HTTP Verb POST/GET
  • Actual link
  • HTTP Body
  • Tags

Tags are used to activate Links on a given field. A Dataset column can be tagged with multiple tags.

image

For example the product_line tag is associated with a Link to an Explore while the health_dashboard is associated with a Link to a Dashboard.

Templated Links

Jinja templating is used to parameterize the Link according to the selected value (contextual information).

Jinja templating can be applied to the Title, Actual link and HTTP Body.

Chart/Explore

Use {{ PRODUCT_LINE_COLUMN }} to insert the currently selected product line value into the link.

https://superset_instance/superset/explore/?
form_data={"slice_id": 123, "adhoc_filters":
[{"expressionType":"SIMPLE","subject":"product_line",
"operator":"IN","operatorId":"IN","comparator":["{{  PRODUCT_LINE_COLUMN }}"]

Dashboard

Use {{ USER_ID_COLUMN }} to insert the currently selected user id value into the link.

https://localhost/superset/dashboard/55/?
native_filters=(NATIVE_FILTER-VRY4N7SxN:(extraFormData:(
time_range:'yesterday : today'),filterState:(value:'yesterday : today'),
id:NATIVE_FILTER-VRY4N7SxN,ownState:()),NATIVE_FILTER-pYN2bmPLw:(
__cache:(label:'{{ USER_ID_COLUMN }}',validateStatus:!f,value:!('{{ USER_ID_COLUMN }}')),
extraFormData:(filters:!((col:UserId,op:IN,val:!('{{ USER_ID_COLUMN }}')))),
filterState:(label:'{{ USER_ID_COLUMN }}',validateStatus:!f,
value:!('{{ USER_ID_COLUMN }}')),id:NATIVE_FILTER-pYN2bmPLw,ownState:()))

Third Party Web Apps

Use {{ USER_NAME_COLUMN }} to insert the currently selected user name value into the link.
Example google query

https://www.google.ca/search?q={{ USER_NAME_COLUMN }}

Creating the exact URL to launch an Chart or a Dashboard can be quite difficult due to the complexity of the URL's nomenclature. A higher level semantic or a custom UI would probably help users create Link registrations to Superset's built-in content (Explore, Chart, Dashboard). However the generic Jinja templating is still useful to render links to third party web applications.

Requirements

  • Add a Link registry
  • Add UI to edit Link registrations
  • Add tags to Datasets
  • Add context menu to visualizations
@cccs-jc cccs-jc changed the title [SIP-77] Proposal for Links and Actions [SIP-77] Proposal for Links Oct 30, 2021
@stale
Copy link

stale bot commented Apr 17, 2022

This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions. For admin, please label this issue .pinned to prevent stale bot from closing the issue.

@stale stale bot added the inactive Inactive for >= 30 days label Apr 17, 2022
@Sandy381
Copy link

+1

@stale stale bot removed the inactive Inactive for >= 30 days label Nov 25, 2022
@wenqi73
Copy link

wenqi73 commented Dec 19, 2022

+1, grafana has this feature too.
image

@rusackas rusackas added the sip Superset Improvement Proposal label Jun 7, 2023
@rusackas
Copy link
Member

rusackas commented Jun 7, 2023

@cccs-tom @cccs-jc just checking in: is there still active intent to pursue this?

@cccs-tom
Copy link
Contributor

cccs-tom commented Jun 7, 2023

@cccs-tom @cccs-jc just checking in: is there still active intent to pursue this?

I'm not sure it's entirely clear at this time. We still plan to pursue the "Jump To" mechanic that we've discussed in the past. Something like this could tie into that, but I don't think we know yet whether this will be a requirement for our users. Tagging @cccs-rc for input as well.

@cccs-rc
Copy link
Contributor

cccs-rc commented Jun 7, 2023

Yeah, what @cccs-tom said. This overlaps with some use cases we're still planning to tackle, but this particular feature/implementation may get covered in other ways. It's also very far down our priority list at the moment.

@zhugw
Copy link

zhugw commented Jun 26, 2023

image

There is also a need for this, such as clicking on AD to jump to a webpage like https://myapp.com/AD.

@zh417233956
Copy link

I hope the official can attach importance to this feature, which can enhance the interaction ability of BI.
I provide a commercial BI document that provides a detailed description of the relevant configurations and usage methods of the functions.
Jump to dashboard[url]: https://help.fanruan.com/finebi/doc-view-149.html

@trixieboyle
Copy link

[SIP-77] Proposal for Links

Motivation

Links, enable users to easily navigate to related content directly from Superset. This content can be an Explore, a Chart, a Dashboard or any other web application.

How it's done in Tableau

URL Actions

A URL action is a hyperlink that points to a web page, file, or other web-based resource outside of Tableau. You can use URL actions to create an email or link to additional information about your data. To customize links based on your data, you can automatically enter field values as parameters in URLs.

Documentation: https://help.tableau.com/current/pro/desktop/en-us/actions_url.htm

URL actions are created in the dashboard. Users pick the sheet they want the link to apply to. The tool helps compose the link by providing a drop down list of available fields.
test

Go to Sheet action

Use the Go to Sheet action to let users quickly navigate to a related visualization—a dashboard, sheet, or story—when they click on a mark or a tooltip menu item in the original view.

https://help.tableau.com/current/pro/desktop/en-us/actions_dashboards.htm

test

How it's done in Looker

Link

The link parameter allows you to add web links to dimensions and measures to enable users to easily navigate to related content directly from Looker. The form of a link parameter is:

https://docs.looker.com/reference/field-params/link

Use a field to invoke link to other applications

test

Invoking the link opens a new browser tab with the contextual information

test

Use a field to open a Dashboard, Explore or Chart, invoking the link opens a dashboard with populated filters

test

Actions

The action parameter creates a data action that lets users perform field-level tasks in other tools, directly from Looker. For example, the action can cause an email to be sent, set values in other applications, or perform any other action that you can configure a receiving server to do. The receiving server must be able to accept a JSON POST.

https://docs.looker.com/reference/field-params/action

An action is not use to navigate but rather to invoke a REST call into another service. Looker shows the response of the invocation as failed or succeed.

Proposed Implementation for Superset

Links are registered in a global link registry which allows them to be re-used in the various datasets and visualizations.

Links registration have the following properties:

  • Title
  • Icon
  • HTTP Verb POST/GET
  • Actual link
  • HTTP Body
  • Tags

Tags are used to activate Links on a given field. A Dataset column can be tagged with multiple tags.

image

For example the product_line tag is associated with a Link to an Explore while the health_dashboard is associated with a Link to a Dashboard.

Templated Links

Jinja templating is used to parameterize the Link according to the selected value (contextual information).

Jinja templating can be applied to the Title, Actual link and HTTP Body.

Chart/Explore

Use {{ PRODUCT_LINE_COLUMN }} to insert the currently selected product line value into the link.

https://superset_instance/superset/explore/?
form_data={"slice_id": 123, "adhoc_filters":
[{"expressionType":"SIMPLE","subject":"product_line",
"operator":"IN","operatorId":"IN","comparator":["{{  PRODUCT_LINE_COLUMN }}"]

Dashboard

Use {{ USER_ID_COLUMN }} to insert the currently selected user id value into the link.

https://localhost/superset/dashboard/55/?
native_filters=(NATIVE_FILTER-VRY4N7SxN:(extraFormData:(
time_range:'yesterday : today'),filterState:(value:'yesterday : today'),
id:NATIVE_FILTER-VRY4N7SxN,ownState:()),NATIVE_FILTER-pYN2bmPLw:(
__cache:(label:'{{ USER_ID_COLUMN }}',validateStatus:!f,value:!('{{ USER_ID_COLUMN }}')),
extraFormData:(filters:!((col:UserId,op:IN,val:!('{{ USER_ID_COLUMN }}')))),
filterState:(label:'{{ USER_ID_COLUMN }}',validateStatus:!f,
value:!('{{ USER_ID_COLUMN }}')),id:NATIVE_FILTER-pYN2bmPLw,ownState:()))

Third Party Web Apps

Use {{ USER_NAME_COLUMN }} to insert the currently selected user name value into the link.
Example google query

https://www.google.ca/search?q={{ USER_NAME_COLUMN }}

Creating the exact URL to launch an Chart or a Dashboard can be quite difficult due to the complexity of the URL's nomenclature. A higher level semantic or a custom UI would probably help users create Link registrations to Superset's built-in content (Explore, Chart, Dashboard). However the generic Jinja templating is still useful to render links to third party web applications.

Requirements

  • Add a Link registry
  • Add UI to edit Link registrations
  • Add tags to Datasets
  • Add context menu to visualizations

@zh417233956
Copy link

zh417233956 commented Aug 28, 2023 via email

@trixieboyle
Copy link

##17296 [SIP-77] Proposal for Links

Motivation

Links, enable users to easily navigate to related content directly from Superset. This content can be an Explore, a Chart, a Dashboard or any other web application.

How it's done in Tableau

URL Actions

A URL action is a hyperlink that points to a web page, file, or other web-based resource outside of Tableau. You can use URL actions to create an email or link to additional information about your data. To customize links based on your data, you can automatically enter field values as parameters in URLs.

Documentation: https://help.tableau.com/current/pro/desktop/en-us/actions_url.htm

URL actions are created in the dashboard. Users pick the sheet they want the link to apply to. The tool helps compose the link by providing a drop down list of available fields.
test

Go to Sheet action

Use the Go to Sheet action to let users quickly navigate to a related visualization—a dashboard, sheet, or story—when they click on a mark or a tooltip menu item in the original view.

https://help.tableau.com/current/pro/desktop/en-us/actions_dashboards.htm

test

How it's done in Looker

Link

The link parameter allows you to add web links to dimensions and measures to enable users to easily navigate to related content directly from Looker. The form of a link parameter is:

https://docs.looker.com/reference/field-params/link

Use a field to invoke link to other applications

test

Invoking the link opens a new browser tab with the contextual information

test

Use a field to open a Dashboard, Explore or Chart, invoking the link opens a dashboard with populated filters

test

Actions

The action parameter creates a data action that lets users perform field-level tasks in other tools, directly from Looker. For example, the action can cause an email to be sent, set values in other applications, or perform any other action that you can configure a receiving server to do. The receiving server must be able to accept a JSON POST.

https://docs.looker.com/reference/field-params/action

An action is not use to navigate but rather to invoke a REST call into another service. Looker shows the response of the invocation as failed or succeed.

Proposed Implementation for Superset

Links are registered in a global link registry which allows them to be re-used in the various datasets and visualizations.

Links registration have the following properties:

  • Title
  • Icon
  • HTTP Verb POST/GET
  • Actual link
  • HTTP Body
  • Tags

Tags are used to activate Links on a given field. A Dataset column can be tagged with multiple tags.

image

For example the product_line tag is associated with a Link to an Explore while the health_dashboard is associated with a Link to a Dashboard.

Templated Links

Jinja templating is used to parameterize the Link according to the selected value (contextual information).

Jinja templating can be applied to the Title, Actual link and HTTP Body.

Chart/Explore

Use {{ PRODUCT_LINE_COLUMN }} to insert the currently selected product line value into the link.

https://superset_instance/superset/explore/?
form_data={"slice_id": 123, "adhoc_filters":
[{"expressionType":"SIMPLE","subject":"product_line",
"operator":"IN","operatorId":"IN","comparator":["{{  PRODUCT_LINE_COLUMN }}"]

Dashboard

Use {{ USER_ID_COLUMN }} to insert the currently selected user id value into the link.

https://localhost/superset/dashboard/55/?
native_filters=(NATIVE_FILTER-VRY4N7SxN:(extraFormData:(
time_range:'yesterday : today'),filterState:(value:'yesterday : today'),
id:NATIVE_FILTER-VRY4N7SxN,ownState:()),NATIVE_FILTER-pYN2bmPLw:(
__cache:(label:'{{ USER_ID_COLUMN }}',validateStatus:!f,value:!('{{ USER_ID_COLUMN }}')),
extraFormData:(filters:!((col:UserId,op:IN,val:!('{{ USER_ID_COLUMN }}')))),
filterState:(label:'{{ USER_ID_COLUMN }}',validateStatus:!f,
value:!('{{ USER_ID_COLUMN }}')),id:NATIVE_FILTER-pYN2bmPLw,ownState:()))

Third Party Web Apps

Use {{ USER_NAME_COLUMN }} to insert the currently selected user name value into the link.
Example google query

https://www.google.ca/search?q={{ USER_NAME_COLUMN }}

Creating the exact URL to launch an Chart or a Dashboard can be quite difficult due to the complexity of the URL's nomenclature. A higher level semantic or a custom UI would probably help users create Link registrations to Superset's built-in content (Explore, Chart, Dashboard). However the generic Jinja templating is still useful to render links to third party web applications.

Requirements

  • Add a Link registry
  • Add UI to edit Link registrations
  • Add tags to Datasets
  • Add context menu to visualizations

@trixieboyle
Copy link

[SIP-77] Proposal for Links

Motivation

Links, enable users to easily navigate to related content directly from Superset. This content can be an Explore, a Chart, a Dashboard or any other web application.

How it's done in Tableau

URL Actions

A URL action is a hyperlink that points to a web page, file, or other web-based resource outside of Tableau. You can use URL actions to create an email or link to additional information about your data. To customize links based on your data, you can automatically enter field values as parameters in URLs.

Documentation: https://help.tableau.com/current/pro/desktop/en-us/actions_url.htm

URL actions are created in the dashboard. Users pick the sheet they want the link to apply to. The tool helps compose the link by providing a drop down list of available fields.
test

Go to Sheet action

Use the Go to Sheet action to let users quickly navigate to a related visualization—a dashboard, sheet, or story—when they click on a mark or a tooltip menu item in the original view.

https://help.tableau.com/current/pro/desktop/en-us/actions_dashboards.htm

test

How it's done in Looker

Link

The link parameter allows you to add web links to dimensions and measures to enable users to easily navigate to related content directly from Looker. The form of a link parameter is:

https://docs.looker.com/reference/field-params/link

Use a field to invoke link to other applications

test

Invoking the link opens a new browser tab with the contextual information

test

Use a field to open a Dashboard, Explore or Chart, invoking the link opens a dashboard with populated filters

test

Actions

The action parameter creates a data action that lets users perform field-level tasks in other tools, directly from Looker. For example, the action can cause an email to be sent, set values in other applications, or perform any other action that you can configure a receiving server to do. The receiving server must be able to accept a JSON POST.

https://docs.looker.com/reference/field-params/action

An action is not use to navigate but rather to invoke a REST call into another service. Looker shows the response of the invocation as failed or succeed.

Proposed Implementation for Superset

Links are registered in a global link registry which allows them to be re-used in the various datasets and visualizations.

Links registration have the following properties:

  • Title
  • Icon
  • HTTP Verb POST/GET
  • Actual link
  • HTTP Body
  • Tags

Tags are used to activate Links on a given field. A Dataset column can be tagged with multiple tags.

image

For example the product_line tag is associated with a Link to an Explore while the health_dashboard is associated with a Link to a Dashboard.

Templated Links

Jinja templating is used to parameterize the Link according to the selected value (contextual information).

Jinja templating can be applied to the Title, Actual link and HTTP Body.

Chart/Explore

Use {{ PRODUCT_LINE_COLUMN }} to insert the currently selected product line value into the link.

https://superset_instance/superset/explore/?
form_data={"slice_id": 123, "adhoc_filters":
[{"expressionType":"SIMPLE","subject":"product_line",
"operator":"IN","operatorId":"IN","comparator":["{{  PRODUCT_LINE_COLUMN }}"]

Dashboard

Use {{ USER_ID_COLUMN }} to insert the currently selected user id value into the link.

https://localhost/superset/dashboard/55/?
native_filters=(NATIVE_FILTER-VRY4N7SxN:(extraFormData:(
time_range:'yesterday : today'),filterState:(value:'yesterday : today'),
id:NATIVE_FILTER-VRY4N7SxN,ownState:()),NATIVE_FILTER-pYN2bmPLw:(
__cache:(label:'{{ USER_ID_COLUMN }}',validateStatus:!f,value:!('{{ USER_ID_COLUMN }}')),
extraFormData:(filters:!((col:UserId,op:IN,val:!('{{ USER_ID_COLUMN }}')))),
filterState:(label:'{{ USER_ID_COLUMN }}',validateStatus:!f,
value:!('{{ USER_ID_COLUMN }}')),id:NATIVE_FILTER-pYN2bmPLw,ownState:()))

Third Party Web Apps

Use {{ USER_NAME_COLUMN }} to insert the currently selected user name value into the link.
Example google query

https://www.google.ca/search?q={{ USER_NAME_COLUMN }}

Creating the exact URL to launch an Chart or a Dashboard can be quite difficult due to the complexity of the URL's nomenclature. A higher level semantic or a custom UI would probably help users create Link registrations to Superset's built-in content (Explore, Chart, Dashboard). However the generic Jinja templating is still useful to render links to third party web applications.

Requirements

  • Add a Link registry
  • Add UI to edit Link registrations
  • Add tags to Datasets
  • Add context menu to visualizations

#17296

@rusackas
Copy link
Member

rusackas commented Mar 8, 2024

Moving this SIP to Discarded and closing it since it never moved forward. If you want to pick it back up, it just needs to be reopened and given a Discuss thread to reboot. Thanks!

@rusackas rusackas closed this as completed Mar 8, 2024
@rusackas rusackas moved this from Pre-discussion to Denied / Closed / Discarded in SIPs (Superset Improvement Proposals) Mar 8, 2024
@zh417233956
Copy link

zh417233956 commented Mar 8, 2024 via email

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
sip Superset Improvement Proposal
Projects
Status: Denied / Closed / Discarded
Development

No branches or pull requests

9 participants