Naar hoofdinhoud gaan

Componenten

Componenten zijn de uitvoerbare onderdelen van je app. Elke component heeft een type dat bepaalt hoe deze wordt uitgevoerd.

UI-componenten

Een UI-component is een webfrontend — React, Vue, Svelte, plain HTML, of elk framework dat op een poort draait.
{ name: 'Dashboard', type: 'ui', path: '.', runtime: { dev: 'bun run dev' } }
  • Max 1 per app — Kazzle wijst één preview-URL per app toe
  • runtime.dev — commando voor de dev-server (gebruikt door “Start preview”)
  • runtime.run — commando om de productie-build te serveren
Als runtime.dev niet is ingesteld, voert het preview-systeem bun run dev uit vanuit je package.json.

Procescomponenten

Een procescomponent is een backend-service, worker, of geplande taak.
{ name: 'API', type: 'process', path: './server/index.ts' }

Levenscyclus: processMode

Een procescomponent heeft een van twee levenscycli:
  • processMode: 'persistent' (standaard) — langlopende HTTP-server. Triggers worden naar de draaiende server gepost op het aangegeven path.
  • processMode: 'triggered' — het entry-script wordt per trigger gestart en afgesloten. Geen inactieve machines in productie.

Triggers

Schema- en webhook-triggers worden op de component aangegeven. Eén component kan veel triggers hebben. Elke trigger heeft een name (uniek binnen de component) en een kind.
{
  name: 'events',
  type: 'process',
  path: './components/events/index.ts',
  processMode: 'persistent',
  triggers: [
    { name: 'cleanup', kind: 'schedule', schedule: '0 * * * *', path: '/cron/cleanup' },
    { name: 'stripe',  kind: 'webhook',                          path: '/webhook/stripe' },
  ],
}
path is vereist voor processMode: 'persistent'. Voor processMode: 'triggered' wordt het weggelaten — het script leest TRIGGER_NAME uit de omgeving. Zie Automations voor het volledige trigger-model, env-var-contract en HTTP-authenticatieheader.

Runtime-commando’s

FaseWanneer het wordt uitgevoerdVoorbeeld
devTijdens draft-previewbun run dev, vite, next dev
runIn productiebun run start, node dist/server.js
Draft-preview package-scripts kunnen kazzle run -- <command> gebruiken zodat Kazzle lokale poorten en URL’s van sibling-componenten kan injecteren. Productie-procescomponenten moeten het echte commando in runtime.run aangeven omdat deploy dat commando in de productie-image uitvoert.