Version 4.3
Unreleased
- FIX: Checkmk "Activate Changes" returns as soon as the activation was started again instead of blocking until Checkmk has finished it; set the account option
wait_for_activate_changesif you want the Syncer to wait and report whether the activation succeeded - FIX: A slow Checkmk no longer produces "Host already exists" or "Host not found" errors for hosts that were in fact created or deleted — a timed-out write is no longer sent a second time, because Checkmk had usually already carried it out; a clear timeout message names the account setting to raise instead
- FIX: Checkmk error messages no longer end in a stray "None", which made hosts look like they were named "hostname.None"
- FIX: The number of deleted hosts reported after a Checkmk export is correct again — it was counted twice per bulk request and also counted requests that had failed
- FIX: The Ansible run history, the decided field approvals, the audit log and the decided approval-queue entries are no longer kept forever — each has a retention (configurable under Config → Local Config → Retention) that MongoDB enforces on its own
- FIX: Label changes made by an import are no longer written to the audit log by default — an import that rewrites labels on every run produced one entry per host per run and buried the changes people made;
AUDIT_IMPORT_LABEL_CHANGESturns them back on - FIX: The maintenance run now also removes the stored inventory trees of hosts that no longer exist — they were left behind by every deletion path except the archive's bulk delete
- FIX: The label history behind the host "Timeline" tab no longer grows without limit — it is off by default (
LABEL_HISTORY_ENABLED), writes one entry per host save instead of one per changed label, and MongoDB drops entries older thanLABEL_HISTORY_RETENTION_DAYS(default 90) on its own; on installations whose import rewrote labels on every run it had grown into the largest collection of the database by far - FEAT: New command
./cmdbsyncer sys label_historyshows what the label history costs and which label key and host fill it, so a churning label can be found and fixed - FEAT: New command
./cmdbsyncer sys purge_label_historycleans the label history up — entries older than the retention, optionally limited to one collection, or--allto drop it completely and get the disk space back right away; dry run by default,--applyto delete - FEAT: New command
./cmdbsyncer sys db_statsshows what occupies the space in MongoDB — totals plus every collection with its document count, data size, size on disk and index size, biggest first;--indexesadds the size of each index,--collection <name>lists that collection's largest documents, and collections that keep growing (log, label history, audit log, Ansible run history, inventory trees) are pointed out below the table - FIX: The Jira Cloud export no longer rewrites Status, Reference and User fields on every run — their current value in Jira was read as empty, so every export reported a change even when nothing had changed
- FEAT: The Checkmk Setup rule list shows the target folder (and its rule index) of every rule right in the overview
- FIX: Clearing a label in the host or object edit form now deletes the label instead of keeping it with an empty value
- FIX: The Checkmk Setup rule export no longer deletes and recreates the same rules on every run — a condition Checkmk does not support for the rule's ruleset (a service condition on Active Checks or Host Contact Groups, a service label on Service Labels) is now left out and reported instead
- FIX: The log entry of the Database Maintenance run shows only its title; the account and its settings are now part of the entry details
- FIX: The messages of a cron job in the State Table are shown one per line again instead of running into each other
- FIX: Saving a single host no longer fails with "Failed to update record. 'all'" when the CMDB field configuration has no entry for all object types — setting or deleting labels and assigning a template work again
- FIX: "Possible duplicate hostnames" on the Data Quality page no longer reports a host whose only twin is archived — an archived name is the normal result of a rename and buried the real duplicates; archived entries are still shown as context on groups with two or more live hosts
- FEAT: "Lowercase all hostnames" on the Data Quality page now says how many of the affected hosts are archived and has a "Show affected hosts" button listing every rename, the archived entries and the names that are blocked by an existing (often archived) host;
./cmdbsyncer sys lowercase_hostnamesprints the same information - FEAT: The host list has a new "CMK Site Pool" filter — enter a site id, or a Site Pool name to get every host on one of that pool's sites; the existing folder filter is now named "CMK Folder Pool"
- FEAT: The host and object search understands short field forms —
h:webforhostname:web,l.env:prodforlabels.env:prodandi.cpu:8forinventory.cpu:8 - FEAT: A search value between slashes is used as a regular expression, e.g.
h:/^web[0-9]{2}$/— for the cases where the*and?wildcards are not enough - FEAT: New command
./cmdbsyncer checkmk reset_sitepoolsclears all Site Pool assignments, so hosts are spread across the pool sites again on the next export after the pools or their assignment rules changed - FEAT: New command
./cmdbsyncer checkmk reset_folderpoolsdoes the same for Folder Pools; it replaces./cmdbsyncer sys reset_folder_pools, which did the same under a different name and has been removed - FEAT: Single pools can be reset right in their overview — select one or more Folder Pools or Site Pools and use the new "Reset Pool" action to free their seats and let the next export distribute their hosts again
- FEAT: The host debug now points out that a Folder Pool or Site Pool assignment is sticky, showing the folder/site the host is locked to and how to release it — instead of a changed pool looking like a wrong rule outcome
- FEAT: New Checkmk account option "remove_orphaned_rules" — when enabled, the rule export also removes previously created rules from Checkmk once the rule that produced them is disabled or deleted (they were left behind before)
- FIX: The Checkmk Rule Management export now notices when one of its rules sits in the wrong folder and moves it to the configured folder instead of leaving the misplaced copy behind
- FEAT: A Checkmk Rule Management outcome has a new "Keep manual Value" option — with it set the Value is written only once when the rule is created and never overwritten afterwards, so it can be adjusted in Checkmk; a hint noting this is added to the rule comment
- FIX: The Value Template field in the Checkmk Rule Management outcome is now a multi-line text box (monospace), so pasting or editing larger templates is comfortable instead of cramped into a single line
- FIX: Checkmk "Activate Changes" no longer fails with "Exceeded 30 redirects" while waiting for a large or slow activation to finish
- FIX: Leading or trailing spaces in a hostname are now stripped automatically on every save, so a host created in the GUI (or imported) with an accidental space no longer fails to export with a "does not match pattern" error
- FEAT: A Project steers its hosts and its rules to accounts separately — new "Export RULES to Accounts" / "Never export RULES to Accounts" lists let you promote a project's rules on their own schedule (e.g. to test first, production later) while its hosts stay unchanged (an empty rule list falls back to the host list)
- FEAT: Hosts and rules assigned to a Project are no longer limited by a Checkmk account's folder scope ("Limit Host Export to Folders") — the project's account lists alone decide where they go, so a single host or rule can reach a test instance without opening up its whole folder
- FEAT: The host list's quick search has two new toggles, "also Objects" and "also Archive", that extend a search to also cover CMDB objects and/or archived hosts; matching rows are marked with a badge showing where the hit lies
- FEAT: The host list has a new bulk "Redistribute Site Pool" action that clears the sticky Checkmk Site Pool assignment of the selected hosts so they are reassigned to the least-loaded site on the next export — useful after adding new sites to a pool
- FEAT: The host list's bulk "Set Account" action can now also hand the selected hosts over to the CMDB ("cmdb (CMDB managed)"), which locks them against imports so no account can overwrite them
- FEAT: The Objects list has a new bulk "Convert to Host" action that removes the object flag from the selected entries and moves them to the Hosts list
- FIX: Checkmk Data Quality "create missing hosts as CMDB" now creates them as regular CMDB-managed hosts instead of objects, so they show up in the host list and are exported to Checkmk
- FEAT: When editing a host you can now pick "cmdb (CMDB managed)" in the Account field to hand the host over to the CMDB; such hosts are authoritative — no import can overwrite them and they are always protected from autodelete
- FIX: The host debug page no longer shows static (host-independent) Checkmk Setup rules with a per-host match result — they are now clearly marked as static and always emitted, so a global rule is no longer mistaken for a host-specific match
- FEAT: The maintenance run now also permanently deletes hosts that have been in the archive for longer than a retention period (default 30 days), configurable per maintenance account via the
purge_archived_after_dayssetting (set it to0to keep archived hosts forever) - FEAT: The Data Quality dashboard's "Possible duplicate hostnames" now also includes archived hosts (marked as such), so a name that only differs in case from an archived host — e.g. one that could not be lowercased because the lowercase name is still held in the archive — is visible there
- FEAT: Hosts with uppercase letters in their name can be renamed to lowercase — a "Lowercase all hostnames" button on the Data Quality dashboard (showing how many are affected) and a new
sys lowercase_hostnamesCLI command (dry run by default,--applyto write) - FEAT: The Checkmk Data Quality Check page can scan a whole account for hosts with uppercase letters in their name or without a fully-qualified name (FQDN)
- FEAT: The "Check for valid hostname" and "Require FQDN" import checks are now configured per Account (Object Settings) instead of globally, both default to off, and no longer apply to object accounts; if the old global CHECK_FOR_VALID_HOSTNAME / REQUIRE_FQDN settings are still in local_config.py,
sys self_configurenow warns you to migrate them to the accounts - FIX: Sorting the File Admin list by Size or Date now works when you click the column header, instead of doing nothing
- FEAT: New Checkmk "Data Quality Check" page — paste a list of hostnames or upload a CSV and check them against a Checkmk account to see which hosts are present, which exist under a different name/domain, whether their agent works (the Check_MK service state) and which contact groups may see them; the result can be copied or exported as CSV, and missing hosts can be created as internal CMDB objects with an optional CMDB template
- FEAT: The Checkmk Setup rule's "Loop over List" is easier to use — instead of a separate checkbox plus attribute field, you now just name a Host Attribute holding a list to create one rule per entry (empty means a single rule), with inline help explaining that templates can use {{ loop }} and {{ loop_idx }}
- FEAT: The Checkmk Setup rule's condition fields are now clearly labelled and explained — "Condition — Host name / Host label / Service name / Service label" each say what to type (name vs key:value label), whether commas mean OR or AND, and that an empty field means no restriction
- FEAT: In the Checkmk Setup rule the Folder and Folder Index inputs now sit on one line, keeping each outcome more compact
- FIX: A malformed Host or Service label condition in a Checkmk Setup rule is now reported when you save (and clearly logged during export if it only shows up per host) instead of silently dropping the rule, and a label value containing a colon (e.g. a URL) no longer breaks the export
- FIX: Checkmk "Activate Changes" now waits for the activation to finish and reports a real error (in the log) instead of always claiming success, so a failed activation — e.g. missing permission for foreign changes — is no longer silently swallowed
- FIX: In the host Debug view the rules table header no longer slides over the first rule while scrolling (most visible in Microsoft Edge)
- FEAT: The Checkmk Setup rule's Ruleset field now has a searchable picker over every internal ruleset of Checkmk 2.4 and 2.5 — search by ruleset ID or by its plain-language name, see which version(s) each belongs to, and for rulesets that ship an example an "Apply example to Value Template" button fills the template for you (asking first before overwriting anything you already typed); free text stays possible, and the suggestion list is refreshed with the new
checkmk export_rulesets <account>command - FEAT: New Checkmk Site Pools spread hosts across several monitoring sites for load balancing — define a pool of sites, pick the "Site Pool" rule action, and each host is placed on the least-loaded site and keeps it on later syncs
- FEAT: Folder Pools and Site Pools now share a "Pools" menu under Checkmk, and the Pool Folder / Site Pool rule actions suggest the pools you have defined as one-click chips — or warn you when none exist yet
- FIX: The Site Pools list now shows each pool's member sites by name together with how many hosts sit on each, instead of an unreadable internal object
- FEAT:
sys self_configurenow recounts the seat usage of all Checkmk Folder Pools and Site Pools, so the host counters are correct right after an update - FEAT: The Checkmk rule has ready-made actions for common host attributes — IP address family (e.g. no-ip), IPv4/IPv6 address, Checkmk agent, SNMP, Piggyback, Criticality, Networking segment, Alias and Monitored-on-Site — with one-click value suggestions, so you no longer need to remember the attribute keys (Jinja still supported)
- FEAT: The Checkmk "Set Folder and Attributes" rule now picks the outcome action from categorized cards (Folder, Attributes, Labels, Opt-outs, …) with a short name and description each, instead of one long dropdown, and the parameter field shows a matching hint; each outcome stays compact, showing only the selected action until you click "Change action"
- FEAT: Every Checkmk rule outcome parameter now supports Jinja (including the label-prefix actions), shown as a single hint above the outcomes
- FEAT: Deprecated Checkmk rule actions can no longer be selected and are sorted to the bottom of the action list; rules still using one can no longer be saved, and the start page warns you which rules must be migrated before they are removed with 4.4
- FEAT: New maintenance command
sys delete_empty_labelscleans up host labels that have an empty value; runs as a dry run by default, use --apply to delete - FEAT: New maintenance command
sys delete_template_labelsremoves host labels that duplicate a label from an assigned CMDB template; runs as a dry run by default, use --apply to delete - FIX: Deleting a label when editing a host in the web UI now sticks — removed labels are no longer re-added on save
- FIX: A host's own labels now always win over labels from its CMDB templates when attributes are evaluated; template labels are only merged in virtually and are never written onto the host
- FEAT: New ServiceNow plugin imports hosts from the ServiceNow Table API (e.g. cmdb_ci_server) — configure the tables, hostname field and an optional query on the account, run via CLI or cron
- FIX: The start page's "Recent Errors" panel is now hidden from users without the Log permission, so its log entries and messages no longer leak to them
- FEAT: The start page shows a Cron Jobs status panel (below Recent Errors) with a one-click "Run" button to schedule a group for the next cron pass
- FEAT: Saving a host in the web UI no longer forces its account to the CMDB default — you now pick the account from a dropdown, limited to your allowed accounts
- FEAT: The Archive now has a per-row Restore button, not just the bulk "Restore" action
- FIX: The Archive no longer offers a "Clone" action — cloning a soft-deleted host made no sense there
- FEAT: The host list has a new "Set Account" bulk action to assign the source account of many hosts at once; users restricted to certain accounts can only pick and act within those
- FEAT: The Data Quality dashboard now has its own permission instead of riding on the Hosts permission, and users without any Settings-area permission no longer see the Settings menu at all
- FEAT: Your Saved Searches now live in the personal profile menu (top-right) — they were always only your own
- FEAT: The API Swagger page can now authenticate with a personal API token as well as username/password — paste the token in the Authorize dialog (with or without a leading "Bearer ")
- FEAT: Users can now generate personal API tokens (Profile → API Tokens) and authenticate with
Authorization: Bearer <token>instead of their password; each token carries the user's own API roles and account scope, can be labelled and optionally expire, and is revocable at any time (admins can list and revoke a user's tokens too) - FEAT: Users can now be restricted to specific accounts — assign accounts to a user and both the REST API (read, create, bulk, delete, inventory, relations) and the web-UI Host and Objects lists only show hosts of those accounts; leave it empty to keep full access as before
- FEAT: New "Projects" and "Cron" permissions can be granted to users; the Projects view is no longer tied to the Checkmk permission
- FIX: The Roles and API-Roles pickers in the user form are now proper searchable multi-selects instead of a hard-to-use native list box
- FIX: Deleting a host through the API now archives it (soft-delete, restorable from the Archive view) instead of removing it permanently
- FIX: The API's Swagger page now shows a single, clear username/password login instead of two competing "Authorize" fields, so authenticating in Swagger no longer silently sends no credentials
- FEAT: The host list's Delete action is now available outside CMDB mode too — it soft-deletes (archives) the host, and the Archive view (to restore or permanently remove) is reachable in every mode
- FIX: Startup no longer crashes with a "field does not exist" error when the database was previously used by a newer version — unknown fields on the system config are now ignored instead of aborting
- FIX: The Checkmk password store export no longer re-writes every password on each run — a password is only pushed to Checkmk when its content actually changed since the last export
- FIX: The Checkmk host export no longer rewrites folder attributes on every run — folder options such as contact groups are only updated when they actually changed, instead of each export re-applying them because Checkmk returns them with extra default keys
- FEAT: In CMDB mode the host list gains a "Bulk add hosts" button (paste a plain hostname list or a CSV, optionally pick a template) and an "Import CSV" button next to Export CSV — an uploaded or pasted CSV opens a preview where you pick which column is the hostname (any header works, not just
hostname), toggle "first row has no header" if you forgot it, assign an optional template, and see the parsed rows before anything is created; every column other than hostname/folder/lifecycle_state andinventory_<name>becomes a host label - FIX: The "Assign Project" bulk action in the host list opens its dialog again (like "Set Template") instead of doing nothing
- FIX: The host list's Labels column now also shows the labels an assigned CMDB template contributes (marked with a template badge), so template values are visible without opening the host
- SEC: A host name containing HTML is no longer rendered as markup in the host list's log column
- SEC: Account passwords are masked on the host debug page — a rule outcome using
{{ACCOUNT:<name>:password}}no longer reveals the secret to users who only hold a plugin role; exports keep resolving it normally - SEC: A custom SQL query can no longer smuggle statements past the validation inside SQL comments
- FIX: The "Generic Rules" permission can now be granted — the Filter, Rewrite and Custom Attribute views checked a role that did not exist and were reachable for global admins only
- FEAT: Rules can now match on the account a host was imported from — the attribute
SOURCE_ACCOUNTis available in every rule condition and Jinja value, so an export can be limited to the hosts of one import account - FEAT: Checkmk folder options can now set contact groups (and other WATO permission attributes); when several hosts share a folder but define different contact groups, the syncer merges them so the folder ends up with the contact groups of all its hosts
- FIX: Checkmk folder options written with spaces around the pipe (
folder | {options}) no longer append a stray_to the folder name - FIX: Checkmk folder attributes of already-existing folders are now applied even when an export is limited to single hosts
- FIX: Updating Checkmk folder attributes no longer wipes existing folder settings such as tags or SNMP configuration — only the attributes defined by a rule are changed
- FIX: Malformed Checkmk folder options (an unbalanced brace, or contact groups written as a bare list) are rejected when saving the rule and reported loudly during export, instead of being silently dropped
- FIX: Checkmk contact groups written directly as a Jinja expression (e.g.
{{ groups.split(',') }}) are now also rejected when saving the rule, instead of slipping through unchecked and being refused by Checkmk - FIX: Broken Jinja in a Checkmk move/create-folder value (e.g. chaining
.replace(...)after a|join(...)filter) is now caught when saving the rule and reported during export, instead of silently rendering to nothing and dropping the host's whole target folder - FEAT: The host debug page shows the resolved Checkmk folder options per folder — or a clear error when the option is malformed
- FIX: An undefined variable inside Checkmk folder options no longer empties the whole folder path — the host keeps its target folder and only the unresolved options are dropped (and the drop is now reported instead of happening silently), instead of every affected host being moved to the root folder
- FEAT: The start page shows the latest log entries that reported errors — failing sync jobs are visible right after login, each linking to its full log entry
- FIX:
sys update_cmdbnow merges matching CMDB templates into a host's existing templates instead of replacing them, so previously assigned templates are kept - FIX: The
TRUSTED_PROXIESsetting from local_config.py now takes effect — behind a reverse proxy the "HTTPS is required but not in use" login warning clears and HTTPS-only API authentication works, instead of the setting being silently ignored - FEAT: New CLI command
checkmk assign_template <account> <folder> <template>reads the hosts of a Checkmk folder and assigns a CMDB template to each of them that exists in the syncer (supports--dry-run) - FIX: An import no longer skips a host that another account imported before — it takes the host over, which also brings it back from the Archive; only a master account keeps its hosts exclusively, and such a skip is now named on the CLI and in the run's log entry instead of happening silently
- FEAT: A First Steps wizard guides new installations through the initial setup — create an account, import objects, connect an export target, define rules, schedule cron jobs, invite users; every step checks itself off automatically, fresh installs land on the page until the checklist is complete or dismissed, and it stays reachable via "First Steps" in the profile menu
Version 4.3.0
(Initial 4.3 release — entries currently live in the Unreleased section above. They get folded down into this section when the release is cut.)