Inbound-Token-Intercept
Jeder Cron- und Webhook-Endpunkt unter /api/public/hooks/* erzwingt ein server-seitiges Gate, bevor eine Datenbankzeile mutiert wird. Cron-Aufrufer müssen einen CRON_SECRET via x-cron-secret präsentieren; Webhook-Aufrufer müssen eine HMAC-Signatur mit timing-safe Compare verifizieren. Der browser-gebündelte Anon-/Publishable-Key wird nie als Autorisierungs-Gate verwendet.
- • Kandji-Webhook: HMAC-SHA256 verifiziert, UNIQUE(org, event_id) Dedup, ±5-Minuten occurred_at Skew-Fenster.
- • Jira-Webhook: HMAC-signiertes Forge-Widget → /api/public/hooks/jira-impact.
- • Replay-Schutz: eindeutiger Index auf (provider, external_id) in idp_webhook_events.
