Releases: Uninett/Argus
Releases · Uninett/Argus
[1.23.0] - 2024-10-10
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
FilterSerializerandvalidate_jsonfilterfrom the filter plugin
mechanism since they just wrapFilterBlobSerializer. (This also means
FilterBlobSerializercan no longer be in the same file as
FilterSerializer.)
Fixed
- Fix OpenAPI parameters for
incidents/andincidents/mine/
[1.22.1] - 2024-09-05
Added
- Add method to get associated names of Incident levels
(#875)
[1.22.0] - 2024-08-3
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_STORAGEwithSTORAGESto 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
Changed
- Make description editable
(#811)
[1.20.1] - 2024-07-26
Fixed
INCIDENT_LEVEL_CHOICESwas behaving oddly when debugging so it has been
made a proper immutable constant.
[1.20.0] - 2024-07-25
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_APPSandEXTRA_APPSnow 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_incidentstoargus.filter.queryset_filters.QuerySetFilter- Change the signature so that it works on a filterblob, not a Filter model
instance
- Change the signature so that it works on a filterblob, not a Filter model
- 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
*_fitsmethods to argus.filter.filterwrapper.FilterWrapper - Move NotificationProfile
*_fitsmethods 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
/incidentendpoint response time by roughly 36% by pre-fetching
incident tag data (#837)
[1.19.2] - 2024-05-28
Added
- There is now a commented line in
argus.site.urls.urlpatternsthat 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_texton 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
Fixed
- Fixed bug preventing naive printing of TimeRecurrences, triggering a traceback
[1.19.0] - 2024-05-15
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_APPSandEXTRA_APPSby 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)