Skip to main content

Admin Backend configuration

Admin Backend (epam/ai-dial-admin-backend) is an optional service for backend-managed configuration, import/export, and legacy administration screens. It stores configuration state in its database and exports it for DIAL Core to read.

Admin Frontend can also work directly with Core, without this backend; see Admin Frontend configuration. The settings below apply only when Admin Backend is deployed. They match the backend's configuration guide at release 0.22.5, which lists every property, including OpenTelemetry and actuator settings.

Docker Compose example​

From dial-docker-compose-advanced/dial-2.x/docker-compose-base.yml:

admin-backend:
image: epam/ai-dial-admin-backend:0.20.1
platform: linux/amd64
user: root
environment:
ENABLE_CORE_CONFIG_VERSION_AUTO_DETECT: "true"
CONFIG_EXPORT_OUTPUTFILE_PATH: /app/config/config.json
CONFIG_REST_SECURITY_MODE: "oidc"
CORE_CLIENT_URL: "http://core:8080"
DEBUG_OPTS: "-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=*:5006"
DISABLE_SWAGGER_AUTHORIZATION: true
ENABLE_CONFIG_AUTO_IMPORT_ON_BOOTSTRAP: "true"
H2_DATASOURCE_ENCRYPTED_FILE_KEY: ${H2_DATASOURCE_ENCRYPTED_FILE_KEY}
H2_DATASOURCE_MASTER_KEY: ${H2_DATASOURCE_MASTER_KEY}
H2_DATASOURCE_PASSWORD: ${H2_DATASOURCE_PASSWORD}
H2_FILE: ./data/testdb
METRICS_ENABLED: "false"
'providers.keycloak.audiences': 'dial-admin-console'
'providers.keycloak.issuer': "http://${COMMON_HOST}:${KC_PORT}/realms/dial"
'providers.keycloak.jwk-set-uri': "http://keycloak:${KC_PORT}/realms/dial/protocol/openid-connect/certs"
'providers.keycloak.role-claims': roles
volumes:
- ${DIAL_DIR:-.}/admin/data:/app/data
- ${DIAL_DIR:-.}/core:/app/config
depends_on:
core:
condition: service_started
restart: always

DIAL Core client​

VariableDefaultDescription
CORE_CLIENT_URLlocalhost:8081DIAL Core service URL.
DIAL_ADMIN_CLIENT_ID—Removed in 1.38. Superseded by providers.<name>.audiences, which defines the same property.
CORE_PROMPTS_METADATA_DEFAULT_LIMIT256Default limit for prompts metadata queries.
CORE_APPLICATIONS_METADATA_DEFAULT_LIMIT256Default limit for applications metadata queries.
CORE_TOOLSETS_METADATA_DEFAULT_LIMIT256Default limit for toolsets metadata queries.

Config file export​

Admin Backend periodically exports the managed configuration to a file that DIAL Core reads as its config.json.

VariableDefaultDescription
CONFIG_EXPORT_ENABLEDtrueEnable or disable config file export.
CORE_CONFIG_VERSION—DIAL Core config version for export. Required if auto-detect is disabled.
ENABLE_CORE_CONFIG_VERSION_AUTO_DETECTfalseAuto-detect DIAL Core version from the running instance.
CORE_VERSION_CACHE_EXPIRATION_MS300000Cache expiration for auto-detected version (ms).
CONFIG_EXPORT_SYNCPERIOD15000Export interval (ms).
ENABLE_CONFIG_RELOADtrueWrite config to destination and call DIAL Core's /reload_config endpoint.
DELAY_CONFIG_RELOAD_MILLISECONDS5000Delay before calling /reload_config after writing the file.
ENABLE_CONFIG_AUTO_RELOADfalseEnable automatic scheduled /reload_config calls.
CONFIG_AUTO_RELOAD_SCHEDULE_DELAY_MILLISECONDS120000Interval between auto-reload calls (ms).
CONFIG_EXPORT_STORAGETYPELOCAL_FILEStorage type: LOCAL_FILE, KUBE_SECRET, or CONFIG_MAP.
CONFIG_EXPORT_OUTPUTFILE_PATHdata/export/out.jsonOutput file path (LOCAL_FILE mode).
CONFIG_EXPORT_CONFIGMAP_NAMES—ConfigMap names, comma-separated (CONFIG_MAP mode).
CONFIG_EXPORT_CONFIGMAP_KEYenv.config.jsonKey in the ConfigMap.
CONFIG_EXPORT_KUBESECRET_NAMES—Kubernetes Secret names, comma-separated (KUBE_SECRET mode).
CONFIG_EXPORT_KUBESECRET_KEYkube-secret-keyKey in the Kubernetes Secret.
CONFIG_EXPORT_CREATE_RESOURCESfalseCreate export destination resources if they do not exist.
CONFIG_EXPORT_SYNC_DURATION_THRESHOLD_MS120000Threshold before sync status changes to IN_PROGRESS_TOO_LONG (ms).

Config file import​

VariableDefaultDescription
IMPORT_CONFIGS_MAX_COUNT64Maximum files per import operation.
ENABLE_CONFIG_AUTO_IMPORT_ON_BOOTSTRAPfalseAuto-import configuration on first startup (runs once if database is empty).
IMPORT_AUTO_BOOTSTRAP_FILE_PATHS—Comma-separated file paths for bootstrap import.
IMPORT_AUTO_BOOTSTRAP_STRATEGYMERGE_JSONImport strategy: MERGE_JSON or SEQUENTIAL.
IMPORT_AUTO_BOOTSTRAP_CONFLICT_RESOLUTIONOVERRIDEConflict resolution: OVERRIDE or SKIP.

Key vault integration​

Admin Backend can fetch secrets from cloud key vaults for config export.

VariableDefaultDescription
CONFIG_EXPORT_KEYVAULT_TYPEnoneKey vault type: none, azure, vault, aws, or gcp.
CONFIG_EXPORT_KEYVAULT_SECRETNAMES—Secret names in key vault (azure, aws, gcp).
CONFIG_EXPORT_KEYVAULT_SECRETPATH—Path to secrets in Hashicorp Vault.
CONFIG_EXPORT_KEYVAULT_EXPIRATION_PERIOD3Key vault value expiration period.
CONFIG_EXPORT_KEYVAULT_EXPIRATION_UNITMONTHSTime unit for key vault expiration.

Cloud provider authentication for key vaults:

VariableDescription
AUTH_AZURE_TYPEAzure auth type: credential, cli, or managed.
AUTH_AZURE_CLIENT_IDAzure service principal client ID (credential mode).
AUTH_AZURE_TENANT_IDAzure tenant ID (cli or credential mode).
AUTH_AZURE_CLIENT_SECRETAzure service principal client secret (credential mode).
AZURE_KEY_VAULT_URLAzure Key Vault URL.
GCP_KEY_VAULT_PROJECT_IDGCP project ID for Secret Manager.
VAULT_URIHashicorp Vault server URL.
VAULT_TOKENHashicorp Vault access token.

Core auth token provider​

When Admin Backend communicates with DIAL Core, it authenticates using either a static API key or an OAuth token.

VariableDefaultDescription
CORE_AUTH_METHODtokenAuthentication method: token or api-key.
CORE_AUTH_API_KEY_VALUE—API key value (api-key mode).
CORE_AUTH_TOKEN_PROVIDER_URLhttp://localhost/disabledToken provider URL (token mode).
CORE_AUTH_TOKEN_PROVIDER_CLIENT_ID—Client ID for token provider.
CORE_AUTH_TOKEN_PROVIDER_CLIENT_SECRET—Client secret for token provider.
CORE_AUTH_TOKEN_PROVIDER_SCOPE—Token scope.
CORE_AUTH_TOKEN_PROVIDER_AUDIENCE—Token audience.
CORE_AUTH_TOKEN_PROVIDER_CACHE_ENABLEDtrueEnable token caching.
CORE_AUTH_TOKEN_PROVIDER_CACHE_REFRESH_BEFORE_EXPIRATION_SECONDS600Refresh window before token expiry (seconds).

Security​

VariableDefaultDescription
CONFIG_REST_SECURITY_MODEnoneAuthentication mode: oidc, basic, or none.
CLAIMS_EMAIL_KEYunique_nameJWT claim for user email.
SECURITY_USER_CLAIMoidJWT claim for user identification.
SECURITY_REQUIRE_EMAILfalseWhether the email claim is required.
DISABLE_SWAGGER_AUTHORIZATIONfalseDisable Swagger UI authorization.

Identity providers​

Admin Backend supports multiple identity providers using the pattern providers.{name}.{field}:

FieldDescription
providers.*.issuerAccepted JWT issuers.
providers.*.jwk-set-uriJWK Set URI for token verification.
providers.*.user-info-endpointUser info URI (alternative to jwk-set-uri).
providers.*.audiencesAccepted JWT audiences.
providers.*.role-claimsJWT claim paths for roles.
providers.*.allowed-rolesRoles with access (deprecated — use roles-mapping).
providers.*.roles-mappingJSON role mapping to FULL_ADMIN or READ_ONLY_ADMIN.
providers.*.aliasesIssuer aliases (Azure only).
providers.*.email-claimsJWT claim paths for email.
providers.*.principal-claimClaim used as principal.

Datasource​

Admin Backend stores its configuration state in a database. H2 is the default for development; PostgreSQL and MS SQL Server are supported for production.

VariableDefaultDescription
DATASOURCE_VENDORH2Database vendor: H2, POSTGRES, or MS_SQL_SERVER.
DATASOURCE_AUTH_TYPEbasicAuthentication type: basic, azure, or gcp.

H2 (default):

VariableDefaultDescription
H2_FILE./data/testdbH2 database file path.
H2_OPSCIPHER=AES;DB_CLOSE_DELAY=-1;DB_CLOSE_ON_EXIT=FALSEH2 connection options.
H2_DATASOURCE_MASTERKEY—H2 encryption master key.
H2_DATASOURCE_ENCRYPTEDFILEKEY—H2 encrypted file key.
H2_DATASOURCE_PASSWORD—H2 password.

PostgreSQL:

VariableDefaultDescription
POSTGRES_HOSTlocalhostPostgreSQL host.
POSTGRES_PORT5432PostgreSQL port.
POSTGRES_DATABASEtestdbDatabase name.
POSTGRES_OPS—Connection options appended to JDBC URL.
POSTGRES_DATASOURCE_USERNAMEpostgresUsername.
POSTGRES_DATASOURCE_PASSWORDpostgresPassword.

MS SQL Server:

VariableDefaultDescription
MS_SQL_SERVER_HOSTlocalhostSQL Server host.
MS_SQL_SERVER_PORT1433SQL Server port.
MS_SQL_SERVER_DATABASEtestdbDatabase name.
MS_SQL_SERVER_OPSencrypt=false;Connection options.
MS_SQL_SERVER_DATASOURCE_USERNAMEsaUsername.
MS_SQL_SERVER_DATASOURCE_PASSWORDSQLServerPassword1Password.

Common database settings:

VariableDefaultDescription
SPRING_JPA_HIBERNATE_DDL_AUTOvalidateHibernate DDL strategy.
SPRING_FLYWAY_ENABLEDtrueEnable Flyway database migrations.

Kubernetes configuration​

Required when CONFIG_EXPORT_STORAGETYPE is KUBE_SECRET or CONFIG_MAP.

VariableDefaultDescription
KUBERNETES_CONFIG_CONNECTTYPECONFIG_FILEConnection type: CONFIG_FILE or TOKEN.
KUBERNETES_CONFIG_MASTERURL—Kubernetes master URL (TOKEN mode).
KUBERNETES_CONFIG_OAUTHTOKEN—Kubernetes OAuth token (TOKEN mode).
KUBERNETES_CONFIG_TRUSTCERTSfalseTrust all Kubernetes certificates.
KUBERNETES_CONFIG_NAMESPACEdefaultKubernetes namespace.

Web server​

VariableDefaultDescription
SERVER_PORT8080Web server port.
SERVLET_MULTIPART_MAX_FILE_SIZE4MBMaximum file size for multipart uploads.
SERVLET_MULTIPART_MAX_REQUEST_SIZE64MBMaximum request size.

Metrics​

These settings serve the legacy telemetry Dashboards: Admin Backend queries the InfluxDB that the legacy Analytics Realtime service writes, as its README notes. New deployments use DIAL Analytics instead: with Admin's Analytics settings and ANALYTICS_USAGE_ENABLED on, the dashboards read DIAL Analytics.

VariableDefaultDescription
METRICS_ENABLEDfalseEnable metrics collection from InfluxDB.
METRICS_CONFIG_CONTENT—Dataset configuration JSON content.
METRICS_CONFIG_FILE—Path to dataset configuration JSON file.
METRICS_DATASOURCE_TYPEinflux2InfluxDB version: influx2 or influx3.
METRICS_STORAGE_HOST—InfluxDB URL. Required if metrics are enabled.
METRICS_STORAGE_TOKEN—InfluxDB access token. Required if metrics are enabled.
METRICS_MAX_TIME_RANGE72hMaximum query time range.

Retry​

VariableDefaultDescription
FEIGN_RETRY_PERIOD10000Initial retry delay (ms).
FEIGN_RETRY_MAXPERIOD15000Maximum retry delay (ms).
FEIGN_RETRY_MAXATTEMPTS5Maximum retry attempts.
FEIGN_RETRY_ERRORCODES408,429,500,502,503,504HTTP status codes that trigger retries.

Logging​

VariableDefaultDescription
APP_LOG_LEVELINFOApplication log level.
LOGGING_LEVEL_ORG_SPRINGFRAMEWORK_SECURITYINFOSpring Security log level.
LOGGING_LEVEL_ORG_HIBERNATE_SQLINFOHibernate SQL log level.
LOGGER_CONFIGURATION_PATHlog-config/logging.levels.jsonExternal logger configuration file path.
LOGGER_CONFIGURATION_INTERVAL10Logger configuration check interval (seconds).

Validation​

Entity name validation patterns (all optional, no defaults):

VariableDescription
ROLE_NAME_VALIDATION_PATTERNRegex for role names.
MODEL_NAME_VALIDATION_PATTERNRegex for model names.
APPLICATION_NAME_VALIDATION_PATTERNRegex for application names.
INTERCEPTOR_NAME_VALIDATION_PATTERNRegex for interceptor names.
KEY_NAME_VALIDATION_PATTERNRegex for API key names.
ROUTE_NAME_VALIDATION_PATTERNRegex for route names.
TOOLSET_NAME_VALIDATION_PATTERNRegex for toolset names.
APPLICATION_TYPE_SCHEMA_ID_VALIDATION_PATTERNRegex for application type schema IDs.

Further reading​