/cdm-object-builder

Object Builder

Primary LanguageTypeScriptApache License 2.0Apache-2.0

FINOS - Incubating

CDM Object Builder

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/

Installation

To start the web-based user interface locally, navigate to the ./ui folder and run

npm ci
npm start 

Usage example

A use case for the Object Builder is the selection of Eligible Collateral Schedules.

Development setup for updating the CDM version

Basic Method

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:

  1. Run the command cd ui && npm run update-model
  2. Check the file ui/src/app/modules/builder/services/builder-api.model.ts is updated.
  3. Create a PR, Review and Merge.

Advanced setup

To update the version of the model used by this tool execute the Java utility.

Steps:

  1. Update the finos.cdm.version property in the pom.xml file to match the version of the cdm
  2. 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)
  3. Build the set up tool using mvn
cd setup
mvn clean install
  1. 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
  1. Commit the builder-api.model.ts file in a new PR.

Example:

2023-11-22 15 34 15 (1)

Roadmap

Contributing

For any questions, bugs or feature requests please open an issue For anything else please send an email to help@finos.org.

To submit a contribution:

  1. Fork it (https://github.com/finos/cdm-object-builder/fork)
  2. Create your feature branch (git checkout -b feature/fooBar)
  3. Read our contribution guidelines and Community Code of Conduct
  4. Commit your changes (git commit -am 'Add some fooBar')
  5. Push to the branch (git push origin feature/fooBar)
  6. 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 help@finos.org

License

Copyright 2022 ISDA isdalegal@isda.org

Distributed under the Apache License, Version 2.0.

SPDX-License-Identifier: Apache-2.0