Skip to main content

Wallet Server Application Config

The configuration details required under the wallet.config parameter are:

  • Authorization Server domain name, clientid and secret (eg. https://authserver, clientid, secret)
  • Wallet Server domain name (eg. https://walletserver)
  • Wallet Web UI domain name (eg. https://walletui)
  • Wallet Native url scheme (eg. com.identos.wallet)
  • Database host, dbname, username and password (eg. dbhost, dbwallet, dbusername, dbpassword)
Using Verifiable Credentials

Verifiable Credentials is an optional feature for the FPX Wallet that needs to be enabled via specific configuration parameters under wallet.config. The sample YAML shown in this section does not contain these optional parameters. Refer to the Verifiable Credentials chapter for more details on the specific configuration required to enable this feature.

A sample YAML file is shown below followed by a detailed description of each parameter listed here, whether it's a required parameter and accepted values.

      server.tomcat.remote_ip_header: x-forwarded-for
server.tomcat.protocol_header: x-forwarded-proto
server.tomcat.use-relative-redirects: true
server.error.whitelabel.enabled: false
server.port: 8084
timezone: UTC

i18n:
defaultLang: en
allLanguages: fr, en
basename: classpath:./i18n/messages
cacheEvictFixedRateString: PT30S

cors:
origins:
- http://wallet-ui.demourl

idp:
user:
account:
idpManageUrl: https://<IDP_Account_Management_URL>/
idpUserDeleteEnabled: false
idpUserDeleteUrl: https://<IDP_Account_Deletion_Endpoint_URL>

logging:
level:
com.identos.fpxwallet.walletserver: DEBUG
org.hibernate.SQL: DEBUG
org.hibernate.type: DEBUG
config: classpath:logback-dev.xml

pending-auth-request:
requestExpiryInseconds: 1800

mobile-permission-path: consent_request
mobile-host: com.identos.custom.schema.url://fpx-wallet/
server-host: http://wallet.demourl
web-host: http://wallet-ui.demourl
oidc:
provider:
issuer: ${server-host}
client:
redirectHost: ${server-host}

navigator:
fallbackBaseUrl: ${web-host}
redirects:
- baseUrl: ${mobile-host}
idpPath: /oauth_callback
consentPath: ${mobile-permission-path}
dsPath: /oauth_callback
errorPath: /error
- baseUrl: ${web-host}
idpPath: /idp-callback
consentPath: /as-authorize
dsPath: /rs-callback
errorPath: /login
errorPageRedirectUrl: ${web-host}/login

app:
device:
verificationUrl: ${mobile-host}${mobile-permission-path}
idpUserDeleteUrl: https://<IDP_Account_Deletion_Endpoint_URL>
logo: "identos.png"
name: An app name
errorPageRedirectUrl: ${web-host}/login
errorPageTitle: Error


fpxwallet.walletserver.resources.login-page.css: ${server-host}/style.css
idp.user.account.delete.enable: false

# --------------------
# Database and Spring Defaults
# --------------------
spring:
session:
store-type: jdbc
jdbc:
initialize-schema: always
table-name: SPRING_SESSION
thymeleaf:
cache: false
prefix: classpath:./templates/
datasource:
driverClassName: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://wallet-database-url/wallet?createDatabaseIfNotExist=true
username: exampleuser
password: examplepassword
jpa:
hibernate.ddl-auto: validate
generate-ddl: false
show-sql: false
open-in-view: false
flyway:
enabled: true
locations: classpath:db/development
mvc:
throw-exception-if-no-handler-found: true
pathmatch.matching-strategy: ant_path_matcher
web:
resources:
add-mappings: false
mountFile:
- filename: messages_en.properties
identifier: i18n-en
folderpath: "/etc/config/"
data: |-
error_title=Session timed out
ontario_trusted_account=CareHub account
session_timed_out_title=Session Timed Out
session_timed_out_message=Your session timed out. Please restart your account set up process.
try_again=Please Start Again
no_script=You need to enable JavaScript to run this app.
redirect_to_app=Redirect to native app
oauth_success_title=Access your account
oauth_success_message=To complete this flow and access your account, you must return to your Navigator app.
oauth_success_button=Continue in the Navigator

Global Server Parameters

Configuration directives that are used for overall application configuration.

ParameterDescriptionSuggested ValueRequired
server.tomcat.remote_ip_headerHeader to use as remote IP address for client connections.x-forwarded-forYes
server.tomcat.protocol_headerHeader to use as remote protocol for client connections.x-forwarded-protoYes
server.tomcat.use-relative-redirectsWhen redirecting, assume links are relative.TrueYes
server.portApplication port to listen for client connections on.8080
server.error.whitelabel.enabledEnable built in spring configuration file.falseYes
spring.thymeleaf.prefixLocation of template files for Wallet selection and error pages. Can use external sources such as https://classpath:./templates/Yes
spring.resources.static-locationsLocation of static files such as css/html/javascript for template files.classpath:./static/Yes
mobile-hostThis property is the URI to a mobile frontend application.com.identos.demo.wallet://fpx-wallet/Yes
web-hostThis property is the URL for the Wallet frontend application.Yes
server-hostThis property is the URL of the Wallet Server.http://localhost:8084Yes
fpxwallet.walletserver.resources.login-page.cssThis property is configured to set the path to the CSS file for default theme.${server-host}/style.cssYes
spring.mvc.throw-exception-if-no-handler-foundReturns an exception for 404 errors and allows the administrator to define a custom responsetrueYes
spring.web.resources.add-mappingsDefines whether to use spring default resource mappings - default mappings have been replaced with specifically configured mappingsfalseYes
spring.mvc.pathmatch.matching-strategyThis parameter is related to the spring.web.resources.add-mappings parameter and enables mapping via an ant path.ant_path_matcherYes

Identity Provider Configuration

ParameterDescriptionSuggested ValueRequired
idp.user.account.idpManageUrlAn endpoint that can be exposed by an identity provider to allow the Wallet Server to manage the user's account.{{an-identity-provider-account-management-url}}Yes
idp.user.account.idpUserDeleteEnabledWhen receiving a request to delete a user's account, this parameter determines whether the Wallet will delete the user's account at the Identity Provider in addition to deleting the account at the Wallet.falseYes
idp.user.account.idpUserDeleteUrlAn endpoint that can be exposed by an identity provider which allows the Wallet to delete the user's account at with the provider.{{an-identity-provider-account-deletion-url}}Yes

Localization

Configuration directives for localization support.

ParameterDescriptionSuggested ValueRequired
i18n.defaultLangDefault language used for localization.enYes
i18n.allLanguagesComma separated list of language strings to support localization for i.e. "en, fr".enYes
i18n.basenameLocation for localization strings to use in static template files.classpath:./i18n/messagesYes
i18n.cacheEvictFixedRateString:Defines the frequency for cached localized string (locale,key) to be evicted and re-located from a source.PT8HNo
i18n.useCodeAsDefaultMessage:Whether the unresolved localization code (key) will be returned in API responses that contain localizeable fields, in cases where there is no localization message corresponding to that code in the language_translations tablefalseNo, defaults to false

Logging

ParameterDescriptionSuggested ValueRequired
loggingSee https://docs.spring.io/spring-boot/docs/2.3.5.RELEASE/reference/html/spring-boot-features.html#boot-features-logging for logging customizations.nullNo
logging.level.com.identosControls the level at which the application's configured loggers will be permitted to log. This applies only to loggers that exist in a package that begins with "com.identos"DEBUGNo. If not set, defaults to INFO level.
logging.configSets the configuration file for application logging. This value will output structured logs in compressed, single-line JSON format. To view the logs in a human-readable format (i.e. for development purposes), this value can be set to classpath:logback-dev.xml.classpath:logback-spring.xmlNo. If not set, defaults to classpath:logback-spring.xml.

Pending Auth Request

ParameterDescriptionSuggested ValueRequired
pending-auth-request.requestExpiryInsecondsThe pending-auth-request is an outgoing authorization request to either an identity provider or a resource server during a wallet account login or the data source connection flow. This parameter defines, in seconds, for how long the pending-auth-request stays valid. If the pending-auth-request reaches its expiry time before the user is able to complete authentication to login or to connect to a data source, the wallet server will reject the request and the user will be redirected to an error page.1800No, default value is 600

Database Configuration

Database configuration for the Wallet Server

ParameterDescriptionSuggested ValueRequired
spring.flyway.enabledEnable or disable automatic Flyway migrations.trueYes
spring.flyway.locationsLocation for DB migration scripts.classpath:db/migration,classpath:db/developmentYes
spring.datasource.driverClassNameDriver to use for DB connections (only MySQL supported).com.mysql.cj.jdbc.DriverYes
spring.datasource.urlDriver to use for DB connections.jdbc:mysql://database-hostname/wallet?createDatabaseIfNotExist=trueYes
spring.datasource.usernameUsername for database connection.usernameYes
spring.datasource.passwordPassword for database connection.passwordYes
spring.jpa.hibernate.ddl-autoValidate database structure on startup.validateYes
spring.jpa.show_sqlShow all SQL queries that are run against the database source in the logs.falseNo
spring.jpa.generate_ddlA flag that determines whether a SQL Database should be initialized at startup.trueYes

OIDC Configuration Settings

OIDC configuration settings including both client / server settings.

ParameterDescriptionSuggested ValueRequired
oidc.client.redirectHostHostname to use for redirect URIs back to Wallet server after authorizationhttps://walletserver.comYes
oidc.provider.issuerIssuer URL when acting as an OIDC providerhttps://walletserver.comYes
oidc.provider.jwksEndpointEndpoint that contains JWKS for private key authentication/jwksNo

Configuration for Web + Mobile IDENTOS Navigator configuration as a Wallet user interface

ParameterDescriptionSuggested ValueRequired
navigator.fallbackBaseUrlWeb Wallet Client URL to fallback to if other Navigator URLs don't workhttps://ui.walletserver.comYes
navigator.redirectIntervalFrequency at which the Wallet Server should cycle through the list of navigators when trying to redirect to one50no
navigator.useIntermediateCallbackUIShow intermediate page during redirect from Wallet server to Wallet user agentfalseno
navigator.redirects.baseUrlBase URL for a Navigatorcom.identos.custom.schema.url://fpx-wallet/Yes
navigator.redirects.idpPathPath at a a Navigator that the Wallet Server will redirect to after connecting to an Identity Providercom.identos.custom.schema.url://fpx-walletYes
navigator.redirects.consentPathPath for the Navigator to gather consent with end user during an authorization grant request/consentYes
navigator.redirects.dsPathPath for the Navigator to be redirected to at the end of connecting to an data source/consentYes
navigator.redirects.errorPathPath for the Navigator to be to redirected when something goes wrong/consentYes
app.device.verificationUrlRedirect path for mobile user agent for verificationcom.identos.wallet://fpx-wallet/consent_requestYes
app.device.userCodeExpiryExpiry in seconds for user code240000No
app.device.confirmationCodeExpiryExpiry in seconds for confirmation code240000No
app.device.accessTokenExpiryAccess token expiry in seconds240000No
app.sessionlength.platforms.iosMaximum session length on iOS600000No
app.sessionlength.platforms.androidMaximum session length on android600000No
app.sessionlength.platforms.webMaximum session length on web3600000No
app.sessionlength.defaultLifeTimeDefault session length3600000No
app.logoFilename of the image to be used as the application logo.logo.pngNo
app.nameName of the application displayed on the error page.Sample ApplicationNo
app.error-page-redirect-urlRedirect URL when redirecting from the default error page.
Note: The Wallet Server implements a custom error redirection scheme that can be configured using a property found in the Navigator Configuration section: navigator.redirects.errorPath.
Yes
app.error-page-titleName of the error page as displayed on the error page header.ErrorNo
cors.originsList of web origins to accept traffic from.https://ui.walletserver.com/idp-callbackYes
fpxwallet.walletserver.resources.login-page.cssPath to CSS file for default theme.https://walletserver.com/style.cssYes