Skip to main content

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#

VerboPathFormato
POST/workflows/{workflow_id}/createtype: string, format: uuid
POST/workflows/name/{workflow_name}/createtype: string

Responses#

Schema
{
"type": "object",
"properties": {
"process_id": { "type": "string", "format": "uuid" },
"process_url": { "type": "string", "format": "uri" }
}
}

Executar um processo#

Um processo quando criado, permanece com status UNSTARTED até que receba o comando de executar.

VerboPathFormato
POST/processes/{process_id}/runtype: 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#

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.

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.

VerboPathFormato
POST/workflows/name/{workflow_name}/starttype: string
POST/workflows/{workflow_id}/starttype: 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.

VerboPathFormato
GET/workflows/{workflow_id}/processestype: string, format: uuid

Responses#

Se for enviado um workflow_id inexistente, a rota retornará uma lista vazia.

{
"type": "array",
"items": {
"type": "object",
"properties": {
"id": { "type": "string", "format": "uuid" },
"created_at": { "type": "string", "format": "date-time" },
"workflow_id": { "type": "string", "format": "uuid" },
"state": {
"type": "object",
"properties": {
"id": { "type": "string", "format": "uuid" },
"created_at": { "type": "string", "format": "date-time" },
"process_id": { "type": "string", "format": "uuid" },
"step_number": { "type": "integer" },
"node_id": { "type": "string" },
"next_node_id": { "type": "string" },
"bag": { "type": "object" },
"external_input": { "type": "object" },
"result": { "type": "object" },
"error": { "type": "string" },
"status": { "type": "string" },
"actor_data": { "type": "object" },
"engine_id": { "type": "string", "format": "uuid" },
"time_elapsed": { "type": "integer" },
},
"current_state_id": { "type": "string", "format": "uuid" },
"current_status": { "type": "string" },
}
}
}
}

Listar processos#

Lista todos os processos de acordo com os filtros enviados no corpo da chamada.

VerboPath
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.

{
"type": "object",
"properties": {
"workflow_name": {
"oneOf": [{ "type": "string" }, { "type": "array", "items": { "type": "string" } }],
},
"workflow_id": {
"oneOf": [
{ "type": "string", "format": "uuid" },
{ "type": "array", "items": { "type": "string", "format": "uuid" } },
],
},
"process_id": {
"oneOf": [
{ "type": "string", "format": "uuid" },
{ "type": "array", "items": { "type": "string", "format": "uuid" } },
],
},
"current_status": {
"oneOf": [{ "type": "string" }, { "type": "array", "items": { "type": "string" } }],
},
"limit": { "type": "integer" },
"offset": { "type": "integer" },
}

Responses#

Se for enviado um workflow_id inexistente, a rota retornará uma lista vazia.

{
"type": "array",
"items": {
"type": "object",
"properties": {
"id": { "type": "string", "format": "uuid" },
"created_at": { "type": "string", "format": "date-time" },
"workflow_id": { "type": "string", "format": "uuid" },
"state": {
"type": "object",
"properties": {
"id": { "type": "string", "format": "uuid" },
"created_at": { "type": "string", "format": "date-time" },
"process_id": { "type": "string", "format": "uuid" },
"step_number": { "type": "integer" },
"node_id": { "type": "string" },
"next_node_id": { "type": "string" },
"bag": { "type": "object" },
"external_input": { "type": "object" },
"result": { "type": "object" },
"error": { "type": "string" },
"status": { "type": "string" },
"actor_data": { "type": "object" },
"engine_id": { "type": "string", "format": "uuid" },
"time_elapsed": { "type": "integer" },
},
"current_state_id": { "type": "string", "format": "uuid" },
"current_status": { "type": "string" },
}
}
}
}

Consultar o estado atual de um processo#

Retorna o estado atual do processo.

VerboPathFormato
GET/processes/{process_id}type: string, format: uuid

Responses#

Se for enviado um process_id inexistente, a rota retornará uma resposta 404.

{
"type": "object",
"properties": {
"id": { "type": "string", "format": "uuid" },
"created_at": { "type": "string", "format": "date-time" },
"workflow_id": { "type": "string", "format": "uuid" },
"state": {
"type": "object",
"properties": {
"id": { "type": "string", "format": "uuid" },
"created_at": { "type": "string", "format": "date-time" },
"process_id": { "type": "string", "format": "uuid" },
"step_number": { "type": "integer" },
"node_id": { "type": "string" },
"next_node_id": { "type": "string" },
"bag": { "type": "object" },
"external_input": { "type": "object" },
"result": { "type": "object" },
"error": { "type": "string" },
"status": { "type": "string" },
"actor_data": { "type": "object" },
"engine_id": { "type": "string", "format": "uuid" },
"time_elapsed": { "type": "integer" },
},
"current_state_id": { "type": "string", "format": "uuid" },
"current_status": { "type": "string" },
}
}
}

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.

VerboPathFormato
GET/processes/{process_id}/historytype: string, format: uuid
Responses#

Retorna uma lista de estados do processo, ordenados do mais recente para o mais antigo.

Schema da Resposta
{
"type": "array",
"items": {
"type": "object",
"properties": {
"id": { "type": "string", "format": "uuid" },
"created_at": { "type": "string", "format": "date-time" },
"process_id": { "type": "string", "format": "uuid" },
"step_number": { "type": "integer" },
"node_id": { "type": "string" },
"next_node_id": { "type": "string" },
"bag": { "type": "object" },
"external_input": { "type": "object" },
"result": { "type": "object" },
"error": { "type": "string" },
"status": {
"type": "string",
"enum": ["unstarted", "running", "waiting", "delegated", "interrupted", "finished"]
},
"actor_data": { "type": "object" },
"engine_id": { "type": "string", "format": "uuid" },
"time_elapsed": { "type": "integer" },
"node_name": { "type": "string" }
}
}
}

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.

VerboPathFormato
POST/cockpit/processes/{process_id}/aborttype: string, format: uuid
Responses#
CódigoDescriçãoBody (Schema)
200Proceso abortadotype: string
404Processo não localizadotype: 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.

VerboPathFormato
POST/cockpit/processes/{process_id}/statetype: 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

CodeDescription
200Process state set
404Process 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.

VerboPathFormato
POST/cockpit/processes/{process_id}/state/runtype: string, format: uuid