Role-based access control
Role-based access control
Role-based access control
Unleash implements role-based access control on two levels:

Unleash comes with a set of predefined roles. Root roles are available to all Unleash users, while the Project roles are only available to Enterprise users. The following table lists the roles, what they do, and what plans they are available in. Additionally, Enterprise users can create their own custom root roles and custom project roles.
Custom root roles let you define your own root roles with a specific set of root permissions. The roles can then be assigned to entities (users, service accounts, and groups) at the root level. This allows you to control access to resources in a more precise, fine-grained way.
Each custom root role consists of:
To create a custom root role in the Admin UI, do the following:
Once you have the role set up, you can assign it a user:
You can assign the following root permissions:
Permissions to manage API tokens.
Permissions to manage applications.
Permissions to manage authentication settings.
Permissions to manage context fields.
Permissions to manage instance-wide maintenance settings.
Permissions to manage integrations.
Permissions to manage projects.
Permissions to manage release templates.
Permissions to manage roles.
Permissions to manage strategies.
Permissions to manage tag types.
Custom project roles let you define your own project roles with a specific set of project permissions down to the environment level. The roles can then be assigned to users in specific projects. All users have viewer access to all projects and resources but must be assigned a project role to be allowed to edit a project’s resources.
Each custom project role consists of:
To create a custom project role in the Admin UI, do the following:
Once you have the role set up, you can assign it to individual users inside a project:
You can assign the following project-level permissions. These permissions are valid across all of the project’s environments.
You can assign the following permissions on a per-environment level within the project:
Multiple project roles allow you to assign multiple project roles to a user or group within a project. By doing so, you can effectively merge the permissions associated with each role, resulting in a comprehensive set of permissions for the user or group in question. This ensures that individuals or teams have all the access they require to complete their tasks, as the system will automatically grant the most permissive rights from the combination of assigned roles.
This multi-role assignment feature can be particularly beneficial in complex projects with dynamic teams where a user or group needs to wear multiple hats. For example, a team member could serve as both a developer and a quality assurance tester. By combining roles, you simplify the access management process, eliminating the need to create a new, custom role that encapsulates the needed permissions.
The access overview page helps administrators see exactly what a user can do in Unleash and which roles grant those permissions. You can explore permissions at the root level or for specific environments and projects.
To view a user’s permissions, go to Admin settings > User config > Users. Select a user and click Access overview.
User groups allow you to manage user permissions efficiently by assigning roles to a collection of users instead of individually. This is particularly useful for projects with many users.
You can create and manage user groups in the Admin UI at Admin settings > User config > Groups.
When creating a user group, you can define the following:
Groups themselves do not grant permissions. To be functional, a group must either:
A user can belong to multiple groups, and each group a user belongs to can have a different role assigned to it on a specific project. If a user gains permissions for a project through multiple groups, they will inherit the most permissive set of permissions from all their assigned group roles for that project.
You can integrate user groups with your single sign-on (SSO) provider to automatically manage user assignments. Note that this just-in-time process updates groups only when a user logs in, which differs from a full provisioning system like SCIM that syncs all user information proactively.
When a user logs in through SSO, they are automatically added to or removed from a user group based on their SSO group membership. Manually added users are not affected by the SSO sync.
To enable group syncing, you configure two settings in your SSO provider configuration:
For example, if your token response looks like this, you would set the Group field JSON path to groups:
After you enable syncing, you must link the SSO group names to the corresponding user group.
Once you’ve enabled group syncing and set an appropriate path, you’ll need to add the SSO group names to the Unleash group. This can be done by navigating to the Unleash group you want to enable sync for and adding the SSO group names to the “SSO group ID/name” property.
You must be an Admin in Unleash to perform these steps.
The next time a user who belongs to one of the linked SSO groups logs in, they are automatically added to the user group. If they have been removed from the SSO group, their access will be revoked on their next login.
create/overwrite variants (PUT)
and
update variants (PATCH) API endpoints, but it is not used for anything within the admin UI.
These API endpoints have been superseded by the environment-scoped endpoints:
create/overwrite environment variants (PUT)
and
update environment variants (PATCH), respectively.