argus-server 2.1.0__tar.gz → 2.2.0__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.
- {argus_server-2.1.0 → argus_server-2.2.0}/CHANGELOG.md +63 -0
- argus_server-2.2.0/CONTRIBUTING.rst +56 -0
- argus_server-2.2.0/CONTRIBUTORS.md +36 -0
- {argus_server-2.1.0 → argus_server-2.2.0}/Dockerfile +1 -1
- {argus_server-2.1.0 → argus_server-2.2.0}/Makefile +6 -1
- {argus_server-2.1.0 → argus_server-2.2.0}/NOTES.md +28 -27
- {argus_server-2.1.0 → argus_server-2.2.0}/PKG-INFO +13 -6
- {argus_server-2.1.0 → argus_server-2.2.0}/README.md +9 -0
- {argus_server-2.1.0 → argus_server-2.2.0}/docker/Dockerfile +10 -3
- {argus_server-2.1.0 → argus_server-2.2.0}/docker/README.md +3 -4
- {argus_server-2.1.0 → argus_server-2.2.0}/docker/docker-entrypoint.sh +1 -2
- {argus_server-2.1.0 → argus_server-2.2.0}/docker-compose.yml +0 -7
- {argus_server-2.1.0 → argus_server-2.2.0}/docker-entrypoint.sh +1 -1
- argus_server-2.2.0/docs/development/howtos/change-settings.rst +82 -0
- argus_server-2.2.0/docs/development/howtos/howtos-for-git.rst +37 -0
- argus_server-2.2.0/docs/development/howtos/howtos-for-github.rst +26 -0
- argus_server-2.2.0/docs/development/howtos/update-contributors.rst +62 -0
- argus_server-2.2.0/docs/development/makefile-rules.rst +93 -0
- {argus_server-2.1.0 → argus_server-2.2.0}/docs/development.rst +1 -0
- argus_server-2.2.0/docs/img/default_timeslot.png +0 -0
- argus_server-2.2.0/docs/img/destinations_view.png +0 -0
- argus_server-2.2.0/docs/img/example_timeslot.png +0 -0
- argus_server-2.2.0/docs/img/filter_selector.png +0 -0
- argus_server-2.2.0/docs/img/incident_details_view.png +0 -0
- argus_server-2.2.0/docs/img/incidents_filter.png +0 -0
- argus_server-2.2.0/docs/img/incidents_page.png +0 -0
- argus_server-2.2.0/docs/img/new_notification_profile.png +0 -0
- argus_server-2.2.0/docs/img/notification_profiles.png +0 -0
- argus_server-2.2.0/docs/img/synced_destination_delete_error.png +0 -0
- argus_server-2.2.0/docs/img/timeslots_view.png +0 -0
- argus_server-2.2.0/docs/img/unsaved_recurrence.png +0 -0
- argus_server-2.2.0/docs/img/user_menu.png +0 -0
- {argus_server-2.1.0 → argus_server-2.2.0}/docs/integrations/glue-services/index.rst +44 -0
- {argus_server-2.1.0 → argus_server-2.2.0}/docs/reference/htmx-frontend.rst +26 -87
- {argus_server-2.1.0 → argus_server-2.2.0}/docs/user-manual.rst +354 -245
- {argus_server-2.1.0 → argus_server-2.2.0}/pyproject.toml +6 -7
- {argus_server-2.1.0 → argus_server-2.2.0}/src/argus/htmx/constants.py +2 -8
- {argus_server-2.1.0 → argus_server-2.2.0}/src/argus/htmx/incident/constants.py +13 -12
- {argus_server-2.1.0 → argus_server-2.2.0}/src/argus/htmx/incident/filter.py +10 -23
- {argus_server-2.1.0 → argus_server-2.2.0}/src/argus/htmx/incident/utils.py +8 -0
- {argus_server-2.1.0 → argus_server-2.2.0}/src/argus/htmx/incident/views.py +1 -1
- argus_server-2.2.0/src/argus/htmx/settings.py +14 -0
- argus_server-2.2.0/src/argus/htmx/tailwindtheme/config.py +33 -0
- argus_server-2.2.0/src/argus/htmx/tailwindtheme/get_tailwind.py +28 -0
- argus_server-2.2.0/src/argus/htmx/tailwindtheme/utils.py +42 -0
- {argus_server-2.1.0 → argus_server-2.2.0}/src/argus/htmx/templates/htmx/incident/_incident_list_refresh_info.html +6 -5
- {argus_server-2.1.0 → argus_server-2.2.0}/src/argus/htmx/templates/htmx/user/_page_size_dropdown.html +3 -3
- {argus_server-2.1.0 → argus_server-2.2.0}/src/argus/htmx/templates/htmx/user/_update_interval_dropdown.html +4 -4
- {argus_server-2.1.0 → argus_server-2.2.0}/src/argus/htmx/user/preferences/models.py +7 -7
- argus_server-2.2.0/src/argus/site/settings/backend.py +5 -0
- {argus_server-2.1.0 → argus_server-2.2.0}/src/argus/site/settings/base.py +15 -0
- {argus_server-2.1.0 → argus_server-2.2.0}/src/argus/site/settings/dev.py +1 -7
- argus_server-2.1.0/src/argus/site/settings/backend.py → argus_server-2.2.0/src/argus/site/settings/prod.py +11 -7
- {argus_server-2.1.0 → argus_server-2.2.0}/src/argus/site/settings/test_CI.py +2 -7
- argus_server-2.2.0/src/argus/version.py +1 -0
- argus_server-2.2.0/tests/util/__init__.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.0}/tox.ini +1 -1
- argus_server-2.1.0/CONTRIBUTORS.md +0 -10
- argus_server-2.1.0/docs/development/howtos/change-settings.rst +0 -46
- argus_server-2.1.0/src/argus/htmx/settings.py +0 -9
- argus_server-2.1.0/src/argus/site/settings/prod.py +0 -12
- argus_server-2.1.0/src/argus/version.py +0 -1
- {argus_server-2.1.0 → argus_server-2.2.0}/.git-blame-ignore-revs +0 -0
- {argus_server-2.1.0 → argus_server-2.2.0}/.gitattributes +0 -0
- {argus_server-2.1.0 → argus_server-2.2.0}/.gitignore +0 -0
- {argus_server-2.1.0 → argus_server-2.2.0}/.mailmap +0 -0
- {argus_server-2.1.0 → argus_server-2.2.0}/.pre-commit-config.yaml +0 -0
- {argus_server-2.1.0 → argus_server-2.2.0}/.readthedocs.yaml +0 -0
- {argus_server-2.1.0 → argus_server-2.2.0}/.sonarcloud.properties +0 -0
- {argus_server-2.1.0 → argus_server-2.2.0}/LICENSE +0 -0
- {argus_server-2.1.0 → argus_server-2.2.0}/MAINTAINING.rst +0 -0
- {argus_server-2.1.0 → argus_server-2.2.0}/UPGRADING.md +0 -0
- {argus_server-2.1.0 → argus_server-2.2.0}/changelog.d/.gitkeep +0 -0
- {argus_server-2.1.0 → argus_server-2.2.0}/cmd.sh-template +0 -0
- {argus_server-2.1.0 → argus_server-2.2.0}/codecov.yml +0 -0
- {argus_server-2.1.0 → argus_server-2.2.0}/constraints.txt +0 -0
- {argus_server-2.1.0 → argus_server-2.2.0}/docker/dockersettings.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.0}/docs/Makefile +0 -0
- {argus_server-2.1.0 → argus_server-2.2.0}/docs/_exts/djangodocs.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.0}/docs/_static/.gitkeep +0 -0
- {argus_server-2.1.0 → argus_server-2.2.0}/docs/_templates/.gitkeep +0 -0
- {argus_server-2.1.0 → argus_server-2.2.0}/docs/about-argus.rst +0 -0
- {argus_server-2.1.0 → argus_server-2.2.0}/docs/conf.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.0}/docs/customization/htmx-frontend.rst +0 -0
- {argus_server-2.1.0 → argus_server-2.2.0}/docs/customization.rst +0 -0
- {argus_server-2.1.0 → argus_server-2.2.0}/docs/development/howtos/add-more-preferences.rst +0 -0
- {argus_server-2.1.0 → argus_server-2.2.0}/docs/development/howtos/changelog-entry.rst +0 -0
- {argus_server-2.1.0 → argus_server-2.2.0}/docs/development/howtos/commit-messages.rst +0 -0
- {argus_server-2.1.0 → argus_server-2.2.0}/docs/development/howtos/customizing-filtering.rst +0 -0
- {argus_server-2.1.0 → argus_server-2.2.0}/docs/development/howtos/federated-logins.rst +0 -0
- {argus_server-2.1.0 → argus_server-2.2.0}/docs/development/howtos/htmx-frontend/column_for_specific_ack_group.rst +0 -0
- {argus_server-2.1.0 → argus_server-2.2.0}/docs/development/howtos/htmx-frontend/column_for_specific_tag.rst +0 -0
- {argus_server-2.1.0 → argus_server-2.2.0}/docs/development/howtos/htmx-frontend/custom-incident-actions.rst +0 -0
- {argus_server-2.1.0 → argus_server-2.2.0}/docs/development/howtos/htmx-frontend/customize-filtering.rst +0 -0
- {argus_server-2.1.0 → argus_server-2.2.0}/docs/development/howtos/htmx-frontend/dependencies.rst +0 -0
- {argus_server-2.1.0 → argus_server-2.2.0}/docs/development/howtos/htmx-frontend/font_awesome.rst +0 -0
- {argus_server-2.1.0 → argus_server-2.2.0}/docs/development/howtos/htmx-frontend/override_templates.rst +0 -0
- {argus_server-2.1.0 → argus_server-2.2.0}/docs/development/howtos/htmx-frontend.rst +0 -0
- {argus_server-2.1.0 → argus_server-2.2.0}/docs/development/howtos/notification-system-testing.rst +0 -0
- {argus_server-2.1.0 → argus_server-2.2.0}/docs/development/howtos/recover-from-migration-trouble.rst +0 -0
- {argus_server-2.1.0 → argus_server-2.2.0}/docs/development/howtos/regenerate-the-ER-diagram.rst +0 -0
- {argus_server-2.1.0 → argus_server-2.2.0}/docs/development/howtos/release-checklist.rst +0 -0
- {argus_server-2.1.0 → argus_server-2.2.0}/docs/development/howtos/toggle-django-debug-toolbar.rst +0 -0
- {argus_server-2.1.0 → argus_server-2.2.0}/docs/development/howtos/vendor-a-repo.rst +0 -0
- {argus_server-2.1.0 → argus_server-2.2.0}/docs/development/howtos.rst +0 -0
- {argus_server-2.1.0 → argus_server-2.2.0}/docs/development/management-commands.rst +0 -0
- {argus_server-2.1.0 → argus_server-2.2.0}/docs/development/notes.rst +0 -0
- {argus_server-2.1.0 → argus_server-2.2.0}/docs/development/troubleshooting.rst +0 -0
- {argus_server-2.1.0 → argus_server-2.2.0}/docs/django_settings.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.0}/docs/index.rst +0 -0
- {argus_server-2.1.0 → argus_server-2.2.0}/docs/integrations/_note.rst +0 -0
- {argus_server-2.1.0 → argus_server-2.2.0}/docs/integrations/glue-services/writing-glueservices.rst +0 -0
- {argus_server-2.1.0 → argus_server-2.2.0}/docs/integrations/index.rst +0 -0
- {argus_server-2.1.0 → argus_server-2.2.0}/docs/integrations/notifications/email-plugin.rst +0 -0
- {argus_server-2.1.0 → argus_server-2.2.0}/docs/integrations/notifications/index.rst +0 -0
- {argus_server-2.1.0 → argus_server-2.2.0}/docs/integrations/notifications/sms-plugin.rst +0 -0
- {argus_server-2.1.0 → argus_server-2.2.0}/docs/integrations/notifications/writing-notification-plugins.rst +0 -0
- {argus_server-2.1.0 → argus_server-2.2.0}/docs/integrations/ticket-systems/index.rst +0 -0
- {argus_server-2.1.0 → argus_server-2.2.0}/docs/integrations/ticket-systems/writing-ticket-system-plugins.rst +0 -0
- {argus_server-2.1.0 → argus_server-2.2.0}/docs/make.bat +0 -0
- {argus_server-2.1.0 → argus_server-2.2.0}/docs/reference/admin.rst +0 -0
- {argus_server-2.1.0 → argus_server-2.2.0}/docs/reference/api/v2.rst +0 -0
- {argus_server-2.1.0 → argus_server-2.2.0}/docs/reference/api.rst +0 -0
- {argus_server-2.1.0 → argus_server-2.2.0}/docs/reference/authentication.rst +0 -0
- {argus_server-2.1.0 → argus_server-2.2.0}/docs/reference/glossary.rst +0 -0
- {argus_server-2.1.0 → argus_server-2.2.0}/docs/reference/img/ER_model.png +0 -0
- {argus_server-2.1.0 → argus_server-2.2.0}/docs/reference/models.rst +0 -0
- {argus_server-2.1.0 → argus_server-2.2.0}/docs/reference/site-specific-settings.rst +0 -0
- {argus_server-2.1.0 → argus_server-2.2.0}/docs/reference.rst +0 -0
- {argus_server-2.1.0 → argus_server-2.2.0}/manage.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.0}/requirements/dev.txt +0 -0
- {argus_server-2.1.0 → argus_server-2.2.0}/requirements/django52.txt +0 -0
- {argus_server-2.1.0 → argus_server-2.2.0}/requirements/please-pip-sync.txt +0 -0
- {argus_server-2.1.0 → argus_server-2.2.0}/requirements/test.txt +0 -0
- {argus_server-2.1.0 → argus_server-2.2.0}/requirements-django52.txt +0 -0
- {argus_server-2.1.0 → argus_server-2.2.0}/requirements.txt +0 -0
- {argus_server-2.1.0 → argus_server-2.2.0}/src/argus/__init__.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.0}/src/argus/auth/__init__.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.0}/src/argus/auth/admin.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.0}/src/argus/auth/apps.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.0}/src/argus/auth/authentication.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.0}/src/argus/auth/context_processors.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.0}/src/argus/auth/drftoken/__init__.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.0}/src/argus/auth/drftoken/serializers.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.0}/src/argus/auth/drftoken/urls.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.0}/src/argus/auth/drftoken/views.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.0}/src/argus/auth/factories.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.0}/src/argus/auth/knox/__init__.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.0}/src/argus/auth/knox/serializers.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.0}/src/argus/auth/knox/urls.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.0}/src/argus/auth/knox/views.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.0}/src/argus/auth/management/__init__.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.0}/src/argus/auth/management/commands/__init__.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.0}/src/argus/auth/management/commands/changeuser.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.0}/src/argus/auth/management/commands/createuser.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.0}/src/argus/auth/management/commands/grantsuperuser.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.0}/src/argus/auth/management/commands/revokesuperuser.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.0}/src/argus/auth/management/commands/setpassword.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.0}/src/argus/auth/migrations/0001_initial.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.0}/src/argus/auth/migrations/0002_alter_user_first_name.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.0}/src/argus/auth/migrations/0002_squashed_auth_20250512_add_preferences_model.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.0}/src/argus/auth/migrations/0003_delete_phonenumber.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.0}/src/argus/auth/migrations/0004_add_preferences_model.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.0}/src/argus/auth/migrations/__init__.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.0}/src/argus/auth/models.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.0}/src/argus/auth/serializers.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.0}/src/argus/auth/urls.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.0}/src/argus/auth/utils.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.0}/src/argus/auth/views.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.0}/src/argus/base/__init__.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.0}/src/argus/base/apps.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.0}/src/argus/base/static/favicon.svg +0 -0
- {argus_server-2.1.0 → argus_server-2.2.0}/src/argus/base/templates/base.html +0 -0
- {argus_server-2.1.0 → argus_server-2.2.0}/src/argus/base/templates/index.html +0 -0
- {argus_server-2.1.0 → argus_server-2.2.0}/src/argus/compat.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.0}/src/argus/dev/__init__.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.0}/src/argus/dev/apps.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.0}/src/argus/dev/management/__init__.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.0}/src/argus/dev/management/commands/__init__.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.0}/src/argus/dev/management/commands/bulk_incidents.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.0}/src/argus/dev/management/commands/check_token_expiry.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.0}/src/argus/dev/management/commands/close_incident.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.0}/src/argus/dev/management/commands/create_fake_incident.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.0}/src/argus/dev/management/commands/create_source.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.0}/src/argus/dev/management/commands/gen_secret_key.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.0}/src/argus/dev/management/commands/initial_setup.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.0}/src/argus/dev/management/commands/list_filters.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.0}/src/argus/dev/management/commands/stresstest.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.0}/src/argus/dev/management/commands/toggle_profile_activation.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.0}/src/argus/dev/utils.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.0}/src/argus/drf/__init__.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.0}/src/argus/drf/permissions.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.0}/src/argus/filter/__init__.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.0}/src/argus/filter/apps.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.0}/src/argus/filter/checks.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.0}/src/argus/filter/default.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.0}/src/argus/filter/factories.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.0}/src/argus/filter/filters.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.0}/src/argus/filter/filterwrapper.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.0}/src/argus/filter/primitive_serializers.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.0}/src/argus/filter/queryset_filters.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.0}/src/argus/filter/serializers.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.0}/src/argus/filter/swappable/__init__.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.0}/src/argus/filter/swappable/serializers.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.0}/src/argus/filter/validators.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.0}/src/argus/htmx/__init__.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.0}/src/argus/htmx/appconfig.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.0}/src/argus/htmx/apps.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.0}/src/argus/htmx/auth/__init__.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.0}/src/argus/htmx/auth/views.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.0}/src/argus/htmx/checks.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.0}/src/argus/htmx/context_processors.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.0}/src/argus/htmx/dateformat/__init__.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.0}/src/argus/htmx/dateformat/constants.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.0}/src/argus/htmx/defaults.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.0}/src/argus/htmx/destination/__init__.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.0}/src/argus/htmx/destination/forms.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.0}/src/argus/htmx/destination/urls.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.0}/src/argus/htmx/destination/views.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.0}/src/argus/htmx/htmx_urls.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.0}/src/argus/htmx/incident/__init__.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.0}/src/argus/htmx/incident/customization.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.0}/src/argus/htmx/incident/forms.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.0}/src/argus/htmx/incident/urls.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.0}/src/argus/htmx/management/__init__.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.0}/src/argus/htmx/management/commands/__init__.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.0}/src/argus/htmx/management/commands/tailwind_config.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.0}/src/argus/htmx/middleware.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.0}/src/argus/htmx/migrations/0001_initial.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.0}/src/argus/htmx/migrations/__init__.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.0}/src/argus/htmx/modals.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.0}/src/argus/htmx/models.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.0}/src/argus/htmx/notificationprofile/__init__.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.0}/src/argus/htmx/notificationprofile/urls.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.0}/src/argus/htmx/notificationprofile/views.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.0}/src/argus/htmx/request.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.0}/src/argus/htmx/root_urls.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.0}/src/argus/htmx/static/htmx-2.0.2.min.js +0 -0
- {argus_server-2.1.0 → argus_server-2.2.0}/src/argus/htmx/static/hyperscript-0.9.13.min.js +0 -0
- {argus_server-2.1.0 → argus_server-2.2.0}/src/argus/htmx/static/logo_white.svg +0 -0
- {argus_server-2.1.0 → argus_server-2.2.0}/src/argus/htmx/static/styles.css +0 -0
- {argus_server-2.1.0 → argus_server-2.2.0}/src/argus/htmx/tailwindtheme/README.md +0 -0
- {argus_server-2.1.0/src/argus/htmx/templatetags → argus_server-2.2.0/src/argus/htmx/tailwindtheme}/__init__.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.0}/src/argus/htmx/tailwindtheme/snippets/10-tailwind.css +0 -0
- {argus_server-2.1.0 → argus_server-2.2.0}/src/argus/htmx/tailwindtheme/snippets/15-alert-message.css +0 -0
- {argus_server-2.1.0 → argus_server-2.2.0}/src/argus/htmx/tailwindtheme/snippets/20-loading-box.css +0 -0
- {argus_server-2.1.0 → argus_server-2.2.0}/src/argus/htmx/tailwindtheme/styles.css +0 -0
- {argus_server-2.1.0 → argus_server-2.2.0}/src/argus/htmx/tailwindtheme/tailwind.config.js +0 -0
- {argus_server-2.1.0 → argus_server-2.2.0}/src/argus/htmx/templates/django/forms/div.html +0 -0
- {argus_server-2.1.0 → argus_server-2.2.0}/src/argus/htmx/templates/django/forms/widgets/attrs.html +0 -0
- {argus_server-2.1.0 → argus_server-2.2.0}/src/argus/htmx/templates/htmx/_base_confirm_dialog.html +0 -0
- {argus_server-2.1.0 → argus_server-2.2.0}/src/argus/htmx/templates/htmx/_base_form_modal.html +0 -0
- {argus_server-2.1.0 → argus_server-2.2.0}/src/argus/htmx/templates/htmx/_base_form_modal_button.html +0 -0
- {argus_server-2.1.0 → argus_server-2.2.0}/src/argus/htmx/templates/htmx/_base_form_modal_experimental.html +0 -0
- {argus_server-2.1.0 → argus_server-2.2.0}/src/argus/htmx/templates/htmx/base.html +0 -0
- {argus_server-2.1.0 → argus_server-2.2.0}/src/argus/htmx/templates/htmx/destination/_collapse_with_forms.html +0 -0
- {argus_server-2.1.0 → argus_server-2.2.0}/src/argus/htmx/templates/htmx/destination/_content.html +0 -0
- {argus_server-2.1.0 → argus_server-2.2.0}/src/argus/htmx/templates/htmx/destination/_create_form.html +0 -0
- {argus_server-2.1.0 → argus_server-2.2.0}/src/argus/htmx/templates/htmx/destination/_delete_form.html +0 -0
- {argus_server-2.1.0 → argus_server-2.2.0}/src/argus/htmx/templates/htmx/destination/_edit_form.html +0 -0
- {argus_server-2.1.0 → argus_server-2.2.0}/src/argus/htmx/templates/htmx/destination/_form_list.html +0 -0
- {argus_server-2.1.0 → argus_server-2.2.0}/src/argus/htmx/templates/htmx/destination/destination_list.html +0 -0
- {argus_server-2.1.0 → argus_server-2.2.0}/src/argus/htmx/templates/htmx/forms/badge_dropdown_select_multiple.html +0 -0
- {argus_server-2.1.0 → argus_server-2.2.0}/src/argus/htmx/templates/htmx/forms/checkbox_select_multiple.html +0 -0
- {argus_server-2.1.0 → argus_server-2.2.0}/src/argus/htmx/templates/htmx/forms/dropdown_select_multiple.html +0 -0
- {argus_server-2.1.0 → argus_server-2.2.0}/src/argus/htmx/templates/htmx/forms/input_field.html +0 -0
- {argus_server-2.1.0 → argus_server-2.2.0}/src/argus/htmx/templates/htmx/incident/_base.html +0 -0
- {argus_server-2.1.0 → argus_server-2.2.0}/src/argus/htmx/templates/htmx/incident/_base_incident_update_modal.html +0 -0
- {argus_server-2.1.0 → argus_server-2.2.0}/src/argus/htmx/templates/htmx/incident/_delete_filter_confirm_dialog.html +0 -0
- {argus_server-2.1.0 → argus_server-2.2.0}/src/argus/htmx/templates/htmx/incident/_existing_filters.html +0 -0
- {argus_server-2.1.0 → argus_server-2.2.0}/src/argus/htmx/templates/htmx/incident/_filter_controls.html +0 -0
- {argus_server-2.1.0 → argus_server-2.2.0}/src/argus/htmx/templates/htmx/incident/_filter_create_modal.html +0 -0
- {argus_server-2.1.0 → argus_server-2.2.0}/src/argus/htmx/templates/htmx/incident/_filter_delete_dropdown.html +0 -0
- {argus_server-2.1.0 → argus_server-2.2.0}/src/argus/htmx/templates/htmx/incident/_filter_select.html +0 -0
- {argus_server-2.1.0 → argus_server-2.2.0}/src/argus/htmx/templates/htmx/incident/_filter_update_dropdown.html +0 -0
- {argus_server-2.1.0 → argus_server-2.2.0}/src/argus/htmx/templates/htmx/incident/_incident_acknowledge_modal.html +0 -0
- {argus_server-2.1.0 → argus_server-2.2.0}/src/argus/htmx/templates/htmx/incident/_incident_close_modal.html +0 -0
- {argus_server-2.1.0 → argus_server-2.2.0}/src/argus/htmx/templates/htmx/incident/_incident_filterbox.html +0 -0
- {argus_server-2.1.0 → argus_server-2.2.0}/src/argus/htmx/templates/htmx/incident/_incident_list_menubar.html +0 -0
- {argus_server-2.1.0 → argus_server-2.2.0}/src/argus/htmx/templates/htmx/incident/_incident_list_update_menu.html +0 -0
- {argus_server-2.1.0 → argus_server-2.2.0}/src/argus/htmx/templates/htmx/incident/_incident_reopen_modal.html +0 -0
- {argus_server-2.1.0 → argus_server-2.2.0}/src/argus/htmx/templates/htmx/incident/_incident_table.html +0 -0
- {argus_server-2.1.0 → argus_server-2.2.0}/src/argus/htmx/templates/htmx/incident/_incident_table_cell_wrapper_default.html +0 -0
- {argus_server-2.1.0 → argus_server-2.2.0}/src/argus/htmx/templates/htmx/incident/_incident_table_cell_wrapper_link_to_details.html +0 -0
- {argus_server-2.1.0 → argus_server-2.2.0}/src/argus/htmx/templates/htmx/incident/_incident_table_paginator.html +0 -0
- {argus_server-2.1.0 → argus_server-2.2.0}/src/argus/htmx/templates/htmx/incident/_incident_table_paginator_pageitem.html +0 -0
- {argus_server-2.1.0 → argus_server-2.2.0}/src/argus/htmx/templates/htmx/incident/_incident_table_row.html +0 -0
- {argus_server-2.1.0 → argus_server-2.2.0}/src/argus/htmx/templates/htmx/incident/_incident_table_rows.html +0 -0
- {argus_server-2.1.0 → argus_server-2.2.0}/src/argus/htmx/templates/htmx/incident/_incident_ticket_autocreate_modal.html +0 -0
- {argus_server-2.1.0 → argus_server-2.2.0}/src/argus/htmx/templates/htmx/incident/_incident_ticket_edit_modal.html +0 -0
- {argus_server-2.1.0 → argus_server-2.2.0}/src/argus/htmx/templates/htmx/incident/_incident_ticket_manual_create_modal.html +0 -0
- {argus_server-2.1.0 → argus_server-2.2.0}/src/argus/htmx/templates/htmx/incident/_update_filter_confirm_dialog.html +0 -0
- {argus_server-2.1.0 → argus_server-2.2.0}/src/argus/htmx/templates/htmx/incident/cells/_incident_ack.html +0 -0
- {argus_server-2.1.0 → argus_server-2.2.0}/src/argus/htmx/templates/htmx/incident/cells/_incident_actions.html +0 -0
- {argus_server-2.1.0 → argus_server-2.2.0}/src/argus/htmx/templates/htmx/incident/cells/_incident_checkbox.html +0 -0
- {argus_server-2.1.0 → argus_server-2.2.0}/src/argus/htmx/templates/htmx/incident/cells/_incident_color_status.html +0 -0
- {argus_server-2.1.0 → argus_server-2.2.0}/src/argus/htmx/templates/htmx/incident/cells/_incident_combined_status.html +0 -0
- {argus_server-2.1.0 → argus_server-2.2.0}/src/argus/htmx/templates/htmx/incident/cells/_incident_description.html +0 -0
- {argus_server-2.1.0 → argus_server-2.2.0}/src/argus/htmx/templates/htmx/incident/cells/_incident_filterable_column_header.html +0 -0
- {argus_server-2.1.0 → argus_server-2.2.0}/src/argus/htmx/templates/htmx/incident/cells/_incident_level.html +0 -0
- {argus_server-2.1.0 → argus_server-2.2.0}/src/argus/htmx/templates/htmx/incident/cells/_incident_list_select_all_checkbox_header.html +0 -0
- {argus_server-2.1.0 → argus_server-2.2.0}/src/argus/htmx/templates/htmx/incident/cells/_incident_pk.html +0 -0
- {argus_server-2.1.0 → argus_server-2.2.0}/src/argus/htmx/templates/htmx/incident/cells/_incident_source.html +0 -0
- {argus_server-2.1.0 → argus_server-2.2.0}/src/argus/htmx/templates/htmx/incident/cells/_incident_start_time.html +0 -0
- {argus_server-2.1.0 → argus_server-2.2.0}/src/argus/htmx/templates/htmx/incident/cells/_incident_start_time_header.html +0 -0
- {argus_server-2.1.0 → argus_server-2.2.0}/src/argus/htmx/templates/htmx/incident/cells/_incident_status.html +0 -0
- {argus_server-2.1.0 → argus_server-2.2.0}/src/argus/htmx/templates/htmx/incident/cells/_incident_tag.html +0 -0
- {argus_server-2.1.0 → argus_server-2.2.0}/src/argus/htmx/templates/htmx/incident/cells/_incident_ticket.html +0 -0
- {argus_server-2.1.0 → argus_server-2.2.0}/src/argus/htmx/templates/htmx/incident/filter_list.html +0 -0
- {argus_server-2.1.0 → argus_server-2.2.0}/src/argus/htmx/templates/htmx/incident/incident_detail.html +0 -0
- {argus_server-2.1.0 → argus_server-2.2.0}/src/argus/htmx/templates/htmx/incident/incident_list.html +0 -0
- {argus_server-2.1.0 → argus_server-2.2.0}/src/argus/htmx/templates/htmx/incident/responses/_incident_list_refresh.html +0 -0
- {argus_server-2.1.0 → argus_server-2.2.0}/src/argus/htmx/templates/htmx/incident/responses/empty_list_item.html +0 -0
- {argus_server-2.1.0 → argus_server-2.2.0}/src/argus/htmx/templates/htmx/notificationprofile/_notificationprofile_form.html +0 -0
- {argus_server-2.1.0 → argus_server-2.2.0}/src/argus/htmx/templates/htmx/notificationprofile/_notificationprofile_form_div.html +0 -0
- {argus_server-2.1.0 → argus_server-2.2.0}/src/argus/htmx/templates/htmx/notificationprofile/base.html +0 -0
- {argus_server-2.1.0 → argus_server-2.2.0}/src/argus/htmx/templates/htmx/notificationprofile/notificationprofile_confirm_delete.html +0 -0
- {argus_server-2.1.0 → argus_server-2.2.0}/src/argus/htmx/templates/htmx/notificationprofile/notificationprofile_form.html +0 -0
- {argus_server-2.1.0 → argus_server-2.2.0}/src/argus/htmx/templates/htmx/notificationprofile/notificationprofile_list.html +0 -0
- {argus_server-2.1.0 → argus_server-2.2.0}/src/argus/htmx/templates/htmx/timeslot/_delete_timeslot_confirm_dialog.html +0 -0
- {argus_server-2.1.0 → argus_server-2.2.0}/src/argus/htmx/templates/htmx/timeslot/_timeslot_detail.html +0 -0
- {argus_server-2.1.0 → argus_server-2.2.0}/src/argus/htmx/templates/htmx/timeslot/_timeslot_form.html +0 -0
- {argus_server-2.1.0 → argus_server-2.2.0}/src/argus/htmx/templates/htmx/timeslot/base.html +0 -0
- {argus_server-2.1.0 → argus_server-2.2.0}/src/argus/htmx/templates/htmx/timeslot/checkbox_option.html +0 -0
- {argus_server-2.1.0 → argus_server-2.2.0}/src/argus/htmx/templates/htmx/timeslot/timerecurrence_div.html +0 -0
- {argus_server-2.1.0 → argus_server-2.2.0}/src/argus/htmx/templates/htmx/timeslot/timeslot_confirm_delete.html +0 -0
- {argus_server-2.1.0 → argus_server-2.2.0}/src/argus/htmx/templates/htmx/timeslot/timeslot_form.html +0 -0
- {argus_server-2.1.0 → argus_server-2.2.0}/src/argus/htmx/templates/htmx/timeslot/timeslot_list.html +0 -0
- {argus_server-2.1.0 → argus_server-2.2.0}/src/argus/htmx/templates/htmx/user/_current_theme.html +0 -0
- {argus_server-2.1.0 → argus_server-2.2.0}/src/argus/htmx/templates/htmx/user/_dateformat_dropdown.html +0 -0
- {argus_server-2.1.0 → argus_server-2.2.0}/src/argus/htmx/templates/htmx/user/_incidents_table_layout_dropdown.html +0 -0
- {argus_server-2.1.0 → argus_server-2.2.0}/src/argus/htmx/templates/htmx/user/_theme_dropdown.html +0 -0
- {argus_server-2.1.0 → argus_server-2.2.0}/src/argus/htmx/templates/htmx/user/_user_menu.html +0 -0
- {argus_server-2.1.0 → argus_server-2.2.0}/src/argus/htmx/templates/htmx/user/_user_menu_logout.html +0 -0
- {argus_server-2.1.0 → argus_server-2.2.0}/src/argus/htmx/templates/htmx/user/_user_menu_notification_config.html +0 -0
- {argus_server-2.1.0 → argus_server-2.2.0}/src/argus/htmx/templates/htmx/user/_user_menu_user_preferences.html +0 -0
- {argus_server-2.1.0 → argus_server-2.2.0}/src/argus/htmx/templates/htmx/user/preferences.html +0 -0
- {argus_server-2.1.0 → argus_server-2.2.0}/src/argus/htmx/templates/htmx_base.html +0 -0
- {argus_server-2.1.0 → argus_server-2.2.0}/src/argus/htmx/templates/messages/_notification_message.html +0 -0
- {argus_server-2.1.0 → argus_server-2.2.0}/src/argus/htmx/templates/messages/_notification_messages.html +0 -0
- {argus_server-2.1.0 → argus_server-2.2.0}/src/argus/htmx/templates/messages/_notification_messages_htmx_append.html +0 -0
- {argus_server-2.1.0 → argus_server-2.2.0}/src/argus/htmx/templates/registration/login.html +0 -0
- {argus_server-2.1.0 → argus_server-2.2.0}/src/argus/htmx/templates/tailwind/styles.css +0 -0
- {argus_server-2.1.0 → argus_server-2.2.0}/src/argus/htmx/templates/tailwind/tailwind.config.js +0 -0
- {argus_server-2.1.0 → argus_server-2.2.0}/src/argus/htmx/templates/tailwind_whitelist.html +0 -0
- {argus_server-2.1.0/src/argus/htmx/themes → argus_server-2.2.0/src/argus/htmx/templatetags}/__init__.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.0}/src/argus/htmx/templatetags/argus_htmx.py +0 -0
- {argus_server-2.1.0/src/argus/htmx/timeslot → argus_server-2.2.0/src/argus/htmx/themes}/__init__.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.0}/src/argus/htmx/themes/constants.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.0}/src/argus/htmx/themes/utils.py +0 -0
- {argus_server-2.1.0/src/argus/htmx/user/preferences → argus_server-2.2.0/src/argus/htmx/timeslot}/__init__.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.0}/src/argus/htmx/timeslot/urls.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.0}/src/argus/htmx/timeslot/views.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.0}/src/argus/htmx/urls.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.0}/src/argus/htmx/user/__init__.py +0 -0
- {argus_server-2.1.0/src/argus/incident/migrations → argus_server-2.2.0/src/argus/htmx/user/preferences}/__init__.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.0}/src/argus/htmx/user/urls.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.0}/src/argus/htmx/user/views.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.0}/src/argus/htmx/utils.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.0}/src/argus/htmx/views.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.0}/src/argus/htmx/widgets.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.0}/src/argus/incident/__init__.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.0}/src/argus/incident/admin.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.0}/src/argus/incident/apps.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.0}/src/argus/incident/constants.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.0}/src/argus/incident/factories.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.0}/src/argus/incident/fields.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.0}/src/argus/incident/forms.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.0}/src/argus/incident/migrations/0001_initial.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.0}/src/argus/incident/migrations/0001_squashed_incident_20250514.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.0}/src/argus/incident/migrations/0002_empty_source_incident_id.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.0}/src/argus/incident/migrations/0003_incident_level.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.0}/src/argus/incident/migrations/0004_add_ChangeEvent_proxy.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.0}/src/argus/incident/migrations/0005_alter_event_type.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.0}/src/argus/incident/migrations/0006_incident_search_text.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.0}/src/argus/incident/migrations/0007_alter_event_type.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.0}/src/argus/incident/migrations/0008_incident_metadata.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.0}/src/argus/incident/migrations/0009_use_bigautofield_on_quickly_growing_tables.py +0 -0
- {argus_server-2.1.0/src/argus/incident/ticket → argus_server-2.2.0/src/argus/incident/migrations}/__init__.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.0}/src/argus/incident/models.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.0}/src/argus/incident/serializers.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.0}/src/argus/incident/signals.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.0}/src/argus/incident/templates/incident/admin/fake_incident_add_form.html +0 -0
- {argus_server-2.1.0 → argus_server-2.2.0}/src/argus/incident/templates/incident/admin/incident_change_list.html +0 -0
- {argus_server-2.1.0 → argus_server-2.2.0}/src/argus/incident/templates/incident/admin/widgets/split_datetime_infinity.html +0 -0
- {argus_server-2.1.0 → argus_server-2.2.0}/src/argus/incident/templates/incident/ticket/default_ticket_body.html +0 -0
- {argus_server-2.1.0/src/argus/notificationprofile/migrations → argus_server-2.2.0/src/argus/incident/ticket}/__init__.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.0}/src/argus/incident/ticket/base.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.0}/src/argus/incident/ticket/dummy.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.0}/src/argus/incident/ticket/utils.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.0}/src/argus/incident/urls.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.0}/src/argus/incident/validators.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.0}/src/argus/incident/views.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.0}/src/argus/incident/widgets.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.0}/src/argus/notificationprofile/__init__.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.0}/src/argus/notificationprofile/admin.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.0}/src/argus/notificationprofile/apps.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.0}/src/argus/notificationprofile/checks.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.0}/src/argus/notificationprofile/factories.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.0}/src/argus/notificationprofile/media/__init__.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.0}/src/argus/notificationprofile/media/base.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.0}/src/argus/notificationprofile/media/email.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.0}/src/argus/notificationprofile/media/sms_as_email.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.0}/src/argus/notificationprofile/migrations/0001_squashed_0015_remove_days_alter_days_array.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.0}/src/argus/notificationprofile/migrations/0001_squashed_notificationprofile_20250512.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.0}/src/argus/notificationprofile/migrations/0016_noop.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.0}/src/argus/notificationprofile/migrations/0017_change_event_type_to_event_types.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.0}/src/argus/notificationprofile/migrations/0018_remove_closed_and_unacked_from_filterblob.py +0 -0
- {argus_server-2.1.0/src/argus/site → argus_server-2.2.0/src/argus/notificationprofile/migrations}/__init__.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.0}/src/argus/notificationprofile/models.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.0}/src/argus/notificationprofile/serializers.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.0}/src/argus/notificationprofile/signals.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.0}/src/argus/notificationprofile/templates/notificationprofile/email.html +0 -0
- {argus_server-2.1.0 → argus_server-2.2.0}/src/argus/notificationprofile/templates/notificationprofile/email.txt +0 -0
- {argus_server-2.1.0 → argus_server-2.2.0}/src/argus/notificationprofile/templates/schemawrapper.html +0 -0
- {argus_server-2.1.0 → argus_server-2.2.0}/src/argus/notificationprofile/urls.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.0}/src/argus/notificationprofile/views.py +0 -0
- {argus_server-2.1.0/src/argus/util → argus_server-2.2.0/src/argus/site}/__init__.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.0}/src/argus/site/api_v2_urls.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.0}/src/argus/site/logging.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.0}/src/argus/site/serializers.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.0}/src/argus/site/settings/__init__.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.0}/src/argus/site/settings/_serializers.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.0}/src/argus/site/settings/dockerdev.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.0}/src/argus/site/urls.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.0}/src/argus/site/utils.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.0}/src/argus/site/views.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.0}/src/argus/site/wsgi.py +0 -0
- {argus_server-2.1.0/tests → argus_server-2.2.0/src/argus/util}/__init__.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.0}/src/argus/util/admin_utils.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.0}/src/argus/util/datetime_utils.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.0}/src/argus/util/testing.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.0}/src/argus/util/utils.py +0 -0
- {argus_server-2.1.0/tests/auth/management_commands → argus_server-2.2.0/tests}/__init__.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.0}/tests/auth/__init__.py +0 -0
- {argus_server-2.1.0/tests/dev → argus_server-2.2.0/tests/auth/management_commands}/__init__.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.0}/tests/auth/management_commands/test_changeuser.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.0}/tests/auth/management_commands/test_createuser.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.0}/tests/auth/models.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.0}/tests/auth/test_auth.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.0}/tests/auth/test_knox_views.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.0}/tests/auth/test_models.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.0}/tests/auth/test_utils.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.0}/tests/auth/test_views.py +0 -0
- {argus_server-2.1.0/tests/filter → argus_server-2.2.0/tests/dev}/__init__.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.0}/tests/dev/test_bulk_incidents.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.0}/tests/dev/test_check_token_expiry.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.0}/tests/dev/test_close_incident.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.0}/tests/dev/test_create_fake_incident.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.0}/tests/dev/test_create_source.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.0}/tests/dev/test_gen_secret_key.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.0}/tests/dev/test_initial_setup.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.0}/tests/dev/test_list_filters.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.0}/tests/dev/test_toggle_profile_activation.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.0}/tests/dev/test_utils.py +0 -0
- {argus_server-2.1.0/tests/htmx → argus_server-2.2.0/tests/filter}/__init__.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.0}/tests/filter/dummyplugin.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.0}/tests/filter/test_filterplugin.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.0}/tests/filter/test_filterwrapper.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.0}/tests/filter/test_queryset_filters.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.0}/tests/helpers.py +0 -0
- {argus_server-2.1.0/tests/htmx/incident → argus_server-2.2.0/tests/htmx}/__init__.py +0 -0
- {argus_server-2.1.0/tests/htmx/notificationprofile → argus_server-2.2.0/tests/htmx/incident}/__init__.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.0}/tests/htmx/incident/test_customization.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.0}/tests/htmx/incident/test_filter.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.0}/tests/htmx/incident/test_utils.py +0 -0
- {argus_server-2.1.0/tests/incident/fixtures → argus_server-2.2.0/tests/htmx/notificationprofile}/__init__.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.0}/tests/htmx/notificationprofile/test_forms.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.0}/tests/htmx/test_incident.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.0}/tests/htmx/test_middleware.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.0}/tests/htmx/test_utils.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.0}/tests/incident/__init__.py +0 -0
- {argus_server-2.1.0/tests/incident/ticket_plugins → argus_server-2.2.0/tests/incident/fixtures}/__init__.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.0}/tests/incident/test_change_event.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.0}/tests/incident/test_create_fake_incident.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.0}/tests/incident/test_event.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.0}/tests/incident/test_filters.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.0}/tests/incident/test_incident.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.0}/tests/incident/test_incident_fields.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.0}/tests/incident/test_queryset.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.0}/tests/incident/test_serializers.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.0}/tests/incident/test_source_system.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.0}/tests/incident/test_source_system_type.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.0}/tests/incident/test_views.py +0 -0
- {argus_server-2.1.0/tests/incident/unit → argus_server-2.2.0/tests/incident/ticket_plugins}/__init__.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.0}/tests/incident/ticket_plugins/test_base.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.0}/tests/incident/ticket_plugins/test_dummy.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.0}/tests/incident/ticket_plugins/test_utils.py +0 -0
- {argus_server-2.1.0/tests/notificationprofile/destinations → argus_server-2.2.0/tests/incident/unit}/__init__.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.0}/tests/incident/unit/test_incident_details_url.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.0}/tests/migration_example.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.0}/tests/notificationprofile/__init__.py +0 -0
- {argus_server-2.1.0/tests/notificationprofile/migrations → argus_server-2.2.0/tests/notificationprofile/destinations}/__init__.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.0}/tests/notificationprofile/destinations/test_email.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.0}/tests/notificationprofile/destinations/test_sms.py +0 -0
- {argus_server-2.1.0/tests/site → argus_server-2.2.0/tests/notificationprofile/migrations}/__init__.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.0}/tests/notificationprofile/test_github236.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.0}/tests/notificationprofile/test_media.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.0}/tests/notificationprofile/test_models.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.0}/tests/notificationprofile/test_serializers.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.0}/tests/notificationprofile/test_views.py +0 -0
- {argus_server-2.1.0/tests/util → argus_server-2.2.0/tests/site}/__init__.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.0}/tests/site/test_misc.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.0}/tests/site/test_settings_helpers.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.0}/tests/site/test_settings_validators.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.0}/tests/site/test_views.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.0}/tests/util/test_utils.py +0 -0
|
@@ -8,6 +8,69 @@ This project uses [*towncrier*](https://towncrier.readthedocs.io/) and the chang
|
|
|
8
8
|
|
|
9
9
|
<!-- towncrier release notes start -->
|
|
10
10
|
|
|
11
|
+
## [2.2.0] - 2025-08-26
|
|
12
|
+
|
|
13
|
+
The most important bit of this release is the new (old) way to install and set
|
|
14
|
+
up argus-server, including the frontend. Please see the NOTES.
|
|
15
|
+
|
|
16
|
+
### Added, frontend
|
|
17
|
+
|
|
18
|
+
- Added option 'Last 3 days' to the Timeframe selector.
|
|
19
|
+
([#1440](https://github.com/Uninett/Argus/issues/1440))
|
|
20
|
+
|
|
21
|
+
### Added
|
|
22
|
+
|
|
23
|
+
- Added rule to Makefile that downloads standalone tailwind CLI client as per
|
|
24
|
+
the version configured in `src/argus/htmx/tailwindtheme/config.py`.
|
|
25
|
+
([#1531](https://github.com/Uninett/Argus/issues/1531))
|
|
26
|
+
- Add a fledgling CONTRIBUTING.rst for onboarding new developers.
|
|
27
|
+
- Added documentation for the rules in the `Makefile`.
|
|
28
|
+
- Two new development howtos have been added, with tips for using git and
|
|
29
|
+
GitHub.
|
|
30
|
+
|
|
31
|
+
### Changed
|
|
32
|
+
|
|
33
|
+
- Make example production Docker image work properly for Argus 2
|
|
34
|
+
- The settings files have changed, since the HTMx frontend app is now included
|
|
35
|
+
by default. The frontend settings has been merged in and no longer need the
|
|
36
|
+
settings overriding machinery. It is no longer necessary to install the
|
|
37
|
+
frontend with `pip install argus-server[htmx]`, just `pip install
|
|
38
|
+
argus-server` will do.
|
|
39
|
+
- Updated contributors file with contributors that joined after 2019, and added
|
|
40
|
+
a howto for how to keep the list updated.
|
|
41
|
+
|
|
42
|
+
|
|
43
|
+
## [2.1.1] - 2025-07-16
|
|
44
|
+
|
|
45
|
+
### Added
|
|
46
|
+
|
|
47
|
+
- Added new sections to the user manual: *How to select from existing themes*,
|
|
48
|
+
*How to add your own theme*,
|
|
49
|
+
*How to choose what columns are shown in the incidents table*, and *How to
|
|
50
|
+
change the date and time format*.
|
|
51
|
+
([#1491](https://github.com/Uninett/Argus/issues/1491))
|
|
52
|
+
|
|
53
|
+
### Changed
|
|
54
|
+
|
|
55
|
+
- Added info about more glue services.
|
|
56
|
+
([#1508](https://github.com/Uninett/Argus/issues/1508))
|
|
57
|
+
- Updated the README with a link and info about the publicly accessible
|
|
58
|
+
demo-site.
|
|
59
|
+
([#1510](https://github.com/Uninett/Argus/issues/1510))
|
|
60
|
+
- Updated the content of the user manual (outdated text, screenshots and broken
|
|
61
|
+
external links). ([#1490](https://github.com/Uninett/Argus/issues/1490))
|
|
62
|
+
|
|
63
|
+
### Fixed
|
|
64
|
+
|
|
65
|
+
- Fixed automatic ticket creation, which was broken by
|
|
66
|
+
[#1497](https://github.com/Uninett/Argus/issues/1497)
|
|
67
|
+
([#1516](https://github.com/Uninett/Argus/issues/1516))
|
|
68
|
+
- Made `docker compose up` for development work with Argus 2.1+
|
|
69
|
+
([#1513](https://github.com/Uninett/Argus/issues/1513))
|
|
70
|
+
- Fixed broken links in the user manual.
|
|
71
|
+
([#1492](https://github.com/Uninett/Argus/issues/1492))
|
|
72
|
+
|
|
73
|
+
|
|
11
74
|
## [2.1.0] - 2025-06-30
|
|
12
75
|
|
|
13
76
|
### Added
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
============
|
|
2
|
+
CONTRIBUTING
|
|
3
|
+
============
|
|
4
|
+
|
|
5
|
+
Issues are very welcome! If we tag it "wontfix" we will strive to explain why.
|
|
6
|
+
|
|
7
|
+
Patches are indeed also welcome, in prioritized order:
|
|
8
|
+
|
|
9
|
+
* Patches for existing issues
|
|
10
|
+
* Bugfixes
|
|
11
|
+
* More tests, based on ``unittest`` and ``django.test.TestCase`` please
|
|
12
|
+
* More integrations (glue services, ticket plugins, notification destinations,
|
|
13
|
+
API clients, especially in other languages..)
|
|
14
|
+
|
|
15
|
+
* For integrations in Python "all" (ha!) you need is a package on PyPI and
|
|
16
|
+
a patch with updated info about your integration for the docs. We'll check
|
|
17
|
+
that the package installs and do a quick security check.
|
|
18
|
+
* For integrations in other languages you just need a patch with updated info
|
|
19
|
+
about your integration for the docs.
|
|
20
|
+
|
|
21
|
+
* Docs fixes
|
|
22
|
+
* Fixes that makes the generated OpenAPI better
|
|
23
|
+
* Handy tricks in the admin as well as management commands
|
|
24
|
+
|
|
25
|
+
We're not so keen on:
|
|
26
|
+
|
|
27
|
+
* Changes to the database schema that can not be considered a bugfix. There
|
|
28
|
+
will be discussions and gnashing of teeth!
|
|
29
|
+
* Changes to the stable API
|
|
30
|
+
* Lots of information about the world being stored in the same database as
|
|
31
|
+
Argus. Argus isn't an inventory manager for instance. If you need that, build
|
|
32
|
+
something on top of Argus instead, using Argus as a dependency.
|
|
33
|
+
|
|
34
|
+
Nuts and bolts
|
|
35
|
+
==============
|
|
36
|
+
|
|
37
|
+
* Please set your name and email address in ``git`` and GitHub before your
|
|
38
|
+
first commit if you haven't already:
|
|
39
|
+
|
|
40
|
+
* How to set name and email address in git `(local copy) <./docs/development/howtos/howtos-for-git.rst>`_, `RTD <https://argus-server.readthedocs.io/en/latest/development/howtos/howtos-for-git.html>`_
|
|
41
|
+
* How to set email address in GitHub `(local copy) <./docs/development/howtos/howtos-for-github.rst>`_, `RTD <https://argus-server.readthedocs.io/en/latest/development/howtos/howtos-for-github.html>`_
|
|
42
|
+
|
|
43
|
+
* We use pre-commit for linting. We lint the same stuff in CI so make sure your
|
|
44
|
+
stuff is linted before you ask for a review.
|
|
45
|
+
* Add yourself to the bottom of the CONTRIBUTORS.md-file if this is your first
|
|
46
|
+
patch.
|
|
47
|
+
* We use a template for the message in PRs, it's good enough that we use it
|
|
48
|
+
ourselves. It helps us review the code faster!
|
|
49
|
+
|
|
50
|
+
* If there are visible changes to the frontend, add screenshots of before and
|
|
51
|
+
after.
|
|
52
|
+
|
|
53
|
+
* See the docs for
|
|
54
|
+
|
|
55
|
+
* How to write a changelog, and when `(local copy) <./docs/development/howtos/changelog-entry.rst>`_, `RTD <https://argus-server.readthedocs.io/en/latest/development/howtos/changelog-entry.html>`_
|
|
56
|
+
* What we want to see in a commit message `(local copy) <./docs/development/howtos/commit-messages.rst>`_, `RTD <https://argus-server.readthedocs.io/en/latest/development/howtos/commit-messages.html>`_
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
# Argus contributors
|
|
2
|
+
|
|
3
|
+
*Listed in order of first appearance in the commit log:*
|
|
4
|
+
|
|
5
|
+
## 2019
|
|
6
|
+
|
|
7
|
+
* [Anders Hovden](https://github.com/ddabble) \<andershovden at protonmail.com\>
|
|
8
|
+
* [Alexander Michael Staff](https://github.com/tralphium) \<alexandermstaff at gmail.com\>
|
|
9
|
+
* [Karoline Bonnerud](https://github.com/karolbon) \<kbonnerud at gmail.com\>
|
|
10
|
+
* [Theodor Astrup Wiik](https://github.com/tjedor) \<theo.aw at hotmail.com\>
|
|
11
|
+
* [Andreas Kristiansen Melzer](https://github.com/akrimelzer) \<akrimelzer at gmail.com\>
|
|
12
|
+
|
|
13
|
+
## 2020
|
|
14
|
+
|
|
15
|
+
* [Morten Brekkevold](https://github.com/lunkwill42) \<morten.brekkevold@sikt.no\>
|
|
16
|
+
* [Hanne Moa](https://github.com/hmpf) \<hanne.moa@sikt.no\>
|
|
17
|
+
* [Jørgen Bele Reinfjell](https://github.com/jorgenbele) \<jorgen.bele at gmail.com\>
|
|
18
|
+
* [Kat Hößel](https://github.com/katsel) \<kathoe@uninett.no\>
|
|
19
|
+
|
|
20
|
+
## 2021
|
|
21
|
+
* [dependabot](https://github.com/dependabot) \<49699333+dependabot[bot]@users.noreply.github.com\>
|
|
22
|
+
* [Ilona Podliashanyk](https://github.com/podliashanyk) \<ilona.podliashanyk@sikt.no\>
|
|
23
|
+
|
|
24
|
+
## 2022
|
|
25
|
+
|
|
26
|
+
* [Johanna England](https://github.com/johannaengland) \<johanna.england@sikt.no\>
|
|
27
|
+
* [Simon Oliver Tveit](https://github.com/stveit) \<simon.tveit@sikt.no\>
|
|
28
|
+
|
|
29
|
+
## 2024
|
|
30
|
+
|
|
31
|
+
* [Pelle Koster](https://github.com/elfjes) \<pelle.koster@geant.org\>
|
|
32
|
+
* [jorund1](https://github.com/jorund1) \<jorund@washbear.eu\>
|
|
33
|
+
|
|
34
|
+
## 2025
|
|
35
|
+
|
|
36
|
+
* [James Ladd](https://github.com/jladd-geant) \<james.ladd@geant.org\>
|
|
@@ -11,7 +11,7 @@ COPY requirements.txt /argus
|
|
|
11
11
|
COPY requirements/*.txt /argus/requirements/
|
|
12
12
|
|
|
13
13
|
WORKDIR /argus
|
|
14
|
-
RUN pip install -r requirements.txt -r /argus/requirements/dev.txt
|
|
14
|
+
RUN pip install gunicorn -r requirements.txt -r /argus/requirements/dev.txt
|
|
15
15
|
|
|
16
16
|
ENV PYTHONPATH=/argus/src
|
|
17
17
|
ENV PYTHONDONTWRITEBYTECODE=1
|
|
@@ -1,7 +1,9 @@
|
|
|
1
|
-
.PHONY: clean testclean distclean coverageclean cacheclean nuke tailwind docclean
|
|
1
|
+
.PHONY: clean testclean distclean coverageclean cacheclean nuke tailwind docclean upgrade-tailwind
|
|
2
2
|
|
|
3
3
|
TAILWINDDIR=src/argus/htmx/tailwindtheme
|
|
4
4
|
STATICDIR=src/argus/htmx/static
|
|
5
|
+
PYTHONPATH=./src
|
|
6
|
+
|
|
5
7
|
|
|
6
8
|
clean:
|
|
7
9
|
-find . -name __pycache__ -print0 | xargs -0 rm -rf
|
|
@@ -31,3 +33,6 @@ nuke: clean docclean distclean testclean cacheclean
|
|
|
31
33
|
|
|
32
34
|
tailwind:
|
|
33
35
|
tailwindcss -c $(TAILWINDDIR)/tailwind.config.js -i $(TAILWINDDIR)/styles.css -o $(STATICDIR)/styles.css
|
|
36
|
+
|
|
37
|
+
upgrade-tailwind:
|
|
38
|
+
PYTHONPATH=$(PYTHONPATH) python3 src/argus/htmx/tailwindtheme/get_tailwind.py
|
|
@@ -3,6 +3,34 @@
|
|
|
3
3
|
This file documents changes to Argus that are relevant for operations,
|
|
4
4
|
customizers and end-users.
|
|
5
5
|
|
|
6
|
+
|
|
7
|
+
## [2.2.0] - 2025-08-26
|
|
8
|
+
|
|
9
|
+
It is no longer necessary to install the frontend with `pip install
|
|
10
|
+
argus-server[htmx]`, just `pip install argus-server` will do. The first method
|
|
11
|
+
will still work but is deprecated.
|
|
12
|
+
|
|
13
|
+
The included settings files were using the `update_settings` trick to set up
|
|
14
|
+
the frontend, this has now been fixed. If you do not use separate settings
|
|
15
|
+
files you should not need to do anything, but if you *do* use your own
|
|
16
|
+
settings-files you no longer need invoke `update_settings`, just choose what
|
|
17
|
+
settings-file to import/copy from with care.
|
|
18
|
+
|
|
19
|
+
It is now also possible to look at only the last three days of incidents in the
|
|
20
|
+
frontend.
|
|
21
|
+
|
|
22
|
+
All other changes are related to maintenance and/or development. The rules in
|
|
23
|
+
the Makefile have been documented. A rule for controlling/upgrading the version
|
|
24
|
+
of Tailwind and Daisy UI has been added to the Makefile, and compiling CSS via
|
|
25
|
+
`make tailwind` will be using the versions downloaded with the new rule.
|
|
26
|
+
|
|
27
|
+
|
|
28
|
+
## [2.1.1] - 2025-07-16
|
|
29
|
+
|
|
30
|
+
Updated the user manual in the docs, added the link to the Argus demo site
|
|
31
|
+
(https://argus-demo.uninett.no) to the README and fixed automatic ticket creation.
|
|
32
|
+
|
|
33
|
+
|
|
6
34
|
## [2.1.0] - 2025-06-30
|
|
7
35
|
|
|
8
36
|
One new user preference.
|
|
@@ -10,14 +38,6 @@ One new user preference.
|
|
|
10
38
|
One new and one changed management command, both for better manipulation of
|
|
11
39
|
incidents via the CLI.
|
|
12
40
|
|
|
13
|
-
### Added
|
|
14
|
-
|
|
15
|
-
- Add a preference to change the incidents table layout to compact or standard
|
|
16
|
-
([#1399](https://github.com/Uninett/Argus/issues/1399))
|
|
17
|
-
- Add CLI command to close incidents
|
|
18
|
-
([#1450](https://github.com/Uninett/Argus/issues/1450))
|
|
19
|
-
- Add option to `create_fake_incident` to generate incidents from json files
|
|
20
|
-
([#1451](https://github.com/Uninett/Argus/issues/1451))
|
|
21
41
|
|
|
22
42
|
## [2.0.0] - 2025-05-26
|
|
23
43
|
|
|
@@ -44,25 +64,6 @@ and corresponding imports if you are getting the error
|
|
|
44
64
|
`django.core.exceptions.ImproperlyConfigured: Application labels aren't unique,
|
|
45
65
|
duplicates: django_htmx`.
|
|
46
66
|
|
|
47
|
-
### Removed
|
|
48
|
-
|
|
49
|
-
- Deleted API v1, its tests and mentions in the documentation. As well as all
|
|
50
|
-
support for the old frontend. Any endpoint starting with "/api/v1" replies
|
|
51
|
-
with "410 Gone". ([#1446](https://github.com/Uninett/Argus/pull/1446),
|
|
52
|
-
[#1445](https://github.com/Uninett/Argus/pull/1445),
|
|
53
|
-
[#1428](https://github.com/Uninett/Argus/pull/1428),
|
|
54
|
-
[#1427](https://github.com/Uninett/Argus/pull/1427),
|
|
55
|
-
[#1423](https://github.com/Uninett/Argus/pull/1423),
|
|
56
|
-
[#1422](https://github.com/Uninett/Argus/pull/1422),
|
|
57
|
-
[#1417](https://github.com/Uninett/Argus/pull/1417),
|
|
58
|
-
[#1415](https://github.com/Uninett/Argus/pull/1415))
|
|
59
|
-
|
|
60
|
-
### Added
|
|
61
|
-
|
|
62
|
-
- Added an optional banner below the navbar that can be filled with text
|
|
63
|
-
controlled via environment variable/Django setting.
|
|
64
|
-
([#1164](https://github.com/Uninett/Argus/issues/1164))
|
|
65
|
-
|
|
66
67
|
|
|
67
68
|
## [1.37.0] - 2025-05-14
|
|
68
69
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: argus-server
|
|
3
|
-
Version: 2.
|
|
3
|
+
Version: 2.2.0
|
|
4
4
|
Summary: Argus is an alert aggregator for monitoring systems
|
|
5
5
|
Project-URL: Homepage, https://github.com/Uninett/Argus
|
|
6
6
|
Author-email: Uninett Opensource <opensource@uninett.no>
|
|
@@ -21,13 +21,16 @@ Requires-Python: >=3.10
|
|
|
21
21
|
Requires-Dist: dj-database-url>=0.5.0
|
|
22
22
|
Requires-Dist: django-cors-headers>=3.2
|
|
23
23
|
Requires-Dist: django-filter
|
|
24
|
+
Requires-Dist: django-htmx
|
|
24
25
|
Requires-Dist: django-phonenumber-field[phonenumberslite]
|
|
25
26
|
Requires-Dist: django-rest-knox
|
|
27
|
+
Requires-Dist: django-widget-tweaks==1.5.0
|
|
26
28
|
Requires-Dist: django<6.0,>=5.2
|
|
27
29
|
Requires-Dist: djangorestframework>=3.14
|
|
28
30
|
Requires-Dist: drf-rw-serializers>=1.1
|
|
29
31
|
Requires-Dist: drf-spectacular>=0.17
|
|
30
32
|
Requires-Dist: factory-boy
|
|
33
|
+
Requires-Dist: fontawesomefree~=6.6
|
|
31
34
|
Requires-Dist: httpx
|
|
32
35
|
Requires-Dist: psycopg2
|
|
33
36
|
Requires-Dist: pydantic>=2
|
|
@@ -52,11 +55,6 @@ Requires-Dist: werkzeug; extra == 'dev'
|
|
|
52
55
|
Provides-Extra: docs
|
|
53
56
|
Requires-Dist: sphinx>=2.2.0; extra == 'docs'
|
|
54
57
|
Provides-Extra: htmx
|
|
55
|
-
Requires-Dist: django-htmx; extra == 'htmx'
|
|
56
|
-
Requires-Dist: django-widget-tweaks==1.5.0; extra == 'htmx'
|
|
57
|
-
Requires-Dist: fontawesomefree~=6.6; extra == 'htmx'
|
|
58
|
-
Requires-Dist: social-auth-app-django>=5.0; extra == 'htmx'
|
|
59
|
-
Requires-Dist: social-auth-core>=4.1; extra == 'htmx'
|
|
60
58
|
Description-Content-Type: text/markdown
|
|
61
59
|
|
|
62
60
|
# Argus
|
|
@@ -79,6 +77,15 @@ See also the the [Python client library](https://github.com/Uninett/pyargus).
|
|
|
79
77
|
> * Support for the REACT frontend was dropped in version 2.0 of
|
|
80
78
|
> argus-server. Please try out the new built-in one.
|
|
81
79
|
|
|
80
|
+
## DEMO
|
|
81
|
+
|
|
82
|
+
Give Argus a test-run!
|
|
83
|
+
|
|
84
|
+
See `https://argus-demo.uninett.no/`.
|
|
85
|
+
|
|
86
|
+
The demo has notification sending turned off, and automated ticket creation is
|
|
87
|
+
also turned off. The database is reset every 24 hours. Fake incidents are
|
|
88
|
+
randomly generated and randomly closed.
|
|
82
89
|
|
|
83
90
|
## Installation
|
|
84
91
|
|
|
@@ -18,6 +18,15 @@ See also the the [Python client library](https://github.com/Uninett/pyargus).
|
|
|
18
18
|
> * Support for the REACT frontend was dropped in version 2.0 of
|
|
19
19
|
> argus-server. Please try out the new built-in one.
|
|
20
20
|
|
|
21
|
+
## DEMO
|
|
22
|
+
|
|
23
|
+
Give Argus a test-run!
|
|
24
|
+
|
|
25
|
+
See `https://argus-demo.uninett.no/`.
|
|
26
|
+
|
|
27
|
+
The demo has notification sending turned off, and automated ticket creation is
|
|
28
|
+
also turned off. The database is reset every 24 hours. Fake incidents are
|
|
29
|
+
randomly generated and randomly closed.
|
|
21
30
|
|
|
22
31
|
## Installation
|
|
23
32
|
|
|
@@ -1,12 +1,19 @@
|
|
|
1
1
|
# Defines a production image for the Argus API server
|
|
2
|
-
# Needs the repository root directory as its context
|
|
2
|
+
# Needs the repository root directory as its context:
|
|
3
|
+
#
|
|
4
|
+
# If you're in the same dorectory as this Dockerfile try:
|
|
5
|
+
# docker build ..
|
|
6
|
+
#
|
|
7
|
+
# If you're in the repository root try:
|
|
8
|
+
# docker build -f docker/Dockerfile .
|
|
9
|
+
|
|
3
10
|
FROM python:3.12
|
|
4
11
|
ENV DEBIAN_FRONTEND=noninteractive
|
|
5
12
|
|
|
6
13
|
RUN apt-get update && apt-get install -y --no-install-recommends tini build-essential
|
|
7
14
|
|
|
8
15
|
# Install some dev requirements that aren't part of the minimal dependencies:
|
|
9
|
-
RUN pip install psycopg2-binary django-extensions python-dotenv gunicorn
|
|
16
|
+
RUN pip install psycopg2-binary django-extensions python-dotenv gunicorn
|
|
10
17
|
|
|
11
18
|
# Make an unprivileged user to run the server
|
|
12
19
|
RUN useradd --system argus
|
|
@@ -15,7 +22,7 @@ RUN mkdir -p /static && chown argus /static
|
|
|
15
22
|
ENV STATIC_ROOT=/static
|
|
16
23
|
|
|
17
24
|
COPY . /src
|
|
18
|
-
RUN pip install '/src
|
|
25
|
+
RUN pip install '/src' && rm -rf /src
|
|
19
26
|
|
|
20
27
|
# Install API backend settings suitable for Docker deployment
|
|
21
28
|
RUN mkdir /extrapython
|
|
@@ -28,10 +28,9 @@ settings](http://argus-server.rtfd.io/en/latest/site-specific-settings.html).
|
|
|
28
28
|
|
|
29
29
|
## Limitations
|
|
30
30
|
|
|
31
|
-
This is not a complete Argus environment. This image only defines the
|
|
32
|
-
API
|
|
33
|
-
functional.
|
|
34
|
-
user interface against the API server.
|
|
31
|
+
This is not a complete Argus environment. This image only defines the web
|
|
32
|
+
server component: API and frontend. It still depends on a PostgreSQL server to
|
|
33
|
+
be functional.
|
|
35
34
|
|
|
36
35
|
For a full production environment example, take a look at
|
|
37
36
|
https://github.com/Uninett/argus-docker
|
|
@@ -3,8 +3,7 @@
|
|
|
3
3
|
django-admin collectstatic --noinput
|
|
4
4
|
django-admin migrate --noinput
|
|
5
5
|
exec gunicorn \
|
|
6
|
-
argus.
|
|
7
|
-
-k uvicorn.workers.UvicornWorker \
|
|
6
|
+
argus.site.wsgi:application \
|
|
8
7
|
--forwarded-allow-ips="*" \
|
|
9
8
|
--access-logfile - \
|
|
10
9
|
-b 0.0.0.0:$PORT \
|
|
@@ -6,12 +6,10 @@ services:
|
|
|
6
6
|
- "8000:8000"
|
|
7
7
|
depends_on:
|
|
8
8
|
- postgres
|
|
9
|
-
- redis
|
|
10
9
|
environment:
|
|
11
10
|
- TIME_ZONE=Europe/Oslo
|
|
12
11
|
- DJANGO_SETTINGS_MODULE=argus.site.settings.dockerdev
|
|
13
12
|
- DATABASE_URL=postgresql://argus:HahF9araeKoo@postgres/argus
|
|
14
|
-
- ARGUS_REDIS_SERVER=redis
|
|
15
13
|
volumes:
|
|
16
14
|
- ${PWD}:/argus
|
|
17
15
|
restart: always
|
|
@@ -28,11 +26,6 @@ services:
|
|
|
28
26
|
- POSTGRES_DB=argus
|
|
29
27
|
|
|
30
28
|
|
|
31
|
-
redis:
|
|
32
|
-
image: "redis:latest"
|
|
33
|
-
restart: always
|
|
34
|
-
|
|
35
|
-
|
|
36
29
|
volumes:
|
|
37
30
|
postgres:
|
|
38
31
|
driver: local
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
.. _howto-change-settings:
|
|
2
|
+
|
|
3
|
+
====================================
|
|
4
|
+
How to change site-specific settings
|
|
5
|
+
====================================
|
|
6
|
+
|
|
7
|
+
Two ways to define these site-specific settings follow.
|
|
8
|
+
|
|
9
|
+
The management command ``print_settings`` (which depends on the app
|
|
10
|
+
``django-extensions``, a ``dev``-dependency installable via ``pip
|
|
11
|
+
install argus-server[dev]``) will print out the complete
|
|
12
|
+
settings that will be used.
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
Variant 1: Using environment variables in the shell
|
|
16
|
+
===================================================
|
|
17
|
+
|
|
18
|
+
A subset of settings can be set per 12 factor, using environment variables.
|
|
19
|
+
|
|
20
|
+
Note that environment variables can only contain numbers and strings as values.
|
|
21
|
+
Strings have to be enclosed with double quotes, ``"a simple string"``.
|
|
22
|
+
Use ``1`` to represent Boolean True, ``0`` for False.
|
|
23
|
+
|
|
24
|
+
In bash/zsh you set an environment variable like this::
|
|
25
|
+
|
|
26
|
+
$ export DEBUG=1
|
|
27
|
+
|
|
28
|
+
Deployment-specific systems like docker-compose, heroku or kubernetes might have their
|
|
29
|
+
own way of setting environment variables.
|
|
30
|
+
|
|
31
|
+
Variant 2: Using a ``settings.py`` file
|
|
32
|
+
=======================================
|
|
33
|
+
|
|
34
|
+
A settings file is a regular importable Python file. The filename MUST start
|
|
35
|
+
with a letter, MUST only contain letters, numbers or underscores ("_"), and
|
|
36
|
+
MUST end with ".py".
|
|
37
|
+
|
|
38
|
+
This allows the use of more complex Python data types than environment variables.
|
|
39
|
+
A settings file may override anything set via environment variable.
|
|
40
|
+
|
|
41
|
+
``argus.site.settings.dev`` has reasonable defaults for development while
|
|
42
|
+
``argus.site.settings.prod`` is a good starting point for production.
|
|
43
|
+
|
|
44
|
+
.. note:: The development settings file assumes that the optional development
|
|
45
|
+
dependencies are installed. You can get them via ``pip install argus-server[dev]``.
|
|
46
|
+
|
|
47
|
+
Development
|
|
48
|
+
~~~~~~~~~~~
|
|
49
|
+
|
|
50
|
+
Do this in your working directory, which could be the checked out `argus-server
|
|
51
|
+
<https://github.com/Uninett/Argus>`_ repo.
|
|
52
|
+
|
|
53
|
+
This assumes that you have a local settings file (we recommend calling it
|
|
54
|
+
"localsettings.py" since that is hidden by .gitignore) as a sibling of
|
|
55
|
+
``src/``.
|
|
56
|
+
|
|
57
|
+
At the top of this local settings file you should have::
|
|
58
|
+
|
|
59
|
+
from argus.site.settings.dev import *
|
|
60
|
+
|
|
61
|
+
There, now you can alter anything.
|
|
62
|
+
|
|
63
|
+
If you don't want to use any of the development dependencies you can import
|
|
64
|
+
from ``argus.htmx.settings`` instead.
|
|
65
|
+
|
|
66
|
+
Settings can be tested in ``localsettings.py`` and moved to other settings files
|
|
67
|
+
later.
|
|
68
|
+
|
|
69
|
+
Production
|
|
70
|
+
~~~~~~~~~~
|
|
71
|
+
|
|
72
|
+
Copy the contents of ``argus.site.settings.prod`` to your own settings-file.
|
|
73
|
+
It does not depend on any development dependencies. It will also turn on some
|
|
74
|
+
extra nagging for settings that MUST be set for production.
|
|
75
|
+
|
|
76
|
+
For production you MUST set :setting::`ALLOWED_HOSTS`, note how it's
|
|
77
|
+
commented out in ``argus.site.settings.prod``.
|
|
78
|
+
|
|
79
|
+
Use an expressive name for your ``settings.py`` file, such as
|
|
80
|
+
``production_settings.py``.
|
|
81
|
+
|
|
82
|
+
You can combine settings files and environment variables.
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
=============================
|
|
2
|
+
Howtos and tips for using git
|
|
3
|
+
=============================
|
|
4
|
+
|
|
5
|
+
Set name and email address to use as "Author" or "Committer" for a commit
|
|
6
|
+
=========================================================================
|
|
7
|
+
|
|
8
|
+
This can be set per box you use ``git`` on, or per repo.
|
|
9
|
+
|
|
10
|
+
If you always want to use the same name and address for all code you commit,
|
|
11
|
+
use::
|
|
12
|
+
|
|
13
|
+
git config set --global user.name` "YOUR NAME"
|
|
14
|
+
git config set --global user.email "YOUR@EMAIL"
|
|
15
|
+
|
|
16
|
+
If you don't set ``user.name`` on Linux/\*nix, your username might be used.
|
|
17
|
+
|
|
18
|
+
If you want to set it per repo, enter the root of the repo and run the command
|
|
19
|
+
without the ``--global`` flag::
|
|
20
|
+
|
|
21
|
+
git config set user.name` "YOUR NAME"
|
|
22
|
+
git config set user.email "YOUR@EMAIL"
|
|
23
|
+
|
|
24
|
+
You might want to set the same address for GitHub too, see
|
|
25
|
+
:ref:`setting-email-addresses-in-GitHub`.
|
|
26
|
+
|
|
27
|
+
Merge several names and email address into one with the mailmap file
|
|
28
|
+
====================================================================
|
|
29
|
+
|
|
30
|
+
Sometimes we end up commiting from several different places, with several
|
|
31
|
+
different names and email addresses, which makes things look a bit messy.
|
|
32
|
+
People also sometimes change their names and email addresses.
|
|
33
|
+
|
|
34
|
+
While it is possible to change the names and addresses already used for commits
|
|
35
|
+
after the fact, the mess can be hidden via a ``.mailmap`` file.
|
|
36
|
+
|
|
37
|
+
See :ref:`maintaining-mailmap` for how to do this.
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
================================
|
|
2
|
+
Howtos and tips for using GitHub
|
|
3
|
+
================================
|
|
4
|
+
|
|
5
|
+
.. _setting-email-addresses-in-GitHub:
|
|
6
|
+
|
|
7
|
+
Set email address used when committing in the web interface
|
|
8
|
+
===========================================================
|
|
9
|
+
|
|
10
|
+
GitHub gives every user a magic no-reply email address of the form
|
|
11
|
+
``0000000+username@users.noreply.github.com`` which by default is used as the
|
|
12
|
+
"Committer" in a git commit made via the web interface.
|
|
13
|
+
|
|
14
|
+
If this email address has not been set for the git repo or user on your
|
|
15
|
+
development box, the commits you make via CLI and the commits you make via the
|
|
16
|
+
web interface will have different email addresses.
|
|
17
|
+
|
|
18
|
+
You can associate other email addresses with your GitHub account in the `Github
|
|
19
|
+
email settings <https://github.com/settings/emails>`_ page and use those when
|
|
20
|
+
you commit (also useful if you have changed your email). The one set as primary
|
|
21
|
+
is the one that will be shown in the web interface unless you want to use the
|
|
22
|
+
magic address GitHub provides for you, then you need to toggle "Keep my email
|
|
23
|
+
addresses private" on the same page to "On". You can even prevent commits not
|
|
24
|
+
using the magic address from being pushed to GitHub.
|
|
25
|
+
|
|
26
|
+
See `Setting your commit email address at GitHub<https://docs.github.com/en/account-and-profile/how-tos/setting-up-and-managing-your-personal-account-on-github/managing-email-preferences/setting-your-commit-email-address>`_ for more information.
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
====================================================
|
|
2
|
+
Howto: Maintaining the contributors file and mailmap
|
|
3
|
+
====================================================
|
|
4
|
+
|
|
5
|
+
Maintaining CONTRIBUTORS.md
|
|
6
|
+
===========================
|
|
7
|
+
|
|
8
|
+
``CONTRIBUTORS.md`` contains the official list of contributors to Argus.
|
|
9
|
+
|
|
10
|
+
It is preferrable that new contributors (both code authors and code committers)
|
|
11
|
+
add themselves at the end, but it can also be done after the fact via some
|
|
12
|
+
variation of::
|
|
13
|
+
|
|
14
|
+
$ git log --all --pretty="%ad %ae %an" --date=iso | sort -u
|
|
15
|
+
|
|
16
|
+
which outputs full ISO timestamp, email address and name for the commits,
|
|
17
|
+
sorted by date, oldest first.
|
|
18
|
+
|
|
19
|
+
As an example, as of the creation of this howto, the first entry for
|
|
20
|
+
"dependabot" is::
|
|
21
|
+
|
|
22
|
+
2021-03-22T14:40:04+01:00 49699333+dependabot[bot]@users.noreply.github.com dependabot[bot]
|
|
23
|
+
|
|
24
|
+
The format for a contributor in the CONTRIBUTORS.md is::
|
|
25
|
+
|
|
26
|
+
* [Name of contributor](link to preferred homepage) \<preferred@email.address\>
|
|
27
|
+
|
|
28
|
+
If there is no preferred homepage the contributor name need not be a link::
|
|
29
|
+
|
|
30
|
+
* Name of contributor \<preferred@email.address\>
|
|
31
|
+
|
|
32
|
+
.. _maintaining-mailmap:
|
|
33
|
+
|
|
34
|
+
Maintaining .mailmap
|
|
35
|
+
====================
|
|
36
|
+
|
|
37
|
+
``.mailmap`` exists to combine email addresses and contributor names of
|
|
38
|
+
contributors that have several. This is useful for ``git blame`` and ``git
|
|
39
|
+
log``.
|
|
40
|
+
|
|
41
|
+
This happens when the contributor commits from several different computers and
|
|
42
|
+
tools with different configurations for name and email. Github also gives each
|
|
43
|
+
user a github-specific email address that may be used when authoring/committing.
|
|
44
|
+
|
|
45
|
+
.. tip:: To prevent multiple names and addresses for the same author/committer
|
|
46
|
+
in the first place, make sure to explicitly configure this in every tool
|
|
47
|
+
used to commit.
|
|
48
|
+
|
|
49
|
+
For readability, we update the `.mailmap`-file manually. The file starts with
|
|
50
|
+
a block of preferred names and email addresses in the "canonical" section.
|
|
51
|
+
|
|
52
|
+
The format is::
|
|
53
|
+
|
|
54
|
+
Preferred Name <preferred@email.address>
|
|
55
|
+
|
|
56
|
+
This is followed by a list of rewrites to map names and email addresses to the
|
|
57
|
+
preferred forms in the "rewrites" section. The format is described in
|
|
58
|
+
`gitmailmap(5) <https://git-scm.com/docs/gitmailmap>`_.
|
|
59
|
+
|
|
60
|
+
You can get a list of all used names and email addreses via::
|
|
61
|
+
|
|
62
|
+
$ git log --format='%an <%ae>' | sort -u
|