pingform

Changelog

Product and protocol changes. Breaking changes are announced at least 30 days ahead and never land in a patch release.

WebSocket fallback is now automatic

Agents that fail to establish a usable h2 stream within the connect timeout now retry over WebSocket without operator action, and log which transport they settled on. This mainly helps agents behind corporate middleboxes and on mobile uplinks, where long-lived h2 streams are sometimes truncated. Set transport: grpc explicitly to opt out.

Per-workspace WebSocket paths

The live stream path now ends in the workspace ID, as in /_agent/v2/stream/wk_8f3c91ba. The previous shared path stays available until 2027-01-15 and is served with a Deprecation header. Update agent.yaml or re-run enrol to pick up the new path automatically.

Local spooling by default

Results are buffered to /var/lib/pingform/spool whenever the ingest connection is down, up to 256 MiB, and replayed oldest-first on reconnect. Previously the agent dropped samples after 60 seconds of downtime.

Three new vantage points

Added af-south (Johannesburg), il-central (Tel Aviv) and eu-east (Warsaw). Address ranges updated; see probe network.

Cursor pagination on results

GET /checks/{id}/results returns a cursor instead of offset/limit. Offset pagination keeps working until 2026-12-31 and returns a Sunset header.

TLS expiry assertions

HTTP checks accept tls_min_days, failing a check when the leaf certificate is closer to expiry than the given threshold. Cheaper than a separate certificate monitor and it runs from every vantage point.