Configuring the Limits Module

This section explains how to configure properties files, data files, and ActiveViam components.

Project configuration

Properties files

Location: limits-starter/src/main/resources

File Purpose
application.yml Properties defining the content server settings, the Application database, the Audit Log database and the Activiti database, and the parameters for the starter web apps
hibernate.properties Hibernate (persistence and query service) properties
logback-spring.xml Properties for configuring the logging
serializer.jaxb.cfg.xml JAXB mapping used for the XML configuration of ActivePivot schemas and cubes
limit.properties General location high level, all purpose properties. These include REST URLs, data directory paths, cloud configurations, and server authentication tokens

ActiveUI

Location: In the delivered source file code for the UI, limits-UI/src

File Purpose
LimitsSettings.ts Properties to define UI limits and workflow parameters. You can use the default object exported from the limits-sdk, or you can create your own. You can also export the LimitsSettings Typescript type from the limits-sdk to help you build this object.
env.js General properties to connect to the Limits server and the Accelerator server.

You will need to specify in the ActiveUI configuration file where the ActivePivot project is running.

Note, the end-user’s browser will be connecting to the URL you specify here, so you should specify the exact host name as opposed to localhost.

The standalone application contains a limits_env.js file which will need to be updated with the correct server URL:

# The URL to use to connect to ActivePivot
activePivotServerUrl: 'http://localhost:3090',

Configuring the LimitsSettings.ts file

The Limits Settings file contains both necessary and optional settings which will be used to customize and configure your Limits UI. At the moment, the Limits module has only one custom widget. Therefore, to use it properly, you will need to customize the unique settings specific to the Limits Inventory Widget. These can be found in the table below, and should be set within the “limits_inventory-widget.server.params” as shown below.

"accelerator_story-telling-action.whitelist": ["LIMITS", "FRTB"], // This is how you turn on storytelling.

  "limits_inventory-widget.server.params": { //These are where you place your settings to configure the Limits Inventory Widget.
    settingName: settingValue // All possible settings can be found in the table below!
    ...
  },
Setting Type Required Description Example
limitsServerName string true The name of the Limits server set in your env.js file. “Limits”
limitCurrencies string [ ] true The list of currencies which will populate the currencies dropdown in the Limits Inventory Widget drawer. [“EUR”, “USD”, “GBP”, “CHF”, “JPY”, “SEK”, “NOK”, “CAD”]
auditTrailNodeColors
{
green: string[],
blue: string[],
red: string[]
}
false The object which maps the list of statuses to their respective colors in the Audit screen.
{
green: [“INITIATED”],
blue: [“APPROVED”],
red: [“REJECTED”]
}
exceptionAuditTrailNodeColors
{
yellow: string[],
red: string[]
}
false The object that maps the list of statuses to their respective colors in the Exception Audit screen.
{
green: [“INITIATED”],
blue: [“APPROVED”],
red: [“REJECTED”]
}
pollingFrequencyValues string [ ] true The list of polling frequencies which will populate the Polling frequency dropdown in the Limits Inventory Widget Drawer. [“EOD”,“Intraday”,“1 Day”,“1 Week”,“1 Month”,“1 Year”]
limitsWorkflowMap
{
workflow1: {
name: string,
participants: string[ ]
}
}
true The mapping of workflows and their participants. This setting is used to configure the Workflows section of the Limits Inventory drawer
limitsWorkflowMap:{
FourEyes: {
name: “FourEyes”,
participants: [“Examiners”],
},
SixEyes: {
name: “SixEyes”,
participants: [“Examiners”, “Approvers”],
},
StraightThrough: {
name: “StraightThrough”,
participants: [],
},
},
workflowTypesArray string[] true The array used to determine the possible workflows. [“warningWorkflow”,“breachWorkflow”,“limitChangesWorkflow”]
limitTypes string[] true The array used to render radio buttons allowing the user to select the type for their limit. These buttons can be found in the Limit drawer of the Limits Inventory Widget. [“OFFICIAL”, “TEMPORARY”]
scopeDetailsFieldNames
{
accelerator:string,
cube: string,
measures: string
}
true Do not modify this setting. This setting will be removed in the next release.
{
accelerator: “accelerator”,
cube: “cube”,
measures: “measures”
}
kpiRuleTypes
{
greaterThan: string,
lessThan: string
}
true List which populates the KPI Rules in the Limits drawer
{
greaterThan: “Greater than”,
lessThan: “Less than”
}
editRulesRadioValues string[] true List of values which will generate radio buttons for the Rules popover when adding a new KPI rule in the Limits drawer [“value”, “absolute value”]
roles string[] true The list of roles which will populate the dropdowns for selecting participants per workflow. [“ROLE_USERS”, “ROLE_MANAGERS”]
limitsRESTEndpoint string true The endpoint which points to the Limits rest service. “/limits/rest/v1/limitDefinition”
exceptionTypes string[] true A list of reasons why an exception occurred for a given limit. [“Technical data issue”, “Real breach”]
limitsTableMdx string true The mdx used for the initial query for the Limits Inventory Widget table Click to open the example query
limits_plugin-table-view-utilizations.settings
{
hierarchyNames: {[key:string]: string},
targetDashboardsMap: {[key:string]: string}
}
true Configure which dashboards will be opened when viewing the utilization of limits from a pivot table. Match the Limit Name to a dashboard ID.
“limits_plugin-table-view-utilizations.settings”: {
hierarchyNames: {
limitName: “Name”,
},
targetDashboardsMap: {
“JtD Limits”: “b09”,
“Management VaR Limits (ES 99)": “b00”,
},
},

Configuring multiple servers for limits in env.js

Element Customization Property
apServers For each server listed, set the value to true if the server is performing the limits workflow

For example,
apServers: [ { name:'MRA', url: 'http://localhost:3090', csServerName: 'MRA', isLimits: true
limitsAllowed
(none) Specify the application server names that will use limits.

For example,
expectedLimitsServerNames: ['MRA', "FRTB"],
expectedLimitsServerNames