CDM-Server documentation is still a work-in-progress.
Please be sure to review these:
This is the multi-page printable view of this section. Click here to print.
CDM-Server documentation is still a work-in-progress.
Please be sure to review these:
Installation/Maintenance requires an admin familiar with linux.
16 GB
32 GB
or more recommended10 GB
free storage space for application, database, and containerRecommended OS: Ubuntu 20.04
LTS and Ubuntu 24.04
LTS
We do not support Windows at this moment. If you still want to run it on Windows, here’s a guide.
curl
, tar
, nano
(or alternatives)v27.2.0+
with docker-compose-plugin v2.29.7+
➜ docker --version
Docker version 27.3.1, build ce12230
➜ docker compose version
Docker Compose version v2.29.7
You may also try alternatives such as Podman, we do not support it at the moment.
1+ gbps
recommendedcurl
, tar
, nano
installed.Make sure Docker Engine (with docker-compose-plugin
) is installed on your system.
See System Requirements for more details.
Go to the directory you want to download CDM-Server in, and run:
curl -s https://get.apis.de/cdm.sh | bash
curl -s https://get.apis.de/cdm.sh | bash -s v1.0.0
If you want to do it manually, you can get the docker-compose file from the following link: https://get.apis.de/cdm/latest.tar.gz
#!/bin/bash
# URL of the tar.gz file
url="https://get.apis.de/cdm/latest.tar.gz"
# Download the tar.gz file
curl -O "$url"
# Extract the tar.gz file
tar -xzvf "latest.tar.gz"
# Optional: Remove the tar.gz file after extraction
rm "latest.tar.gz"
chmod +x download
chmod +x start
chmod +x stop
echo "CDM setup has been downloaded and extracted."
DotEnv
FilesTo use the server, you need to provide some data in the form of two DotEnv
files:
.env
.env.idp
Create new DotEnv
files, copy the contents of the example files, and update the values with your own configuration.
.env
FileExample: .env.example
cp .env.example .env && nano .env
.env.idp
FileExample: IdP (ID Provider) specific DotEnv
files:
.env.idp.azure.example
.env.idp.ldaps.example
.env.idp.local.example
cp .env.idp.local.example .env.idp && nano .env.idp
cp .env.idp.azure.example .env.idp && nano .env.idp
cp .env.idp.ldaps.example .env.idp && nano .env.idp
Use the following command to login and download the CDM-Server images
. You’ll be asked to enter username and password.
sudo ./download
sudo ./start
In case, you need to stop CDM-Server services:
sudo ./stop
Please see Login for more information.
If you want to update your CDM-Server instance to a new version, the steps are quite simple:
Please see this page for backup instructions.
You need to download the new version and (re)start the server.
This is essentially, step 4 and 5 of installation process.
Please set some basic details of the server in the .env
file. You can find the .env.example
file in the root directory of the project.
.env
, .env.idp
files etc. are not accessible to unauthorized users.cp .env.example .env && nano .env
## HELP
# https://get.apis.de/docs/server/env/
## ABOUT
# This will be used to create the root business unit
# Do not use special characters
COMPANY_NAME=
## CDM HOST and PORT
# The hostname to access the server.
# Must not contain protocol such as https://
# Must not have port number
# Must not have trailing slash
# Example: cdm.example.com
CDM_HOST=localhost
# Just the port number; 443 recommended
# Default port is 443
CDM_PORT=443
## USE CUSTOM HTTPS CERTIFICATE FOR CDM-SERVER (PRIVATE-KEY)
# If you have a custom certificate (private-key), set this to true.
# You need to place the custom certificate in the same directory as your `docker-compose.yml` file (where you have downloaded CDM-Server).
# The certificate file name must be `cdm-server.pfx`
# For a false value, a self-signed certificate will be created and used for HTTPS.
# Please check [help docs for more information](https://get.apis.de/docs/server/https/).
# Default is false
USE_CUSTOM_CERT=false
### CUSTOM CERTIFICATE PASSWORD
# If you are using a custom certificate (`USE_CUSTOM_CERT=true`) and your certificate is password-protected, set the password here.
# Otherwise, leave it empty.
CUSTOM_CERT_PASS=
COMPANY_NAME=APIS Informationtechnologien GmbH
CDM_HOST=cdm.apis.de
CDM_PORT=443
USE_CUSTOM_CERT=true
CUSTOM_CERT_PASS=supersecretpassword
This is the name of your company. It will be used to create the root business unit.
See HTTPS for more information.
After you are done setting up .env
, please head over to the IdP Docs to setup .env.idp
file.
DotEnv
FilesIt is recommended that you do not allow other users in same server system to read the DotEnv
files as some of them can contain credentials.
You can try chmod 600
on all of them.
CDM-Server takes the secure-by-design approach and thus enforces HTTPS.
If you set the USE_CUSTOM_CERT
environment variable to true
:
./cdm-server.pfx
where you have downloaded the CDM-Server. Just replace it with your own certificate.CUSTOM_CERT_PASS
environment variable. Otherwise, leave it empty.Once you have the renewed certificate file
This will apply the new certificate.
If the variable is set to false
, the server will generate and use a self-signed certificate. You can find it in
./.data/certs/<CDM_HOST>.cert.p7b
- X.509 certificate (contains the public key) that you can import to your browser../.data/certs/<CDM_HOST>.pfx
- Certificate in PKCS#12
format. It contains private Key that you should not share.Please see Install Self-Signed Certificate for more information.
For this, look into LDAP documentation.
Dashboard
Local
or Ldaps
, enter your username and passwordAzure
, you will be redirected to Azure login page.https://<CDM_HOST>:<CDM_PORT>/web/welcome.html
.https://cdm.example.com:443/web/welcome.html
..env.idp
file.The CDM-Server supports various ID Providers (IdP) for authentication and user management. You need to choose one according to your organization’s requirements and configure it accordingly.
The CDM-Server supports the following ID Providers:
.env.idp
file..env
file, please go to the Setting Up .env File page.This IdP is the default IdP for the CDM-Server. It is used to authenticate users against the local user database. It uses an industry standard hashing algorithm to store passwords securely and authenticate users against the stored hash. All passwords require rotation every 180 days and must be at least 8 characters long. The admin can reset passwords for users if needed.
In the .env.idp
file, the following variables are used to configure the local IdP:
## HELP
# https://get.apis.de/docs/idproviders/local/
## USER MANAGEMENT
# Available options: local, azure, ldaps
ID_PROVIDER=local
### User Management -> LOCAL
# Only required if ID_PROVIDER=local
# We will create one root admin user using credentials below
# You will need to change password after login
## Root User Login
# Example: admin
ROOT_LOGIN=
## Root User Password
# Must be at least 8 characters long.
# Don't use special characters.
ROOT_PASSWORD=
ROOT_LOGIN
and ROOT_PASSWORD
values.ID_PROVIDER=local
ROOT_LOGIN=admin
ROOT_PASSWORD=admin
This guide provides information and instructions for configuring CDM Server to log in using an LDAP as Identity Provider.
The CDM Server provides an embedded LDAPS ID-Provider which enables LDAPS connections to e.g. a Company’s LDAP server. The connection(s) to the LDAP are established using a connection pool which needs an LDAP user account to connect.
This LDAP connection account is used for every query from CDM-Server to the configured LDAP independent of the rights of the authenticated user. This means all queries are executed on LDAP with the LDAP permissions of the configured Connection Pool user.
CDM Server only needs the permissions to read users and groups in sub nodes under one parent node which are relevant to be used in CDM Server workflows.
The CDM Server supports authentication of users on behalf of an LDAP Service. An existing or new Login-Group and an Admin-User is needed to configure the CDM-Server.
The CDM-Server embedded LDAPS ID-Provider can be used to authenticate user LDAP credentials against the companies LDAP. LDAP group informations can also be connected to cdm server roles. After this configuration in CDM-SERVER setup CDM users automatically are linked to roles matching the users group - role configuration.
In the image above a CDM-Users group is defined which contains the users that are allowed to use the CDM Server. All of them can log in after configuration is finalized.
The CDM Servers embedded LDAPS ID-Provider can be used to authenticate users LDAP credentials agains the companies LDAP. LDAP group information can also be connected to cdm server roles. After this configuration in cdm server setup CDM users automatically are linked to roles matching the users group - role configuration.
Here is a sample .env.idp
file with the ldaps
IdP configured:
## HELP
# https://get.apis.de/docs/idproviders/ldaps/
## User Management
# Available options: local, azure, ldaps
ID_PROVIDER=ldaps
### User Management -> LDAP
# Only required if ID_PROVIDER=ldaps
# LDAPS server host
AUTH_HOST=
## LDAPS server port
# Change it if you are using a different port
AUTH_PORT=636
## The DN of the user to use to query the LDAP server. This user must have read access to the LDAP server.
# Example: uid=admin,ou=users,o=companyname,dc=domainname,dc=country
AUTH_USER=
## Password for that user
AUTH_PASSWORD=
## User Management -> LDAP -> Internal References
# The full DN of the user in LDAP who is considered admin (This account is needed for server setup)
# Example: uid=admin,ou=users,o=companyname,dc=domainname,dc=country
LDAP_ADMIN_DN=
## The base DN for the LDAP group tree
# Example: ou=groups,o=companyname,dc=domainname,dc=country
LDAP_GROUP_TREE_DN=
## The template for the login name. This is used to construct the full DN of the user to authenticate.
# Must contain {loginName} as a placeholder for the login name.
# Example: uid={loginName},ou=users,o=companyname,dc=domainname,dc=country
LDAP_LOGIN_TEMPLATE=
## USE CUSTOM HTTPS CERTIFICATE FOR LDAPS (PUBLIC-KEY)
# We always use HTTPS for LDAP.
# If you have a self-signed certificate for your LDAP instance, set this to true.
# You need to place the custom certificate (public key) in the same directory as your `docker-compose.yml` file (where you have downloaded CDM-Server).
# The certificate file name must be `cdm-ldaps.pfx`
# For a false value, we will attempt to validate the LDAP-Server certificate and it will fail for self-signed/expired certificates.
# Default is false
LDAP_CUSTOM_CERT=false
Before first CDM-Server start an ID Provider specific configuration for the Admin User has to be setup in the environment of the docker container. Therefore the parameters LDAP_ADMIN_DN and LDAP_LOGIN_TEMPLATE have to be set to a valid LDAP DN (Distinguished Name) and matching login template. The LDAP_GROUP_TREE_DN parameter is needed, too.
The following table shows an example configuration.
Environment Parameter | Value |
---|---|
LDAP_ADMIN_DN | uid=admin,ou=users,o=companyname,dc=domainname,dc=country |
LDAP_LOGIN_TEMPLATE | uid={loginName},ou=users,o=companyname,dc=domainname,dc=country |
LDAP_GROUP_TREE_DN | ou=groups,o=companyname,dc=domainname,dc=country |
This guide provides information and instructions for configuring CDM Server to log in using Microsoft Azure AD as Identity Provider.
To be able to use Microsofts Azure Entra ID as ID Provider in CDM Server you need to make some configurations in Azure. Therefor you need
Local
or Ldaps
for now, you will have to clear all data and start fresh when you want to switch to Azure
.Here is a sample .env.idp
file with the azure
IdP configured:
## HELP
# https://get.apis.de/docs/idproviders/azure/
## User Management
# Available options: local, azure, ldaps
ID_PROVIDER=azure
## User Management -> AZURE
# Only required if ID_PROVIDER=azure
# The Microsoft Azure AD Directory (Tenant) ID
# The Tenant ID is an UUID and contains hexadecimal numbers (0-9a-f) seperated by - and
# can be found in Azure Portal on the Entra-ID welcome page.
#
# Example: "e53f2a45-f4d2-a11d-223a-77b654c12df5"
AZURE_TENANT_ID=
# The Azure Application (Client) ID
# The Application client ID is an UUID and belongs to the application which is configured
# for the authentication and authorization of azure users for CDM Server. The Id can be
# found in Azure Portal -> App registrations.
#
# Example: "53a12b45-1234-5566-8fe4-93b787a787d6"
AZURE_CLIENT_ID=
# The Azure Application (Client) Name
# The Application client Name is a Text and belongs to the application which is configured
# for the authentication and authorization of azure users for CDM Server. The Name can be
# found in Azure Portal -> App registrations.
#
# Example apis_cdm_authentication
AZURE_CLIENT_NAME=
# The Azure Admin UUID
# The Azure admin UUID must be the id of the Azure user who is going to configure CDM Server at first start.
# The user which belongs to the id is then an admin user and the only user which is able to log in to the
# CDM Server to complete the configuration.
#
# To get your Azure user id log in to https://portal.azure.com/ click on view entra and in the page feed
# in the middle area of the entra welcome page the user id is shown.
#
# Example fd163a2f-112a-7291-bdf4-a4325b78910a
AZURE_ADMIN_UUID=
The CDM Server supports authentication of users on behalf of Microsoft Azure. In Azure an application needs to be configured which provides the authentication flow.
Open azure portal in Web Browser and click on App registrations
Now the app registrations page shows the registered azure apps.
An application registration form is shown
The values of the yellow highlighted fields are necessary for later use in CDM Server configuration. The Ids can be copied moving the mouse pointer to the right end of the value.
Please note the values for the following CDM Parameters for later use:
CDM Parameter | From |
---|---|
AZURE_CLIENT_NAME | Display name |
AZURE_CLIENT_ID | Application (client) ID |
AZURE_TENANT_ID | Directory (tenant) ID |
To configure allowed redirect destinations click on Add a Redirect URI on the Application details page.
In the following page click on + Add a platform. As a result a new form opens on the right side where you can select the type of platform.
Choose Web here.
Enter Redirect URI in the Redirect URIs field, enter the URI provided by the third-party software.
At the bottom of the form enable Access tokens and ID tokens:
Then click on Configure to finish the configuration.
In the left menu select API permissions.
Click + Add a permission.
Select Microsoft Graph and then Delegated permissions. Add the permissions
If prompted, click Grant admin consent for the selected permissions. (This step may require admin privileges.)
The result should look like this:
The permissions Directory.Read.All, Group.Read.All and Group.Member.Read.All need Admin consent and are necessary to be able to read members of groups and groups of users which is necessary to provide RBAC flows in CDM Server which are based on group structures in external ID Providers.
To be able to configure the CDM-Server to start and for later use by members of a configured group, you need some values from the Azure Portal.
# | Name | Description | Usage |
---|---|---|---|
0 | ID_PROVIDER | Fixed value “azure” | Environment |
1 | AZURE_TENANT_ID | The Directory (Tenant) ID | Environment |
2 | AZURE_ADMIN_UUID | The Admin User’s Object ID | Environment |
3 | AZURE_LOGIN_GROUP_UUID | The Login Group’s Object ID | Start Config |
4 | AZURE_SCOPE | Fixed value “Read.users” | Environment |
5 | AZURE_CLIENT_NAME | Name of the application | Environment |
6 | AZURE_CLIENT_ID | ID of the application | Environment |
7 | AZURE_CLIENT_SECRET | Secret value of the application | Environment |
The ID_PROVIDER for Azure is fixed and must be set to value azure in the environment.
First we will collect the Azure Tenant-ID, an admin user ID and a login group id.
The Admin user is able to log in to a fresh system to configure the necessary base settings.
Log in to Azure Portal
On the Welcome Page below Manage Microsoft Entra ID click on View button
You are now on the welcome page of your Tenant:
Tenant-ID: You can click on the copy Icon after the value to copy it. Needed for AZURE_TENANT_ID.
Click on the Number link on the right side of Users. In the appearing User list click on the name of the user, which is going to do the initial system configuration, in the column Display name. The Object ID value is needed in AZURE_ADMIN_UUID
On the same page you can click on the Number link on the right side of Group memberships. In the appearing list of Groups click on the name of the group which you want to use as login group for all allowed users.
The Object ID value is needed as AZURE_LOGIN_GROUP_UUID. This configuration setting is not part of environment setup, but it’s needed on first start.
Go back to Azure Portal Home
Click in the left area menu on App registrations and click on your app to see the details:
The Display Name value is needed as AZURE_CLIENT_NAME
The Application (client) ID is needed as AZURE_CLIENT_ID
The CLIENT_SECRET is configured in the App details below Client credentials on secret. Its value must be saved for later use when creating it, since it is only readable directly after adding it.
If you missed that and the value is unknown you have to recreate it as described in Azure - Configure Application and save the value as CLIENT_SECRET.
Go to the instance installation directory and open the .env.idp file with a text editor of your choice. In the file you have to write the parameter names and their assigned values in the schema ID_PROVIDER=azure
Example:
Open the CDM-Server web interface and click on Dashboard to initialize the Authentication Flow.
You should be redirected to Azure AD for login. Log in using the credentials of the configured admin user!
After a successful login, you’ll be redirected back to the third-party software. Confirm that the authentication and authorization are working as expected.
Open the public CDM Server Welcome Page in browser and click on Dashboard to start Azure authentication.
In the popup window enter your azure credentials to login.
If you are the admin user and configuration is completely valid you will get logged in to the CDM Server and the Admin Dashboard is shown.
Now add the ID of the group of the azure users which are allowed to log in to CDM Server in the form and click on validate.
When validation succeeds the validate button changes to green
Then click on the button “Save” to store the initial configuration in the database.
To finally activate the change you have to click the “Finalize” Button. This means the configuration gets locked and is no longer editable. But you have to finalize when you are sure to enable all users in the configured group to log in to the CDM-Server.
After clicking on finalize you have to confirm that you are sure and want to proceed. Confirm and select your account to log out your current azure session.
In case you logged out your current azure session you get redirected to the welcome screen and all users which are member of the login group can now log in to CDM-Server using Azure.
Possible Error Szenarios
The Login Group ID does not or no longer exist in Azure:
An error message will be displayed and saving the configuration is not possible.
Admin user is not member of the login group:
It is not possible to lock out the admin user, in this case an error message gets displayed.
Congratulations!
After succeeding all of these steps the Azure Users which are in the configured group can log in to the CDM Server!
Periodically review and renew the client secret before expiration.
Adjust permissions or application settings in Azure AD if required by the third-party software or organizational policies.
Local
or Ldaps
for now, you will have to clear all data and start fresh when you want to switch to Azure
.Here is a sample .env.idp
file with the azure
IdP configured:
## HELP
# https://get.apis.de/docs/idproviders/azure/
## User Management
# Available options: local, azure, ldaps
ID_PROVIDER=azure
## User Management -> AZURE
# Only required if ID_PROVIDER=azure
# The Microsoft Azure AD Directory (Tenant) ID
# The Tenant ID is an UUID and contains hexadecimal numbers (0-9a-f) seperated by - and
# can be found in Azure Portal on the Entra-ID welcome page.
#
# Example: "e53f2a45-f4d2-a11d-223a-77b654c12df5"
AZURE_TENANT_ID=
# The Azure Application (Client) ID
# The Application client ID is an UUID and belongs to the application which is configured
# for the authentication and authorization of azure users for CDM Server. The Id can be
# found in Azure Portal -> App registrations.
#
# Example: "53a12b45-1234-5566-8fe4-93b787a787d6"
AZURE_CLIENT_ID=
# The Azure Application (Client) Name
# The Application client Name is a Text and belongs to the application which is configured
# for the authentication and authorization of azure users for CDM Server. The Name can be
# found in Azure Portal -> App registrations.
#
# Example apis_cdm_authentication
AZURE_CLIENT_NAME=
# The Azure Admin UUID
# The Azure admin UUID must be the id of the Azure user who is going to configure CDM Server at first start.
# The user which belongs to the id is then an admin user and the only user which is able to log in to the
# CDM Server to complete the configuration.
#
# To get your Azure user id log in to https://portal.azure.com/ click on view entra and in the page feed
# in the middle area of the entra welcome page the user id is shown.
#
# Example fd163a2f-112a-7291-bdf4-a4325b78910a
AZURE_ADMIN_UUID=
Please enter the Server URL
which must include:
https://
at start:XYZ
the port number at the endServer Settings
entry is not available or there is no possibility to
enter a Server URL
for the CDM-Server please enable Application components | CDM-Server
, confirm with OK
button and reopen the Workstation Settings
dialog.Click on the Check Connection Settings
button to verify the connection. You should see the following message box.
If the CDM-Server has been setup using a self-signed certificate, you will see the following error if the certificate is not installed on your system.
The administrator can install it using group-policy or you can install it manually. Please see Install Self-Signed Certificate for more information.
After starting the IQ-Software you have to login to the CDM-Server when
performing your first command related to the CDM server (e.g. opening the
Administration | CDM Administration
). IQ-Software automatically prompts you
for your credentials. Depending on the configured ID Provider
on your CDM-Server the login procedure varies:
Please enter the your username and your password as set up by your CDM administrator.
Please enter your LDAPS username and password.
You are redirected to your webbrowser which shows the Azure Login page (depending on your previous activity one of the following pages will be shown):
Select the account you want to use by clicking on it or providing your account name and clicking Next. Then enter your password on the following screen. After successful authentication, this message is shown in the browser:
Authentication complete. You can close the browser and return to the application.
Now you can close the browser (tab) and switch back to the IQ-Software window.
On subsequent login attempts you might not even need to provide your username and password and are at once redirected to a page showing the above “Authentication complete” message. In this case, simply close the browser (tab) and switch back to the IQ-Software window.
When closing the IQ-Software your login session on the CDM-Server is automatically terminated.
Should you need to log out and log in with a different user while using the
IQ-Software, please use the File | Logout
and File | Login
menu commands in
the Administration | CDM Administration
window.
The CDM Server manages your IQ-Software data in seperate Projects. Each Project is stored on the CDM-Server in a Business Unit. These Business Units can be nested (one inside another) so that you can create tree-like structures similar to folders and subfolders within a regular file system.
The first step to working with the CDM-Server is to upload an existing project from one of your .fme files:
File | Upload Project to the CDM-Server...
Note that you can only upload a project if the file contains exactly one project. If this is not the case please reorganize the data in the file in this respect.
Alternatively, you can create a new project via context menu directly in the CDM Administration (see below).
Once there are projects available on the CDM-Server, you can open a project in
the IQ-Software as easy as opening an .fme file:
Choose File | Open CDM-Server...
(alternatively you can also use Administration | CDM Administration
).
This opens the CDM Administration view, showing you the available Business Units and their projects:
Selecting a Business Unit (1) shows you the contained Projects. When you select a Project (2), the contained structures are shown (3).
You can open a Project via the context menu or by double clicking it.
Options | Close CDM Administration when opening a project
the CDM Administration is closed automatically after opening a Project.In the CDM Administration (File | Open CDM-Server...
or
Administration | CDM Administration
) you can also do the following things
apart from opening a Project:
File | Login...
or File | Logout
Points 1 to 3 are available from the context menu (right-click).
The LDAP Attribute Mapping page allows you to configure how user’s attributes from an external LDAP connection will be translated to the CDM-Server’s internal representation. In the first section you will be able to set a group dn, which will determine the users available in the system. Afterwards you can configure the individual mapping between attributes in the next section. Finally you will be able to save, review and finalize the configuration.
The first time you login (and after that as long as you have not finalized the mapping) to a freshly configured instance with an LDAP ID-Provider as the admin user, you will be automatically redirected to the LDAP Attribute Mapping Configuration page.
The next action should be to configure the group dn. Therefore navigate to the text field and enter a previously copied (to prevent typing errors) group dn into this field. Next you should validate it by clicking on the validate button.
The following results are possible:
The goal of this section is to configure a mapping between CDM and LDAP attributes, so that the CDM-Server will have a proper translation between those.
It contains a table with two columns, the CDM attributes on the left side and the LDAP attributes on the right.
On the left upper side next to the table, you can choose the type of your LDAP installation (Unix or Microsoft) depending on the type of OS on the LDAP host machine, which is used to apply a preconfigured mapping. If you do not wish for this automatism, you can choose Manual instead.
For each attribute on the left you have the following options to procede on the right:
Enter the name of an LDAP attribute: After typing in the name of an LDAP attribute you wish to map, please validate it directly afterwards. If it is valid, you will find additional information by clicking on the information icon to the right of the text field. If it is not valid, please adjust the entered name and validate again.
Enter nothing: If you enter nothing, the attribute will not be mapped.
All attributes except those marked with a star (*) are optional, you can finish the mapping without those.
After you have finished the mapping, you have the possibility to save the mapping and finalize the configuration. To do so, you may click on Finalize, which will present you a side by side comparison of your chosen mapping. Please review it carefully, because it can not be changed after you finalize the configuration.
If you wish to modify the mapping again, before you have finalized the configuration, you are free to do so. Please note, as long as you do not finalize the configuration, no user except the admin will be able to login.
The Business Units & Projects Management section allows you to organize and manage your Business Units structure and Projects. This section provides hierarchical representation of the relationships between business units and projects, and allows for easy navigation and updates.
Hierarchical Structure: The business units and projects are displayed in a tree-like format, making it easy to visualize their relationships. Business units can contain other business units and projects, helping you clearly organize your company’s structure.
Search Functionality: At the top of this section, you will find a search input that allows you to quickly locate a specific business unit or project by name.
You can manage both Business Units and Projects using a context menu that appears when you right-click on an item. Here are the available actions:
New Business Unit: Create a new business unit within the selected unit.
New Project: Create a new project within the selected business unit.
Update Business Unit: Modify the name of the selected business unit.
Delete Business Unit: Remove the selected business unit from the hierarchy.
Update Project: Modify the name of the selected project.
Delete Project: Remove the selected project from the hierarchy.
Each Business Unit and Project has a Name field, which can be defined in multiple languages. When adding or editing a name, you will see a language selector on the right side of the input field. Use this selector to specify the language for the name, allowing for multilingual support throughout your structure.
The hierarchical representation of business units and projects can be easily reorganized using drag-and-drop functionality. You can drag both business units and projects to different positions within the hierarchy to adjust the structure as needed. This makes it simple to adapt to changes in your company’s organization.
The Groups Management Interface provides administrators with the tools to organize users into groups, a fundamental component of the Role-Based Access Control (RBAC) inside the CDM-Server.
This page allows you to create, view, update, and delete groups within the system, ensuring flexible and secure user management.
There are three types of groups available on the Groups Management page:
Once a Group has been selected, in the right panel of the Groups Management page, administrators can assign or remove users from normal groups to adjust access as needed:
The Roles Management Interface allows administrators to define and organize roles within the CDM-Server.
On this page, you can create, view, and delete roles as needed, though roles cannot be updated once created. After creating roles, you can assign or remove groups to manage which users have specific access rights.
Once a role has been selected, in the right panel of the Roles Management page, administrators can assign or remove groups as needed:
The Users Management Interface provides the capability to create, view, and manage user accounts.
This view provides a centralized interface to view and manage user profiles along with simplified user creation with optional system-generated passwords, workflows for password resets and forced password changes.
(This option is available only when Local is selected as the Id-Provider)
Locate the user in the table and click the Edit (pencil icon) to open the Edit User form. Update user details as necessary.
(This option is available only when Local is selected as the Id-Provider)
When a password reset is initiated for a user, a Temporary Password is generated and displayed in a pop-up. The administrator can copy this password and share it with the user.
Temporary Password Validity Temporary passwords are valid for a limited period (e.g., 2 days). If the password expires, a new reset must be initiated by the administrator.
When a user logs in using the temporary password, the system redirects the user to the Change Password dialog. The user must enter the current password (the temporary password). A new password must be set and confirmed before access is granted. Once the password is changed, the temporary password becomes invalid, and the user gains access to the system.
Users have the ability to manage their passwords directly
From the user menu in the header, select Change Password. In the Change Password dialog, enter the current password. Set and confirm a new password. Click Continue to complete the password update.
(This option is available only for LDAP and Azure as Id-Provider)
Registering an external user in the system is a crucial task that enables the CDM-Server to effectively manage and track users. Rather than duplicating user data, the server creates a reference entry in the database, allowing seamless integration of the external user into RBAC and other essential processes. This approach ensures that external users are fully enabled within the system without redundant data storage, maintaining efficient and streamlined access management.
The IQ & CDM Users Map section enables you to link IQ Persons (referred to as candidates) with CDM users.
To begin, select a project containing unapproved candidates. Only projects with unapproved candidates will be available in the project selection dialog. Candidates are considered approved once they are mapped/linked to a CDM user. Selecting a project will lock it to prevent simultaneous modifications by other users. If another user has locked the project, you will not be able to select it until they release the lock.
Once a project is selected, the left-side list will display IQ Persons (candidates) pending a match. Use the additional filter at the top of the list to refine your list as needed. Candidates are displayed with their Name, First Name, and E-mail by default. To reveal more details, click the button next to the “UNAPPROVED CANDIDATES” title. Changes to the displayed attributes are saved automatically and will be applied the next time you use the tool.
In the next step, you can search for CDM users by applying search criteria, then clicking “Search”. Users appear with their Login and First Name by default, but additional details can be displayed by clicking the button next to the “USERS” title. These display settings are saved for future sessions.
If the required CDM user does not exist, you can create a new user by selecting the “New User” option. This option is available only if you are using local as the IdProvider on the CDM Server and you have admin privileges.
To match a candidate with a user, select at least one candidate from the left list and exactly one user from the right list. This enables the " » " button, allowing you to move candidates to the user.
NOTE: This won’t perform any definitive change.
After mapping candidates to users, review the changes before applying them. Each candidate (IQ Person) can be mapped ONLY ONCE; this is a permanent action and cannot be undone. If you are ready to proceed, click the confirmation button to finalize the mappings.
Once a candidate is mapped, they are considered approved and will be removed from the candidate list. If no candidates remain, the project selector will clear, and the project lock will automatically be released.
Click “Reset” to clear your progress, including any selected project, releasing the lock on the project and clearing all changes made in the current session.
The Settings page allows all users to customize system preferences, including language settings and user interface layout. Changes made on this page are applied upon saving, and the page will automatically reload to reflect the updates.
The General tab in the Settings page allows users to adjust their system-wide preferences, including language options and UI layout.
The Users tab on the Settings page allows users to configure how attributes are displayed in the Users Management interface.
Attribute Order The Attributes Order section lets users reorder the fields displayed in the Users table, such as Title, Name, Login, Department, Email, Phone, and more. To reorder attributes:
The Role-Based Access Control (RBAC) section enables efficient management of user permissions across your organization by assigning users to groups with predefined roles.
As illustrated, Groups act as an intermediary layer between Roles and Users, streamlining the integration of local or external users from sources like LDAP and Azure.
By using groups, you can efficiently manage access for local and/or external users by assigning roles at the group level, reducing the need for individual permission management and ensuring seamless integration with external authentication systems.
Users are classified into two categories based on the given rights at the specified level in the organization’s tree:
The Users Management is the essential first step in defining and organizing access permissions, as all subsequent groups, roles and permissions rely on the accurate setup of user accounts.
Regardless of the chosen ID Provider, configuring users in the User Management section establishes the essential foundation for RBAC (Role-Based Access Control), enabling robust, secure, and scalable access control across the system.
By establishing users first, the organization can easily assign them to groups and later link these groups to roles as needed, creating a scalable, manageable RBAC hierarchy.
For detailed guidance on managing users, visit the Users page.
The Groups Management is a central component in the system’s Role-Based Access Control (RBAC) in the CDM-Server. It enables administrators to create, edit, view, and delete Groups—the critical link between users and roles. By assigning users to groups, and then associating those groups with roles, you can efficiently manage permissions across the organization without needing to configure each user individually.
Groups act as a bridge between users and roles. By defining permissions at the group level, administrators can simplify access control, making it easier to manage permissions for multiple users at once.
For detailed guidance on managing groups, visit the Groups page.
The Roles Management section is the final and essential piece of the Role-Based Access Control (RBAC) in the CDM-Server.
Roles define specific permissions within the system, determining what actions can be taken and what resources can be accessed by groups and their members. Roles are the end-point in the RBAC hierarchy, serving as the permission layer that applies to users indirectly through their assigned groups.
In the CDM-Server there are 3 predefined Role Template which already have specific permissions:
For detailed guidance on managing roles, visit the Roles page.
Stop server and copy the .db
and .data
directory to a safe location. You might need sudo
rights for this.
We automatically run some maintenance tasks on the database every week on Sunday at 04:00 (Server time).
In the .logs
directory, you can find all the logs generated by the server.
There are also some logs generated by OCI containers. You can find them in the /var/lib/docker/containers
(or equivalent if you are using something else) directory.
For database, 10x
10mb
files are retained. For application, 10x
100mb
files are retained.
Windows Store
, Search for Ubuntu
(by Canonical Group Limited) and Install itUbuntu
from START and follow the instructions to set up your user inside WSL Ubuntucd ~ && mkdir cdm && cd cdm
~/cdm
directoryCDM_HOST
should resolve to the server’s IP addressWe provide the SBOM in OWASP’s CycloneDX v1.5/v1.6
format which has been officially ratified as an Ecma International standard.
You can find the SBOM for CDM-Server here:
CDM-Server also utilizes:
First, you receive the certificate from the administrator. Then, you can install it using the following steps:
At the moment, we only support .pfx
file for custom certificates. If you have a different format, you can convert it to .pfx
using the following command:
openssl pkcs12 -export -out cdm-server.pfx -inkey example.key -in example.cer -certfile fullchain.cer
Where: