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
@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
@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 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