Skip to content

Releases: Uninett/Argus

[1.23.0] - 2024-10-10

10 Oct 09:44

Choose a tag to compare

This is the first version of Argus to be able to run on Django 5.1.

Support for Python 3.8 has been dropped.

The most visible changes are in the documentation.

Removed

  • As part of refactoring some authentication utility functions the function
    get_psa_authentication_names() has been removed as it wasn't used anywhere
    in Argus proper.

Added

  • Added a new section "Customization" to the docs, for customizations that go
    beyond integrations.
  • Documented how to use (EXTRA|OVERRIDING)_APPS to add app-specific
    middleware.
  • There's a new howto, for how to regenerate the ER diagram in the docs.

Changed

  • So. Many. Refactors.
  • There should be fewer warnings/log messages when visiting the autogenerated
    OpenAPI. There is one commit per change to help with future wrangling. There
    are still some warnings left; getting rid of those is left as an exercise to
    the reader.
  • The favicon and template for the simple page generated on "/" are now
    replacable by adding an app at the start of INSTALLED_APPS that has the new
    files.
  • Plenty of dependencies and sub-dependencies were upgraded
  • Django ValidationErrors are converted to DRF ValidationErrors. This makes it
    possible to move some validation from API model serializers to the actual
    model, which means validating only once and the API and future Django
    frontend seeing the same errors.
  • Moved reference docs into their own section (as per Ditaxis), improved the
    looks and contents of the explanation and terms, and added a very brief
    explanation of each model.
  • Moved site TEMPLATES and STATIC to a mini-app to make them replaceable via an
    app added before it in INSTALLED_APPS.
  • Removed FilterSerializer and validate_jsonfilter from the filter plugin
    mechanism since they just wrap FilterBlobSerializer. (This also means
    FilterBlobSerializer can no longer be in the same file as
    FilterSerializer.)

Fixed

  • Fix OpenAPI parameters for incidents/ and incidents/mine/

[1.22.1] - 2024-09-05

05 Sep 10:29

Choose a tag to compare

Added

  • Add method to get associated names of Incident levels
    (#875)

[1.22.0] - 2024-08-3

30 Aug 12:51

Choose a tag to compare

Changed

  • Refactored ticket creation code so the actual changing of the incident
    happens only in one place. Also moved the actual autocreation magic to
    utility functions (sans error-handling since that is response-type
    dependent). Made bulk changes of tickets actually create the ChangeEvents so
    that it behaves like other bulk actions and make it possible to get notified
    of changed ticket urls.
  • Replace the setting STATICFILES_STORAGE with STORAGES to prepare for
    running on newer Djangos. See NOTES for details.

Fixed

  • Hopefully there will be fewer spurious test-failures thanks to explicitly
    creating the user connected to a sourcesystem. UniqueError, you won't be
    missed.
  • Fixed broken link to dataporten authentication docs in README
    (#broken-dataporten-link)
  • Renamed 'docker-compose' to 'Docker Compose' in README
    (#update-readme-command-naming)

[1.21.0] - 2024-08-20

20 Aug 06:36

Choose a tag to compare

Changed

  • Make description editable
    (#811)

[1.20.1] - 2024-07-26

26 Jul 12:21

Choose a tag to compare

Fixed

  • INCIDENT_LEVEL_CHOICES was behaving oddly when debugging so it has been
    made a proper immutable constant.

[1.20.0] - 2024-07-25

25 Jul 12:40

Choose a tag to compare

Added

  • Added method to check whether incident is acknowledged by a specific user
    group. (#838)
  • Made it possible to replace how Argus does filtering (for sending
    notifications and showing a list of incidents). See the howto "How to
    customize filtering".
  • OVERRIDING_APPS and EXTRA_APPS now supports changing the
    MIDDLEWARE-setting. The key is "middleware" and the value is a dictionary of
    the dotted path of the middleware as the key, and an action as the value.
    Currently only the actions "start" and "end" is supported, putting the
    middleware at either the start of the list or the end, depending.

Changed

BIG filter refactor/cleanup. All filter-stuff except the Filter-model has been
moved to a new app, argus.filter

  • Move Filter.filtered_incidents to argus.filter.queryset_filters.QuerySetFilter
    • Change the signature so that it works on a filterblob, not a Filter model
      instance
  • Ensure that the fallback filter, which is only relevant when sending
    notifications, is ignored everywhere else. First step in getting rid of this
    misfeature of a setting.
  • Get rid of NotificationProfile.filtered_incidents, instead use
    argus.filter.queryset_filters.QuerySetFilter.incidents_by_notificationprofile
  • Move Filter-dependent methods out of incident/models.py
  • Move filter settings check to argus.filter
  • Keep OpenAPI queryparam descriptions with their filters in argus.filter.filters
  • Update and improve tests
  • Move Filter *_fits methods to argus.filter.filterwrapper.FilterWrapper
  • Move NotificationProfile *_fits methods to ComplexFilterWrapper
  • Add docstring to argus.filter.filter
  • Simplify/DRY existing filterwrapper methods, including tristate

Fixed

  • Removed one cause for spurious failures of tests
  • Show infinite end_time as 'Still open' instead of datetime representation in
    email (#793)
  • Temporarily hide DestinationConfig from User admin in order to allow updating
    Users again. Undo if Django starts allowing JSONFields in UniqueConstraints.
    (#822)
  • Improve /incident endpoint response time by roughly 36% by pre-fetching
    incident tag data (#837)

[1.19.2] - 2024-05-28

28 May 12:58

Choose a tag to compare

Added

  • There is now a commented line in argus.site.urls.urlpatterns that if
    uncommented will allow logging into the API with username/password. This
    allows the use of the DRF HTML api to change records. This partially works
    with django-debug-toolbar and should ease some debugging sessions.

Changed

  • Optimized PUT/PATCH of incidents in API v2. Mainly by no longer replacing
    Incident.search_text on every Incident save, thereby avoiding looking up
    all events for that incident. The old behavior was fine when there was only
    a handful of events per incident but we can no longer assume that.

[1.19.1] - 2024-05-16

16 May 14:16

Choose a tag to compare

Fixed

  • Fixed bug preventing naive printing of TimeRecurrences, triggering a traceback

[1.19.0] - 2024-05-15

15 May 11:31

Choose a tag to compare

Backwards-incompatible change: Because it is now possible to filter on
multiple event types instead of just one, both API V1 and API V2 has changed
its schema for Filter.filter. See NOTES.md for details.

Removed

  • Removed "event_type" from the V1 Filter API, it should only have been
    available in V2 (since it was new) and it has never been in use by the
    frontend. (#699)

Added

  • Add filtering of events by a list of event types
    (#699)
  • Add howto about how to set up and test federated login, using GitHub as an
    example. (#803)
  • Extend the usefulness of OVERRIDE_APPS and EXTRA_APPS by adding support
    for Django template engine context processors. Any context processors are
    added to the end of the list.
    (#810)

Changed

  • Change how the description of a change event is formatted so that it is
    always consistent (not to mention DRY).
    (#809)

[1.18.0] - 2024-05-07

07 May 13:01

Choose a tag to compare

Added

  • New in the API: Allow sources to delete their own incidents, as well as allow
    superusers to delete any incident.
    (#804)

Changed

  • Allow replacing Incident.metadata with another json blob via API, no
    questions asked, nothing to see here.
    (#807)