Webhook

Generic HTTP Webhook

POSTs every event (or every event whose Data() matches filter) as a JSON object to a configured URL. Slack and Discord notifiers share this codepath under the hood.

Payload shape

{
  "RemoteAddr": "203.0.113.5",
  "RemotePort": 54321,
  "UserAgent":  "curl/8.0",
  "Data":       "DELETE /probe HTTP/1.1\r\nHost: ...",
  "Details":    "HTTPX: DELETE http://.../probe from 203.0.113.5:54321"
}

Configuration

KeyRequiredDefaultNotes
notifieryesMust be webhook.
urlyesDestination URL. Posted with Content-Type: application/json.
filterno.*Go regexp syntax. Tested against the event’s Data(); non-matches are dropped silently.

Failure handling

  • 2xx/3xx responses are treated as success.
  • 4xx/5xx responses log an error but do not propagate one up to the dispatcher (so a flaky webhook does not block other notifiers).
  • Connection/transport failures (DNS, refused, timeout) propagate as errors and are surfaced in the app log.