Le moteur de livraison signée et de retry porte chaque webhook à destination, signé et réessayé
Moteur de livraison signée et de retry une fonctionnalité du module Jetons API, webhooks & API REST de Clustraly. Le moteur de livraison signée et de retry met chaque webhook en file, le signe en HMAC-SHA256 et le réessaie automatiquement en cas d'échec.
Chaque événement de votre CMS part signé vers vos endpoints, transite par un client anti-SSRF et se réessaie tout seul en cas d'échec. Vous configurez les destinations, le moteur assure la livraison.
Vos événements partent, le moteur s'occupe du reste
Vous abonnez un endpoint à un événement, et chaque déclenchement devient une livraison mise en file. Le worker cron la prend en charge et l'envoie : votre interface admin ne bloque pas et n'attend pas la réponse de la cible.
Concrètement, chaque livraison démarre comme une tâche planifiée, traitée en arrière-plan dès que le worker passe.
- Mise en file de chaque livraison en tâche planifiée
- Envoi asynchrone par le worker cron
- Aucune attente côté admin au moment du déclenchement
Vos endpoints vérifient que la requête vient bien de vous
Chaque envoi porte une signature HMAC-SHA256 dans l'en-tête X-Clustraly-Signature: sha256=… . Votre serveur recalcule la signature avec votre secret et rejette tout ce qui ne correspond pas.
La requête embarque aussi les en-têtes event, delivery, webhook et timestamp : de quoi identifier, dédupliquer et dater chaque livraison côté récepteur.
- Signature HMAC-SHA256 sur le corps de chaque livraison
- En-têtes event, delivery, webhook et timestamp joints
- Secret de signature chiffré au repos en AES-256-GCM
Un endpoint indisponible ne coûte pas l'événement
Si un envoi échoue, le moteur ne laisse pas tomber : il réessaie selon un backoff exponentiel 1 min, 5 min, 30 min, 2 h puis 6 h jusqu'à 6 tentatives.
Au bout de la sixième tentative sans succès, la livraison est marquée « failed », clairement, sans boucler indéfiniment sur votre serveur.
- Backoff exponentiel : 1m, 5m, 30m, 2h, 6h
- Jusqu'à 6 tentatives avant abandon
- Statut « failed » explicite en fin de course
Chaque appel sortant passe par un client verrouillé
Toutes les livraisons transitent par le client anti-SSRF : HTTPS obligatoire, adresse IP publique uniquement, délais d'expiration et réponse plafonnée. Impossible de viser une cible interne ou de rester suspendu sur un serveur lent.
- HTTPS et IP publique imposés, cibles internes bloquées
- Délais d'expiration sur chaque tentative
- Réponse plafonnée pour éviter les corps de réponse massifs
Vous suivez chaque tentative, statut à l'appui
Chaque tentative met à jour le dernier statut et la date de dernière livraison du webhook. Le journal de livraisons affiche le statut, le code HTTP, le compteur tentatives/max, l'erreur éventuelle et l'horodatage.
Une livraison a échoué ? Vous la rejouez d'un clic depuis le journal, sans reconstruire l'événement à la main.
- last_status et last_delivery_at mis à jour à chaque tentative
- Journal : statut, code HTTP, tentatives/max, erreur, horodatage
- Renvoi manuel d'une livraison déjà stockée
Branchez votre CMS sur tout votre écosystème
Publiez un article et déclenchez un rebuild de site statique, une notification d'équipe, une synchro vers un outil tiers ou une purge de cache. Ajoutez les alertes Error-Intelligence pour être prévenu d'une nouvelle erreur ou d'un pic.
Vous décidez des événements et des destinations ; le moteur garantit que chaque signal part, signé et réessayé.
- Rebuild statique, notifications, synchro d'outils tiers
- Alertes error.new, error.regression et error.spike
- Vous choisissez les événements, le moteur livre
Vous décidez, le moteur exécute
Vous choisissez les endpoints, les événements souscrits et le secret de signature. Le moteur, lui, met en file, signe en HMAC-SHA256, envoie via le client anti-SSRF et réessaie en cas d'échec sans supervision de votre part, avec une trace horodatée pour chaque tentative.
Questions fréquentes
Comment mon serveur vérifie-t-il qu'une livraison vient bien de Clustraly ?
Que se passe-t-il si mon endpoint est momentanément indisponible ?
Puis-je pointer un webhook vers un service interne ?
Comment savoir si une livraison a réussi ?
Fonctionnalités liées
Jetons API liste et statuts
Consulter la liste • Voir le préfixe masqué • Voir propriétaire/scopes/dernière
DécouvrirCréation de jeton avec révélation unique du secret
Créer un jeton • Choisir les scopes • Fixer l'expiration • Copier le secret • Jo
DécouvrirRévocation de jeton
Révoquer • Confirmer • Journaliser (audit)
DécouvrirDes webhooks qui partent, prouvent leur origine et se réessaient seuls
Configurez vos endpoints, choisissez vos événements et laissez le moteur de livraison signée et de retry faire le trajet : signature HMAC-SHA256, client anti-SSRF, backoff jusqu'à 6 tentatives et journal complet pour chaque envoi.