Lifecycle-Hooks
Ein Hook abonniert ein Ereignis und führt eine Ihrer Operationen aus, wenn es eintritt. Jede Zustellung wird mit ihrem Status gespeichert, sodass eine fehlgeschlagene gefunden und erneut abgespielt werden kann.
Die Ereignisse
Datensatzereignisse treten auf, wenn ein Datensatz erstellt, aktualisiert, gelöscht, veröffentlicht oder depubliziert wird. Weitere Projektereignisse betreffen Ihre Nutzer und deren Sitzungen, das Ergebnis einer Operation, abgeschlossene Importe, Migrationen und Massenänderungen sowie das Leben einer Organisation, von der Erstellung bis zu einer Änderung ihrer Mitglieder. Ein weiterer Satz (Änderungen an Teammitgliedschaft, Tarif, Projekt und Einladungen) wird auf dem Workspace abonniert.
Einen Hook deklarieren
defineHook nennt in der Config ein Ereignis und den Schlüssel der Operation, die ausgeführt werden soll. Ein Filter grenzt den Hook durch Gleichheit auf den Schlüsseln der obersten Ebene des Ereignisses ein, typischerweise auf ein Modell. Ein in der Konsole eingerichteter Hook kann zusätzlich auf Folgendes zielen: eine integrierte Benachrichtigung.
Was eine Zustellung trägt
Eine Zustellung ist ein HTTP-POST an den Endpunkt der Operation. Sie wird durch ein kurzlebiges Token im Header X-Foir-Token authentifiziert, das Sie gegen das JWKS von Fóir verifizieren, und es gibt keinen HMAC-Signatur-Header. Der Körper nennt, was sich geändert hat, mit Datensatz-ID und Modellschlüssel, und trägt keine Feldinhalte. Der Empfänger liest den Datensatz zurück.
Nachverfolgung, Wiederholungen und die Dead-Letter-Queue
Jede Zustellung ist eine gespeicherte Zeile mit einem Status. foir hooks listet die fehlgeschlagenen Zustellungen eines Hooks auf, spielt eine erneut ab und sendet eine synthetische Zustellung, um einen Endpunkt zu testen. Wiederholungen und der Circuit Breaker gehören zur Operation, die der Hook ausführt. Ein Lauf, der seine Wiederholungen aufbraucht, landet in der Dead-Letter-Queue, wo er geprüft, wiederholt oder verworfen werden kann.
Reihenfolge und Schleifen
Die Zustellreihenfolge ist nicht garantiert. Jede Zustellung trägt eine Sequenznummer, sodass ein Empfänger Last-Write-Wins anwenden kann, und eine Ausführungs-ID, um Duplikate zu verwerfen. Ein Hook, der sich selbst auslöst, kann nicht außer Kontrolle geraten: Eine Operation, die bereits in der Ursachenkette liegt, wird nicht erneut ausgeführt, und eine Kette endet nach drei Sprüngen.
Details nachlesen
Der Leitfaden zu Lifecycle-Hooks behandelt die Ereignisse, das Deklarieren eines Hooks sowie das Prüfen und erneute Abspielen von Zustellungen.