Skip to content

docs: Add minimal set of permissions required for public dashboards#36025

Closed
dgarciabriseno wants to merge 1 commit into
apache:masterfrom
dgarciabriseno:public-role-permissions-for-dashboards
Closed

docs: Add minimal set of permissions required for public dashboards#36025
dgarciabriseno wants to merge 1 commit into
apache:masterfrom
dgarciabriseno:public-role-permissions-for-dashboards

Conversation

@dgarciabriseno
Copy link
Copy Markdown
Contributor

SUMMARY

Updates the superset documentation on public dashboards to list the minimal set of requirements needed
to make public dashboards work.

Prior to this change, the suggestion is to initialize your superset instance with PUBLIC_ROLE_LIKE = "Gamma" but
Gamma permissions are too permissive, with things like write and delete permissions, for a public role.

This is purely a documentation change. I found this set of permissions by starting with all Gamma permissions and deleting permissions until I found the minimal permissions required to have a functional public dashboard without granting excess permissions.

ADDITIONAL INFORMATION

  • Has associated issue:
  • Required feature flags:
  • Changes UI
  • Includes DB Migration (follow approval process in SIP-59)
    • Migration is atomic, supports rollback & is backwards-compatible
    • Confirm DB migration upgrade and downgrade tested
    • Runtime estimates and downtime expectations provided
  • Introduces new feature or API
  • Removes existing feature or API

@bito-code-review
Copy link
Copy Markdown
Contributor

bito-code-review Bot commented Nov 6, 2025

Code Review Agent Run #732b87

Actionable Suggestions - 0
Review Details
  • Files reviewed - 1 · Commit Range: 6419671..6419671
    • docs/docs/configuration/networking-settings.mdx
  • Files skipped - 0
  • Tools
    • Whispers (Secret Scanner) - ✔︎ Successful
    • Detect-secrets (Secret Scanner) - ✔︎ Successful

Bito Usage Guide

Commands

Type the following command in the pull request comment and save the comment.

  • /review - Manually triggers a full AI review.

  • /pause - Pauses automatic reviews on this pull request.

  • /resume - Resumes automatic reviews.

  • /resolve - Marks all Bito-posted review comments as resolved.

  • /abort - Cancels all in-progress reviews.

Refer to the documentation for additional commands.

Configuration

This repository uses Default Agent You can customize the agent settings here or contact your Bito workspace admin at evan@preset.io.

Documentation & Help

AI Code Review powered by Bito Logo

@github-actions github-actions Bot added the doc Namespace | Anything related to documentation label Nov 6, 2025
Copy link
Copy Markdown

@korbit-ai korbit-ai Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I've completed my review and didn't find any issues.

Files scanned
File Path Reviewed
docs/docs/configuration/networking-settings.mdx

Explore our documentation to understand the languages and file types we support and the files we ignore.

Check out our docs on how you can make Korbit work best for you and your team.

Loving Korbit!? Share us on LinkedIn Reddit and X

@sadpandajoe sadpandajoe requested a review from sfirke November 6, 2025 18:21
@sfirke
Copy link
Copy Markdown
Member

sfirke commented Nov 7, 2025

Great idea, thank you! I should be able to review today next week.

Copy link
Copy Markdown
Member

@sfirke sfirke left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I like this idea but I don't think this set of permissions is sufficient. I created a new role with these seven permissions, then gave a dashboard that role and tried to view it in a private browsing window where I wasn't signed in. It didn't work - I was redirected to login.

I have a functional Public role that I've used for several years. It has 31 permissions. I wonder if not all 31 are needed and the minimal set is between yours and mine?

I'm happy to re-review if you can expand this to a set such that once that role is added, I can view the dashboard while logged out.

@sfirke
Copy link
Copy Markdown
Member

sfirke commented Nov 14, 2025

See for example this list of permissions, it is much longer than yours: https://gist.github.com/byk0t/bd6e9c3839967b4ac28a8da30f468b2a

@dgarciabriseno
Copy link
Copy Markdown
Contributor Author

dgarciabriseno commented Nov 14, 2025 via email

@dgarciabriseno
Copy link
Copy Markdown
Contributor Author

Maybe it's my charts?
The permissions I listed work for the dashboard I've made.
I'm using a custom chart plugin, I don't know if that makes a difference.

@sfirke
Copy link
Copy Markdown
Member

sfirke commented Nov 17, 2025

Maybe my extra permissions are for other aspects of dashboard interactions. E.g., does your set of permissions allow the public user to filter on a time range?

@dgarciabriseno
Copy link
Copy Markdown
Contributor Author

No, mine doesn't have any interactions really, just view only.

@sfirke
Copy link
Copy Markdown
Member

sfirke commented Nov 17, 2025

Here's my list of permissions for the public role:

can read Chart, can annotation json Superset, can csv Superset, can dashboard permalink Superset, can dashboard Superset, can explore json Superset, can favstar Superset, can filter Superset, can get OpenApi, can list FilterSets, can queries Superset, can query Api, can query form data Api, can read AdvancedDataType, can read Annotation, can read CssTemplate, can read Dashboard, can read DashboardFilterStateRestApi, can read DashboardPermalinkRestApi, can read ExploreFormDataRestApi, can read ExplorePermalinkRestApi, can share dashboard Superset, can slice json Superset, can slice Superset, can sql json Superset, can time range Api, can validate sql json Superset, can write DashboardFilterStateRestApi, can write DashboardPermalinkRestApi, can write ExploreFormDataRestApi, can write ExplorePermalinkRestApi

I don't have any documentation about what each does, but I think a lot of that might be to make filtering and other interactions work.

@sfirke sfirke moved this to In Progress in Superset Docs Nov 18, 2025
@sfirke
Copy link
Copy Markdown
Member

sfirke commented Nov 18, 2025

@dgarciabriseno - I just discussed this in the monthly Documentation meeting and the consensus was to go farther and add a new role to Superset, so that admins can just assign it rather than having to create one based on the docs. The way we have Gamma and Alpha already extant in Superset, we'd have Public that way too. Probably with the set of permissions I posted above, unless there are ones you think should be removed.

My question for you: would you like to take on that work? I don't mean to deprive you of the opportunity to contribute to Superset. Or, if this feels like more than you wanted to sign up for, I'm willing to do this myself. Just let me know!

@dgarciabriseno
Copy link
Copy Markdown
Contributor Author

dgarciabriseno commented Nov 19, 2025 via email

rusackas added a commit that referenced this pull request Dec 11, 2025
This PR adds a new built-in "Public" role to Superset, designed for
anonymous/unauthenticated users who need to view dashboards. The Public
role is more restrictive than Gamma and provides sensible defaults for
public-facing dashboard deployments.

Key features:
- New PUBLIC_ROLE_PERMISSIONS set defining minimal dashboard viewing
  permissions
- New _is_public_pvm() method to determine Public role permissions
- Public role is now created during sync_role_definitions()
- Users can set PUBLIC_ROLE_LIKE = "Public" to use these safe defaults

The Public role includes:
- Dashboard and chart viewing
- Interactive dashboard filters (read + write filter state)
- Dashboard permalinks
- Embedded dashboard support
- Datasource metadata for chart rendering

The Public role explicitly excludes:
- Write permissions on dashboards, charts, datasets
- SQL Lab access
- Share functionality
- User profile/admin features
- Menu access to most features

This addresses the concerns raised in #36025 where PUBLIC_ROLE_LIKE = "Gamma"
grants excessive permissions including write and delete capabilities that
are inappropriate for public access.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
rusackas added a commit that referenced this pull request Dec 18, 2025
This PR adds a new built-in "Public" role to Superset, designed for
anonymous/unauthenticated users who need to view dashboards. The Public
role is more restrictive than Gamma and provides sensible defaults for
public-facing dashboard deployments.

Key features:
- New PUBLIC_ROLE_PERMISSIONS set defining minimal dashboard viewing
  permissions
- New _is_public_pvm() method to determine Public role permissions
- Public role is now created during sync_role_definitions()
- Users can set PUBLIC_ROLE_LIKE = "Public" to use these safe defaults

The Public role includes:
- Dashboard and chart viewing
- Interactive dashboard filters (read + write filter state)
- Dashboard permalinks
- Embedded dashboard support
- Datasource metadata for chart rendering

The Public role explicitly excludes:
- Write permissions on dashboards, charts, datasets
- SQL Lab access
- Share functionality
- User profile/admin features
- Menu access to most features

This addresses the concerns raised in #36025 where PUBLIC_ROLE_LIKE = "Gamma"
grants excessive permissions including write and delete capabilities that
are inappropriate for public access.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
@sfirke
Copy link
Copy Markdown
Member

sfirke commented Dec 18, 2025

FYI this is being continued and expanded over in github.com//pull/36548. Looks promising so far 🙏 Thanks @dgarciabriseno for getting this started!

@sfirke sfirke closed this Dec 18, 2025
@github-project-automation github-project-automation Bot moved this from In Progress to Done in Superset Docs Dec 18, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

doc Namespace | Anything related to documentation size/S

Projects

Status: Done

Development

Successfully merging this pull request may close these issues.

2 participants