Saltar para o conteúdo principal

Componentes

Componentes são as partes executáveis do seu app. Cada componente tem um type que determina como ele é executado.

Componentes de UI

Um componente de UI é um frontend web — React, Vue, Svelte, HTML puro ou qualquer framework que sirva em uma porta.
{ name: 'Dashboard', type: 'ui', path: '.', runtime: { dev: 'bun run dev' } }
  • Máx 1 por app — Kazzle atribui uma única URL de preview por app
  • runtime.dev — comando para o servidor de desenvolvimento (usado por “Iniciar preview”)
  • runtime.run — comando para servir o build de produção
Se runtime.dev não estiver definido, o sistema de preview executa bun run dev do seu package.json.

Componentes de processo

Um componente de processo é um serviço backend, worker ou tarefa agendada.
{ name: 'API', type: 'process', path: './server/index.ts' }

Ciclo de vida: processMode

Um componente de processo tem um de dois ciclos de vida:
  • processMode: 'persistent' (padrão) — servidor HTTP de longa duração. Triggers são POSTados no servidor em execução no path declarado.
  • processMode: 'triggered' — o script de entrada é executado por trigger e encerra. Sem máquinas ociosas em produção.

Triggers

Triggers de agendamento e webhook são declarados no componente. Um componente pode ter muitos triggers. Cada trigger tem um name (único dentro do componente) e um 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 é obrigatório para processMode: 'persistent'. Para processMode: 'triggered' é omitido — o script lê TRIGGER_NAME do ambiente. Veja Automações para o modelo completo de trigger, contrato de variáveis de ambiente e autenticação de header HTTP.

Comandos de runtime

FaseQuando é executadoExemplo
devDurante preview de rascunhobun run dev, vite, next dev
runEm produçãobun run start, node dist/server.js
Scripts de pacote de preview de rascunho podem usar kazzle run -- <command> para que Kazzle possa injetar portas locais e URLs de componentes irmãos. Componentes de processo de produção devem declarar o comando real em runtime.run porque o deploy executa esse comando na imagem de produção.