Skip to content

v3.9.1

Latest

Choose a tag to compare

@ajhollid ajhollid released this 03 Jul 16:13
825bcc5

Checkmate v3.9.1

Features

  • Uptime percentage for monitors — new MongoDB aggregation stage exposes uptime % on individual monitor views and on status pages.
  • Custom "up" status codes for HTTP monitors — treat additional HTTP status codes (e.g. 401, 403, 418) as "up" instead of failure. Wired end-to-end: backend model + validation against real HTTP status codes, frontend customUpCodes type, UI in the create-monitor form, and the advanced matcher still runs on custom-up responses so body/JSON-path checks aren't silently bypassed.
  • Custom domain support for published status pages — publish a status page on your own domain, with CSP scoped to public status-page routes, per-request CORS (with cached and negative-cached origin lookups), a partial DB index on customDomain so unpublished pages don't collide, and the URL protocol derived from the configured client host.
  • HEAD request support for HTTP monitors — select HEAD as the request method on any HTTP monitor, with backend/frontend sync and a superRefine guard that rejects HEAD combined with body or JSON-path matchers. Default remains GET; imported monitors backfill to GET.
  • Minimal theme for status pages — a fifth selectable theme (joining Refined, Modern, Bold, and Editorial) for operators who want a stripped-down look.
  • Custom CSS for status pages — full end-to-end support: DB field, length cap, server-side validation mirrored on the client, and a CSS-syntax tokenizer that rejects references to external resources (@import, url(...), etc.) so operator-supplied CSS can't reach out. A tighter CSP is applied to the public status-page document, and the admin preview renders inside a same-origin iframe so operators can safely experiment before publishing.
  • Worker health monitoring — the new worker exposes a getHealth method, a dedicated health server with readiness and liveness endpoints, worker stats surfaced on the frontend, and observability hooks in the DB queue worker. Long-running jobs now renew their locks so extended checks don't lose their lock mid-run.
  • Additional MongoDB diagnostic stats — Mongo read/write per second counters, plus a resilient totalSize derivation for Atlas shared tier (where dbStats omits the field). Diagnostic stats reporting itself was fixed alongside.

Fixes

  • Correct check evaluation order
  • Re-arm jobs on maintenance-window pause and delete
  • Change monitor status on exit from a maintenance window
  • Fix excess polling
  • Fix diagnostic stats reporting
  • Derive Mongo totalSize when dbStats omits it on Atlas shared tier
  • Fix status page styling
  • Migration fixes

Internal & Infra

  • Decouple the worker from the main process
  • DB-backed queue
  • Worker reorganization and clean split
  • Project and code organization
  • Update Helm charts
  • Add tests covering maintenance-window monitor edits

New Contributors

Full Changelog: v3.8.1...v3.9.1