Migration notes from beta

This page explains the changes since 5.3.0-beta, plus any changes required to migrate from 5.3.0-beta to the stated version of Atoti Market Risk.

Changes since 5.3.0-beta

Added

Issue Key Details
MR-1606 Added a new implementation of IVaRQuantile: SimpleQuantile.

Changed

Issue Key Details
MR-1605 Quantile type and rounding method display names can now be set with properties.
MR-1595 Upgraded to Atoti Server 6.0.9.

Removed

Issue Key Details
MR-1615 Removed the ActivePivotRemotingServicesConfig import.

Fixed

Issue Key Details
MR-1392 The ladder computations for PnL Explain and Taylor VaR have been fixed by replacing PnL = PnL(Ladder(shift), sensi) with PnL = Ladder(PnL(shift), shift).
MR-1610 Configured missing Volga Taylor VaR measures.
MR-1618 Ladder-based sensitivity measures can now be excluded from the configuration.

Migrate to 5.3.0

Upgrading from version 5.3.0-beta, see Atoti Market Risk 5.3 Release Notes.

Atoti Market Risk uses Atoti Server 6.0.9 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.

Summary

  • Java 17 upgrade : The Atoti Market Risk is now compatible with, and requires Java 17.
  • Spring Security upgrade : We have upgraded Spring Security to version 5.8.7 to resolve vulnerabilities and prepare for the upgrade to Spring Security 6.0 (via Spring Boot 3).
  • Atoti Server upgrade : The Atoti Market Risk has been upgraded to Atoti Server 6.0.9.
  • Solutions Tools BOM upgrade : The Solutions Tools BOM dependency has been upgraded to 2.0-AS6.0. All included tools are compatible with, and require Java 17.
  • Volga Taylor VaR measures: Volga Taylor VaR measures have been added to the Solution.
  • Statistical measures for interpolated market shift measures: The minimum, maximum, average, and percentile measures have been added for interpolated market shift measures.
  • PnL Explain and Taylor VaR: The ladder computation has been fixed by replacing PnL = PnL(Ladder(shift), sensi) with PnL = Ladder(PnL(shift), shift).
  • IPnLExplainFormulaProvider consistency cleanup: The new getShiftFromMDFormula function has been added to the IPnLExplainFormulaProviderto transform market data into a shift. See IPnLExplainFormulaProvider consistency cleanup.
  • Removal of ActivePivotRemotingServicesConfig: The import of ActivePivotRemotingServicesConfig has been removed from the configuration class MarketRiskConfig.
  • Made ladder-based sensitivity measures optional: Ladder-based sensitivity measures can now be excluded from the configuration. If the configuration classes are excluded, no visible measures will be present in the cube. If the Solution is configured to use ladders as an input to PnL Explain and Taylor VaR calculations, the result will be NaN.

Breaking Changes

  • The MR 5.3.0 release is now compatible with, and requires Java 17.
  • The Solutions Tools BOM dependency has been upgraded to 2.0-AS6.0. All included tools are compatible with, and require Java 17.
  • The Spring Security configuration has been upgraded to version 5.8.7, for future compatibility with Spring 6.0. Customizations built on previous versions will need to be migrated.
  • A new getShiftFromMDFormula function has been added to the IPnLExplainFormulaProvider.
  • The import of ActivePivotRemotingServicesConfig has been removed from the configuration class MarketRiskConfig.

Properties

Properties Added

Property Name Type Comment Value
mr.cubes.context-values.display-names.quantiles Map<String, String> Configure display names for implementation of IVaRQuantile. The key is the implementation’s plugin key. The value is the display name. EQUAL_WEIGHT: Equal Weight, CENTERED: Centered, EXCLUSIVE: Exclusive, SIMPLE: Simple
mr.cubes.context-values.display-names.rounding-methods Map<String, String> Configure display names for implementation of IVaRRounding. The key is the implementation’s plugin key. The value is the display name. FLOOR: Floor, CEIL: Ceil, ROUND: Round, ROUND_EVEN: Round Even, WEIGHTED: Weighted

Properties Modified

Old Property Name New Property Name Comment
mr.cubes.context-values.defaults.quantile-type mr.cubes.context-values.defaults.quantile Property name changed to bring it in line with other references to quantiles. No other changes made to the property.
mr.cubes.context-values.defaults.rounding-type mr.cubes.context-values.defaults.rounding-method Property name changed to bring it in line with other references to rounding methods. No other changes made to the property.

Beans

Added

The following beans have been added to define parameters related to Volga Taylor VaR:

Constant Qualifier Type Details
SP_QUALIFIER__VOLGA_TAYLOR_VAR_PARAMETERS “Volga Taylor VAR Parameters” VaRMetricParametersAndNames Parameters and constants used for Volga Taylor VAR measures.
SP_QUALIFIER__VOLGA_TAYLOR_ES_PARAMETERS “Volga Taylor ES Parameters” VaRMetricParametersAndNames Parameters and constants used for Volga Taylor ES measures.
SP_QUALIFIER__VOLGA_TAYLOR_ETG_PARAMETERS “Volga Taylor ETG Parameters” VaRMetricParametersAndNames Parameters and constants used for Volga Taylor ETG measures.
SP_QUALIFIER__VOLGA_TAYLOR_VAE_PARAMETERS “Volga Taylor VAE Parameters” VaRMetricParametersAndNames Parameters and constants used for Volga Taylor VAE measures.
SP_QUALIFIER__VOLGA_TAYLOR_WVAE_PARAMETERS “Volga Taylor WVAE Parameters” VaRMetricParametersAndNames Parameters and constants used for Volga Taylor WVAE measures.
SP_QUALIFIER__VOLGA_TAYLOR_WVAR_PARAMETERS “Volga Taylor WVAR Parameters” VaRMetricParametersAndNames Parameters and constants used for Volga Taylor WVAR measures.

Those constants are defined in the SpringConstants class of the mr-common-lib module, and the beans are defined in the mr-sensi-config module.

In the following files in the mr-sensi-config module:

  • CashShiftViewerChain
  • CorrelationShiftViewerChain
  • CrossGammaShiftViewerChain
  • DeltaShiftViewerChain
  • GammaShiftViewerChain
  • VannaShiftViewerChain
  • VegaShiftViewerChain
  • VolgaShiftViewerChain

the following beans have been added to define statistical measures on interpolated market shift measures:

Constant Qualifier Type Details
SENSI + SHIFT_VECTOR_INTERPOLATED_MIN SENSI + “Shift Vector Interpolated Minimum” CopperMeasure Measure computing the minimum of the Market Shift vector used by the sensitivity, interpolated, not normalized.
SENSI + SHIFT_VECTOR_INTERPOLATED_MAX SENSI + “Shift Vector Interpolated Maximum” CopperMeasure Measure computing the maximum of the Market Shift vector used by the sensitivity, interpolated, not normalized.
SENSI + SHIFT_VECTOR_INTERPOLATED_AVG SENSI + “Shift Vector Interpolated Average” CopperMeasure Measure computing the average of the Market Shift vector used by the sensitivity, interpolated, not normalized.
SENSI + SHIFT_VECTOR_INTERPOLATED_PERCENTILE SENSI + “Shift Vector Interpolated Percentile” CopperMeasure Measure computing the percentile of the Market Shift vector used by the sensitivity, interpolated, not normalized.
SENSI + SHIFT_VECTOR_INTERPOLATED_NORMALIZED_MIN SENSI + “Shift Vector Interpolated Normalized Minimum” CopperMeasure Measure computing the maximum of the Market Shift vector used by the sensitivity, interpolated, normalized.
SENSI + SHIFT_VECTOR_INTERPOLATED_NORMALIZED_MAX SENSI + “Shift Vector Interpolated Normalized Maximum” CopperMeasure Measure computing the minimum of the Market Shift vector used by the sensitivity, interpolated, normalized.
SENSI + SHIFT_VECTOR_INTERPOLATED_NORMALIZED_AVG SENSI + “Shift Vector Interpolated Normalized Average” CopperMeasure Measure computing the average of the Market Shift vector used by the sensitivity, interpolated, normalized.
SENSI + SHIFT_VECTOR_INTERPOLATED_NORMALIZED_PERCENTILE SENSI + “Shift Vector Interpolated Normalized Percentile” CopperMeasure Measure computing the percentile of the Market Shift vector used by the sensitivity, interpolated, normalized.

In the mr-sensi-config module, the following classes containing the definition of Volga Taylor VaR measures have been added:

Package File Name Details
com.activeviam.mr.sensi.measures.chains.complete.volga.taylor.es VolgaTaylorESContextualChain Definition of the Volga Taylor ES measures using the ESConfidenceLevel context value for the percentile.
com.activeviam.mr.sensi.measures.chains.complete.volga.taylor.es VolgaTaylorESFixedConfidenceChain Definition of the Volga Taylor ES measures using fixed values for the percentile.
com.activeviam.mr.sensi.measures.chains.complete.volga.taylor.etg VolgaTaylorETGContextualChain Definition of the Volga Taylor ETG measures using the ETGConfidenceLevel context value for the percentile.
com.activeviam.mr.sensi.measures.chains.complete.volga.taylor.etg VolgaTaylorETGFixedConfidenceChain Definition of the Volga Taylor ETG measures using fixed values for the percentile.
com.activeviam.mr.sensi.measures.chains.complete.volga.taylor.vae VolgaTaylorVAEContextualChain Definition of the Volga Taylor VAE measures using the VAEConfidenceLevel context value for the percentile.
com.activeviam.mr.sensi.measures.chains.complete.volga.taylor.vae VolgaTaylorVAEFixedConfidenceChain Definition of the Volga Taylor VAE measures using fixed values for the percentile.
com.activeviam.mr.sensi.measures.chains.complete.volga.taylor.var VolgaTaylorVARContextualChain Definition of the Volga Taylor VAR measures using the VARConfidenceLevel context value for the percentile.
com.activeviam.mr.sensi.measures.chains.complete.volga.taylor.var VolgaTaylorVARFixedConfidenceChain Definition of the Volga Taylor VAR measures using fixed values for the percentile.
com.activeviam.mr.sensi.measures.chains.complete.volga.taylor.wvae VolgaTaylorWVAEContextualChain Definition of the Volga Taylor Weighted VAE measures using the VAEConfidenceLevel context value for the percentile.
com.activeviam.mr.sensi.measures.chains.complete.volga.taylor.wvae VolgaTaylorWVAEFixedConfidenceChain Definition of the Volga Taylor Weighted VAE measures using fixed values for the percentile.
com.activeviam.mr.sensi.measures.chains.complete.volga.taylor.wvar VolgaTaylorWVARContextualChain Definition of the Volga Taylor Weighted VAR measures using the VAEConfidenceLevel context value for the percentile.
com.activeviam.mr.sensi.measures.chains.complete.volga.taylor.wvar VolgaTaylorWVARFixedConfidenceChain Definition of the Volga Taylor Weighted VAR measures using fixed values for the percentile.
com.activeviam.mr.sensi.measures.chains.complete.volga.taylor VolgaTaylorChain Definition of the PnL vector measures used for Volga Taylor VaR and of the Volga Taylor Tail VaE and Volga Taylor Tail VaR measures.
com.activeviam.mr.sensi.measures.config.parameters.taylor VolgaTaylorParametersConfig Definition of the parameters used for Volga Taylor VaR measure definitions.

In the mr-sensi-config module, imports of the following configuration files have been added to the VolgaTaylorMeasuresConfig class:

  • VolgaTaylorETGContextualChain
  • VolgaTaylorETGFixedConfidenceChain
  • VolgaTaylorVAEContextualChain
  • VolgaTaylorVAEFixedConfidenceChain
  • VolgaTaylorWVAEContextualChain
  • VolgaTaylorWVAEFixedConfidenceChain
  • VolgaTaylorWVARContextualChain
  • VolgaTaylorWVARFixedConfidenceChain
  • VolgaTaylorESContextualChain
  • VolgaTaylorESFixedConfidenceChain
  • VolgaTaylorVaRContextualChain
  • VolgaTaylorVaRFixedConfidenceChain
  • VolgaTaylorChain

In the mr-sensi-config module, the import of the following file has been added to the AllTaylorParameters class:

  • VolgaTaylorParametersConfig

In the mr-sensi-lib module, the following constants have been added in the file SensiMeasureParameters:

Constant Value Details
SHIFT_VECTOR_INTERPOLATED_MIN “Shift Vector Interpolated Minimum” Suffix of the measure computing the minimum of the Market Shift vector used by a sensitivity, interpolated, not normalized.
SHIFT_VECTOR_INTERPOLATED_MAX “Shift Vector Interpolated Maximum” Suffix of the measure computing the maximum of the Market Shift vector used by a sensitivity, interpolated, not normalized.
SHIFT_VECTOR_INTERPOLATED_AVG “Shift Vector Interpolated Average” Suffix of the measure computing the average of the Market Shift vector used by a sensitivity, interpolated, not normalized.
SHIFT_VECTOR_INTERPOLATED_PERCENTILE “Shift Vector Interpolated Percentile” Suffix of the measure computing the percentile of the Market Shift vector used by a sensitivity, interpolated, not normalized.
SHIFT_VECTOR_INTERPOLATED_NORMALIZED_MIN “Shift Vector Interpolated Normalized Minimum” Suffix of the measure computing the minimum of the Market Shift vector used by a sensitivity, interpolated, normalized.
SHIFT_VECTOR_INTERPOLATED_NORMALIZED_MAX “Shift Vector Interpolated Normalized Maximum” Suffix of the measure computing the maximum of the Market Shift vector used by a sensitivity, interpolated, normalized.
SHIFT_VECTOR_INTERPOLATED_NORMALIZED_AVG “Shift Vector Interpolated Normalized Average” Suffix of the measure computing the average of the Market Shift vector used by a sensitivity, interpolated, normalized.
SHIFT_VECTOR_INTERPOLATED_NORMALIZED_PERCENTILE “Shift Vector Interpolated Normalized Percentile” Suffix of the measure computing the percentile of the Market Shift vector used by a sensitivity, interpolated, normalized.

Measures

Added

Cube Measure Details
Market Data Shift Vector Interpolated Minimum Minimum of the Market Shift vector, interpolated, not normalized
Market Data Shift Vector Interpolated Maximum Maximum of the Market Shift vector, interpolated, not normalized
Market Data Shift Vector Interpolated Average Average of the Market Shift vector, interpolated, not normalized
Market Data Shift Vector Interpolated Percentile Percentile of the Market Shift vector, interpolated, not normalized
Market Data Shift Vector Interpolated Normalized Minimum Minimum of the Market Shift vector, interpolated, normalized
Market Data Shift Vector Interpolated Normalized Maximum Maximum of the Market Shift vector, interpolated, normalized
Market Data Shift Vector Interpolated Normalized Average Average of the Market Shift vector, interpolated, normalized
Market Data Shift Vector Interpolated Normalized Percentile Percentile of the Market Shift vector, interpolated, normalized
Sensi Correlation Shift Vector Interpolated Minimum Minimum of the Market Shift vector used by the Correlation sensitivity, interpolated, not normalized
Sensi Correlation Shift Vector Interpolated Maximum Maximum of the Market Shift vector used by the Correlation sensitivity, interpolated, not normalized
Sensi Correlation Shift Vector Interpolated Average Average of the Market Shift vector used by the Correlation sensitivity, interpolated, not normalized
Sensi Correlation Shift Vector Interpolated Percentile Percentile of the Market Shift vector used by the Correlation sensitivity, interpolated, not normalized
Sensi Correlation Shift Vector Interpolated Normalized Minimum Minimum of the Market Shift vector used by the Correlation sensitivity, interpolated, normalized
Sensi Correlation Shift Vector Interpolated Normalized Maximum Maximum of the Market Shift vector used by the Correlation sensitivity, interpolated, normalized
Sensi Correlation Shift Vector Interpolated Normalized Average Average of the Market Shift vector used by the Correlation sensitivity, interpolated, normalized
Sensi Correlation Shift Vector Interpolated Normalized Percentile Percentile of the Market Shift vector used by the Correlation sensitivity, interpolated, normalized
Sensi CrossGamma Shift Vector Interpolated Minimum Minimum of the Market Shift vector used by the CrossGamma sensitivity, interpolated, not normalized
Sensi CrossGamma Shift Vector Interpolated Maximum Maximum of the Market Shift vector used by the CrossGamma sensitivity, interpolated, not normalized
Sensi CrossGamma Shift Vector Interpolated Average Average of the Market Shift vector used by the CrossGamma sensitivity, interpolated, not normalized
Sensi CrossGamma Shift Vector Interpolated Percentile Percentile of the Market Shift vector used by the CrossGamma sensitivity, interpolated, not normalized
Sensi CrossGamma Shift Vector Interpolated Normalized Minimum Minimum of the Market Shift vector used by the CrossGamma sensitivity, interpolated, normalized
Sensi CrossGamma Shift Vector Interpolated Normalized Maximum Maximum of the Market Shift vector used by the CrossGamma sensitivity, interpolated, normalized
Sensi CrossGamma Shift Vector Interpolated Normalized Average Average of the Market Shift vector used by the CrossGamma sensitivity, interpolated, normalized
Sensi CrossGamma Shift Vector Interpolated Normalized Percentile Percentile of the Market Shift vector used by the CrossGamma sensitivity, interpolated, normalized
Sensi Delta Shift Vector Interpolated Minimum Minimum of the Market Shift vector used by the Delta sensitivity, interpolated, not normalized
Sensi Delta Shift Vector Interpolated Maximum Maximum of the Market Shift vector used by the Delta sensitivity, interpolated, not normalized
Sensi Delta Shift Vector Interpolated Average Average of the Market Shift vector used by the Delta sensitivity, interpolated, not normalized
Sensi Delta Shift Vector Interpolated Percentile Percentile of the Market Shift vector used by the Delta sensitivity, interpolated, not normalized
Sensi Delta Shift Vector Interpolated Normalized Minimum Minimum of the Market Shift vector used by the Delta sensitivity, interpolated, normalized
Sensi Delta Shift Vector Interpolated Normalized Maximum Maximum of the Market Shift vector used by the Delta sensitivity, interpolated, normalized
Sensi Delta Shift Vector Interpolated Normalized Average Average of the Market Shift vector used by the Delta sensitivity, interpolated, normalized
Sensi Delta Shift Vector Interpolated Normalized Percentile Percentile of the Market Shift vector used by the Delta sensitivity, interpolated, normalized
Sensi Gamma Shift Vector Interpolated Minimum Minimum of the Market Shift vector used by the Gamma sensitivity, interpolated, not normalized
Sensi Gamma Shift Vector Interpolated Maximum Maximum of the Market Shift vector used by the Gamma sensitivity, interpolated, not normalized
Sensi Gamma Shift Vector Interpolated Average Average of the Market Shift vector used by the Gamma sensitivity, interpolated, not normalized
Sensi Gamma Shift Vector Interpolated Percentile Percentile of the Market Shift vector used by the Gamma sensitivity, interpolated, not normalized
Sensi Gamma Shift Vector Interpolated Normalized Minimum Minimum of the Market Shift vector used by the Gamma sensitivity, interpolated, normalized
Sensi Gamma Shift Vector Interpolated Normalized Maximum Maximum of the Market Shift vector used by the Gamma sensitivity, interpolated, normalized
Sensi Gamma Shift Vector Interpolated Normalized Average Average of the Market Shift vector used by the Gamma sensitivity, interpolated, normalized
Sensi Gamma Shift Vector Interpolated Normalized Percentile Percentile of the Market Shift vector used by the Gamma sensitivity, interpolated, normalized
Sensi Vanna Shift Vector Interpolated Minimum Minimum of the Market Shift vector used by the Vanna sensitivity, interpolated, not normalized
Sensi Vanna Shift Vector Interpolated Maximum Maximum of the Market Shift vector used by the Vanna sensitivity, interpolated, not normalized
Sensi Vanna Shift Vector Interpolated Average Average of the Market Shift vector used by the Vanna sensitivity, interpolated, not normalized
Sensi Vanna Shift Vector Interpolated Percentile Percentile of the Market Shift vector used by the Vanna sensitivity, interpolated, not normalized
Sensi Vanna Shift Vector Interpolated Normalized Minimum Minimum of the Market Shift vector used by the Vanna sensitivity, interpolated, normalized
Sensi Vanna Shift Vector Interpolated Normalized Maximum Maximum of the Market Shift vector used by the Vanna sensitivity, interpolated, normalized
Sensi Vanna Shift Vector Interpolated Normalized Average Average of the Market Shift vector used by the Vanna sensitivity, interpolated, normalized
Sensi Vanna Shift Vector Interpolated Normalized Percentile Percentile of the Market Shift vector used by the Vanna sensitivity, interpolated, normalized
Sensi Vega Shift Vector Interpolated Minimum Minimum of the Market Shift vector used by the Vega sensitivity, interpolated, not normalized
Sensi Vega Shift Vector Interpolated Maximum Maximum of the Market Shift vector used by the Vega sensitivity, interpolated, not normalized
Sensi Vega Shift Vector Interpolated Average Average of the Market Shift vector used by the Vega sensitivity, interpolated, not normalized
Sensi Vega Shift Vector Interpolated Percentile Percentile of the Market Shift vector used by the Vega sensitivity, interpolated, not normalized
Sensi Vega Shift Vector Interpolated Normalized Minimum Minimum of the Market Shift vector used by the Vega sensitivity, interpolated, normalized
Sensi Vega Shift Vector Interpolated Normalized Maximum Maximum of the Market Shift vector used by the Vega sensitivity, interpolated, normalized
Sensi Vega Shift Vector Interpolated Normalized Average Average of the Market Shift vector used by the Vega sensitivity, interpolated, normalized
Sensi Vega Shift Vector Interpolated Normalized Percentile Percentile of the Market Shift vector used by the Vega sensitivity, interpolated, normalized
Sensi Volga Shift Vector Interpolated Minimum Minimum of the Market Shift vector used by the Volga sensitivity, interpolated, not normalized
Sensi Volga Shift Vector Interpolated Maximum Maximum of the Market Shift vector used by the Volga sensitivity, interpolated, not normalized
Sensi Volga Shift Vector Interpolated Average Average of the Market Shift vector used by the Volga sensitivity, interpolated, not normalized
Sensi Volga Shift Vector Interpolated Percentile Percentile of the Market Shift vector used by the Volga sensitivity, interpolated, not normalized
Sensi Volga Shift Vector Interpolated Normalized Minimum Minimum of the Market Shift vector used by the Volga sensitivity, interpolated, normalized
Sensi Volga Shift Vector Interpolated Normalized Maximum Maximum of the Market Shift vector used by the Volga sensitivity, interpolated, normalized
Sensi Volga Shift Vector Interpolated Normalized Average Average of the Market Shift vector used by the Volga sensitivity, interpolated, normalized
Sensi Volga Shift Vector Interpolated Normalized Percentile Percentile of the Market Shift vector used by the Volga sensitivity, interpolated, normalized
Sensi List of Volga Taylor ES measures See the list of all Volga Taylor ES measures in the link.
Sensi List of Volga Taylor ETG measures See the list of all Volga Taylor ETG measures in the link.
Sensi List of Volga Taylor VaE measures See the list of all Volga Taylor VaE measures in the link.
Sensi List of Volga Taylor VaR measures See the list of all Volga Taylor VaR measures in the link.

Other changes

Java 17 upgrade

The Solution is now built and intended to be run within a Java 17 JVM. Some functionality in the full application and in the regressions tests requires deep reflection access to Java packages. To enable access, please use the following JVM parameters, either through the command line or maven surefire/failsafe configuration.

--add-opens=java.base/java.util.concurrent=ALL-UNNAMED
--add-opens=java.base/java.nio=ALL-UNNAMED

note

The Solution will not work in a Java 11 JVM.

Spring Security upgrade

We have upgraded to Spring Security 5.8.7. To do so, we override the version of Spring Security in Spring Boot by importing the common-dependencies-bom version 1.2.0 into the parent pom file. The common-dependencies-bom overrides the Spring Security version using Spring’s migration guide.

You will eventually need to migrate your own custom security configuration(s) in preparation for Spring Security 6.0. We have upgraded our out-of-the-box security configurations to help in this migration.

note

We recommend using your own custom security configuration(s) and referring to the out-of-the-box security configuration provided only as a sample.

The default security users and roles have not changed, only the way we implement the security. We have done so by making the following changes:

Stop Using WebSecurityConfigurerAdapter

We have replaced instances of WebSecurityConfigurerAdapter with SecurityFilterChain beans.

Use the new requestMatchers methods

In Authorize Http Requests, we have replaced invocations of http.authorizeHttpRequests((authz) -> authz.antMatchers(...)) with http.authorizeHttpRequests((authz) -> authz.requestMatchers(...)).

Use the new securityMatchers methods

We have replaced invocations of http.antMatchers(...) with http.securityMatchers(...).

As an example of the previous changes, the configuration for accessing the endpoint which exposes the JWT token changed from:

@Configuration
@Order(1)
public static abstract class AJwtSecurityConfigurer extends WebSecurityConfigurerAdapter {

   @Autowired
   protected ApplicationContext context;

   @Autowired
   @Qualifier(BASIC_AUTH_BEAN_NAME)
   protected AuthenticationEntryPoint authenticationEntryPoint;

   @Override
   protected void configure(HttpSecurity http) throws Exception {
      http
              .antMatcher(JwtRestServiceConfig.REST_API_URL_PREFIX + "/**")
              // As of Spring Security 4.0, CSRF protection is enabled by default.
              .csrf().disable()
              // Configure CORS
              .cors().and()
              .authorizeRequests()
              .antMatchers("/**").hasAnyAuthority(ROLE_USER)
              .and()
              .httpBasic().authenticationEntryPoint(authenticationEntryPoint);
   }
}

to

@Bean
@Order(1)
public SecurityFilterChain jwtSecurityFilterChain(HttpSecurity http,ApplicationContext applicationContext){
final AuthenticationEntryPoint basicAuthenticationEntryPoint = applicationContext.getBean(BASIC_AUTH_BEAN_NAME,AuthenticationEntryPoint.class);
        return http
            // As of Spring Security 4.0, CSRF protection is enabled by default.
            .csrf(AbstractHttpConfigurer::disable)
            // Configure CORS
            .cors().and()
            .securityMatcher(url(JwtRestServiceConfig.REST_API_URL_PREFIX,WILDCARD))
            .authorizeHttpRequests(
                auth->auth.requestMatchers(HttpMethod.OPTIONS,url(WILDCARD))
                .permitAll()
                .anyRequest()
                .hasAnyAuthority(ROLE_USER))
            .httpBasic(basic->basic.authenticationEntryPoint(basicAuthenticationEntryPoint))
            .build();
        }

IPnLExplainFormulaProvider consistency cleanup

A new getShiftFromMDFormula function has been added to the IPnLExplainFormulaProvider, used to transform a couple of market data into a shift. It returns a lambda function (double quoteT, double quoteTMinus1) -> shift. The PnLExplainFormulaProvider implementation has been cleaned up to reduce the cases: the getPnlExplainFormula implementation has been replaced with pnlExplainFormula = (sensitivity, quoteT, quoteTMinus1) -> vaRExplainFormula.applyAsDouble(sensitivity, shiftFormula.applyAsDouble(quoteT, quoteTMinus1))

This bean returns null instead of (...) -> 0.0 when no formula has been found, to avoid printing out an incorrect null PnL.

Removal of ActivePivotRemotingServicesConfig

  • The import of ActivePivotRemotingServicesConfig has been removed from the configuration class MarketRiskConfig.
  • The following antMatchers have been rmoved from the security configuration file SecurityConfig:
    .antMatchers(ID_GENERATOR_REMOTING_SERVICE + "/**").hasAnyAuthority(ROLE_USER, ROLE_TECH)
    .antMatchers(LONG_POLLING_REMOTING_SERVICE + "/**").hasAnyAuthority(ROLE_USER, ROLE_TECH)
    .antMatchers(LICENSING_REMOTING_SERVICE + "/**").hasAnyAuthority(ROLE_USER, ROLE_TECH)
    

Integration tests

In the mr-application-tests module, the following changes have been made in the file used for integration tests:

  • The files present in the folder test-bookmarks/07 - Aggregate Taylor VaR have been updated to reflect the changes in the Taylor VaR measure numbers introduced by the addition of the Taylor VaR measures.
  • The files present in the folder test-bookmarks-combined/03 - Taylor VaR have been updated to reflect the changes in the Taylor VaR measure numbers introduced by the addition of the Taylor VaR measures.
  • The folder test-bookmarks/08 - Market Shifts Statistics has been renamed to test-bookmarks/09 - Market Shifts Statistics and its content has been changed to add queries for more sensitivity types than just delta.
  • The folder test-bookmarks/08 - Volga Taylor VaR has been created to test Volga Taylor VaR measures
  • The following files have been created to test the statistical in the market data cube:
    • test-bookmarks/MarketDataCube/shiftStats.query
    • test-bookmarks/MarketDataCube/shiftStats.csv
    • test-bookmarks-combined/MarketDataCube/shiftStats.query
    • test-bookmarks-combined/MarketDataCube/shiftStats.csv