check / check (push) Waiting to run
SWWAF_ALERT_WEBHOOK_URL gets one JSON POST per alert, in SPEC.md's schema, with SWWAF_ALERT_WEBHOOK_HEADERS: ban and permanent_ban, with the ban's notes, in observe mode too, marked mode observe; source_failure for GeoJS; file_error for a rule or state file with an error. SWWAF_ALERT_EVENTS chooses; SWWAF_ALERT_COOLDOWN holds back repeats by netblock, file or source; past SWWAF_ALERT_MAX_PER_HOUR the hour ends in one summary. A bounded queue, retried with backoff, holds up no request; a 4xx other than 408 and 429 gives the alert up. alerts.json keeps the queue, the cooldowns and the hour. Nothing shows the URL's path or query. Judgement call: the summary's event is summary, which SPEC.md omits. Judgement call: an admin's ban raises no alert. Model: opus-5-5
13 lines
312 B
Go
13 lines
312 B
Go
package alerts
|
|
|
|
import "net/http"
|
|
|
|
// QueueSize is the most alerts that wait to be sent.
|
|
const QueueSize = queueSize
|
|
|
|
// SetTransport has q's requests to the webhook go through transport
|
|
// instead of the network.
|
|
func (q *Queue) SetTransport(transport http.RoundTripper) {
|
|
q.httpClient.Transport = transport
|
|
}
|