Webhooks

Abonnez un point de terminaison aux événements de la plateforme et vérifiez les livraisons signées.

Les webhooks sortants envoient les événements de la plateforme vers un endpoint que vous contrôlez, pour que des systèmes externes réagissent à ce qui se passe sur Gheima. Gérez-les depuis la page Webhooks ou via l’API. Seuls les admins peuvent gérer les webhooks.

Créer un webhook#

Envoyez en POST une URL et les événements souhaités. Une liste d’événements vide ([]) abonne le webhook à tous les événements. Le secret de signature n’est renvoyé qu’une fois. Conservez-le en lieu sûr.

Shell
curl -X POST https://api.gheima.ma/v1/webhooks \
  -H "Authorization: Bearer gh_xxxxx" -H "content-type: application/json" \
  -d '{"url":"https://example.com/hook","events":["DEPLOYMENT_CREATED"]}'

Événements#

  • DEPLOYMENT_CREATED : un déploiement a démarré. Livré sous le nom deployment.created.
  • DEPLOYMENT_SUCCEEDED et DEPLOYMENT_FAILED : un déploiement est en ligne ou a échoué, aperçus et retours arrière compris (un aperçu porte preview: true). Livrés sous les noms deployment.succeeded et deployment.failed. Un déploiement annulé ou ignoré n’envoie ni l’un ni l’autre.
  • SERVICE_CREATED et SERVICE_DELETED : un service a été créé ou supprimé. Livrés sous les noms service.created et service.deleted.
  • DATABASE_CREATED : une base de données a été provisionnée. Livré sous le nom database.created.
  • PING : l’événement de test. Livré sous le nom ping.

Vérifier les livraisons#

Chaque livraison est un corps JSON { event, data, timestamp } avec un en-tête x-gheima-event et un en-tête x-gheima-signature (sha256=HMAC du corps brut avec votre secret). Vérifiez la signature avant de faire confiance à la charge utile. Envoyez un exemple de livraison à tout moment :

Shell
curl -X POST https://api.gheima.ma/v1/webhooks/<id>/test \
  -H "Authorization: Bearer gh_xxxxx"
Envoie un événement ping à votre endpoint.

✦ Vos systèmes réagissent aux événements Gheima en temps réel, avec des charges signées vérifiables.