argus-server 2.1.0__tar.gz → 2.2.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.
- {argus_server-2.1.0 → argus_server-2.2.1}/CHANGELOG.md +79 -0
- argus_server-2.2.1/CONTRIBUTING.rst +56 -0
- argus_server-2.2.1/CONTRIBUTORS.md +36 -0
- {argus_server-2.1.0 → argus_server-2.2.1}/Dockerfile +1 -1
- {argus_server-2.1.0 → argus_server-2.2.1}/Makefile +6 -1
- {argus_server-2.1.0 → argus_server-2.2.1}/NOTES.md +33 -27
- {argus_server-2.1.0 → argus_server-2.2.1}/PKG-INFO +42 -27
- {argus_server-2.1.0 → argus_server-2.2.1}/README.md +38 -21
- {argus_server-2.1.0 → argus_server-2.2.1}/docker/Dockerfile +15 -4
- {argus_server-2.1.0 → argus_server-2.2.1}/docker/README.md +19 -7
- {argus_server-2.1.0 → argus_server-2.2.1}/docker/docker-entrypoint.sh +1 -2
- {argus_server-2.1.0 → argus_server-2.2.1}/docker-compose.yml +0 -7
- {argus_server-2.1.0 → argus_server-2.2.1}/docker-entrypoint.sh +1 -1
- argus_server-2.2.1/docs/development/howtos/change-settings.rst +82 -0
- argus_server-2.2.1/docs/development/howtos/howtos-for-git.rst +37 -0
- argus_server-2.2.1/docs/development/howtos/howtos-for-github.rst +26 -0
- argus_server-2.2.1/docs/development/howtos/update-contributors.rst +62 -0
- argus_server-2.2.1/docs/development/makefile-rules.rst +93 -0
- {argus_server-2.1.0 → argus_server-2.2.1}/docs/development.rst +1 -0
- argus_server-2.2.1/docs/img/default_timeslot.png +0 -0
- argus_server-2.2.1/docs/img/destinations_view.png +0 -0
- argus_server-2.2.1/docs/img/example_timeslot.png +0 -0
- argus_server-2.2.1/docs/img/filter_selector.png +0 -0
- argus_server-2.2.1/docs/img/incident_details_view.png +0 -0
- argus_server-2.2.1/docs/img/incidents_filter.png +0 -0
- argus_server-2.2.1/docs/img/incidents_page.png +0 -0
- argus_server-2.2.1/docs/img/new_notification_profile.png +0 -0
- argus_server-2.2.1/docs/img/notification_profiles.png +0 -0
- argus_server-2.2.1/docs/img/synced_destination_delete_error.png +0 -0
- argus_server-2.2.1/docs/img/timeslots_view.png +0 -0
- argus_server-2.2.1/docs/img/unsaved_recurrence.png +0 -0
- argus_server-2.2.1/docs/img/user_menu.png +0 -0
- {argus_server-2.1.0 → argus_server-2.2.1}/docs/integrations/glue-services/index.rst +44 -0
- {argus_server-2.1.0 → argus_server-2.2.1}/docs/reference/htmx-frontend.rst +26 -87
- {argus_server-2.1.0 → argus_server-2.2.1}/docs/user-manual.rst +354 -245
- {argus_server-2.1.0 → argus_server-2.2.1}/pyproject.toml +6 -7
- {argus_server-2.1.0 → argus_server-2.2.1}/requirements-django52.txt +1 -1
- {argus_server-2.1.0 → argus_server-2.2.1}/requirements.txt +1 -1
- {argus_server-2.1.0 → argus_server-2.2.1}/src/argus/htmx/constants.py +2 -8
- {argus_server-2.1.0 → argus_server-2.2.1}/src/argus/htmx/incident/constants.py +13 -12
- {argus_server-2.1.0 → argus_server-2.2.1}/src/argus/htmx/incident/filter.py +10 -23
- {argus_server-2.1.0 → argus_server-2.2.1}/src/argus/htmx/incident/utils.py +8 -0
- {argus_server-2.1.0 → argus_server-2.2.1}/src/argus/htmx/incident/views.py +1 -1
- argus_server-2.2.1/src/argus/htmx/settings.py +14 -0
- argus_server-2.2.1/src/argus/htmx/tailwindtheme/config.py +33 -0
- argus_server-2.2.1/src/argus/htmx/tailwindtheme/get_tailwind.py +28 -0
- argus_server-2.2.1/src/argus/htmx/tailwindtheme/utils.py +42 -0
- {argus_server-2.1.0 → argus_server-2.2.1}/src/argus/htmx/templates/htmx/incident/_incident_list_refresh_info.html +6 -5
- {argus_server-2.1.0 → argus_server-2.2.1}/src/argus/htmx/templates/htmx/user/_incidents_table_layout_dropdown.html +3 -3
- {argus_server-2.1.0 → argus_server-2.2.1}/src/argus/htmx/templates/htmx/user/_page_size_dropdown.html +3 -3
- {argus_server-2.1.0 → argus_server-2.2.1}/src/argus/htmx/templates/htmx/user/_update_interval_dropdown.html +4 -4
- {argus_server-2.1.0 → argus_server-2.2.1}/src/argus/htmx/user/preferences/models.py +7 -7
- argus_server-2.2.1/src/argus/site/settings/backend.py +5 -0
- {argus_server-2.1.0 → argus_server-2.2.1}/src/argus/site/settings/base.py +15 -0
- {argus_server-2.1.0 → argus_server-2.2.1}/src/argus/site/settings/dev.py +1 -7
- argus_server-2.1.0/src/argus/site/settings/backend.py → argus_server-2.2.1/src/argus/site/settings/prod.py +11 -7
- {argus_server-2.1.0 → argus_server-2.2.1}/src/argus/site/settings/test_CI.py +2 -7
- argus_server-2.2.1/src/argus/version.py +1 -0
- argus_server-2.2.1/tests/util/__init__.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.1}/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.1}/.git-blame-ignore-revs +0 -0
- {argus_server-2.1.0 → argus_server-2.2.1}/.gitattributes +0 -0
- {argus_server-2.1.0 → argus_server-2.2.1}/.gitignore +0 -0
- {argus_server-2.1.0 → argus_server-2.2.1}/.mailmap +0 -0
- {argus_server-2.1.0 → argus_server-2.2.1}/.pre-commit-config.yaml +0 -0
- {argus_server-2.1.0 → argus_server-2.2.1}/.readthedocs.yaml +0 -0
- {argus_server-2.1.0 → argus_server-2.2.1}/.sonarcloud.properties +0 -0
- {argus_server-2.1.0 → argus_server-2.2.1}/LICENSE +0 -0
- {argus_server-2.1.0 → argus_server-2.2.1}/MAINTAINING.rst +0 -0
- {argus_server-2.1.0 → argus_server-2.2.1}/UPGRADING.md +0 -0
- {argus_server-2.1.0 → argus_server-2.2.1}/changelog.d/.gitkeep +0 -0
- {argus_server-2.1.0 → argus_server-2.2.1}/cmd.sh-template +0 -0
- {argus_server-2.1.0 → argus_server-2.2.1}/codecov.yml +0 -0
- {argus_server-2.1.0 → argus_server-2.2.1}/constraints.txt +0 -0
- {argus_server-2.1.0 → argus_server-2.2.1}/docker/dockersettings.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.1}/docs/Makefile +0 -0
- {argus_server-2.1.0 → argus_server-2.2.1}/docs/_exts/djangodocs.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.1}/docs/_static/.gitkeep +0 -0
- {argus_server-2.1.0 → argus_server-2.2.1}/docs/_templates/.gitkeep +0 -0
- {argus_server-2.1.0 → argus_server-2.2.1}/docs/about-argus.rst +0 -0
- {argus_server-2.1.0 → argus_server-2.2.1}/docs/conf.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.1}/docs/customization/htmx-frontend.rst +0 -0
- {argus_server-2.1.0 → argus_server-2.2.1}/docs/customization.rst +0 -0
- {argus_server-2.1.0 → argus_server-2.2.1}/docs/development/howtos/add-more-preferences.rst +0 -0
- {argus_server-2.1.0 → argus_server-2.2.1}/docs/development/howtos/changelog-entry.rst +0 -0
- {argus_server-2.1.0 → argus_server-2.2.1}/docs/development/howtos/commit-messages.rst +0 -0
- {argus_server-2.1.0 → argus_server-2.2.1}/docs/development/howtos/customizing-filtering.rst +0 -0
- {argus_server-2.1.0 → argus_server-2.2.1}/docs/development/howtos/federated-logins.rst +0 -0
- {argus_server-2.1.0 → argus_server-2.2.1}/docs/development/howtos/htmx-frontend/column_for_specific_ack_group.rst +0 -0
- {argus_server-2.1.0 → argus_server-2.2.1}/docs/development/howtos/htmx-frontend/column_for_specific_tag.rst +0 -0
- {argus_server-2.1.0 → argus_server-2.2.1}/docs/development/howtos/htmx-frontend/custom-incident-actions.rst +0 -0
- {argus_server-2.1.0 → argus_server-2.2.1}/docs/development/howtos/htmx-frontend/customize-filtering.rst +0 -0
- {argus_server-2.1.0 → argus_server-2.2.1}/docs/development/howtos/htmx-frontend/dependencies.rst +0 -0
- {argus_server-2.1.0 → argus_server-2.2.1}/docs/development/howtos/htmx-frontend/font_awesome.rst +0 -0
- {argus_server-2.1.0 → argus_server-2.2.1}/docs/development/howtos/htmx-frontend/override_templates.rst +0 -0
- {argus_server-2.1.0 → argus_server-2.2.1}/docs/development/howtos/htmx-frontend.rst +0 -0
- {argus_server-2.1.0 → argus_server-2.2.1}/docs/development/howtos/notification-system-testing.rst +0 -0
- {argus_server-2.1.0 → argus_server-2.2.1}/docs/development/howtos/recover-from-migration-trouble.rst +0 -0
- {argus_server-2.1.0 → argus_server-2.2.1}/docs/development/howtos/regenerate-the-ER-diagram.rst +0 -0
- {argus_server-2.1.0 → argus_server-2.2.1}/docs/development/howtos/release-checklist.rst +0 -0
- {argus_server-2.1.0 → argus_server-2.2.1}/docs/development/howtos/toggle-django-debug-toolbar.rst +0 -0
- {argus_server-2.1.0 → argus_server-2.2.1}/docs/development/howtos/vendor-a-repo.rst +0 -0
- {argus_server-2.1.0 → argus_server-2.2.1}/docs/development/howtos.rst +0 -0
- {argus_server-2.1.0 → argus_server-2.2.1}/docs/development/management-commands.rst +0 -0
- {argus_server-2.1.0 → argus_server-2.2.1}/docs/development/notes.rst +0 -0
- {argus_server-2.1.0 → argus_server-2.2.1}/docs/development/troubleshooting.rst +0 -0
- {argus_server-2.1.0 → argus_server-2.2.1}/docs/django_settings.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.1}/docs/index.rst +0 -0
- {argus_server-2.1.0 → argus_server-2.2.1}/docs/integrations/_note.rst +0 -0
- {argus_server-2.1.0 → argus_server-2.2.1}/docs/integrations/glue-services/writing-glueservices.rst +0 -0
- {argus_server-2.1.0 → argus_server-2.2.1}/docs/integrations/index.rst +0 -0
- {argus_server-2.1.0 → argus_server-2.2.1}/docs/integrations/notifications/email-plugin.rst +0 -0
- {argus_server-2.1.0 → argus_server-2.2.1}/docs/integrations/notifications/index.rst +0 -0
- {argus_server-2.1.0 → argus_server-2.2.1}/docs/integrations/notifications/sms-plugin.rst +0 -0
- {argus_server-2.1.0 → argus_server-2.2.1}/docs/integrations/notifications/writing-notification-plugins.rst +0 -0
- {argus_server-2.1.0 → argus_server-2.2.1}/docs/integrations/ticket-systems/index.rst +0 -0
- {argus_server-2.1.0 → argus_server-2.2.1}/docs/integrations/ticket-systems/writing-ticket-system-plugins.rst +0 -0
- {argus_server-2.1.0 → argus_server-2.2.1}/docs/make.bat +0 -0
- {argus_server-2.1.0 → argus_server-2.2.1}/docs/reference/admin.rst +0 -0
- {argus_server-2.1.0 → argus_server-2.2.1}/docs/reference/api/v2.rst +0 -0
- {argus_server-2.1.0 → argus_server-2.2.1}/docs/reference/api.rst +0 -0
- {argus_server-2.1.0 → argus_server-2.2.1}/docs/reference/authentication.rst +0 -0
- {argus_server-2.1.0 → argus_server-2.2.1}/docs/reference/glossary.rst +0 -0
- {argus_server-2.1.0 → argus_server-2.2.1}/docs/reference/img/ER_model.png +0 -0
- {argus_server-2.1.0 → argus_server-2.2.1}/docs/reference/models.rst +0 -0
- {argus_server-2.1.0 → argus_server-2.2.1}/docs/reference/site-specific-settings.rst +0 -0
- {argus_server-2.1.0 → argus_server-2.2.1}/docs/reference.rst +0 -0
- {argus_server-2.1.0 → argus_server-2.2.1}/manage.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.1}/requirements/dev.txt +0 -0
- {argus_server-2.1.0 → argus_server-2.2.1}/requirements/django52.txt +0 -0
- {argus_server-2.1.0 → argus_server-2.2.1}/requirements/please-pip-sync.txt +0 -0
- {argus_server-2.1.0 → argus_server-2.2.1}/requirements/test.txt +0 -0
- {argus_server-2.1.0 → argus_server-2.2.1}/src/argus/__init__.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.1}/src/argus/auth/__init__.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.1}/src/argus/auth/admin.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.1}/src/argus/auth/apps.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.1}/src/argus/auth/authentication.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.1}/src/argus/auth/context_processors.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.1}/src/argus/auth/drftoken/__init__.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.1}/src/argus/auth/drftoken/serializers.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.1}/src/argus/auth/drftoken/urls.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.1}/src/argus/auth/drftoken/views.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.1}/src/argus/auth/factories.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.1}/src/argus/auth/knox/__init__.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.1}/src/argus/auth/knox/serializers.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.1}/src/argus/auth/knox/urls.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.1}/src/argus/auth/knox/views.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.1}/src/argus/auth/management/__init__.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.1}/src/argus/auth/management/commands/__init__.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.1}/src/argus/auth/management/commands/changeuser.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.1}/src/argus/auth/management/commands/createuser.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.1}/src/argus/auth/management/commands/grantsuperuser.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.1}/src/argus/auth/management/commands/revokesuperuser.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.1}/src/argus/auth/management/commands/setpassword.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.1}/src/argus/auth/migrations/0001_initial.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.1}/src/argus/auth/migrations/0002_alter_user_first_name.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.1}/src/argus/auth/migrations/0002_squashed_auth_20250512_add_preferences_model.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.1}/src/argus/auth/migrations/0003_delete_phonenumber.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.1}/src/argus/auth/migrations/0004_add_preferences_model.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.1}/src/argus/auth/migrations/__init__.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.1}/src/argus/auth/models.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.1}/src/argus/auth/serializers.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.1}/src/argus/auth/urls.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.1}/src/argus/auth/utils.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.1}/src/argus/auth/views.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.1}/src/argus/base/__init__.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.1}/src/argus/base/apps.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.1}/src/argus/base/static/favicon.svg +0 -0
- {argus_server-2.1.0 → argus_server-2.2.1}/src/argus/base/templates/base.html +0 -0
- {argus_server-2.1.0 → argus_server-2.2.1}/src/argus/base/templates/index.html +0 -0
- {argus_server-2.1.0 → argus_server-2.2.1}/src/argus/compat.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.1}/src/argus/dev/__init__.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.1}/src/argus/dev/apps.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.1}/src/argus/dev/management/__init__.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.1}/src/argus/dev/management/commands/__init__.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.1}/src/argus/dev/management/commands/bulk_incidents.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.1}/src/argus/dev/management/commands/check_token_expiry.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.1}/src/argus/dev/management/commands/close_incident.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.1}/src/argus/dev/management/commands/create_fake_incident.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.1}/src/argus/dev/management/commands/create_source.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.1}/src/argus/dev/management/commands/gen_secret_key.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.1}/src/argus/dev/management/commands/initial_setup.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.1}/src/argus/dev/management/commands/list_filters.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.1}/src/argus/dev/management/commands/stresstest.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.1}/src/argus/dev/management/commands/toggle_profile_activation.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.1}/src/argus/dev/utils.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.1}/src/argus/drf/__init__.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.1}/src/argus/drf/permissions.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.1}/src/argus/filter/__init__.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.1}/src/argus/filter/apps.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.1}/src/argus/filter/checks.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.1}/src/argus/filter/default.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.1}/src/argus/filter/factories.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.1}/src/argus/filter/filters.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.1}/src/argus/filter/filterwrapper.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.1}/src/argus/filter/primitive_serializers.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.1}/src/argus/filter/queryset_filters.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.1}/src/argus/filter/serializers.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.1}/src/argus/filter/swappable/__init__.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.1}/src/argus/filter/swappable/serializers.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.1}/src/argus/filter/validators.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.1}/src/argus/htmx/__init__.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.1}/src/argus/htmx/appconfig.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.1}/src/argus/htmx/apps.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.1}/src/argus/htmx/auth/__init__.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.1}/src/argus/htmx/auth/views.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.1}/src/argus/htmx/checks.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.1}/src/argus/htmx/context_processors.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.1}/src/argus/htmx/dateformat/__init__.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.1}/src/argus/htmx/dateformat/constants.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.1}/src/argus/htmx/defaults.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.1}/src/argus/htmx/destination/__init__.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.1}/src/argus/htmx/destination/forms.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.1}/src/argus/htmx/destination/urls.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.1}/src/argus/htmx/destination/views.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.1}/src/argus/htmx/htmx_urls.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.1}/src/argus/htmx/incident/__init__.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.1}/src/argus/htmx/incident/customization.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.1}/src/argus/htmx/incident/forms.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.1}/src/argus/htmx/incident/urls.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.1}/src/argus/htmx/management/__init__.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.1}/src/argus/htmx/management/commands/__init__.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.1}/src/argus/htmx/management/commands/tailwind_config.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.1}/src/argus/htmx/middleware.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.1}/src/argus/htmx/migrations/0001_initial.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.1}/src/argus/htmx/migrations/__init__.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.1}/src/argus/htmx/modals.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.1}/src/argus/htmx/models.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.1}/src/argus/htmx/notificationprofile/__init__.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.1}/src/argus/htmx/notificationprofile/urls.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.1}/src/argus/htmx/notificationprofile/views.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.1}/src/argus/htmx/request.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.1}/src/argus/htmx/root_urls.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.1}/src/argus/htmx/static/htmx-2.0.2.min.js +0 -0
- {argus_server-2.1.0 → argus_server-2.2.1}/src/argus/htmx/static/hyperscript-0.9.13.min.js +0 -0
- {argus_server-2.1.0 → argus_server-2.2.1}/src/argus/htmx/static/logo_white.svg +0 -0
- {argus_server-2.1.0 → argus_server-2.2.1}/src/argus/htmx/static/styles.css +0 -0
- {argus_server-2.1.0 → argus_server-2.2.1}/src/argus/htmx/tailwindtheme/README.md +0 -0
- {argus_server-2.1.0/src/argus/htmx/templatetags → argus_server-2.2.1/src/argus/htmx/tailwindtheme}/__init__.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.1}/src/argus/htmx/tailwindtheme/snippets/10-tailwind.css +0 -0
- {argus_server-2.1.0 → argus_server-2.2.1}/src/argus/htmx/tailwindtheme/snippets/15-alert-message.css +0 -0
- {argus_server-2.1.0 → argus_server-2.2.1}/src/argus/htmx/tailwindtheme/snippets/20-loading-box.css +0 -0
- {argus_server-2.1.0 → argus_server-2.2.1}/src/argus/htmx/tailwindtheme/styles.css +0 -0
- {argus_server-2.1.0 → argus_server-2.2.1}/src/argus/htmx/tailwindtheme/tailwind.config.js +0 -0
- {argus_server-2.1.0 → argus_server-2.2.1}/src/argus/htmx/templates/django/forms/div.html +0 -0
- {argus_server-2.1.0 → argus_server-2.2.1}/src/argus/htmx/templates/django/forms/widgets/attrs.html +0 -0
- {argus_server-2.1.0 → argus_server-2.2.1}/src/argus/htmx/templates/htmx/_base_confirm_dialog.html +0 -0
- {argus_server-2.1.0 → argus_server-2.2.1}/src/argus/htmx/templates/htmx/_base_form_modal.html +0 -0
- {argus_server-2.1.0 → argus_server-2.2.1}/src/argus/htmx/templates/htmx/_base_form_modal_button.html +0 -0
- {argus_server-2.1.0 → argus_server-2.2.1}/src/argus/htmx/templates/htmx/_base_form_modal_experimental.html +0 -0
- {argus_server-2.1.0 → argus_server-2.2.1}/src/argus/htmx/templates/htmx/base.html +0 -0
- {argus_server-2.1.0 → argus_server-2.2.1}/src/argus/htmx/templates/htmx/destination/_collapse_with_forms.html +0 -0
- {argus_server-2.1.0 → argus_server-2.2.1}/src/argus/htmx/templates/htmx/destination/_content.html +0 -0
- {argus_server-2.1.0 → argus_server-2.2.1}/src/argus/htmx/templates/htmx/destination/_create_form.html +0 -0
- {argus_server-2.1.0 → argus_server-2.2.1}/src/argus/htmx/templates/htmx/destination/_delete_form.html +0 -0
- {argus_server-2.1.0 → argus_server-2.2.1}/src/argus/htmx/templates/htmx/destination/_edit_form.html +0 -0
- {argus_server-2.1.0 → argus_server-2.2.1}/src/argus/htmx/templates/htmx/destination/_form_list.html +0 -0
- {argus_server-2.1.0 → argus_server-2.2.1}/src/argus/htmx/templates/htmx/destination/destination_list.html +0 -0
- {argus_server-2.1.0 → argus_server-2.2.1}/src/argus/htmx/templates/htmx/forms/badge_dropdown_select_multiple.html +0 -0
- {argus_server-2.1.0 → argus_server-2.2.1}/src/argus/htmx/templates/htmx/forms/checkbox_select_multiple.html +0 -0
- {argus_server-2.1.0 → argus_server-2.2.1}/src/argus/htmx/templates/htmx/forms/dropdown_select_multiple.html +0 -0
- {argus_server-2.1.0 → argus_server-2.2.1}/src/argus/htmx/templates/htmx/forms/input_field.html +0 -0
- {argus_server-2.1.0 → argus_server-2.2.1}/src/argus/htmx/templates/htmx/incident/_base.html +0 -0
- {argus_server-2.1.0 → argus_server-2.2.1}/src/argus/htmx/templates/htmx/incident/_base_incident_update_modal.html +0 -0
- {argus_server-2.1.0 → argus_server-2.2.1}/src/argus/htmx/templates/htmx/incident/_delete_filter_confirm_dialog.html +0 -0
- {argus_server-2.1.0 → argus_server-2.2.1}/src/argus/htmx/templates/htmx/incident/_existing_filters.html +0 -0
- {argus_server-2.1.0 → argus_server-2.2.1}/src/argus/htmx/templates/htmx/incident/_filter_controls.html +0 -0
- {argus_server-2.1.0 → argus_server-2.2.1}/src/argus/htmx/templates/htmx/incident/_filter_create_modal.html +0 -0
- {argus_server-2.1.0 → argus_server-2.2.1}/src/argus/htmx/templates/htmx/incident/_filter_delete_dropdown.html +0 -0
- {argus_server-2.1.0 → argus_server-2.2.1}/src/argus/htmx/templates/htmx/incident/_filter_select.html +0 -0
- {argus_server-2.1.0 → argus_server-2.2.1}/src/argus/htmx/templates/htmx/incident/_filter_update_dropdown.html +0 -0
- {argus_server-2.1.0 → argus_server-2.2.1}/src/argus/htmx/templates/htmx/incident/_incident_acknowledge_modal.html +0 -0
- {argus_server-2.1.0 → argus_server-2.2.1}/src/argus/htmx/templates/htmx/incident/_incident_close_modal.html +0 -0
- {argus_server-2.1.0 → argus_server-2.2.1}/src/argus/htmx/templates/htmx/incident/_incident_filterbox.html +0 -0
- {argus_server-2.1.0 → argus_server-2.2.1}/src/argus/htmx/templates/htmx/incident/_incident_list_menubar.html +0 -0
- {argus_server-2.1.0 → argus_server-2.2.1}/src/argus/htmx/templates/htmx/incident/_incident_list_update_menu.html +0 -0
- {argus_server-2.1.0 → argus_server-2.2.1}/src/argus/htmx/templates/htmx/incident/_incident_reopen_modal.html +0 -0
- {argus_server-2.1.0 → argus_server-2.2.1}/src/argus/htmx/templates/htmx/incident/_incident_table.html +0 -0
- {argus_server-2.1.0 → argus_server-2.2.1}/src/argus/htmx/templates/htmx/incident/_incident_table_cell_wrapper_default.html +0 -0
- {argus_server-2.1.0 → argus_server-2.2.1}/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.1}/src/argus/htmx/templates/htmx/incident/_incident_table_paginator.html +0 -0
- {argus_server-2.1.0 → argus_server-2.2.1}/src/argus/htmx/templates/htmx/incident/_incident_table_paginator_pageitem.html +0 -0
- {argus_server-2.1.0 → argus_server-2.2.1}/src/argus/htmx/templates/htmx/incident/_incident_table_row.html +0 -0
- {argus_server-2.1.0 → argus_server-2.2.1}/src/argus/htmx/templates/htmx/incident/_incident_table_rows.html +0 -0
- {argus_server-2.1.0 → argus_server-2.2.1}/src/argus/htmx/templates/htmx/incident/_incident_ticket_autocreate_modal.html +0 -0
- {argus_server-2.1.0 → argus_server-2.2.1}/src/argus/htmx/templates/htmx/incident/_incident_ticket_edit_modal.html +0 -0
- {argus_server-2.1.0 → argus_server-2.2.1}/src/argus/htmx/templates/htmx/incident/_incident_ticket_manual_create_modal.html +0 -0
- {argus_server-2.1.0 → argus_server-2.2.1}/src/argus/htmx/templates/htmx/incident/_update_filter_confirm_dialog.html +0 -0
- {argus_server-2.1.0 → argus_server-2.2.1}/src/argus/htmx/templates/htmx/incident/cells/_incident_ack.html +0 -0
- {argus_server-2.1.0 → argus_server-2.2.1}/src/argus/htmx/templates/htmx/incident/cells/_incident_actions.html +0 -0
- {argus_server-2.1.0 → argus_server-2.2.1}/src/argus/htmx/templates/htmx/incident/cells/_incident_checkbox.html +0 -0
- {argus_server-2.1.0 → argus_server-2.2.1}/src/argus/htmx/templates/htmx/incident/cells/_incident_color_status.html +0 -0
- {argus_server-2.1.0 → argus_server-2.2.1}/src/argus/htmx/templates/htmx/incident/cells/_incident_combined_status.html +0 -0
- {argus_server-2.1.0 → argus_server-2.2.1}/src/argus/htmx/templates/htmx/incident/cells/_incident_description.html +0 -0
- {argus_server-2.1.0 → argus_server-2.2.1}/src/argus/htmx/templates/htmx/incident/cells/_incident_filterable_column_header.html +0 -0
- {argus_server-2.1.0 → argus_server-2.2.1}/src/argus/htmx/templates/htmx/incident/cells/_incident_level.html +0 -0
- {argus_server-2.1.0 → argus_server-2.2.1}/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.1}/src/argus/htmx/templates/htmx/incident/cells/_incident_pk.html +0 -0
- {argus_server-2.1.0 → argus_server-2.2.1}/src/argus/htmx/templates/htmx/incident/cells/_incident_source.html +0 -0
- {argus_server-2.1.0 → argus_server-2.2.1}/src/argus/htmx/templates/htmx/incident/cells/_incident_start_time.html +0 -0
- {argus_server-2.1.0 → argus_server-2.2.1}/src/argus/htmx/templates/htmx/incident/cells/_incident_start_time_header.html +0 -0
- {argus_server-2.1.0 → argus_server-2.2.1}/src/argus/htmx/templates/htmx/incident/cells/_incident_status.html +0 -0
- {argus_server-2.1.0 → argus_server-2.2.1}/src/argus/htmx/templates/htmx/incident/cells/_incident_tag.html +0 -0
- {argus_server-2.1.0 → argus_server-2.2.1}/src/argus/htmx/templates/htmx/incident/cells/_incident_ticket.html +0 -0
- {argus_server-2.1.0 → argus_server-2.2.1}/src/argus/htmx/templates/htmx/incident/filter_list.html +0 -0
- {argus_server-2.1.0 → argus_server-2.2.1}/src/argus/htmx/templates/htmx/incident/incident_detail.html +0 -0
- {argus_server-2.1.0 → argus_server-2.2.1}/src/argus/htmx/templates/htmx/incident/incident_list.html +0 -0
- {argus_server-2.1.0 → argus_server-2.2.1}/src/argus/htmx/templates/htmx/incident/responses/_incident_list_refresh.html +0 -0
- {argus_server-2.1.0 → argus_server-2.2.1}/src/argus/htmx/templates/htmx/incident/responses/empty_list_item.html +0 -0
- {argus_server-2.1.0 → argus_server-2.2.1}/src/argus/htmx/templates/htmx/notificationprofile/_notificationprofile_form.html +0 -0
- {argus_server-2.1.0 → argus_server-2.2.1}/src/argus/htmx/templates/htmx/notificationprofile/_notificationprofile_form_div.html +0 -0
- {argus_server-2.1.0 → argus_server-2.2.1}/src/argus/htmx/templates/htmx/notificationprofile/base.html +0 -0
- {argus_server-2.1.0 → argus_server-2.2.1}/src/argus/htmx/templates/htmx/notificationprofile/notificationprofile_confirm_delete.html +0 -0
- {argus_server-2.1.0 → argus_server-2.2.1}/src/argus/htmx/templates/htmx/notificationprofile/notificationprofile_form.html +0 -0
- {argus_server-2.1.0 → argus_server-2.2.1}/src/argus/htmx/templates/htmx/notificationprofile/notificationprofile_list.html +0 -0
- {argus_server-2.1.0 → argus_server-2.2.1}/src/argus/htmx/templates/htmx/timeslot/_delete_timeslot_confirm_dialog.html +0 -0
- {argus_server-2.1.0 → argus_server-2.2.1}/src/argus/htmx/templates/htmx/timeslot/_timeslot_detail.html +0 -0
- {argus_server-2.1.0 → argus_server-2.2.1}/src/argus/htmx/templates/htmx/timeslot/_timeslot_form.html +0 -0
- {argus_server-2.1.0 → argus_server-2.2.1}/src/argus/htmx/templates/htmx/timeslot/base.html +0 -0
- {argus_server-2.1.0 → argus_server-2.2.1}/src/argus/htmx/templates/htmx/timeslot/checkbox_option.html +0 -0
- {argus_server-2.1.0 → argus_server-2.2.1}/src/argus/htmx/templates/htmx/timeslot/timerecurrence_div.html +0 -0
- {argus_server-2.1.0 → argus_server-2.2.1}/src/argus/htmx/templates/htmx/timeslot/timeslot_confirm_delete.html +0 -0
- {argus_server-2.1.0 → argus_server-2.2.1}/src/argus/htmx/templates/htmx/timeslot/timeslot_form.html +0 -0
- {argus_server-2.1.0 → argus_server-2.2.1}/src/argus/htmx/templates/htmx/timeslot/timeslot_list.html +0 -0
- {argus_server-2.1.0 → argus_server-2.2.1}/src/argus/htmx/templates/htmx/user/_current_theme.html +0 -0
- {argus_server-2.1.0 → argus_server-2.2.1}/src/argus/htmx/templates/htmx/user/_dateformat_dropdown.html +0 -0
- {argus_server-2.1.0 → argus_server-2.2.1}/src/argus/htmx/templates/htmx/user/_theme_dropdown.html +0 -0
- {argus_server-2.1.0 → argus_server-2.2.1}/src/argus/htmx/templates/htmx/user/_user_menu.html +0 -0
- {argus_server-2.1.0 → argus_server-2.2.1}/src/argus/htmx/templates/htmx/user/_user_menu_logout.html +0 -0
- {argus_server-2.1.0 → argus_server-2.2.1}/src/argus/htmx/templates/htmx/user/_user_menu_notification_config.html +0 -0
- {argus_server-2.1.0 → argus_server-2.2.1}/src/argus/htmx/templates/htmx/user/_user_menu_user_preferences.html +0 -0
- {argus_server-2.1.0 → argus_server-2.2.1}/src/argus/htmx/templates/htmx/user/preferences.html +0 -0
- {argus_server-2.1.0 → argus_server-2.2.1}/src/argus/htmx/templates/htmx_base.html +0 -0
- {argus_server-2.1.0 → argus_server-2.2.1}/src/argus/htmx/templates/messages/_notification_message.html +0 -0
- {argus_server-2.1.0 → argus_server-2.2.1}/src/argus/htmx/templates/messages/_notification_messages.html +0 -0
- {argus_server-2.1.0 → argus_server-2.2.1}/src/argus/htmx/templates/messages/_notification_messages_htmx_append.html +0 -0
- {argus_server-2.1.0 → argus_server-2.2.1}/src/argus/htmx/templates/registration/login.html +0 -0
- {argus_server-2.1.0 → argus_server-2.2.1}/src/argus/htmx/templates/tailwind/styles.css +0 -0
- {argus_server-2.1.0 → argus_server-2.2.1}/src/argus/htmx/templates/tailwind/tailwind.config.js +0 -0
- {argus_server-2.1.0 → argus_server-2.2.1}/src/argus/htmx/templates/tailwind_whitelist.html +0 -0
- {argus_server-2.1.0/src/argus/htmx/themes → argus_server-2.2.1/src/argus/htmx/templatetags}/__init__.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.1}/src/argus/htmx/templatetags/argus_htmx.py +0 -0
- {argus_server-2.1.0/src/argus/htmx/timeslot → argus_server-2.2.1/src/argus/htmx/themes}/__init__.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.1}/src/argus/htmx/themes/constants.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.1}/src/argus/htmx/themes/utils.py +0 -0
- {argus_server-2.1.0/src/argus/htmx/user/preferences → argus_server-2.2.1/src/argus/htmx/timeslot}/__init__.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.1}/src/argus/htmx/timeslot/urls.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.1}/src/argus/htmx/timeslot/views.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.1}/src/argus/htmx/urls.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.1}/src/argus/htmx/user/__init__.py +0 -0
- {argus_server-2.1.0/src/argus/incident/migrations → argus_server-2.2.1/src/argus/htmx/user/preferences}/__init__.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.1}/src/argus/htmx/user/urls.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.1}/src/argus/htmx/user/views.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.1}/src/argus/htmx/utils.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.1}/src/argus/htmx/views.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.1}/src/argus/htmx/widgets.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.1}/src/argus/incident/__init__.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.1}/src/argus/incident/admin.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.1}/src/argus/incident/apps.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.1}/src/argus/incident/constants.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.1}/src/argus/incident/factories.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.1}/src/argus/incident/fields.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.1}/src/argus/incident/forms.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.1}/src/argus/incident/migrations/0001_initial.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.1}/src/argus/incident/migrations/0001_squashed_incident_20250514.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.1}/src/argus/incident/migrations/0002_empty_source_incident_id.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.1}/src/argus/incident/migrations/0003_incident_level.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.1}/src/argus/incident/migrations/0004_add_ChangeEvent_proxy.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.1}/src/argus/incident/migrations/0005_alter_event_type.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.1}/src/argus/incident/migrations/0006_incident_search_text.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.1}/src/argus/incident/migrations/0007_alter_event_type.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.1}/src/argus/incident/migrations/0008_incident_metadata.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.1}/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.1/src/argus/incident/migrations}/__init__.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.1}/src/argus/incident/models.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.1}/src/argus/incident/serializers.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.1}/src/argus/incident/signals.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.1}/src/argus/incident/templates/incident/admin/fake_incident_add_form.html +0 -0
- {argus_server-2.1.0 → argus_server-2.2.1}/src/argus/incident/templates/incident/admin/incident_change_list.html +0 -0
- {argus_server-2.1.0 → argus_server-2.2.1}/src/argus/incident/templates/incident/admin/widgets/split_datetime_infinity.html +0 -0
- {argus_server-2.1.0 → argus_server-2.2.1}/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.1/src/argus/incident/ticket}/__init__.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.1}/src/argus/incident/ticket/base.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.1}/src/argus/incident/ticket/dummy.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.1}/src/argus/incident/ticket/utils.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.1}/src/argus/incident/urls.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.1}/src/argus/incident/validators.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.1}/src/argus/incident/views.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.1}/src/argus/incident/widgets.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.1}/src/argus/notificationprofile/__init__.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.1}/src/argus/notificationprofile/admin.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.1}/src/argus/notificationprofile/apps.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.1}/src/argus/notificationprofile/checks.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.1}/src/argus/notificationprofile/factories.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.1}/src/argus/notificationprofile/media/__init__.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.1}/src/argus/notificationprofile/media/base.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.1}/src/argus/notificationprofile/media/email.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.1}/src/argus/notificationprofile/media/sms_as_email.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.1}/src/argus/notificationprofile/migrations/0001_squashed_0015_remove_days_alter_days_array.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.1}/src/argus/notificationprofile/migrations/0001_squashed_notificationprofile_20250512.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.1}/src/argus/notificationprofile/migrations/0016_noop.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.1}/src/argus/notificationprofile/migrations/0017_change_event_type_to_event_types.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.1}/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.1/src/argus/notificationprofile/migrations}/__init__.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.1}/src/argus/notificationprofile/models.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.1}/src/argus/notificationprofile/serializers.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.1}/src/argus/notificationprofile/signals.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.1}/src/argus/notificationprofile/templates/notificationprofile/email.html +0 -0
- {argus_server-2.1.0 → argus_server-2.2.1}/src/argus/notificationprofile/templates/notificationprofile/email.txt +0 -0
- {argus_server-2.1.0 → argus_server-2.2.1}/src/argus/notificationprofile/templates/schemawrapper.html +0 -0
- {argus_server-2.1.0 → argus_server-2.2.1}/src/argus/notificationprofile/urls.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.1}/src/argus/notificationprofile/views.py +0 -0
- {argus_server-2.1.0/src/argus/util → argus_server-2.2.1/src/argus/site}/__init__.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.1}/src/argus/site/api_v2_urls.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.1}/src/argus/site/logging.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.1}/src/argus/site/serializers.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.1}/src/argus/site/settings/__init__.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.1}/src/argus/site/settings/_serializers.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.1}/src/argus/site/settings/dockerdev.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.1}/src/argus/site/urls.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.1}/src/argus/site/utils.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.1}/src/argus/site/views.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.1}/src/argus/site/wsgi.py +0 -0
- {argus_server-2.1.0/tests → argus_server-2.2.1/src/argus/util}/__init__.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.1}/src/argus/util/admin_utils.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.1}/src/argus/util/datetime_utils.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.1}/src/argus/util/testing.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.1}/src/argus/util/utils.py +0 -0
- {argus_server-2.1.0/tests/auth/management_commands → argus_server-2.2.1/tests}/__init__.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.1}/tests/auth/__init__.py +0 -0
- {argus_server-2.1.0/tests/dev → argus_server-2.2.1/tests/auth/management_commands}/__init__.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.1}/tests/auth/management_commands/test_changeuser.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.1}/tests/auth/management_commands/test_createuser.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.1}/tests/auth/models.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.1}/tests/auth/test_auth.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.1}/tests/auth/test_knox_views.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.1}/tests/auth/test_models.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.1}/tests/auth/test_utils.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.1}/tests/auth/test_views.py +0 -0
- {argus_server-2.1.0/tests/filter → argus_server-2.2.1/tests/dev}/__init__.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.1}/tests/dev/test_bulk_incidents.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.1}/tests/dev/test_check_token_expiry.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.1}/tests/dev/test_close_incident.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.1}/tests/dev/test_create_fake_incident.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.1}/tests/dev/test_create_source.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.1}/tests/dev/test_gen_secret_key.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.1}/tests/dev/test_initial_setup.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.1}/tests/dev/test_list_filters.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.1}/tests/dev/test_toggle_profile_activation.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.1}/tests/dev/test_utils.py +0 -0
- {argus_server-2.1.0/tests/htmx → argus_server-2.2.1/tests/filter}/__init__.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.1}/tests/filter/dummyplugin.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.1}/tests/filter/test_filterplugin.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.1}/tests/filter/test_filterwrapper.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.1}/tests/filter/test_queryset_filters.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.1}/tests/helpers.py +0 -0
- {argus_server-2.1.0/tests/htmx/incident → argus_server-2.2.1/tests/htmx}/__init__.py +0 -0
- {argus_server-2.1.0/tests/htmx/notificationprofile → argus_server-2.2.1/tests/htmx/incident}/__init__.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.1}/tests/htmx/incident/test_customization.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.1}/tests/htmx/incident/test_filter.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.1}/tests/htmx/incident/test_utils.py +0 -0
- {argus_server-2.1.0/tests/incident/fixtures → argus_server-2.2.1/tests/htmx/notificationprofile}/__init__.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.1}/tests/htmx/notificationprofile/test_forms.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.1}/tests/htmx/test_incident.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.1}/tests/htmx/test_middleware.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.1}/tests/htmx/test_utils.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.1}/tests/incident/__init__.py +0 -0
- {argus_server-2.1.0/tests/incident/ticket_plugins → argus_server-2.2.1/tests/incident/fixtures}/__init__.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.1}/tests/incident/test_change_event.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.1}/tests/incident/test_create_fake_incident.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.1}/tests/incident/test_event.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.1}/tests/incident/test_filters.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.1}/tests/incident/test_incident.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.1}/tests/incident/test_incident_fields.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.1}/tests/incident/test_queryset.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.1}/tests/incident/test_serializers.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.1}/tests/incident/test_source_system.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.1}/tests/incident/test_source_system_type.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.1}/tests/incident/test_views.py +0 -0
- {argus_server-2.1.0/tests/incident/unit → argus_server-2.2.1/tests/incident/ticket_plugins}/__init__.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.1}/tests/incident/ticket_plugins/test_base.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.1}/tests/incident/ticket_plugins/test_dummy.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.1}/tests/incident/ticket_plugins/test_utils.py +0 -0
- {argus_server-2.1.0/tests/notificationprofile/destinations → argus_server-2.2.1/tests/incident/unit}/__init__.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.1}/tests/incident/unit/test_incident_details_url.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.1}/tests/migration_example.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.1}/tests/notificationprofile/__init__.py +0 -0
- {argus_server-2.1.0/tests/notificationprofile/migrations → argus_server-2.2.1/tests/notificationprofile/destinations}/__init__.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.1}/tests/notificationprofile/destinations/test_email.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.1}/tests/notificationprofile/destinations/test_sms.py +0 -0
- {argus_server-2.1.0/tests/site → argus_server-2.2.1/tests/notificationprofile/migrations}/__init__.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.1}/tests/notificationprofile/test_github236.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.1}/tests/notificationprofile/test_media.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.1}/tests/notificationprofile/test_models.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.1}/tests/notificationprofile/test_serializers.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.1}/tests/notificationprofile/test_views.py +0 -0
- {argus_server-2.1.0/tests/util → argus_server-2.2.1/tests/site}/__init__.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.1}/tests/site/test_misc.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.1}/tests/site/test_settings_helpers.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.1}/tests/site/test_settings_validators.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.1}/tests/site/test_views.py +0 -0
- {argus_server-2.1.0 → argus_server-2.2.1}/tests/util/test_utils.py +0 -0
|
@@ -8,6 +8,85 @@ This project uses [*towncrier*](https://towncrier.readthedocs.io/) and the chang
|
|
|
8
8
|
|
|
9
9
|
<!-- towncrier release notes start -->
|
|
10
10
|
|
|
11
|
+
## [2.2.1] - 2025-09-18
|
|
12
|
+
|
|
13
|
+
### Fixed, frontend
|
|
14
|
+
|
|
15
|
+
* The incident list layout preference selector is no longer buggy
|
|
16
|
+
|
|
17
|
+
### Fixed
|
|
18
|
+
|
|
19
|
+
* Some problems with the dockerfile for production was fixed (see /docker), and
|
|
20
|
+
the README and the comments in the Dockerfile have been improved
|
|
21
|
+
|
|
22
|
+
### Changed
|
|
23
|
+
|
|
24
|
+
* Updated the installation instructions in the README, should have ben part of
|
|
25
|
+
2.2.0
|
|
26
|
+
|
|
27
|
+
## [2.2.0] - 2025-08-26
|
|
28
|
+
|
|
29
|
+
The most important bit of this release is the new (old) way to install and set
|
|
30
|
+
up argus-server, including the frontend. Please see the NOTES.
|
|
31
|
+
|
|
32
|
+
### Added, frontend
|
|
33
|
+
|
|
34
|
+
- Added option 'Last 3 days' to the Timeframe selector.
|
|
35
|
+
([#1440](https://github.com/Uninett/Argus/issues/1440))
|
|
36
|
+
|
|
37
|
+
### Added
|
|
38
|
+
|
|
39
|
+
- Added rule to Makefile that downloads standalone tailwind CLI client as per
|
|
40
|
+
the version configured in `src/argus/htmx/tailwindtheme/config.py`.
|
|
41
|
+
([#1531](https://github.com/Uninett/Argus/issues/1531))
|
|
42
|
+
- Add a fledgling CONTRIBUTING.rst for onboarding new developers.
|
|
43
|
+
- Added documentation for the rules in the `Makefile`.
|
|
44
|
+
- Two new development howtos have been added, with tips for using git and
|
|
45
|
+
GitHub.
|
|
46
|
+
|
|
47
|
+
### Changed
|
|
48
|
+
|
|
49
|
+
- Make example production Docker image work properly for Argus 2
|
|
50
|
+
- The settings files have changed, since the HTMx frontend app is now included
|
|
51
|
+
by default. The frontend settings has been merged in and no longer need the
|
|
52
|
+
settings overriding machinery. It is no longer necessary to install the
|
|
53
|
+
frontend with `pip install argus-server[htmx]`, just `pip install
|
|
54
|
+
argus-server` will do.
|
|
55
|
+
- Updated contributors file with contributors that joined after 2019, and added
|
|
56
|
+
a howto for how to keep the list updated.
|
|
57
|
+
|
|
58
|
+
|
|
59
|
+
## [2.1.1] - 2025-07-16
|
|
60
|
+
|
|
61
|
+
### Added
|
|
62
|
+
|
|
63
|
+
- Added new sections to the user manual: *How to select from existing themes*,
|
|
64
|
+
*How to add your own theme*,
|
|
65
|
+
*How to choose what columns are shown in the incidents table*, and *How to
|
|
66
|
+
change the date and time format*.
|
|
67
|
+
([#1491](https://github.com/Uninett/Argus/issues/1491))
|
|
68
|
+
|
|
69
|
+
### Changed
|
|
70
|
+
|
|
71
|
+
- Added info about more glue services.
|
|
72
|
+
([#1508](https://github.com/Uninett/Argus/issues/1508))
|
|
73
|
+
- Updated the README with a link and info about the publicly accessible
|
|
74
|
+
demo-site.
|
|
75
|
+
([#1510](https://github.com/Uninett/Argus/issues/1510))
|
|
76
|
+
- Updated the content of the user manual (outdated text, screenshots and broken
|
|
77
|
+
external links). ([#1490](https://github.com/Uninett/Argus/issues/1490))
|
|
78
|
+
|
|
79
|
+
### Fixed
|
|
80
|
+
|
|
81
|
+
- Fixed automatic ticket creation, which was broken by
|
|
82
|
+
[#1497](https://github.com/Uninett/Argus/issues/1497)
|
|
83
|
+
([#1516](https://github.com/Uninett/Argus/issues/1516))
|
|
84
|
+
- Made `docker compose up` for development work with Argus 2.1+
|
|
85
|
+
([#1513](https://github.com/Uninett/Argus/issues/1513))
|
|
86
|
+
- Fixed broken links in the user manual.
|
|
87
|
+
([#1492](https://github.com/Uninett/Argus/issues/1492))
|
|
88
|
+
|
|
89
|
+
|
|
11
90
|
## [2.1.0] - 2025-06-30
|
|
12
91
|
|
|
13
92
|
### 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,39 @@
|
|
|
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.1] - 2025-09-18
|
|
8
|
+
|
|
9
|
+
A bug in the user preference added in 2.1.0 was fixed, otherwise this is just
|
|
10
|
+
a polish this, document that, upgrade some dependencies release.
|
|
11
|
+
|
|
12
|
+
## [2.2.0] - 2025-08-26
|
|
13
|
+
|
|
14
|
+
It is no longer necessary to install the frontend with `pip install
|
|
15
|
+
argus-server[htmx]`, just `pip install argus-server` will do. The first method
|
|
16
|
+
will still work but is deprecated.
|
|
17
|
+
|
|
18
|
+
The included settings files were using the `update_settings` trick to set up
|
|
19
|
+
the frontend, this has now been fixed. If you do not use separate settings
|
|
20
|
+
files you should not need to do anything, but if you *do* use your own
|
|
21
|
+
settings-files you no longer need invoke `update_settings`, just choose what
|
|
22
|
+
settings-file to import/copy from with care.
|
|
23
|
+
|
|
24
|
+
It is now also possible to look at only the last three days of incidents in the
|
|
25
|
+
frontend.
|
|
26
|
+
|
|
27
|
+
All other changes are related to maintenance and/or development. The rules in
|
|
28
|
+
the Makefile have been documented. A rule for controlling/upgrading the version
|
|
29
|
+
of Tailwind and Daisy UI has been added to the Makefile, and compiling CSS via
|
|
30
|
+
`make tailwind` will be using the versions downloaded with the new rule.
|
|
31
|
+
|
|
32
|
+
|
|
33
|
+
## [2.1.1] - 2025-07-16
|
|
34
|
+
|
|
35
|
+
Updated the user manual in the docs, added the link to the Argus demo site
|
|
36
|
+
(https://argus-demo.uninett.no) to the README and fixed automatic ticket creation.
|
|
37
|
+
|
|
38
|
+
|
|
6
39
|
## [2.1.0] - 2025-06-30
|
|
7
40
|
|
|
8
41
|
One new user preference.
|
|
@@ -10,14 +43,6 @@ One new user preference.
|
|
|
10
43
|
One new and one changed management command, both for better manipulation of
|
|
11
44
|
incidents via the CLI.
|
|
12
45
|
|
|
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
46
|
|
|
22
47
|
## [2.0.0] - 2025-05-26
|
|
23
48
|
|
|
@@ -44,25 +69,6 @@ and corresponding imports if you are getting the error
|
|
|
44
69
|
`django.core.exceptions.ImproperlyConfigured: Application labels aren't unique,
|
|
45
70
|
duplicates: django_htmx`.
|
|
46
71
|
|
|
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
72
|
|
|
67
73
|
## [1.37.0] - 2025-05-14
|
|
68
74
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: argus-server
|
|
3
|
-
Version: 2.1
|
|
3
|
+
Version: 2.2.1
|
|
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
|
|
|
@@ -98,40 +105,35 @@ There are several ways to install Argus.
|
|
|
98
105
|
* Docker and Docker Compose to run Argus in Docker. This will also run
|
|
99
106
|
a PostgreSQL server for you.
|
|
100
107
|
|
|
101
|
-
#### Optional: Frontend
|
|
102
|
-
|
|
103
|
-
You need to have the frontend-specific dependencies installed.
|
|
104
|
-
|
|
105
|
-
```
|
|
106
|
-
pip install argus-server[htmx]
|
|
107
|
-
```
|
|
108
|
-
|
|
109
|
-
will do it.
|
|
110
|
-
|
|
111
108
|
#### Optional: Federated login for frontend
|
|
112
109
|
|
|
113
110
|
See [Federated Login @ Read The Docs](https://argus-server.rtfd.io/en/latest/development/howtos/federated-logins.html) or [local copy of Federated Login docs](docs/development/howtos/federated-logins.rst).
|
|
114
111
|
|
|
115
|
-
### Install Argus using pip
|
|
112
|
+
### Install Argus using pip from PyPI
|
|
116
113
|
|
|
117
|
-
You can
|
|
114
|
+
You can install Argus with `pip` via PyPI. The package name is `argus-server`:
|
|
118
115
|
```console
|
|
119
116
|
$ pip install argus-server
|
|
120
117
|
```
|
|
121
118
|
|
|
122
|
-
If you are using the PyPI package in production, please note:
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
of sub-dependencies so as to not poison the pyproject.toml.
|
|
119
|
+
If you are using the PyPI wheel package in production, please note: It does
|
|
120
|
+
not use pinned dependencies. (There is no single official standard for pinned
|
|
121
|
+
dependencies in Python as of yet.)
|
|
126
122
|
|
|
127
|
-
|
|
123
|
+
### Install Argus from source
|
|
128
124
|
|
|
125
|
+
Download the source code first.
|
|
129
126
|
```console
|
|
130
|
-
$
|
|
131
|
-
$
|
|
127
|
+
$ git clone https://github.com/Uninett/Argus.git
|
|
128
|
+
$ cd Argus
|
|
132
129
|
```
|
|
133
130
|
|
|
134
|
-
|
|
131
|
+
PyPI has sdists of the source if you do not want to use git.
|
|
132
|
+
|
|
133
|
+
The file `requirements.txt` contains the pinned versions of dependencies that
|
|
134
|
+
the release was tested on. The file `constraints.txt` is for controlling
|
|
135
|
+
versions of sub-dependencies so as to not poison the pyproject.toml. The wheel
|
|
136
|
+
package does not contain either of these two files.
|
|
135
137
|
|
|
136
138
|
To install from the lock-file use pip:
|
|
137
139
|
|
|
@@ -139,6 +141,8 @@ To install from the lock-file use pip:
|
|
|
139
141
|
$ pip install -c constraints.txt --upgrade -r requirements.txt
|
|
140
142
|
```
|
|
141
143
|
|
|
144
|
+
### First run
|
|
145
|
+
|
|
142
146
|
Now change and adapt [Argus' settings](#settings-in-argus) according to your needs.
|
|
143
147
|
|
|
144
148
|
Run the initial Argus setup, and make note of the admin password that is generated:
|
|
@@ -160,6 +164,17 @@ Then run the Argus API server:
|
|
|
160
164
|
$ python manage.py runserver
|
|
161
165
|
```
|
|
162
166
|
|
|
167
|
+
#### Update pinned dependencies
|
|
168
|
+
|
|
169
|
+
To update the dependency lock-files, use `tox`:
|
|
170
|
+
|
|
171
|
+
```console
|
|
172
|
+
$ pip install "tox>=4"
|
|
173
|
+
$ tox run -e upgrade-deps -- -U
|
|
174
|
+
```
|
|
175
|
+
|
|
176
|
+
To upgrade a single dependency, replace the `-U` flag with `-P PACKAGENAME`.
|
|
177
|
+
|
|
163
178
|
### Setup Argus using Docker Compose
|
|
164
179
|
|
|
165
180
|
Download the source code first.
|
|
@@ -215,7 +230,7 @@ $ git clone https://github.com/Uninett/Argus.git
|
|
|
215
230
|
$ cd Argus
|
|
216
231
|
```
|
|
217
232
|
|
|
218
|
-
We recommend using virtualenv or
|
|
233
|
+
We recommend using virtualenv or virtualenvwrapper to create
|
|
219
234
|
a place to stash Argus' dependencies.
|
|
220
235
|
|
|
221
236
|
Create and activate a Python virtual environment.
|
|
@@ -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
|
|
|
@@ -37,40 +46,35 @@ There are several ways to install Argus.
|
|
|
37
46
|
* Docker and Docker Compose to run Argus in Docker. This will also run
|
|
38
47
|
a PostgreSQL server for you.
|
|
39
48
|
|
|
40
|
-
#### Optional: Frontend
|
|
41
|
-
|
|
42
|
-
You need to have the frontend-specific dependencies installed.
|
|
43
|
-
|
|
44
|
-
```
|
|
45
|
-
pip install argus-server[htmx]
|
|
46
|
-
```
|
|
47
|
-
|
|
48
|
-
will do it.
|
|
49
|
-
|
|
50
49
|
#### Optional: Federated login for frontend
|
|
51
50
|
|
|
52
51
|
See [Federated Login @ Read The Docs](https://argus-server.rtfd.io/en/latest/development/howtos/federated-logins.html) or [local copy of Federated Login docs](docs/development/howtos/federated-logins.rst).
|
|
53
52
|
|
|
54
|
-
### Install Argus using pip
|
|
53
|
+
### Install Argus using pip from PyPI
|
|
55
54
|
|
|
56
|
-
You can
|
|
55
|
+
You can install Argus with `pip` via PyPI. The package name is `argus-server`:
|
|
57
56
|
```console
|
|
58
57
|
$ pip install argus-server
|
|
59
58
|
```
|
|
60
59
|
|
|
61
|
-
If you are using the PyPI package in production, please note:
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
of sub-dependencies so as to not poison the pyproject.toml.
|
|
60
|
+
If you are using the PyPI wheel package in production, please note: It does
|
|
61
|
+
not use pinned dependencies. (There is no single official standard for pinned
|
|
62
|
+
dependencies in Python as of yet.)
|
|
65
63
|
|
|
66
|
-
|
|
64
|
+
### Install Argus from source
|
|
67
65
|
|
|
66
|
+
Download the source code first.
|
|
68
67
|
```console
|
|
69
|
-
$
|
|
70
|
-
$
|
|
68
|
+
$ git clone https://github.com/Uninett/Argus.git
|
|
69
|
+
$ cd Argus
|
|
71
70
|
```
|
|
72
71
|
|
|
73
|
-
|
|
72
|
+
PyPI has sdists of the source if you do not want to use git.
|
|
73
|
+
|
|
74
|
+
The file `requirements.txt` contains the pinned versions of dependencies that
|
|
75
|
+
the release was tested on. The file `constraints.txt` is for controlling
|
|
76
|
+
versions of sub-dependencies so as to not poison the pyproject.toml. The wheel
|
|
77
|
+
package does not contain either of these two files.
|
|
74
78
|
|
|
75
79
|
To install from the lock-file use pip:
|
|
76
80
|
|
|
@@ -78,6 +82,8 @@ To install from the lock-file use pip:
|
|
|
78
82
|
$ pip install -c constraints.txt --upgrade -r requirements.txt
|
|
79
83
|
```
|
|
80
84
|
|
|
85
|
+
### First run
|
|
86
|
+
|
|
81
87
|
Now change and adapt [Argus' settings](#settings-in-argus) according to your needs.
|
|
82
88
|
|
|
83
89
|
Run the initial Argus setup, and make note of the admin password that is generated:
|
|
@@ -99,6 +105,17 @@ Then run the Argus API server:
|
|
|
99
105
|
$ python manage.py runserver
|
|
100
106
|
```
|
|
101
107
|
|
|
108
|
+
#### Update pinned dependencies
|
|
109
|
+
|
|
110
|
+
To update the dependency lock-files, use `tox`:
|
|
111
|
+
|
|
112
|
+
```console
|
|
113
|
+
$ pip install "tox>=4"
|
|
114
|
+
$ tox run -e upgrade-deps -- -U
|
|
115
|
+
```
|
|
116
|
+
|
|
117
|
+
To upgrade a single dependency, replace the `-U` flag with `-P PACKAGENAME`.
|
|
118
|
+
|
|
102
119
|
### Setup Argus using Docker Compose
|
|
103
120
|
|
|
104
121
|
Download the source code first.
|
|
@@ -154,7 +171,7 @@ $ git clone https://github.com/Uninett/Argus.git
|
|
|
154
171
|
$ cd Argus
|
|
155
172
|
```
|
|
156
173
|
|
|
157
|
-
We recommend using virtualenv or
|
|
174
|
+
We recommend using virtualenv or virtualenvwrapper to create
|
|
158
175
|
a place to stash Argus' dependencies.
|
|
159
176
|
|
|
160
177
|
Create and activate a Python virtual environment.
|
|
@@ -1,12 +1,23 @@
|
|
|
1
1
|
# Defines a production image for the Argus API server
|
|
2
|
-
# Needs the repository root directory as its context
|
|
3
|
-
|
|
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 -f Dockerfile ..
|
|
6
|
+
#
|
|
7
|
+
# If you're in the repository root try:
|
|
8
|
+
# docker build -f docker/Dockerfile .
|
|
9
|
+
|
|
10
|
+
FROM python:3.13-trixie
|
|
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
|
|
|
15
|
+
ENV VIRTUAL_ENV=/opt/venv
|
|
16
|
+
RUN python3 -m venv $VIRTUAL_ENV
|
|
17
|
+
ENV PATH="$VIRTUAL_ENV/bin:$PATH"
|
|
18
|
+
|
|
8
19
|
# Install some dev requirements that aren't part of the minimal dependencies:
|
|
9
|
-
RUN pip install psycopg2-binary django-extensions python-dotenv gunicorn
|
|
20
|
+
RUN pip install psycopg2-binary django-extensions python-dotenv gunicorn
|
|
10
21
|
|
|
11
22
|
# Make an unprivileged user to run the server
|
|
12
23
|
RUN useradd --system argus
|
|
@@ -15,7 +26,7 @@ RUN mkdir -p /static && chown argus /static
|
|
|
15
26
|
ENV STATIC_ROOT=/static
|
|
16
27
|
|
|
17
28
|
COPY . /src
|
|
18
|
-
RUN pip install '/src
|
|
29
|
+
RUN pip install '/src' && rm -rf /src
|
|
19
30
|
|
|
20
31
|
# Install API backend settings suitable for Docker deployment
|
|
21
32
|
RUN mkdir /extrapython
|
|
@@ -21,17 +21,29 @@ docker build -t argus -f docker/Dockerfile .
|
|
|
21
21
|
## Configuration of the running container
|
|
22
22
|
|
|
23
23
|
This image runs with default production settings, with a few tweaks from
|
|
24
|
-
[dockersettings.py](dockersettings.py).
|
|
25
|
-
|
|
26
|
-
|
|
24
|
+
[dockersettings.py](dockersettings.py). The most useful settings can be
|
|
25
|
+
overriden through the use of environment variables exported to the container,
|
|
26
|
+
but some MUST be set.
|
|
27
|
+
|
|
28
|
+
The required environment variables in question are:
|
|
29
|
+
|
|
30
|
+
* `ARGUS_FRONTEND_URL` (url)
|
|
31
|
+
* `DATABASE_URL` (example: postgresql://argus:PASSWORD@HOST.NAME:5432/argus)
|
|
32
|
+
* `DEFAULT_FROM_EMAIL` (email address)
|
|
33
|
+
* `EMAIL_HOST` (hostname or ip address)
|
|
34
|
+
* `SECRET_KEY` (long random string, around 50 characters is good)
|
|
35
|
+
|
|
36
|
+
The `SECRET_KEY` and `DATABASE_URL` should be protected from prying eyes.
|
|
37
|
+
|
|
38
|
+
Consult the documentation section on [site-specific
|
|
27
39
|
settings](http://argus-server.rtfd.io/en/latest/site-specific-settings.html).
|
|
40
|
+
for further details.
|
|
28
41
|
|
|
29
42
|
## Limitations
|
|
30
43
|
|
|
31
|
-
This is not a complete Argus environment. This image only defines the
|
|
32
|
-
API
|
|
33
|
-
functional.
|
|
34
|
-
user interface against the API server.
|
|
44
|
+
This is not a complete Argus environment. This image only defines the web
|
|
45
|
+
server component: API and frontend. It still depends on a PostgreSQL server to
|
|
46
|
+
be functional.
|
|
35
47
|
|
|
36
48
|
For a full production environment example, take a look at
|
|
37
49
|
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
|