Skip to content

Settings ​

The Settings page (/settings) provides a centralized interface for managing global configuration values. Only users with the ADMIN role can access this page.

How Settings Work ​

Settings are stored in the database as key-value pairs using the ApplicationConfig entity. Each setting includes:

FieldDescription
keyUnique identifier for the setting
valueThe configuration value (max 4096 characters)
groupLogical grouping for the UI (e.g., general, docker, security)
descriptionHuman-readable explanation shown in the settings form
isSecretWhen true, the value is masked in the UI and API responses

TIP

Secret settings (like registry passwords or API tokens) are masked with asterisks in the UI. The actual value is only sent to the backend on save — it is never returned in GET responses.

Configuration Groups ​

General ​

SettingDescription
Frontend URLPublic URL of the frontend (used for CORS and redirects)
Backend URLPublic URL of the backend API
CORS Allowed OriginsComma-separated list of allowed origins

Docker Registry ​

SettingDescription
Registry URLDocker registry endpoint (e.g., registry.example.com)
Registry UsernameAuthentication username
Registry PasswordAuthentication password (secret)

Notifications ​

SettingDescription
Notification retentionHow long to keep notification history
Email / Slack / Webhook integrationsOutbound notification channels

Security ​

SettingDescription
Session timeoutMaximum idle time before requiring re-authentication
Password policyMinimum length, complexity requirements

API ​

Settings are managed through the ConfigurationController.

List All Settings ​

http
GET /api/config

Returns all settings grouped by category. Secret values are redacted.

Update a Setting ​

http
PUT /api/config/{key}
Content-Type: application/json

{
  "value": "https://app.example.com"
}

Bulk Update ​

http
PUT /api/config
Content-Type: application/json

[
  { "key": "frontend.url", "value": "https://app.example.com" },
  { "key": "cors.origins", "value": "https://app.example.com,https://admin.example.com" }
]

WARNING

Changing CORS or URL settings may require a backend restart to take effect if the values were also set via environment variables. Database-stored settings take precedence at runtime.

Released under the MIT License.