Processos
Todas as rotas de processes exigem autorização através de um Bearer token válido. Antes de executar qualquer chamada, gere um token utilizando a rota apropriada.
CREATE#
Criar um processo#
Existem 2 rotas irmãs para criação de um processo, através do id do workflow ou através do nome do workflow.
Em ambos os casos, o processo é criado, um id é criado, mas o processo não é inicializado. O processo permanece em status UNSTARTED até que o comando de executar processo seja enviado.
tip
A avaliação do input schema do start node é feito somente na execução do processo, ou seja, o envio de um payload inconsistente com o input schema do start node não impede a criação do processo.
Request#
| Verbo | Path | Formato |
|---|---|---|
| POST | /workflows/{workflow_id}/create | type: string, format: uuid |
| POST | /workflows/name/{workflow_name}/create | type: string |
Responses#
- Schema
- Exemplo
Executar um processo#
Um processo quando criado, permanece com status UNSTARTED até que receba o comando de executar.
| Verbo | Path | Formato |
|---|---|---|
| POST | /processes/{process_id}/run | type: string, format: uuid |
Nesse momento é feita a validação do input_schema do startNode com o payload enviado na criação do processo.
info
Se o payload do input schema estiver inválido, o processo entrará em estado de ERROR.
Nesse momento o processo recebe um novo estado, com status RUNNING.
Responses#
- 200
- 404
O FlowBuild sempre retornará um código de resposta 200 caso o processo enviado seja um processo válido.
Isso não representa que o processo está saudável e em execução, mas a confirmação da recepção da requisição. Para consultar o estado do procesos, consulte as rotas de leitura do processo.
O código 404 é retornado quando:
- o process_id enviado não existe
- o usuário não tem permissão para acessar a lane do processo enviado.
Iniciar um processo#
O FlowBuild disponibiliza uma rota que permite, em uma só chamada, fazer a criação e a inicialização do processo.
A rota é equivalente às rotas de criar processo e executar processo.
| Verbo | Path | Formato |
|---|---|---|
| POST | /workflows/name/{workflow_name}/start | type: string |
| POST | /workflows/{workflow_id}/start | type: string, format: uuid |
Nota
O retorno da chamada é idêntico ao retorno da chamada de criação de processo e é vinculado a criação do processo e não a sua inicialização, ou seja, uma resposta 200 informa que o processo foi criado e não significa que o processo foi inicializado com sucesso. Para verificar o estado do processo, utilize as rotas de consulta de processos.
READ#
Listar processos de um workflow#
Lista todos os processos de um determinado workflow_id, bem como o estado atual de cada um deles.
| Verbo | Path | Formato |
|---|---|---|
| GET | /workflows/{workflow_id}/processes | type: string, format: uuid |
Responses#
Se for enviado um workflow_id inexistente, a rota retornará uma lista vazia.
- Schema
- Exemplo
Listar processos#
Lista todos os processos de acordo com os filtros enviados no corpo da chamada.
| Verbo | Path |
|---|---|
| POST | /processes/ |
Payload#
A rota aceita diversos campos de filtros e, cada um dos campos pode receber um valor único ou uma lista de valores.
Os campos dos filtros são opcionais e atuam de forma complementar.
- Schema
- Exemplo
Responses#
Se for enviado um workflow_id inexistente, a rota retornará uma lista vazia.
- Schema
- Exemplo
Consultar o estado atual de um processo#
Retorna o estado atual do processo.
| Verbo | Path | Formato |
|---|---|---|
| GET | /processes/{process_id} | type: string, format: uuid |
Responses#
Se for enviado um process_id inexistente, a rota retornará uma resposta 404.
- Schema
- Exemplo
Consultar histórico de estados do processo#
Esta rota retorna o histórico de todos os estados do processo até o estado atual.
O retorno dessa rota pode ser relativamente comprido, dependendo da quantidade de passos do processos e do tamanho da bag do processo. Não é recomendado utilizá-la caso o objetivo seja verificar o estado atual do processo.
| Verbo | Path | Formato |
|---|---|---|
| GET | /processes/{process_id}/history | type: string, format: uuid |
Responses#
Retorna uma lista de estados do processo, ordenados do mais recente para o mais antigo.
UPDATE#
NOTA
Essas rotas de atualização de processos só devem ser utilizadas em condições administrativas e desenvolvimento, o uso dessas rotas em condições de produção não são recomendadas.
Abortar processo#
A rota adiciona um estado interrupted no processo informado.
Se houver activity_managers em status started, estes serão atualizados para status interrupted.
| Verbo | Path | Formato |
|---|---|---|
| POST | /cockpit/processes/{process_id}/abort | type: string, format: uuid |
Responses#
| Código | Descrição | Body (Schema) |
|---|---|---|
| 200 | Proceso abortado | type: string |
| 404 | Processo não localizado | type: string |
Definir estado do processo#
Essa rota cria um estado ao processo.
Os dados necessários para criação do processo são:
- next_node_id
- result
- bag
A rota irá sobreescrever completamente a bag do processo pela bag informada no payload da request, sendo recomendada especial atenção aos dados informados.
O processo permanecerá pendente até que o comando de Retomar Processo seja enviado.
tip
O comando de Executar Processo não funciona caso o processo esteja no estado pendente.
| Verbo | Path | Formato |
|---|---|---|
| POST | /cockpit/processes/{process_id}/state | type: string, format: uuid |
Responses#
Uma resposta é gerada confirmando a recepção do chamada, recomenda-se a verificação do estado atual do processo usando as rotas de consulta antes de prosseguir com o comando de Retomar Processo
| Code | Description |
|---|---|
| 200 | Process state set |
| 404 | Process not found |
Retomar um processo#
Trata-se de uma rota equivalente a rota de Executar Processo, porém para uso exclusivo em processos cujo estado atual seja de pendente.
Ao receber esse comando o estado do processo é atualizado para running para que o ciclo de execução seja retomado.
| Verbo | Path | Formato |
|---|---|---|
| POST | /cockpit/processes/{process_id}/state/run | type: string, format: uuid |