This project is a utility tool for dynamically generating Common Domain ModelTM (CDM) objects using a visual UI builder which can then be reviewed.
The tool provides functionality for navigating the CDMTM starting at a root type and traversing its nodes (attributes) to build up an object visually in the user interface.
The version of the CDMTM used is fixed at build time in the model file ./ui/src/app/modules/builder/services/builder-api.model.ts.
The Common Domain ModelTM is a registered trademark of FINOS. For more information please visit https://cdm.finos.org/
To start the web-based user interface locally, navigate to the ./ui folder and run
npm ci
npm start
A use case for the Object Builder is the selection of Eligible Collateral Schedules.
There is an npm
command that is set up to update to the latest model vesion. The command assumes that mvn
and java
are installed.
Steps:
- Run the command
cd ui && npm run update-model
- Check the file
ui/src/app/modules/builder/services/builder-api.model.ts
is updated. - Create a PR, Review and Merge.
To update the version of the model used by this tool execute the Java utility.
Steps:
- Update the
finos.cdm.version
property in the pom.xml file to match the version of the cdm - Update the
rosetta.dsl.version
property in the pom.xml to the DSL version used in the CDM (See pom.xml in the cdm project to get the correct version) - Build the set up tool using
mvn
cd setup
mvn clean install
- Run the executable jar file - this will update the
builder-api.model.ts
file to support the given cdm version.
java -jar target/object-builder-0.0.0.master.jar ../ui/src/app/modules/builder/services/builder-api.model.ts org.finos.cdm cdm-java
- Commit the
builder-api.model.ts
file in a new PR.
Example:
For any questions, bugs or feature requests please open an issue For anything else please send an email to [email protected].
To submit a contribution:
- Fork it (https://github.com/finos/cdm-object-builder/fork)
- Create your feature branch (
git checkout -b feature/fooBar
) - Read our contribution guidelines and Community Code of Conduct
- Commit your changes (
git commit -am 'Add some fooBar'
) - Push to the branch (
git push origin feature/fooBar
) - Create a new Pull Request
NOTE: Commits and pull requests to FINOS repositories will only be accepted from those contributors with an active, executed Individual Contributor License Agreement (ICLA) with FINOS OR who are covered under an existing and active Corporate Contribution License Agreement (CCLA) executed with FINOS. Commits from individuals not covered under an ICLA or CCLA will be flagged and blocked by the FINOS Clabot tool (or EasyCLA). Please note that some CCLAs require individuals/employees to be explicitly named on the CCLA.
Need an ICLA? Unsure if you are covered under an existing CCLA? Email [email protected]
Copyright 2022 ISDA [email protected]
Distributed under the Apache License, Version 2.0.
SPDX-License-Identifier: Apache-2.0