Webhook

Installazione an https endpoint you control

Un canale webhook fa una POST con un corpo JSON al tuo URL per ogni avviso e lo firma con un secret che copi una sola volta. Verifica la firma prima di fidarti del corpo.

1Aggiungi il canale

Integrazioni, Webhook: inserisci un URL https, scegli l'ambito di progetto e quali avvisi. Il secret di firma (whsec_...) viene mostrato una sola volta: 'Copia subito il secret di firma. Non verrà mostrato di nuovo.'

2Verifica la firma

L'header x-blipit-signature è l'HMAC-SHA256 in esadecimale del corpo grezzo della richiesta, calcolato con il tuo secret. Confronta in tempo costante.

js
import { createHmac, timingSafeEqual } from "node:crypto";

export function verify(rawBody, header, secret) {
  const expected = createHmac("sha256", secret).update(rawBody).digest("hex");
  return header.length === expected.length && timingSafeEqual(Buffer.from(header), Buffer.from(expected));
}

3Leggi il corpo

Gli avvisi delle issue hanno questo aspetto. type è new_issue, regression, security o test; security è presente solo per gli avvisi di sicurezza.

json
{
  "type": "new_issue",
  "project": { "id": 12, "name": "shop" },
  "issue": { "id": 981, "title": "TypeError: cart is undefined", "url": "https://app.blipit.io/issues/981", "level": "error", "event_count": 1 },
  "event": { "release": "2026.09.28", "environment": "production", "platform": "javascript" },
  "sent_at": "2026-09-28T09:15:00.000Z"
}

Buono a sapersi

  • I cambi di stato dei monitor vengono inviati allo stesso modo con type monitor.down o monitor.up, e le notifiche monitor.slow, monitor.fast e monitor.expiring.
  • Vengono accettati solo URL https su indirizzi pubblici; i redirect non vengono seguiti. Usa il pulsante di prova dopo il salvataggio per vedere una consegna con type: test.
  • Rispondi 2xx rapidamente. Una consegna fallita compare come errore sul canale; Blipit non la mette in coda per dopo.

Bloccato? Scrivi a support@blipit.io. Le chiavi e il DSN esatto di ogni progetto sono sotto Chiavi API in app.blipit.io.