What changed in Healthchecks from 3 to 4

6 releases numbered after v3.13 up to and including v4.4, stable releases only. v3.13 and v4.4 are the newest stable releases of 3 and 4 we track; this page follows them as new ones ship.

47 changes across 6 releases

Added 7

v4.3

  • Add a note about unset ping key in the check details page
  • Let users specify alert priorities in the "Add Gotify" form
  • Add ability to edit existing Gotify integrations
  • Implement Markdown formatting in Ntfy notifications
  • Add rate-limiting by email in the /accounts/signup view

v4.1

  • Add a one-line summary at the top of monthly/weekly/daily reports

v4.0

  • Add data migration to update legacy timezones to current canonical timezones
Changed 15

v4.4

  • Send flapping notices to all team members instead of just the owner
  • Upgrade to Django 6.1

v4.3

  • Send "Monthly Phone/SMS/WA Limit Reached" notice to all team members instead of just owner
  • Include notification text in the "Monthly Phone/SMS/WA Limit Reached" notice
  • Switch from Selectize to Tom Select for dropdown controls
  • Update alert templates to report downtime duration
  • Switch to Argon2 as the default hasher for passwords and login tokens
  • Optimize DB queries for team membership lookups and for the "Get Pings" API call

v4.2

  • Update the email alert template to cut the beginning of the last ping body
  • Update the email integration to attach email pings as .eml attachments

v4.0

  • Upgrade to Django 6.0
  • Update the Matrix integration to use Matrix v3 API
  • Update email alert template to use user's preferred time zone
  • Update the web UI to use user's preferred timezone instead of browser's timezone
  • Switch to using multicolor icon font for integration icons
Fixed 22

v4.4

  • Fix the email integration to sanitize long lines in .eml attachments
  • Fix race conditions when concurrent requests update the same check
  • Fix bounce signing code to produce shorter signatures

v4.3

  • Fix WebhookValidator to handle input that contains square brackets
  • Update Check.rename_and_delete() to better handle race conditions
  • Enforce check limit (times two) when pinging by slug
  • Fix the "Edit Ntfy" form to preserve selected priorities when the form reloads
  • Fix the parsing of inbound emails with UTF8 body

v4.2

  • Fix the email integration to handle deep attachment stacks in last ping body
  • Fix check name and tag escaping in the Shell integration

v4.1.1

  • Fix sendalerts to avoid crashing on a timed out db connection
  • Fix the update_timeout view to also kick off nags

v4.1

  • Fix a formatting issue in Matrix notification template
  • Fix emails to never use non-breaking spaces in plain text emails
  • Fix the Change Email form to warn the user about TOTP 2FA
  • Fix daily reports to show downtime stats for the previous 2 days instead of months
  • Fix incorrect Bearer token handling in the Prometheus metrics endpoint
  • Fix the Clone function to copy the filter_http_body and filter_default_fail fields
  • Fix the ping handler to reject uppercase letters in slug values

v4.0

  • Fix the text version of email report for recently created checks
  • Fix prepare_durations() to assert ping ordering by id not by created date
  • Fix the Pause API call and UI action to no-op if the check is already paused
Removed 2

v4.1

  • Remove team size limits so users on all plans can now invite many team members

v4.0

  • Drop support for Python 3.11 and below; minimum required Python version is now 3.12
Security 1

v4.4

  • Fix the email verification link to depend on the email address

Original release notes, newest first

The list above is our reading of these notes; the originals from Pēteris Caune are here, one fold per release.

v4.4

Important: this Healthchecks release is using Django 6.1, which has dropped support for PostgreSQL < 15, MySQL < 8.4, MariaDB < 10.11.

Improvements
  • Send flapping notices to all team members (not just the owner)
  • Upgrade to Django 6.1
Bug Fixes
  • Fix the email integration to sanitize long lines in .eml attachments
  • Fix race conditions when concurrent requests update the same check
  • Fix bounce signing code to produce shorter signatures
  • Security: fix the email verification link to depend on the email address

View originalPermalink

v4.3
Improvements
  • Send "Monthly Phone/SMS/WA Limit Reached" notice to all team members (not just owner)
  • Include notification text in the "Monthly Phone/SMS/WA Limit Reached" notice
  • Add a note about unset ping key in the check details page (#1295)
  • In the "Add Gotify" form, let users specify alert priorities (#990, @BeyondMagic)
  • Add ability to edit existing Gotify integrations
  • Switch from Selectize to Tom Select for dropdown controls
  • Implement Markdown formatting in Ntfy notifications
  • Update alert templates to report downtime duration (#1309)
  • Switch to Argon2 as the default hasher for passwords and login tokens
  • Optimize DB queries for team membership lookups and for the "Get Pings" API call
Bug Fixes
  • Fix WebhookValidator to handle input that contains square brackets
  • Update Check.rename_and_delete() to better handle race conditions
  • Enforce check limit (times two) when pinging by slug
  • Fix the "Edit Ntfy" form to preserve selected priorities when the form reloads
  • Fix the parsing of inbound emails with UTF8 body (#1311)
  • Add rate-limiting by email in the /accounts/signup view

View originalPermalink

v4.2
Improvements
  • Update the email alert template to cut the beginning of the last ping body (#939)
  • Update the email integration to attach email pings as .eml attachments
Bug Fixes
  • Fix the email integration to handle deep attachment stacks in last ping body
  • Fix check name and tag escaping in the Shell integration

View originalPermalink

v4.1.1
Bug Fixes
  • Fix sendalerts to avoid crashing on a timed out db connection (#1267)
  • Fix the update_timeout view to also kick off nags

View originalPermalink

v4.1
Improvements
  • Remove team size limits: users on all plans can now invite many team members
  • Add a one-line summary at the top of monthly/weekly/daily reports
Bug Fixes
  • Fix a formatting issue in Matrix notification template (#1264, @neoscaler)
  • Fix emails to never use non-breaking spaces in plain text emails
  • Fix the "Change Email" form to warn the user about TOTP 2FA
  • Fix daily reports to show downtime stats for the previous 2 days (not months)
  • Fix incorrect Bearer token handling in the Prometheus metrics endpoint
  • Fix the "Clone" function to copy the filter_http_body, filter_default_fail fields
  • Fix the ping handler to reject uppercase letters in slug values (#1271)

View originalPermalink

v4.0

This release drops support of Python 3.11 and below. The minimum required Python version is 3.12.

Improvements
  • Upgrade to Django 6.0
  • Update the Matrix integration to use Matrix v3 API (#1244)
  • Update email alert template to use user's preferred time zone (#1230)
  • Update the web UI to use user's preferred timezone instead of browser's timezone
  • Add data migration to update legacy timezones to current canonical timezones (#1250)
  • Switch to using multicolor icon font for integration icons
Bug Fixes
  • Fix the text version of email report for recently created checks (#1236, @adelton)
  • Fix prepare_durations() to assert ping ordering by id not by created date
  • Fix the "Pause" API call and UI action to no-op if the check is already paused

View originalPermalink