Project configuration
Configuration Properties and property files
For details, see Properties
Location: mr-application/src/main/resources
File | Purpose |
---|---|
apm.properties | Configures Atoti Server Application Monitoring (APM). |
application.yaml | Sets port and context for the application. |
azureCredentials.properties | Defines the necessary credential information for connecting to an Azure Blob container. |
dee.export.properties | Configures the DEE service tool that is intended to perform data extractions. |
jwt.properties | Configure the authentication based on JWT. |
logback-spring.xml | Defines the logging configuration for testing the MR application. |
logback-spring-file.xml | Defines the logback configuration for the MR application in production. |
mr-jaxb-mapping.xml | Defines the configuration of the Java Architecture for XML Binding (JAXB) for context values defined in the MR application. |
reporting.properties | |
serializer-jaxb-cfg.xml | Configures all the JAXB mapping resources needed by the application. |
tracing.properties | Includes additional tracing configuration for Atoti Server. |
Spring annotations
Annotation | Meaning | Value |
---|---|---|
@ConditionalOnAdjustmentsWithDirectQuery | Adjustments activated as read-only for DirectQuery. | directquery.withAdjustments AND starter.deployment.type=direct-query AND configuration.sign-off.enabled |
@ConditionalOnClickHouse | DirectQuery uses ClickHouse. | directquery.database.type=clickhouse AND starter.deployment.type=direct-query |
@ConditionalOnDirectQueryDatabase | DirectQuery is activated. | starter.deployment.type=direct-query |
@ConditionalOnInMemoryDatabase | InMemory mode is activated, DirectQuery is disabled. | starter.deployment.type=in-memory |
@ConditionalOnMSSQL | DirectQuery uses MSSQL (not implemented). | directquery.database.type=mssql AND starter.deployment.type=direct-query |
@ConditionalOnNoAdjustmentsWithDirectQuery | Sign-Off is activated but DirectQuery has no information about adjustments. | NOT directquery.withAdjustments AND starter.deployment.type=direct-query AND configuration.sign-off.enabled |
@ConditionalOnSignOffDisabled | Sign-Off is not used. | NOT configuration.sign-off.enabled |
@ConditionalOnSignOffEnabled | Sign-Off is fully enabled on an InMemory setup. | configuration.sign-off.enabled AND NOT starter.deployment.type=direct-query |
@ConditionalOnSignOffHierarchy | The Sign-Off hierarchy is displayed for InMemory or DirectQuery Cubes. | configuration.sign-off.enabled |
@ConditionalOnSnowflake | DirectQuery uses SnowFlake. | directquery.database.type=snowflake AND starter.deployment.type=direct-query |
@ConditionalOnAggregatedDataDisabled | The summary data are not aggregated. | NOT mr.enable.data-model.aggregated |
@ConditionalOnAggregatedDataEnabled | The summary data are aggregated. | mr.enable.data-model.aggregated |
@ConditionalOnAnyCubeEnabled | Any non-summary Cubes are activated | mr.enable.cubes.var OR mr.enable.cubes.pln OR mr.enable.cubes.sensi OR mr.enable.cubes.market |
@ConditionalOnAnyPnLCubeEnabled | PnL Cube or PnL Summary Cube is activated. | mr.enable.cubes.pln OR mr.enable.cubes.pnl-summary |
@ConditionalOnAnySensitivityCubeEnabled | Sensitivity Cube or Sensitivity Summary Cube is activated. | mr.enable.cubes.sensi OR mr.enable.cubes.sensi-summary |
@ConditionalOnAnyVaRCubeEnabled | VaR Cube or VaR Summary Cube is activated. | mr.enable.cubes.var OR mr.enable.cubes.var-summary |
@ConditionalOnAzureData | The data is stored and loaded from Azure. | mr.data-load.source=azure-data-loading AND NOT starter.deployment.type=direct-query |
@ConditionalOnAzureSource | The in-memory data is stored on Azure. | mr.data-load.source=azure-data-loading |
@ConfigurationDirectQueryWithAzureSource | The in-memory data is stored on Azure and DirectQuery is activated. | mr.data-load.source=azure-data-loading AND directquery.enabled |
@ConditionalOnCommonCubeEnabled | The common query Cube is activated. | mr.enable.cubes.common |
@ConditionalOnHasDataCube | The server contains data Cubes. | starter.deployment.type != query-node |
@ConditionalOnHasQueryCube | The server contains a query Cube. | mr.enable.cubes.common or any other query cube |
@ConditionalOnHasSource | The data needs to be fetched from a source (Azure, Local, etc.) | (mr.data-load.source=azure-data-loading OR mr.data-load.source=local-file-system) AND NOT directquery.enabled |
@ConditionalOnHasSourceAndDirectQuery | A in-memory data source is defined and DirectQuery is enabled. | mr.data-load.source=azure-data-loading OR mr.data-load.source=local-file-system |
@ConditionalOnLocalBus | The server uses the internal bus to communicate between data Cubes and query Cube. | starter.deployment.transport == local |
@ConditionalOnLocalContentService | The content server is hosted locally | spring.profiles.active HAS local-content |
@ConditionalOnLocalData | The data is stored and loaded from the local file system. | mr.data-load.source=local-file-system AND NOT directquery.enabled |
@ConditionalOnLocalSource | The in-memory data is stored on the local filesystem. | mr.data-load.source=local-file-system |
@ConditionalOnDirectQueryWithLocalSource | The in-memory data is stored on the local filesystem and DirectQuery is activated. | mr.data-load.source=local-file-system AND directquery.enabled |
@ConditionalOnMarketDataCubeEnabled | The Market Data Cube is activated. | mr.enable.cubes.market |
@ConditionalOnMissingSource | There is no source set or no DirectQuery (it’s an error case). | NOT mr.data-load.source=azure-data-loading AND NOT mr.data-load.source=local-file-system AND NOT starter.deployment.type=direct-query |
@ConditionalOnNettyBus | The server uses the Netty bus to communicate between data Cubes and query Cube. | starter.deployment.transport == netty |
@ConditionalOnPnLCubeEnabled | The PnL Cube is activated. | mr.enable.cubes.pln |
@ConditionalOnPnLSummaryCubeDisabled | The PnL Summary Cube is disabled. | NOT mr.enable.cubes.pnl-summary |
@ConditionalOnPnLSummaryCubeEnabled | The PnL Summary Cube is activated. | mr.enable.cubes.pnl-summary |
@ConditionalOnQueryNode | The server node contains only the query Cube. | starter.deployment.type == query-node |
@ConditionalOnRemoteContentService | The content service instance is remote. | spring.profiles.active HAS remote-content |
@ConditionalOnSensitivityCubeEnabled | The Sensitivity Cube is activated. | mr.enable.cubes.sensi |
@ConditionalOnSensitivitySummaryCubeDisabled | The Sensitivity Summary Cube is disabled. | NOT mr.enable.cubes.sensi-summary |
@ConditionalOnSensitivitySummaryCubeEnabled | The Sensitivity Summary Cube is activated. | mr.enable.cubes.sensi-summary |
@ConditionalOnVaRCubeEnabled | The VaR/ES Cube is activated. | mr.enable.cubes.var |
@ConditionalOnVaRSummaryCubeDisabled | The VaR/ES Summary Cube is disabled. | NOT mr.enable.cubes.var-summary |
@ConditionalOnVaRSummaryCubeEnabled | The VaR/ES Summary Cube is activated. | mr.enable.cubes.var-summary |
@ConditionalNotOnDirectQueryDatabase | If DirectQuery is not enabled | starter.deployment.type != direct-query |
Data Files
You will need to specify where your CSV files are placed. In the default implementation, the CSV files are required to provide Atoti Server with the necessary data and configuration to do the calculations in Atoti Market Risk.
All the files need to be kept under one directory of your choice
anywhere on the file system. The path to this directory needs to be
specified with the mr.data-load.csv.dataset
property. The below property needs to be updated to
specify an accessible directory containing the necessary files.
Sample files can be found in the mr-application/src/main/resources/data folder.
note
Files in this folder are excluded from the mr-application JAR.
mr.data-load.csv.dataset=data
To get started with deployment (e.g. if you are not running the
application directly from the IDE) you can easily copy/paste the whole
sample data folder (from source zip) into somewhere accessible by your
deployed runtime, and change the configuration in application.yaml
accordingly to point to that data.
Bookmarks
If you want to replace the bookmarks you have persisted in your content server, there are several options for overriding the content of the content server with the core Atoti Market Risk bookmarks at startup.
The behavior of the bookmark reset is driven by the
contentServer.factory-reset group of properties in the application.yaml
file.
The mr.application.content-server.reset
property determines whether the
reset is performed, and from which persistence type. Available options
are:
-
true
: Imports data from a single JSON file -
file
: Same as fortrue
-
folder
: Imports the bookmarks from a folder-based hierarchical representation of the Atoti UI bookmark tree. -
false
: Does not reset the bookmarks. The bookmarks are loaded directly from the content server without any modification.
The location from which Atoti Market Risk will attempt to load the various options is determined by the factory reset filename (mr.application.content-server.factory-reset.filename) and folder name (mr.application.content-server.factory-reset.folder-name) properties. The default values point to sample files on the classpath.
Due to the inability to load classpath files or folders from a JAR file, running the application via the SpringBoot JAR will require overriding the property via the CLI argument:
mr.application.content-server.factory-reset.folder-name="file:full\example\path\mr-content-server"
The bookmark samples for Atoti Market Risk can be found within the UI release files, containing bookmarks for the VaR-ES, Sensitivities, PnL, and MRCombined Cubes.
Atoti UI
You will need to specify in the Atoti UI configuration file where the Atoti Server project is running. Please 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 an mr_env.js file which will need to be updated with the correct server URL:
# The URL to use to connect to Atoti Server
activePivotServerUrl: 'http://localhost:10010/mr-application',
DoctorPivot Configuration (optional)
No changes required