/
Architecture

Architecture

CDCM Architecture.jpg

 

  • CDCM (Cross Domain Config Management): A multi-tenant application that manages items across multiple domains. It is designed for scalability and can cater to various clients or users within separate domains.

  • CDCM Spaces: These are the core components of the CDCM system. Each space is an isolated tenant environment containing all necessary data and configurations for user authentication and authorization. The design implies that each space is intended to operate independently within the broader CDCM application. Each uses a unique Mongo Database instance

  • MongoDatabase: Functions as the data storage layer, with each CDCM Space having a separate database within MongoDB. This segregation ensures data isolation and integrity across different tenants.

  • Corporate Identity Provider: CDCM is authenticated using the existing corporate identify provider which also provides a list of CDCM roles for the authenticated user.

Note: For new users, it’s important to understand that the CDCM system is built for flexibility in managing diverse configurations and data across different domains. Each tenant, or space, is self-contained with its own database and authentication mechanisms.

The future state of the system will represent a more centralized administration model, with the CDCM Space Admin Application simplifying the management of individual spaces and enhancing the system's overall security framework.

Overview of the Technical Architecture

  • Backend Service:

    • Implemented using Java and Spring Boot.

    • Exposes a comprehensive REST API to:

      • Support the Angular front-end client interface.

      • Allow direct REST-based interaction for managing units, configurations, and related data.

  • Database:

    • Utilizes MongoDB as the primary data store.

    • Offers enhanced search capabilities when deployed with MongoDB Atlas.

  • Deployment:

    • Packaged as a Docker container for simplified distribution and deployment.

    • Runs on Kubernetes or OpenShift environments, ensuring scalability and reliability.

  • API Documentation:

    • Provides a Swagger UI endpoint, allowing users to explore the API, understand request/response formats, and interact with the service’s capabilities.

    • After deployment the api documentation can be found under <cdcm-url>/swagger-ui/index.html