Notifications
EventDestinations, signature webhook et journal de livraison
Quand une Alert produit un AlertEvent, Stream Estate le livre via une EventDestination (email ou webhook). Chaque tentative de livraison est consignée dans une EventNotification.
EventDestination
Endpoint racine : /account/event-destinations
| Champ | Type | Description |
|---|---|---|
id | string (uuid) | |
destinationType | enum | WEBHOOK ou EMAIL |
url | string | null | URL webhook (si WEBHOOK) |
email | string | null | Email (si EMAIL) |
isDefault | boolean | Destination par défaut pour son type |
status | enum | ACTIVE ou SUSPENDED (circuit breaker) |
signingKey | string | null | Clé HMAC, retournée uniquement dans la réponse POST |
createdAt / updatedAt | string | null | ISO 8601 |
Endpoints
GET /account/event-destinations— listerPOST /account/event-destinations— créer (la réponse contientsigningKeyune fois)GET /account/event-destinations/{uuid}— détailDELETE /account/event-destinations/{uuid}— supprimerPOST /account/event-destinations/{uuid}/reactivate— réactiver une destinationSUSPENDEDPOST /account/webhook-signing-key/rotate— roter la clé de signature globale
Sécuriser un webhook
Chaque POST vers votre endpoint est signé avec signingKey. Vérifiez l'en-tête HMAC-SHA256 côté réception avant de traiter le payload (noms d'en-têtes exacts : consultez la réponse POST /account/event-destinations ou l'API Reference).
EventNotification (journal de livraison)
Endpoint racine : /event-notifications
| Champ | Type | Description |
|---|---|---|
id | string (uuid) | |
channel | enum | EMAIL ou WEBHOOK |
destinationAddress | string | URL ou email cible |
status | enum | PENDING, DELIVERED, FAILED, SUSPENDED |
attemptNumber | integer | Nombre de tentatives |
deliveredAt | string | null | Timestamp de la livraison réussie |
lastErrorMessage | string | null | Message de la dernière erreur |
createdAt / updatedAt | string | null | ISO 8601 |
Endpoints
GET /event-notifications— lister (filtrer par statut, canal, etc.)GET /event-notifications/{uuid}— détail
Circuit breaker
Si trop d'échecs consécutifs, la destination passe en SUSPENDED et les notifications futures sont mises en SUSPENDED dans le journal. Utilisez POST /account/event-destinations/{uuid}/reactivate après avoir corrigé le problème côté receveur.