Skip to main content
Version: Next

BFF Configuration Reference

Database Configuration

MariaDB Container Configuration

The following variables configure the BFF's MariaDB database container:

VariableTypeDefaultDescription
MARIADB_USERstring-MariaDB user
MARIADB_PASSWORDstring-MariaDB password
MARIADB_DATABASEstring-MariaDB database name
MARIADB_ROOT_PASSWORDstring-MariaDB root password

Database Connection Variables

The BFF uses the following variables to construct the database connection. These should reference the MariaDB container values above:

VariableTypeDefaultDescription
MYSQL_HOSTstring-MySQL/MariaDB hostname
MYSQL_DBstring-MySQL/MariaDB database name (must match MARIADB_DATABASE)
MYSQL_USERstring-MySQL/MariaDB username (must match MARIADB_USER)
MYSQL_PASSWORDstring-MySQL/MariaDB password (must match MARIADB_PASSWORD)

Spring Database Configuration

Spring Boot uses these variables to establish database connections, typically referencing the MYSQL_* variables above:

VariableTypeDefaultDescription
spring.datasource.urlstring-Database connection URL (format: jdbc:mysql://${MYSQL_HOST}:port/${MYSQL_DB})
spring.datasource.usernamestring-Database username (typically references ${MYSQL_USER})
spring.datasource.passwordstring-Database password (typically references ${MYSQL_PASSWORD})
spring.datasource.hikari.connectionTimeoutinteger30000Maximum time (ms) to wait for connection from pool
spring.datasource.hikari.maximumPoolSizeinteger10Maximum number of connections in the pool
spring.flyway.enabledbooleantrueEnable/disable Flyway database migrations
spring.flyway.locationsstringclasspath:db/migrationLocation of Flyway migration scripts
spring.jpa.hibernate.ddl-autostring-Hibernate DDL auto mode (for example, validate, update, create)
spring.jpa.open-in-viewbooleantrueEnable Open Session in View pattern

Server and HTTP Settings

VariableTypeDefaultDescription
server.portinteger8080HTTP port for the application server
server.tomcat.accessLogEnabledbooleanfalseEnable Tomcat access logging
server.tomcat.accessLogPatternstring-Pattern for Tomcat access logs (for example, "%a %t %r %s %b")
server.tomcat.relaxed-query-charsstring-Characters allowed in URL query strings without encoding
spring.mvc.async.request-timeoutinteger-Async request timeout in milliseconds (30 minutes recommended for large CSV exports)

Secure Token Service (STS)

VariableTypeDefaultDescription
sts.enableManagementEndpointsboolean-Enable STS management endpoints
sts.enableTokenEndpointboolean-Enable STS token issuance endpoint
sts.token.issstring-Token issuer URL (typically your IAM URL with port)
sts.token.privateKeystring-Private key for signing tokens
sts.token.maxTokenValidityinteger-Maximum token validity period
sts.token.audstring-Token audience claim

Identity and Access Management (IAM)

VariableTypeDefaultDescription
sts.iam.adminRolestring-IAM role of BFF admin users
sts.iam.rolePathstring-JSON path to roles claim in IAM token
sts.iam.usernamePathstring-JSON path to username claim in IAM token
sts.iam.givenNamePathstring-JSON path to given name claim in IAM token
sts.iam.familyNamePathstring-JSON path to family name claim in IAM token
sts.iam.emailPathstring-JSON path to email claim in IAM token
sts.iam.defaultLanguagestring-Default language for users
sts.iam.defaultHomepagestring-Default homepage URL after login
sts.iam.loginCredential.clientIdstring-OAuth client ID for IAM login
sts.iam.loginCredential.clientSecretstring-OAuth client secret for IAM login
sts.iam.tokenValidation.audstring-Expected audience for IAM token validation
sts.iam.tokenValidation.issstring-Expected issuer for IAM token validation (for example, Keycloak realm URL)
sts.iam.tokenValidation.jwksUristring-JWKS endpoint URL for IAM token verification
jwt.secretstring-Secret key for JWT signing/verification

Keycloak Integration

VariableTypeDefaultDescription
keycloak.urlstring-Keycloak server URL (used in development; production deployments may use alternative IAM)
keycloak.realmstring-Keycloak realm name

Service Integration

Core Integration

All BFF deployments require integration with the Procivis One Core service.

VariableTypeDefaultDescription
core.enabledboolean-Enable Core service integration
core.urlstring-Core service base URL
core.api.authenticationstring-Authentication mode: UNSAFE_NONE, UNSAFE_STATIC, or STS
core.api.staticTokenstring-Static authentication token if using UNSAFE_STATIC mode (must match Core's app.authToken or ONE_app__authToken)
core.history.export.entryLimitinteger-Maximum number of entries for history export operations

Frontend Integration

VariableTypeDefaultDescription
frontend.urlstring-Client-facing frontend domain URL
frontend.logoutUrlstring-URL to redirect after logout
frontend.walletEnabledboolean-Enable/disable organizational/business wallet endpoints
frontend.walletProviderEnabledboolean-Enable/disable wallet provider (WUA/WAA) endpoints
frontend.profilesEnabledboolean-Enable/disable country profiles feature
frontend.profilesPathstring-File path to country profiles JSON configuration
frontend.announcementEnabledboolean-Enable/disable announcement banner
frontend.announcementPathstring-File path to announcement JSON configuration
frontend.supportFeatureEnabledboolean-Enable/disable support links feature
frontend.history.enabledboolean-Enable/disable history feature
frontend.history.pagesEnabledarray-List of enabled history pages (for example, CREDENTIAL_SCHEMA , PROOF, WALLET_RELYING_PARTY)
frontend.reissueEnabledboolean-Enable/disable credential reissuance feature

Bridge and WRPR Integration

Bridge and WRPR are optional services depending on your deployment requirements.

VariableTypeDefaultDescription
bridge.enabledboolean-Enable Bridge service integration
bridge.urlstring-Bridge service base URL
bridge.api.authenticationstring-Authentication mode: UNSAFE_NONE, UNSAFE_STATIC, or STS
bridge.api.staticTokenstring-Static authentication token (must match Bridge's auth.staticToken if using UNSAFE_STATIC mode)
bridge.api.discoveryUrlstring-Bridge discovery endpoint URL
wrpr.enabledboolean-Enable WRPR service integration
wrpr.urlstring-WRPR service base URL
wrpr.api.authenticationstring-Authentication mode: UNSAFE_NONE, UNSAFE_STATIC, or STS
wrpr.api.staticTokenstring-Static authentication token (must match WRPR's auth.staticToken if using UNSAFE_STATIC mode)

Session Management

VariableTypeDefaultDescription
REDIS_HOSTstring-Redis server hostname
REDIS_PORTinteger6379Redis server port
REDIS_DBinteger0Redis database number
REDIS_PASSWORDstring-Redis authentication password

Authentication and Login

VariableTypeDefaultDescription
login.urlstring-Login page URL (e.g., ${frontend.url}/login)
forgot.password.urlstring-Forgot password page URL
forgot.password.pauseTimeinteger-Cooldown period between password reset requests

Login with Credential

This optional feature allows users to issue themselves a login credential within the Desk UI and use it for authentication.

VariableTypeDefaultDescription
login.verification.protocolstring-Verification protocol identifier to use for login
login.credential.enabledboolean-Enable/disable user login with verifiable credential
login.credential.issuerDidstring-DID to use for issuing login credentials
login.credential.exchangestring-Issuance protocol to use for login credentials
login.credential.credentialSchemaIdstring-Credential schema ID for login credentials
login.credential.organisationIdstring-Organization UUID for issuing login credentials
login.credential.emailPathstring-Claim path for user's email address (typically "email")

Mobile App Integration

VariableTypeDefaultDescription
appLink.urlstring-Base URL for mobile app deep links
appLink.wallet.android.packageNamestring-Android wallet app package name
appLink.wallet.android.sha256CertFingerPrintstring-SHA-256 certificate fingerprint for Android wallet app
appLink.wallet.ios.appIdstring-iOS wallet app identifier
appLink.verifier.android.packageNamestring-Android verifier app package name
appLink.verifier.android.sha256CertFingerPrintstring-SHA-256 certificate fingerprint for Android verifier app
appLink.verifier.ios.appIdstring-iOS verifier app identifier

History Configuration

VariableTypeDefaultDescription
history.typestring-History storage backend type, only REMOTE_REST supported
history.enabledboolean-Enable/disable history; pushes to Core history endpoint

Email Configuration

VariableTypeDefaultDescription
spring.mail.hoststring-SMTP server hostname
spring.mail.portinteger-SMTP server port
spring.mail.usernamestring-SMTP authentication username
spring.mail.passwordstring-SMTP authentication password
spring.mail.properties.mail.smtp.authboolean-Enable SMTP authentication
spring.mail.properties.mail.smtp.starttls.enableboolean-Enable STARTTLS encryption
email.senderstring-From address for outgoing emails
email.connectionstring-Email connection type
email.providerstring-Email provider (for example, smtp)

Management and Monitoring

VariableTypeDefaultDescription
management.endpoints.access.defaultstring-Default access level for management endpoints
management.endpoint.health.probes.enabledboolean-Enable Kubernetes health probes
management.endpoint.health.accessstring-Access level for health endpoint (for example, unrestricted)
management.endpoint.info.accessstring-Access level for info endpoint (for example, unrestricted)
management.endpoint.prometheus.accessstring-Access level for Prometheus metrics endpoint (for example, unrestricted)
management.health.mail.enabledboolean-Enable mail health check (only if SMTP is configured)

API Documentation (Springdoc)

VariableTypeDefaultDescription
springdoc.show-actuatorboolean-Include Spring Boot Actuator endpoints in API docs
springdoc.api-docs.versionstring-OpenAPI specification version (for example, openapi_3_1)
springdoc.packages-to-scanstring-Package names to scan for API documentation
springdoc.paths-to-matchstring-Path patterns to include in API documentation (comma-separated)
springdoc.cache.disabledboolean-Disable API documentation caching
springdoc.swagger-ui.operations-sorterstring-Operation sorting method in Swagger UI (for example, alpha)

Application Configuration

VariableTypeDefaultDescription
spring.config.importstring-Import additional configuration files (for example, environment-specific properties)
spring.profiles.activestring-Active Spring profile(s)
spring.main.banner-modestringconsoleSpring Boot banner display mode
app.versionstring-Application version identifier
app.stacktrace.enabledboolean-Enable/disable stacktrace in error responses
typestring-Deployment environment type (for example, localdev)

Data Serialization

VariableTypeDefaultDescription
spring.jackson.serialization.write_dates_as_timestampsbooleanfalseSerialize dates as timestamps vs ISO-8601 strings
spring.jackson.default-property-inclusionstring-Default property inclusion strategy (for example, NON_NULL)

Logging

VariableTypeDefaultDescription
logging.level.org.springframework.securitystring-Log level for Spring Security (for example, DEBUG, INFO, WARN)

Development and Testing

VariableTypeDefaultDescription
test.server.urlstring-Base URL for test server