Zum Hauptinhalt springen

Webhooks

Mit Webhooks können Ihre Systeme in Echtzeit auf Diagrammänderungen reagieren. Abonnieren Sie Lebenszyklus-Ereignisse, und EntityFlow sendet bei jedem Auslösen eine signierte Nutzlast per POST an Ihren Endpunkt.

Ereignisse​

EreignisAusgelöst, wenn
diagram.createdEin Diagramm wird erstellt.
diagram.updatedEin Diagramm wird gespeichert/aktualisiert.
diagram.deletedEin Diagramm wird gelöscht.

Ein Abonnement erstellen​

POST /api/v1/webhooks mit einer Ziel-url und der Liste der events:

curl -X POST https://<your-host>/api/v1/webhooks \
-H "Authorization: Bearer ef_live_xxxxxxxxxxxxxxxx" \
-H "Content-Type: application/json" \
-d '{
"url": "https://example.com/hooks/entityflow",
"events": ["diagram.created", "diagram.updated", "diagram.deleted"]
}'

Die Antwort enthält ein Signaturgeheimnis — das nur einmal angezeigt wird. Bewahren Sie es sicher auf; Sie benötigen es, um Zustellungen zu verifizieren.

Zustellungen verifizieren​

Jede Zustellung enthält Standard-Webhooks-Header:

HeaderZweck
webhook-idEindeutige Zustellungs-ID (für Idempotenz verwenden).
webhook-timestampSendezeitpunkt (veraltete Zustellungen ablehnen).
webhook-signaturev1,<HMAC-SHA256 of the payload using your secret>.

Verifizieren Sie immer die Signatur, bevor Sie einer Zustellung vertrauen. Berechnen Sie den HMAC-SHA256 des Roh-Anfragetexts mit Ihrem Signaturgeheimnis neu und vergleichen Sie ihn (in konstanter Zeit) mit dem v1,...-Wert in webhook-signature.

tipp

Verwenden Sie die Standard Webhooks-Bibliotheken, um Signaturen sprachübergreifend korrekt zu verifizieren, anstatt eine eigene Lösung zu entwickeln.

HTTP-Ziele​

https-Ziele sind immer zulässig. Klartext-http-Ziele sind als SSRF-Schutz standardmäßig blockiert. Selbst-Hoster können sie wie folgt zulassen:

export EF_WEBHOOK_ALLOW_HTTP=true

Weitere zugehörige Importer- und Netzwerkeinstellungen finden Sie in der Konfigurationsreferenz.