Enterprise Edition
CMDBsyncer follows an open-core model. The core product is open source and fully functional on its own. A separate cmdbsyncer-enterprise package adds commercial features and is activated by a signed license.
If the enterprise package is not installed — or its license is missing or invalid — CMDBsyncer continues to run as the Community Edition. Enterprise-only hooks silently fall back to no-ops.
Enterprise Features
| Feature | License claim | Description |
|---|---|---|
| Remote User SSO | remote_user |
Trusted-header SSO login (e.g. Keycloak, mod_auth_*) |
| LDAP Login | ldap_login |
Authenticate users against LDAP/Active Directory |
Installation
The enterprise package is published on PyPI. Your license file is provided separately by Kuhn & Ruess GmbH.
Install into the same Python environment that runs CMDBsyncer:
pip install cmdbsyncer-enterprise
Restart the application (docker restart <container> or reload apache) so the new package is loaded.
To upgrade to a newer release later:
pip install --upgrade cmdbsyncer-enterprise
License File
By default, CMDBsyncer looks for it at:
/etc/cmdbsyncer/license.jwt
To use a different path, set the CMDBSYNCER_LICENSE environment variable:
export CMDBSYNCER_LICENSE=/srv/cmdbsyncer/license.jwt
The file must be readable by the user that runs the application (the uWSGI user in container deployments).
The license contains the following claims:
| Claim | Meaning |
|---|---|
license_id |
Unique license identifier issued by Kuhn & Ruess |
customer |
Licensee name |
features |
List of enabled feature names (e.g. ["remote_user"]) |
iat |
Issued-at timestamp |
exp |
Expiry timestamp (enforced at startup) |
Verifying the License
After a restart, open Profile → License in the web UI.
- Enterprise Edition block with license details → license is active.
- Community Edition → the
cmdbsyncer_enterprisepackage is not installed. - Enterprise package installed, but license not active → the package is there but the license could not be loaded. The
Load statusfield on that page shows the exact reason.
At application startup, a single line is written to stderr (visible in docker logs or your systemd journal):
[cmdbsyncer-enterprise] package loaded successfully
[cmdbsyncer-enterprise] package not installed — running Community Edition
[cmdbsyncer-enterprise] package installed but failed to activate ...: <reason>
Troubleshooting
License page says "Community Edition"
The package is not installed in the running environment. In Docker, this usually means the package was not installed in the correct container, or the container was rebuilt from an image that doesn't include it. Re-run the install step and restart.
License page says "Enterprise package installed, but license not active"
Read the Load status field on the page. Typical values:
| Status | Cause |
|---|---|
failed: Enterprise license not found: [Errno 2] |
File missing or CMDBSYNCER_LICENSE points to a non-existent path |
failed: Enterprise license invalid: expired_token |
License exp is in the past — request a renewal |
failed: Enterprise license invalid: bad_signature |
Public key in the installed package doesn't match the signer — package and license versions are out of sync |
Version upgrades
Use pip install --upgrade cmdbsyncer-enterprise and restart the application. If pip skips the update, check the installed version with pip show cmdbsyncer-enterprise and force a reinstall with pip install --force-reinstall cmdbsyncer-enterprise.
Uninstalling the Enterprise Package
To revert to the Community Edition, uninstall the package:
pip uninstall cmdbsyncer-enterprise
Restart the application. The License page will then show the Community Edition notice. The license file itself can stay in place — it has no effect without the package.