API REST do Process Management — áreas, definições publicadas, instâncias e tarefas — com a base, a autenticação e exemplos reais.
O process-management-api é o runtime dos processos: guarda as definições publicadas (motor Activiti), cria instâncias e gere tarefas. É o que o Process Management e as apps de execução usam — normalmente através do SDK TypeScript.
| Base (workspace) | http://<slug>:2575/gateway-api/<serviço>-process-management-api |
| Prefixo | Nenhum — os recursos ficam na raiz (/process-instances, não /api/v1/...) |
| Stack | Spring Boot 4.1 · Java 26 · Activiti · PostgreSQL (Flyway) |
| Documentação viva | OpenAPI do próprio serviço (springdoc) |
O <serviço> é o nome com que o serviço está registado no Eureka; no gateway a rota é /gateway-api/<nome-eureka>.
Autenticação
Todos os pedidos levam um JWT do Access Management:
Authorization: Bearer <token>Nas apps é o token do utilizador (sessão NextAuth). Entre serviços usa um token client_credentials — ver API M2M.
Áreas
| Método | Caminho | Descrição |
|---|---|---|
GET | /areas | Listar áreas |
POST | /areas | Criar área |
GET | /areas/{id} | Obter área |
PUT | /areas/{id} | Atualizar área |
DELETE | /areas/{id} | Eliminar área (e subáreas) |
GET | /areas/status | Estados possíveis |
GET | /areas/{areaId}/process-definitions | Processos da área |
POST | /areas/{areaId}/process-definitions | Associar processo à área |
DELETE | /areas/{areaId}/process-definitions/{processDefinitionId} | Desassociar |
Definições de processo
| Método | Caminho | Descrição |
|---|---|---|
GET | /process-definitions | Listar definições publicadas |
POST | /process-definitions/deploy | Publicar (chamado pelo Process Studio) |
POST | /process-definitions/import | Importar definição exportada |
GET | /process-definitions/{id}/export | Exportar (JSON com numeração, grupos e tarefas) |
DELETE | /process-definitions/{id}/archive | Arquivar |
POST | /process-definitions/{id}/unarchive | Desarquivar |
POST | /process-definitions/{id}/assign · /unassign | Grupos candidatos do processo |
GET | /process-definitions/{id}/artifacts | Artefactos (User Tasks e Form Keys) |
PUT | /process-definitions/{id}/artifacts/{taskKey} | Configuração de uma tarefa |
GET | /process-definitions/{id}/deployed-artifacts | Artefactos da versão publicada |
DELETE | /process-definitions/artifacts/{id} | Remover configuração de tarefa |
GET · POST | /process-definitions/{processDefinitionKey}/sequence | Numeração das instâncias |
GET · PUT | /process-definitions/{processKey}/priorities | Opções de prioridade |
DELETE | /process-definitions/priorities/{id} | Remover prioridade |
Instâncias
| Método | Caminho | Descrição |
|---|---|---|
POST | /process-instances | Criar e arrancar uma instância |
POST | /process-instances/create | Só criar |
POST | /process-instances/{id}/start | Arrancar uma instância criada |
POST | /process-instances/search | Pesquisar (filtros na query: number, name, procReleaseKey, status, applicationBase, dateFrom, dateTo, page, size) |
GET | /process-instances/{id} | Detalhe |
GET | /process-instances/{id}/task-status | Estado das tarefas da instância |
POST | /process-instances/{id}/cancel | Cancelar |
POST | /process-instances/event | Enviar um evento (mensagem/sinal) |
POST | /process-instances/{id}/timer/reschedule | Reagendar um timer |
GET | /process-instances/stats · /status | Contadores e estados |
Tarefas
| Método | Caminho | Descrição |
|---|---|---|
POST | /tasks-instances/search | Pesquisar tarefas (p.ex. ?processInstanceId=) |
POST | /tasks-instances/me | Tarefas do utilizador autenticado |
GET | /tasks-instances/{id} | Detalhe |
GET | /tasks-instances/{id}/variables | Variáveis e formulários da tarefa |
POST | /tasks-instances/{id}/claim | Assumir |
POST | /tasks-instances/{id}/unclaim | Libertar |
POST | /tasks-instances/{id}/assign | Atribuir a outro utilizador |
POST | /tasks-instances/{id}/save | Guardar dados sem concluir |
POST | /tasks-instances/{id}/complete | Concluir |
GET | /tasks-instances/stats · /stats/me · /status · /event_type | Contadores, estados e tipos de evento |
GET · PUT · DELETE | /tasks-instances/assignment-rules[/{id}] | Regras de atribuição |
Atividades
| Método | Caminho | Descrição |
|---|---|---|
GET | /activities/instances | Atividades (eventos) de uma instância |
GET | /activities/progress | Progresso |
GET | /activities/{id} | Detalhe |
Exemplos
Iniciar uma instância
curl -X POST "$PM/process-instances" \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{
"processKey": "registo-entidade",
"applicationBase": "registos",
"priority": 1,
"variables": [
{ "name": "nomeEntidade", "value": "Exemplo Serviços, Lda." }
]
}'processKey e applicationBase são obrigatórios; businessKey, priority, variables e assignmentRules são opcionais.
Concluir uma tarefa
curl -X POST "$PM/tasks-instances/$TASK_ID/complete" \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{
"variables": [
{ "name": "decision", "value": "CONFIRMAR" },
{ "name": "parecer", "value": "Documentação em ordem" }
],
"forms": []
}'variables vão para o processo (e para as condições dos gateways); forms guarda os dados do formulário associados à tarefa. save aceita o mesmo corpo.
Tarefas de uma instância
curl -X POST "$PM/tasks-instances/search?processInstanceId=$INSTANCE_ID" \
-H "Authorization: Bearer $TOKEN"Última atualização:
