Pular para o conteúdo principal
Página não listada
Esta página não está listada. Mecanismos de busca não irão indexá-la, e somente usuários que possuam o link direto poderão acessá-la

Definições de Processo

Uma ProcessDefinition é o JSON versionado que descreve um processo (ver Anatomia de um Processo). Estes endpoints implantam e consultam essas definições — não confundir com Instâncias de Processo, que são execuções concretas de uma definição.

OperaçãoEndpointAutenticação/condição
Implantar uma definiçãoPOST /process-definitionsrequer kikwiflow.security.deploy-enabled: true
Listar definiçõesGET /process-definitions
Buscar a versão mais recente por keyGET /process-definitions/one-by-key/{process-definition-key}
Buscar uma versão exata por idGET /process-definitions/{id}
Limpar cache de definiçõesDELETE /process-definitions/cache

Os quatro GET/DELETE requerem um QueryRepository no contexto (ver Visão Geral); em POST /process-definitions basta o KikwiflowEngine.

Implantar uma definição

POST /process-definitions
Content-Type: application/json

Corpo — o mesmo JSON de processo descrito em Anatomia de um Processo, sem os campos que só existem depois de implantado (id, version, checksum):

{
"key": "onboarding-cliente",
"name": "Onboarding de Cliente",
"description": "",
"sla": "",
"defaultStartPoint": "INICIO",
"flowNodes": {
"INICIO": { "id": "INICIO", "type": "DEFAULT_START_EVENT", "outgoing": [{ "targetNodeId": "FIM" }] },
"FIM": { "id": "FIM", "type": "DEFAULT_END_EVENT", "outgoing": [] }
},
"extensionProperties": {}
}

Resposta 201 Created — a ProcessDefinition persistida, com id, version e checksum preenchidos. Reimplantar o mesmo key cria uma nova versão; instâncias já em execução continuam na versão com a qual começaram (ver a mesma referência acima).

:::warning Desabilitado por padrão kikwiflow.security.deploy-enabled é false por padrão — chamar este endpoint sem habilitá-lo lança SecurityException, que não tem handler dedicado e portanto retorna 500 (não 403) com o corpo de erro padrão do servlet container, não o envelope {code, message} dos demais erros. Ver Convenções, Autenticação e Erros e Segurança e Multi-tenancy para o quadro completo, inclusive como restringir por role em vez de ligar/desligar globalmente.

Uma definição inválida (gateway sem providerType, referência a AnswerProvider/bean inexistente, etc. — ver Regras de Processo Válido) também cai fora do envelope de erro padrão: InvalidProcessDefinitionException não tem handler dedicado e vira 500. :::

Muitas aplicações preferem nunca ligar deploy-enabled e implantar exclusivamente via auto-deploy do classpath num pipeline de CI/CD — este endpoint existe para os casos que precisam de deploy dinâmico em runtime (multi-tenant com processos por cliente, ferramentas de autoria).

Listar definições

GET /process-definitions
GET /process-definitions?key=onboarding-cliente

Sem key: devolve todas as versões de todas as definições, ordenadas por version decrescente — não é deduplicado por processo. Com key: mesma ordenação, filtrado às versões daquela key (também não deduplica — se você quer só a versão mais recente de uma key específica, use o próximo endpoint). Ver Guia de Integração do Monitor §1 para a técnica de deduplicar no cliente quando precisar de "um card por processo".

Resposta 200 OKProcessDefinition[], possivelmente vazio.

Buscar a versão mais recente por key

GET /process-definitions/one-by-key/{process-definition-key}

Sempre a versão de maior version para aquela key — uma chamada por chave, sem precisar deduplicar nada no cliente. 404 (NOT_FOUND) se a key nunca foi implantada.

Buscar uma versão exata por id

GET /process-definitions/{id}

id aqui é o identificador de uma versão específica, não da key — duas versões da mesma definição têm ids diferentes. 404 (NOT_FOUND) se não existir.

Limpar cache de definições

DELETE /process-definitions/cache

Resposta 204 No Content. Força a próxima resolução de definição (por key, no início de uma nova instância) a ir ao repositório em vez do cache em memória do parser. Use depois de editar uma definição diretamente no banco (fora do fluxo normal de deploy) ou ao depurar uma versão que parece "não atualizar".

Modelo de resposta (ProcessDefinition)

CampoTipoObservação
idstringIdentificador da versão (não da key).
keystringIdentificador estável do processo entre versões.
versionintIncrementa a cada POST /process-definitions com o mesmo key.
name, description, slastringMetadados livres.
checksumstringHash do conteúdo — usado internamente para detectar definições idênticas re-enviadas.
defaultStartPointstringid do nó de entrada.
flowNodesobjectMapa nodeId → definição do nó — ver Anatomia de um Processo.
extensionPropertiesobjectMapa string→string livre para metadados da aplicação.