Shield Agent AI

← Docs hub

Customer guide

Alert routing (webhooks)

Verdicts that need a human should not wait for someone to open a dashboard. Alert routing pushes DENY and REQUIRE_APPROVE events to Slack, Linear, Jira, or a generic webhook.

Config lives in .kya/config.json (project) or ~/.kya/config.json (global):

{
  "notify": {
    "webhooks": [
      { "url": "https://hooks.slack.com/services/...", "template": "slack", "events": ["DENY", "REQUIRE_APPROVE"] },
      { "url": "https://example.invalid/jira", "template": "jira", "events": ["DENY"] }
    ]
  }
}

KYA_NOTIFY_WEBHOOK=<url> is the zero-config variant with a generic payload.

  • Retries with exponential backoff (250ms / 1s / 4s + jitter) and per-attempt timeouts.
  • Per-URL circuit breaker and a send rate limiter.
  • Payloads are built only from redacted trail fields, with a minimized fallback when the secret scan trips.
  • Short-lived hook / wrap spawns hand delivery to a detached helper (kya notify-flush), so the gate path never waits on the network.

The human decision still happens on the plane: policy and approvals.

Docs hub · Install · How KYA works · Source