Skip to main content
Version: v0.19.0

Configuration

In this section, the configuration of the SSO bridge is explained. Configuration is used based on a config.yaml file which should be placed in the apps/backend folder. This config.yaml file is loaded when booting the application. The values get type checked, and it gives a clear error message if there is a configuration field missing or provided incorrectly. Next to the config.yaml file, you can also set environment variables. These override the values that are listed in the config.yaml file.

Databases​

By default, the development database is sqlite. We use postgres databases for production type instances of the http data planes.

Configuration parameters​

KeyRequiredTypeDescriptionDefault
DatabaseConfig
dbYesDatabaseConfigDatabase configuration
db.typeYes"sqlite" | "postgres"Type of database
db.databaseYesStringName of the database
db.synchronizeBooleanSynchronize database schema
db{type=sqlite}YesSQLiteConfigDatabase configuration
db{type=sqlite}.type"sqlite" | "postgres"Type of database"sqlite"
db{type=sqlite}.databaseYesStringName of the database
db{type=sqlite}.synchronizeBooleanSynchronize database schema
db{type=postgres}YesPostgresConfigDatabase configuration
db{type=postgres}.hostYesStringHost of the database
db{type=postgres}.portYesNumberPort of the database
db{type=postgres}.usernameYesStringUsername of the database
db{type=postgres}.passwordYesStringPassword of the database
db{type=postgres}.sslUnknownSSL configuration of the database
db{type=postgres}.type"sqlite" | "postgres"Type of database"postgres"
db{type=postgres}.databaseYesStringName of the database
db{type=postgres}.synchronizeBooleanSynchronize database schema
ServerConfig
serverServerConfigServer configuration
server.listenStringIP address the server listens on"0.0.0.0"
server.portNumberPort the server listens on3000
server.publicDomainStringPublic domain of the server"localhost"
server.publicAddressStringPublic address of the server"http://localhost:3000"
server.subPathStringSub path of the server
InitClient
initClientsInitClient[]Initial client configurations
initClients[].clientIdYesStringClient ID
initClients[].clientSecretStringClient secret (required for client_secret_post authentication)
initClients[].tokenEndpointAuthMethod"client_secret_post" | "private_key_jwt" | "none"Token endpoint authentication method: client_secret_post, private_key_jwt, or none"client_secret_post"
initClients[].jwkObjectPublic key in JWK format (required for private_key_jwt authentication)
initClients[].secretNameYesStringKubernetes secret name
initClients[].permissionsYesStringClient permissions (can be permission strings or permission set names)
initClients[].grantsStringClient grants types supported["client_credentials"]
initClients[].nameYesStringClient name
initClients[].descriptionYesStringClient description
initClients[].redirectUrisYesStringAllowed Client redirect URIs regex
InitUser
initUsersInitUser[]Initial user configurations
initUsers[].usernameYesStringUsername
initUsers[].passwordYesStringPassword
initUsers[].emailYesStringEmail
initUsers[].permissionsYesStringUser permissions (can be permission strings or permission set names)
initUsers[].grantsStringGrant types supported["authorization_code","refresh_token"]
initUsers[].require2FABooleanRequire two-factor authentication for this user. User will be prompted to set up 2FA on first login.
kubernetesNamespaceStringKubernetes namespace"default"
twoFactorIssuerNameStringIssuer name for Two-Factor Authentication (shown in authenticator apps)"SSO Bridge"
dcqlQueryMapUnknownDCQL Query map for OID4VP{"Administrator":{"credentials":[{"id":"identity_credential","format":"jwt_vc_json","meta":{"type_values":[["VerifiableCredential","HandsonCredential"]]},"claims":[{"id":"email","path":["credentialSubject","email"]},{"id":"role","path":["credentialSubject","role"],"values":["Administrator"]}]}]},"User":{"credentials":[{"id":"identity_credential","format":"jwt_vc_json","meta":{"type_values":[["VerifiableCredential","HandsonCredential"]]},"claims":[{"id":"email","path":["credentialSubject","email"]}]}]}}
AuditModuleConfig
auditAuditModuleConfigAudit logging configuration
audit.enabledBooleanEnable audit loggingtrue
audit.minSeverity"debug" | "info" | "warning" | "error" | "critical"Minimum severity level to log"info"
audit.logDeniedBooleanAlways log denied access attempts regardless of action typetrue
audit.logDelegatedBooleanLog delegated access attempts when enabled, while still respecting action-specific success filterstrue
audit.logMutationsBooleanLog successful mutation actions (create, update, delete, manage)true
audit.logExecuteYesBooleanLog successful execute actions
audit.logReadsYesBooleanLog successful read actions — disabled by default as reads are frequent and rarely relevant for auditing
audit.sensitiveResourcesUnknownResources that are always logged regardless of action-specific success filters["w.key","w.credential","sso.user"]
AuditHandlersConfig
audit.handlersAuditHandlersConfigHandler configuration
audit.handlers.consoleYesBooleanEnable console audit log handler
audit.handlers.databaseBooleanEnable database audit log handlertrue
audit.handlers.otlpYesBooleanEnable OTLP audit log handler
OtlpAuditHandlerConfig
audit.otlpOtlpAuditHandlerConfigOTLP audit log handler configuration
audit.otlp.urlStringOTLP HTTP logs endpoint URL"http://localhost:4318/v1/logs"
audit.otlp.headersObjectAdditional HTTP headers to include in OTLP requests
audit.otlp.timeoutMillisUnknownOTLP export timeout in milliseconds5000
audit.otlp.concurrencyLimitUnknownMaximum number of concurrent OTLP export requests1
audit.otlp.serviceNameStringService name included on OTLP log attributes"tsg-dsp-api"
audit.otlp.serviceVersionStringOptional service version included on OTLP log attributes