Aller au contenu principal

Webhooks

Les webhooks permettent à vos systèmes de réagir aux modifications des diagrammes en temps réel. Abonnez-vous aux événements du cycle de vie et EntityFlow enverra une requête POST contenant une charge utile signée vers votre point de terminaison chaque fois qu'ils se déclenchent.

Événements​

ÉvénementDéclenché quand
diagram.createdUn diagramme est créé.
diagram.updatedUn diagramme est enregistré/mis à jour.
diagram.deletedUn diagramme est supprimé.

Créer un abonnement​

POST /api/v1/webhooks avec une url cible et la liste des 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"]
}'

La réponse inclut un secret de signature — affiché une seule fois. Conservez-le en lieu sûr ; vous en avez besoin pour vérifier les livraisons.

Vérifier les livraisons​

Chaque livraison comporte des en-têtes Standard-Webhooks :

En-têteObjet
webhook-idIdentifiant unique de livraison (à utiliser pour l'idempotence).
webhook-timestampHeure d'envoi (rejeter les livraisons obsolètes).
webhook-signaturev1,<HMAC-SHA256 of the payload using your secret>.

Vérifiez toujours la signature avant de faire confiance à une livraison. Recalculez le HMAC-SHA256 du corps brut de la requête à l'aide de votre secret de signature et comparez-le (en temps constant) à la valeur v1,... figurant dans webhook-signature.

astuce

Utilisez les bibliothèques Standard Webhooks pour vérifier correctement les signatures dans tous les langages, plutôt que de développer votre propre solution.

Cibles HTTP​

Les cibles https sont toujours autorisées. Les cibles http en texte clair sont bloquées par défaut afin de se prémunir contre les attaques SSRF. Les utilisateurs en auto-hébergement peuvent les autoriser avec :

export EF_WEBHOOK_ALLOW_HTTP=true

Consultez la référence de configuration pour les paramètres connexes d'importation et de réseau.