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:
- Environment variables with the
aidial.prefix, for exampleaidial.server.port. An array is passed as a JSON string, for exampleaidial.config.files: '["/opt/config/config.json"]'. - The settings file named by
AIDIAL_SETTINGS. - The defaults bundled with Core (
aidial.settings.jsonin the Core image).
The Default column on each page is the bundled value where Core bundles one.
Settings by group
| Page | Settings |
|---|---|
| Server and client | server.*, client.*, webSocketClient.*, vertx.*, mcpHttpClient.*, proxy.*, asyncTaskExecutor.* |
| Storage | storage.*, and the permissions each blob store provider needs |
| Redis | redis.* |
| Identity providers | identityProviders.*, printAuthorizationHeader |
| Encryption | encryption.* |
| Resources | resources.*, complexResource.*, complexResourceSweep.* |
| Access | access.*, apiKeyValidation.*, perRequestApiKey.*, invitations.*, orgUnits.* |
| Applications and Code Interpreter | applications.*, codeInterpreter.* |
| Config loading | config.* |
| Toolsets security | toolsets.security.* |
| Analytics and tracing | analytics.*, tracing.*, deploymentStats.* |
| Background jobs | backgroundJob.*, 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"
}
}
This example turns off JWT verification and uses fixed encryption values. In production, verify tokens against your identity provider and generate random encryption values.