...
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. MongoDBEach 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.
Authentication Corporate Identity Provider: In the current state, each CDCM Space communicates with its own set of authentication providers. However, this will change in the future as the CDCM Space Admin Application takes over this role.
CDCM Space Admin Application: While the space administration is presently a part of the main CDCM application, there are plans to externalize this function. The Admin Application will become a standalone interface for managing the CDCM Spaces and will also handle interactions with Authentication Providers.
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