Application Settings¶
Global application behaviour is controlled via two config files in applicationconfig/. Both live under config/ in the repository — deploy changes via the Send Partner Portal (Client Build & Deploy for Dev; Create/Deploy Client Microservice Version for SIT/UAT). Workbench picks changes up on its next periodic configuration refresh.
Backend settings (be_config.json)¶
Verified top-level keys in the base repository:
| Setting | Description |
|---|---|
homePartyId |
Must match partyId in trading-parties/{client}-insurer.json. Mandatory. |
baseCountry |
ISO 3166-1 alpha-3 country code for the client's home country (e.g. GBR). |
currencyConfig |
Nested block controlling the currency provider and refresh frequencies. |
featureSwitches |
A JSON-encoded string containing feature switches (e.g. "{\"DUA\": true,\"PAS\" : true}"). Edit the embedded JSON — do not convert the field to a nested object. |
Other top-level blocks used for application-wide settings include documentConfig, documentGenerationConfig, masterRiskConfig, policyConfig, pricingAdminConfig, clashCheckConfig, additionalEntityConf, uwRationaleConfig, and productCoversProcessConfiguration. Inspect the base repository file directly to see the current shape — these are typically set up by Send during initial implementation.
Frontend settings (ui_config.json)¶
ui_config.json controls the Workbench frontend. It has two primary sections relevant to application-wide configuration: features and applicationSettings.
Feature flags (ui_config.json → features)¶
The features block enables or disables platform capabilities per client. The values below are derived from the UiConfigFeatures interface and Feature enum in the platform source — only use these exact key names.
Required flags — these must be present in every implementation:
| Flag | Type | Description |
|---|---|---|
customRiskTabs |
boolean | Enables custom tab support on the risk record |
exemptions |
boolean | Enables the DUA exemptions tab on contract risks |
mta |
boolean | Enables mid-term adjustment (MTA) functionality |
multiLanguage |
boolean | Enables multi-language UI support |
riskPeek |
boolean | Enables the risk peek panel (hover preview) |
submission |
boolean | Enables risk submission forms (new risk creation) |
submissionV2 |
boolean | Enables the v2 submission form engine |
Optional flags:
| Flag | Type | Description |
|---|---|---|
bureauMessages |
boolean | Enables Lloyd's bureau message integration |
clauseLibrary |
boolean | Enables the clause library admin tab for DOC_ADMIN users |
financialAccounting |
boolean | Enables the financial accounting module |
pas |
boolean | Enables PAS (Policy Administration System) integration UI |
raterIde |
boolean | Enables the rating IDE for rule authoring |
riskDataFix |
boolean | Enables the risk data fix admin tool |
rulesAdmin |
boolean | Enables the rules admin interface |
smartSubmission |
boolean | Enables the Smart Submissions (email inbox) module |
smartSubmissionTestHarness |
boolean | Enables the Smart Submissions test harness (non-production only) |
taskManagement |
boolean | Enables the task management module |
userManagement |
boolean | Enables the user management admin interface |
uwRationale |
boolean | Enables underwriting rationale capture |
blockByRole — per-feature role restriction:
Any feature can be restricted to specific roles using blockByRole. This lets you enable a feature globally but make it accessible only to certain roles:
"features": {
"clauseLibrary": true,
"blockByRole": {
"clauseLibrary": ["DOC_ADMIN"],
"rulesAdmin": ["RULE_PARAMETER_ADMIN", "RULE_PARAMETER_START_DATE_ADMIN"]
}
}
The keys inside blockByRole must match the feature flag names in the table above. The value is an array of role name strings from the User Roles reference. Only users with one of the listed roles can access the feature — all others see it as disabled regardless of the feature flag value.
Note
ui_config.json and be_config.json each carry their own independent set of feature flags. Both files sit in applicationconfig/ — S3 business config — and neither is part of the DynamoDB environment profile (dynamodb/{env}/data.json).
Application settings (ui_config.json → applicationSettings)¶
The applicationSettings block controls global UI behaviour. All fields below are from the UiConfigApplicationSettings interface in the platform source.
Auto-logout¶
"autoLogout": {
"enabled": true,
"inactivityTime": 30,
"countdownTime": 5,
"activityEventList": ["mousemove", "keydown", "click", "scroll"]
}
| Field | Description |
|---|---|
enabled |
Enable or disable auto-logout |
inactivityTime |
Minutes of inactivity before the countdown begins |
countdownTime |
Minutes in the countdown before the user is logged out |
activityEventList |
DOM events that reset the inactivity timer |
Configure conservatively for production — risks may be open for extended review periods. A common production setting is inactivityTime: 60, countdownTime: 5.
Date and time format¶
| Field | Description |
|---|---|
dateFormat |
Short date format used globally (e.g. "DD/MM/YYYY") |
longDateFormat |
Long date format (e.g. "DD MMMM YYYY") |
mediumDateFormat |
Medium date format |
dateLocale |
Locale string for date parsing and display (e.g. "en-GB") |
hourFormat |
"12-hour" or "24-hour" — controls time display across the UI |
Currency and decimal places¶
| Field | Description |
|---|---|
currency |
Default currency code (e.g. "GBP") |
reportingCurrency |
Currency used for reporting and aggregation displays |
defaultDecimalPlaces.currency |
Decimal places for currency values |
defaultDecimalPlaces.numeric |
Decimal places for plain numeric values |
defaultDecimalPlaces.percentage |
Decimal places for percentage values |
defaultDecimalPlaces.shortDecimal |
Decimal places for short decimal display |
defaultDecimalPlaces.longDecimal |
Decimal places for long decimal display |
Example:
"defaultDecimalPlaces": {
"currency": 2,
"numeric": 0,
"percentage": 2,
"shortDecimal": 2,
"longDecimal": 4
}
Address settings¶
| Field | Description |
|---|---|
address.requiredAddressFields |
Array of address field keys that are mandatory (e.g. ["numberAndStreet", "cityName", "postalCode"]) |
address.stateFormat |
Format for the state/county field |
address.useStateDropdown |
If true, state is a dropdown rather than a free text field |
address.alwaysMatchDomicile |
If true, the address country is always locked to the project domicile |
address.useDefaultDomicileForProject |
If true, uses the default domicile value for new project addresses |
address.additionalFieldsDisplayConfig.county |
If true, shows the county field in address forms |
Party search¶
| Field | Description |
|---|---|
parties.partySearchMinInputThreshold |
Minimum characters before party lookup triggers (default: 3). Lower values increase API load. |
parties.partySearchDelayThresholdMs |
Milliseconds to wait after last keystroke before triggering search |
brokerResultsLimit |
Maximum number of broker search results to display |
Other settings¶
| Field | Description |
|---|---|
domicile |
Default country/domicile for the client (e.g. "GBR") |
defaultTextAreaRowLength |
Default number of rows in text-area elements |
compareInUtcForCancellations |
If true, date comparisons for cancellations use UTC |
disableSubmissionProfiles |
If true, disables the submission profile selection step |
duaDashboardUrlPart |
URL segment used to construct DUA dashboard links |
useClientApi.brokerSearch |
If true, broker search uses the client microservice rather than the platform default |
useClientApi.editRisk |
If true, edit-risk calls use the client microservice |
useV2Api.getRisk |
If true, risk detail fetches use the v2 API endpoint |