Skip to content

Releases: finos/common-domain-model

8.0.0-dev.4

Choose a tag to compare

@ReleaseManagement-BP ReleaseManagement-BP released this 21 Aug 15:56
917ac5e

Amending ingestion mappings - Commodity Swap was being incorrectly mapped

Background

Mapping Price Schedules for Commodity Swap to the correct values

What is being released?

changes to following functions to remove priceSubType and changing priceType to AssetPrice: MapCommmodityFixedPriceToPriceSchedule MapCommmodityFixedPriceScheduleToPriceSchedule

Review Directions

Changes can be reviewed in PR: #5025

Product Qualification - Zero Coupon Enhancement

Background

The Qualify_Transaction_ZeroCoupon function only recognises zero-coupon transactions when the payment frequency is explicitly represented as 1T (term). Transactions where the payment frequency equals the full contract duration are not identified as Zero Coupon, although they represent the same economic outcome.

What is being released?

Extended the qualification logic in to Qualify_Transaction_ZeroCoupon recognise alternative representations of zero-coupon transactions by adding a condition where the payment frequency corresponds to the duration between the effective date and the maturity date. The following new common functions have been introduced to handle frequency-to-day conversions () and dates operations required for the matching logic: - AddPeriod - PeriodCalculation Finally, it has been adjusted the input parameters for the AuxiliarEffectiveDate and AuxiliarTerminationDate to take the EconomicTerms instead of the Trade.

Review Directions

Changes can be reviewed in PR: #4989

Infrastructure - Dependency Update

Version updates include:

  • DSL 10.4.0 - Add CVE Scanning Schedule. See DSL release notes: 10.4.0
  • DSL 10.5.0 - Fix invalid Renovate config: remove redundant * from matchPackageNames. See DSL release notes: 10.5.0
  • DSL 10.6.0 - Namespaces produced by a tool are now marked, and hand edits to them are reported in review.. See DSL release notes: 10.6.0
  • DSL 10.7.0 - Generate a LabelProvider per labelled type. See DSL release notes: 10.7.0
  • Rune-Fpml 3.5.0 - DSL/bundle updates See release notes: 3.5.0

Review Directions
Changes can be reviewed in PR: #5053

Instruction Composition Reset Step 3: Adjust the period

Background

Building upon the functional milestones introduced in the previous release for Step 2 (#4379), the CDM Smart Contract Taskforce is advancing the state-machine execution capabilities within the Instruction Composition Framework. This release delivers the components required to execute Step 3 (Adjust Calculation Period) of the 8-step Interest Rate Reset processing workflow. By introducing this phase, the model can now deterministically apply calendar adjustments and financial business day conventions to unadjusted schedules. For further information, see issue #4389.

What is being released?

This release provides the core business day alignment logic, holiday calendar resolution hooks, and state accumulator mutations necessary to transition an unadjusted calculation period into its adjusted lifecycle state. It incorporates payload bindings for Step 3 into the reusable instruction containers and expands the historical overlay tracking mechanisms to capture the final adjusted period bounds.

Functions

Changes in the cdm.base.datetime namespace:

  • AdjustDateToBusinessDayConvention: Core mapping function that routes an unadjusted date through a selected business day convention matrix when a calendar clash is detected.
  • ApplyFollowing: Recursive utility evaluating calendar forward-shifts to find the next valid business day.
  • ApplyPreceding: Recursive utility evaluating calendar backward-shifts to find the previous valid business day.
  • ApplyModFollowing: Evaluation function ensuring forward-shifted dates do not cross month boundaries, defaulting to preceding lookbacks where necessary.

Changes in the cdm.event.instructioncomposition.reset namespace:

  • Create_AdjustPeriodInstruction: An operational mapping function that compiles adjusted starting and ending coordinates for a calculation period using defined business conventions and holiday datasets.
  • GetNonBusinessDates: An externalized code-implementation hook to query and extract non-business dates from financial calendar providers using either distinct date vectors or defined boundary periods.

Changes in the cdm.event.instructioncomposition namespace:

  • UpdateResetCompositionState: (Updated) Expanded to implement "Step 3" overlay logic. It conditionally captures the incoming adjustPeriod payload to update the active adjustedCalculationPeriod parameter.

Types and Choices

Changes in the cdm.event.instructioncomposition namespace:

  • CompositionStepInstructions (Updated): Expanded to include adjustPeriod, allowing the global step orchestrator to wrap period adjustment data structures.

Changes in the cdm.event.instructioncomposition.reset namespace:

  • AdjustPeriodInstruction: Introduced as the official type for Step 3.
  • ResetInstructionState (Updated): Expanded to hold its third phase state variable (adjustedCalculationPeriod), allowing the cumulative workflow to track adjusted parameters over its lifecycle.

Review Directions

Navigate to the following paths to inspect the new models:

  • rosetta-source/src/main/rosetta/instructionComposition-type.rosetta: Review the updated CompositionStepInstructions container to verify the inclusion of the Step 3 instruction payload mapping.
  • rosetta-source/src/main/rosetta/instructionComposition-func.rosetta: Examine the updated field overlay logic inside UpdateResetCompositionState handling adjusted period state tracking.
  • rosetta-source/src/main/rosetta/instructionComposition-reset-type.rosetta: Inspect the new AdjustPeriodInstruction type structure and the updated tracking properties embedded within ResetInstructionState.
  • rosetta-source/src/main/rosetta/instructionComposition-reset-func.rosetta: Inspect the schedule compilation logic inside Create_AdjustPeriodInstruction and the GetNonBusinessDates interface.

6.25.0

Choose a tag to compare

@ReleaseManagement-BP ReleaseManagement-BP released this 21 Aug 10:39
084a931

Infrastructure - Dependency and CVE Update

What is being released?

This release fixed the “Common Vulnerabilities and Exposures” (CVE) scan, for further details see #4966. The following libraries with high-severity CVEs have been updated:

  • jackson-databind-2.17.1CVE-2026-54512 (8.1), CVE-2026-54513 (8.1)
  • logback-core-1.4.12CVE-2023-6481 (7.5), CVE-2025-11226 (7.3), CVE-2026-13006 (7.0)
  • plexus-utils-3.6.0CVE-2025-67030 (8.8, Zip Slip)
  • plus two Eclipse/Xtext CPE false positives (CVE-2020-27225, CVE-2019-10249).

Review Directions

Product Qualification - Zero Coupon Enhancement

Background

The Qualify_Transaction_ZeroCoupon function only recognises zero-coupon transactions when the payment frequency is explicitly represented as 1T (term). Transactions where the payment frequency equals the full contract duration are not identified as Zero Coupon, although they represent the same economic outcome.

What is being released?

Extended the qualification logic in to Qualify_Transaction_ZeroCoupon recognise alternative representations of zero-coupon transactions by adding a condition where the payment frequency corresponds to the duration between the effective date and the maturity date. The following new common functions have been introduced to handle frequency-to-day conversions () and dates operations required for the matching logic: - AddPeriod - PeriodCalculation Finally, it has been adjusted the input parameters for the AuxiliarEffectiveDate and AuxiliarTerminationDate to take the EconomicTerms instead of the Trade.

Review Directions

Changes can be reviewed in PR: #4960

CDM Model: FpML executionNotification ingestion mapping to CDM ExecutionInstruction

What is being released

An ingestion mapping has been added for the FpML executionNotification message so that its Trade element is now mapped onto a CDM ExecutionInstruction, in place of the previous mapping which produced a ContractFormationInstruction. This aligns the outcome of ingesting an executionNotification with the semantics of a newly executed trade, rather than a contract formation event that requires a pre-existing trade state.

To support this, a new enumerated value Execution has been added to the EventIntentEnum in the cdm.event.common namespace, with the description "The intent is to execute a new trade." This new intent is used by the ingestion functions to identify that the incoming FpML message represents a new trade execution.

The following ingestion functions have been updated in the cdm.ingest.fpml namespace:

  • MapExecutionNotificationToWorkflowStep (in ingest-fpml-confirmation-message-func.rosetta) — now remaps the resolved FpML intent to Execution when the raw intent is ContractFormation or absent, so that executionNotification messages are routed through the new execution path.
  • MapWorkflowStep (in ingest-fpml-confirmation-workflowstep-func.rosetta) — when intent = Execution, the workflow step's Instruction is now built with an execution PrimitiveInstruction (and no before TradeState), instead of the generic primitive instruction with a before state.
  • A new function MapTradeToExecutionInstruction has been added to map an FpML Trade (together with the party and quotation lists) directly to a CDM ExecutionInstruction, populating product, priceQuantity, counterparty, ancillaryParty, parties, partyRoles, executionDetails, tradeDate and tradeIdentifier.

Expected output JSON files for existing FpML confirmation and record-keeping samples that exercise executionNotification messages have been regenerated to reflect the new ExecutionInstruction-based output.

Review directions

In the CDM Portal open the Textual Browser, search for EventIntentEnum in the cdm.event.common namespace and observe the new Execution value. Then search for MapExecutionNotificationToWorkflowStep, MapWorkflowStep and MapTradeToExecutionInstruction in the cdm.ingest.fpml namespace to review the updated ingestion logic. Ingesting any of the updated FpML executionNotification sample files (e.g. pkg-ex01-pkge-execution-notification, pkg-ex55-execution-notification, msg-ex19-cds-execution-allocations) will now produce a WorkflowStep whose Instruction contains an execution PrimitiveInstruction rather than a contractFormation one.

Inspect Pull Request: #4928 and #5061

Inspect Issue: #4774

Adding Qualify_ForeignExchange_NDO function - To backport qualification function from CDM 7

Background

Qualify_ForeignExchange_NDO is missing from cdm 6

What is being released?

adding Qualify_ForeignExchange_NDO

Review Directions

Changes can be reviewed in PR: #5023

Populating ResolvedQuantity - Populating ResolvedQuantity with a secondary quantity

Background

In CDM 7+ we populate a derived quantity to allow for us to access both quantity without needing to check outside of the settlementPayout to bring these two back in sync we have decided to populated ResolvedQuantity quantity allowing us to have the other Quantity populate directly in the payout

What is being released?

adding total to QuantitySchedule and adding ingest mappings for fx products to Populate the ResolvedQuantity

Review Directions

Changes can be reviewed in PR: #5054

7.1.0

Choose a tag to compare

@ReleaseManagement-BP ReleaseManagement-BP released this 10 Aug 15:44
00f5f36

Infrastructure - Dependency and CVE Update

What is being released?

This release fixed the “Common Vulnerabilities and Exposures” (CVE) scan, for further details see #4966. The following libraries with high-severity CVEs have been updated:

  • jackson-databind-2.17.1CVE-2026-54512 (8.1), CVE-2026-54513 (8.1)
  • logback-core-1.4.12CVE-2023-6481 (7.5), CVE-2025-11226 (7.3), CVE-2026-13006 (7.0)
  • plexus-utils-3.6.0CVE-2025-67030 (8.8, Zip Slip)
  • plus two Eclipse/Xtext CPE false positives (CVE-2020-27225, CVE-2019-10249).

Review Directions

Changes can be reviewed in PR: #5011

Background

This adds a defaultSerialisationFormat to the model config, setting RUNE_JSON as the default serialiser for the CDM.

What is being released?

  • rosetta-config.yml (renamed rune-config.yml) now sets defaultSerialisationFormat: RUNE_JSON under model:

Version updates include:

  • DSL 10.3.0 - adds default serialiser config support. See DSL release notes: 10.3.0

Review Directions

Changes are available for review in PR: #5037

Instruction Composition Reset Step 2

Background

Building upon the functional milestones introduced in the Phase 1 release (#4168), the CDM Smart Contract Taskforce is extending the state-machine execution capabilities within the Instruction Composition Framework. This release delivers the complete set of components required to execute Step 2 (Determine Unadjusted Calculation Period & Reset Date) of the 8-step Interest Rate Reset processing workflow. By introducing this phase, the model advances its stateful progression logic, enabling deterministic interpolation of unadjusted transactional schedules from raw product parameters. For further information, see issue #4379.

What is being released?

This release provides the structural payloads, operational transition logic, and state accumulator mutations required to calculate, route, and capture calculation period boundaries. It populates the reusable instruction containers with Step 2 payload bindings and completes the overlay handlers for this phase of the execution timeline.

Functions

Changes that can be found in the cdm.event.instructioncomposition.reset namespace:

  • Create_DetermineUnadjustedCalculationPeriodInstruction: An operational mapping function that evaluates baseline calculation period schedules alongside theoretical fixings to construct and export the structured unadjusted calculation period boundaries.
  • UpdateResetCompositionState: (Updated) Modified to implement the "Step 2" overlay logic. It conditionally checks for the presence of the determineUnadjustedCalculationPeriod payload, incrementally updating the active period parameters or preserving existing historical fields if absent.

Types and Choices

Changes that can be found in the cdm.event.instructioncomposition namespace:

  • CompositionStepInstructions (Updated): Expanded to include determineUnadjustedCalculationPeriod as an active data payload property, allowing the global step orchestrator to wrap period determination data structures.

Changes that can be found in the cdm.event.instructioncomposition.reset namespace:

  • DetermineUnadjustedCalculationPeriodInstruction: Introduced to act as the official payload signature for Step 2, carrying the calculated CalculationPeriodBase coordinates and the accompanying unadjusted reset date.
  • ResetInstructionState: (Updated) Expanded to hold its second active phase state variables (unadjustedCalculationPeriod and unadjustedResetDate), allowing the cumulative workflow "Golden Record" to track schedule parameters over its lifecycle.

Review Directions

Navigate to the following paths to inspect the new models:

  • rosetta-source/src/main/rosetta/instructionComposition-type.rosetta: Review the updated CompositionStepInstructions container to verify the inclusion of the Step 2 instruction payload mapping.
  • rosetta-source/src/main/rosetta/instructionComposition-func.rosetta: Examine the updated field overlay logic inside UpdateResetCompositionState handling calculation period state tracking.
  • rosetta-source/src/main/rosetta/instructionComposition-reset-type.rosetta: Inspect the new DetermineUnadjustedCalculationPeriodInstruction type structure and the updated tracking properties embedded within ResetInstructionState.
  • rosetta-source/src/main/rosetta/instructionComposition-reset-func.rosetta: nspect the mathematical schedule compilation logic inside Create_DetermineUnadjustedCalculationPeriodInstruction.

Changes are available for review in PR: #5039

8.0.0-dev.3

Choose a tag to compare

@ReleaseManagement-BP ReleaseManagement-BP released this 07 Aug 11:31
dcaa995

Instruction Composition Reset Step 2

Background

Building upon the functional milestones introduced in the Phase 1 release (#4168), the CDM Smart Contract Taskforce is extending the state-machine execution capabilities within the Instruction Composition Framework. This release delivers the complete set of components required to execute Step 2 (Determine Unadjusted Calculation Period & Reset Date) of the 8-step Interest Rate Reset processing workflow. By introducing this phase, the model advances its stateful progression logic, enabling deterministic interpolation of unadjusted transactional schedules from raw product parameters. For further information, see issue #4379.

What is being released?

This release provides the structural payloads, operational transition logic, and state accumulator mutations required to calculate, route, and capture calculation period boundaries. It populates the reusable instruction containers with Step 2 payload bindings and completes the overlay handlers for this phase of the execution timeline.

Functions

Changes that can be found in the cdm.event.instructioncomposition.reset namespace:

  • Create_DetermineUnadjustedCalculationPeriodInstruction: An operational mapping function that evaluates baseline calculation period schedules alongside theoretical fixings to construct and export the structured unadjusted calculation period boundaries.
  • UpdateResetCompositionState: (Updated) Modified to implement the "Step 2" overlay logic. It conditionally checks for the presence of the determineUnadjustedCalculationPeriod payload, incrementally updating the active period parameters or preserving existing historical fields if absent.

Types and Choices

Changes that can be found in the cdm.event.instructioncomposition namespace:

  • CompositionStepInstructions (Updated): Expanded to include determineUnadjustedCalculationPeriod as an active data payload property, allowing the global step orchestrator to wrap period determination data structures.

Changes that can be found in the cdm.event.instructioncomposition.reset namespace:

  • DetermineUnadjustedCalculationPeriodInstruction: Introduced to act as the official payload signature for Step 2, carrying the calculated CalculationPeriodBase coordinates and the accompanying unadjusted reset date.
  • ResetInstructionState: (Updated) Expanded to hold its second active phase state variables (unadjustedCalculationPeriod and unadjustedResetDate), allowing the cumulative workflow "Golden Record" to track schedule parameters over its lifecycle.

Review Directions

Navigate to the following paths to inspect the new models:

  • rosetta-source/src/main/rosetta/instructionComposition-type.rosetta: Review the updated CompositionStepInstructions container to verify the inclusion of the Step 2 instruction payload mapping.
  • rosetta-source/src/main/rosetta/instructionComposition-func.rosetta: Examine the updated field overlay logic inside UpdateResetCompositionState handling calculation period state tracking.
  • rosetta-source/src/main/rosetta/instructionComposition-reset-type.rosetta: Inspect the new DetermineUnadjustedCalculationPeriodInstruction type structure and the updated tracking properties embedded within ResetInstructionState.
  • rosetta-source/src/main/rosetta/instructionComposition-reset-func.rosetta: nspect the mathematical schedule compilation logic inside Create_DetermineUnadjustedCalculationPeriodInstruction.

8.0.0-dev.2

Choose a tag to compare

@ReleaseManagement-BP ReleaseManagement-BP released this 21 Jul 14:17
22b7108

CDM Contribution Workflow & Feature/Task Update with Business Justification

Background

The CDM WG Workflow as a diagram was present on GitHub, however further detail has been added to make the individual steps clearer.

There has also been a need to add a Business Justification section to Features & Issues to illustrate the purpose, use case and WG the issue is applicable to

What is being released?

  • CDM-Contribution-Workflow under the GitHub documentation
  • Business Justification added to Features and Issue templates

Review Directions

Changes can be reviewed in PR: #4964

7.0.0

Choose a tag to compare

@ReleaseManagement-BP ReleaseManagement-BP released this 17 Jul 09:49
a6ffe77

CDM Version 7.0

CDM 7.0, a production release, consolidates over 130 individual upgrades and releases to the model made in the development environment over the last one year.

What is being released

The release includes changes to the CDM model itself (manifested in changes to .rosetta source files) together with enhancements to supporting tooling, sample data, documentation, ingestion frameworks, validation logic, and build infrastructure.

Key themes delivered in CDM 7.0 include:

  1. Moving from using synonym based mappings to functional ingestion mappings.
  2. Legal Agreement model expansion through migration of ISDA Foundations content and enhanced support for CSA, CTA, GMSLA and umbrella agreements.
  3. Smart Contracts Framework from the 2026 CDM roadmap
  4. Asset, Product and Observable model refactoring and harmonization.
  5. Significant Event Model enhancements, including transfer, reset, lifecycle, quantity change and workflow improvements.
  6. Securities Finance and Collateral model enhancements.
  7. Reference data and taxonomy support has been enhancements
  8. The upgrade from DSL 9 to DSL 10
  9. Infrastructure & Tooling
  10. Expanded sample data, visualizations and testing coverage.
  11. Serialization on CDM 7
  12. Python Version of CDM Available at PyPI

Each of the above is described in more detail below.

1. FpML Confirmation Ingestion Framework

A major focus of CDM 7 has been the continued development of the FpML Confirmation Ingestion Framework. This work expands the CDM's ability to transform FpML confirmations into native CDM representations across a broader range of asset classes and product types, while improving consistency, maintainability and alignment with market standards.

The release significantly increases ingestion coverage for Rates, Foreign Exchange, Credit, Equity and Commodity products, introduces support for additional transaction supplements and lifecycle events, and completes the transition away from legacy synonym-based ingestion approaches. The adoption of a flattened FpML model further simplifies mapping logic by aligning the generated model structure more closely with source FpML documents and improving the maintainability of ingestion mappings.

This has enabled CDM 7 to completely move away from Synonym based mappings to using Functional Ingestion Mapping. This allows anyone with knowledge of CDM to make changes to the model, opposed to only those with technical Java implementation experience

Individual releases include:

2. Legal Agreement & Documentation Model

CDM 7 substantially expands the legal agreement capabilities of the model through the incorporation of content migrated from ISDA Foundations and the continued development of agreement-specific representations. These enhancements strengthen the CDM's ability to digitally represent legal documentation, elections, negotiated provisions and contractual relationships across a range of industry-standard agreements.

The release introduces richer support for Credit Support Annexes (CSA), Credit Terms Annexes (CTA), GMSLA agreements, umbrella agreements and associated elections, while improving the representation of agreement metadata, valuation responsibilities and calculation agent provisions. Together, these changes move the CDM closer to providing a comprehensive and interoperable representation of legal agreements alongside transaction and lifecycle data.

Key releases include:

3. Smart Contracts Framework

CDM 7 introduces the first major components of the Smart Contracts Framework through the development of the Instruction Composition Framework and associated lifecycle execution enhancements. While the CDM has historically provided a declarative representation of contractual terms, events and state transitions, this work begins to establish a standardized framework for representing how contractual processes are operationally executed. The objective is to provide a deterministic, auditable and reusable mechanism for modelling multi-step lifecycle workflows directly within the CDM, reducing reliance on proprietary procedural implementations and improving consistency across market participants.

The initial implementation focuses on interest rate reset processing and introduces a state-machine based execution framework capable of tracking workflow progress, accumulating intermediate state and determining the next operational step in a lifecycle process. Supporting enhancements to the Event Model refactor reset calculations so that observations, rate determinations and audit information are evaluated upstream and explicitly captured within lifecycle instructions before execution occurs. Together, these changes establish the foundation for future smart contract and workflow automation capabilities within the CDM by introducing standardised instruction composition, state accumulation and deterministic lifecycle execution patterns.

Individual releases include:

4. Asset, Product & Observable Model

CDM 7 continues the product ...

Read more

7.0.0-dev.132

Choose a tag to compare

@ReleaseManagement-BP ReleaseManagement-BP released this 14 Jul 14:59
3134965

FpML Ingestion - Functional Mappings for LinkId

Background

This change migrates a Java custom mapper LinkIdMappingProcessor to Rune functional mappings

What is being released?

  • Modification to the MapPartyTradeIdentifierToTradeIdentifierList to map LinkId for trade identifiers.
  • Modification to MapEventIdentifier to map LinkId for event identifiers

Review Directions

Changes can be reviewed in PR: #4867

Settlement Centre Refactoring and Party-Based Settlement Centre Support

Background

Prior versions of the CDM SettlementBase included an enum, SettlementCentre that only supported two enums using a separate enum, SettlementCentreEnum. SettlementCentre is primarily used by securities and assets like bonds and equities. Once a settlement centre is defined at issuance, it does not change except by corporate action. Settlement centres should be defined using a party reference that includes and LEI, and it's also necessary to separate settlement centres for security and cash.

What is being released?

This PR refactored SettlementBase by adding new attributes, securitySettlementCentre and cashSettlementCentre, both are AssetAncillaryPartyRoleEnum with new enums values. Use of these attributes requires adding the settlement centre party to the asset.

Review Directions

Changes can be reviewed in PR: #4914

PriceQuantity – Restricting Quantity Cardinality and Introducing Derived Quantity

Background

The quantity attribute on PriceQuantity previously had a cardinality of (0..*), allowing multiple quantities to be associated with a single price.

This made it difficult to distinguish the primary trade quantity from a quantity derived through the application of the price. In some cases, that distinction could only be determined by inspecting the surrounding tradeLot structure rather than directly from the associated payout.

This release introduces a clearer separation between the quantity to which a price applies and the resulting quantity derived from that price.

What is being released?

The following model changes are included:

  • The cardinality of PriceQuantity.quantity has been reduced from (0..*) to (0..1).

  • A new optional derivedQuantity attribute has been added to PriceSchedule. This represents a quantity derived from applying the price to the associated trade quantity.

  • QuantitySchedule now extends MeasureBase and includes:

    • an optional frequency;
    • an optional total, representing the aggregate quantity across the schedule.
  • A TotalQuantity condition requires frequency to be populated when total is specified.

  • NonNegativeQuantitySchedule overrides total as a NonNegativeSchedule.

  • Price and quantity unit handling has been updated to maintain consistency between the priced unit and the associated quantity.

  • The PriceQuantityTriangulation logic and related CDM functions have been updated to support the revised structure.

  • FpML-to-CDM ingestion mappings, expected outputs, documentation, and tests have been updated across the affected asset classes.

Important

Reducing the cardinality of PriceQuantity.quantity is a breaking model change. Implementations that currently populate multiple quantities within a single PriceQuantity must be updated to represent the primary quantity through quantity and any calculated result through PriceSchedule.derivedQuantity, or to use separate PriceQuantity instances where appropriate.

Review Directions

Changes can be reviewed in PR: #4915

Documentation - Rune JSON Serialization Guide

Rune JSON serialization was enabled in version 7.0.0-dev.121,. For further details, see GitHub issue: #4746.

What is being released

This update includes:

  • A new page for the CDM website "Next" version describing Serialization
  • Updates the common-domain-model.md file to link to the new Serialization page
  • Updates the sidebars.js to include the new Serialization page
  • Updates the home.mdx file to include the new Serialization page
  • Updates package.json and package-lock.json to include the docusaurus mermaid theme (version 3.9.2 which is the current website docusaurus version)
  • Updates docusaurus.config.js to allow mermaid markdown and include the mermaid theme

Review Directions

Changes can be reviewed in PR: #4935

Infrastructure - Dependency Update

Version updates include:

  • DSL 10.1.0 - Preserve alias identity in as and switch operations. See DSL release notes: 10.1.0
  • DSL 10.2.0 - Fail the read-only workflow on a missing config and point [externalConfig] errors at the annotation. See DSL release notes: 10.2.0
  • DSL 10.2.1 - Bump jackson, undici and linkify-it to patch high-severity CVEs. See DSL release notes: 10.2.1
  • DSL 10.2.2 - Fix NPE when reading an attribute overridden to zero cardinality. See DSL release notes: 10.2.2

Review Directions

Changes can be reviewed in PR: #4926 & #4948

5.40.0

Choose a tag to compare

@ReleaseManagement-BP ReleaseManagement-BP released this 09 Jul 14:59
8662e45

Infrastructure - Dependency Update

Background

The CDM infrastructure includes a feature for enumerations that allows them to be linked directly to an FpML or ISO coding scheme. By assigning the appropriate canonical URI to the enumeration, it can automatically stay in sync with updates to the underlying coding scheme.

What is being released?

The FpML Coding Scheme 2.26 was recently published, the changes to coding schemes can be viewed here. To keep in sync with the new published FpML Coding Scheme, the FloatingRateIndexEnum has been updated with the following values:

  • PHP_ORR_OIS_Compound

This release also updates the DSL and Bundle dependencies:

Version updates include:

  • DSL 9.84.0 - as operation. See DSL release notes: 9.84.0
  • Bundle 11.122.2 - Update FpML coding scheme to 2.26

Review Directions

Changes can be reviewed in PR: #4925

function Create_ProposedWorkflowStep - propagate action attribute to proposedWorkflowStep

Background

The function cdm.event.workflow.Create_ProposedWorkflowStep has the input parameter action, which is not propagated to the proposedWorkflowStep WorkflowStep action attribute

What is being released?

Add the action mapping to proposedWorkflowStep

Review Directions

Changes can be reviewed in PR: #4830

6.24.0

Choose a tag to compare

@ReleaseManagement-BP ReleaseManagement-BP released this 17 Jul 17:38
cd8981d

Infrastructure - Dependency Update

Background

The CDM infrastructure includes a feature for enumerations that allows them to be linked directly to an FpML or ISO coding scheme. By assigning the appropriate canonical URI to the enumeration, it can automatically stay in sync with updates to the underlying coding scheme.

What is being released?

The FpML Coding Scheme 2.26 was recently published, the changes to coding schemes can be viewed here. To keep in sync with the new published FpML Coding Scheme, the FloatingRateIndexEnum has been updated with the following values:

  • PHP_ORR_OIS_Compound

This release also updates the DSL and Bundle dependencies:

Version updates include:

  • DSL 9.84.0 - as operation. See DSL release notes: 9.84.0
  • Bundle 11.122.2 - Update FpML coding scheme to 2.26

Review Directions

Changes can be reviewed in PR: #4924

Ingest - Mapping FpML LinkId to TradeIdentifier and EventIdentifier

Background

Ingest functions for FpML Confirmation to CDM are available in the CDM 7-dev version for beta testing by the CDM community. There are still gaps in the original synonym mapping and ingest functional mapping which will be addressed in this PR.

What is being released?

Added new functional mapping for FpML linkId fields:

  • MapPartyTradeIdentifierToTradeIdentifierList — maps linkId entries with the ESMA report tracking number scheme (esma-report-tracking-number) into assignedIdentifier on TradeIdentifier
  • MapEventIdentifier — extended to accept fpmlPartyTradeIdentifier and maps linkId entries matching ESMA PTRR schemes (esma-ptrr-compression, esma-ptrr-portfolio-rebalancing, esma-ptrr-margin-management) into eventIdentifier
  • Updated expectations for custom-basket-linkId-ptrr-comp and custom-basket-linkId-rtn test cases to reflect the newly mapped LinkId values

Review Directions

Changes can be reviewed in PR: #4875

7.0.0-dev.131

Choose a tag to compare

@ReleaseManagement-BP ReleaseManagement-BP released this 02 Jul 15:14
9be336d

Instruction Composition Framework Functions

Background

Building upon the structural orchestration engine introduced in the foundational Instruction Composition Framework release (#4165), the CDM Smart Contract Taskforce is progressing with the functional implementation of workflow state machines. This release delivers the specific components necessary to execute Step 1 (Floating Rate Index & Trade Date collection) of the 8-step Interest Rate Reset processing lifecycle. By formalizing this execution pattern, the model transitions from a structural shell into a practical, stateful execution engine that deterministically processes transactional events. For further information, see issue #4168.

What is being released?

This release provides the structural types, functions, state wrappers, and enumerations required to extract, route, and store data elements for the initial phase of the Interest Rate Reset workflow. It populates the top-level orchestration types with specific execution instructions and implements the content layer for the underlying state-machine functions.

Functions

Changes that can be found in the cdm.event.instructioncomposition namespace:

  • NextCompositionStepToExecute: (Updated) Populated with operational execution logic that evaluates the total transaction history to determine the active workflow phase and return the targeted process-specific instruction set.

Changes that can be found in the cdm.event.instructioncomposition.reset namespace:

  • Create_CollectFloatingRateOptionInstruction: An operational mapping function that safely inspects an interest rate trade's InterestRatePayout floating leg, unwraps nested choice type structures, and extracts the underlying benchmark index name and trade date for the initial phase.
  • UpdateResetCompositionState: (Updated) Modified to implement the "Step 1" overlay logic. It conditionally checks for the presence of the collectFloatingRateOption payload, incrementally updating the cumulative state variables or preserving existing historical fields if absent.

Types and Choices

Changes that can be found in the cdm.event.instructioncomposition namespace:

  • CompositionStepInstructions (Updated): Expanded to include collectFloatingRateOption as a concrete data payload property, governed by a new one-of constraint (NonEmptyInstruction) to ensure structural validity when wrapping reusable workflow steps.

Changes that can be found in the cdm.event.instructioncomposition.reset namespace:

  • CollectFloatingRateOptionInstruction: Introduced to act as the official payload signature for Step 1, carrying the extracted FloatingRateIndexEnum and trade execution date.
  • ResetInstructionState: (Updated) Expanded to hold its first active phase state variables (floatingRateIndex and tradeDate), converting this object into a live data accumulator for downstream processing.
  • ResetInstructionSteps: (Updated) Completed to encapsulate and expose the specific process phase enumeration.
  • ResetInstructionCompositionStepsEnum: Defines the strictly sequenced 8-step execution path of an Interest Rate Reset lifecycle (from initial index collection through to calculation and final output generation).

Review Directions

Navigate to the following paths to inspect the new models:

  • rosetta-source/src/main/rosetta/instructionComposition-type.rosetta: Review the updated CompositionStepInstructions container and its NonEmptyInstruction structural condition.
  • rosetta-source/src/main/rosetta/instructionComposition-func.rosetta: Examine the state-machine logic routing inside UpdateResetCompositionState and the operational behavior of NextCompositionStepToExecute.
  • rosetta-source/src/main/rosetta/instructionComposition-reset-type.rosetta: Inspect the new data model payload CollectFloatingRateOptionInstruction, the updated fields inside ResetInstructionState, and the ResetInstructionSteps routing shell.
  • rosetta-source/src/main/rosetta/instructionComposition-reset-func.rosetta: Inspect the deep-choice extraction syntax within Create_CollectFloatingRateOptionInstruction designed to parse out benchmark index details safely.