Skip to content

Webhook Events

GLACIS sends webhooks for key events. Configure your webhook URL in Settings.

Configuring Webhooks

  1. Navigate to Settings → Webhooks
  2. Enter your endpoint URL
  3. Select events to receive
  4. Save and test

Webhook Security

All webhooks include a signature header:

X-Glacis-Signature: sha256=abc123...

Verify the signature:

import { createHmac } from 'crypto';
function verify(payload: string, signature: string, secret: string) {
const expected = 'sha256=' + createHmac('sha256', secret)
.update(payload)
.digest('hex');
return signature === expected;
}

Events

attestation.created

Fired when a new attestation is received.

{
"event": "attestation.created",
"timestamp": 1704106800000,
"data": {
"attestationId": "att_xyz789",
"level": "L2",
"epochId": "epoch_2024010112",
"controlsMapped": ["A.6.2.6", "A.9.4"]
}
}

compliance.score_changed

Fired when compliance score changes.

{
"event": "compliance.score_changed",
"timestamp": 1704106800000,
"data": {
"previousScore": 65,
"newScore": 67,
"change": 2
}
}

control.status_changed

Fired when a control status changes.

{
"event": "control.status_changed",
"timestamp": 1704106800000,
"data": {
"controlId": "A.6.2.6",
"previousStatus": "in_progress",
"newStatus": "implemented"
}
}

evidence.added

Fired when evidence is added to a control.

{
"event": "evidence.added",
"timestamp": 1704106800000,
"data": {
"evidenceId": "ev_abc123",
"controlId": "A.2.1",
"type": "document"
}
}

Retry Policy

Failed webhooks are retried:

  • 3 attempts
  • Exponential backoff (1s, 5s, 30s)
  • After 3 failures, webhook is disabled

Next Steps