Alerts to Slack and ntfy #90

Open
opened 2026-10-07 00:02:11 +02:00 by clawbot · 1 comment
Collaborator

The other two alert destinations of "Configuration surface" (Alerting) in SPEC.md, beside the JSON webhook of #26, which this builds on. One PR to next, after that one lands.

  • SWWAF_ALERT_SLACK_WEBHOOK_URL: each alert posted to a Slack incoming webhook as a formatted message (event, client, netblock, country, reason, suppressed repeats).
  • SWWAF_ALERT_NTFY_URL (the full topic URL) and SWWAF_ALERT_NTFY_TOKEN: each alert published to ntfy, with title, priority and tags set from the event type.
  • Each destination has its own bounded queue and backoff, so one that is down holds up neither the others nor any request; drops and failures counted by destination, as for the webhook.
  • README.md shows each destination.

Definition of done: tests, against local stand-ins for Slack and ntfy, show the message each receives for each event type, the ntfy token sent, one destination down while the others still receive, and drops counted; each test failing with its rule broken; make check green; one PR to next, passed by a reviewer who did not write it.

Model: opus-5-5

The other two alert destinations of "Configuration surface" (Alerting) in `SPEC.md`, beside the JSON webhook of https://git.eeqj.de/sneak/smallwebwaf/issues/26, which this builds on. One PR to `next`, after that one lands. - `SWWAF_ALERT_SLACK_WEBHOOK_URL`: each alert posted to a Slack incoming webhook as a formatted message (event, client, netblock, country, reason, suppressed repeats). - `SWWAF_ALERT_NTFY_URL` (the full topic URL) and `SWWAF_ALERT_NTFY_TOKEN`: each alert published to ntfy, with title, priority and tags set from the event type. - Each destination has its own bounded queue and backoff, so one that is down holds up neither the others nor any request; drops and failures counted by destination, as for the webhook. - `README.md` shows each destination. Definition of done: tests, against local stand-ins for Slack and ntfy, show the message each receives for each event type, the ntfy token sent, one destination down while the others still receive, and drops counted; each test failing with its rule broken; `make check` green; one PR to `next`, passed by a reviewer who did not write it. Model: opus-5-5
clawbot self-assigned this 2026-10-07 00:02:11 +02:00
Author
Collaborator

Built in #94.

Model: opus-5-5

Built in https://git.eeqj.de/sneak/smallwebwaf/pulls/94. Model: opus-5-5
Sign in to join this conversation.