Skip to main content

Static settings

Static settings configure the DIAL Core process itself: how it listens and connects, where it stores data, how it authenticates users, and how its background jobs run. Core reads them once at startup, so a change needs a restart. This reference is for platform engineers who deploy Core; it assumes you know how DIAL Core is configured.

File location​

Core reads static settings from the JSON file named by the AIDIAL_SETTINGS environment variable. In Docker Compose, mount the file and point the variable at it:

core:
environment:
AIDIAL_SETTINGS: /opt/settings/settings.json
volumes:
- ./settings:/opt/settings

In Kubernetes, the Helm chart renders the settings from your values file. See Cloud deployment.

Configuration precedence​

When a setting is defined in several places, Core takes it in this order:

  1. Environment variables with the aidial. prefix, for example aidial.server.port. An array is passed as a JSON string, for example aidial.config.files: '["/opt/config/config.json"]'.
  2. The settings file named by AIDIAL_SETTINGS.
  3. The defaults bundled with Core (aidial.settings.json in the Core image).

The Default column on each page is the bundled value where Core bundles one.

Settings by group​

PageSettings
Server and clientserver.*, client.*, webSocketClient.*, vertx.*, mcpHttpClient.*, proxy.*, asyncTaskExecutor.*
Storagestorage.*, and the permissions each blob store provider needs
Redisredis.*
Identity providersidentityProviders.*, printAuthorizationHeader
Encryptionencryption.*
Resourcesresources.*, complexResource.*, complexResourceSweep.*
Accessaccess.*, apiKeyValidation.*, perRequestApiKey.*, invitations.*, orgUnits.*
Applications and Code Interpreterapplications.*, codeInterpreter.*
Config loadingconfig.*
Toolsets securitytoolsets.security.*
Analytics and tracinganalytics.*, tracing.*, deploymentStats.*
Background jobsbackgroundJob.*, budgetCounterSweep.*, clientChannel.*, adminSystemExport.*

Minimal example​

From dial-docker-compose/settings/settings.json, for local evaluation only:

{
"server": {
"port": 8080
},
"identityProviders": {
"test": {
"rolePath": "roles",
"disableJwtVerification": true
}
},
"encryption": {
"secret": "salt",
"key": "password"
}
}
warning

This example turns off JWT verification and uses fixed encryption values. In production, verify tokens against your identity provider and generate random encryption values.