Skip to main content

What this is for

Settings → Notifications lets you push gateway events to any HTTPS endpoint and create alert rules that fire into those endpoints when conditions cross a threshold. Use it to feed SIEM tools, page on-call, drop budget warnings into Slack, or replicate audit events into your own pipeline. The page has two sections: Alert Rules (conditions that trigger notifications) and Webhook Endpoints (where the notifications go).

Options

Webhook Endpoints

Create Webhook form:

Available events

The Events picker lists the events below by name, with a search box. Leave every box unchecked to subscribe the endpoint to all of them. Extra event IDs (optional) takes any additional ids, comma- or newline-separated, for events not in the list. Some events are in the catalog but nothing on the gateway sends them yet. They are marked Not sent yet below. You can subscribe to them, but the endpoint receives nothing for them.

Traffic & latency

Tokens & quotas

Providers & models

Routing & cache

Spend

Security & guardrails

Despite the names, these five ids are not limited to blocks. An endpoint subscribed to more than one of them receives each guardrail event once.

MCP

API keys

Audit & access

Repositories

Organization & platform

Repositories

When one gateway event matches several ids an endpoint subscribes to, the endpoint gets a single delivery. Its X-Webhook-Event header carries the first matching id.

Repository scan failures

repo.scan_failed tells you when Discovery could not scan a repository and the fix is on your side. Guardway cloud sends it, not the gateway, and it checks for new failures every 10 minutes. When it is sent
  • Guardway lost access to the repository, for example the GitHub App can’t access it (HTTP 4xx) or the Azure DevOps connection lost access. GitHub rate limits are on Guardway’s side and are not sent.
  • The repository is too large to scan.
  • The repository type is unsupported.
It covers scheduled and manual scans of GitHub and Azure DevOps repositories. Failures on Guardway’s side are not sent to you. Pull request scans are not covered either: they are reported on the PR check. It is sent once per repository and failure reason. After a later scan of that repository succeeds, the next failure is sent again. A repository still failing after 30 days is reported again as a reminder. At most 5 failures per organization are sent per 10-minute run, and the rest follow in later runs. Where it goes
  • Every connected Slack workspace, to its default channel.
  • Every enabled webhook endpoint with repo.scan_failed checked in its event list.
Alert rules are not used for this event, and PagerDuty, Opsgenie, Teams, and email channels do not receive it. Because Guardway cloud makes the request, the webhook URL must be a public https:// address. Private or internal addresses and http:// URLs are refused. Up to 3 attempts for timeouts, network errors, 5xx, 408 and 429, with a 10 second timeout per attempt. Other 4xx responses and redirects are not retried, and a Retry-After above 5 seconds ends delivery. Headers Payload
In the dashboard the event appears under the Repositories category as Repository Scan Failed.

Repository findings alerts

repo.findings_detected tells you when a GitHub or Azure DevOps repository scan finds something new. It is available to organizations as it rolls out. When it fires
  • After a manual or scheduled repository scan completes. Pull request scans do not fire it: they report on the pull request itself.
  • The first completed scan of a repository sends one baseline summary of everything it found.
  • Later scans report only new findings: those not present in the repository’s previous two completed scans. Using two scans means one degraded scan does not make Guardway announce everything again. Compliance (OWASP MCP) findings are matched by risk id.
  • Scans keep up to 1000 findings per scanner. A finding that falls outside that cap and later returns can be reported again.
Minimum severity and repositories. Only findings at or above the minimum severity count; the default is High. By default an alert covers all repositories; add a repository filter to narrow it. A scan whose findings are all below the minimum sends nothing. Where it goes
  • Slack, through an alert rule: in Create Alert, set Rule type to New repository findings.
  • Webhooks, through an alert rule (Rule type set to New repository findings) or a webhook subscription to repo.findings_detected. An endpoint subscribed without an alert rule always uses a minimum severity of High and covers all repositories; use an alert rule to change either.
  • PagerDuty, Opsgenie, Microsoft Teams and email notification channels do not support this event.
  • Each destination is notified at most once per scan. When several rules or subscriptions reach the same destination, the first one that qualifies sends. Cooldown does not apply.
Webhook delivery. Guardway sends the POST from the cloud, not from your gateway, so the per-endpoint Timeout and Max Retries settings do not apply.
  • The URL must use https and resolve to a public address. Private, loopback and link-local addresses, .local names and single-label hosts are refused.
  • Redirects are not followed; a 3xx response counts as a failed delivery.
  • Any non-2xx response (including 4xx) or network error is retried, for 3 attempts in total, each with a 10 second timeout, waiting 1 s and then 3 s between attempts. A Retry-After header is honoured up to 5 s. There are no retries after the third attempt.
  • Requests are signed like any other event: X-Webhook-Signature, X-Webhook-Event and X-Webhook-ID. See Verifying the signature.

Payload

Example body:

Alert Rules

Create Alert form: For New repository findings (repo.findings_detected), Condition and Threshold are replaced by Minimum severity (default High) and Repositories (all by default), and Cooldown does not apply (it is shown disabled: “Each scan alerts once.”). To use it, set Rule type to New repository findings in Create Alert. See Repository findings alerts.

Delivery guarantees

  • HMAC signing — every request includes an X-Webhook-Signature header, sha256= followed by the hex HMAC-SHA256 of the body, keyed with the signing secret.
  • Event header — X-Webhook-Event carries the subscribed event id the delivery matched.
  • Retries — for gateway-delivered events, exponential backoff on 5xx and network errors, up to Max Retries. repo.findings_detected is sent from the cloud with its own retry policy; see Repository findings alerts.
  • Per-webhook filters — only the events selected on each endpoint are delivered.
  • Audit trail — every delivery attempt (success or failure) is recorded in Audit Log.

How to configure

1

Create a webhook endpoint

Open Settings → Notifications from the dashboard sidebar, scroll to Webhook Endpoints, click Create Webhook. Fill Name, URL, Events, Signing secret, Timeout, and Max Retries. Save.
2

Verify on your receiver

Trigger one of the selected events (e.g. an MCP call for request.completed) and confirm your endpoint received a signed POST.
3

Create an alert rule

Scroll to Alert Rules, click Create Alert. Set Name, Condition, Threshold, Severity, Cooldown, and pick the Webhook endpoint the alert should notify.
4

Test it

Force the condition (e.g. exceed an API key’s request quota from Playground) and confirm both the gateway log and your endpoint show the delivery.

Verifying the signature

Compute HMAC-SHA256 over the raw request body using your webhook Signing secret, hex-encode it, prefix it with sha256=, and compare the result to the X-Webhook-Signature header. Reject the delivery if they don’t match.
  • Repository findings — what a repository scan finds.
  • Budgets and Alerts — the budget.threshold and budget.exceeded events and which subscriptions receive them.
  • Audit Log — every webhook delivery attempt is recorded here.
  • Integrations — first-party integrations that don’t need a webhook.