limits.properties
The limits.properties file contains properties used throughout the entire application
Location: limits-starter\src\main\resources\properties.
Properties
Section: data loading
Property | Value | Description |
---|---|---|
default.csvSource.parser.threads | 16 |
|
input.data.root.dir.path | ./src/test/resources/data-samples |
Directory path to the data files |
incident.output.data.dir.path | ${input.data.root.dir.path}/data |
Directory path to the alerts data files |
csvSource.subdirectory.dataset | /data |
Directory containing the CSV files |
csvSource.subdirectory.dataset.whatif | /whatif |
Directory containing the What-If CSV files |
csvSource.subdirectory.dataset.stage | /stage |
Directory containing the Stage CSV files |
csvSource.polling.delay | 10000 |
Time (in milliseconds) a Real-Time listener waits between querying file structure for updates |
initial-load.business-dates | 2018-09-28 |
Cob date data folder to load at runtime |
default.multiple.regulation.separator | , |
Multiple regulation or file separator |
scope.force-unambiguous-level-paths | false |
Boolean flag to enable if we want to force Scopes to be Unambiguous on Multi-Level Hierarchies. Please see scope.force-unambiguous-level-paths for more. |
scope.autofill-unambiguous-level-paths | true |
Boolean flag to enable if we want to autofill Scopes to its Unambiguous Multi-Level values. Please see scope.autofill-unambiguous-level-paths for more. |
scope.isUsingExplicitMatching | true |
Flag to enable explicit scope matching. If true then a Limit will only be visible in the business cube at the exact location the Limit’s Scope is defined on and no lower. This does not affect the location evaluations and breaches are checked at. |
note
If the properties input.data.root.dir.path
or csvSource.subdirectory.dataset
are not set correctly, OR the data directories don’t exist in Atoti Limits, an empty
folder structure will be generated. An as_of_date.csv
file, containing the current day’s date, will be generated automatically, allowing you to access the UI.
Section: Atoti Limits connecting to other solution
The following properties can be set in the limits.properties file. The main way of setting these properties is connecting Atoti Limits to a server, such as FRTB, using the auto-configuration.
Before connecting to a server or configuring these properties, they will be null during the execution of Atoti Limits until a connection is made. In addition, if the maps already contain entries at startup, those values will be used by Atoti Limits. If the content server properties are set, they won’t be changed when connecting to a new server.
Property | Value | Description |
---|---|---|
ap.url.map | `{‘MRA’: ‘http://localhost:10010/risk-activepivot/activeviam/pivot/rest/v8/cube’, ‘FRTB’: ‘http://localhost:8080/frtb-starter/activeviam/pivot/rest/v8/cube’} | Map of the Solution name to http url |
ap.version.map | Map of the Solution name to its server version: { < server name >: < version >, … } Example: { 'FRTB': '6.0.0' } note Auto-configured, null by default. |
|
ap.configuration.kpi.path.map | {'FRTB': 'configuration/kpis'} |
Atoti Server configuration kpi path to get the kpi permissions which are used during startup to delete the stale kpis. The path might be different from AP release to release. Different servers might be run on the different AP versions. |
ap.auth.map | {'MRA': 'YWRtaW46YWRtaW4=', 'FRTB': 'YWRtaW46YWRtaW4='} |
Map of the Solution name to authentication token |
ap.asOfDate.dim.map | {'MRA': 'AsOfDate@Date@Dates', 'FRTB': 'AsOfDate@Date@Dates'} |
Map of the Solution name to AsOfDate cube location |
content.server.url | http://localhost:8080/frtb-starter/activeviam/content/rest/v7 |
URL of the content server to be used with Limits (and Limit’s UI). It is usually exposed at the server’s /content endpoint. |
content.server.name | < server name > e.g. FRTB | The name of the content server to which Limits is connecting. |
content.server.auth | YWRtaW46YWRtaW4= |
The Base64 Encoded Authentication to use to authenticate requests to the Content Server. The Authentication should be for admin access and the passcode should be in the format USER_NAME:PASSWORD . For example, we would generate the Authentication for a user “admin” with password “admin” as the string “admin:admin” which would get encoded to “YWRtaW46YW1kaW4=”. |
level-path.url | {'FRTB': 'http://localhost:8080/frtb-starter/services/rest/v1/levelPath/'} |
Map of the Solution name to Level Path REST endpoint URL |
Section: Content server
Property | Value | Description |
---|---|---|
contentServer.security.calculatedMemberRole | ROLE_USER |
User entitlement capable of creating calculated members in the content server |
contentServer.security.kpiRole | ROLE_USER |
User entitlement capable of creating KPIs in the content server |
contentServer.security.cache.entitlementsTTL | 3600 |
The time to live (in seconds) of the entitlement cache |
contentServer.remote.api.uri | http://localhost:9093/content |
URI of the content server used by the RemoteContentServiceConfig |
contentServer.prefix | limits |
Content server prefix |
contentServer.factory-reset | false |
DEVELOPMENT ONLY: Resets the content server’s contents to those provided in the Solution’s release |
contentServer.factory-reset.filename | limits-content-server.json |
Filename of the release version of the content server contents |
contentServer.factory-reset.folder-name | limits-content-server |
The folder containing the release version of the content server contents. |
contentServer.bookmarks.default-owners | ROLE_ADMIN |
The default owners for any bookmark |
contentServer.bookmarks.default-readers | ROLE_USER |
The default readers for any bookmark |
Section: Cloud properties
note
Values for Google properties are empty in properties file because they come from a specific JSON file you need to import.
Property | Value | Description |
---|---|---|
aws.bucket | limits |
Name of AWS S3 bucket |
aws.root_directory | data-samples |
Name of the data folder within the AWS S3 bucket |
aws.region | us-east-1 |
AWS region |
azure.container | limits |
Name of the Azure container |
azure.root_directory | data-samples |
Name of the root data folder within the Azure container |
google.container | Name of the Google container | |
google.root_directory | Name of the root data folder within the GCP container | |
cloud.fetch.thread | 12 |
Azure is up to 60 MiB/s per block blob and the same per share. Active Cloud API bypasses it with several connections. This is the parameter to control the number of connections from APS to Azure storage. |
Section: Data Extraction Engine (DEE)
Property | Value | Description |
---|---|---|
data.extraction.service.base.dir.path | ./src/test/resources/extractionOutput |
Path to the folder in which the files will be generated for the extractions |
data.extraction.service.http.base.url | http://localhost:3090 |
URL mount point to access the folder as a Web File Server for the extractions |
data.extraction.service.with.user.folders | false |
Include the user name in the folder path generated. Ex: /Output/User1/extraction.csv |
enhanced.drillthrough.base.dir.path | ./src/main/resources/extractionOutput |
Path to the folder in which the files will be generated for the extractions |
enhanced.drillthrough.http.base.url | http://localhost:3090 |
URL mount point to access the folder as a Web File Server for the extractions |
AlertTaskManager
Property | Value | Description |
---|---|---|
task-scheduler-thread-pool-size | 4 |
Thread pool size for task scheduler |
sample-rate-cron | 0 */5 * * * * |
Cron expression for Intraday Alert task’s cron job. Default is to run the evaluation every 5 minutes. An example cron expression tool: click here. Note that cron expressions are evaluated differently in Jav compared to Linux. See this explanation by Baeldung. We require the Spring cron syntax i.e. 6 space-separated fields. |
incident.evaluation.parallel.tasks | Half the number of available cores on the machine | Number of threads to use when evaluating limits on-demand. |
Section: Other
Property | Value | Description |
---|---|---|
spring.profiles.active | local,local-content |
List of available Spring profiles |
limits.datastore.url | http://localhost:3090/pivot/rest/v5/datastore |
The URL of the Limits server’s Datastore REST service |
limits.rest.url | http://localhost:3090/limits/rest/v2/ |
The url of the Limit’s REST services |
limits.auth | YWRtaW46YWRtaW4= |
Authentication token for Limits |
fx-rates.common-currency | USD |
The base currency when performing Foreign Exchange calculations |
default.parameter.set | ISDA |
Default parameter set |
discovery-manager.polling-delay | 30000 |
Milliseconds that the connected cube description is valid for before needing to be refreshed. If the cube is expected to change frequently then this should be decreased. |
canTheApproverBeTheSameAsTheCreator | false |
When enabled (true ), the creator of a limit can also approve it. Disabled by default. |
limit.evaluation.query.timeout | the value of IMdxContext.IQueriesResultLimit on the connected Atoti server |
The MDX query timeout in seconds when triggering the Limit evaluation endpoint |