cmdbsyncer 4.1.0.dev21__tar.gz → 4.1.1__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {cmdbsyncer-4.1.0.dev21 → cmdbsyncer-4.1.1}/PKG-INFO +1 -1
- {cmdbsyncer-4.1.0.dev21 → cmdbsyncer-4.1.1}/application/_version.py +34 -5
- {cmdbsyncer-4.1.0.dev21 → cmdbsyncer-4.1.1}/application/api/views.py +5 -2
- cmdbsyncer-4.1.1/application/buildinfo.txt +1 -0
- {cmdbsyncer-4.1.0.dev21 → cmdbsyncer-4.1.1}/application/changelog/v4.1.md +8 -1
- {cmdbsyncer-4.1.0.dev21 → cmdbsyncer-4.1.1}/application/config.py +8 -0
- {cmdbsyncer-4.1.0.dev21 → cmdbsyncer-4.1.1}/application/helpers/local_config_presets.py +5 -0
- {cmdbsyncer-4.1.0.dev21 → cmdbsyncer-4.1.1}/application/templates/admin/ansible_playbook_run.html +5 -4
- {cmdbsyncer-4.1.0.dev21 → cmdbsyncer-4.1.1}/cmdbsyncer.egg-info/PKG-INFO +1 -1
- {cmdbsyncer-4.1.0.dev21 → cmdbsyncer-4.1.1}/pyproject.toml +1 -1
- cmdbsyncer-4.1.0.dev21/application/buildinfo.txt +0 -1
- {cmdbsyncer-4.1.0.dev21 → cmdbsyncer-4.1.1}/LICENSE +0 -0
- {cmdbsyncer-4.1.0.dev21 → cmdbsyncer-4.1.1}/README.md +0 -0
- {cmdbsyncer-4.1.0.dev21 → cmdbsyncer-4.1.1}/application/__init__.py +0 -0
- {cmdbsyncer-4.1.0.dev21 → cmdbsyncer-4.1.1}/application/api/__init__.py +0 -0
- {cmdbsyncer-4.1.0.dev21 → cmdbsyncer-4.1.1}/application/api/inventory.py +0 -0
- {cmdbsyncer-4.1.0.dev21 → cmdbsyncer-4.1.1}/application/api/objects.py +0 -0
- {cmdbsyncer-4.1.0.dev21 → cmdbsyncer-4.1.1}/application/api/rules.py +0 -0
- {cmdbsyncer-4.1.0.dev21 → cmdbsyncer-4.1.1}/application/api/syncer.py +0 -0
- {cmdbsyncer-4.1.0.dev21 → cmdbsyncer-4.1.1}/application/auth/views.py +0 -0
- {cmdbsyncer-4.1.0.dev21 → cmdbsyncer-4.1.1}/application/changelog/.pages +0 -0
- {cmdbsyncer-4.1.0.dev21 → cmdbsyncer-4.1.1}/application/changelog/v3.10.md +0 -0
- {cmdbsyncer-4.1.0.dev21 → cmdbsyncer-4.1.1}/application/changelog/v3.11.md +0 -0
- {cmdbsyncer-4.1.0.dev21 → cmdbsyncer-4.1.1}/application/changelog/v3.12.md +0 -0
- {cmdbsyncer-4.1.0.dev21 → cmdbsyncer-4.1.1}/application/changelog/v3.5.md +0 -0
- {cmdbsyncer-4.1.0.dev21 → cmdbsyncer-4.1.1}/application/changelog/v3.7.md +0 -0
- {cmdbsyncer-4.1.0.dev21 → cmdbsyncer-4.1.1}/application/changelog/v3.8.md +0 -0
- {cmdbsyncer-4.1.0.dev21 → cmdbsyncer-4.1.1}/application/changelog/v3.9.md +0 -0
- {cmdbsyncer-4.1.0.dev21 → cmdbsyncer-4.1.1}/application/changelog/v4.0.md +0 -0
- {cmdbsyncer-4.1.0.dev21 → cmdbsyncer-4.1.1}/application/cli.py +0 -0
- {cmdbsyncer-4.1.0.dev21 → cmdbsyncer-4.1.1}/application/docu_links.py +0 -0
- {cmdbsyncer-4.1.0.dev21 → cmdbsyncer-4.1.1}/application/enterprise.py +0 -0
- {cmdbsyncer-4.1.0.dev21 → cmdbsyncer-4.1.1}/application/helpers/__init__.py +0 -0
- {cmdbsyncer-4.1.0.dev21 → cmdbsyncer-4.1.1}/application/helpers/audit.py +0 -0
- {cmdbsyncer-4.1.0.dev21 → cmdbsyncer-4.1.1}/application/helpers/cron.py +0 -0
- {cmdbsyncer-4.1.0.dev21 → cmdbsyncer-4.1.1}/application/helpers/get_account.py +0 -0
- {cmdbsyncer-4.1.0.dev21 → cmdbsyncer-4.1.1}/application/helpers/inventory.py +0 -0
- {cmdbsyncer-4.1.0.dev21 → cmdbsyncer-4.1.1}/application/helpers/local_config_file.py +0 -0
- {cmdbsyncer-4.1.0.dev21 → cmdbsyncer-4.1.1}/application/helpers/mongo_keys.py +0 -0
- {cmdbsyncer-4.1.0.dev21 → cmdbsyncer-4.1.1}/application/helpers/notification_channels.py +0 -0
- {cmdbsyncer-4.1.0.dev21 → cmdbsyncer-4.1.1}/application/helpers/notification_dispatch.py +0 -0
- {cmdbsyncer-4.1.0.dev21 → cmdbsyncer-4.1.1}/application/helpers/plugins.py +0 -0
- {cmdbsyncer-4.1.0.dev21 → cmdbsyncer-4.1.1}/application/helpers/sates.py +0 -0
- {cmdbsyncer-4.1.0.dev21 → cmdbsyncer-4.1.1}/application/helpers/sql.py +0 -0
- {cmdbsyncer-4.1.0.dev21 → cmdbsyncer-4.1.1}/application/helpers/syncer_jinja.py +0 -0
- {cmdbsyncer-4.1.0.dev21 → cmdbsyncer-4.1.1}/application/helpers/tablib_formater.py +0 -0
- {cmdbsyncer-4.1.0.dev21 → cmdbsyncer-4.1.1}/application/helpers/tests/__init__.py +0 -0
- {cmdbsyncer-4.1.0.dev21 → cmdbsyncer-4.1.1}/application/helpers/tests/test_sql.py +0 -0
- {cmdbsyncer-4.1.0.dev21 → cmdbsyncer-4.1.1}/application/mcp_server.py +0 -0
- {cmdbsyncer-4.1.0.dev21 → cmdbsyncer-4.1.1}/application/models/__init__.py +0 -0
- {cmdbsyncer-4.1.0.dev21 → cmdbsyncer-4.1.1}/application/models/account.py +0 -0
- {cmdbsyncer-4.1.0.dev21 → cmdbsyncer-4.1.1}/application/models/config.py +0 -0
- {cmdbsyncer-4.1.0.dev21 → cmdbsyncer-4.1.1}/application/models/cron.py +0 -0
- {cmdbsyncer-4.1.0.dev21 → cmdbsyncer-4.1.1}/application/models/field_approval.py +0 -0
- {cmdbsyncer-4.1.0.dev21 → cmdbsyncer-4.1.1}/application/models/forms.py +0 -0
- {cmdbsyncer-4.1.0.dev21 → cmdbsyncer-4.1.1}/application/models/host.py +0 -0
- {cmdbsyncer-4.1.0.dev21 → cmdbsyncer-4.1.1}/application/models/host_inventory_tree.py +0 -0
- {cmdbsyncer-4.1.0.dev21 → cmdbsyncer-4.1.1}/application/models/notification_channel.py +0 -0
- {cmdbsyncer-4.1.0.dev21 → cmdbsyncer-4.1.1}/application/models/notification_rule.py +0 -0
- {cmdbsyncer-4.1.0.dev21 → cmdbsyncer-4.1.1}/application/models/notification_state.py +0 -0
- {cmdbsyncer-4.1.0.dev21 → cmdbsyncer-4.1.1}/application/models/saved_search.py +0 -0
- {cmdbsyncer-4.1.0.dev21 → cmdbsyncer-4.1.1}/application/models/states.py +0 -0
- {cmdbsyncer-4.1.0.dev21 → cmdbsyncer-4.1.1}/application/models/user.py +0 -0
- {cmdbsyncer-4.1.0.dev21 → cmdbsyncer-4.1.1}/application/modules/__init__.py +0 -0
- {cmdbsyncer-4.1.0.dev21 → cmdbsyncer-4.1.1}/application/modules/custom_attributes/models.py +0 -0
- {cmdbsyncer-4.1.0.dev21 → cmdbsyncer-4.1.1}/application/modules/custom_attributes/rules.py +0 -0
- {cmdbsyncer-4.1.0.dev21 → cmdbsyncer-4.1.1}/application/modules/custom_attributes/views.py +0 -0
- {cmdbsyncer-4.1.0.dev21 → cmdbsyncer-4.1.1}/application/modules/debug.py +0 -0
- {cmdbsyncer-4.1.0.dev21 → cmdbsyncer-4.1.1}/application/modules/email.py +0 -0
- {cmdbsyncer-4.1.0.dev21 → cmdbsyncer-4.1.1}/application/modules/inventory/__init__.py +0 -0
- {cmdbsyncer-4.1.0.dev21 → cmdbsyncer-4.1.1}/application/modules/log/log.py +0 -0
- {cmdbsyncer-4.1.0.dev21 → cmdbsyncer-4.1.1}/application/modules/log/models.py +0 -0
- {cmdbsyncer-4.1.0.dev21 → cmdbsyncer-4.1.1}/application/modules/log/views.py +0 -0
- {cmdbsyncer-4.1.0.dev21 → cmdbsyncer-4.1.1}/application/modules/plugin.py +0 -0
- {cmdbsyncer-4.1.0.dev21 → cmdbsyncer-4.1.1}/application/modules/rule/__init__.py +0 -0
- {cmdbsyncer-4.1.0.dev21 → cmdbsyncer-4.1.1}/application/modules/rule/filter.py +0 -0
- {cmdbsyncer-4.1.0.dev21 → cmdbsyncer-4.1.1}/application/modules/rule/match.py +0 -0
- {cmdbsyncer-4.1.0.dev21 → cmdbsyncer-4.1.1}/application/modules/rule/models.py +0 -0
- {cmdbsyncer-4.1.0.dev21 → cmdbsyncer-4.1.1}/application/modules/rule/rewrite.py +0 -0
- {cmdbsyncer-4.1.0.dev21 → cmdbsyncer-4.1.1}/application/modules/rule/rule.py +0 -0
- {cmdbsyncer-4.1.0.dev21 → cmdbsyncer-4.1.1}/application/modules/rule/views.py +0 -0
- {cmdbsyncer-4.1.0.dev21 → cmdbsyncer-4.1.1}/application/modules/statefile.py +0 -0
- {cmdbsyncer-4.1.0.dev21 → cmdbsyncer-4.1.1}/application/notices/strict_certificate_verification.txt +0 -0
- {cmdbsyncer-4.1.0.dev21 → cmdbsyncer-4.1.1}/application/plugins/__init__.py +0 -0
- {cmdbsyncer-4.1.0.dev21 → cmdbsyncer-4.1.1}/application/plugins/ansible/__init__.py +0 -0
- {cmdbsyncer-4.1.0.dev21 → cmdbsyncer-4.1.1}/application/plugins/ansible/admin_views.py +0 -0
- {cmdbsyncer-4.1.0.dev21 → cmdbsyncer-4.1.1}/application/plugins/ansible/inventory.py +0 -0
- {cmdbsyncer-4.1.0.dev21 → cmdbsyncer-4.1.1}/application/plugins/ansible/models.py +0 -0
- {cmdbsyncer-4.1.0.dev21 → cmdbsyncer-4.1.1}/application/plugins/ansible/playbook_rules.py +0 -0
- {cmdbsyncer-4.1.0.dev21 → cmdbsyncer-4.1.1}/application/plugins/ansible/plugin.json +0 -0
- {cmdbsyncer-4.1.0.dev21 → cmdbsyncer-4.1.1}/application/plugins/ansible/rules.py +0 -0
- {cmdbsyncer-4.1.0.dev21 → cmdbsyncer-4.1.1}/application/plugins/ansible/runner.py +0 -0
- {cmdbsyncer-4.1.0.dev21 → cmdbsyncer-4.1.1}/application/plugins/ansible/site_syncer.py +0 -0
- {cmdbsyncer-4.1.0.dev21 → cmdbsyncer-4.1.1}/application/plugins/ansible/views.py +0 -0
- {cmdbsyncer-4.1.0.dev21 → cmdbsyncer-4.1.1}/application/plugins/bmc_remedy/__init__.py +0 -0
- {cmdbsyncer-4.1.0.dev21 → cmdbsyncer-4.1.1}/application/plugins/bmc_remedy/bmc_remedy.py +0 -0
- {cmdbsyncer-4.1.0.dev21 → cmdbsyncer-4.1.1}/application/plugins/bmc_remedy/plugin.json +0 -0
- {cmdbsyncer-4.1.0.dev21 → cmdbsyncer-4.1.1}/application/plugins/checkmk/__init__.py +0 -0
- {cmdbsyncer-4.1.0.dev21 → cmdbsyncer-4.1.1}/application/plugins/checkmk/admin_views.py +0 -0
- {cmdbsyncer-4.1.0.dev21 → cmdbsyncer-4.1.1}/application/plugins/checkmk/bi.py +0 -0
- {cmdbsyncer-4.1.0.dev21 → cmdbsyncer-4.1.1}/application/plugins/checkmk/cmk2.py +0 -0
- {cmdbsyncer-4.1.0.dev21 → cmdbsyncer-4.1.1}/application/plugins/checkmk/cmk_rules.py +0 -0
- {cmdbsyncer-4.1.0.dev21 → cmdbsyncer-4.1.1}/application/plugins/checkmk/dcd.py +0 -0
- {cmdbsyncer-4.1.0.dev21 → cmdbsyncer-4.1.1}/application/plugins/checkmk/downtimes.py +0 -0
- {cmdbsyncer-4.1.0.dev21 → cmdbsyncer-4.1.1}/application/plugins/checkmk/groups.py +0 -0
- {cmdbsyncer-4.1.0.dev21 → cmdbsyncer-4.1.1}/application/plugins/checkmk/helpers.py +0 -0
- {cmdbsyncer-4.1.0.dev21 → cmdbsyncer-4.1.1}/application/plugins/checkmk/import_v1.py +0 -0
- {cmdbsyncer-4.1.0.dev21 → cmdbsyncer-4.1.1}/application/plugins/checkmk/import_v2.py +0 -0
- {cmdbsyncer-4.1.0.dev21 → cmdbsyncer-4.1.1}/application/plugins/checkmk/inits.py +0 -0
- {cmdbsyncer-4.1.0.dev21 → cmdbsyncer-4.1.1}/application/plugins/checkmk/inventorize.py +0 -0
- {cmdbsyncer-4.1.0.dev21 → cmdbsyncer-4.1.1}/application/plugins/checkmk/models.py +0 -0
- {cmdbsyncer-4.1.0.dev21 → cmdbsyncer-4.1.1}/application/plugins/checkmk/notification_rules.py +0 -0
- {cmdbsyncer-4.1.0.dev21 → cmdbsyncer-4.1.1}/application/plugins/checkmk/passwords.py +0 -0
- {cmdbsyncer-4.1.0.dev21 → cmdbsyncer-4.1.1}/application/plugins/checkmk/plugin.json +0 -0
- {cmdbsyncer-4.1.0.dev21 → cmdbsyncer-4.1.1}/application/plugins/checkmk/poolfolder.py +0 -0
- {cmdbsyncer-4.1.0.dev21 → cmdbsyncer-4.1.1}/application/plugins/checkmk/rules.py +0 -0
- {cmdbsyncer-4.1.0.dev21 → cmdbsyncer-4.1.1}/application/plugins/checkmk/sites.py +0 -0
- {cmdbsyncer-4.1.0.dev21 → cmdbsyncer-4.1.1}/application/plugins/checkmk/syncer.py +0 -0
- {cmdbsyncer-4.1.0.dev21 → cmdbsyncer-4.1.1}/application/plugins/checkmk/tags.py +0 -0
- {cmdbsyncer-4.1.0.dev21 → cmdbsyncer-4.1.1}/application/plugins/checkmk/tests/__init__.py +0 -0
- {cmdbsyncer-4.1.0.dev21 → cmdbsyncer-4.1.1}/application/plugins/checkmk/tests/test_bi.py +0 -0
- {cmdbsyncer-4.1.0.dev21 → cmdbsyncer-4.1.1}/application/plugins/checkmk/tests/test_cmk2.py +0 -0
- {cmdbsyncer-4.1.0.dev21 → cmdbsyncer-4.1.1}/application/plugins/checkmk/tests/test_cmk_rules.py +0 -0
- {cmdbsyncer-4.1.0.dev21 → cmdbsyncer-4.1.1}/application/plugins/checkmk/tests/test_dcd.py +0 -0
- {cmdbsyncer-4.1.0.dev21 → cmdbsyncer-4.1.1}/application/plugins/checkmk/tests/test_downtimes.py +0 -0
- {cmdbsyncer-4.1.0.dev21 → cmdbsyncer-4.1.1}/application/plugins/checkmk/tests/test_groups.py +0 -0
- {cmdbsyncer-4.1.0.dev21 → cmdbsyncer-4.1.1}/application/plugins/checkmk/tests/test_helpers.py +0 -0
- {cmdbsyncer-4.1.0.dev21 → cmdbsyncer-4.1.1}/application/plugins/checkmk/tests/test_import_v1.py +0 -0
- {cmdbsyncer-4.1.0.dev21 → cmdbsyncer-4.1.1}/application/plugins/checkmk/tests/test_import_v2.py +0 -0
- {cmdbsyncer-4.1.0.dev21 → cmdbsyncer-4.1.1}/application/plugins/checkmk/tests/test_inventorize.py +0 -0
- {cmdbsyncer-4.1.0.dev21 → cmdbsyncer-4.1.1}/application/plugins/checkmk/tests/test_notification_rules.py +0 -0
- {cmdbsyncer-4.1.0.dev21 → cmdbsyncer-4.1.1}/application/plugins/checkmk/tests/test_passwords.py +0 -0
- {cmdbsyncer-4.1.0.dev21 → cmdbsyncer-4.1.1}/application/plugins/checkmk/tests/test_poolfolder.py +0 -0
- {cmdbsyncer-4.1.0.dev21 → cmdbsyncer-4.1.1}/application/plugins/checkmk/tests/test_rules.py +0 -0
- {cmdbsyncer-4.1.0.dev21 → cmdbsyncer-4.1.1}/application/plugins/checkmk/tests/test_sites.py +0 -0
- {cmdbsyncer-4.1.0.dev21 → cmdbsyncer-4.1.1}/application/plugins/checkmk/tests/test_syncer.py +0 -0
- {cmdbsyncer-4.1.0.dev21 → cmdbsyncer-4.1.1}/application/plugins/checkmk/tests/test_tags.py +0 -0
- {cmdbsyncer-4.1.0.dev21 → cmdbsyncer-4.1.1}/application/plugins/checkmk/tests/test_users.py +0 -0
- {cmdbsyncer-4.1.0.dev21 → cmdbsyncer-4.1.1}/application/plugins/checkmk/users.py +0 -0
- {cmdbsyncer-4.1.0.dev21 → cmdbsyncer-4.1.1}/application/plugins/checkmk/views.py +0 -0
- {cmdbsyncer-4.1.0.dev21 → cmdbsyncer-4.1.1}/application/plugins/cisco_dna/__init__.py +0 -0
- {cmdbsyncer-4.1.0.dev21 → cmdbsyncer-4.1.1}/application/plugins/cisco_dna/plugin.json +0 -0
- {cmdbsyncer-4.1.0.dev21 → cmdbsyncer-4.1.1}/application/plugins/cisco_dna/syncer.py +0 -0
- {cmdbsyncer-4.1.0.dev21 → cmdbsyncer-4.1.1}/application/plugins/cron.py +0 -0
- {cmdbsyncer-4.1.0.dev21 → cmdbsyncer-4.1.1}/application/plugins/csv/__init__.py +0 -0
- {cmdbsyncer-4.1.0.dev21 → cmdbsyncer-4.1.1}/application/plugins/csv/csv.py +0 -0
- {cmdbsyncer-4.1.0.dev21 → cmdbsyncer-4.1.1}/application/plugins/csv/plugin.json +0 -0
- {cmdbsyncer-4.1.0.dev21 → cmdbsyncer-4.1.1}/application/plugins/file_requests.py +0 -0
- {cmdbsyncer-4.1.0.dev21 → cmdbsyncer-4.1.1}/application/plugins/idoit/__init__.py +0 -0
- {cmdbsyncer-4.1.0.dev21 → cmdbsyncer-4.1.1}/application/plugins/idoit/admin_views.py +0 -0
- {cmdbsyncer-4.1.0.dev21 → cmdbsyncer-4.1.1}/application/plugins/idoit/models.py +0 -0
- {cmdbsyncer-4.1.0.dev21 → cmdbsyncer-4.1.1}/application/plugins/idoit/plugin.json +0 -0
- {cmdbsyncer-4.1.0.dev21 → cmdbsyncer-4.1.1}/application/plugins/idoit/rules.py +0 -0
- {cmdbsyncer-4.1.0.dev21 → cmdbsyncer-4.1.1}/application/plugins/idoit/syncer.py +0 -0
- {cmdbsyncer-4.1.0.dev21 → cmdbsyncer-4.1.1}/application/plugins/idoit/views.py +0 -0
- {cmdbsyncer-4.1.0.dev21 → cmdbsyncer-4.1.1}/application/plugins/jdisc/__init__.py +0 -0
- {cmdbsyncer-4.1.0.dev21 → cmdbsyncer-4.1.1}/application/plugins/jdisc/applications.py +0 -0
- {cmdbsyncer-4.1.0.dev21 → cmdbsyncer-4.1.1}/application/plugins/jdisc/devices.py +0 -0
- {cmdbsyncer-4.1.0.dev21 → cmdbsyncer-4.1.1}/application/plugins/jdisc/executables.py +0 -0
- {cmdbsyncer-4.1.0.dev21 → cmdbsyncer-4.1.1}/application/plugins/jdisc/jdisc.py +0 -0
- {cmdbsyncer-4.1.0.dev21 → cmdbsyncer-4.1.1}/application/plugins/jdisc/plugin.json +0 -0
- {cmdbsyncer-4.1.0.dev21 → cmdbsyncer-4.1.1}/application/plugins/jira/__init__.py +0 -0
- {cmdbsyncer-4.1.0.dev21 → cmdbsyncer-4.1.1}/application/plugins/jira/jira.py +0 -0
- {cmdbsyncer-4.1.0.dev21 → cmdbsyncer-4.1.1}/application/plugins/jira/plugin.json +0 -0
- {cmdbsyncer-4.1.0.dev21 → cmdbsyncer-4.1.1}/application/plugins/jira_cloud/__init__.py +0 -0
- {cmdbsyncer-4.1.0.dev21 → cmdbsyncer-4.1.1}/application/plugins/jira_cloud/admin_views.py +0 -0
- {cmdbsyncer-4.1.0.dev21 → cmdbsyncer-4.1.1}/application/plugins/jira_cloud/export.py +0 -0
- {cmdbsyncer-4.1.0.dev21 → cmdbsyncer-4.1.1}/application/plugins/jira_cloud/jira_cloud.py +0 -0
- {cmdbsyncer-4.1.0.dev21 → cmdbsyncer-4.1.1}/application/plugins/jira_cloud/models.py +0 -0
- {cmdbsyncer-4.1.0.dev21 → cmdbsyncer-4.1.1}/application/plugins/jira_cloud/plugin.json +0 -0
- {cmdbsyncer-4.1.0.dev21 → cmdbsyncer-4.1.1}/application/plugins/jira_cloud/rules.py +0 -0
- {cmdbsyncer-4.1.0.dev21 → cmdbsyncer-4.1.1}/application/plugins/jira_cloud/schema_sync.py +0 -0
- {cmdbsyncer-4.1.0.dev21 → cmdbsyncer-4.1.1}/application/plugins/jira_cloud/views.py +0 -0
- {cmdbsyncer-4.1.0.dev21 → cmdbsyncer-4.1.1}/application/plugins/json/__init__.py +0 -0
- {cmdbsyncer-4.1.0.dev21 → cmdbsyncer-4.1.1}/application/plugins/json/json.py +0 -0
- {cmdbsyncer-4.1.0.dev21 → cmdbsyncer-4.1.1}/application/plugins/json/plugin.json +0 -0
- {cmdbsyncer-4.1.0.dev21 → cmdbsyncer-4.1.1}/application/plugins/ldap/__init__.py +0 -0
- {cmdbsyncer-4.1.0.dev21 → cmdbsyncer-4.1.1}/application/plugins/ldap/ldap.py +0 -0
- {cmdbsyncer-4.1.0.dev21 → cmdbsyncer-4.1.1}/application/plugins/ldap/plugin.json +0 -0
- {cmdbsyncer-4.1.0.dev21 → cmdbsyncer-4.1.1}/application/plugins/maintenance/__init__.py +0 -0
- {cmdbsyncer-4.1.0.dev21 → cmdbsyncer-4.1.1}/application/plugins/maintenance/plugin.json +0 -0
- {cmdbsyncer-4.1.0.dev21 → cmdbsyncer-4.1.1}/application/plugins/mssql/__init__.py +0 -0
- {cmdbsyncer-4.1.0.dev21 → cmdbsyncer-4.1.1}/application/plugins/mssql/plugin.json +0 -0
- {cmdbsyncer-4.1.0.dev21 → cmdbsyncer-4.1.1}/application/plugins/mysql/__init__.py +0 -0
- {cmdbsyncer-4.1.0.dev21 → cmdbsyncer-4.1.1}/application/plugins/mysql/mysql.py +0 -0
- {cmdbsyncer-4.1.0.dev21 → cmdbsyncer-4.1.1}/application/plugins/mysql/plugin.json +0 -0
- {cmdbsyncer-4.1.0.dev21 → cmdbsyncer-4.1.1}/application/plugins/netbox/__init__.py +0 -0
- {cmdbsyncer-4.1.0.dev21 → cmdbsyncer-4.1.1}/application/plugins/netbox/admin_views.py +0 -0
- {cmdbsyncer-4.1.0.dev21 → cmdbsyncer-4.1.1}/application/plugins/netbox/cluster.py +0 -0
- {cmdbsyncer-4.1.0.dev21 → cmdbsyncer-4.1.1}/application/plugins/netbox/contacts.py +0 -0
- {cmdbsyncer-4.1.0.dev21 → cmdbsyncer-4.1.1}/application/plugins/netbox/dataflow.py +0 -0
- {cmdbsyncer-4.1.0.dev21 → cmdbsyncer-4.1.1}/application/plugins/netbox/devices.py +0 -0
- {cmdbsyncer-4.1.0.dev21 → cmdbsyncer-4.1.1}/application/plugins/netbox/interfaces.py +0 -0
- {cmdbsyncer-4.1.0.dev21 → cmdbsyncer-4.1.1}/application/plugins/netbox/ips.py +0 -0
- {cmdbsyncer-4.1.0.dev21 → cmdbsyncer-4.1.1}/application/plugins/netbox/models.py +0 -0
- {cmdbsyncer-4.1.0.dev21 → cmdbsyncer-4.1.1}/application/plugins/netbox/netbox.py +0 -0
- {cmdbsyncer-4.1.0.dev21 → cmdbsyncer-4.1.1}/application/plugins/netbox/networks.py +0 -0
- {cmdbsyncer-4.1.0.dev21 → cmdbsyncer-4.1.1}/application/plugins/netbox/plugin.json +0 -0
- {cmdbsyncer-4.1.0.dev21 → cmdbsyncer-4.1.1}/application/plugins/netbox/prefixes.py +0 -0
- {cmdbsyncer-4.1.0.dev21 → cmdbsyncer-4.1.1}/application/plugins/netbox/rules.py +0 -0
- {cmdbsyncer-4.1.0.dev21 → cmdbsyncer-4.1.1}/application/plugins/netbox/views.py +0 -0
- {cmdbsyncer-4.1.0.dev21 → cmdbsyncer-4.1.1}/application/plugins/netbox/virtualmachines.py +0 -0
- {cmdbsyncer-4.1.0.dev21 → cmdbsyncer-4.1.1}/application/plugins/prtg/__init__.py +0 -0
- {cmdbsyncer-4.1.0.dev21 → cmdbsyncer-4.1.1}/application/plugins/prtg/plugin.json +0 -0
- {cmdbsyncer-4.1.0.dev21 → cmdbsyncer-4.1.1}/application/plugins/prtg/prtg.py +0 -0
- {cmdbsyncer-4.1.0.dev21 → cmdbsyncer-4.1.1}/application/plugins/pyodbc/__init__.py +0 -0
- {cmdbsyncer-4.1.0.dev21 → cmdbsyncer-4.1.1}/application/plugins/pyodbc/plugin.json +0 -0
- {cmdbsyncer-4.1.0.dev21 → cmdbsyncer-4.1.1}/application/plugins/pyodbc/pyodbc.py +0 -0
- {cmdbsyncer-4.1.0.dev21 → cmdbsyncer-4.1.1}/application/plugins/rest/__init__.py +0 -0
- {cmdbsyncer-4.1.0.dev21 → cmdbsyncer-4.1.1}/application/plugins/rest/plugin.json +0 -0
- {cmdbsyncer-4.1.0.dev21 → cmdbsyncer-4.1.1}/application/plugins/rest/rest.py +0 -0
- {cmdbsyncer-4.1.0.dev21 → cmdbsyncer-4.1.1}/application/plugins/rules/__init__.py +0 -0
- {cmdbsyncer-4.1.0.dev21 → cmdbsyncer-4.1.1}/application/plugins/rules/admin_views.py +0 -0
- {cmdbsyncer-4.1.0.dev21 → cmdbsyncer-4.1.1}/application/plugins/rules/autorules.py +0 -0
- {cmdbsyncer-4.1.0.dev21 → cmdbsyncer-4.1.1}/application/plugins/rules/models.py +0 -0
- {cmdbsyncer-4.1.0.dev21 → cmdbsyncer-4.1.1}/application/plugins/rules/plugin.json +0 -0
- {cmdbsyncer-4.1.0.dev21 → cmdbsyncer-4.1.1}/application/plugins/rules/rule_definitions.py +0 -0
- {cmdbsyncer-4.1.0.dev21 → cmdbsyncer-4.1.1}/application/plugins/rules/rule_import_export.py +0 -0
- {cmdbsyncer-4.1.0.dev21 → cmdbsyncer-4.1.1}/application/plugins/rules/views.py +0 -0
- {cmdbsyncer-4.1.0.dev21 → cmdbsyncer-4.1.1}/application/plugins/syncer_shell.py +0 -0
- {cmdbsyncer-4.1.0.dev21 → cmdbsyncer-4.1.1}/application/plugins/vmware/__init__.py +0 -0
- {cmdbsyncer-4.1.0.dev21 → cmdbsyncer-4.1.1}/application/plugins/vmware/admin_views.py +0 -0
- {cmdbsyncer-4.1.0.dev21 → cmdbsyncer-4.1.1}/application/plugins/vmware/custom_attributes.py +0 -0
- {cmdbsyncer-4.1.0.dev21 → cmdbsyncer-4.1.1}/application/plugins/vmware/models.py +0 -0
- {cmdbsyncer-4.1.0.dev21 → cmdbsyncer-4.1.1}/application/plugins/vmware/plugin.json +0 -0
- {cmdbsyncer-4.1.0.dev21 → cmdbsyncer-4.1.1}/application/plugins/vmware/rules.py +0 -0
- {cmdbsyncer-4.1.0.dev21 → cmdbsyncer-4.1.1}/application/plugins/vmware/views.py +0 -0
- {cmdbsyncer-4.1.0.dev21 → cmdbsyncer-4.1.1}/application/plugins/vmware/vmware.py +0 -0
- {cmdbsyncer-4.1.0.dev21 → cmdbsyncer-4.1.1}/application/plugins/yml/__init__.py +0 -0
- {cmdbsyncer-4.1.0.dev21 → cmdbsyncer-4.1.1}/application/plugins/yml/plugin.json +0 -0
- {cmdbsyncer-4.1.0.dev21 → cmdbsyncer-4.1.1}/application/plugins/yml/yml.py +0 -0
- {cmdbsyncer-4.1.0.dev21 → cmdbsyncer-4.1.1}/application/plugins_cli.py +0 -0
- {cmdbsyncer-4.1.0.dev21 → cmdbsyncer-4.1.1}/application/static/css/cmdbsyncer.css +0 -0
- {cmdbsyncer-4.1.0.dev21 → cmdbsyncer-4.1.1}/application/static/js/main.js +0 -0
- {cmdbsyncer-4.1.0.dev21 → cmdbsyncer-4.1.1}/application/static/logo_white.png +0 -0
- {cmdbsyncer-4.1.0.dev21 → cmdbsyncer-4.1.1}/application/templates/_brand.html +0 -0
- {cmdbsyncer-4.1.0.dev21 → cmdbsyncer-4.1.1}/application/templates/_theme.html +0 -0
- {cmdbsyncer-4.1.0.dev21 → cmdbsyncer-4.1.1}/application/templates/admin/_host_tabs.html +0 -0
- {cmdbsyncer-4.1.0.dev21 → cmdbsyncer-4.1.1}/application/templates/admin/account_pick_type.html +0 -0
- {cmdbsyncer-4.1.0.dev21 → cmdbsyncer-4.1.1}/application/templates/admin/ansible_project_detail.html +0 -0
- {cmdbsyncer-4.1.0.dev21 → cmdbsyncer-4.1.1}/application/templates/admin/ansible_rule_list.html +0 -0
- {cmdbsyncer-4.1.0.dev21 → cmdbsyncer-4.1.1}/application/templates/admin/bulk_label_form.html +0 -0
- {cmdbsyncer-4.1.0.dev21 → cmdbsyncer-4.1.1}/application/templates/admin/changelog_archive.html +0 -0
- {cmdbsyncer-4.1.0.dev21 → cmdbsyncer-4.1.1}/application/templates/admin/checkmk_rule_mngmt_list.html +0 -0
- {cmdbsyncer-4.1.0.dev21 → cmdbsyncer-4.1.1}/application/templates/admin/checkmk_settings_list.html +0 -0
- {cmdbsyncer-4.1.0.dev21 → cmdbsyncer-4.1.1}/application/templates/admin/copy_as_new_form.html +0 -0
- {cmdbsyncer-4.1.0.dev21 → cmdbsyncer-4.1.1}/application/templates/admin/data_quality.html +0 -0
- {cmdbsyncer-4.1.0.dev21 → cmdbsyncer-4.1.1}/application/templates/admin/file/list.html +0 -0
- {cmdbsyncer-4.1.0.dev21 → cmdbsyncer-4.1.1}/application/templates/admin/file/modals/form.html +0 -0
- {cmdbsyncer-4.1.0.dev21 → cmdbsyncer-4.1.1}/application/templates/admin/host_details.html +0 -0
- {cmdbsyncer-4.1.0.dev21 → cmdbsyncer-4.1.1}/application/templates/admin/host_edit.html +0 -0
- {cmdbsyncer-4.1.0.dev21 → cmdbsyncer-4.1.1}/application/templates/admin/host_inventory_tree.html +0 -0
- {cmdbsyncer-4.1.0.dev21 → cmdbsyncer-4.1.1}/application/templates/admin/host_list.html +0 -0
- {cmdbsyncer-4.1.0.dev21 → cmdbsyncer-4.1.1}/application/templates/admin/host_relations_graph.html +0 -0
- {cmdbsyncer-4.1.0.dev21 → cmdbsyncer-4.1.1}/application/templates/admin/host_timeline.html +0 -0
- {cmdbsyncer-4.1.0.dev21 → cmdbsyncer-4.1.1}/application/templates/admin/index.html +0 -0
- {cmdbsyncer-4.1.0.dev21 → cmdbsyncer-4.1.1}/application/templates/admin/local_config_editor.html +0 -0
- {cmdbsyncer-4.1.0.dev21 → cmdbsyncer-4.1.1}/application/templates/admin/master.html +0 -0
- {cmdbsyncer-4.1.0.dev21 → cmdbsyncer-4.1.1}/application/templates/admin/model/clone_confirm.html +0 -0
- {cmdbsyncer-4.1.0.dev21 → cmdbsyncer-4.1.1}/application/templates/admin/model/inline_list_base.html +0 -0
- {cmdbsyncer-4.1.0.dev21 → cmdbsyncer-4.1.1}/application/templates/admin/object_list.html +0 -0
- {cmdbsyncer-4.1.0.dev21 → cmdbsyncer-4.1.1}/application/templates/admin/set_cmk_version_form.html +0 -0
- {cmdbsyncer-4.1.0.dev21 → cmdbsyncer-4.1.1}/application/templates/admin/set_template_form.html +0 -0
- {cmdbsyncer-4.1.0.dev21 → cmdbsyncer-4.1.1}/application/templates/base.html +0 -0
- {cmdbsyncer-4.1.0.dev21 → cmdbsyncer-4.1.1}/application/templates/change_password.html +0 -0
- {cmdbsyncer-4.1.0.dev21 → cmdbsyncer-4.1.1}/application/templates/debug.html +0 -0
- {cmdbsyncer-4.1.0.dev21 → cmdbsyncer-4.1.1}/application/templates/debug_host.html +0 -0
- {cmdbsyncer-4.1.0.dev21 → cmdbsyncer-4.1.1}/application/templates/email/newuser.html +0 -0
- {cmdbsyncer-4.1.0.dev21 → cmdbsyncer-4.1.1}/application/templates/email/notification.html +0 -0
- {cmdbsyncer-4.1.0.dev21 → cmdbsyncer-4.1.1}/application/templates/email/resetpassword.html +0 -0
- {cmdbsyncer-4.1.0.dev21 → cmdbsyncer-4.1.1}/application/templates/formular.html +0 -0
- {cmdbsyncer-4.1.0.dev21 → cmdbsyncer-4.1.1}/application/templates/license_info.html +0 -0
- {cmdbsyncer-4.1.0.dev21 → cmdbsyncer-4.1.1}/application/templates/login.html +0 -0
- {cmdbsyncer-4.1.0.dev21 → cmdbsyncer-4.1.1}/application/templates/logout_confirm.html +0 -0
- {cmdbsyncer-4.1.0.dev21 → cmdbsyncer-4.1.1}/application/templates/request_password.html +0 -0
- {cmdbsyncer-4.1.0.dev21 → cmdbsyncer-4.1.1}/application/templates/set_2fa.html +0 -0
- {cmdbsyncer-4.1.0.dev21 → cmdbsyncer-4.1.1}/application/templates/set_theme.html +0 -0
- {cmdbsyncer-4.1.0.dev21 → cmdbsyncer-4.1.1}/application/themes/dracula.css +0 -0
- {cmdbsyncer-4.1.0.dev21 → cmdbsyncer-4.1.1}/application/themes/gruvbox-dark.css +0 -0
- {cmdbsyncer-4.1.0.dev21 → cmdbsyncer-4.1.1}/application/themes/gruvbox-light.css +0 -0
- {cmdbsyncer-4.1.0.dev21 → cmdbsyncer-4.1.1}/application/themes/nord.css +0 -0
- {cmdbsyncer-4.1.0.dev21 → cmdbsyncer-4.1.1}/application/themes_registry.py +0 -0
- {cmdbsyncer-4.1.0.dev21 → cmdbsyncer-4.1.1}/application/views/_form_fields.py +0 -0
- {cmdbsyncer-4.1.0.dev21 → cmdbsyncer-4.1.1}/application/views/_form_sections.py +0 -0
- {cmdbsyncer-4.1.0.dev21 → cmdbsyncer-4.1.1}/application/views/account.py +0 -0
- {cmdbsyncer-4.1.0.dev21 → cmdbsyncer-4.1.1}/application/views/config.py +0 -0
- {cmdbsyncer-4.1.0.dev21 → cmdbsyncer-4.1.1}/application/views/cron.py +0 -0
- {cmdbsyncer-4.1.0.dev21 → cmdbsyncer-4.1.1}/application/views/data_quality.py +0 -0
- {cmdbsyncer-4.1.0.dev21 → cmdbsyncer-4.1.1}/application/views/default.py +0 -0
- {cmdbsyncer-4.1.0.dev21 → cmdbsyncer-4.1.1}/application/views/field_approval.py +0 -0
- {cmdbsyncer-4.1.0.dev21 → cmdbsyncer-4.1.1}/application/views/fileadmin.py +0 -0
- {cmdbsyncer-4.1.0.dev21 → cmdbsyncer-4.1.1}/application/views/host.py +0 -0
- {cmdbsyncer-4.1.0.dev21 → cmdbsyncer-4.1.1}/application/views/host_filters.py +0 -0
- {cmdbsyncer-4.1.0.dev21 → cmdbsyncer-4.1.1}/application/views/host_renderers.py +0 -0
- {cmdbsyncer-4.1.0.dev21 → cmdbsyncer-4.1.1}/application/views/host_widgets.py +0 -0
- {cmdbsyncer-4.1.0.dev21 → cmdbsyncer-4.1.1}/application/views/license.py +0 -0
- {cmdbsyncer-4.1.0.dev21 → cmdbsyncer-4.1.1}/application/views/notification_channel.py +0 -0
- {cmdbsyncer-4.1.0.dev21 → cmdbsyncer-4.1.1}/application/views/notification_rule.py +0 -0
- {cmdbsyncer-4.1.0.dev21 → cmdbsyncer-4.1.1}/application/views/saved_search.py +0 -0
- {cmdbsyncer-4.1.0.dev21 → cmdbsyncer-4.1.1}/application/views/user.py +0 -0
- {cmdbsyncer-4.1.0.dev21 → cmdbsyncer-4.1.1}/cmdbsyncer.egg-info/SOURCES.txt +0 -0
- {cmdbsyncer-4.1.0.dev21 → cmdbsyncer-4.1.1}/cmdbsyncer.egg-info/dependency_links.txt +0 -0
- {cmdbsyncer-4.1.0.dev21 → cmdbsyncer-4.1.1}/cmdbsyncer.egg-info/entry_points.txt +0 -0
- {cmdbsyncer-4.1.0.dev21 → cmdbsyncer-4.1.1}/cmdbsyncer.egg-info/requires.txt +0 -0
- {cmdbsyncer-4.1.0.dev21 → cmdbsyncer-4.1.1}/cmdbsyncer.egg-info/top_level.txt +0 -0
- {cmdbsyncer-4.1.0.dev21 → cmdbsyncer-4.1.1}/requirements-ansible.txt +0 -0
- {cmdbsyncer-4.1.0.dev21 → cmdbsyncer-4.1.1}/requirements-extras.txt +0 -0
- {cmdbsyncer-4.1.0.dev21 → cmdbsyncer-4.1.1}/requirements.txt +0 -0
- {cmdbsyncer-4.1.0.dev21 → cmdbsyncer-4.1.1}/setup.cfg +0 -0
- {cmdbsyncer-4.1.0.dev21 → cmdbsyncer-4.1.1}/syncerapi/__init__.py +0 -0
- {cmdbsyncer-4.1.0.dev21 → cmdbsyncer-4.1.1}/syncerapi/v1/__init__.py +0 -0
- {cmdbsyncer-4.1.0.dev21 → cmdbsyncer-4.1.1}/syncerapi/v1/core/__init__.py +0 -0
- {cmdbsyncer-4.1.0.dev21 → cmdbsyncer-4.1.1}/syncerapi/v1/inventory/__init__.py +0 -0
- {cmdbsyncer-4.1.0.dev21 → cmdbsyncer-4.1.1}/syncerapi/v1/rest/__init__.py +0 -0
- {cmdbsyncer-4.1.0.dev21 → cmdbsyncer-4.1.1}/tests/test_api.py +0 -0
- {cmdbsyncer-4.1.0.dev21 → cmdbsyncer-4.1.1}/tests/test_api_csrf_invariant.py +0 -0
- {cmdbsyncer-4.1.0.dev21 → cmdbsyncer-4.1.1}/tests/test_default_view.py +0 -0
- {cmdbsyncer-4.1.0.dev21 → cmdbsyncer-4.1.1}/tests/test_mongo_keys.py +0 -0
- {cmdbsyncer-4.1.0.dev21 → cmdbsyncer-4.1.1}/tests/test_plugin.py +0 -0
- {cmdbsyncer-4.1.0.dev21 → cmdbsyncer-4.1.1}/tests/test_plugin_ssti.py +0 -0
- {cmdbsyncer-4.1.0.dev21 → cmdbsyncer-4.1.1}/tests/test_plugins_cli.py +0 -0
- {cmdbsyncer-4.1.0.dev21 → cmdbsyncer-4.1.1}/tests/test_rule.py +0 -0
- {cmdbsyncer-4.1.0.dev21 → cmdbsyncer-4.1.1}/tests/test_rule_match.py +0 -0
- {cmdbsyncer-4.1.0.dev21 → cmdbsyncer-4.1.1}/tests/test_webhook_token_hash.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: cmdbsyncer
|
|
3
|
-
Version: 4.1.
|
|
3
|
+
Version: 4.1.1
|
|
4
4
|
Summary: Rule-based modular synchronizer for Checkmk, Netbox, Ansible, I-DOIT, Jira CMDB and 15+ other CMDB/monitoring systems
|
|
5
5
|
Author-email: Kuhn & Ruess GmbH <info@kuhn-ruess.de>
|
|
6
6
|
Maintainer-email: Bastian Kuhn <mail@bastian-kuhn.de>
|
|
@@ -94,13 +94,42 @@ def _has_unreleased_entries():
|
|
|
94
94
|
return bool(match and match.group(1).strip())
|
|
95
95
|
|
|
96
96
|
|
|
97
|
-
def
|
|
98
|
-
"""
|
|
97
|
+
def _installed_version():
|
|
98
|
+
"""The version recorded in installed-package metadata, or None.
|
|
99
|
+
|
|
100
|
+
`pyproject.toml` carries the authoritative pre-release counter
|
|
101
|
+
(``4.1.0.dev22`` etc.) but is gone after ``pip install``. The wheel's
|
|
102
|
+
dist-info keeps it, so ``importlib.metadata`` recovers the suffix on
|
|
103
|
+
both PyPI installs and editable installs. Source checkouts without
|
|
104
|
+
an installation just fall through to the changelog-derived version.
|
|
105
|
+
"""
|
|
106
|
+
try:
|
|
107
|
+
from importlib.metadata import ( # pylint: disable=import-outside-toplevel
|
|
108
|
+
PackageNotFoundError, version as _md_version,
|
|
109
|
+
)
|
|
110
|
+
return _md_version('cmdbsyncer')
|
|
111
|
+
except (PackageNotFoundError, ImportError, ModuleNotFoundError):
|
|
112
|
+
return None
|
|
99
113
|
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
114
|
+
|
|
115
|
+
def get_display_version():
|
|
116
|
+
"""Display form: ``4.0.0`` / ``4.0.0-dev22`` / ``3.12-LTS3``.
|
|
117
|
+
|
|
118
|
+
Resolution:
|
|
119
|
+
- LTS lines keep their ``-LTS`` suffix (PEP 440 stores it as ``+lts``).
|
|
120
|
+
- If the installed metadata carries a pre-release suffix (``.devN``,
|
|
121
|
+
``aN``, ``bN``, ``rcN``), surface it as ``-dev22`` / ``-rc1`` etc.
|
|
122
|
+
so users can tell which dev build they are on.
|
|
123
|
+
- Otherwise, while an ``## Unreleased`` section is still open in the
|
|
124
|
+
active changelog, append a bare ``-dev`` (source checkouts before
|
|
125
|
+
the next pre-release is cut).
|
|
103
126
|
"""
|
|
104
127
|
if '+lts' in __version__:
|
|
105
128
|
return __version__.replace('+lts', '-LTS')
|
|
129
|
+
installed = _installed_version()
|
|
130
|
+
if installed:
|
|
131
|
+
match = re.search(r'\.(dev\d+|a\d+|b\d+|rc\d+)$', installed)
|
|
132
|
+
if match:
|
|
133
|
+
base = installed[:match.start()]
|
|
134
|
+
return f'{base}-{match.group(1)}'
|
|
106
135
|
return f'{__version__}-dev' if _has_unreleased_entries() else __version__
|
|
@@ -14,9 +14,12 @@ API_BP = Blueprint('api', __name__)
|
|
|
14
14
|
|
|
15
15
|
# Rate-limit API auth failures per client IP. Only 401 responses deduct from
|
|
16
16
|
# the bucket, so legitimate high-volume API traffic is not throttled — only
|
|
17
|
-
# brute-force / credential-stuffing attempts are.
|
|
17
|
+
# brute-force / credential-stuffing attempts are. Uses its own bucket
|
|
18
|
+
# (API_RATE_LIMIT), independent of the much stricter form-login budget
|
|
19
|
+
# (AUTH_RATE_LIMIT, used by /auth) — otherwise a polling monitoring agent
|
|
20
|
+
# whose creds are momentarily wrong can lock the whole API for an hour.
|
|
18
21
|
limiter.limit(
|
|
19
|
-
lambda: app.config.get('
|
|
22
|
+
lambda: app.config.get('API_RATE_LIMIT', '30 per minute; 300 per hour'),
|
|
20
23
|
deduct_when=lambda response: response.status_code == 401,
|
|
21
24
|
)(API_BP)
|
|
22
25
|
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
BUILD_DATE=2026-05-13T13:17:45Z
|
|
@@ -1,6 +1,11 @@
|
|
|
1
1
|
# Version 4.1
|
|
2
2
|
|
|
3
|
-
##
|
|
3
|
+
## Version 4.1.1
|
|
4
|
+
|
|
5
|
+
### API
|
|
6
|
+
- FIX: Separate `API_RATE_LIMIT` for `/api/v1` (default `30/min; 300/hour`) so a few 401s no longer lock out monitoring polling for the rest of the hour
|
|
7
|
+
|
|
8
|
+
## Version 4.1.0
|
|
4
9
|
|
|
5
10
|
### Ansible
|
|
6
11
|
- FEAT: Trigger Ansible playbook runs from the host UI with live output and per-host run history
|
|
@@ -16,6 +21,7 @@
|
|
|
16
21
|
- FIX: `ansible/inventory`, `ansible/inventory_single` and `ansible/cmk_server_inventory` find the pip-installed `cmdbsyncer` on PATH instead of failing with "No such file or directory" when ansible/ lives at `/opt/cmdbsyncer/ansible/`, and they export `CMDBSYNCER_CONFIG_DIR` pointing at the shim's parent directory so the called CLI loads `local_config.py` regardless of ansible-playbook's cwd. The `CMDBSYNCER_CONFIG_DIR` lookup is now honored at package-import time (not only inside the CLI entry point), which is when `local_config.py` is actually loaded — so the shim's env var really does its job and `ansible-playbook` from `/opt/cmdbsyncer/ansible/` no longer fails with "CRYPTOGRAPHY_KEY is not set"
|
|
17
22
|
- FIX: Ansible Playbook Runner finds `playbooks.yml` at `<install-root>/ansible/` on pip installs (e.g. `/opt/cmdbsyncer/ansible/`) instead of pointing at the unused `<site-packages>/ansible/` path
|
|
18
23
|
- FIX: GUI playbook runs under mod_wsgi/gunicorn use a per-run temp directory for Ansible's local scratch state instead of inheriting the web user's read-only `$HOME` — fixes "Permission denied: /usr/share/httpd/.ansible/tmp"
|
|
24
|
+
- FIX: Ansible Playbook Runner input labels and empty-state border read from the theme palette instead of hardcoded greys, so they stay legible on Gruvbox Dark / Nord / Dracula
|
|
19
25
|
- FIX: Offline bundle `install.sh` no longer swallows the playbook copy when `pip install` fails — both steps run independently and report their own status, and `ANSIBLE_TARGET` is replaced by default (no more `FORCE=1` dance for re-installs)
|
|
20
26
|
|
|
21
27
|
### Hosts
|
|
@@ -106,6 +112,7 @@
|
|
|
106
112
|
- FIX: PyPI installs now ship every plugin's `plugin.json` (was only the `.py` files), and the user `plugins/` directory plus `disabled_plugins.json` next to `app.wsgi` are picked up correctly instead of being looked for inside `site-packages`
|
|
107
113
|
- FEAT: Offline installation bundle always ships base, extras and ansible Python dependencies plus the default Ansible playbook collection, and the bundled `install.sh` deploys the playbooks to `/opt/cmdbsyncer/ansible` (override via `ANSIBLE_TARGET`, skip with `SKIP_ANSIBLE=1`, replace existing target with `FORCE=1`)
|
|
108
114
|
- FEAT: New `make release-pre` target ships sequential pre-release builds (`.devN` / `aN` / `bN` / `rcN`) to PyPI without requiring a hand-edit before each upload; `tools/build_offline_bundle.sh --syncer-version 4.1.0.dev3 --enterprise-version 0.3.9.dev1` pins the offline bundle to those pre-releases so QA can test them on air-gapped systems
|
|
115
|
+
- FEAT: Header version display surfaces the installed pre-release counter — `4.1.0-dev22` / `4.1.0-rc1` etc. — instead of the bare `-dev` suffix, so operators can tell which build is running
|
|
109
116
|
|
|
110
117
|
### Refactor
|
|
111
118
|
- REFACTOR: `application/views/host.py` split into focused modules (widgets, filters, renderers)
|
|
@@ -196,6 +196,14 @@ class BaseConfig():
|
|
|
196
196
|
# Applied per client IP to the POST handler; GET (rendering the form) is
|
|
197
197
|
# not rate-limited.
|
|
198
198
|
AUTH_RATE_LIMIT = '3 per minute; 10 per hour'
|
|
199
|
+
# Rate limit for the /api/v1 namespace. Only 401 responses deduct from
|
|
200
|
+
# the bucket (see application/api/views.py), so legitimate polling
|
|
201
|
+
# never spends quota. Picked generous enough that a misconfigured
|
|
202
|
+
# monitoring agent producing repeated 401s does not lock out the whole
|
|
203
|
+
# API for the rest of the hour, while still throttling credential
|
|
204
|
+
# stuffing. Set tighter via local_config.py if your network is fully
|
|
205
|
+
# trusted, or looser if you have many polling clients.
|
|
206
|
+
API_RATE_LIMIT = '30 per minute; 300 per hour'
|
|
199
207
|
# Flask-Limiter storage backend. Default is in-process memory, which is
|
|
200
208
|
# fine for single-worker deployments. For multiple workers, set to
|
|
201
209
|
# e.g. 'redis://localhost:6379' or 'mongodb://localhost:27017/cmdb-api'.
|
|
@@ -158,6 +158,11 @@ PRESETS = [
|
|
|
158
158
|
'default': '3 per minute; 10 per hour',
|
|
159
159
|
'hint': 'Per-IP rate limit for login + password-reset POSTs '
|
|
160
160
|
'(Flask-Limiter syntax).'},
|
|
161
|
+
{'key': 'API_RATE_LIMIT', 'type': 'str',
|
|
162
|
+
'default': '30 per minute; 300 per hour',
|
|
163
|
+
'hint': 'Per-IP rate limit for /api/v1. Only 401 responses '
|
|
164
|
+
'count, so legitimate polling never spends quota. '
|
|
165
|
+
'Raise if your monitoring polls many endpoints.'},
|
|
161
166
|
{'key': 'RATELIMIT_STORAGE_URI', 'type': 'str',
|
|
162
167
|
'default': 'memory://',
|
|
163
168
|
'hint': 'Backend for rate-limit counters. Use redis:// or '
|
{cmdbsyncer-4.1.0.dev21 → cmdbsyncer-4.1.1}/application/templates/admin/ansible_playbook_run.html
RENAMED
|
@@ -22,7 +22,7 @@
|
|
|
22
22
|
}
|
|
23
23
|
.ansible-runner-card label {
|
|
24
24
|
font-size: 11px;
|
|
25
|
-
color: #555;
|
|
25
|
+
color: var(--surface-muted, #555);
|
|
26
26
|
margin: 0 0 2px 0;
|
|
27
27
|
display: block;
|
|
28
28
|
text-transform: uppercase;
|
|
@@ -32,11 +32,12 @@
|
|
|
32
32
|
font-size: 14px;
|
|
33
33
|
font-weight: 600;
|
|
34
34
|
padding: 6px 0 0 0;
|
|
35
|
+
color: var(--surface-text, inherit);
|
|
35
36
|
}
|
|
36
37
|
.ansible-runner-card .playbook-file {
|
|
37
38
|
font-family: monospace;
|
|
38
39
|
font-size: 11px;
|
|
39
|
-
color: #888;
|
|
40
|
+
color: var(--surface-muted, #888);
|
|
40
41
|
padding-bottom: 4px;
|
|
41
42
|
}
|
|
42
43
|
.ansible-runner-card input.form-control {
|
|
@@ -46,8 +47,8 @@
|
|
|
46
47
|
.ansible-empty {
|
|
47
48
|
padding: 24px;
|
|
48
49
|
text-align: center;
|
|
49
|
-
color: #888;
|
|
50
|
-
border: 1px dashed #ccc;
|
|
50
|
+
color: var(--surface-muted, #888);
|
|
51
|
+
border: 1px dashed var(--surface-border, #ccc);
|
|
51
52
|
border-radius: 4px;
|
|
52
53
|
}
|
|
53
54
|
</style>
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: cmdbsyncer
|
|
3
|
-
Version: 4.1.
|
|
3
|
+
Version: 4.1.1
|
|
4
4
|
Summary: Rule-based modular synchronizer for Checkmk, Netbox, Ansible, I-DOIT, Jira CMDB and 15+ other CMDB/monitoring systems
|
|
5
5
|
Author-email: Kuhn & Ruess GmbH <info@kuhn-ruess.de>
|
|
6
6
|
Maintainer-email: Bastian Kuhn <mail@bastian-kuhn.de>
|
|
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "cmdbsyncer"
|
|
7
|
-
version = "4.1.
|
|
7
|
+
version = "4.1.1"
|
|
8
8
|
description = "Rule-based modular synchronizer for Checkmk, Netbox, Ansible, I-DOIT, Jira CMDB and 15+ other CMDB/monitoring systems"
|
|
9
9
|
readme = "README.md"
|
|
10
10
|
license = { text = "MIT" }
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
BUILD_DATE=2026-05-13T08:04:42Z
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{cmdbsyncer-4.1.0.dev21 → cmdbsyncer-4.1.1}/application/notices/strict_certificate_verification.txt
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{cmdbsyncer-4.1.0.dev21 → cmdbsyncer-4.1.1}/application/plugins/checkmk/notification_rules.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{cmdbsyncer-4.1.0.dev21 → cmdbsyncer-4.1.1}/application/plugins/checkmk/tests/test_cmk_rules.py
RENAMED
|
File without changes
|
|
File without changes
|
{cmdbsyncer-4.1.0.dev21 → cmdbsyncer-4.1.1}/application/plugins/checkmk/tests/test_downtimes.py
RENAMED
|
File without changes
|
{cmdbsyncer-4.1.0.dev21 → cmdbsyncer-4.1.1}/application/plugins/checkmk/tests/test_groups.py
RENAMED
|
File without changes
|
{cmdbsyncer-4.1.0.dev21 → cmdbsyncer-4.1.1}/application/plugins/checkmk/tests/test_helpers.py
RENAMED
|
File without changes
|
{cmdbsyncer-4.1.0.dev21 → cmdbsyncer-4.1.1}/application/plugins/checkmk/tests/test_import_v1.py
RENAMED
|
File without changes
|
{cmdbsyncer-4.1.0.dev21 → cmdbsyncer-4.1.1}/application/plugins/checkmk/tests/test_import_v2.py
RENAMED
|
File without changes
|
{cmdbsyncer-4.1.0.dev21 → cmdbsyncer-4.1.1}/application/plugins/checkmk/tests/test_inventorize.py
RENAMED
|
File without changes
|
|
File without changes
|
{cmdbsyncer-4.1.0.dev21 → cmdbsyncer-4.1.1}/application/plugins/checkmk/tests/test_passwords.py
RENAMED
|
File without changes
|
{cmdbsyncer-4.1.0.dev21 → cmdbsyncer-4.1.1}/application/plugins/checkmk/tests/test_poolfolder.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{cmdbsyncer-4.1.0.dev21 → cmdbsyncer-4.1.1}/application/plugins/checkmk/tests/test_syncer.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|