Skip to main content
React to threats in real-time. Safe House emits webhook events when it blocks a message, quarantines a session, detects a canary trigger, or identifies a cross-agent attack campaign. Route these events to PagerDuty, Slack, your SIEM, or any HTTP endpoint. Safe House webhooks reuse the existing AIP webhook infrastructure. If you already have AIP webhooks configured, add sh.* to your event_types — no new endpoints or secrets required.

Event types


Payload structure

All events share a common envelope. The data object varies by event type.

sh.evaluation.block

sh.evaluation.quarantine

sh.canary.triggered

sh.session.escalated

sh.campaign.detected


Signature verification

Every Safe House webhook is signed with HMAC-SHA256, identical to AIP webhooks. The signature header is X-AIP-Signature with value sha256=<hex digest>. Always verify signatures before acting on a webhook. An unverified webhook can be spoofed.
Use timingSafeEqual rather than === for signature comparison. String equality is vulnerable to timing attacks that can be used to brute-force the secret one byte at a time.
Timestamp freshness check (recommended): Reject payloads where timestamp is older than 5 minutes to prevent replay attacks.

Registration

Safe House events use the same webhook registration as AIP webhooks. Add sh.* to your event_types:
Or register a dedicated Safe House endpoint:

Retry logic

Webhook delivery follows the same retry policy as AIP webhooks. If your endpoint returns a non-2xx status, Mnemom retries at increasing intervals: After 4 failed attempts, the delivery is marked failed in aip_webhook_deliveries. You can redeliver manually:

Integration patterns

Route sh.evaluation.block to on-call

High-confidence blocks warrant immediate human attention. Page your security on-call directly.

Route sh.evaluation.quarantine to human reviewer

Quarantined items need human review before the session can continue. Post to Slack with the review link.

Treat sh.canary.triggered as a security incident

A canary trigger means an attacker has gained access to a credential planted specifically to detect exploitation. Escalate immediately.

Log all Safe House events to your SIEM


Testing your integration

Send a test event to your endpoint without waiting for a real threat:
The test payload uses synthetic data but is signed with your real signing secret — your signature verification code runs against a real payload.

See also