---
component: ROOT
version: "2026.1"
slug: ROOT/administration/permissions-and-roles
canonical_url: "https://docs.gradle.com/develocity/2026.1/administration/access-control/permissions-and-roles/"
title: "Permissions and Roles"
description: "Manage user access in Develocity using Role-Based Access Control (RBAC)."
keywords: []
status: current
---

<!-- llms-index: https://docs.gradle.com/develocity/llms.txt -->

# Permissions and Roles

<a id="preamble"></a>

Define and audit system access by assigning roles, whether manually in the UI or via your identity provider.

This ensures all users and groups have the granular permissions their responsibilities require.

<a id="permissions-definitions"></a>

## Permission Definitions

Permissions are the individual building blocks of access. The following permissions can be combined to create custom roles or used to understand the capabilities of predefined roles.

The following table describes Develocity permissions and lists the corresponding configuration file values:

<a id="permissions"></a>

<table id="permissions" class="tableblock frame-all grid-all stretch"><colgroup><col style="width: 28.5714%;"> <col style="width: 14.2857%;"> <col style="width: 57.1429%;"></colgroup><tbody><tr><td class="tableblock halign-left valign-top">Permission</td><td class="tableblock halign-left valign-top">Config value</td><td class="tableblock halign-left valign-top">Description</td></tr><tr><th class="tableblock halign-left valign-top" colspan="3">Build data</th></tr><tr><td class="tableblock halign-left valign-top">View Build Scans and build data</td><td class="tableblock halign-left valign-top">viewScan</td><td class="tableblock halign-left valign-top">Allows you to view Build Scans and associated build data.</td></tr><tr><td class="tableblock halign-left valign-top">Publish Build Scans</td><td class="tableblock halign-left valign-top">publishScan</td><td class="tableblock halign-left valign-top">Allows you to publish Build Scans.</td></tr><tr><td class="tableblock halign-left valign-top">Access build data via the API</td><td class="tableblock halign-left valign-top">exportData</td><td class="tableblock halign-left valign-top">Allows you to access the Develocity API.</td></tr><tr><td class="tableblock halign-left valign-top">Delete build scans</td><td class="tableblock halign-left valign-top">deleteScan</td><td class="tableblock halign-left valign-top">Allows you to delete any Build Scan that you have access to.</td></tr><tr><th class="tableblock halign-left valign-top" colspan="3">Test acceleration</th></tr><tr><td class="tableblock halign-left valign-top">Use Test Distribution</td><td class="tableblock halign-left valign-top">testDistribution</td><td class="tableblock halign-left valign-top">Allows you to use Test Distribution.</td></tr><tr><td class="tableblock halign-left valign-top"><a id="use-predictive-test-selection"></a>Use Predictive Test Selection</td><td class="tableblock halign-left valign-top">predictiveTestSelection</td><td class="tableblock halign-left valign-top">Allows you to use Predictive Test Selection.</td></tr><tr><th class="tableblock halign-left valign-top" colspan="3">Build caching</th></tr><tr><td class="tableblock halign-left valign-top">Read Build Cache data</td><td class="tableblock halign-left valign-top">readCache</td><td class="tableblock halign-left valign-top">Allows you to read Build Cache data.</td></tr><tr><td class="tableblock halign-left valign-top">Read and write Build Cache data</td><td class="tableblock halign-left valign-top">writeCache</td><td class="tableblock halign-left valign-top">Allows you to read and write Build Cache data.</td></tr><tr><td class="tableblock halign-left valign-top">Read Build Cache data and write Bazel CAS data</td><td class="tableblock halign-left valign-top">readCacheWriteCas</td><td class="tableblock halign-left valign-top">Allows you to read Build Cache data and write data to the content-addressable storage exposed by the Build Cache’s Bazel functionality. If you typically assign read-only access to the cache for developers and write access only for CI, consider granting this permission to developers who use Bazel. The readCacheWriteCas permission allows developers using Bazel to benefit from richer local Build Scans while maintaining a similar level of security.</td></tr><tr><th class="tableblock halign-left valign-top" colspan="3">Projects</th></tr><tr><td class="tableblock halign-left valign-top"><a id="access-data-without-associated-project"></a>Access all data without an associated project</td><td class="tableblock halign-left valign-top">accessDataWithoutAssociatedProject</td><td class="tableblock halign-left valign-top">Allows you to access and push data that’s not associated with a project.</td></tr><tr><td class="tableblock halign-left valign-top"><a id="access-all-data-with-or-without-associated-project"></a>Access all data with or without associated project</td><td class="tableblock halign-left valign-top">accessAllDataWithOrWithoutAssociatedProject</td><td class="tableblock halign-left valign-top">Allows you to access and push all data for all projects, and data that’s not associated with a project.</td></tr><tr><th class="tableblock halign-left valign-top" colspan="3">Administration</th></tr><tr><td class="tableblock halign-left valign-top">Configure Edge nodes</td><td class="tableblock halign-left valign-top">administerEdges</td><td class="tableblock halign-left valign-top">Allows you to configure Edge node functionality.</td></tr><tr><td class="tableblock halign-left valign-top">Configure Build Caching</td><td class="tableblock halign-left valign-top">administerCache</td><td class="tableblock halign-left valign-top">Allows you to configure Build Cache functionality.</td></tr><tr><td class="tableblock halign-left valign-top">Configure Test Distribution</td><td class="tableblock halign-left valign-top">administerTestDistribution</td><td class="tableblock halign-left valign-top">Allows you to configure Test Distribution functionality.</td></tr><tr><td class="tableblock halign-left valign-top"><a id="configure-projects-permission"></a>Configure projects</td><td class="tableblock halign-left valign-top">administerProjects</td><td class="tableblock halign-left valign-top">Allows you to configure projects and project groups for project-level access control from the Administration console or by using the Develocity API.</td></tr><tr><td class="tableblock halign-left valign-top"><a id="configure-access-control-permission"></a>Configure access control</td><td class="tableblock halign-left valign-top">administerAccessControl</td><td class="tableblock halign-left valign-top">Allows you to configure access control settings, including user management and identity provider configuration.</td></tr><tr><td class="tableblock halign-left valign-top"><a id="configure-operational-settings-permission"></a>Configure operational settings</td><td class="tableblock halign-left valign-top">administerOperationalSettings</td><td class="tableblock halign-left valign-top">Allows you to configure operational settings, such as disk space management and email settings.</td></tr><tr><td class="tableblock halign-left valign-top">Generate support bundles</td><td class="tableblock halign-left valign-top">generateSupportBundle</td><td class="tableblock halign-left valign-top">Allows you to generate support bundles.</td></tr></tbody></table>

> [!WARNING]
> Permissions such as Configure access control permission and Configure operational settings permission allow privilege escalation.

> [!NOTE]
> The [Access all data without an associated project](#access-data-without-associated-project) and [Access all data with or without associated project](#access-all-data-with-or-without-associated-project) permissions are granted to all users automatically when [project-level access control](https://docs.gradle.com/develocity/2026.1/administration/access-control/project-level-access-control/) is disabled.

You manage permissions by assigning roles to users, either in Develocity or by mapping roles from an external identity provider. Both methods are described later on this page.

Develocity includes a basic set of preconfigured roles, shown in the following table.

<a id="predefined-roles"></a>

## Predefined Roles

Develocity includes several predefined roles designed to cover the most common user personas.

<table class="tableblock frame-all grid-all stretch"><colgroup><col style="width: 11.1111%;"> <col style="width: 11.1111%;"> <col style="width: 33.3333%;"> <col style="width: 44.4445%;"></colgroup><tbody><tr><td class="tableblock halign-left valign-top">Role</td><td class="tableblock halign-left valign-top">Display name</td><td class="tableblock halign-left valign-top">Description</td><td class="tableblock halign-left valign-top">Permissions</td></tr><tr><td class="tableblock halign-left valign-top">admin</td><td class="tableblock halign-left valign-top">Administrator</td><td class="tableblock halign-left valign-top">Administer Develocity</td><td class="tableblock halign-left valign-top">Configure Edge nodes Configure Build Caching Configure Test Distribution Configure projects Configure access control Configure operational settings Generate support bundles Delete build scans</td></tr><tr><td class="tableblock halign-left valign-top">api-client</td><td class="tableblock halign-left valign-top">API Client</td><td class="tableblock halign-left valign-top">Access build data via the API. Doesn’t include access to the administrative API endpoints.</td><td class="tableblock halign-left valign-top">Access build data via the API</td></tr><tr><td class="tableblock halign-left valign-top">ci-agent</td><td class="tableblock halign-left valign-top">CI Agent</td><td class="tableblock halign-left valign-top">Use Develocity for CI builds</td><td class="tableblock halign-left valign-top">Publish Build Scans Use Test Distribution Use Predictive Test Selection Read Build Cache data Read and write Build Cache data Access all data without an associated project Access all data with or without associated project</td></tr><tr><td class="tableblock halign-left valign-top">developer</td><td class="tableblock halign-left valign-top">Developer</td><td class="tableblock halign-left valign-top">Use Develocity</td><td class="tableblock halign-left valign-top">View Build Scans and build data Publish Build Scans Use Test Distribution Use Predictive Test Selection Read Build Cache data Read Build Cache data and write Bazel CAS data</td></tr></tbody></table>

For externally managed user accounts (LDAP or SAML 2.0), roles can be managed locally or by group/role membership defined by the provider. When using provider-defined membership, each Develocity role can be mapped to one external group/role.

> [!NOTE]
> Custom roles: You can create custom roles to meet specific security requirements by navigating to Administration  Access control  Roles.

<a id="custom-roles"></a>

## Custom Roles

<a id="configure-via-the-user-interface"></a>

### Configure via the User Interface

To create and manage custom roles in the Develocity UI:

1.  Log in to Develocity as a user with the **Administrator** role.
    
2.  Navigate to **Administration**  **Access control**  **Roles**.
    
3.  Select **Add Role** to create a new role.
    
4.  Enter a name and description for the role.
    
5.  Select the desired permissions for the role.
    
6.  Click **Save** to store the role.
    
7.  Click **Apply** in the upper-right corner to activate the changes.
    

> [!IMPORTANT]
> Changes to access control settings may take up to 20 minutes to propagate through the various components of Develocity.

![Custom Role Creation in Develocity UI](https://docs.gradle.com/develocity/2026.1/administration/access-control/permissions-and-roles/../../_images/dv-ui-custom-role.png)

Custom Role Creation in Develocity UI

<a id="configure-via-unattended-configuration"></a>

### Configure via Unattended Configuration

If you are managing Develocity using a GitOps or automated workflow, you can define the global settings using [Unattended Configuration](https://docs.gradle.com/develocity/2026.1/administration/unattended-configuration/). Depending on your deployment strategy, you can provide these settings either as Integrated configuration within your _values.yaml_ or as a **Standalone** configuration file.

```yaml
version: 15
systemPassword: "«hashed-system-password»"
auth:
  anonymousPermissions:
    - viewScan
    - publishScan
    - predictiveTestSelection
  external: null
  projects:
    acceptAnonymousProjects: true
    enabled: false
  roles:
    acme-role:
      assignToNewExternalUsers: false
      description: ACME example role
      displayName: ACME Role
      identityProviderAttributeValue: null
      permissions:
        - publishScan
```

<a id="deployment-templates"></a>

#### Deployment Templates

Download the appropriate YAML template to begin your infrastructure configuration.

_For Develocity versions 2025.3 and prior, see the [2025.2 Administration Guide](https://docs.gradle.com/develocity/legacy/helm-admin/2025.2) or the [2025.3 Administration Manual](https://docs.gradle.com/develocity/2025.3/administration/admin-manual/)._

<table><tbody><tr><td class="hdlist1"><strong>Cluster Deployment</strong></td><td class="hdlist2">Example template for cluster orchestration. gradle-enterprise-config-schema-15.yaml SHA256 ASC ASC SHA256</td></tr><tr><td class="hdlist1"><strong>Standalone Deployment</strong></td><td class="hdlist2">Example template for standalone setup. gradle-standalone-config-schema-15.yaml | SHA256 | ASC | ASC SHA256</td></tr></tbody></table>

> [!IMPORTANT]
> Pre-deployment Checklist Backup: Export your current settings via Administration  Import/export before applying changes. Deployment: After updating your values.yaml, re-deploy using Helm. Impact: This triggers service restarts and may take several minutes to complete. See Unattended Configuration for details.

<a id="managing-role-assignments"></a>

## Managing Role Assignments

You can assign roles to users through two primary methods:

<a id="manual-assignment-local"></a>

### Manual Assignment (Local)

For local users or specific overrides, manage roles directly in the UI:

1.  Navigate to **Administration**  **Access control**  **Users**.
    
2.  Select a user and check the desired roles.
    
3.  Click **Save**.
    

<a id="identity-provider-mapping-external"></a>

### Identity Provider Mapping (External)

For SAML or LDAP users, roles are typically mapped from your organization’s groups:

1.  Navigate to **Administration**  **Access control**  **Identity provider**.
    
2.  In the **Role membership** section, select **Defined by identity provider**.
    
3.  Map your external group names (e.g., `dev-team-lead`) to Develocity roles (e.g., `Administrator`).
    

<a id="related-tasks"></a>

## Related Tasks

*   [Bootstrapping with the System User](https://docs.gradle.com/develocity/2026.1/administration/access-control/system-user/)
    
*   [Configuring SAML/LDAP](https://docs.gradle.com/develocity/2026.1/administration/access-control/identity-provider/)
    
*   [Restricting Access by Project](https://docs.gradle.com/develocity/2026.1/administration/access-control/project-level-access-control/)