Migration notes 5.3
This page explains the changes required to migrate to the stated version
of Atoti FRTB.
Migrate to 5.3.0-BETA
Upgrading from version 5.2.0, see Atoti FRTB 5.3-BETA Release Notes.
Atoti FRTB uses Atoti Server 6.0.12-sb3 and Atoti UI 5.1.x.
For new features and fixes included in these releases, please see the Atoti UI documentation and Atoti UI Migration Notes, and the release notes for Atoti Server.
For clients licensed to use ActiveMonitor, a skeleton module based on
version 6.0.12-sb3 is included with the Atoti FRTB 5.3.0-BETA release.
Headline announcement
- EBA Reporting : Additional fields and measures have been included to support new EBA reporting templates.
- The “Imported” measures used for the old reporting templates have been deprecated.
- Spring Boot 3 : Upgraded to Spring Boot 3.
- Spring Profiles : Profile-based configuration has been replaced with properties (backwards compatible).
- UI Activation : An import of
react-query
is required when using frtb-sdk
. See UI activation for more details.
- DirectQuery IMA Support: Addes support for using the IMA-ES cube (
InternalModelApproachCube
) with DirectQuery.
- Configuration Property Naming Convention: Configuration properties inside
application.yaml
have been updated from camelCase
to kebab-case
. This change is to align with the Spring Boot naming convention. Both naming conventions are interchangeable/compatible with each other.
- IMA and IMA-DRC query cubes: The IMA and IMA-DRC query cubes have been added to the
InternalModelApproachCube
and InternalModelApproachDrcCube
respectively. These cubes are used to query the IMA and IMA-DRC data across data nodes. A complete list of measures can be found here.
Breaking Changes
- IRT_Desk field: Moved from the
DeskDescription
store to the BookDescription
store. This change is also reflected in DirectQuery Tables.
The BookDescription
store was previously named BookDeskMapping
.
Backwards compatibility with old input files is maintained, though the use of the IRT_Desk field in DeskDescription files has been deprecated.
Profile-based Configuration
The code in Atoti FRTB will no longer change behavior based directly on Spring profiles.
Instead, the behavior will be determined by properties.
The properties can be set by profile-selected configuration files.
Default properties files are included to preserve backwards compatibility with the use of profiles.
In particular, instead of the profiles dist-data-node
, dist-query-node
, and forceNetty
(and the property directquery.enabled
), we have the following properties:
Property |
Description |
Values |
starter.deployment.type |
Specifies the nature of the database used for the cube. |
It can take three values:in-memory (default): The in-memory datastore is used.direct-query : An external database is used. This replaces the directquery.enabled property. note An in-memory datastore is still used for configuration data and caching.
query-node : No database is used. This can contain the FRTBCombinedCube and the StandardisedApproachCube (support for IMA cubes will be in a future version).
|
starter.deployment.transport |
Specifies the messenger to use for communication between cubes. |
It can take two values:local (default): For communication only within a single machine. It cannot be used for distribution, but is faster if distribution isn’t needed.netty : For jgroups communication between machines in a distributed deployment.
|
combined.disable=false |
An existing flag which turns the FRTBCombinedCube polymorphic cube on or off. |
|
Change to frtb.properties
We have switched from frtb.properties
to application.properties
which is automatically picked up by Spring Boot. Properties are no longer read from frtb.properties
which has now been removed.
The following configuration files have been added to match the behavior of the profiles:
Spring profile |
Configuration file |
starter.deployment.type |
starter.deployment.transport |
combined.disable |
default |
|
in-memory |
local |
unset (false ) |
dist-data-node |
application-dist-data-node.yaml |
in-memory |
netty |
true |
dist-query-node |
application-dist-query-node.yaml |
query-node |
netty |
unset (false ) |
forceNetty |
application-forceNetty.yaml |
unset (in-memory ) |
netty |
unset (false ) |
See the Externalized Configuration section of the Spring boot documentation for more information on profiles and property management.
Added
File |
Details |
BookDescription.csv |
This file replaces BookDeskMapping.csv and provides a description of the books. It includes the IRT_DESK field which replaces the field of the same name removed from the DeskDescription file. The old input file BookDeskMapping.csv is deprecated but can still be loaded. |
Modified
Modification |
File |
Field |
Optional |
Description |
Added |
DRC_Trade.csv |
Instrument Type |
Y |
Reported Instrument Type (“Equity” or “Debt”). |
Added |
DRC_Summary.csv |
Instrument Type |
Y |
Reported Instrument Type (“Equity” or “Debt”). |
Added |
RRAO_Trade.csv |
Residual Risk |
Y |
Is this position subject to RRAO.\nDefault = ‘Y’. |
Added |
RRAO_Trade.csv |
Exemption Reason |
Y |
Reported reason why the position is exempt from RRAO. |
Added |
RRAO_Trade.csv |
Asset Class |
Y |
Reported asset class. |
Added |
RRAO_Summary.csv |
Residual Risk |
Y |
Is this position subject to RRAO.\nDefault = ‘Y’. |
Added |
RRAO_Summary.csv |
Exemption Reason |
Y |
Reported reason why the position is exempt from RRAO. |
Added |
RRAO_Summary.csv |
Asset Class |
Y |
Reported asset class. |
Added |
RRAO_Overrides.csv |
Exemption Reason |
Y |
Reported reason why the position is exempt from RRAO. |
Added |
RRAO_Overrides.csv |
Asset Class |
Y |
Reported asset class. |
Added |
SBM_Delta_Sensitivities.csv |
GIRR Basis Ccy |
Y |
The counter currency for GIRR cross-currency basis curves (USD or EUR). |
Added |
SBM_Summary_Delta_Sensitivities.csv |
GIRR Basis Ccy |
Y |
The counter currency for GIRR cross-currency basis curves (USD or EUR). |
Added |
SBM_Vega_Sensitivities.csv |
GIRR Basis Ccy |
Y |
The counter currency for GIRR cross-currency basis curves (USD or EUR). |
Added |
SBM_Summary_Vega_Sensitivities.csv |
GIRR Basis Ccy |
Y |
The counter currency for GIRR cross-currency basis curves (USD or EUR). |
Removed |
DeskDescription.csv |
IRT_DESK |
Y |
This field has been deprecated to use this field to overwrite the ones provided in the BookDescription files you must enable irt.desk.use-desk-description |
Deprecated
File |
Details |
LegalEntityImports.csv |
Imported measures are deprecated and only provided for backwards compatibility with older EBA reporting templates. |
BookMapping.csv |
This file can still be loaded, but has been replaced by DeskDescription.csv |
Configuration files
Files Modified
New properties:
Property Name |
Comment |
Value |
content-service.db.jakarta.persistence.jdbc.driver |
Replaces content-service.db.driverClassName |
org.h2.Driver |
Deleted properties:
Property Name |
Comment |
content-service.db.driverClassName |
Replaced by content-service.db.jakarta.persistence.jdbc.driver |
New properties:
Property Name |
Comment |
Value |
starter.deployment.type |
The type of database used for the cube. in-memory (default), direct-query or query-node . |
“in-memory” |
starter.deployment.transport |
The messenger to use for communication between cubes. local (default) or netty . |
“local” |
server.servlet.session.cookie.name |
Customize cookie name |
“FRTB_JSESSIONID” |
server.servlet.session.cookie.secure |
Whether to always mark the cookie as secure |
“true” |
server.servlet.session.cookie.http-only |
Whether to use “HttpOnly” attribute for the cookie |
“true” |
server.servlet.session.cookie.same-site |
SameSite setting for the cookie |
“none” |
directquery.database.databricks .* |
DirectQuery settings for Databricks database |
|
Deleted properties:
Property Name |
Comment |
directquery.enabled |
Replaced by starter.deployment.type=direct-query |
directquery.wait-for-data-load / directquery.waitForDataLoad |
Replaced by starter.deployment.type=direct-query |
New properties:
Property Name |
Comment |
Value |
tracing.enabled |
Enable OpenTelemetry Configuration |
true |
open-telemetry.zipkin-span-exporter.url |
URL to use for zipkin SpanProcessor bean |
|
open-telemetry.logging-span-exporter.enabled |
Enable SpanProcessor bean with LoggingSpanExporter |
|
New properties:
Property Name |
Comment |
Value |
irt.desk.use-desk-description |
Flag to use deprecated IRT_Flag field from DeskDescription input files to override the values provided by BookDescription input files |
false |
Updated properties:
Property Name |
Comment |
New Value |
Old Value |
book-description-file-pattern |
Renamed from book-desk-mapping.file-pattern |
**/{BookDeskMapping,BookDescription}*.csv{,.gz} |
**/BookDeskMapping*.csv{,.gz} |
Datastores
Added stores
Modified stores
Modification |
Store |
Field |
Type |
Description |
Added |
SaSensitivities |
Instrument Type |
String |
For DRC non-Sec only. Reported Instrument Type (“Equity” or “Debt”). |
Added |
RRAO |
Exemption Reason |
String |
Reported reason why the position is exempt from RRAO. |
Added |
RRAO |
Asset Class |
String |
Reported asset class. |
Added |
RRAOOverrides |
Exemption Reason |
String |
Reported reason why the position is exempt from RRAO. |
Added |
RRAOOverrides |
Asset Class |
String |
Reported asset class. |
Added |
UnderlyingDescription |
GIRR Basis Ccy |
String |
GIRR only. The counter currency for GIRR cross-currency basis curves (USD or EUR). |
Added |
BookDescription |
IRT_DESK |
String |
|
Removed |
DeskDescription |
IRT_DESK |
String |
|
Removed stores
DirectQuery
Added
Added |
Details |
IMA ES Support |
DirectQuery can now be used with the InternalModelApproachCube cube. The IMA ES calculations can now be performed against data sourced from a remote database when using DirectQuery. |
Cube Conditional Annotations |
Conditional expression annotations to create beans depending on whether different cubes are enabled/disabled. |
Dates Filter |
Added configurations to filter the dates the DirectQuery node has access to from the remote database. |
DirectQueryCachedTablesConfig |
Configures which tables to cache in-memory, sourced from a DirectQuery remote database table. |
DirectQueryDictionarizedFieldsConfig |
Configures which DirectQuery table fields should be dictionarized. |
Changed
Change |
Details |
InitialDataDirectQueryConfig replaced with DirectQueryDatesFilterConfig |
Filtering dates has been modified to use standalone properties. Additionally customizations of the DirectQueryDatesFilterConfig beans have been simplified. |
Defining tables to cache locally |
How the tables to cache locally are defined has changed. Customizing the tables that are cached locally has been simplified. |
Reference database data is now GZipped. |
The reference data that is provided within frtb-directquery/src/test/resources/databases/xxx/input_data/ is now GZipped. This reduces the size of the deliverables. |
Removed
Class |
Details |
ADirectQueryDatabaseSchema |
Configuration has been removed and replaced with DirectQueryCachedTablesConfig and DirectQueryDictionarizedFieldsConfig . |
Removal of ADirectQueryDatabaseSchema
Rather than manually migrating each in-memory datastore definition into a DirectQuery database table, we now fully rely on the Migrator
to migrate our
in-memory datastore definitions into DirectQuery table definitions. This is done within the DirectQueryApplicationConfig.schema()
method.
All customizations on in-memory stores will be automatically applied to the DirectQuery schema.
Databases
Added tables
Modified tables
Modification |
Table |
Field |
Type |
Description |
Added |
SASENSITIVITIES |
INSTRUMENT_TYPE |
STRING |
For DRC non-Sec only. Reported Instrument Type (“Equity” or “Debt”). |
Added |
RRAO |
EXEMPTION_REASON |
STRING |
Reported reason why the position is exempt from RRAO. |
Added |
RRAO |
ASSET_CLASS |
STRING |
Reported asset class. |
Added |
RRAOOVERRIDES |
EXEMPTION_REASON |
STRING |
Reported reason why the position is exempt from RRAO. |
Added |
RRAOOVERRIDES |
ASSET_CLASS |
STRING |
Reported asset class. |
Added |
UNDERLYING_DESCRIPTION |
GIRR_BASIS_CCY |
STRING |
GIRR only. The counter currency for GIRR cross-currency basis curves (USD or EUR). |
Added |
BOOK_DESCRIPTION |
IRT_DESK |
String |
|
Removed |
DESK_DESCRIPTION |
IRT_DESK |
String |
|
Deleted tables
Deprecated
Table |
Details |
LegalEntityImports |
Imported measures are deprecated and only provided for backwards compatibility with older EBA reporting templates. |
Cube schema
Added
Measures
Added
Moved
The following measures have been moved form the CombinedCube into the respective query cubes. By moving these measures into the query cube, we can now query across dates and data nodes without the measure needing to be defined in the CombinedCube. These measures will still exist in the CombinedCube and on all data-nodes.
Previous cube |
New cube |
Measure name |
CombinedCube |
StandardisedApproachCube |
PortfolioRiskCharge.Shift |
CombinedCube |
StandardisedApproachCube |
PortfolioRiskCharge.D2D |
CombinedCube |
IMADRCCube |
DRC - IMA |
CombinedCube |
IMADRCCube |
IMADRC Lookback |
CombinedCube |
IMADRCCube |
IMADRCavg |
CombinedCube |
InternalModelApproachCube |
IMCCavg |
CombinedCube |
InternalModelApproachCube |
SESavg |
CombinedCube |
InternalModelApproachCube |
CA |
CombinedCube |
InternalModelApproachCube |
IMCC Lookback |
CombinedCube |
InternalModelApproachCube |
SES Lookback |
CombinedCube |
InternalModelApproachCube |
ES (Model Variation) Lookback |
CombinedCube |
InternalModelApproachCube |
ES (Model Variation) avg |
Deprecated
Cube |
Measure |
Details |
SA |
base-measure Imported |
Imported measures are and only provided for backwards compatibility with older EBA reporting templates. In a future version these measures will be hidden. |
Context values
No changes.