Clustraly
Jetons API, webhooks & API REST

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.

Livraison fiable

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
Authenticité prouvée

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
Reprise automatique

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
Envoi maîtrisé

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
Visibilité complète

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
Cas d'usage

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
Pourquoi ça compte

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.

FAQ

Questions fréquentes

Comment mon serveur vérifie-t-il qu'une livraison vient bien de Clustraly ?
Recalculez la signature HMAC-SHA256 du corps reçu avec votre secret de signature (whsec_…), puis comparez-la à l'en-tête X-Clustraly-Signature: sha256=…. Si les deux correspondent, la livraison est authentique ; sinon, rejetez-la.
Que se passe-t-il si mon endpoint est momentanément indisponible ?
Le moteur réessaie automatiquement selon un backoff exponentiel 1m, 5m, 30m, 2h, 6h jusqu'à 6 tentatives. Au-delà, la livraison est marquée « failed » et reste rejouable manuellement depuis le journal de livraisons.
Puis-je pointer un webhook vers un service interne ?
Non. Le client anti-SSRF impose HTTPS et une adresse IP publique, ce qui bloque les cibles internes ou privées. Chaque envoi respecte aussi des délais d'expiration et une réponse plafonnée.
Comment savoir si une livraison a réussi ?
Chaque tentative met à jour le dernier statut et la date de dernière livraison du webhook. Le journal détaille le statut, le code HTTP, le compteur de tentatives, l'erreur éventuelle et l'horodatage de chaque envoi.
Prêt à commencer ?

Des 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.