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
@ConditionalNotOnQueryNode Reverse of @ConditionalOnQueryNode spring.profiles.active HASN’T dist-query-node
@ConditionalOnAdjustmentsWithDirectQuery Adjustments activated as read-only for DirectQuery. directquery.withAdjustments AND directquery.enabled AND configuration.sign-off.enabled
@ConditionalOnClickHouse DirectQuery uses ClickHouse. directquery.database.type=clickhouse AND directquery.enabled
@ConditionalOnDirectQueryDatabase DirectQuery is activated. directquery.enabled
@ConditionalOnInMemoryDatabase InMemory mode is activated, DirectQuery is disabled. NOT directquery.enabled
@ConditionalOnMSSQL DirectQuery uses MSSQL (not implemented). directquery.database.type=mssql AND directquery.enabled
@ConditionalOnNoAdjustmentsWithDirectQuery Sign-Off is activated but DirectQuery has no information about adjustments. NOT directquery.withAdjustments AND directquery.enabled 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 directquery.enabled
@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 directquery.enabled
@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 on Azure. mr.data-load.source=azure-data-loading AND NOT directquery.enabled
@ConditionalOnCommonCubeEnabled The common query Cube is activated. mr.enable.cubes.common
@ConditionalOnDataNode The server node contains only data Cubes. spring.profiles.active HAS dist-data-node
@ConditionalOnHasDataCube The server contains data Cubes. spring.profiles.active HAS dist-data-node OR spring.profiles.active HASN’T dist-query-node
@ConditionalOnHasQueryCube The server contains The query Cube. spring.profiles.active HASN’T dist-data-node OR spring.profiles.active HAS dist-query-node
@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
@ConditionalOnLocalBus The server uses the internal bus to communicate between data Cubes and query Cube. spring.profiles.active HASN’T dist-data-node AND spring.profiles.active HASN’T dist-query-node AND spring.profiles.active HASN’T forceNetty
@ConditionalOnLocalContentService The content server is hosted locally spring.profiles.active HAS local-content
@ConditionalOnLocalData The data is stored on the local file system. mr.data-load.source=local-file-system
@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 directquery.enabled
@ConditionalOnNettyBus The server uses the Netty bus to communicate between data Cubes and query Cube. spring.profiles.active HAS dist-data-node OR spring.profiles.active HAS dist-query-node OR spring.profiles.active HAS forceNetty
@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. spring.profiles.active HAS dist-query-node
@ConditionalOnRemoteContentService The content service instance is remote. spring.profiles.active HAS remote-content
@ConditionalOnScalarSensitivity The sensitivities are stored in a scalar way. scalar-sensitivities.data-model.scalar-sensitivities
@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
@ConditionalOnVectorizedSensitivity The sensitivities are stored in a vectorized way . NOT scalar-sensitivities.data-model.scalar-sensitivities

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 in mr.properties. 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 for true

  • 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