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)

User Authentication

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

Service Authentication

BFF always uses STS for inbound authentication. For configuration details, see Authentication Mode.

VariableTypeDefaultDescription
auth.stsTokenValidation.audstring-Expected audience claim for inbound STS token validation
auth.stsTokenValidation.issstring-Expected issuer for inbound STS token validation
auth.stsTokenValidation.jwksRefreshAfterinteger-JWKS refresh interval in seconds
auth.stsTokenValidation.jwksExpireAfterinteger-JWKS expiry in seconds
auth.stsTokenValidation.leewayinteger-Token validation leeway in seconds

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
sts.token.delegatedTokenValidityinteger-Validity duration of tokens with delegated permissions

IAM Integration

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.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
technical.tokenenabledboolean-Enable BFF as a technical user of your IAM
technical.tokeniamTokenEndpointUrlstring-Token endpoint URL of your IAM provider
technical.tokenclientIdstring-Client ID of the BFF service account in your IAM provider
technical.tokenclientSecretstring-Client secret of the BFF service account in your IAM provider

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 token (must match Core's configured token)
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/WIA) endpoints
frontend.profilesEnabledboolean-Enable/disable country profiles feature
frontend.profilesPathstring-File path to country profiles JSON configuration
frontend.announcementsEnabledboolean-Enable/disable announcement banner
frontend.announcementPathstring-File path to announcement JSON configuration
frontend.supportFeatureEnabledboolean-Enable/disable support links feature
frontend.refreshCredentialBatchEnabledboolean-Enable/disable credential batch refresh requests
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
frontend.webhooksEnabledboolean-Enable/disable webhooks for issuance and verification notifications
frontend.dashboardEnabledboolean-Enable/disable organizational statistics dashboard
frontend.systemDashboardEnabledboolean-Enable/disable system statistics dashboard
frontend.userListPageEnabledboolean-Enable/disable user management feature
frontend.iamUserSettingsEnabledboolean-Enable/disable user attributes modification page
frontend.iamLinkstring-URL template for linking to user records in your IAM provider; use %s as a placeholder for the user's sub

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 token (must match Bridge's configured token)
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 token (must match WRPR's configured token)

Session Management

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

History Configuration

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

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

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)

Logging

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

API Documentation

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)

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)

Application

VariableTypeDefaultDescription
spring.config.importstring-Import additional configuration files
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)

Development and Testing

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