Pular para o conteúdo principal

Implantando Processos

Onde colocar os arquivos .kikwi​

Por padrão, ao subir a aplicação, o KikwiflowAutoDeployer varre o classpath pelo padrão configurado em kikwiflow.process-definition.auto-deploy.path (default classpath*:processes/**/*.kikwi) e implanta cada arquivo encontrado. Convencionalmente:

src/main/resources/
processes/
abertura/
abertura-de-conta.kikwi
faturamento/
cobranca-recorrente.kikwi

A estrutura de subpastas é livre — o padrão ** casa recursivamente. O que importa é o campo key dentro de cada arquivo (abertura-de-conta, no exemplo acima), não o nome do arquivo nem o caminho. A extensão é .kikwi, mas o conteúdo é JSON.

Declare kikwiflow.security.deploy-enabled: true

O interruptor global de deploy é false por padrão. Sem declarar kikwiflow.security.deploy-enabled: true no application.yml, todo deploy — inclusive o automático — é rejeitado com SecurityException, e o processo simplesmente não aparece implantado. Ver Referência de Configuração e, para restringir o deploy por papel em vez de ligar/desligar globalmente, Segurança e Multi-tenancy.

O que acontece no deploy​

Cada arquivo é lido, parseado (kikwi-parser-jackson, dispatch polimórfico pelo campo "type" de cada nó) e um checksum do conteúdo é calculado. A partir daí:

  • Mesma key + mesmo checksum (conteúdo idêntico a uma versão já implantada) — o deploy é um no-op; a definição existente é reaproveitada, nenhuma versão nova é criada.
  • Mesma key + checksum diferente (o processo mudou — por exemplo, você adicionou um gateway no Craft e reexportou) — uma nova versão é criada (version incrementado em relação à última versão daquela key). Instâncias já em execução continuam presas à versão com a qual começaram; novas instâncias iniciadas via byKey(...) passam a usar a versão mais recente.
  • Erro de parsing/validação (bean referenciado inexistente no momento do deploy, gateway malformado, mais de uma aresta isDefault no mesmo gateway) — o KikwiflowAutoDeployer registra a falha no log e continua para o próximo arquivo, em vez de abortar a inicialização da aplicação inteira. Verifique os logs de startup (Kikwiflow AutoDeploy: Falha ao fazer parse/deploy do arquivo ...) se um processo esperado não aparecer implantado.

Desabilitando o auto-deploy​

Em cenários onde a implantação de processos precisa ser um passo explícito e controlado (ex.: um pipeline de release separado, ou uma API de deploy dedicada), desative o auto-deploy:

kikwiflow:
process-definition:
auto-deploy:
enabled: false

E implante manualmente via POST /process-definitions (se kikwi-management-rest-spring-boot-starter estiver presente) ou chamando ProcessDefinitionService.deploy(...) diretamente a partir do seu próprio código.

Próximo passo​

Com processos implantados, veja como iniciar instâncias, completar tarefas e retentar incidentes a partir do código ou da API em Operando via API REST.