Skip to main content
Version: Next

BFF Configuration Reference

This reference documents the configuration variables used by the BFF service.

info

As a Spring Boot application, the BFF supports additional standard Spring Boot properties beyond those listed here. For comprehensive Spring Boot configuration options, refer to the Spring Boot Common Application Properties.

The variables documented below are either:

  • Required for functionality
  • Commonly configured for deployments
  • Custom properties specific to Procivis One

Spring Database Configuration

VariableTypeDefaultDescription
spring.datasource.urlstring-Database connection URL (format: jdbc:mysql://${MYSQL_HOST}:port/${MYSQL_DB})
spring.datasource.usernamestring-Database username
spring.datasource.passwordstring-Database 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

See the mariadb docs for further configurations.

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

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