{"version":3,"sources":["webpack:///./src/pages/docs/security-page.mdx"],"names":["_frontmatter","layoutProps","MDXLayout","DefaultLayout","MDXContent","components","props","mdxType","parentName","isMDXComponent"],"mappings":"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","file":"component---src-pages-docs-security-page-mdx-8f504d025681449001dd.js","sourcesContent":["import * as React from 'react'\n  /* @jsx mdx */\nimport { mdx } from '@mdx-js/react';\n/* @jsxRuntime classic */\n\n/* @jsx mdx */\n\nimport DefaultLayout from \"/home/runner/work/superset/superset/docs/node_modules/gatsby-theme-docz/src/base/Layout.js\";\nexport const _frontmatter = {};\nconst layoutProps = {\n  _frontmatter\n};\nconst MDXLayout = DefaultLayout;\nexport default function MDXContent({\n  components,\n  ...props\n}) {\n  return <MDXLayout {...layoutProps} {...props} components={components} mdxType=\"MDXLayout\">\n\n\n    <h3 {...{\n      \"id\": \"roles\"\n    }}>{`Roles`}</h3>\n    <p>{`Security in Superset is handled by Flask AppBuilder (FAB), an application development framework\nbuilt on top of Flask.”. FAB provides authentication, user management, permissions and roles.\nPlease read its `}<a parentName=\"p\" {...{\n        \"href\": \"https://flask-appbuilder.readthedocs.io/en/latest/security.html\"\n      }}>{`Security documentation`}</a>{`.`}</p>\n    <h3 {...{\n      \"id\": \"provided-roles\"\n    }}>{`Provided Roles`}</h3>\n    <p>{`Superset ships with a set of roles that are handled by Superset itself. You can assume\nthat these roles will stay up-to-date as Superset evolves (and as you update Superset versions).`}</p>\n    <p>{`Even though `}<strong parentName=\"p\">{`Admin`}</strong>{` users have the ability, we don't recommend that altering the\npermissions associated with each role (e.g. by removing or adding permissions to them). The permissions\nassociated with each role will be re-synchronized to their original values when you run\nthe `}<strong parentName=\"p\">{`superset init`}</strong>{` command (often done between Superset versions).`}</p>\n    <h3 {...{\n      \"id\": \"admin\"\n    }}>{`Admin`}</h3>\n    <p>{`Admins have all possible rights, including granting or revoking rights from other\nusers and altering other people’s slices and dashboards.`}</p>\n    <h3 {...{\n      \"id\": \"alpha\"\n    }}>{`Alpha`}</h3>\n    <p>{`Alpha users have access to all data sources, but they cannot grant or revoke access\nfrom other users. They are also limited to altering the objects that they own. Alpha users can add and alter data sources.`}</p>\n    <h3 {...{\n      \"id\": \"gamma\"\n    }}>{`Gamma`}</h3>\n    <p>{`Gamma users have limited access. They can only consume data coming from data sources\nthey have been given access to through another complementary role. They only have access to\nview the slices and dashboards made from data sources that they have access to. Currently Gamma\nusers are not able to alter or add data sources. We assume that they are mostly content consumers, though they can create slices and dashboards.`}</p>\n    <p>{`Also note that when Gamma users look at the dashboards and slices list view, they will\nonly see the objects that they have access to.`}</p>\n    <h3 {...{\n      \"id\": \"sql_lab\"\n    }}>{`sql_lab`}</h3>\n    <p>{`The `}<strong parentName=\"p\">{`sql_lab`}</strong>{` role grants access to SQL Lab. Note that while `}<strong parentName=\"p\">{`Admin`}</strong>{` users have access\nto all databases by default, both `}<strong parentName=\"p\">{`Alpha`}</strong>{` and `}<strong parentName=\"p\">{`Gamma`}</strong>{` users need to be given access on a per database basis.`}</p>\n    <h3 {...{\n      \"id\": \"public\"\n    }}>{`Public`}</h3>\n    <p>{`To allow logged-out users to access some Superset features, you can use the `}<inlineCode parentName=\"p\">{`PUBLIC_ROLE_LIKE`}</inlineCode>{` config setting and assign it to another role whose permissions you want passed to this role.`}</p>\n    <p>{`For example, by setting `}<inlineCode parentName=\"p\">{`PUBLIC_ROLE_LIKE = Gamma`}</inlineCode>{` in your `}<inlineCode parentName=\"p\">{`superset_config.py`}</inlineCode>{` file, you grant\npublic role the same set of permissions as for the `}<strong parentName=\"p\">{`Gamma`}</strong>{` role. This is useful if one\nwants to enable anonymous users to view dashboards. Explicit grant on specific datasets is\nstill required, meaning that you need to edit the `}<strong parentName=\"p\">{`Public`}</strong>{` role and add the public data sources to the role manually.`}</p>\n    <h3 {...{\n      \"id\": \"managing-data-source-access-for-gamma-roles\"\n    }}>{`Managing Data Source Access for Gamma Roles`}</h3>\n    <p>{`Here’s how to provide users access to only specific datasets. First make sure the users with\nlimited access have `}{`[only]`}{` the Gamma role assigned to them. Second, create a new role (Menu -> Security -> List Roles) and click the + sign.`}</p>\n    <p>{`This new window allows you to give this new role a name, attribute it to users and select the\ntables in the `}<strong parentName=\"p\">{`Permissions`}</strong>{` dropdown. To select the data sources you want to associate with this role, simply click on the dropdown and use the typeahead to search for your table names.`}</p>\n    <p>{`You can then confirm with users assigned to the `}<strong parentName=\"p\">{`Gamma`}</strong>{` role that they see the\nobjects (dashboards and slices) associated with the tables you just extended them.`}</p>\n    <h3 {...{\n      \"id\": \"customizing-permissions\"\n    }}>{`Customizing Permissions`}</h3>\n    <p>{`The permissions exposed by FAB are very granular and allow for a great level of\ncustomization. FAB creates many permissions automagically for each model that is\ncreated (can_add, can_delete, can_show, can_edit, …) as well as for each view.\nOn top of that, Superset can expose more granular permissions like `}<strong parentName=\"p\">{`all_datasource_access`}</strong>{`.`}</p>\n    <p><strong parentName=\"p\">{`We do not recommend altering the 3 base roles as there are a set of assumptions that\nSuperset is built upon`}</strong>{`. It is possible though for you to create your own roles, and union them to existing ones.`}</p>\n    <h3 {...{\n      \"id\": \"permissions\"\n    }}>{`Permissions`}</h3>\n    <p>{`Roles are composed of a set of permissions, and Superset has many categories of\npermissions. Here are the different categories of permissions:`}</p>\n    <ul>\n      <li parentName=\"ul\">{`Model & Action: models are entities like Dashboard, Slice, or User. Each model has\na fixed set of permissions, like `}<strong parentName=\"li\">{`can_edit`}</strong>{`, `}<strong parentName=\"li\">{`can_show`}</strong>{`, `}<strong parentName=\"li\">{`can_delete`}</strong>{`, `}<strong parentName=\"li\">{`can_list`}</strong>{`, `}<strong parentName=\"li\">{`can_add`}</strong>{`,\nand so on. For example, you can allow a user to delete dashboards by adding `}<strong parentName=\"li\">{`can_delete`}</strong>{` on\nDashboard entity to a role and granting this user that role.`}</li>\n      <li parentName=\"ul\">{`Views: views are individual web pages, like the Explore view or the SQL Lab view.\nWhen granted to a user, they will see that view in its menu items, and be able to load that page.`}</li>\n      <li parentName=\"ul\">{`Data source: For each data source, a permission is created. If the user does not have the\n`}<inlineCode parentName=\"li\">{`all_datasource_access permission`}</inlineCode>{` granted, the user will only be able to see Slices or explore the data sources that are granted to them`}</li>\n      <li parentName=\"ul\">{`Database: Granting access to a database allows for the user to access all\ndata sources within that database, and will enable the user to query that\ndatabase in SQL Lab, provided that the SQL Lab specific permission have been granted to the user`}</li>\n    </ul>\n    <h3 {...{\n      \"id\": \"restricting-access-to-a-subset-of-data-sources\"\n    }}>{`Restricting Access to a Subset of Data Sources`}</h3>\n    <p>{`We recommend giving a user the `}<strong parentName=\"p\">{`Gamma`}</strong>{` role plus any other roles that would add\naccess to specific data sources. We recommend that you create individual roles for\neach access profile. For example, the users on the Finance team might have access to a set of\ndatabases and data sources; these permissions can be consolidated in a single role.\nUsers with this profile then need to be assigned the `}<strong parentName=\"p\">{`Gamma`}</strong>{` role as a foundation to\nthe models and views they can access, and that Finance role that is a collection of permissions to data objects.`}</p>\n    <p>{`A user can have multiple roles associated with them. For example, an executive on the Finance\nteam could be granted `}<strong parentName=\"p\">{`Gamma`}</strong>{`, `}<strong parentName=\"p\">{`Finance`}</strong>{`, and the `}<strong parentName=\"p\">{`Executive`}</strong>{` roles. The `}<strong parentName=\"p\">{`Executive`}</strong>{`\nrole could provide access to a set of data sources and dashboards made available only to executives.\nIn the `}<strong parentName=\"p\">{`Dashboards`}</strong>{` view, a user can only see the ones they have access too\nbased on the roles and permissions that were attributed.`}</p>\n    <h3 {...{\n      \"id\": \"row-level-security\"\n    }}>{`Row Level Security`}</h3>\n    <p>{`Using Row Level Security filters (under the `}<strong parentName=\"p\">{`Security`}</strong>{` menu) you can create filters\nthat are assigned to a particular table, as well as a set of roles.\nIf you want members of the Finance team to only have access to\nrows where `}<inlineCode parentName=\"p\">{`department = \"finance\"`}</inlineCode>{`, you could:`}</p>\n    <ul>\n      <li parentName=\"ul\">{`Create a Row Level Security filter with that clause (`}<inlineCode parentName=\"li\">{`department = \"finance\"`}</inlineCode>{`)`}</li>\n      <li parentName=\"ul\">{`Then assign the clause to the `}<strong parentName=\"li\">{`Finance`}</strong>{` role and the table it applies to`}</li>\n    </ul>\n    <p>{`The `}<strong parentName=\"p\">{`clause`}</strong>{` field, which can contain arbitrary text, is then added to the generated\nSQL statement’s WHERE clause. So you could even do something like create a filter\nfor the last 30 days and apply it to a specific role, with a clause\nlike `}<inlineCode parentName=\"p\">{`date_field > DATE_SUB(NOW(), INTERVAL 30 DAY)`}</inlineCode>{`. It can also support\nmultiple conditions: `}<inlineCode parentName=\"p\">{`client_id = 6`}</inlineCode>{` AND `}<inlineCode parentName=\"p\">{`advertiser=\"foo\"`}</inlineCode>{`, etc.`}</p>\n    <p>{`All relevant Row level security filters will be combined together (under the hood,\nthe different SQL clauses are combined using AND statements). This means it's\npossible to create a situation where two roles conflict in such a way as to limit a table subset to empty.`}</p>\n    <p>{`For example, the filters `}<inlineCode parentName=\"p\">{`client_id=4`}</inlineCode>{` and `}<inlineCode parentName=\"p\">{`client_id=5`}</inlineCode>{`, applied to a role,\nwill result in users of that role having `}<inlineCode parentName=\"p\">{`client_id=4`}</inlineCode>{` AND `}<inlineCode parentName=\"p\">{`client_id=5`}</inlineCode>{`\nadded to their query, which can never be true.`}</p>\n    <h3 {...{\n      \"id\": \"reporting-security-vulnerabilities\"\n    }}>{`Reporting Security Vulnerabilities`}</h3>\n    <p>{`Apache Software Foundation takes a rigorous standpoint in annihilating the security issues in its\nsoftware projects. Apache Superset is highly sensitive and forthcoming to issues pertaining to its\nfeatures and functionality.`}</p>\n    <p>{`If you have apprehensions regarding Superset security or you discover vulnerability or potential\nthreat, don’t hesitate to get in touch with the Apache Security Team by dropping a mail at\n`}<a parentName=\"p\" {...{\n        \"href\": \"mailto:security@apache.org.\"\n      }}>{`security@apache.org.`}</a>{` In the mail, specify the project name Superset with the description of the\nissue or potential threat. You are also urged to recommend the way to reproduce and replicate the\nissue. The security team and the Superset community will get back to you after assessing and\nanalysing the findings.`}</p>\n    <p>{`PLEASE PAY ATTENTION to report the security issue on the security email before disclosing it on\npublic domain. The ASF Security Team maintains a page with the description of how vulnerabilities\nand potential threats are handled, check their web page for more details.`}</p>\n\n    </MDXLayout>;\n}\n;\nMDXContent.isMDXComponent = true;\n      "],"sourceRoot":""}