Skip to content

Configuration File

Chronicle Server loads configuration from a chronicle.json file in the application root directory. In containers, this file is typically mounted at /app/chronicle.json.

{
"port": 35000,
"healthCheckEndpoint": "/health",
"features": {
"api": true,
"workbench": true,
"changesetStorage": false,
"oAuthAuthority": true
},
"storage": {
"type": "MongoDB",
"connectionDetails": "mongodb://localhost:27017"
},
"observers": {
"subscriberTimeout": 5,
"maxRetryAttempts": 10,
"backoffDelay": 1,
"exponentialBackoffDelayFactor": 2,
"maximumBackoffDelay": 600
},
"readModels": {
"replayedVersionsToKeep": 1
},
"events": {
"queues": 8
},
"authentication": {
"authority": null,
"defaultAdminUsername": "admin",
"adminUser": {
"username": "admin",
"password": "your-secure-password",
"email": "admin@example.com",
"requirePasswordChangeOnFirstLogin": true
}
},
"tls": {
"certificatePath": "/certs/chronicle.pfx",
"certificatePassword": "your-password"
},
"encryptionCertificate": {
"certificatePath": "/certs/encryption-cert.pfx",
"certificatePassword": "your-password"
},
"identityProvider": {
"certificate": {
"enabled": true,
"certificatePath": "/path/to/identity-provider.pfx",
"certificatePassword": "your-password"
}
}
}

Note that the sections are not wrapped in Cratis / Chronicle here — Chronicle republishes everything it reads from chronicle.json under the Cratis:Chronicle: configuration path itself. That prefix belongs on environment variables only.

Environment variables can override any of these values. See Configuration Precedence for details.

SectionDescription
port, healthCheckEndpointRoot properties for the port and health check path
featuresFeature toggles for API, Workbench, and OAuth authority
storageStorage provider configuration
observersRetry and timeout settings for observers
readModelsReplay retention settings for replay-generated read model versions
eventsEvent queue configuration
authenticationAuthentication, default admin username, and initial admin user bootstrap
tlsTLS certificate for the main Chronicle port — required in production
encryptionCertificateCertificate protecting OAuth keys, webhook credentials, and Data Protection keys — required in production
identityProviderOptional internal identity provider certificate settings