Custom Roles

Create your own custom role types for greater control of permissions assigned to users at the Workplace and Project level.

Custom roles allow you to create more fine-grained permission assignments than the default Workplace and Project roles supplied by Doppler so you can better apply the principle of least privilege.

When combined with User Groups and SCIM for automated user provisioning, users can be automatically assigned custom roles at the project and workplace level based on group membership.

šŸ“·

Requires an upgraded subscription

This feature is standard on our Enterprise plan or can be added on to an existing Team plan. Explore pricing or book a demo for more details.

Prerequisites

Management

Custom Roles are created and managed by navigating to the Doppler dashboard under Team -> Roles.

Roles can be assigned at the Workplace and Project level:

  • Workplace: Each user can be assigned a single Workplace role (groups cannot currently be assigned a Workplace role). These roles include permissions for accessing logs, team management, settings, billing, etc. You can see a full list of permissions below.
  • Project: Each user or group can be assigned one Project role per project. If you need different permissions on a per-config basis, you can assign separate permission levels to different groups and assign the users into these various groups. The permissions granted to the user are the highest available from the combination of all roles they have applied to them. These roles include permissions for secrets read/write, project management, project access, config management, etc. You can see a full list of permissions below.

Assignment

Custom roles are assigned in the same way Doppler's pre-defined roles are.

Default

The default workplace role is assigned when a new user joins a workplace if the user's role is undefined (e.g. if user groups are not used)

Workplace Level

Navigate to the dashboard Team page and click on the Users tab to assign a specific role to user:

Project Level

Navigate to Members in the Project sub-menu menu to assign permissions at the Project level.

Available Permissions

Below is a breakdown of all the available permissions for Workplace and Project roles. The Dependencies column lists permissions that must also be enabled for a given permission to function. In the dashboard, dependencies are automatically enabled when a permission is turned on. When using the API, you must explicitly include all required dependencies. Dependencies may have their own dependencies that must also be included (transitively).

Workplace

NameAPI SlugCategoryDependenciesDescription
Access All Projectsall_enclave_projectsProject Access—Automatically adds the user as a member on all projects in the workplace.
Admin on All Projectsall_enclave_projects_adminProject AccessAccess All Projects, View TeamAutomatically gives the user Admin level permissions on all projects in the workplace. Admins on a project have the ability to manage that project's environments, user memberships, and webhooks. They can also enable/disable project-level secret referencing, access all environments/configs, rename the project, and delete the project.
Create Projectcreate_enclave_projectProject Management—Allows the user to create new projects in the workplace.
Manage Secrets Referencingenclave_secrets_referencingProject ManagementManage SettingsAllows the user to enable or disable Secret Referencing on the workplace level (i.e., enable or disable it for ALL projects).
Manage Config Inheritanceenclave_inheritanceProject ManagementManage SettingsAllows the user to enable or disable Config Inheritance on the workplace level (i.e., enable or disable it for ALL projects).
View Default Environmentsworkplace_default_environments_readProject Management—Allows the user to view the Default Environments for the workplace.
Manage Default Environmentsworkplace_default_environments_manageProject ManagementView Default EnvironmentsAllows the user to modify the Default Environments for the workplace.
View Change Request Policieschange_request_policy_readChange RequestsView TeamAllows the user to view workplace-level Change Request policies.
Manage Change Request Policieschange_request_policy_manageChange RequestsView Team, View Change Request PoliciesAllows the user to create, edit, and delete workplace-level Change Request policies.
View LogslogsActivity Logs—Allows the user to view only the workplace Activity Logs the user has access to.
View All Logslogs_auditActivity LogsView LogsAllows the user to view ALL workplace Activity Logs.
Access Analytics Dashboardanalytics_dashboardAnalytics DashboardAccess All Projects, Admin on All ProjectsAllows the user to view the Analytics Dashboard.
View TeamteamTeam Management—Allows the user to view the Team settings page – including read access to the Users, Groups, and Roles tabs.
Manage Team *team_manageTeam ManagementView Team, List Verified DomainsAllows the user to make changes to the Team settings – including inviting users, creating/modifying groups, and assigning users to groups. It also provides access to the SSO tab and allows the user to configure the workplace's SSO settings. Enabling this permission automatically enables the View Settings and List Verified Domains permissions as they're required.
Manage Custom Roles *custom_roles_manageTeam ManagementView TeamAllows the user to create or modify Custom Roles from the Roles tab on the Team settings page.
View Service Accountsservice_accountsService AccountsView TeamAllows the user to view Service Accounts on the Team settings page, including the projects they have access to.
Manage Service Accountsservice_accounts_manageService AccountsView Service AccountsAllows the user to create or modify Service Accounts on the Team settings page.
View Service Account API Tokensservice_account_api_tokensService AccountsView Service AccountsAllows the user to view a list of all existing Service Accounts API Tokens. This allows them to see a preview of the token value, but not the full value.
Manage Service Account API Tokensservice_account_api_tokens_manageService AccountsView Service Account API Tokens, Manage Service AccountsAllows the user to create or modify Service Account API Tokens. This includes the ability to roll an existing API token (which would then provide access to the new token value).
View Service Account Identitiesservice_account_identitiesService AccountsView Service AccountsAllows the user to view identities belonging to Service Accounts.
Manage Service Account Identitiesservice_account_identities_manageService AccountsView Service Account Identities, Manage Service AccountsAllows the user to create, edit, and delete identities belonging to Service Accounts.
View BillingbillingBilling Management—Allows the user to access the Billing settings page and view the current plan the workplace is on.
Manage Billingbilling_manageBilling ManagementView BillingAllows the user to view and modify the workplace plan and payment method on the Billing settings page.
View SettingssettingsSettings Management—Allows the user to access the workplace Settings page and view the current workplace settings.
Manage Settingssettings_manageSettings ManagementView SettingsAllows the user to delete the workplace and modify the workplace Settings – including the ability to rename the workplace, update contact emails, and add or update Logging Services.
List Verified Domainsverified_domainsSettings ManagementView SettingsAllows the user to view the workplace's Verified Domains on the workplace Settings page.
Manage Verified Domainsverified_domains_manageSettings ManagementList Verified Domains, Manage SettingsAllows the user to add or modify the workplace's Verified Domains on the workplace Settings page.
Use All Integration Connectionsworkplace_integrations_readIntegration ConnectionsView All Integration ConnectionsAllows the user to create syncs, rotated secrets, and dynamic secrets using existing Integration connections that have already been created and configured.
View All Integration Connectionsworkplace_integrations_listIntegration Connections—Allows the user to view all the existing Integration connections from the workplace Integrations page.
Manage All Integration Connectionsworkplace_integrations_manageIntegration ConnectionsView All Integration Connections, Use All Integration ConnectionsAllows the user to create Integration connections from the sync creation page and modify existing Integration connections from the workplace Integrations page.
Create Integration Connectionworkplace_integrations_createIntegration ConnectionsView All Integration ConnectionsAllows the user to create new Integration connections. Requires the ability to list existing connections to prevent duplicates.
Manage EKMekmToken Engine (EKM)—Allows the user to configure the workplace's Enterprise Key Management (EKM) settings.

* Actors with this permission can change all permissions including their own.

Project

NameAPI SlugCategoryDependenciesDescription
Rename Projectenclave_project_renameProject—Allows the user to rename the project.
Delete Projectenclave_project_deleteProject—Allows the user to delete the project.
Manage Project Membersenclave_project_membersProject Access—Allows the user to add/remove users and groups to a project along with setting their permission level and which configs are accessible.
Access All Configsenclave_project_environment_allProject AccessList All EnvironmentsAllows the user to access all configs on the project. Used primarily to ensure a user will always have access to new configs added to the project over time.
List All Environmentsenclave_project_environment_list_allProject Access—Allows the user to view all environments on the main project config page.
Manage Notesenclave_project_secrets_notes_manageProject ToolsView Secrets, Manage SecretsAllows the user to create and modify Notes on secrets they have access to.
Manage Project Webhooksenclave_project_webhooksProject Tools—Allows the user to create and modify Webhooks on the project.
Manage Remindersenclave_secret_remindersProject ToolsView SecretsAllows the user to create and modify Reminders on secrets they have access to.
Manage Project Secrets Referencingenclave_project_secrets_referencingProject ToolsManage Config Secrets ReferencingAllows the user to enable or disable Secret Referencing for the project.
Manage Project Config Inheritanceenclave_project_inheritanceProject Tools—Allows the user to enable or disable Config Inheritance for the project.
Create Environmentsenclave_project_environment_createEnvironmentsList All EnvironmentsAllows the user to create new Environments for the project.
Delete Environmentsenclave_project_environment_deleteEnvironments—Allows the user to delete Environments for the project.
Reorder Environmentsenclave_project_environment_orderEnvironments—Allows the user to change the order of Environments on the main project config page. Note that this only impacts the order they're displayed in on the dashboard.
Rename Environmentsenclave_project_environment_renameEnvironments—Allows the user to rename Environments.
Manage Environment Settingsenclave_project_environment_settings_manageEnvironments—Allows the user to enable or disable Personal Configs for Environments they have access to.
Create Configenclave_project_config_createConfigManage SecretsAllows the user to create configs in Environments they have access to.
Delete Configenclave_project_config_deleteConfig—Allows the user to delete configs in Environments they have access to.
Duplicate Configenclave_project_config_duplicateConfigCreate ConfigAllows the user to duplicate configs in Environments they have access to.
Rename Configenclave_project_config_renameConfig—Allows the user to rename configs in the Environments they have access to.
Lock Configenclave_project_config_lockConfig—Allows the user to lock and unlock configs in the Environments they have access to. Locking a config prevents it from being renamed or deleted until unlocked.
Manage Service Tokensenclave_project_config_service_tokensConfig ToolsView SecretsAllows the user to create, roll, and delete service tokens for configs in the project.
Manage Trusted IPsenclave_project_config_trusted_ipsConfig ToolsView SecretsAllows the user to add, remove, and update Trusted IPs for configs they have access to.
Manage Config Secrets Referencingenclave_config_secrets_referencingConfig ToolsView SecretsAllows the user to enable or disable Secret Referencing at the config level for any configs they have access to.
Toggle Config Inheritanceenclave_config_toggle_inheritableConfig ToolsView SecretsAllows the user to toggle the inheritable status of a config for any configs they have access to via Config Inheritance.
View Config Logsenclave_config_logsConfig LogsView SecretsAllows the user to view the Activity Log for a config.
Rollback Changeenclave_project_config_logs_rollbackConfig LogsView Config Logs, Manage SecretsAllows the user to rollback a secret change from the Activity Log for a config they have access to.
View Config Access Logsenclave_config_access_logsAccess LogsView SecretsAllows the user to view the Access Logs for configs they have access to.
View Secretsenclave_project_config_secrets_readSecrets—Allows the user to view Secrets in the configs they have access to.
Manage Secretsenclave_project_config_secrets_writeSecretsView SecretsAllows the user to create, modify or delete Secrets in configs they have access to.
Approve Change Requestsenclave_config_change_request_reviewChange RequestsView SecretsAllows the user to review Change Requests to approve them.
Assign Change Request Policiesenclave_config_change_request_policy_manageChange Requests—Allows the user to manage Change Request policy assignments for configs they have access to.
Lease Dynamic Secretsenclave_project_config_dynamic_secrets_leases_writeDynamic SecretsView Dynamic Secrets, View SecretsAllows the user to lease a Dynamic Secret when fetching secrets from a config that contains them.
View Dynamic Secretsenclave_project_config_dynamic_secrets_readDynamic Secrets—Allows the user to view Dynamic Secrets that have been created in configs they have access to.
Manage Dynamic Secretenclave_project_config_dynamic_secrets_manageDynamic SecretsView Dynamic Secrets, Lease Dynamic SecretsAllows the user to create, modify, or delete Dynamic Secrets for configs they have access to.
View Rotated Secretsenclave_project_config_rotated_secrets_readRotated SecretsView SecretsAllows the user to view Rotated Secrets that been created in configs they have access to.
Manage Rotated Secretsenclave_project_config_rotated_secrets_manageRotated SecretsView Rotated SecretsAllows the user to create, modify, or delete Rotated Secrets for configs they have access to.
Manage Syncsenclave_config_syncs_manageSyncs—Allows the user to create, modify, or delete Syncs for configs the project.