Releases: Uninett/Argus
Releases · Uninett/Argus
[1.22.1] - 2024-09-05
[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_STORAGE
withSTORAGES
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
Changed
- Make description editable
(#811)
[1.20.1] - 2024-07-26
Fixed
INCIDENT_LEVEL_CHOICES
was 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_APPS
andEXTRA_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
toargus.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
*_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
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
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_APPS
andEXTRA_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
[1.17.0] - 2024-05-03
Added
- Add a possibility to filter incidents by start time in incident admin list
(#739) - Added an optional JSONField "metadata" to incident. This can be used for any
additional info the glue-service would like to store on the incident that
needs more structure than tags. The field has been added to the V2
IncidentSerializer but we do not plan to expose it in the frontend. - Added documentation on how to safely test notifications.
- Added simple support for pluggable django-apps. The setting
OVERRIDING_APPS
is loaded first inINSTALLED_APPS
andurls.py
, and can override templates
and views. The settingEXTRA_APPS
is safer, it is loaded last in
INSTALLED_APPS
andurls.py
and can therefore only add additional
templates and views.
Changed
- When editing a notification profile in the admin UI, only the profile owner's
own filters are now listed as available for selection.
(#735) - Linked up the second column in the admin incident list to the details view in
addition to the default first column because the first column is currently an
optional field. If the field has no value there can also not be a link. - Update the release checklist in
docs/
to current practices and turn it into
a howto.