Methods for Administrator
These methods work only with administrator rights.
Description of the JSON object structure describing service settings
| Field | Type | Description | 
|---|---|---|
| disableLdapAuth | Boolean | Registration of new accounts via LDAP is available ( false) or not (true) | 
| disableSamlAuth | Boolean | Registration of new accounts via SAML is available ( false) or not (true) | 
| disableMailAuth | Boolean | Registration of new accounts via email is available ( false) or not (true) | 
| fileDownloadIsEnabled | Boolean | Downloading project archives and files is available ( true) or not (false) | 
| pullRepoFromAnonUserIsEnabled | Boolean | Pulling public repositories by an anonymous user is available ( true) or not (false) | 
| downloadReleaseFromAnonUserIsEnabled | Boolean | Downloading releases by anonymous users is available ( true) or not (false) | 
| enableEmailValidation | Boolean | General email validation is enabled ( true) or not (false) | 
| enableDomainValidation | Boolean | Email validation by domain is enabled ( true) or not (false) | 
| enableWhiteList | Boolean | Validation by whitelist is enabled ( true) or by blacklist (false) | 
| whiteListDomains | Set (String) | Array containing domains in the whitelist | 
| blackListDomains | Set (String) | Array containing domains in the blacklist | 
| userAutoConfirm | Boolean | New users are automatically registered with a confirmed email ( true) or not (false) | 
| enableApiLimit | Boolean | Limit on the number of API requests per hour is enabled ( true) or not (false) | 
| userApiCountLimit | Integer | Maximum number of API requests per hour | 
| enableCustomSshPort | Boolean | SSH port is displayed in the project remote URL for all instances ( true) or not (false) | 
| sshPort | Integer | SSH port displayed in the project remote URL for all instances | 
| globalRegistryAnonymousAccess | Boolean | Anonymous users can view packages uploaded to the global package registry ( true) or not (false) | 
| publicRepositoryAutoPermission | Boolean | All users can create public projects ( true) or not (false) | 
| projectUpdateLag | Integer | Allowed update frequency for mirror projects | 
| sessionMaxInactiveIntervalMinutes | Integer | Maximum time in minutes a user can remain inactive before the session is automatically terminated | 
| pullMirrorUpdateIntervalMinutes | Integer | Interval in minutes for updating PULL mirrors | 
| pushMirrorUpdateIntervalMinutes | Integer | Interval in minutes for updating PUSH mirrors | 
| projectCreatePermission | Boolean | Project creation is available to all users ( true) or configured separately (false) | 
| teamCreatePermission | Boolean | Team creation is available to all users ( true) or configured separately (false) | 
| companyCreatePermission | Boolean | Company creation is available to all users ( true) or configured separately (false) | 
| enableTwoFactor | Boolean | Two-factor authentication is available for login ( true) or not (false) | 
| enableBasicAuth | Boolean | Basic authentication for obtaining an API token is available ( true) or not (false) | 
| defaultLoginPage | String | Default authentication page. Possible values: BASIC,SAMLandLDAP | 
| enableBasicLoginPage | Boolean | Standard authentication page is available ( true) or not (false) | 
| enableLdapLoginPage | Boolean | LDAP authentication page is available ( true) or not (false) | 
| enableSamlLoginPage | Boolean | SAML authentication page is available ( true) or not (false) | 
| enableOidcLoginPage | Boolean | OIDC authentication page is available ( true) or not (false) | 
| enableReports | Boolean | The ability to report projects, teams, and companies is available ( true) or not (false) | 
| lockUserAccountIfLoginAttemptsHasBeenExceeded | Boolean | The ability to lock account login if the number of login attempts has been exceeded is available ( true) or not (false) | 
| maxUserArchivedPasswords | Integer | Number of archived passwords | 
| timeToLockUser | Integer | Lockout duration after exceeding login attempts (in minutes) | 
| timeToCountFailUserLoginAttempts | Integer | Time to count the number of failed login attempts (in seconds) | 
| archiveUserPasswordsIsEnabled | Boolean | Use of archived passwords is available ( true) or not (false) | 
| maxAttemptsToLoginIntoAccount | Integer | Maximum number of failed password attempts after which all subsequent attempts will be rejected | 
Methods for working with SSH keys
Adding an SSH key to a user
POST /admin/user/{userAlias}/key/create
The request adds an SSH key to the user
| Path Variable | Type | Description | 
|---|---|---|
| userAlias | string | User alias | 
Request
Supported JSON format
POST request body structure:
| Parameter | Type | Description | 
|---|---|---|
| publicKey | string | User's ssh key | 
| title | string | Name for the user's ssh key | 
| expiresAt | string | Key expiration date in ISO format | 
Example JSON object
{
    "publicKey" : "ssh-ed25519 AAAAC3NzaC1lZFHNRPTE5AAAAIDkxja/2VmTEsJDTtf3bI4XYDpb58fvKfSjy7/u8EZeI your_email@gitflic.ru",
    "title": "Key name",
    "expiresAt" : "2020-10-10"
}
Responses
STATUS 200 - SSH key successfully added:
Response example
    
        {
            "uuid":"089cdbe3-aaaa-aaaa-aaaa-b0edde8eda6d"
            "publicKey":"ssh-ed25519 AAAAC3NzaC1lZFHNRPTE5AAAAIDkxja/2VmTEsJDTtf3bI4XYDpb58fvKfSjy7/u8EZeI your_email@gitflic.ru"
            "title":"Key name"
            "expiresAt": "2020-10-10"
            "userUuid":"f1a94466-aaaa-aaaa-aaaa-744ec3bbd60c"
        }
    
  
STATUS 403 - No access rights.
STATUS 404 - Data not found for the request.
STATUS 422 - This key is already in use.
Getting a list of user's SSH keys
GET /admin/user/{userAlias}/key
The request returns a list of all user's SSH keys
| Path Variable | Type | Description | 
|---|---|---|
| userAlias | string | User alias | 
Responses
STATUS 200 - Information successfully retrieved.
Response example
    
        {
            "_embedded": {
                "userPublicSshKeyModelList": [
                    {
                        "uuid": "b9c4e55a-aaaa-aaaa-aaaa-fb8dc25d9e3f",
                        "publicKey": "ssh-ed25519 AAAAB3NzaC1yc2EAAAADAQABAAABgQDB1AxIDFJr0mBl2MTeY2TOpUz0hDz7Fm5GzU= Mikhail@DESKTOP-EPMR5HD\r\n",
                        "title": "Key1",
                        "expiresAt": null,
                        "userUuid": "8473a25a-aaaa-aaaa-aaaa-3e5c9e0a4b51"
                    },
                    {
                        "uuid": "05e9982b-aaaa-aaaa-aaaa-ddc9bb0ec3d7",
                        "publicKey": "ssh-ed25519 AAAAC3NzaC1lZVF1NTE5AAAAIDkxja/2VmTEsIMRtf3bI4XYDpb5f8vLfSjy7/u8EZeI your_email@gitflic.ru\r\n",
                        "title": "Key2",
                        "expiresAt": null,
                        "userUuid": "8473a25a-aaaa-aaaa-aaaa-3e5c9e0a4b51"
                    }
                ]
            },
            "page": {
                "size": 10,
                "totalElements": 2,
                "totalPages": 1,
                "number": 0
            }
        }
    
  
STATUS 403 - No access rights.
STATUS 404 - Data not found for the request.
Getting a user's SSH key
GET admin/user/{userAlias}/key/{keyUuid}
The request returns information about the user's SSH key
| Path Variable | Type | Description | 
|---|---|---|
| userAlias | string | User alias | 
| keyUuid | string | User key ID | 
Responses
STATUS 200 - Information successfully retrieved.
Response example
    
        {
            "uuid":"0dee836e-aaaa-aaaa-aaaa-65318059de1f"
            "publicKey":"ssh-ed25519 AAAAC3NzaC1lZFHNRPTE5AAAAIDkxja/2VmTEsJDTtf3bI4XYDpb58fvKfSjy7/u8EZeI your_email@gitflic.ru"
            "title":"Key name"
            "expiresAt":"2020-10-10T10-10-10Z"
            "userUuid":"f1a94466-aaaa-aaaa-aaaa-744ec3bbd60c"
        }
    
  
STATUS 403 - No access rights.
STATUS 404 - Data not found for the request.
Deleting a user's SSH key
DELETE admin/user/{userAlias}/key/delete/{keyUuid}
The request deletes the user's SSH key
| Path Variable | Type | Description | 
|---|---|---|
| userAlias | string | User alias | 
| keyUuid | string | User key ID | 
Responses
STATUS 200 - Key successfully deleted.
STATUS 403 - No access rights.
STATUS 404 - Data not found for the request.
Methods for working with user data
User search
GET admin/user?email={email}&username={userAlias}
The request returns a list of users found by the specified parameters, with the ability to configure the number of objects displayed per page
| Path Variable | Type | Description | 
|---|---|---|
| email | string | Optional parameter. User's email | 
| userAlias | string | Optional parameter. User alias | 
Responses
STATUS 200 - example JSON:
Response example
    
{
    "_embedded": {
        "restUserAdminModelList": [
            {
                "id": "2cd3dd9e-aaaa-aaaa-aaaa-9799ce223f67",
                "username": "adminuser",
                "email": adminuser@admin.local,
                "name": "admin",
                "surname": "user",
                "fullName": "admin user",
                "avatar": "https://gitflic.ru/upload/img/b0ea82d9-aaaa-aaaa-aaaa-d75b4da79a67.png",
                "cover": "/upload/img/f7f442e1-aaaa-aaaa-aaaa-fb963ac02506.jpg",
                "confirmed": true
            },
            {
                "id": "4fd50abd-aaaa-aaaa-aaaa-87186e8a5b67",
                "username": "us",
                "email": user@test.ru,
                "name": "Ivan",
                "surname": "Ivanov",
                "fullName": "Ivan Ivanov",
                "avatar": "https://rccw.gitflic.tech/upload/img/20b2f481-aaaa-aaaa-aaaa-ccf26df448e8.png",
                "cover": "/upload/img/ff3gv3e1-aaaa-aaaa-aaaa1-5u963ak0f506.jpg",
                "confirmed": true
            }
        ]
    },
    "page": {
        "size": 10,
        "totalElements": 2,
        "totalPages": 1,
        "number": 0
    }
}
    
  
STATUS 403 - No access rights.
STATUS 404 - Data not found for the request.
Creating a user
POST /user
The request returns information about the created user.
Request
Supported JSON format
POST request body structure:
| Parameter | Description | 
|---|---|
| email | E-mail of the user being created | 
| password | Password of the user being created | 
| alias | Alias of the user being created | 
Example JSON object
{
    "email": "email@local.ru",
    "password": "password",
    "alias": "alias"
}
Responses
STATUS 200 - example JSON:
Response example
    
{
    "id":"f3657c3c-aaaa-aaaa-aaaa-917acb676944"
    "username":"alias"
    "name":null
    "surname":null
    "fullName":null
    "avatar":"http://localhost:8080/upload/img/5c10b16d-aaaa-aaaa-aaaa-76443bc44055.png"
    "cover":null
}
    
  
STATUS 403 - No access rights.
STATUS 422 - User with such data already exists or invalid data entered.
Changing user's email
PUT /admin/user/{userAlias}/change-email
The request changes the user's email
| Path Variable | Type | Description | 
|---|---|---|
| userAlias | string | User alias | 
Request
Supported JSON format
POST request body structure:
| Parameter | Description | 
|---|---|
| email | User's new e-mail | 
Example JSON object
{
    "email": "email@local.ru"
}
Responses
STATUS 200 - User email successfully changed.
STATUS 403 - No access rights.
STATUS 422 - User with such data already exists or invalid data entered.
Changing user's alias
PUT /admin/user/{userAlias}/change-username
The request changes the user's alias
| Path Variable | Type | Description | 
|---|---|---|
| userAlias | string | User alias | 
Request
Supported format - JSON
POST request body structure
| Parameter | Description | 
|---|---|
| username | User's new alias | 
Example JSON object
{
    "username": "adminuser"
}
Responses
STATUS 200 - User alias successfully changed.
STATUS 403 - No access rights.
STATUS 422 - User with such data already exists or invalid data entered.
Changing user's password
PUT /admin/user/{userAlias}/change-password
| Path Variable | Type | Description | 
|---|---|---|
| userAlias | string | User alias | 
The request changes the user's password.
Request
Supported format - JSON
POST request body structure
| Parameter | Description | 
|---|---|
| password | User's new password | 
| passwordConfirm | Password confirmation | 
Example JSON object
{
    "password": "qwerty123",
    "passwordConfirm" : "qwerty123"
}
Responses
STATUS 200 - User password successfully changed.
STATUS 403 - No access rights.
STATUS 422 - User with such data already exists or invalid data entered.
Methods for working with agents
Getting registration information for an agent at the service level
GET /admin/runners/registration-info
The request returns the necessary information for registering an agent at the service level - URL and token.
Responses
STATUS 200 - Information successfully retrieved.
Response example
    
      {
        "id":"1"
        "registrationUrl":"http://localhost:8080/-/runner/registration"
        "registrationToken":"0d949a3a-aaaa-aaaa-aaaa-5fa8c3953e70"
      }
    
  
STATUS 403 - No access rights.
STATUS 404 - Data not found for the request.
Resetting the token for registering an agent at the service level
POST /admin/runners/reset-registration-token
The request resets the token for registering an agent at the service level.
Responses
STATUS 200 - Token successfully reset.
STATUS 403 - No access rights.
STATUS 404 - Data not found for the request.
Getting a list of agents
GET /admin/runners {#runnerAll}
The request returns a list of agents registered in the service, with the ability to configure the number of objects displayed per page
Responses
STATUS 200 - example JSON:
Response example
    
{
    "_embedded": {
        "restPipelineRunnerModelList": [
            {
                "id": "74af2044-aaaa-aaaa-aaaa-47d0ef20639a",
                "description": "Agent description for company",
                "connectedAt": "2024-06-03T08:37:21.33104",
                "active": false,
                "name": "Gloin",
                "platform": "Linux",
                "architecture": "amd64",
                "ipAddress": "127.0.0.1",
                "tags": [
                    "4.4",
                    "4.5",
                    "4.6"
                ],
                "ownerType": "COMPANY",
                "ownerId": 4,
                "runUntagged": true,
                "locked": true,
                "maxTimeoutInSec": 100,
                "protected": true
            },
            {
                "id": "c5c48d5f-aaaa-aaaa-aaaa-01aa12228f2d",
                "description": "Agent description for project",
                "connectedAt": "2024-06-17T09:06:37.966851",
                "active": true,
                "name": "The Lord of the Eagles",
                "platform": "Linux",
                "architecture": "amd64",
                "ipAddress": "127.0.0.1",
                "tags": [
                    "3.2.1",
                    "3.2.2",
                    "3.2.3"
                ],
                "ownerType": "PROJECT",
                "ownerId": 84,
                "runUntagged": false,
                "locked": false,
                "maxTimeoutInSec": 100,
                "protected": false
            }
        ]
    },
    "page": {
        "size": 10,
        "totalElements": 2,
        "totalPages": 1,
        "number": 0
    }
}
    
  
STATUS 403 - No access rights.
STATUS 404 - Data not found for the request.
Getting an agent by its UUID
GET /admin/runners/{runnerUuid} {#runnerUuid}
The request returns information about the agent
| Path Variable | Type | Description | 
|---|---|---|
| runnerUuid | String | Agent UUID | 
Responses
STATUS 200 - example JSON:
Response example
    
{
    "id": "74af2044-aaaa-aaaa-aaaa-47d0ef20639a",
    "description": "Agent description",
    "connectedAt": "2024-06-03T08:37:21.33104",
    "active": true,
    "name": "Gloin",
    "platform": "Linux",
    "architecture": "amd64",
    "ipAddress": "127.0.0.1",
    "tags": [
        "4.4",
        "4.5",
        "4.6"
    ],
    "ownerType": "COMPANY",
    "ownerId": 4,
    "runUntagged": false,
    "locked": false,
    "maxTimeoutInSec": 100,
    "protected": true
}
    
  
STATUS 403 - No access rights.
STATUS 404 - Data not found for the request.
Getting a list of project agents
GET /admin/runners/project/{ownerAlias}/{projectAlias} {#runnerProjectAll}
The request returns a list of agents for the specified project, with the ability to configure the number of objects displayed per page
| Path Variable | Type | Description | 
|---|---|---|
| ownerAlias | String | Project owner alias | 
| projectAlias | String | Project alias | 
Responses
STATUS 200 - example JSON:
Response example
    
{
    "_embedded": {
        "restPipelineRunnerModelList": [
            {
                "id": "c5c48d5f-aaaa-aaaa-aaaa-01aa12228f2d",
                "description": "Agent description",
                "connectedAt": "2024-06-17T09:06:37.966851",
                "active": true,
                "name": "The Lord of the Eagles",
                "platform": "Linux",
                "architecture": "amd64",
                "ipAddress": "127.0.0.1",
                "tags": [
                    "3.2.1",
                    "3.2.2",
                    "3.2.3"
                ],
                "ownerType": "PROJECT",
                "ownerId": 84,
                "runUntagged": false,
                "locked": false,
                "maxTimeoutInSec": 100,
                "protected": true
            }
        ]
    },
    "page": {
        "size": 10,
        "totalElements": 1,
        "totalPages": 1,
        "number": 0
    }
}
    
  
STATUS 403 - No access rights.
STATUS 404 - Data not found for the request.
Getting a list of company agents
GET /admin/runners/company/{companyAlias} {#runnerCompanyAll}
The request returns a list of agents for the specified company, with the ability to configure the number of objects displayed per page
| Path Variable | Type | Description | 
|---|---|---|
| companyAlias | String | Company alias | 
Responses
STATUS 200 - example JSON:
Response example
    
{
    "_embedded": {
        "restPipelineRunnerModelList": [
            {
                "id": "74af2044-aaaa-aaaa-aaaa-47d0ef20639a",
                "description": "Agent description",
                "connectedAt": "2024-06-03T08:37:21.33104",
                "active": true,
                "name": "Gloin",
                "platform": "Linux",
                "architecture": "amd64",
                "ipAddress": "127.0.0.1",
                "tags": [
                    "4.4",
                    "4.5",
                    "4.6"
                ],
                "ownerType": "COMPANY",
                "ownerId": 4,
                "runUntagged": false,
                "locked": false,
                "maxTimeoutInSec": 100,
                "protected": true
            }
        ]
    },
    "page": {
        "size": 10,
        "totalElements": 1,
        "totalPages": 1,
        "number": 0
    }
}
    
  
STATUS 403 - No access rights.
STATUS 404 - Data not found for the request.
Getting tasks of all service agents
GET /admin/runners/all/jobs?jobStatus {#runnerJob}
The request returns information about tasks performed by all agents registered at the entire service level
Responses
STATUS 200 - example JSON:
Response example
    
{
    "_embedded": {
        "restPipelineJobModelList": [
            {
                "id": "c0f4ce7a-aaaa-aaaa-aaaa-f75d22415acc",
                "localId": 2,
                "finishedAt": "2024-06-21T11:38:15.229604Z",
                "startedAt": null,
                "name": "job 1",
                "stageName": "test",
                "tag": false,
                "ref": "master",
                "erasedAt": null,
                "artifactsExpireAt": null,
                "status": "SUCCESS",
                "pipelineLocalId": 2
            },
            {
                "id": "9bd6e1c7-aaaa-aaaa-aaaa-384e89f5e770",
                "localId": 205,
                "finishedAt": "2024-06-21T11:38:35.449307Z",
                "startedAt": null,
                "name": "job 2",
                "stageName": "build",
                "tag": false,
                "ref": "master",
                "erasedAt": null,
                "artifactsExpireAt": null,
                "status": "SUCCESS",
                "pipelineLocalId": 36
            }
        ]
    },
    "page": {
        "size": 2,
        "totalElements": 2,
        "totalPages": 1,
        "number": 0
    }
}
    
  
STATUS 403 - No access rights.
STATUS 404 - Data not found for the request.
Getting tasks of a service agent with the specified UUID
GET /admin/runners/{runnerUuid}/jobs?jobStatus {#runnerJobUuid}
The request returns information about tasks performed by the agent with the specified UUID, registered at the entire service level
| Path Variable | Type | Description | 
|---|---|---|
| runnerUuid | String | Agent UUID | 
Responses
STATUS 200 - example JSON:
Response example
    
{
    "_embedded": {
        "restPipelineJobModelList": [
            {
                "id": "c0f4ce7a-aaaa-aaaa-aaaa-f75d22415acc",
                "localId": 2,
                "finishedAt": "2024-06-21T11:38:15.229604Z",
                "startedAt": null,
                "name": "job 1",
                "stageName": "test",
                "tag": false,
                "ref": "master",
                "erasedAt": null,
                "artifactsExpireAt": null,
                "status": "SUCCESS",
                "pipelineLocalId": 2
            },
            {
                "id": "9bd6e1c7-aaaa-aaaa-aaaa-384e89f5e770",
                "localId": 205,
                "finishedAt": "2024-06-21T11:38:35.449307Z",
                "startedAt": null,
                "name": "job 2",
                "stageName": "build",
                "tag": false,
                "ref": "master",
                "erasedAt": null,
                "artifactsExpireAt": null,
                "status": "SUCCESS",
                "pipelineLocalId": 36
            }
        ]
    },
    "page": {
        "size": 2,
        "totalElements": 2,
        "totalPages": 1,
        "number": 0
    }
}
    
  
STATUS 403 - No access rights.
STATUS 404 - Data not found for the request.
Method to shut down an agent by its UUID
POST /admin/runners/{runnerUuid}/shutdown {#runnerShutdownUuid}
The request shuts down the agent with the specified UUID
| Path Variable | Type | Description | 
|---|---|---|
| runnerUuid | String | Agent UUID | 
Responses
STATUS 200 - Agent shut down.
STATUS 403 - No access rights.
STATUS 404 - Data not found for the request.
Editing a company agent
POST /admin/runners/{runnerUuid}/edit {#runnerEdit}
The request edits the agent with the specified UUID and returns information about it
| Path Variable | Type | Description | 
|---|---|---|
| runnerUuid | String | Agent UUID | 
Request
Supported JSON format
POST request body structure:
| Parameters | Type | Description | 
|---|---|---|
| name | String | Agent name | 
| description | String | Agent description | 
| isActive | Boolean | Active agent ( true) or not (false) | 
| maxTimeoutInSec | Integer | Maximum job wait time in seconds | 
| tags | Object | Object containing a list of tags. The agent will only work for the specified tags | 
| runUntagged | Boolean | Whether this agent can pick up jobs without tags ( true) or not (false) | 
| isLocked | Boolean | Agent is locked ( true) or not (false). A locked agent cannot be assigned to other projects | 
| isProtected | Boolean | Agent runs only on protected branches ( true) or not (false) | 
Example JSON object
{
    "name": "Gloin",
    "description": "Agent description",
    "isActive": true,
    "maxTimeoutInSec": 100,
    "ipAddress": "127.0.0.1",
    "tags": ["4.4","4.5", "4.6"],
    "runUntagged": false,
    "isLocked": false,
    "isProtected": true
}
Responses
STATUS 200 - example JSON:
Response example
    
{
    "id": "74af2044-aaaa-aaaa-aaaa-47d0ef20639a",
    "description": "Agent description",
    "connectedAt": "2024-06-03T08:37:21.33104",
    "active": true,
    "name": "Gloin",
    "platform": "Linux",
    "architecture": "amd64",
    "ipAddress": "127.0.0.1",
    "tags": [
        "4.4",
        "4.5",
        "4.6"
    ],
    "ownerType": "COMPANY",
    "ownerId": 4,
    "runUntagged": false,
    "locked": false,
    "maxTimeoutInSec": 100,
    "protected": true
}
    
  
STATUS 403 - No access rights.
STATUS 404 - Data not found for the request.
Deleting an agent
DELETE /admin/runners/{runnerUuid} {#runnerDeleteUuid}
The request deletes the agent with the specified UUID
| Path Variable | Type | Description | 
|---|---|---|
| runnerUuid | String | Agent UUID | 
Responses
STATUS 204 - Agent deleted.
STATUS 403 - No access rights.
STATUS 404 - Data not found for the request.
Methods for working with service settings
All methods in this section return a JSON object that describes the service settings.
Getting service settings
GET /admin/settings
The request returns an object with all service settings.
Responses
STATUS 200 example JSON:
Example JSON body
    
{
    "disableLdapAuth": false,
    "disableSamlAuth": false,
    "disableMailAuth": false,
    "fileDownloadIsEnabled": true,
    "pullRepoFromAnonUserIsEnabled": true,
    "downloadReleaseFromAnonUserIsEnabled": false,
    "enableEmailValidation": true,
    "enableDomainValidation": false,
    "enableWhiteList": true,
    "whiteListDomains": [
        "local.ru"
    ],
    "blackListDomains": [],
    "userAutoConfirm": false,
    "enableApiLimit": false,
    "userApiCountLimit": 400,
    "enableCustomSshPort": true,
    "sshPort": 1121,
    "globalRegistryAnonymousAccess": false,
    "publicRepositoryAutoPermission": false,
    "projectUpdateLag": 60,
    "sessionMaxInactiveIntervalMinutes": 60,
    "pullMirrorUpdateIntervalMinutes": 30,
    "pushMirrorUpdateIntervalMinutes": 30,
    "projectCreatePermission": true,
    "teamCreatePermission": true,
    "companyCreatePermission": true,
    "enableTwoFactor": true,
    "enableBasicAuth": true,
    "defaultLoginPage": "OIDC",
    "enableBasicLoginPage": true,
    "enableLdapLoginPage": false,
    "enableSamlLoginPage": false,
    "enableOidcLoginPage": true,
    "enableReports": true,
    "lockUserAccountIfLoginAttemptsHasBeenExceeded": false,
    "maxUserArchivedPasswords": 4,
    "timeToLockUser": 30,
    "timeToCountFailUserLoginAttempts": 10,
    "archiveUserPasswordsIsEnabled": true,
    "maxAttemptsToLoginIntoAccount": 6
}
    
  
STATUS 403 - No access rights.
Changing registration availability in the service
POST /admin/settings/registration
The request changes the possibility of registering new accounts via LDAP, SAML, or email.
Request
Supported JSON format
POST request body structure:
| Parameter | Type | Description | 
|---|---|---|
| disableLdapAuth | Boolean | Whether registration of new accounts via LDAP is available ( false) or disabled (true) | 
| disableSamlAuth | Boolean | Whether registration of new accounts via SAML is available ( false) or disabled (true) | 
| disableOidcAuth | Boolean | Whether registration of new accounts via OIDC is available ( false) or disabled (true) | 
| disableMailAuth | Boolean | Whether registration of new accounts via email is available ( false) or disabled (true) | 
Example JSON object
{
    "disableLdapAuth" : "false",
    "disableSamlAuth" : "false",
    "disableOidcAuth" : "false",
    "disableMailAuth" : "false"
}
Responses
STATUS 200 example JSON:
Example JSON body
    
{
    "disableLdapAuth": false,
    "disableSamlAuth": false,
    "disableMailAuth": false,
    "fileDownloadIsEnabled": true,
    "pullRepoFromAnonUserIsEnabled": true,
    "downloadReleaseFromAnonUserIsEnabled": false,
    "enableEmailValidation": true,
    "enableDomainValidation": false,
    "enableWhiteList": true,
    "whiteListDomains": [
        "local.ru"
    ],
    "blackListDomains": [],
    "userAutoConfirm": false,
    "enableApiLimit": false,
    "userApiCountLimit": 400,
    "enableCustomSshPort": true,
    "sshPort": 1121,
    "globalRegistryAnonymousAccess": false,
    "publicRepositoryAutoPermission": false,
    "projectUpdateLag": 60,
    "sessionMaxInactiveIntervalMinutes": 60,
    "pullMirrorUpdateIntervalMinutes": 30,
    "pushMirrorUpdateIntervalMinutes": 30,
    "projectCreatePermission": true,
    "teamCreatePermission": true,
    "companyCreatePermission": true,
    "enableTwoFactor": true,
    "enableBasicAuth": true,
    "defaultLoginPage": "OIDC",
    "enableBasicLoginPage": true,
    "enableLdapLoginPage": false,
    "enableSamlLoginPage": false,
    "enableOidcLoginPage": true,
    "enableReports": true,
    "lockUserAccountIfLoginAttemptsHasBeenExceeded": false,
    "maxUserArchivedPasswords": 4,
    "timeToLockUser": 30,
    "timeToCountFailUserLoginAttempts": 10,
    "archiveUserPasswordsIsEnabled": true,
    "maxAttemptsToLoginIntoAccount": 6
}
    
  
STATUS 403 - No access rights.
Changing the availability of downloading archives and files in a project
POST /admin/settings/download
The request changes the availability of downloading archives and files in a project for all users.
Request
Supported JSON format
POST request body structure:
| Parameter | Type | Description | 
|---|---|---|
| fileDownload | Boolean | Whether downloading project archives and files is available ( true) or not (false) | 
Example JSON object
{
    "fileDownload" : "true"
}
Responses
STATUS 200 example JSON:
Example JSON body
    
{
    "disableLdapAuth": false,
    "disableSamlAuth": false,
    "disableMailAuth": false,
    "fileDownloadIsEnabled": true,
    "pullRepoFromAnonUserIsEnabled": true,
    "downloadReleaseFromAnonUserIsEnabled": false,
    "enableEmailValidation": true,
    "enableDomainValidation": false,
    "enableWhiteList": true,
    "whiteListDomains": [
        "local.ru"
    ],
    "blackListDomains": [],
    "userAutoConfirm": false,
    "enableApiLimit": false,
    "userApiCountLimit": 400,
    "enableCustomSshPort": true,
    "sshPort": 1121,
    "globalRegistryAnonymousAccess": false,
    "publicRepositoryAutoPermission": false,
    "projectUpdateLag": 60,
    "sessionMaxInactiveIntervalMinutes": 60,
    "pullMirrorUpdateIntervalMinutes": 30,
    "pushMirrorUpdateIntervalMinutes": 30,
    "projectCreatePermission": true,
    "teamCreatePermission": true,
    "companyCreatePermission": true,
    "enableTwoFactor": true,
    "enableBasicAuth": true,
    "defaultLoginPage": "OIDC",
    "enableBasicLoginPage": true,
    "enableLdapLoginPage": false,
    "enableSamlLoginPage": false,
    "enableOidcLoginPage": true,
    "enableReports": true,
    "lockUserAccountIfLoginAttemptsHasBeenExceeded": false,
    "maxUserArchivedPasswords": 4,
    "timeToLockUser": 30,
    "timeToCountFailUserLoginAttempts": 10,
    "archiveUserPasswordsIsEnabled": true,
    "maxAttemptsToLoginIntoAccount": 6
}
    
  
STATUS 403 - No access rights.
Changing the availability of pulling public repositories by anonymous users
POST /admin/settings/pull
The request changes the availability of pulling public repositories by anonymous users.
Request
Supported JSON format
POST request body structure:
| Parameter | Type | Description | 
|---|---|---|
| pullRepoFromAnonUser | Boolean | Whether pulling public repositories by anonymous users is available ( true) or not (false) | 
Example JSON object
{
    "pullRepoFromAnonUser" : "true"
}
Responses
STATUS 200 example JSON:
Example JSON body
    
{
    "disableLdapAuth": false,
    "disableSamlAuth": false,
    "disableMailAuth": false,
    "fileDownloadIsEnabled": true,
    "pullRepoFromAnonUserIsEnabled": true,
    "downloadReleaseFromAnonUserIsEnabled": false,
    "enableEmailValidation": true,
    "enableDomainValidation": false,
    "enableWhiteList": true,
    "whiteListDomains": [
        "local.ru"
    ],
    "blackListDomains": [],
    "userAutoConfirm": false,
    "enableApiLimit": false,
    "userApiCountLimit": 400,
    "enableCustomSshPort": true,
    "sshPort": 1121,
    "globalRegistryAnonymousAccess": false,
    "publicRepositoryAutoPermission": false,
    "projectUpdateLag": 60,
    "sessionMaxInactiveIntervalMinutes": 60,
    "pullMirrorUpdateIntervalMinutes": 30,
    "pushMirrorUpdateIntervalMinutes": 30,
    "projectCreatePermission": true,
    "teamCreatePermission": true,
    "companyCreatePermission": true,
    "enableTwoFactor": true,
    "enableBasicAuth": true,
    "defaultLoginPage": "OIDC",
    "enableBasicLoginPage": true,
    "enableLdapLoginPage": false,
    "enableSamlLoginPage": false,
    "enableOidcLoginPage": true,
    "enableReports": true,
    "lockUserAccountIfLoginAttemptsHasBeenExceeded": false,
    "maxUserArchivedPasswords": 4,
    "timeToLockUser": 30,
    "timeToCountFailUserLoginAttempts": 10,
    "archiveUserPasswordsIsEnabled": true,
    "maxAttemptsToLoginIntoAccount": 6
}
    
  
STATUS 403 - No access rights.
Changing the availability of downloading release files by anonymous users
POST /admin/settings/download-release
The request changes the availability of downloading release files by anonymous users.
Request
Supported JSON format
POST request body structure:
| Parameter | Type | Description | 
|---|---|---|
| downloadFromAnonUserEnable | Boolean | Whether downloading release files by anonymous users is available ( true) or not (false) | 
Example JSON object
{
    "downloadFromAnonUserEnable" : "false"
}
Responses
STATUS 200 example JSON:
Example JSON body
    
{
    "disableLdapAuth": false,
    "disableSamlAuth": false,
    "disableMailAuth": false,
    "fileDownloadIsEnabled": true,
    "pullRepoFromAnonUserIsEnabled": true,
    "downloadReleaseFromAnonUserIsEnabled": false,
    "enableEmailValidation": true,
    "enableDomainValidation": false,
    "enableWhiteList": true,
    "whiteListDomains": [
        "local.ru"
    ],
    "blackListDomains": [],
    "userAutoConfirm": false,
    "enableApiLimit": false,
    "userApiCountLimit": 400,
    "enableCustomSshPort": true,
    "sshPort": 1121,
    "globalRegistryAnonymousAccess": false,
    "publicRepositoryAutoPermission": false,
    "projectUpdateLag": 60,
    "sessionMaxInactiveIntervalMinutes": 60,
    "pullMirrorUpdateIntervalMinutes": 30,
    "pushMirrorUpdateIntervalMinutes": 30,
    "projectCreatePermission": true,
    "teamCreatePermission": true,
    "companyCreatePermission": true,
    "enableTwoFactor": true,
    "enableBasicAuth": true,
    "defaultLoginPage": "OIDC",
    "enableBasicLoginPage": true,
    "enableLdapLoginPage": false,
    "enableSamlLoginPage": false,
    "enableOidcLoginPage": true,
    "enableReports": true,
    "lockUserAccountIfLoginAttemptsHasBeenExceeded": false,
    "maxUserArchivedPasswords": 4,
    "timeToLockUser": 30,
    "timeToCountFailUserLoginAttempts": 10,
    "archiveUserPasswordsIsEnabled": true,
    "maxAttemptsToLoginIntoAccount": 6
}
    
  
STATUS 403 - No access rights.
Changing the ability for new users to automatically register with a confirmed email
POST /admin/settings/auto-confirm
The request changes the ability to register with a confirmed email.
Request
Supported JSON format
POST request body structure:
| Parameter | Type | Description | 
|---|---|---|
| autoConfirm | Boolean | New users are automatically registered with a confirmed email ( true) or not (false) | 
Example JSON object
{
    "autoConfirm" : "false"
}
Responses
STATUS 200 example JSON:
Example JSON body
    
{
    "disableLdapAuth": false,
    "disableSamlAuth": false,
    "disableMailAuth": false,
    "fileDownloadIsEnabled": true,
    "pullRepoFromAnonUserIsEnabled": true,
    "downloadReleaseFromAnonUserIsEnabled": false,
    "enableEmailValidation": true,
    "enableDomainValidation": false,
    "enableWhiteList": true,
    "whiteListDomains": [
        "local.ru"
    ],
    "blackListDomains": [],
    "userAutoConfirm": false,
    "enableApiLimit": false,
    "userApiCountLimit": 400,
    "enableCustomSshPort": true,
    "sshPort": 1121,
    "globalRegistryAnonymousAccess": false,
    "publicRepositoryAutoPermission": false,
    "projectUpdateLag": 60,
    "sessionMaxInactiveIntervalMinutes": 60,
    "pullMirrorUpdateIntervalMinutes": 30,
    "pushMirrorUpdateIntervalMinutes": 30,
    "projectCreatePermission": true,
    "teamCreatePermission": true,
    "companyCreatePermission": true,
    "enableTwoFactor": true,
    "enableBasicAuth": true,
    "defaultLoginPage": "OIDC",
    "enableBasicLoginPage": true,
    "enableLdapLoginPage": false,
    "enableSamlLoginPage": false,
    "enableOidcLoginPage": true,
    "enableReports": true,
    "lockUserAccountIfLoginAttemptsHasBeenExceeded": false,
    "maxUserArchivedPasswords": 4,
    "timeToLockUser": 30,
    "timeToCountFailUserLoginAttempts": 10,
    "archiveUserPasswordsIsEnabled": true,
    "maxAttemptsToLoginIntoAccount": 6
}
    
  
STATUS 403 - No access rights.
Changing email validation
POST /admin/settings/email-validation
The request enables or disables general email validation - by top-level domain and mailbox name.
Request
Supported JSON format
POST request body structure:
| Parameter | Type | Description | 
|---|---|---|
| enableEmailValidation | Boolean | General email validation is enabled ( true) or disabled (false) | 
Example JSON object
{
    "enableEmailValidation" : "true"
}
Responses
STATUS 200 example JSON:
Example JSON body
    
{
    "disableLdapAuth": false,
    "disableSamlAuth": false,
    "disableMailAuth": false,
    "fileDownloadIsEnabled": true,
    "pullRepoFromAnonUserIsEnabled": true,
    "downloadReleaseFromAnonUserIsEnabled": false,
    "enableEmailValidation": true,
    "enableDomainValidation": false,
    "enableWhiteList": true,
    "whiteListDomains": [
        "local.ru"
    ],
    "blackListDomains": [],
    "userAutoConfirm": false,
    "enableApiLimit": false,
    "userApiCountLimit": 400,
    "enableCustomSshPort": true,
    "sshPort": 1121,
    "globalRegistryAnonymousAccess": false,
    "publicRepositoryAutoPermission": false,
    "projectUpdateLag": 60,
    "sessionMaxInactiveIntervalMinutes": 60,
    "pullMirrorUpdateIntervalMinutes": 30,
    "pushMirrorUpdateIntervalMinutes": 30,
    "projectCreatePermission": true,
    "teamCreatePermission": true,
    "companyCreatePermission": true,
    "enableTwoFactor": true,
    "enableBasicAuth": true,
    "defaultLoginPage": "OIDC",
    "enableBasicLoginPage": true,
    "enableLdapLoginPage": false,
    "enableSamlLoginPage": false,
    "enableOidcLoginPage": true,
    "enableReports": true,
    "lockUserAccountIfLoginAttemptsHasBeenExceeded": false,
    "maxUserArchivedPasswords": 4,
    "timeToLockUser": 30,
    "timeToCountFailUserLoginAttempts": 10,
    "archiveUserPasswordsIsEnabled": true,
    "maxAttemptsToLoginIntoAccount": 6
}
    
  
STATUS 403 - No access rights.
Changing email validation by domain
POST /admin/settings/domain-validation
The request changes the settings for email validation by domain.
Request
Supported JSON format
POST request body structure:
| Parameter | Type | Description | 
|---|---|---|
| enableDomainValidation | Boolean | Whether email validation by domain is enabled ( true) or not (false) | 
| enableWhiteList | Boolean | Whether validation by whitelist is enabled ( true) or by blacklist (false) | 
| blackListDomains | Set (String) | Array containing domains that will be added to the blacklist. | 
| whiteListDomains | Set (String) | Array containing domains that will be added to the whitelist | 
The content of the
blackListDomainsandwhiteListDomainsparameters overwrites all previously saved domains.
Example JSON object
{
    "enableDomainValidation" : "false",
    "enableWhiteList" : "true",
    "blackListDomains" : [""],
    "whiteListDomains" : ["local.ru"]
}
Responses
STATUS 200 example JSON:
Example JSON body
    
{
    "disableLdapAuth": false,
    "disableSamlAuth": false,
    "disableMailAuth": false,
    "fileDownloadIsEnabled": true,
    "pullRepoFromAnonUserIsEnabled": true,
    "downloadReleaseFromAnonUserIsEnabled": false,
    "enableEmailValidation": true,
    "enableDomainValidation": false,
    "enableWhiteList": true,
    "whiteListDomains": [
        "local.ru"
    ],
    "blackListDomains": [],
    "userAutoConfirm": false,
    "enableApiLimit": false,
    "userApiCountLimit": 400,
    "enableCustomSshPort": true,
    "sshPort": 1121,
    "globalRegistryAnonymousAccess": false,
    "publicRepositoryAutoPermission": false,
    "projectUpdateLag": 60,
    "sessionMaxInactiveIntervalMinutes": 60,
    "pullMirrorUpdateIntervalMinutes": 30,
    "pushMirrorUpdateIntervalMinutes": 30,
    "projectCreatePermission": true,
    "teamCreatePermission": true,
    "companyCreatePermission": true,
    "enableTwoFactor": true,
    "enableBasicAuth": true,
    "defaultLoginPage": "OIDC",
    "enableBasicLoginPage": true,
    "enableLdapLoginPage": false,
    "enableSamlLoginPage": false,
    "enableOidcLoginPage": true,
    "enableReports": true,
    "lockUserAccountIfLoginAttemptsHasBeenExceeded": false,
    "maxUserArchivedPasswords": 4,
    "timeToLockUser": 30,
    "timeToCountFailUserLoginAttempts": 10,
    "archiveUserPasswordsIsEnabled": true,
    "maxAttemptsToLoginIntoAccount": 6
}
    
  
STATUS 403 - No access rights.
Changing the limit on the number of API requests per hour
POST /admin/settings/api-limit
The request changes the limit on the number of API requests per hour.
Request
Supported JSON format
POST request body structure:
| Parameter | Type | Description | 
|---|---|---|
| disableApiLimit | Boolean | Whether the limit on the number of requests is available ( false) or not (true) | 
| userApiCountLimit | Long | Number of API requests that can be sent per hour | 
Example JSON object
{
    "disableApiLimit" : "true",
    "userApiCountLimit" : "400"
}
Responses
STATUS 200 example JSON:
Example JSON body
    
{
    "disableLdapAuth": false,
    "disableSamlAuth": false,
    "disableMailAuth": false,
    "fileDownloadIsEnabled": true,
    "pullRepoFromAnonUserIsEnabled": true,
    "downloadReleaseFromAnonUserIsEnabled": false,
    "enableEmailValidation": true,
    "enableDomainValidation": false,
    "enableWhiteList": true,
    "whiteListDomains": [
        "local.ru"
    ],
    "blackListDomains": [],
    "userAutoConfirm": false,
    "enableApiLimit": false,
    "userApiCountLimit": 400,
    "enableCustomSshPort": true,
    "sshPort": 1121,
    "globalRegistryAnonymousAccess": false,
    "publicRepositoryAutoPermission": false,
    "projectUpdateLag": 60,
    "sessionMaxInactiveIntervalMinutes": 60,
    "pullMirrorUpdateIntervalMinutes": 30,
    "pushMirrorUpdateIntervalMinutes": 30,
    "projectCreatePermission": true,
    "teamCreatePermission": true,
    "companyCreatePermission": true,
    "enableTwoFactor": true,
    "enableBasicAuth": true,
    "defaultLoginPage": "OIDC",
    "enableBasicLoginPage": true,
    "enableLdapLoginPage": false,
    "enableSamlLoginPage": false,
    "enableOidcLoginPage": true,
    "enableReports": true,
    "lockUserAccountIfLoginAttemptsHasBeenExceeded": false,
    "maxUserArchivedPasswords": 4,
    "timeToLockUser": 30,
    "timeToCountFailUserLoginAttempts": 10,
    "archiveUserPasswordsIsEnabled": true,
    "maxAttemptsToLoginIntoAccount": 6
}
    
  
STATUS 403 - No access rights.
Changing the SSH port in the project remote URL for all instances
POST /admin/settings/ssh-port
The request enables or disables the display of the SSH port in the project clone URL via SSH for all instances. Additionally, the request can specify the displayed SSH port number.
Request
Supported JSON format
POST request body structure:
| Parameter | Type | Description | 
|---|---|---|
| enableCustomSshPort | Boolean | SSH port is displayed in the project remote URL ( true) or not (false) | 
| sshPort | Integer | SSH port number. This parameter can be passed if the enableCustomSshPortparameter is set totrue | 
Example JSON object
{
    "enableCustomSshPort" : "true",
    "sshPort" : "1122"
}
Responses
STATUS 200 example JSON:
Example JSON body
    
{
    "disableLdapAuth": false,
    "disableSamlAuth": false,
    "disableMailAuth": false,
    "fileDownloadIsEnabled": true,
    "pullRepoFromAnonUserIsEnabled": true,
    "downloadReleaseFromAnonUserIsEnabled": false,
    "enableEmailValidation": true,
    "enableDomainValidation": false,
    "enableWhiteList": true,
    "whiteListDomains": [
        "local.ru"
    ],
    "blackListDomains": [],
    "userAutoConfirm": false,
    "enableApiLimit": false,
    "userApiCountLimit": 400,
    "enableCustomSshPort": true,
    "sshPort": 1121,
    "globalRegistryAnonymousAccess": false,
    "publicRepositoryAutoPermission": false,
    "projectUpdateLag": 60,
    "sessionMaxInactiveIntervalMinutes": 60,
    "pullMirrorUpdateIntervalMinutes": 30,
    "pushMirrorUpdateIntervalMinutes": 30,
    "projectCreatePermission": true,
    "teamCreatePermission": true,
    "companyCreatePermission": true,
    "enableTwoFactor": true,
    "enableBasicAuth": true,
    "defaultLoginPage": "OIDC",
    "enableBasicLoginPage": true,
    "enableLdapLoginPage": false,
    "enableSamlLoginPage": false,
    "enableOidcLoginPage": true,
    "enableReports": true,
    "lockUserAccountIfLoginAttemptsHasBeenExceeded": false,
    "maxUserArchivedPasswords": 4,
    "timeToLockUser": 30,
    "timeToCountFailUserLoginAttempts": 10,
    "archiveUserPasswordsIsEnabled": true,
    "maxAttemptsToLoginIntoAccount": 6
}
    
  
STATUS 403 - No access rights.
Changing the ability for anonymous users to view packages uploaded to the global package registry
POST /admin/settings/anonymous-global-registry-access
The request changes the ability for anonymous users to view packages uploaded to the global package registry.
Request
Supported JSON format
POST request body structure:
| Parameter | Type | Description | 
|---|---|---|
| anonymousGlobalRegistryAccess | Boolean | Whether viewing packages in the global registry is available to anonymous users ( true) or not (false) | 
Example JSON object
{
    "anonymousGlobalRegistryAccess" : "false"
}
Responses
STATUS 200 example JSON:
Example JSON body
    
{
    "disableLdapAuth": false,
    "disableSamlAuth": false,
    "disableMailAuth": false,
    "fileDownloadIsEnabled": true,
    "pullRepoFromAnonUserIsEnabled": true,
    "downloadReleaseFromAnonUserIsEnabled": false,
    "enableEmailValidation": true,
    "enableDomainValidation": false,
    "enableWhiteList": true,
    "whiteListDomains": [
        "local.ru"
    ],
    "blackListDomains": [],
    "userAutoConfirm": false,
    "enableApiLimit": false,
    "userApiCountLimit": 400,
    "enableCustomSshPort": true,
    "sshPort": 1121,
    "globalRegistryAnonymousAccess": false,
    "publicRepositoryAutoPermission": false,
    "projectUpdateLag": 60,
    "sessionMaxInactiveIntervalMinutes": 60,
    "pullMirrorUpdateIntervalMinutes": 30,
    "pushMirrorUpdateIntervalMinutes": 30,
    "projectCreatePermission": true,
    "teamCreatePermission": true,
    "companyCreatePermission": true,
    "enableTwoFactor": true,
    "enableBasicAuth": true,
    "defaultLoginPage": "OIDC",
    "enableBasicLoginPage": true,
    "enableLdapLoginPage": false,
    "enableSamlLoginPage": false,
    "enableOidcLoginPage": true,
    "enableReports": true,
    "lockUserAccountIfLoginAttemptsHasBeenExceeded": false,
    "maxUserArchivedPasswords": 4,
    "timeToLockUser": 30,
    "timeToCountFailUserLoginAttempts": 10,
    "archiveUserPasswordsIsEnabled": true,
    "maxAttemptsToLoginIntoAccount": 6
}
    
  
STATUS 403 - No access rights.
Changing the ability for all users to create public projects
The request changes the ability for all users to create public projects.
POST /admin/settings/public-repository-auto-permission
Request
Supported JSON format
POST request body structure:
| Parameter | Type | Description | 
|---|---|---|
| enabled | Boolean | All users can create public projects ( true) or not (false) | 
Example JSON object
{
    "enabled" : "true"
}
Responses
STATUS 200 example JSON:
Example JSON body
    
{
    "disableLdapAuth": false,
    "disableSamlAuth": false,
    "disableMailAuth": false,
    "fileDownloadIsEnabled": true,
    "pullRepoFromAnonUserIsEnabled": true,
    "downloadReleaseFromAnonUserIsEnabled": false,
    "enableEmailValidation": true,
    "enableDomainValidation": false,
    "enableWhiteList": true,
    "whiteListDomains": [
        "local.ru"
    ],
    "blackListDomains": [],
    "userAutoConfirm": false,
    "enableApiLimit": false,
    "userApiCountLimit": 400,
    "enableCustomSshPort": true,
    "sshPort": 1121,
    "globalRegistryAnonymousAccess": false,
    "publicRepositoryAutoPermission": false,
    "projectUpdateLag": 60,
    "sessionMaxInactiveIntervalMinutes": 60,
    "pullMirrorUpdateIntervalMinutes": 30,
    "pushMirrorUpdateIntervalMinutes": 30,
    "projectCreatePermission": true,
    "teamCreatePermission": true,
    "companyCreatePermission": true,
    "enableTwoFactor": true,
    "enableBasicAuth": true,
    "defaultLoginPage": "OIDC",
    "enableBasicLoginPage": true,
    "enableLdapLoginPage": false,
    "enableSamlLoginPage": false,
    "enableOidcLoginPage": true,
    "enableReports": true,
    "lockUserAccountIfLoginAttemptsHasBeenExceeded": false,
    "maxUserArchivedPasswords": 4,
    "timeToLockUser": 30,
    "timeToCountFailUserLoginAttempts": 10,
    "archiveUserPasswordsIsEnabled": true,
    "maxAttemptsToLoginIntoAccount": 6
}
    
  
STATUS 403 - No access rights.
Changing the update frequency of a mirror project by a user
POST /admin/settings/mirror-update-lag
The request changes the frequency of updating a mirror project by a user. The time is specified in minutes.
Request
Supported JSON format
POST request body structure:
| Parameter | Type | Description | 
|---|---|---|
| projectUpdateLag | Integer | Time interval in minutes, once per which, a user can update a mirror project | 
Example JSON object
{
    "projectUpdateLag" : "60"
}
Responses
STATUS 200 example JSON:
Example JSON body
    
{
    "disableLdapAuth": false,
    "disableSamlAuth": false,
    "disableMailAuth": false,
    "fileDownloadIsEnabled": true,
    "pullRepoFromAnonUserIsEnabled": true,
    "downloadReleaseFromAnonUserIsEnabled": false,
    "enableEmailValidation": true,
    "enableDomainValidation": false,
    "enableWhiteList": true,
    "whiteListDomains": [
        "local.ru"
    ],
    "blackListDomains": [],
    "userAutoConfirm": false,
    "enableApiLimit": false,
    "userApiCountLimit": 400,
    "enableCustomSshPort": true,
    "sshPort": 1121,
    "globalRegistryAnonymousAccess": false,
    "publicRepositoryAutoPermission": false,
    "projectUpdateLag": 60,
    "sessionMaxInactiveIntervalMinutes": 60,
    "pullMirrorUpdateIntervalMinutes": 30,
    "pushMirrorUpdateIntervalMinutes": 30,
    "projectCreatePermission": true,
    "teamCreatePermission": true,
    "companyCreatePermission": true,
    "enableTwoFactor": true,
    "enableBasicAuth": true,
    "defaultLoginPage": "OIDC",
    "enableBasicLoginPage": true,
    "enableLdapLoginPage": false,
    "enableSamlLoginPage": false,
    "enableOidcLoginPage": true,
    "enableReports": true,
    "lockUserAccountIfLoginAttemptsHasBeenExceeded": false,
    "maxUserArchivedPasswords": 4,
    "timeToLockUser": 30,
    "timeToCountFailUserLoginAttempts": 10,
    "archiveUserPasswordsIsEnabled": true,
    "maxAttemptsToLoginIntoAccount": 6
}
    
  
STATUS 403 - No access rights.
Changing session duration
POST /admin/settings/session-max-inactive-interval
The request changes the maximum time in minutes a user can remain inactive before the session is automatically terminated.
Request
Supported JSON format
POST request body structure:
| Parameter | Type | Description | 
|---|---|---|
| sessionMaxInactiveIntervalMinutes | Integer | Maximum session time in minutes | 
Example JSON object
{
    "sessionMaxInactiveIntervalMinutes" : "60"
}
Responses
STATUS 200 example JSON:
Example JSON body
    
{
    "disableLdapAuth": false,
    "disableSamlAuth": false,
    "disableMailAuth": false,
    "fileDownloadIsEnabled": true,
    "pullRepoFromAnonUserIsEnabled": true,
    "downloadReleaseFromAnonUserIsEnabled": false,
    "enableEmailValidation": true,
    "enableDomainValidation": false,
    "enableWhiteList": true,
    "whiteListDomains": [
        "local.ru"
    ],
    "blackListDomains": [],
    "userAutoConfirm": false,
    "enableApiLimit": false,
    "userApiCountLimit": 400,
    "enableCustomSshPort": true,
    "sshPort": 1121,
    "globalRegistryAnonymousAccess": false,
    "publicRepositoryAutoPermission": false,
    "projectUpdateLag": 60,
    "sessionMaxInactiveIntervalMinutes": 60,
    "pullMirrorUpdateIntervalMinutes": 30,
    "pushMirrorUpdateIntervalMinutes": 30,
    "projectCreatePermission": true,
    "teamCreatePermission": true,
    "companyCreatePermission": true,
    "enableTwoFactor": true,
    "enableBasicAuth": true,
    "defaultLoginPage": "OIDC",
    "enableBasicLoginPage": true,
    "enableLdapLoginPage": false,
    "enableSamlLoginPage": false,
    "enableOidcLoginPage": true,
    "enableReports": true,
    "lockUserAccountIfLoginAttemptsHasBeenExceeded": false,
    "maxUserArchivedPasswords": 4,
    "timeToLockUser": 30,
    "timeToCountFailUserLoginAttempts": 10,
    "archiveUserPasswordsIsEnabled": true,
    "maxAttemptsToLoginIntoAccount": 6
}
    
  
STATUS 403 - No access rights.
Changing the mirror update interval
POST /admin/settings/mirror-update-interval
The request changes the update interval for PUSH and PULL mirrors.
Request
Supported JSON format
POST request body structure:
| Parameter | Type | Description | 
|---|---|---|
| pushMirrorUpdateIntervalMinutes | Integer | PUSH mirror update interval in minutes | 
| pullMirrorUpdateIntervalMinutes | Integer | PULL mirror update interval in minutes | 
Example JSON object
{
    "pushMirrorUpdateIntervalMinutes": 30,
    "pullMirrorUpdateIntervalMinutes": 30
}
Responses
STATUS 200 example JSON:
Example JSON body
    
{
    "disableLdapAuth": false,
    "disableSamlAuth": false,
    "disableMailAuth": false,
    "fileDownloadIsEnabled": true,
    "pullRepoFromAnonUserIsEnabled": true,
    "downloadReleaseFromAnonUserIsEnabled": false,
    "enableEmailValidation": true,
    "enableDomainValidation": false,
    "enableWhiteList": true,
    "whiteListDomains": [
        "local.ru"
    ],
    "blackListDomains": [],
    "userAutoConfirm": false,
    "enableApiLimit": false,
    "userApiCountLimit": 400,
    "enableCustomSshPort": true,
    "sshPort": 1121,
    "globalRegistryAnonymousAccess": false,
    "publicRepositoryAutoPermission": false,
    "projectUpdateLag": 60,
    "sessionMaxInactiveIntervalMinutes": 60,
    "pullMirrorUpdateIntervalMinutes": 30,
    "pushMirrorUpdateIntervalMinutes": 30,
    "projectCreatePermission": true,
    "teamCreatePermission": true,
    "companyCreatePermission": true,
    "enableTwoFactor": true,
    "enableBasicAuth": true,
    "defaultLoginPage": "OIDC",
    "enableBasicLoginPage": true,
    "enableLdapLoginPage": false,
    "enableSamlLoginPage": false,
    "enableOidcLoginPage": true,
    "enableReports": true,
    "lockUserAccountIfLoginAttemptsHasBeenExceeded": false,
    "maxUserArchivedPasswords": 4,
    "timeToLockUser": 30,
    "timeToCountFailUserLoginAttempts": 10,
    "archiveUserPasswordsIsEnabled": true,
    "maxAttemptsToLoginIntoAccount": 6
}
    
  
STATUS 403 - No access rights.
Changing the ability to create projects, companies, and teams
POST /admin/settings/create-permissions
The request changes the ability to create projects, companies, or teams for all service users.
Request
Supported JSON format
POST request body structure:
| Parameter | Type | Description | 
|---|---|---|
| enableCreateProject | Boolean | Whether project creation is available ( true) or not (false) | 
| enableCreateTeam | Boolean | Whether team creation is available ( true) or not (false) | 
| enableCreateCompany | Boolean | Whether company creation is available ( true) or not (false) | 
Example JSON object
{
    "enableCreateProject" : "true",
    "enableCreateTeam" : "true",
    "enableCreateCompany" : "true"
}
Responses
STATUS 200 example JSON:
Example JSON body
    
{
    "disableLdapAuth": false,
    "disableSamlAuth": false,
    "disableMailAuth": false,
    "fileDownloadIsEnabled": true,
    "pullRepoFromAnonUserIsEnabled": true,
    "downloadReleaseFromAnonUserIsEnabled": false,
    "enableEmailValidation": true,
    "enableDomainValidation": false,
    "enableWhiteList": true,
    "whiteListDomains": [
        "local.ru"
    ],
    "blackListDomains": [],
    "userAutoConfirm": false,
    "enableApiLimit": false,
    "userApiCountLimit": 400,
    "enableCustomSshPort": true,
    "sshPort": 1121,
    "globalRegistryAnonymousAccess": false,
    "publicRepositoryAutoPermission": false,
    "projectUpdateLag": 60,
    "sessionMaxInactiveIntervalMinutes": 60,
    "pullMirrorUpdateIntervalMinutes": 30,
    "pushMirrorUpdateIntervalMinutes": 30,
    "projectCreatePermission": true,
    "teamCreatePermission": true,
    "companyCreatePermission": true,
    "enableTwoFactor": true,
    "enableBasicAuth": true,
    "defaultLoginPage": "OIDC",
    "enableBasicLoginPage": true,
    "enableLdapLoginPage": false,
    "enableSamlLoginPage": false,
    "enableOidcLoginPage": true,
    "enableReports": true,
    "lockUserAccountIfLoginAttemptsHasBeenExceeded": false,
    "maxUserArchivedPasswords": 4,
    "timeToLockUser": 30,
    "timeToCountFailUserLoginAttempts": 10,
    "archiveUserPasswordsIsEnabled": true,
    "maxAttemptsToLoginIntoAccount": 6
}
    
  
STATUS 403 - No access rights.
Changing the ability to enable two-factor authentication
POST rest-api/admin/settings/2factor
The request changes the ability to enable two-factor authentication for logging into an account.
Request
Supported JSON format
POST request body structure:
| Parameter | Type | Description | 
|---|---|---|
| enableTwoFactor | Boolean | Whether using two-factor authentication for logging into an account is available ( true) or not (false) | 
Example JSON object
{
    "enableTwoFactor" : "true"
}
Responses
STATUS 200 example JSON:
Example JSON body
    
{
    "disableLdapAuth": false,
    "disableSamlAuth": false,
    "disableMailAuth": false,
    "fileDownloadIsEnabled": true,
    "pullRepoFromAnonUserIsEnabled": true,
    "downloadReleaseFromAnonUserIsEnabled": false,
    "enableEmailValidation": true,
    "enableDomainValidation": false,
    "enableWhiteList": true,
    "whiteListDomains": [
        "local.ru"
    ],
    "blackListDomains": [],
    "userAutoConfirm": false,
    "enableApiLimit": false,
    "userApiCountLimit": 400,
    "enableCustomSshPort": true,
    "sshPort": 1121,
    "globalRegistryAnonymousAccess": false,
    "publicRepositoryAutoPermission": false,
    "projectUpdateLag": 60,
    "sessionMaxInactiveIntervalMinutes": 60,
    "pullMirrorUpdateIntervalMinutes": 30,
    "pushMirrorUpdateIntervalMinutes": 30,
    "projectCreatePermission": true,
    "teamCreatePermission": true,
    "companyCreatePermission": true,
    "enableTwoFactor": true,
    "enableBasicAuth": true,
    "defaultLoginPage": "OIDC",
    "enableBasicLoginPage": true,
    "enableLdapLoginPage": false,
    "enableSamlLoginPage": false,
    "enableOidcLoginPage": true,
    "enableReports": true,
    "lockUserAccountIfLoginAttemptsHasBeenExceeded": false,
    "maxUserArchivedPasswords": 4,
    "timeToLockUser": 30,
    "timeToCountFailUserLoginAttempts": 10,
    "archiveUserPasswordsIsEnabled": true,
    "maxAttemptsToLoginIntoAccount": 6
}
    
  
STATUS 403 - No access rights.
Changing the ability to enable basic authentication for obtaining an API token
POST rest-api/admin/settings/basic-auth
The request changes the ability to enable basic authentication for obtaining an API token.
Request
Supported JSON format
POST request body structure:
| Parameter | Type | Description | 
|---|---|---|
| enableBasicAuth | Boolean | Whether using basic authentication for obtaining an API token is available ( true) or not (false) | 
Example JSON object
{
    "enableBasicAuth" : "true"
}
Responses
STATUS 200 example JSON:
Example JSON body
    
{
    "disableLdapAuth": false,
    "disableSamlAuth": false,
    "disableMailAuth": false,
    "fileDownloadIsEnabled": true,
    "pullRepoFromAnonUserIsEnabled": true,
    "downloadReleaseFromAnonUserIsEnabled": false,
    "enableEmailValidation": true,
    "enableDomainValidation": false,
    "enableWhiteList": true,
    "whiteListDomains": [
        "local.ru"
    ],
    "blackListDomains": [],
    "userAutoConfirm": false,
    "enableApiLimit": false,
    "userApiCountLimit": 400,
    "enableCustomSshPort": true,
    "sshPort": 1121,
    "globalRegistryAnonymousAccess": false,
    "publicRepositoryAutoPermission": false,
    "projectUpdateLag": 60,
    "sessionMaxInactiveIntervalMinutes": 60,
    "pullMirrorUpdateIntervalMinutes": 30,
    "pushMirrorUpdateIntervalMinutes": 30,
    "projectCreatePermission": true,
    "teamCreatePermission": true,
    "companyCreatePermission": true,
    "enableTwoFactor": true,
    "enableBasicAuth": true,
    "defaultLoginPage": "OIDC",
    "enableBasicLoginPage": true,
    "enableLdapLoginPage": false,
    "enableSamlLoginPage": false,
    "enableOidcLoginPage": true,
    "enableReports": true,
    "lockUserAccountIfLoginAttemptsHasBeenExceeded": false,
    "maxUserArchivedPasswords": 4,
    "timeToLockUser": 30,
    "timeToCountFailUserLoginAttempts": 10,
    "archiveUserPasswordsIsEnabled": true,
    "maxAttemptsToLoginIntoAccount": 6
}
    
  
STATUS 403 - No access rights.
Changing the default authorization page
POST /admin/settings/login-page
The request changes the set of possible entry points and also sets the default authentication page.
Request
Supported JSON format
POST request body structure:
| Parameter | Type | Description | 
|---|---|---|
| loginPageUrl | String | Default authentication page. Accepts the following values: BASIC,SAML,LDAPandOIDC | 
| isEnableBasic | Boolean | Whether the standard authentication page is available ( true) or not (false) | 
| isEnableLdap | Boolean | Whether the LDAP authentication page is available ( true) or not (false) | 
| isEnableSaml | Boolean | Whether the SAML authentication page is available ( true) or not (false) | 
| isEnableOidc | Boolean | Whether the OIDC authentication page is available ( true) or not (false) | 
Example JSON object
{
    "loginPageUrl" : "OIDC",
    "isEnableBasic" : "true",
    "isEnableLdap" : "false",
    "isEnableSaml" : "false",
    "isEnableOIDC" : "true"
}
Responses
STATUS 200 example JSON:
Example JSON body
    
{
    "disableLdapAuth": false,
    "disableSamlAuth": false,
    "disableMailAuth": false,
    "fileDownloadIsEnabled": true,
    "pullRepoFromAnonUserIsEnabled": true,
    "downloadReleaseFromAnonUserIsEnabled": false,
    "enableEmailValidation": true,
    "enableDomainValidation": false,
    "enableWhiteList": true,
    "whiteListDomains": [
        "local.ru"
    ],
    "blackListDomains": [],
    "userAutoConfirm": false,
    "enableApiLimit": false,
    "userApiCountLimit": 400,
    "enableCustomSshPort": true,
    "sshPort": 1121,
    "globalRegistryAnonymousAccess": false,
    "publicRepositoryAutoPermission": false,
    "projectUpdateLag": 60,
    "sessionMaxInactiveIntervalMinutes": 60,
    "pullMirrorUpdateIntervalMinutes": 30,
    "pushMirrorUpdateIntervalMinutes": 30,
    "projectCreatePermission": true,
    "teamCreatePermission": true,
    "companyCreatePermission": true,
    "enableTwoFactor": true,
    "enableBasicAuth": true,
    "defaultLoginPage": "OIDC",
    "enableBasicLoginPage": true,
    "enableLdapLoginPage": false,
    "enableSamlLoginPage": false,
    "enableOidcLoginPage": true,
    "enableReports": true,
    "lockUserAccountIfLoginAttemptsHasBeenExceeded": false,
    "maxUserArchivedPasswords": 4,
    "timeToLockUser": 30,
    "timeToCountFailUserLoginAttempts": 10,
    "archiveUserPasswordsIsEnabled": true,
    "maxAttemptsToLoginIntoAccount": 6
}
    
  
STATUS 403 - No access rights.
Changing the ability to submit reports
POST rest-api/admin/settings/project-report
The request changes the ability to submit reports on projects, teams, or companies.
Request
Supported JSON format
POST request body structure:
| Parameter | Type | Description | 
|---|---|---|
| enableReport | Boolean | Whether the ability to submit reports is available ( true) or not (false) | 
Example JSON object
{
    "enableReport" : "true"
}
Responses
STATUS 200 example JSON:
Example JSON body
    
{
    "disableLdapAuth": false,
    "disableSamlAuth": false,
    "disableMailAuth": false,
    "fileDownloadIsEnabled": true,
    "pullRepoFromAnonUserIsEnabled": true,
    "downloadReleaseFromAnonUserIsEnabled": false,
    "enableEmailValidation": true,
    "enableDomainValidation": false,
    "enableWhiteList": true,
    "whiteListDomains": [
        "local.ru"
    ],
    "blackListDomains": [],
    "userAutoConfirm": false,
    "enableApiLimit": false,
    "userApiCountLimit": 400,
    "enableCustomSshPort": true,
    "sshPort": 1121,
    "globalRegistryAnonymousAccess": false,
    "publicRepositoryAutoPermission": false,
    "projectUpdateLag": 60,
    "sessionMaxInactiveIntervalMinutes": 60,
    "pullMirrorUpdateIntervalMinutes": 30,
    "pushMirrorUpdateIntervalMinutes": 30,
    "projectCreatePermission": true,
    "teamCreatePermission": true,
    "companyCreatePermission": true,
    "enableTwoFactor": true,
    "enableBasicAuth": true,
    "defaultLoginPage": "OIDC",
    "enableBasicLoginPage": true,
    "enableLdapLoginPage": false,
    "enableSamlLoginPage": false,
    "enableOidcLoginPage": true,
    "enableReports": true,
    "lockUserAccountIfLoginAttemptsHasBeenExceeded": false,
    "maxUserArchivedPasswords": 4,
    "timeToLockUser": 30,
    "timeToCountFailUserLoginAttempts": 10,
    "archiveUserPasswordsIsEnabled": true,
    "maxAttemptsToLoginIntoAccount": 6
}
    
  
STATUS 403 - No access rights.
Changing the ability to lock account login if the number of login attempts has been exceeded
POST /admin/settings/lock-account
The request changes the settings for the rule to lock account login if the number of login attempts has been exceeded.
Request
Supported JSON format
POST request body structure:
| Parameter | Type | Description | 
|---|---|---|
| lockUser | Boolean | Whether the number of login attempts is limited ( true) or not (false) | 
| maxAttempts | Integer | Maximum number of failed password attempts after which all subsequent attempts will be rejected | 
| timeToLockUser | Integer | Lockout duration after exceeding login attempts (in minutes) | 
| timeToCountFailUserLoginAttempts | Integer | Time to count the number of failed login attempts (in seconds) | 
Example JSON object
{
    "lockUser" : "false",
    "maxAttempts" : "6",
    "timeToLockUser" : "30",
    "timeToCountFailUserLoginAttempts" : "10"
}
Responses
STATUS 200 example JSON:
Example JSON body
    
{
    "disableLdapAuth": false,
    "disableSamlAuth": false,
    "disableMailAuth": false,
    "fileDownloadIsEnabled": true,
    "pullRepoFromAnonUserIsEnabled": true,
    "downloadReleaseFromAnonUserIsEnabled": false,
    "enableEmailValidation": true,
    "enableDomainValidation": false,
    "enableWhiteList": true,
    "whiteListDomains": [
        "local.ru"
    ],
    "blackListDomains": [],
    "userAutoConfirm": false,
    "enableApiLimit": false,
    "userApiCountLimit": 400,
    "enableCustomSshPort": true,
    "sshPort": 1121,
    "globalRegistryAnonymousAccess": false,
    "publicRepositoryAutoPermission": false,
    "projectUpdateLag": 60,
    "sessionMaxInactiveIntervalMinutes": 60,
    "pullMirrorUpdateIntervalMinutes": 30,
    "pushMirrorUpdateIntervalMinutes": 30,
    "projectCreatePermission": true,
    "teamCreatePermission": true,
    "companyCreatePermission": true,
    "enableTwoFactor": true,
    "enableBasicAuth": true,
    "defaultLoginPage": "OIDC",
    "enableBasicLoginPage": true,
    "enableLdapLoginPage": false,
    "enableSamlLoginPage": false,
    "enableOidcLoginPage": true,
    "enableReports": true,
    "lockUserAccountIfLoginAttemptsHasBeenExceeded": false,
    "maxUserArchivedPasswords": 4,
    "timeToLockUser": 30,
    "timeToCountFailUserLoginAttempts": 10,
    "archiveUserPasswordsIsEnabled": true,
    "maxAttemptsToLoginIntoAccount": 6
}
    
  
STATUS 403 - No access rights.
Changing the ability to use an archived password when changing it
POST /admin/settings/archive-password
The request changes the ability to use an archived password.
Request
Supported JSON format
POST request body structure:
| Parameter | Type | Description | 
|---|---|---|
| enableArchiveUserPasswords | Boolean | Whether using archived passwords is prohibited ( true) or not (false) | 
| maxUserArchivedPasswords | Integer | Number of archived passwords | 
Example JSON object
{
    "enableArchiveUserPasswords" : "true",
    "maxUserArchivedPasswords" : "4"
}
Responses
STATUS 200 example JSON:
Example JSON body
    
{
    "disableLdapAuth": false,
    "disableSamlAuth": false,
    "disableMailAuth": false,
    "fileDownloadIsEnabled": true,
    "pullRepoFromAnonUserIsEnabled": true,
    "downloadReleaseFromAnonUserIsEnabled": false,
    "enableEmailValidation": true,
    "enableDomainValidation": false,
    "enableWhiteList": true,
    "whiteListDomains": [
        "local.ru"
    ],
    "blackListDomains": [],
    "userAutoConfirm": false,
    "enableApiLimit": false,
    "userApiCountLimit": 400,
    "enableCustomSshPort": true,
    "sshPort": 1121,
    "globalRegistryAnonymousAccess": false,
    "publicRepositoryAutoPermission": false,
    "projectUpdateLag": 60,
    "sessionMaxInactiveIntervalMinutes": 60,
    "pullMirrorUpdateIntervalMinutes": 30,
    "pushMirrorUpdateIntervalMinutes": 30,
    "projectCreatePermission": true,
    "teamCreatePermission": true,
    "companyCreatePermission": true,
    "enableTwoFactor": true,
    "enableBasicAuth": true,
    "defaultLoginPage": "OIDC",
    "enableBasicLoginPage": true,
    "enableLdapLoginPage": false,
    "enableSamlLoginPage": false,
    "enableOidcLoginPage": true,
    "enableReports": true,
    "lockUserAccountIfLoginAttemptsHasBeenExceeded": false,
    "maxUserArchivedPasswords": 4,
    "timeToLockUser": 30,
    "timeToCountFailUserLoginAttempts": 10,
    "archiveUserPasswordsIsEnabled": true,
    "maxAttemptsToLoginIntoAccount": 6
}
    
  
STATUS 403 - No access rights.
Methods for working with SAML connections
The described methods allow working with SAML SSO connections via REST-API
Description of the JSON object structure describing a SAML connection
| Field | Type | Description | 
|---|---|---|
| uuid | String | SAML connection UUID | 
| name | String | Display name of the SAML connection | 
| idpMetadataUrl | String | Url for retrieving SAML xml metadata of the identity provider (IDP metadata) | 
| idpIssuer | String | Unique, immutable issuerId of the identity provider (IDP issuerId) | 
| cert | String | x509 certificate of the identity provider (IDP certificate) | 
| idpInitiatedSsoUrl | String | URL for logging in via the identity provider from the GitFlic authorization page | 
Method for getting SAML connections
GET /admin/saml
The request returns a list of SAML connections, with the ability to configure the number of objects displayed per page
Responses
STATUS 200 example JSON:
Response example
    
{
    "_embedded": {
        "samlAdminApiModelList": [
            {
                "uuid": "ebe95df1-aaaa-aaaa-aaaa-1419e9eae965",
                "name": "Keycloack",
                "idpMetadataUrl": "https://example.com",
                "idpIssuer": "login-app",
                "cert": "cert-cert-cert-cert-cert=",
                "idpInitiatedSsoUrl": "https://example.com"
            },
            {
                "uuid": "136d6402-aaaa-aaaa-aaaa-5afacc9ced10",
                "name": "Gitflic",
                "idpMetadataUrl": "https://example.com",
                "idpIssuer": "Gitflic",
                "cert": "cert-cert-cert-cert-cert",
                "idpInitiatedSsoUrl": "https://example.com"
            }
        ]
    },
    "page": {
        "size": 10,
        "totalElements": 2,
        "totalPages": 1,
        "number": 0
    }
}
    
  
STATUS 403 - No access rights.
STATUS 404 - Data not found for the request.
Method for creating a SAML connection
POST /admin/saml
The request creates a SAML connection and returns information about it.
Request
Supported JSON format
POST request body structure:
| JSON Variable | Type | Description | 
|---|---|---|
| name | String | Display name of the SAML connection | 
| idpMetadataUrl | String | Url for retrieving SAML xml metadata of the identity provider (IDP metadata) | 
| idpIssuer | String | Unique, immutable issuerId of the identity provider (IDP issuerId) | 
| idpInitiatedSsoUrl | String | URL for logging in via the identity provider from the GitFlic authorization page | 
| cert | String | x509 certificate of the identity provider (IDP certificate) | 
Example JSON object
{
    "name":"SAML connection",
    "idpMetadataUrl":"https://example.com",
    "idpIssuer":"Gitflic",
    "idpInitiatedSsoUrl": "https://example.com",
    "cert": "MIIFdzCCA14gaaaaaaaaaaaa1PgmIrUvdp7o"
}
Responses
STATUS 200 example JSON:
Response example
    
{
    "uuid": "136d6402-aaaa-aaaa-aaaa-5afacc9ced10",
    "name": "SAML connection",
    "idpMetadataUrl": "https://example.com",
    "idpIssuer": "Gitflic",
    "cert": "MIIFdzCCA14gaaaaaaaaaaaa1PgmIrUvdp7o",
    "idpInitiatedSsoUrl": "https://example.com"
}
    
  
STATUS 403 - No access rights.
STATUS 404 - Data not found for the request.
Method for editing an existing SAML connection
PUT /admin/saml/{samlUuid}
The request edits an existing SAML connection and returns information about it.
| Path Variable | Type | Description | 
|---|---|---|
| samlUuid | String | SAML connection UUID | 
Request
Supported JSON format
PUT request body structure:
| JSON Variable | Type | Description | 
|---|---|---|
| name | String | Display name of the SAML connection | 
| idpMetadataUrl | String | Url for retrieving SAML xml metadata of the identity provider (IDP metadata) | 
| idpIssuer | String | Unique, immutable issuerId of the identity provider (IDP issuerId) | 
| idpInitiatedSsoUrl | String | URL for logging in via the identity provider from the GitFlic authorization page | 
| cert | String | x509 certificate of the identity provider (IDP certificate) | 
Example JSON object
{
    "name":"SAML connection",
    "idpMetadataUrl":"https://example.com",
    "idpIssuer":"Gitflic",
    "idpInitiatedSsoUrl": "https://example.com",
    "cert": "MIIFdzCCA14gaaaaaaaaaaaa1PgmIrUvdp7o"
}
Responses
STATUS 200 example JSON:
Response example
    
{
    "uuid": "136d6402-aaaa-aaaa-aaaa-5afacc9ced10",
    "name": "SAML connection",
    "idpMetadataUrl": "https://example.com",
    "idpIssuer": "Gitflic",
    "cert": "MIIFdzCCA14gaaaaaaaaaaaa1PgmIrUvdp7o",
    "idpInitiatedSsoUrl": "https://example.com"
}
    
  
STATUS 403 - No access rights.
STATUS 404 - Data not found for the request.
Method for enabling or disabling a SAML connection
PUT /admin/saml/{samlUuid}change-status/?isEnabled={samlStatus}
The request enables or disables a SAML connection
| Path Variable | Type | Description | 
|---|---|---|
| samlUuid | String | SAML connection UUID | 
| samlStatus | Boolean | SAML connection enabled ( true) or disabled (false) | 
Responses
STATUS 200 - SAML connection status successfully changed.
STATUS 403 - No access rights.
STATUS 404 - Data not found for the request.
Automatic Translation!
This page has been translated by automatic means. The text may contain inaccuracies.