Release notes and changelog

info

For user-facing changes, refer to the What’s New page.
For information on upgrading from previous versions, see the Atoti Market Risk Migration Notes.

5.4.2

2024-11-26

Download the distribution files here

The distribution files comprise the following zipped artifacts:

  • UI source code.
  • UI build that does not require an installation and can be directly deployed.
  • Source files that can be used to build the module.
  • Maven repository required to build the project and run the tests.

    note

    The Atoti Server 6.0.18-sb3 Maven repository files have been removed from this zip, so you’ll need to download them separately. Click here to locate them.

  • Offline documentation that can be served by the module.

Summary

  • Dependency upgrades: This release includes updates to Atoti Server (6.0.18-sb3) and DaSH (3.3.1-AS6.0). These updates contain a number of bug fixes and improvements. Please see the release notes for these products for further information.
  • DirectQuery table validation timeout: The timeout for DirectQuery table validation queries can now be configured with a property.
  • Cash market data measures: Market data measures for Cash now correctly return the FX rate instead of using the FX post-processor with dynamic aggregation.
  • Missing FX rates: Attempting to retrieve FX rates for missing currencies no longer causes an error or causes queries to fail.
  • Fixed distribution query node startup: The query node startup no longer crashes due to market data tables not being part of the database.

Known issues

None.

Dependency versions

Component Version
Adjustments Services API 4.0.1
Atoti Server 6.0.18-sb3
Atoti UI 5.1.x
Common Library 2.0.6-AS6.0
Data Connectors 4.1.2-AP6.0-sb3
Datastore Helper 3.3.1-AS6.0
Java JDK17
Sign-Off API 4.0.1
Solutions Tools BOM 2.2-AS6.0
UI Components 5.0.40
What-If 3.0.1-AS6.0

Added

Issue Key Details
MR-1978 Update to Atoti Server 6.0.18, Common Library 2.0.6-AS6.0 and DaSH 3.3.1-AS6.0.

Changed

Issue Key Details
MR-1967 Attempted FX conversions no longer throw exceptions in cases of missing rates.

Fixed

Issue Key Details
MR-1980 Market data measures for Cash used the dynamic aggregation FX post-processor instead of simply returning the FX rate.
MR-1991 The query node startup no longer crashes due to market data tables not being part of the database.

5.4.1

2024-10-24

Download the distribution files here

The distribution files comprise the following zipped artifacts:

  • UI source code.
  • UI build that does not require an installation and can be directly deployed.
  • Source files that can be used to build the module.
  • Maven repository required to build the project and run the tests.

    note

    The Atoti Server 6.0.17-sb3 Maven repository files have been removed from this zip, so you’ll need to download them separately. Click here to locate them.

  • Offline documentation that can be served by the module.

Summary

  • Upgrade to Atoti 6.0.17-sb3: This picks up the latest bug fixes and optimizations from Atoti.
  • Fix security vulnerabilities: The Spring Boot dependencies have been upgraded to version 3.2.10 and Data Connectors has been upgraded to version 4.1.2-AP6.0-sb3 to fix security vulnerabilities.
  • Fix Swagger UI: Swagger UI is now accessible and documents the REST endpoints in Atoti Market Risk.
  • Fix Logback file configuration: The mr-application/src/main/resources/logback-spring-file.xml configuration has been fixed and writes logs to a local file.
  • Configurable parent child depth: You can now configure the maximum depth of parent-child hierarchies.
  • Market Data chain changes: Market data chain has been changed: it is now required to add the sensitivity name and risk class levels in the views to display market data.
  • Updated dashboards: A number of dashboards have been updated due to market data measure and context value changes. For details, see Updated dashboards.
  • Compatibility with Atoti Sign-off 5.3: This version of Atoti Market Risk is compatible with Atoti Sign-off 5.3.
  • Adjustment fixes: Cube level adjustments for the Sensitivity and VaR modules can now be executed and the adjusted values can be found in the UI by using the corresponding <measure>_adjusted measures. Deleting adjustments no longer fails when cubes are disabled.
  • FX rate on a currency against itself: The contextual FX rate retriever returns 1.0 when the counter currency is the same as the base currency.
  • Interpolation bug fix: The interpolation mode is now included in the cache key.

Known issues

None.

Dependency versions

Component Version
Adjustments Services API 4.0.1
Atoti Server 6.0.17-sb3
Atoti UI 5.1.x
Common Library 2.0.5-AS6.0
Data Connectors 4.1.2-AP6.0-sb3
Datastore Helper 3.3.0-AS6.0
Java JDK17
Sign-Off API 4.0.1
Solutions Tools BOM 2.2-AS6.0
UI Components 5.0.40
What-If 3.0.1-AS6.0

Added

Issue Key Details
MR-1944 The maximum depth of parent-child hierarchies is now configurable.

Changed

Issue Key Details
MR-1834 SensiMeasureParameters constructor has been refactored to remove the boolean isVector field.
MR-1848 The new Market Data API is now an external module called Atoti Market Data.
MR-1952 Changed the behavior of Delta Current MD to reduce the number of retrieval and directly access the MD API.
MRA-1960 Upgrade to Spring Boot 3.2.10 and common dependencies 2.1.0.
MRA-1962 Upgrade to Data Connectors 4.1.2-AP6.0-sb3.

Fixed

Issue Key Details
BAS-1890 The sign-off status, as shown in the Sign-off hierarchy now moves to EXPORT_SUCCEEDED rather than retaining an APPROVING status even after the export has occurred.

note

This fix requires Atoti Sign-off 5.3.

BAS-1923 The mr-application/src/main/resources/logback-spring-file.xml configuration has been fixed and writes logs to a local file.
BAS-1954 Swagger UI is now accessible at .../swagger-ui/index.html and documents the REST endpoints in Atoti Market Risk.
BAS-1980 Deleting adjustments no longer fails when cubes are disabled. Additionally, adjustment deletion requests without an execution ID are moved to a DELETED state.
MR-1845 Cube level adjustments for the Sensitivity and VaR modules can now be executed and the adjusted values can be found in the UI by using the corresponding <measure>_adjusted measures.
MR-1963 Add the interpolation mode to the retrieval cache key.
MR-1964 Return 1.0 when an FX rate is requested for a currency against itself.
PIVOT-9310 There was a bug with vector aggregation when using Databricks with Atoti DirectQuery version 6.0.14 or earlier. Upgrading Atoti Market Risk to Atoti 6.0.17 resolved this issue.

5.4.0

2024-06-03

Download the distribution files here

The distribution files comprise the following zipped artifacts:

  • UI source code.
  • UI build that does not require an installation and can be directly deployed.
  • Source files that can be used to build the module.
  • Maven repository required to build the project and run the tests.

    note

    The Atoti Server 6.0.14-sb3 Maven repository files have been removed from this zip, so you’ll need to download them separately. Click here to locate them.

  • Offline documentation that can be served by the module.

Summary

Market Data API

  • Market Data API: The new Market Data API has been significantly updated with new features. It has also been moved to dedicated modules, the market-data-api library module and the market-data-api-spring-boot-starter module for easy auto-configuration. The scalar market data measure chains been migrated to this API, and it should be used for any custom measures. The vectorized chains will not use this API until they are removed.
  • CorporateAction store removed for scalar sensitivities, and deprecated for vectorized sensitivities: It is still used to handle dividends for vectorized sensitivities, but is not used anymore for scalar sensitivities.
  • Stock splits handled in a new store: The SplitRatioMarketData store is used for the handling of stock split rations both for vectorized and scalar sensitivities.
  • New input files for Dividends and stock Split Ratios: Those files replace the previous CorporateAction.csv file that is now deprecated.
  • New Market Data input files: spot, curve, surface, cube, and correlation market data files have been created to replace the previous market data input file MarketData.csv that is now deprecated and is used only for vectorized sensitivities.
  • Real time: Market Data API and FX post-processors handle low-frequency real time and the real-time handler could be changed.
  • FXRates store removed: Please use the new Market Data API store [FxRateMarketData(/datastore/marketdata.html) instead.
  • The FX rate service uses the Market Data API: The FXRateWrapper, implementation of IFxRates, uses the Market Data API to get the FX rates, see Exchange Rate and Market Data API.
  • Market Data Cube removed: Market data measures in the Sensitivities Cube need to be used to display market data instead of the Market Data Cube.
  • Modules mr-market-data-lib and mr-market-data-config removed: Those modules were used for the configuration of the Market Data Cube.
  • Migration of market data measure chains to new Market Data API: For scalar sensitivities, the market data measures are now defined using the new market data API.
  • Migration of FX conversion to the new market data API.: The FX post-processor is now implemented with new market data API.
  • Removed Debug measures: The debug market data measures and subsequent classes have been removed from the product.
  • New interpolation option added to the Market Data API: The Market Data API now supports applying a volatility-to-variance transformation for surface input data and a variance-to-volatility transformation to the interpolation result, using the InterpolationMode.VOL_TO_VARIANCE interpolation mode.

Upgrades

  • Atoti Server: Upgraded to Atoti Server 6.0.14-sb3.
  • Spring Boot 3: Upgraded to Spring Boot 3.2.0, which uses Spring Framework 6.
  • Hibernate: The application has been upgraded to Hibernate 6.3.1.Final.
  • H2: The application has been upgraded to H2 2.2.224.
  • Admin UI: The Admin UI has been upgraded to version 5.1.8.

Deprecation of vectorized sensitivities

  • Vectorized sensitivities have been deprecated: Scalar sensitivities should be used instead of vectorized sensitivities.
  • Default data model for sensitivities changed from vector model to scalar model.
  • Scalar sensitivities default: The default data model for sensitivities changed from vector model to scalar model.
  • Vector sensitivities deprecated: The vector sensitivities data model is deprecated and planned for removal.

DirectQuery

  • Databricks: Added support for DirectQuery with Databricks.
  • PnL explain with DirectQuery: PnL Explain is now working when both DirectQuery and In-Memory sensitivity cubes are used.

General configuration

  • Security configuration: Some classes related to security configuration have been moved from the mr-common-config project to the mr-application project.
  • Spring Profiles: Profile-based configuration has been replaced with properties (backwards compatible).
  • Fluent post-processors: Post-processor metrics are now set up in a Fluent style. The levels and hierarchies use strong types. For more details, see Fluent post-processor setup.
  • Specific alias classes for lambda generics: Lambda generics have been replaced with specific alias classes (e.g. MeasurePublisher for Consumer intended for publishing measures).
  • Topic Aliases: The topic aliases used by the Data Load Controller (DLC) are now defined for each topic rather than in a single place during DLC initialization.
  • Combined cube metrics: The metrics of the combined cube are now defined in the class MRCombinedCubeMeasuresConfig, their definition in pure Copper is also provided but should ne be used.

Catalog and Datastore fields changes

  • Catalog name The catalog has been changed from MarketRiskAccelerator to MR.
  • New moneyness default value: The default value of the moneyness field in the sensitivities and market data has been changed from ATM to N/A.
  • Type change for date fields: The MaturityDate & TradeDate fields of the TradeAttributes store, and the MaturityDates and TenorDates fields of the TradeSensitivities store are now typed as Date instead of String. Code that requires these to be Strings will need updating.

VaR-ES Cube Adjustments

  • VaR-ES Cube Adjustments: Added scenario-indexed adjustments for the PnL vectors.

Other

  • New abstract tuple publisher: Introduced new abstract tuple publisher (ATableFormatTuplePublisher) for publishers where the file format does not match the table data model.
  • Maturity Converter: Returns NaN or null instead of throwing an error.
  • UI Activation: An import of react-query is required when using mr-sdk. See UI activation for more details.

Known issues

Issue Key Details
BAS-1954 Swagger UI is used to document REST endpoints in Atoti Market Risk. It should be available at .../swagger-ui/index.html but this endpoint results in a not found exception. This is due to an outdated dependency. A fix is detailed in the migration notes.
BAS-1923 We provide a logback configuration (mr-application/src/main/resources/logback-spring-file.xml) that outputs to a local log file. This configuration references classes that are no longer present, causing the application startup to fail. A fix is detailed in the migration notes.
PIVOT-9310 When using Atoti Market Risk with DirectQuery and Databricks, an Atoti JAR must be added to the Databricks environment to enable vector aggregation - this is detailed in the documentation. The JAR for versions below 6.0.15 contains a bug that may cause issues when aggregating null vectors. This is resolved in the 6.0.15 JAR and is compatible with this version of Atoti Market Risk. Be sure to add com.activeviam.database.databricks-udafs:6.0.15 to your Databricks environment to avoid this issue.

Dependency versions

Component Version
Adjustments Services API 4.0.1
Atoti Server 6.0.14-sb3
Atoti UI 5.1.x
Common Library 2.0.4-AS6.0
Data Connectors 4.1.1-AP6.0-sb3
Datastore Helper 3.3.0-AS6.0
Java JDK17
Sign-Off API 4.0.1
Solutions Tools BOM 2.2-AS6.0
UI Components 5.0.40
What-If 3.0.1-AS6.0

Added

Issue Key Details
MR-1659 Added an option for bilinear interpolation.
MR-1669 Added an option for trilinear interpolation.
MR-1715 Added a post-processor to retrieve data from the SpotMarketData store.
MR-1716 Added a post-processor to retrieve data from the CurveMarketData store.
MR-1717 Added a post-processor to retrieve data from the SurfaceMarketData store.
MR-1718 Added a post-processor to retrieve data from the CubeMarketData store.
MR-1739 Added support for DirectQuery with Databricks.
MR-1740 Added scenario-indexed adjustments for the VaR-ES cube PnL vectors.
MR-1749 Corporate Actions have been migrated to the new Market Data API.

Changed

Issue Key Details
BAS-1395 Appropriate datastore fields are now typed as LocalDate instead of String.
BAS-1644 Separated the formulas and configuration properties of PnL Explain and Taylor VaR. For details, see Common module properties.
MR-1375 Changed the Catalog to “MR” instead of “MarketRiskAccelerator”
MR-1459 Aliases are now inferred with the help of Spring at topic location instead of processing a static list of topics on DLC location.
MR-1635 Replaced java.util.function generic usages with specific aliases.
MR-1636 Definition of combined cube metric in Copper (alpha version).
MR-1639 Reorganized security configuration code.
MR-1650 Upgraded to Atoti Server 6.0.14-sb3 and Spring Boot 3.2.0. This upgrade also fixes MR-1650 .
MR-1652 Changed the MarketDataDateShift enum value TODAY to CURRENT_DAY to clarify its meaning.
MR-1655 Removed unused .withProperty(IS_PARTITIONED_ON_RANGE_LEVELS_PROPERTY, "false") in the definition of AsOfDateNeighbourValuePostProcessor.
MR-1657 Upgraded Admin UI to version 5.1.8.
MR-1665 Changed ValueCcy to Ccy in the headers of sensitivities input files
MR-1667 Changed moneyness default value from ATM to N/A.
MR-1668 Removed unused property SENSITIVITY_TYPE in the DynamicTenorsAndMaturitiesPostProcessor class.
MR-1670 Post-processors now use Fluent descriptions.
MR-1671 The MarketDataSet and ID fields in the new Market Data data model have been swapped around.
MR-1672 The timing logs in ScalarSensiTradeStoreTuplePublisher have been set to the level FINE to avoid printing voluminous logs during transactions.
MR-1675 The new configuration class ApplicationJwtConfig has been added to handle the configuration used for JWT authentication.
MR-1681 Created and fed FX rate store for new Market Data API.
MR-1682 Updated content server database following the upgrade to Hibernate 6.3.1.Final and H2 2.2.224.
MR-1684 Configured the cookie name to default to MR_JSESSIONID and accept configuration with the server.servlet.session.cookie.name property. Fixed issues with websocket connections by setting partitioned attribute for cookies and disabling the Spring requirement for explicitly saving a session.
MR-1686 Moved metrics out of the combined cube definition.
MR-1688 Upgrade to Adjustments Services API 4.0.1 and Sign-Off API 4.0.1
MR-1696 Added abstract caching implementation of IMarketDataRetrievalService in the new Market Data API.
MR-1697 Upgrade to What-If 3.0.1-AS6.0
MR-1700 Added secondary index to SurfaceMarketDataStore and CubeMarketDataStore in the new Market Data API.
MR-1714 Used new market data API for market data measures.
MR-1721 Implemented FX post-processor with new market data API.
MR-1723 Added MeasureCreator for new post-processors in ISensitivityMarketDataMeasures.
MR-1725 Updated FX measures to use the new FX post-processor.
MR-1731 The sensitivities vector data model format has been deprecated.
MR-1732 The default data model for sensitivities changed from vector model to scalar model.
MR-1742 Used fluent API for market data post-processor.
MR-1749 Corporate Actions have been migrated to the new Market Data API.
MR-1750 Dividends have been migrated to the new Market Data API for scalar sensitivities.
MR-1772 Updated SQL scripts for DirectQuery with Microsoft SQL Server and Snowflake, to match the schema of the new Market Data API.
MR-1773 Rename INSTRUMENT_MARKET_DATA_STORE to SPOT_MARKET_DATA_STORE, along with all classes that refer to the INSTRUMENT_MARKET_DATA_STORE.
MR-1775 Removed “store” suffix in market data store names.
MR-1781 Allowed usage of the market data MeasureCreator factory methods with custom interpolation modes.
MR-1815 Changed Market Data API code based on feedback on MR 5.4.0-beta2
UIACL-931 React-query is now handled as a peer dependency. See UI activation for more details.

Removed

Issue Key Details
MR-1654 Removed .withProperty(IS_PARTITIONED_ON_RANGE_LEVELS_PROPERTY, "false") from post-processors.
MR-1655 Removed unused .withProperty(IS_PARTITIONED_ON_RANGE_LEVELS_PROPERTY, "false") in the definition of AsOfDateNeighbourValuePostProcessor.
MR-1661 Removed constant VALUE_CCY in StoreFieldConstants and used constant CCY instead.
MR-1668 Removed unused property SENSITIVITY_TYPE in the DynamicTenorsAndMaturitiesPostProcessor class.
MR-1692 Removed the mr.enable.preview.market-data property and the conditional annotations based on it.
MR-1726 Removed the debug market data measures.
MR-1774 Removed market data cube.
MR-1811 Removed the FXRates store.

Fixed

Issue Key Details
MR-1520 Querying the PnLExplain measure on the Sensitivity Cube is now faster than on previous versions.
MR-1626 Logging in as a user without admin rights no longer results in a 403 HTTP error.
MR-1646 SparseVectorDatastoreConfig now works on keyless stores.
MR-1666 Fixed slow retrieval of ladder shifts in SensiLadderExpand post-processor.
MR-1675 The new configuration class ApplicationJwtConfig allows the handling of the activeviam.jwt.failOnDifferentAuthorities property that was not taken into account previously.
MR-1691 Fixed datastore query used for roll-over adjustments.
MR-1743 Upgraded to Solutions Tools BOM 2.2-AS6.0 to fix bug in DoctorPivot, leading to a failure to retrieve the measures in the application cubes.
MR-1751 Made native currency measures in the sensitivity summary cubes visible and have the correct names.
MR-1780 The continuous query handler of the FX post-processors is now configurable.
MR-1776 Properties to configure market data interpolation are avaiable. However, for interpolators using pre- and post-interpolation functions, a custom implementation is needed. An example of such an implementation is provided in the application.
MR-1777 Fixed FX risk computation from FX shifts and FX rates.
MR-1778 The mapping between risk classes and types of market data retrieved is now configurable and is no longer hard-coded.