Skip to main content

UI Permissions and Permission Sets

UI permissions control which sections of the Promethium interface are visible to a user and which actions they can perform. This page explains how permissions work, what each permission controls, and how to design access for the different user types in your organization.

UI permissions and data access are separate

UI permissions control what a user can see and do in the interface — which pages appear, which buttons are enabled, and which actions are available. They do not control which specific data objects (tables, datamaps, answers) the user can view or query. That is governed by Data Authorization access levels (Viewer, Editor, Owner). See Data Authorization for details.


How UI Permissions Work

Permissions are grouped into Permission Sets. A Permission Set is a named collection of permissions that can be attached to a Role. When a user is assigned a Role, they inherit all the permissions in every Permission Set that Role includes. A user with multiple roles receives the union of all permissions across all roles.

When a user logs in, Promethium resolves their full permission list and delivers it to the browser. Every guarded interface element — navigation items, buttons, action menus — checks this list at render time. If the required permission is absent, the element is hidden or disabled entirely. Users never see a lock icon or error for a feature they cannot access; it simply does not appear.

Key behaviors to understand:

  • Permission changes take effect after the user re-logs in — no code deployment or server restart is needed.
  • Removing a permission hides the corresponding UI element. The backend also independently enforces the same permissions — a user cannot bypass the restriction by calling the API directly.
  • Each top-level navigation section is controlled by an access_*_functionality gate permission. Without the gate, the entire section is invisible. The gate alone grants navigation access only — it does not automatically grant the ability to create, manage, or administer within that section.
  • To give read-only access to a section, grant only the gate permission. To allow management actions, add the corresponding manage_* or create_* permissions.

Permission Reference by UI Section

The sections below map every UI area to the permissions that control it. Use this as your guide when deciding what to include in a permission set.


These are the top-level permissions. Each one controls whether an entire section appears in the navigation. Without the gate, the user has no visibility into that section at all.

Permission KeyWhat disappears without itWho typically needs it
access_data_explorer_functionalityData Explorer — browsing and searching registered tables, views, and datamapsAll users who need to discover or query data
access_answer_functionalityAnswer Builder and the Answers listAnalysts and anyone using AI-powered queries
access_datamap_functionalityData Prep / Datamap editorData engineers and stewards who build data models
access_datasource_functionalityData Sources management pageEngineers and admins managing data connections
access_marketplace_functionalityMarketplace — browsing and managing published data productsAnyone who needs to discover, publish, or approve data products
access_system_dashboard_functionalitySystem Dashboard with usage analytics and query history widgetsUsers who need visibility into platform activity
access_project_functionalityProjects section — dbt project list and editorEngineers working with dbt transformation projects
access_tenant_management_functionalityTenant Management — users, roles, permissions, audit, domains, policies, contractsAdministrators only
access_job_management_functionalityJob Manager — scheduled job list and configurationUsers who create and manage scheduled jobs
access_system_management_functionalitySystem Management — platform-level settingsPlatform administrators
access_cluster_management_functionalityCluster Management — compute cluster configurationInfrastructure administrators
access_system_credentials_functionalitySystem Credentials — stored API keys and connection credentialsAdministrators managing stored credentials

System Dashboard

access_system_dashboard_functionality opens the System Dashboard page. The dashboard is composed of individual widgets — each widget requires its own permission to populate. Without the widget permission, that widget does not render.

Permission KeyWidget shownWhat the user sees
view_used_tableMost Used Tables and DatamapsCharts showing which tables and datamaps have been queried most recently
view_used_datasourceUsed Data SourcesStatistics on data source query activity
view_connected_datasourceConnected Data SourcesList of currently connected data sources and their status
view_recent_answerMost Used AnswersRecently accessed or frequently used answers
view_executionExecutionsQuery execution statistics and Trino query history

Data Explorer

access_data_explorer_functionality opens the Data Explorer. Which tables, views, and datamaps the user can see within the Explorer is determined by their Data Authorization access level — not by permission set keys.

The only action within Data Explorer requiring a specific permission is:

Permission KeyWhat the user can doWhen to grant
edit_endorsementAdd or remove endorsements on tables and datamapsGrant to data stewards and curators responsible for certifying data quality

Datamaps

access_datamap_functionality opens the Datamap editor. Viewing, editing, deleting, and sharing existing datamaps, tables, and views is controlled by the user's Data Authorization access level — no permission set key is needed for those actions.

Permission KeyWhat the user can doWhen to grant
create_datamapCreate a new datamap from scratch or from a data sourceGrant to data engineers and stewards who build semantic data models

Answers

access_answer_functionality opens the Answers page and Answer Builder. Viewing, editing, deleting, and sharing existing answers is controlled by Data Authorization — no permission set key is needed for those actions.

Permission KeyWhat the user can doWhen to grant
create_answerStart a new analysis — opens the Analyse flow and enables saving a new answerGrant to analysts and any user who needs to create or run AI-powered queries
Creating vs. accessing answers

The + New Analysis button is controlled by the create_answer permission, not by a user's Data Authorization access level (Viewer, Editor, Owner). A user with create_answer can start a new analysis regardless of their access level on other existing answers. Data Authorization access levels apply to saved answer objects: Viewer can open and run an existing answer, Editor can modify and publish it, Owner can delete it.


Marketplace

access_marketplace_functionality opens the Marketplace. Within it, three permissions control what a user can do:

Permission KeyWhat the user can doWhen to grant
view_marketplaceBrowse and view all published Marketplace listingsGrant to any user who needs to discover and use published data products
publish_marketplaceSubmit a datamap or answer for Marketplace publicationGrant to data engineers and stewards responsible for publishing curated data products
approve_marketplaceReview and approve or reject Marketplace publication requestsGrant to data governance leads who own the approval workflow. The approving user must also have Data Authorization access to the underlying datamap and answer — without it, the approval will fail with an error. Users with the data_admin role have unconstrained access. Users without data_admin need access assigned via domain grouping, role assignment, or direct user assignment.

Tenant Management

access_tenant_management_functionality opens the Tenant Management section. Read-only access to users, roles, and domains is available to all users by default. The permissions below control the ability to create, edit, and delete within each sub-section.

Permission KeyWhat the user can doWhen to grant
manage_userCreate, edit, and delete users; manage role assignmentsGrant to administrators responsible for user lifecycle management
manage_roleCreate, edit, and delete roles; manage which permission sets are attachedGrant to administrators responsible for role configuration
view_permission_setView the Permission Sets list and contentsGrant to administrators who audit permission configurations
manage_permission_setCreate, edit, and delete permission setsGrant to administrators responsible for permission set design
view_audit_logsView the Audit Logs tab — a full history of user and system actionsGrant to compliance, security, and operations personnel
manage_domainCreate, edit, and delete domainsGrant to data administrators who organize data into domains
view_policyView the Policies list and individual policy detailsGrant to administrators and compliance teams who review data policies
manage_policyCreate, edit, and delete data policiesGrant to data governance leads who define compliance policies
view_contractView the Contracts list and individual contract detailsGrant to users who need to review data contracts
manage_contractCreate, edit, and delete data contractsGrant to data governance leads who define and maintain data contracts
manage_data_access_controlAccess the Data Access Control UI; configure column masking, row-level security, and data access assignmentsGrant to data administrators who manage data security policies. Enabling this permission automatically includes manage_role, manage_domain, and manage_user.

Projects

access_project_functionality opens the Projects section for dbt transformation work.

Project access

Permission KeyWhat the user can doWhen to grant
create_projectCreate a new dbt project configurationGrant to leads who set up new projects
clone_projectClone an existing project from a Git repositoryGrant alongside create_project for engineers working from templates

Project workflow

Permission KeyWhat the user can doWhen to grant
publish_draftsPublish draft models from the project catalogGrant to engineers responsible for promoting changes
approve_draftsApprove draft model submissions from other usersGrant to project leads and code reviewers
perform_git_actionsAccess the Git Actions tab; commit, push, and pull changesGrant to engineers who manage version control
create_workspaceCreate new workspaces within a projectGrant to project administrators who provision environments

Project execution

Permission KeyWhat the user can doWhen to grant
execute_sql_commandsRun SQL queries in the project SQL editorGrant to engineers and analysts who test and run queries
execute_dbt_commandsRun dbt build and compile commandsGrant to data engineers who execute dbt transformations
preview_query_dataPreview query resultsGrant to any project user who needs to verify query output
download_query_dataDownload query results as CSV or ExcelGrant to users who need to export data for offline analysis

Project model editing

Permission KeyWhat the user can doWhen to grant
add_modelCreate new SQL model files in the project file treeGrant to engineers who add new models
edit_modelEdit SQL content in model filesGrant to engineers who contribute to or maintain models
enable_select_all_columns_in_modelUse SELECT * in model SQLGrant only when a project explicitly requires wildcard column selection

Designing Access for Your Users

A well-designed permission set answers two questions for each user type: which sections should be visible, and which actions should be enabled within those sections. Object-level access (who can read, edit, or delete specific tables, datamaps, and answers) is handled separately through Data Authorization.

Two-step process:

  1. Start with the access gate — Grant the access_*_functionality permission for each section the user needs. Without the gate, the section is completely invisible.
  2. Add action permissions — Grant create_* for object creation, manage_* for administrative control. Do not add permission set keys for view, edit, delete, or share on individual objects — use Data Authorization access levels for those.

Quick reference:

GoalPermissions to grant
User can browse the Data Explorer but only view data they are authorized to seeaccess_data_explorer_functionality
User can create and manage datamapsaccess_datamap_functionality + create_datamap
User can create and run AI analysesaccess_answer_functionality + create_answer
User can register and configure data sourcesaccess_datasource_functionality + manage_datasource
User can publish answers to the Marketplaceaccess_answer_functionality + access_marketplace_functionality + create_answer + publish_marketplace
User can manage users and rolesaccess_tenant_management_functionality + manage_user + manage_role
User can configure column masking and row-level securityaccess_tenant_management_functionality + manage_data_access_control

Standard Permission Sets

Promethium ships with six built-in permission sets designed around common user personas. These are starting points — you can create custom permission sets tailored to your organization's structure.

info

Changes to a permission set take effect for all users and roles assigned to it after they re-log in.

Tenant Admin

Manages users, roles, and permission sets across the tenant. Does not have access to data assets or platform configuration.

Best for: IT administrators, HR operations, access managers.

Module accessAction permissions
access_tenant_management_functionalitymanage_role, manage_user, view_audit_logs, manage_permission_set
access_marketplace_functionalityview_marketplace

Data Admin

Full platform access — manages data sources, domains, data access control, and all data assets. Intended for users responsible for the overall data platform.

Best for: Data platform owners, chief data officers, data governance leads.

Module accessAction permissions
access_answer_functionalitycreate_answer
access_system_dashboard_functionalityview_used_table, view_used_datasource, view_connected_datasource, view_recent_answer, view_execution
access_tenant_management_functionalitymanage_domain, manage_data_access_control, manage_policy, manage_contract, view_permission_set
access_data_explorer_functionalityedit_endorsement
access_datasource_functionalitymanage_datasource
access_datamap_functionalitycreate_datamap
access_project_functionalityclone_project, create_project, publish_drafts, approve_drafts, perform_git_actions, create_workspace, execute_sql_commands, preview_query_data, download_query_data, execute_dbt_commands, add_model, edit_model, enable_select_all_columns_in_model
access_marketplace_functionalityview_marketplace, publish_marketplace, approve_marketplace
System gatesaccess_job_management_functionality, access_system_management_functionality, access_cluster_management_functionality, access_system_credentials_functionality

Data Engineer

Builds and manages data pipelines, datamaps, and data sources. No administrative or governance capabilities.

Best for: Data engineers and analytics engineers who build and maintain data assets.

Module accessAction permissions
access_answer_functionalitycreate_answer
access_system_dashboard_functionalityview_used_table, view_used_datasource, view_connected_datasource, view_recent_answer, view_execution
access_data_explorer_functionalityedit_endorsement
access_datasource_functionalitymanage_datasource
access_datamap_functionalitycreate_datamap
access_marketplace_functionalityview_marketplace

Data Steward

Curates and governs data assets; manages Marketplace content. No data source or user administration.

Best for: Data stewards responsible for data quality, metadata accuracy, and marketplace governance.

Module accessAction permissions
access_system_dashboard_functionalityview_used_table, view_used_datasource, view_connected_datasource, view_recent_answer, view_execution
access_data_explorer_functionalityedit_endorsement
access_datasource_functionalitymanage_datasource
access_marketplace_functionalityview_marketplace, publish_marketplace, approve_marketplace

Data Explorer Permission Set

Explores data and works with data assets. No management or administration capabilities.

Best for: Data analysts who explore datasets and run queries for analysis.

Module accessAction permissions
access_system_dashboard_functionalityview_used_table, view_used_datasource, view_connected_datasource, view_recent_answer, view_execution
access_data_explorer_functionalityedit_endorsement
access_marketplace_functionalityview_marketplace

Business User

Consumes data products and published analyses. Focused on discovery and consumption, not creation or management.

Best for: Business analysts and end users who use existing data products.

Module accessAction permissions
access_system_dashboard_functionalityview_used_table, view_used_datasource, view_connected_datasource, view_recent_answer, view_execution
access_data_explorer_functionalityedit_endorsement
access_marketplace_functionalityview_marketplace

Managing Permission Sets

Viewing permission sets

The Permission Sets section within Tenant Management lists all permission sets in your tenant. Each entry shows the permission set name, the number of permissions it contains, which roles include it, and the last modification timestamp. You can search and filter by name.

Creating a custom permission set

In the Permission Sets section, use the creation interface to build a permission set from the permission tree. Permissions are organized by functional area (e.g., access_data_explorer_functionality, access_tenant_management_functionality). You can select permissions individually or by entire functional groups.

Editing a permission set

Open any permission set to modify its contents. Add or remove individual permissions from the tree. Changes take effect for all assigned users and roles after they re-log in.

Deleting a permission set

A permission set can only be deleted if it is not currently assigned to any role. Remove it from all role configurations first, then delete it.


Best Practices

  • Least privilege — Grant only the permissions users need to perform their day-to-day activities. A user who does not need to create datamaps should not have create_datamap, even if it seems harmless — it reduces surface area for mistakes.
  • Use access gates to define scope — If a user should not be working in a section at all, do not grant the gate. A user who cannot see the Projects section cannot accidentally affect dbt pipelines.
  • Separate roles by function — Design distinct roles for administrators, engineers, stewards, and consumers rather than sharing a single broad role. This makes it easier to adjust access as responsibilities change.
  • Use Data Authorization for object-level access — Do not try to replicate object-level read/write/delete control through permission set keys. Permission sets control feature access; Data Authorization controls data access. Mixing the two creates confusion and maintenance burden.
  • Audit periodically — Review role assignments and permission set contents regularly. Users change roles; permission sets can drift. The Audit Logs (available to users with view_audit_logs) provide a history of permission changes.

For configuring how users access specific data objects, see Data Authorization.