Skip to content

feat(heartbeats): send outbound heartbeats to another instance - #123

Merged
btouchard merged 2 commits into
mainfrom
038-outbound-heartbeat
Sep 28, 2026
Merged

btouchard merged 2 commits into
mainfrom
038-outbound-heartbeat

Conversation

@btouchard

@btouchard btouchard commented Sep 28, 2026 •

Copy link
Copy Markdown
Contributor

Why

An instance can watch everything except itself. Pinging a heartbeat on another maintenant instance at a fixed interval lets that instance raise an alert when this one stops.

What

  • Outbound heartbeats: an HTTPS URL (typically the /ping URL of a heartbeat on another instance) pinged at a fixed interval by a background loop.
  • Targets must be public: URLs are checked with the SSRF guard on create/update and sends go through the SSRF-guarded client with private ranges refused, so the feature cannot probe internal services.
  • Managed from a new Outgoing tab on the Heartbeats page.
  • API: CRUD and send-now under /api/v1/outbound-heartbeats.
  • Migration 34 (outbound_heartbeats) on SQLite and PostgreSQL.

Let an instance ping a URL at a fixed interval, typically the /ping
URL of a heartbeat on another maintenant instance, so that instance
alerts when this one stops. Targets are managed from a new Outgoing
tab on the Heartbeats page.

Add migration 34 (outbound_heartbeats) on SQLite and PostgreSQL, a
background send loop, and CRUD plus send-now endpoints under
/api/v1/outbound-heartbeats.
…ses only

Outbound targets must use https and are checked with ssrf.ValidateURL
when created or updated; sends go through ssrf.NewHTTPClient with
private ranges refused, so the feature cannot be used to probe internal
services.
@btouchard
btouchard merged commit c597dc5 into main Sep 28, 2026
31 of 32 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant