Hooks de cycle de vie

Un hook s'abonne à un événement et exécute l'une de vos opérations quand il se produit. Chaque envoi est stocké avec son statut, de sorte qu'un envoi échoué peut être retrouvé et rejoué.

Les événements

Les événements d'enregistrement se produisent quand un enregistrement est créé, mis à jour, supprimé, publié ou dépublié. D'autres événements du projet couvrent vos utilisateurs et leurs sessions, le résultat d'une opération, les imports terminés, les migrations et les changements en masse, et la vie d'une organisation, de sa création à un changement de ses membres. Un autre ensemble (adhésion à l'équipe, forfait, projet et changements d'invitation) s'abonne au niveau de l'espace de travail.

Déclarer un hook

defineHook dans la config nomme un événement et la clé de l'opération à exécuter. Un filtre restreint le hook par égalité sur les clés de premier niveau de l'événement, typiquement à un seul modèle. Un hook défini dans la console peut aussi cibler une fonction intégrée : la notification.

Ce que porte un envoi

Un envoi est un HTTP POST vers l'endpoint de l'opération. Il est authentifié par un jeton de courte durée dans l'en-tête X-Foir-Token : vous le vérifiez auprès du JWKS de Fóir, et il n'y a pas d'en-tête de signature HMAC. Le corps dit ce qui a changé, par id d'enregistrement et clé de modèle, et ne porte aucun contenu de champ. Le récepteur relit l'enregistrement.

Suivi, relances et file des échecs définitifs

Chaque envoi est une ligne stockée avec un statut. foir hooks liste les envois échoués d'un hook, en rejoue un et envoie un envoi synthétique pour tester un endpoint. Les relances et le disjoncteur relèvent de l'opération que le hook exécute. Une exécution qui épuise ses relances atterrit dans la file des échecs définitifs, où elle peut être inspectée, relancée ou écartée.

Ordre et boucles

L'ordre d'envoi n'est pas garanti. Chaque envoi porte un numéro de séquence, pour qu'un récepteur puisse appliquer le dernier écrit gagnant, et un id d'exécution pour écarter les doublons. Un hook qui se déclenche lui-même ne peut pas s'emballer : une opération déjà présente dans la chaîne de causes n'est pas exécutée de nouveau, et une chaîne s'arrête à trois sauts.

Lire le détail

Le guide des hooks de cycle de vie couvre les événements, la déclaration d'un hook, ainsi que l'inspection et le rejeu des envois.