Skip to content

3.0.0

Choose a tag to compare

@github-actions github-actions released this 27 May 00:21
· 64 commits to master since this release

πŸš€ Features

  • feat(outages): hide initial update fieldset for scheduled outages

πŸ› Fixes

  • fix(settings): remove SECRET_KEY from defaults
  • fix(settings): default DEBUG to False
  • fix(settings): refuse writable override file; preserve tracebacks
  • fix(outages): wrap state-change writes in transaction.atomic
  • fix(admin): subclass django.contrib.auth.admin.UserAdmin for User
  • fix(auth): revoke outage_managers membership on OIDC demotion
  • fix(settings): add cookie, HSTS, and proxy-SSL defaults
  • fix(outages): use {% url %} for back links instead of HTTP_REFERER
  • fix(views): handle Graphite errors gracefully
  • fix(views): use timezone-aware datetimes for index window
  • fix(nagios): tolerate malformed availability rows
  • fix(views): validate user-supplied Graphite query params
  • fix(error): return correct HTTP status codes from handlers
  • fix(auth): drop ModelBackend when USE_OIDC
  • fix(settings): comment out dummy OIDC client id and secret
  • fix(settings): add django-csp middleware with safe defaults
  • fix(settings): remove dead HEALTH_CHECK SUBSETS config
  • fix(outages): list serializer fields explicitly
  • fix(outages): add pagination and explicit permissions to OutageViewSet
  • fix(outages): drop unused is_staff arg on OutageFilters
  • fix(outages): respect Meta.ordering when no explicit ordering chosen
  • fix(outages): use prefetch cache in latest_update/first_update
  • fix(outages): set modified_by when bubbling activity onto Outage
  • fix(outages): only allow PROGRESSING when reopening an ended outage
  • fix(outages): tolerate unknown status / severity codes in display
  • fix(outages): set modified_by when reopening an ended outage
  • fix(outages): lock outage row during state changes (TOCTOU)
  • fix(outages): prefetch updates on list view + N+1 regression test
  • fix(views): actually sort composition_cores output
  • fix(views): missing space + spelling in composition description
  • fix(urls): distinct names for composition routes; fix redirect target
  • fix(urls): distinct names for the two OIDC login routes
  • fix(urls): normalise trailing slash on growth/* endpoints
  • fix(nav_bar): segment-based match in active template tag
  • fix(templates): close tags properly
  • fix(templates): add rel="noopener noreferrer" to target="_blank" links
  • fix(outages): drop block-in-inline HTML in detail update render
  • fix(templates): use {% url %} for internal nav links
  • fix(templates): drop dead Bootstrap-3 data-toggle="tab" attrs
  • fix(allocations): avoid .html() for API-sourced breadcrumb labels
  • fix(allocations): use json_script for inline JS globals
  • fix(templates): move mustache include from base to allocations page
  • fix(allocations): drop dead v3-API code paths in project_details.js
  • fix(graphite): close two Python footguns
  • fix(nagios): replace deprecated lxml getchildren()
  • fix(nagios): treat unparseable percentages as None, not 0.0
  • fix(nagios): reject naive datetimes in gm_timestamp
  • fix(views): make Nagios availability cache backup actually durable
  • fix(views): narrow _get_hosts except clauses
  • fix(outages): use IANA tz name instead of UTC offset for DST safety
  • fix(csp): allow third-party origins needed by site assets and API
  • fix(outages): restore pre-refactor field aliases on outages API

πŸ§ͺ Tests

  • test: lift coverage to 93% and gate at 90%
  • test(outages): cover API filter lookups (start/end/severity)
  • test(outages): cover OutageUpdate -> Outage cascade behaviour
  • test(outages): tz_offset edge cases and DST limitation

πŸ“¦ Other

  • refactor(outages): remove soft-delete deleted field
  • Configure Renovate
  • refactor(outages): unify scheduled and unscheduled into one workflow
  • feat(outages) Update datepicker opts to show a now and clear button
  • fix(nagios,graphite): add HTTP timeouts to upstream calls
  • chore: drop dead views.faults
  • refactor(views): rename choose_first -> first_truthy_value
  • chore: replace deprecated LOG.warn with LOG.warning
  • chore: drop dead settings in test/selenium envs
  • chore(tests): move override_settings import to top of file
  • chore: remove dead JS files and editor backup files
  • fix(nagios,graphite): use a shared requests Session with retries