Develocity Administration Manual
This manual covers the configuration and operation of Develocity. It is useful for administrators and maintainers of Develocity installations.
Prerequisites
This manual assumes that you have previously installed Develocity using one of the above installation methods, and can access its web interface. If your installation isn’t at this point, refer to the installation manual for your chosen installation type.
Application Configuration
Basic installation settings for Develocity are configured with the Helm values.yaml file.
This includes how Develocity is accessed via the network and how it stores its persistent data.
Configuration settings related to installation are described in the installation manuals.
Additional Helm configurations are documented in the following manuals:
-
Develocity Kubernetes Helm Chart Configuration Guide for cluster installations
-
Develocity Standalone Helm Chart Configuration Guide for standalone installations
Other configuration aspects are configured via the Develocity application. Only users with the administration permission can do this, and they can do so by using the user menu in the top right of the application and choosing “Administration”. Until user accounts have been created, or in the case that no user accounts will be used, the system user can be used for this purpose.
Read each of the following sections for information on recommended configuration.
System user password
The system user is an ever-present local user account that can be used to bootstrap the configuration of an installation or for emergency local access in case of a failure with a configured external authentication provider.
The system user is hard-coded to have the Administer Develocity and Generate support bundles permissions (see Access control).
The system user has a username of system and a default password that’s randomly generated for new installations.
The system user password can also be set in an unattended configuration.
If unattended configuration was used when installing Develocity, sign in with the password specified in the configuration instead of using the commands below.
|
The first time a user logs in as the system user using the default password, they will be prompted to change the password.
Record the new password and keep it secret since it can be used to access Develocity as an administrator.
It’s recommended that the system user account not be used regularly.
Instead, create administrator user accounts and assign them the Administrator role.
These accounts can also update the system user account password.
To sign in as the system user:
-
If unattended configuration was used when installing, then
-
sign in with the password set in that configuration;
-
-
Else, a default password was generated at install time.
-
If the default password has ever been used to sign in, either
-
sign in with the password set at that sign in (default password can only be used once); or
-
-
Else, the default password is still set:
-
sign in with the default password obtained with
develocityctl,kubectl, or from the app logs; or
-
-
Get the default password using develocityctl
develocityctl has a command to get the default system password:
system get-default-system-password.
Set the password using develocityctl
In addition to the get-default-system-password command, develocityctl also has a command that sets the system password to a value you provide:
system reset-system-password
This can be used as an alternative to looking up the default system password, and avoids choosing a new password after the first login. The new password should be recorded and kept secret as it can be used to access Develocity as an administrator.
Get the default password using kubectl
If you have kubectl installed and configured, you can view the default system password using the following command:
kubectl -n develocity get secret gradle-default-system-password-secret --template={{.data.password}} | base64 --decode
If you installed Develocity in a namespace other than develocity, adjust the command accordingly.
|
Find the default password in the app logs
The gradle-enterprise-app-* pods log the system password on startup when the default system password is used.
It can be found by searching for Using default system password:.
While kubectl logs can be used to get the app logs, it doesn’t have an option to get the beginning of the log, only the end.
As such, this method won’t be of much use except with an external log aggregator or viewer.
Access control
Develocity allows locally managed user accounts and permissions, and externally managed via an LDAP service or SAML 2.0 identity provider.
Initial setup can be performed by the system user. Subsequently, any user with the “Administer Develocity” permission can configure access control by using the user menu in the top right of the application to access “Administration” and then “Access control”.
The following table describes Develocity permissions and lists the corresponding configuration file values:
Permission |
Config value |
Description |
View Build Scans and build data |
|
Allows viewing of Build Scans and associated build data |
Publish Build Scans |
|
Allows publishing of Build Scans |
Access build data via the API |
|
Allows access to the Develocity API |
Use Test Distribution |
|
Allows use of Test Distribution |
Use Predictive Test Selection |
|
Allows use of Predictive Test Selection |
Read Build Cache data |
|
Allows reading of Build Cache data |
Read and write Build Cache data |
|
Allows reading and writing of Build Cache data |
Read Build Cache data and write Bazel CAS data |
|
Allows reading of Build Cache data and writing 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 the CI, consider assigning developers using Bazel this permission instead. The |
Access all data without an associated project |
|
Allows users to access and push data that’s not associated with a project |
Access all data with or without associated project |
|
Allow users to access and push all data for all projects, and data that’s not associated with a project. |
Configure Build Caches |
|
Allows configuration of Build Cache functionality |
Configure projects |
|
Allows configuration of projects and project groups for project-level access control from the Administration console, or by using the Develocity API. |
Generate support bundles |
|
Allows the generation of support bundles |
Administer Develocity |
|
Allows general administration of Develocity (for example, access control). |
| “Administer Develocity” doesn’t imply the “Configure Build Caches” or “Configure projects” permissions. |
| The “Access all data without an associated project” and “Access all data with or without associated project” permissions are granted to all users automatically when project-level access control is disabled. |
Users' permissions are managed via assigning roles to them, either in Develocity or by mapping an external Identity Provider’s roles. Both methods are described later in this section.
Develocity includes a basic set of roles pre-configured, which are shown in the table below. They should be enough for many use-cases. Custom roles can be created and managed by going to Administration via the top right hand user menu, then , or by using unattended configuration.
Role |
Display name |
Description |
Permissions |
|
Administrator |
Administer Develocity |
Configure Build Caches |
|
API Client |
Access build data via the API. Doesn’t include access to the administrative API endpoints. |
Access build data via the API |
|
CI Agent |
Use Develocity for CI builds |
Publish Build Scans |
|
Developer |
Use Develocity |
View Build Scans and build data |
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.
| Changes to access control settings may take up to 20 minutes to propagate through the various components of Develocity. |
Anonymous access
By default, Develocity allows anonymous viewing and creation of Build Scans. This makes it easier to get started by reducing build configuration, but may not be suitable for your environment. Anonymous access to the built-in Build Cache node isn’t enabled by default.
Permissions for anonymous users can be changed by going to Administration via the top right hand user menu, then .
| Changes to access control settings may take up to 20 minutes to propagate through the various components of Develocity. |
Authenticated build access
Builds can authenticate with Develocity by supplying an “access key”.
Consult the Develocity Gradle Plugin User Manual or Develocity Maven Extension User Manual for guidance on how to configure builds to authenticate with Develocity.
Local users
Locally managed user accounts can be created to allow users to access Develocity. They’re not mutually exclusive with externally managed user accounts and both can co-exist provided the usernames and emails are unique.
SAML 2.0
A SAML 2.0 identity provider can be configured to allow users to access Develocity using their organization credentials. User accounts for users authenticating with the SAML provider will be created on first login. A user can’t log in via a SAML provider if a locally defined account exists for the same username or email.
Signing out from Develocity doesn’t log users out of the SAML identity provider.
Setup
-
From the Administration page, navigate to .
-
Check Enable external identity provider.
-
Choose SAML 2.0 from Identity provider type options.
-
Enter a name for the identity provider
-
Create a SAML application at your identity provider using the displayed “Service provider SSO URL” and “Service provider entity ID”.
-
Download the metadata for the SAML application from your identity provider, and select this file for the “Identity provider metadata file” field.
-
Configure signing/encryption options. (Optional)
If any signing or encryption is being used, use “Download service provider config” to obtain a configuration file that will need to provided your identity provider. -
Configure Attribute mappings.
-
Configure Roles membership.
-
Click Save.
Attribute mappings
User’s “given name”, “surname” and “email” attributes can be obtained from the identity provider or prompted for on first login.
To obtain an attribute from the identity provider, select “Manage in identity provider” for the attribute and specify the name of the SAML attribute that will provide the value. Attribute changes made at the SAML identity provider will only take effect after either a user initiated logout, administrator force logout, or session expiry.
Locally managed attributes can be updated for a user by an administrator.
Roles
User role membership can be defined by the identity provider or managed locally.
To use identity provider specified role membership, select Defined by identity provider in the Role membership section. The name of the SAML attribute that defines the roles for a user must be specified, along with the values to map to Develocity access roles.
When using “Defined by Develocity” as the “Role membership” option, the default roles for users can be specified. Users will be assigned the default roles when they first sign in. Changing the default roles will change the role membership of users with default roles enabled. Administrators can change role membership for individual users after they have signed in for the first time, including whether the default roles should be enabled for the user.
LDAP
An LDAP identity provider can be configured to allow users to access Develocity using their organization credentials. User accounts for users authenticating with the LDAP identity provider will be created on first login.
A user can’t log in via an LDAP provider if a locally defined account exists for the same username or email.