Skip to main content
Automatiseringen zijn de onderdelen van een app die zelfstandig worden uitgevoerd — volgens een schema, of wanneer een externe service een gebeurtenis stuurt. Je declareert ze op een process-component in kazzle.config.ts. Eén component kan zoveel triggers hebben als je nodig hebt.

De structuur

Hier gebeuren twee dingen:
  • processMode bepaalt de levenscyclus — langlopende server, of eenmalige uitvoering per trigger.
  • triggers[] geeft de gebeurtenissen aan die deze component moeten activeren.
De twee onderdelen zijn onafhankelijk. Een persistent server kan een cron hebben. Een eenmalig proces kan een webhook hebben. Kies de levenscyclus die bij je werkbelasting past, en voeg zoveel triggers toe als je wilt.

processMode

Triggers

Elke trigger heeft een name (uniek binnen de component), een kind, en — afhankelijk van de modus — een schedule en/of path.

Persistent modus — HTTP naar de server

Wanneer een trigger voor een persistent component wordt geactiveerd, stuurt Kazzle een POST naar je server op het aangegeven path. Het verzoek bevat: Voor webhook-triggers wordt de originele aanvraagbody doorgestuurd als de POST-body. Voor schema-triggers is de body leeg.

Triggered modus — eenmalig per trigger

Wanneer een trigger voor een triggered-component wordt geactiveerd, start Kazzle het invoerscript opnieuw op en wacht tot het afsluit. Er is geen path; het script leert welke trigger is geactiveerd via omgevingsvariabelen.
Triggered-componenten hebben geen inactieve machines in productie — ze starten per oproep op en sluiten af bij afsluiting.

Webhook-URL’s

Het triggerName-segment moet overeenkomen met een kind: 'webhook'-item in de triggers[] van die component. Onbekende triggernamen retourneren 404.

Schemaresolutie

Cron-expressies zijn 5-veld (minuut, uur, dag-van-maand, maand, dag-van-week) en minuutresolutie is het minimum. Sub-minuutschema’s worden afgewezen bij validatie van het manifest.

Hoe runs worden geregistreerd

Elke triggeractivering schrijft een process_runs-rij met de trigger_name, triggered_by, run_id en de afsluitstatus van de run. Je kunt deze opvragen vanuit je eigen code of inspecteren in de runs-weergave van de app.

Tegoed op

Een mislukte run wordt geregistreerd en gelogd, maar het schema blijft op zijn normale cadans lopen — een onbetrouwbare run schakelt de trigger nooit uit. Het enige wat een run stopt is tegoed: elke triggeractivering wordt gecontroleerd tegen het saldo van de space, en terwijl de space geen tegoed heeft (of geen facturering is ingesteld) worden runs overgeslagen met een 402. Dit herstelt zichzelf — het schema blijft actief en de volgende activering nadat je het aanvult, wordt normaal uitgevoerd, zonder handmatig hervatten.

Automatiseringen later toevoegen

Een eenvoudige app kan zonder triggers beginnen en deze later krijgen — voeg een dagelijks overzicht toe, verbind Stripe, voer opschoning uit. De levenscyclus van de component (processMode) en triggers (triggers[]) zijn onafhankelijk, dus je kunt ze wijzigen zonder de rest van de app te herschrijven.