kazzle.config.ts. Eine Komponente kann beliebig viele Trigger haben.
Die Struktur
processModebestimmt den Lebenszyklus — Langzeitserver oder einmalige Ausführung pro Trigger.triggers[]listet die Ereignisse auf, die diese Komponente auslösen sollen.
processMode
Trigger
Jeder Trigger hat einenname (eindeutig innerhalb der Komponente), eine kind und — je nach Modus — einen schedule und/oder path.
Persistent-Modus — HTTP zum Server
Wenn ein Trigger für eine persistente Komponente ausgelöst wird, postet Kazzle zu Ihrem Server unter dem deklariertenpath. Die Anfrage enthält:
Bei Webhook-Triggern wird der ursprüngliche Request-Body als POST-Body weitergeleitet. Bei Schedule-Triggern ist der Body leer.
Triggered-Modus — einmalig pro Trigger
Wenn ein Trigger für einetriggered-Komponente ausgelöst wird, startet Kazzle das Entry-Skript neu und wartet auf seinen Abschluss. Es gibt keinen path; das Skript erfährt, welcher Trigger ausgelöst wurde, über Umgebungsvariablen.
Webhook-URLs
triggerName-Segment muss einem kind: 'webhook'-Eintrag in der triggers[] dieser Komponente entsprechen. Unbekannte Trigger-Namen geben 404 zurück.
Zeitplan-Auflösung
Cron-Ausdrücke sind 5-Feld (Minute, Stunde, Tag des Monats, Monat, Wochentag) und Minutenauflösung ist das Minimum. Sub-Minuten-Zeitpläne werden bei der Manifest-Validierung abgelehnt.Wie Läufe aufgezeichnet werden
Jeder Trigger-Auslöser schreibt eineprocess_runs-Zeile mit trigger_name, triggered_by, run_id und dem Exit-Status des Laufs. Sie können diese aus Ihrem eigenen Code abfragen oder in der Runs-Ansicht der App inspizieren.
Guthaben aufgebraucht
Ein fehlgeschlagener Lauf wird aufgezeichnet und protokolliert, aber der Zeitplan läuft weiter nach seinem normalen Rhythmus — ein fehlerhafter Lauf deaktiviert den Trigger nie. Das Einzige, das einen Lauf stoppt, ist das Guthaben: Jeder Trigger-Auslöser wird gegen den Kontostand des Space überprüft, und während der Space kein Guthaben hat (oder keine Abrechnung eingerichtet hat), werden Läufe mit402 übersprungen. Dies ist selbstheilend — der Zeitplan bleibt aktiv und der nächste Auslöser nach dem Aufladen läuft normal, ohne manuelles Fortsetzen.
Automatisierungen später hinzufügen
Eine einfache App kann ohne Trigger starten und sie später gewinnen — fügen Sie eine tägliche Zusammenfassung hinzu, verbinden Sie Stripe, führen Sie Bereinigung aus. Der Lebenszyklus der Komponente (processMode) und Trigger (triggers[]) sind unabhängig, sodass Sie sie ändern können, ohne den Rest der App umzuschreiben.