QSCIM is a low-code platform that can integrate several identity repositories using the SCIM protocol/standard as the cornerstone to bring interoperability and agility in users' and groups’ provisioning and de-provisioning. It offers critical capabilities such as business rules validations and interceptors that invoke 3rd party APIs and components to enrich moving data across several user data stores, such as LDAP, Active Directory, SQL and No-SQL Databases, flat-files, CSV, spreadsheets, etc.
In addition, QSCIM middleware enables users to extend beyond basic connections by utilizing middleware to enhance data with additional layers of information, improving overall data quality and user experience. Workspaces are packaged within the application, providing isolated environments for configuring connectors, forms, and environment variables. Once configurations are complete, users can deploy Docker containers containing all necessary information.
QSCIM generates code primarily in JavaScript, utilizing NodeJS for its framework. It prioritizes user-friendly code maintenance and ease of updates.
QSCIM generates full application runtime for integrating your connectors. This generated application uses Node.js as the foundation and follows the Microservice Architecture design model.
The QSCIM Designer can create configurations and check the generated code. The QSCIM also supports GIT protocol to push the generated code to a repository according to your vendor choice (GitHub, GitLab, bitbucket etc.).
Once the code is pushed to git, you can use your DevSecOps solutions, such as Veracode and Synopsys, to verify our generated code according to your internal processes and guidelines.
Basic Architecture:
The following section will explore the main components and their capabilities.
Frontend:
QSCIM's front-end architecture was designed using NextJS, a robust framework for web applications based on React. NextJS provides a solid foundation for developing efficient and scalable web applications and stands out for its optimized performance and ease of use. Within QSCIM, NextJS is the main technology for building the user interface and managing the front-end components.
High-level system designing (QSCIM Designer):
The system's high-level schema in QSCIM highlights the fundamental integration of mind maps into its architecture. Mind maps, recognized for their effectiveness as visual tools, play a central role in simplifying the understanding, organization, and communication of complex concepts specific to QSCIM. Within the context of QSCIM, the strategic incorporation of mind maps not only enriches the visual representation but also strengthens the structuring of information, offering a clear and, the strategic incorporation of mind maps not only enriches the visual representation but also strengthens the structuring of information, offering a clear and intuitive view of the system's architecture.
Backend:
The QSCIM backend is built by integrating MongoDB, a NoSQL database management system. The system's high-level diagram emphasizes MongoDB's importance in the architecture, recognizing its robust and effective data management capabilities.
User Authentication:
User authentication in QSCIM is facilitated through QIAM, another product by QriarLabs. QIAM utilizes Keycloak as its foundation to manage user accounts and permissions within the QSCIM ecosystem.
The following section will explore the main components and their capabilities.
Workspaces:
Think of Workspace as an Integration project that will be the runtime exposing your configured connectors as REST APIs. Each workspace generates a Docker Image that can be pushed to a Registry and then executed either in a Docker runtime or Kubernetes at any Cloud, On-Premises, or Hybrid.
Image 1 – Basic Workspace Design and Runtime
You might have several connectors for each workspace, each exposed through a default HTTP port. QSCIM is built using Node.js libraries and frameworks; for that reason, our Docker image is based on the Node.js standard image.
Minimum Hardware Requirements:
As a starting point, for a lightweight QSCIM workspace, the minimum hardware could be relatively modest. To support over 50 requests per second (50rps) with an average 10KB payload, we recommend at least a VM/Node with the following configuration:
• CPU: Minimum 4 cores, with modern architecture (the faster, the better, especially for high-concurrency workloads).
• Memory: At least 4GB of RAM, though 8GB or more is recommended for better caching and handling of node processes.
• Disk: SSD for faster I/O operations. Over 20 GB is enough, especially if the QSCIM docker runtime instance relies on frequent disk access or local caching.
Check more about installations here:
https://support.qriarlabs.com/support/solutions/articles/151000194016-qscim-designer-local-installation
For more information, visit: https://qriarlabs.com/qscim
Was this article helpful?
That’s Great!
Thank you for your feedback
Sorry! We couldn't be helpful
Thank you for your feedback
Feedback sent
We appreciate your effort and will try to fix the article