Skip to content

Conversation

@regnosys-prod-user
Copy link
Collaborator

No description provided.

@regnosys-prod-user regnosys-prod-user requested a review from a team as a code owner September 22, 2025 10:38
@regnosys-prod-user
Copy link
Collaborator Author

CDM Party Model - Legal Entity and Party Refactor

Background

The current CDM party model has been updated to fix structural inconsistencies and missing elements. In the previous design, the LegalEntity and Party models contained overlapping structures but were defined separately, which caused duplication and inconsistency. In addition, the LegalEntity type was incomplete.

This release unifies both representations by making Party an extension of legal entities, reusing their core information and ensuring a consistent approach. It also introduces new dedicated types, such as Organisation and LegalPerson, to make the party model more consistent and precise.

Additionally, the model lacked support for distinguishing between natural persons acting as principals and those acting as agents of an organisation. This release strengthens the design by making this distinction clear and consistent.

What is being released?

Foundational Types

New types have been created or refactored, conforming the base concepts used in the model:

  • LegalEntity: Updated to represent a person or an organisations independent of any trade through its identifier, name, and contactInformation.

  • Organisation: Extends LegalEntity to represent a company, institution, or association that can participate in a trade, including its associated agents and business units.

  • LegalPerson: Type that represents either a natural person or an organisation, representing individuals or organisations that can enter into and be bound by trade-related obligations.

  • Party: Updated to specify a trade participant with a defined role from PartyRoleEnum, linking to a legalPerson and optionally including an account.

Identifiers and Enums

The model has been updated to provide a consistent approach for party and entity identifiers, which are now both represented by the following types:

  • EntityIdentifier: New type created to contain an identifier and its source.
  • EntityIdentifierTypeEnum: New enum created to replace PartyIdentifierTypeEnum, expanded to include the values RED and CountryCode.

Deprecated Types and Replacements

The types above have been deprecated and replaced to ensure consistency:

  • PartyIdentifier: Deprecated and replaced by EntityIdentifier.
  • PartyIdentifierTypeEnum: Deprecated and replaced by EntityIdentifierTypeEnum.
  • PartyRole: Deprecated and replaced by the refactored Party type.

Review Directions

Changes can be reviewed in PR: #4043

Note

This comment was generated via Rosetta.

@regnosys-prod-user regnosys-prod-user added the Rosetta Pull requests which can be viewed in Rosetta label Sep 22, 2025
@netlify
Copy link

netlify bot commented Sep 22, 2025

Deploy Preview for finos-cdm ready!

Name Link
🔨 Latest commit 68f6911
🔍 Latest deploy log https://app.netlify.com/projects/finos-cdm/deploys/68de561dc1cfe800085120ae
😎 Deploy Preview https://deploy-preview-4043--finos-cdm.netlify.app
📱 Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.

To edit notification comments on pull requests, go to your Netlify project configuration.

@gtarres
Copy link
Contributor

gtarres commented Sep 22, 2025

This PR is not complete yet. It currently contains the first commit with structural changes to the types related to party representation. A second commit will follow to fix and update the references in the model.

Please note that the build will be broken until those updates are applied.

@gtarres
Copy link
Contributor

gtarres commented Sep 22, 2025

This PR solves ISSUE #3319

@regnosys-prod-user regnosys-prod-user removed the Rosetta Pull requests which can be viewed in Rosetta label Sep 29, 2025
@regnosys-prod-user
Copy link
Collaborator Author

What is being released?

Updated references and mappings

Note

This comment was generated via Rosetta.

@regnosys-prod-user regnosys-prod-user added the Rosetta Pull requests which can be viewed in Rosetta label Sep 29, 2025
@gtarres
Copy link
Contributor

gtarres commented Sep 29, 2025

@CDM-ReleaseManagement-OT @lolabeis contributed the refactor to the party types, and, in a second commit, the references as well as their mappings.

We haven’t been able to test them because the build fails as party mappers are failing - probably because the structure of the types have changed and need to have the extractions updated to the new paths.

The mappers that fail are the following ones:

PartyMappingHelper.java  
ORECounterpartyMappingProcessor.java  
NovationInstructionMappingProcessor.java  
UmbrellaAgreementEntityMappingProcessor.java  
FpmlIrd8Impl.java  
AgreementTermsPartyMappingProcessor.java  
FISMapperMappingProcessor.java  
ContactElectionMappingProcessor.java  
DocumentationHelper.java  
PartyRoleMappingProcessor.java  
DemandsAndNoticesMappingProcessor.java  
ContractualPartyMappingProcessor.java  
RelatedPartyRoleMappingProcessor.java  

Do you want us to fix them?

@lolabeis lolabeis linked an issue Oct 1, 2025 that may be closed by this pull request
@lolabeis
Copy link
Contributor

lolabeis commented Oct 1, 2025

Do you want us to fix them?

Yes, but better to wait until your changes (ex-mappings) have all been confirmed.
Also, both "old" (synonyms) and "new" (functions) mappings will need to be upgraded - until such point when we retire the old ones as per #4030, that is.

@gtarres
Copy link
Contributor

gtarres commented Oct 2, 2025

Yes, but better to wait until the changes (ex-mappings) have all been confirmed.

@lolabeis thanks for the reply. I just wanted to check which changes you are referring to. Are there any recent or upcoming updates to old mappings that might affect us?

@regnosys-prod-user regnosys-prod-user removed the Rosetta Pull requests which can be viewed in Rosetta label Oct 2, 2025
@regnosys-prod-user
Copy link
Collaborator Author

What is being released?

Update account and ancillaryEnity types

Note

This comment was generated via Rosetta.

@regnosys-prod-user regnosys-prod-user added the Rosetta Pull requests which can be viewed in Rosetta label Oct 2, 2025
@lolabeis
Copy link
Contributor

lolabeis commented Oct 2, 2025

@gtarres

I just wanted to check which changes you are referring to.

I was referring to your model changes in this PR, I adjusted my wording above to make it clear ☝️. It's best to work on mappings at the end.

@lolabeis
Copy link
Contributor

@gtarres I've now had a look at your PR.

Before sending detailed review comments, I wanted to ask about the discrepancy between the latest spreadsheet analysis LegalEntity-Party-Proposal-updated-Sept2025.xlsx and what has been built - For example:

  • partyReference in Counterparty and AncillaryParty uses LegalPerson instead of Party as per analysis

(There are many more instances where Party has been substituted for LegalPerson)

Is there a reason for the design change? 🙏

@gtarres
Copy link
Contributor

gtarres commented Oct 16, 2025

@lolabeis thanks for taking a look. The reason of the change from Party to LegalPerson was discussed in this issue comment. We agreed to keep the role within Party so that all current Party attributes would be changed to LegalPerson and the ones with PartyRole to Party. Please, let me know if I missed anything.

Extraction from #3319 (comment) :

image

Also, I have updated the spreadsheet shared in the last issue comment, since it wasn't the final version reflecting this update. Apologies for that. Attaching it here too:

LegalEntity-Party-Proposal-updated-Sept2025_v2.xlsx

@lolabeis
Copy link
Contributor

Hi @gtarres Thanks for your response.

That's quite a radical take, but on reflection it's a good one because it keeps with the change's intent. Effectively it removes a lot of occurrences of the "Party" type in the model, and leaves only those where a role is being specified. One important consequence is that the corresponding attributes should also be renamed to scrub out the word "party".

Please have a look at and revert on my comments on the spreadsheet (shared separately). I suggest to publish it back onto the issue once we have the final version.

@gtarres
Copy link
Contributor

gtarres commented Oct 20, 2025

Hi @lolabeis thank you for the clarification. To confirm, should the attribute name updates be included in a new commit of this PR?
If so, I’d need to upgrade my workspace, but I'm unable to do it from Rosetta due to conflicts with the most recent versions. Would it be acceptable to push the changes from the old version (7dev.42)? If not, which procedure should we follow?

Also, is there an estimated date for the release of the synonyms deprecation? I’m asking to prevent any potential impacts this could have on this branch and to reassess whether the mapper fixes are really necessary. Thanks in advance,

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Rosetta Pull requests which can be viewed in Rosetta

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Entity Identifier Type

3 participants