Referência de Endpoints por Área
Integrar um sistema ao DATTA não deveria exigir engenharia reversa da interface. Esta página consolida, área por área, os endpoints citados nos guias da plataforma — com método, caminho e o que cada um faz — para que você monte sua integração consultando um único lugar. Autenticação, proteção CSRF e convenções gerais (formato JSON, campo error, permissões) estão na visão geral da API e valem para tudo o que segue.
Convenções desta página: segmentos variáveis aparecem como placeholders ({id}, {numero}, {taskId}); parâmetros de query relevantes são citados na descrição; endpoints marcados como servidor-a-servidor são pensados para integração entre sistemas, não para chamadas de navegador.
Busca, Chat & IA
Construa buscas semânticas, assistentes conversacionais e geração assistida por IA sobre o acervo do seu contexto.
| Método | Endpoint | O que faz |
|---|---|---|
| POST | /api/search/hybrid | Busca textual híbrida (léxica + vetorial + grafo, com fusão de rankings) |
| POST | /api/chat/stream | Resposta da IA em streaming (SSE) para a Busca/Chat |
| GET | /api/users/me/prompt | Lê o prompt personalizado do usuário logado (resolvido pelo token, nunca por parâmetro); sem prompt → {"customPrompt":""} |
| PUT | /api/users/me/prompt | Grava o prompt personalizado ({"customPrompt":"..."}; trim + truncamento em 8000 caracteres) |
| POST | /api/captain/sessoes/{id}/anexos | Anexa um documento à conversa do Captain (multipart, campo file); o texto extraído entra como contexto do objetivo. O arquivo original fica no bucket de staging (MinIO) por 24h; nada é indexado nem vetorizado |
| GET | /api/captain/sessoes/{id}/anexos/{indice}/arquivo | Baixa o arquivo original de um anexo, como foi enviado. 404 quando a retenção já expirou |
| POST | /api/captain/sessoes/{id}/objetivo | Monta o plano do Captain a partir de um objetivo em linguagem natural; progresso via SSE. Não executa nada |
| POST | /api/captain/sessoes/{id}/confirmar | Executa o plano confirmado (SSE, passo a passo). Único ponto onde uma escrita nasce; exige CAPTAIN_EXECUTE |
| POST | /api/llm/chat/sync | Chamada síncrona ao modelo de linguagem; header X-LLM-Lane: batch seleciona a fila de baixa prioridade (sem header = interativa) |
| POST | /api/embeddings/batch | Gera embeddings em lote (servidor-a-servidor; usado p. ex. na deduplicação semântica de regras) |
| POST | /api/siql/semantic/nl-to-sql | Converte pergunta em português em SQL ({question, workspace?, modelId?}); limite de 30 chamadas/hora |
| POST | /api/siql/events/ingest | Recebe eventos de consulta do motor analítico pelo caminho alternativo, quando a publicação no fluxo de eventos falha (servidor-a-servidor) |
| GET | /api/search/node-text | Resolve o texto integral de um item indexado a partir de ponteiro (?index=&id=); servidor-a-servidor, restrito aos índices da plataforma |
curl -X PUT "$BASE/api/users/me/prompt" \
-H "Authorization: Bearer $TOKEN" \
-H "X-Requested-With: XMLHttpRequest" \
-H "Content-Type: application/json" \
-d '{"customPrompt": "Responda sempre com referências normativas."}'Documentos & Ingestão
Automatize a entrada de conteúdo — URLs de legislação, fontes de jurisprudência, atualizações de contexto — e a remoção controlada de processos.
| Método | Endpoint | O que faz |
|---|---|---|
| POST | /api/upload/extrair-texto | Devolve o TEXTO de um documento enviado (multipart, campo file; ?maxCaracteres= corta na origem) — sem ingerir, indexar ou vetorizar. Exige DOCUMENT_EXTRACT_TEXT; formato fora da whitelist volta 422 com mensagem acionável |
| POST | /api/ingest-url/start | Inicia ingestão de URL (legislação, HTML, arquivos); retorna {taskId} imediato |
| GET | /api/ingest-url/status/{taskId} | Status, porcentagem e fase da ingestão de URL (polling ~2 s) |
| POST | /api/ingest-url/cancel/{taskId} | Cancela a ingestão de URL em andamento |
| POST | /api/pipelines/{id}/execute | Dispara a carga de jurisprudência — cada fonte oficial é um pacote do Datta Extract; corpo opcional {parametros:{...}} |
| POST | /api/contexts/{ctx}/update | "Atualizar contexto" (retoma de onde parou); {force:true} reprocessa integralmente |
| GET | /api/contexts/{ctx}/update/status/{taskId} | Progresso e relatório da atualização (diferenças, desvios) |
| DELETE | /api/processos | Exclui o processo e o subgrafo próprio (?numero=&domain=; corpo {justificativa} obrigatório). Forma canônica — é a única que alcança número com barra, como a numeração de tribunal superior (AREsp 1.627.029/RS) |
| DELETE | /api/processos/{numero} | Mesma exclusão com o número no endereço. Mantida para integrações já escritas; não alcança número com barra |
| GET | /api/processos/documentos | Lista os documentos (com PDF) do processo (?numero=&domain=&prefix=). Forma canônica; a variante /api/processos/{numero}/documentos não alcança número com barra |
| DELETE | /api/search/chunks/by-processo | Remove os trechos indexados do processo na base de busca (?processoNumero=&domain=; corpo opcional {documentCodes[]}; idempotente) |
| GET | /api/documents/dossie/{cnpj}/pdfs.zip | Baixa um ZIP com todos os PDFs do dossiê ligados ao CNPJ (?domain= do contexto) |
| GET | /api/documents/processo/pdfs.zip | Baixa um ZIP com todos os PDFs do processo (?numero=&domain=&prefix=). Forma canônica; a variante /api/documents/processo/{numero}/pdfs.zip não alcança número com barra |
Triagem & Regras
Dispare triagens em lote ou individuais, acompanhe o progresso em tempo real e gerencie o ciclo de vida completo das regras — inclusive geração por IA.
| Método | Endpoint | O que faz |
|---|---|---|
| POST | /api/audit/batch/start | Inicia a triagem em lote ({reprocess, apenasRegrasNovas, domain} → {taskId, total, ...}) |
| GET | /api/audit/batch/stream | Progresso por processo via SSE (consumir com fetch + Bearer, não EventSource; heartbeat 15 s) |
| GET | /api/audit/batch/status | Status/reconciliação da triagem em lote (mesma fonte do painel de execuções) |
| POST | /api/audit/batch/cancel | Cancela a triagem em lote em andamento |
| POST | /api/audit/single | Reprocessa a triagem de um processo individual |
| GET | /api/audit/details | Detalhe da auditoria + resumo do processo (?numero=&domain= — número vai em query por conter /) |
| GET | /api/alerts | Lista os alertas do contexto (?context=&status=&severidade=&page=&size=; ordena por severidade e depois por recência) |
| GET | /api/alerts/{alertaId} | Detalhe de um alerta, com a análise que o originou |
| POST | /api/alerts/{alertaId}/status | Move o estado do alerta ({status, justificativa}; descartar exige justificativa, e cada transição vira registro) |
| GET | /api/alerts/acoes | Histórico das transições dos alertas do contexto (quem moveu, quando e por quê) |
| POST | /api/alerts/backfill | Reprojeta como alertas as triagens já concluídas do contexto (?context=; idempotente, sem LLM — a análise já está gravada) |
| GET | /api/rules | Lista regras de triagem (?contexto= filtra) |
| POST | /api/rules | Cria regra |
| PUT | /api/rules/{numero} | Atualiza/move regra |
| DELETE | /api/rules/{numero} | Exclui regra |
| PATCH | /api/rules/{numero}/toggle | Ativa/desativa regra |
| GET | /api/rules/{numero}/versoes | Histórico de versões da regra ou critério (autor, data e motivo de cada alteração) |
| GET | /api/rules/{numero}/interpretacao | Leitura da regra feita pelo LLM: intenção, critérios, paráfrases e evidência esperada |
| POST | /api/rules/{numero}/interpretacao | Regera a leitura sob demanda (best-effort, em segundo plano) |
| GET | /api/rules/niveis-anomalia | Níveis de anomalia com os tipos aninhados (?contexto= filtra os tipos) |
| GET | /api/rules/niveis-anomalia/tipos | Nomes dos tipos ativos de um contexto (?contexto= obrigatório) |
| POST | /api/rules/niveis-anomalia | Cria nível de anomalia |
| PUT | /api/rules/niveis-anomalia/{chave} | Atualiza nível |
| DELETE | /api/rules/niveis-anomalia/{chave} | Exclui nível (recusa os padrão e os que ainda têm tipos) |
| POST | /api/rules/niveis-anomalia/{chave}/tipos | Cria tipo de anomalia no nível |
| PUT | /api/rules/niveis-anomalia/{chave}/tipos/{id} | Atualiza tipo (trocar de nível move o vínculo) |
| DELETE | /api/rules/niveis-anomalia/{chave}/tipos/{id} | Exclui tipo |
| GET | /api/rules/{numero}/versoes/{versao} | Texto exato de uma versão específica da regra ou critério |
| POST | /api/rules/test-references | Testa referências normativas de uma regra ({regraTexto, regraContexto[]} → {references[], total_found, total_missing}) |
| POST | /api/rules/delete-all | Apaga TODAS as regras do contexto ({contexto, motivo}; permissão administrativa dedicada) |
| POST | /api/rules/generate | Gera regras de triagem com IA ({contexto, descricao, quantidade, todas} → {status:"RUNNING", taskId}) |
| GET | /api/rules/generate/stream/{taskId} | Progresso da geração em tempo real (SSE) |
| GET | /api/rules/generate/status/{taskId} | Status da geração (permite retomar ao reabrir a página) |
| POST | /api/rules/generate/cancel/{taskId} | Cancela a geração de regras |
| GET | /api/rules/generate/active | Gerações de regras em andamento |
| GET | /api/rules/generate/recent | Últimas gerações de regras finalizadas |
curl -X POST "$BASE/api/rules/generate" \
-H "Authorization: Bearer $TOKEN" \
-H "X-Requested-With: XMLHttpRequest" \
-H "Content-Type: application/json" \
-d '{"contexto": "CPC", "descricao": "prazos recursais", "quantidade": 5}'Recursos & Peças
Gere peças recursais fundamentadas por IA e converta o resultado em documento editável.
| Método | Endpoint | O que faz |
|---|---|---|
| POST | /api/chat/recurso | Gera a peça recursal (processoNumero, tipoRecurso, fundamentacao, chatContext, model, provider, domain); limite ~20 chamadas/hora |
| POST | /api/chat/recurso/docx | Converte a peça já gerada em .docx (content, tipoRecurso, processoNumero); não chama a IA novamente |
curl -X POST "$BASE/api/chat/recurso" \
-H "Authorization: Bearer $TOKEN" \
-H "X-Requested-With: XMLHttpRequest" \
-H "Content-Type: application/json" \
-d '{"processoNumero": "0001234-56.2024.8.26.0100", "tipoRecurso": "apelacao", "fundamentacao": "cerceamento de defesa"}'Catálogo & Conhecimento
Publique e governe datasets no Knowledge Catalog, conduza a curadoria dos ativos de conhecimento e mantenha glossário e prompts de domínio.
| Método | Endpoint | O que faz |
|---|---|---|
| POST | /api/catalog/datasets/upsert | Registra/atualiza um dataset no Knowledge Catalog (estatísticas + semântica por coluna; também chamado pela catalogação automática) |
| GET | /api/catalog/lineage/graph | Grafo de linhagem (dashboard, chart, dataset, processo, coluna) |
| POST | /api/catalog/lineage/edges/by-name | Grava arestas de linhagem de forma idempotente |
| GET | /api/catalog/classifications | Lista os 5 níveis de classificação de dados |
| GET | /api/catalog/datasets/{id}/ownership | Lê o ownership atual (dono, curador, classificação) |
| PUT | /api/catalog/datasets/{id}/ownership | Atribui/substitui ownership ({ownerId, stewardId, classification}) |
| DELETE | /api/catalog/datasets/{id}/ownership | Remove ownership (volta ao padrão INTERNAL) |
| POST | /api/catalog/datasets/{id}/classify | Classificação automática (heurística de PII + IA), preservando dono/curador |
| GET | /api/catalog/datasets/by-classification | Lista datasets por nível (?level=PII; relatórios LGPD) |
| GET | /api/catalog/sources/grouped | Agregado das fontes de dados disponíveis em todos os motores (?type=all) |
| POST | /api/catalog/sources/invalidate | Força o refresh do agregador de fontes |
| GET | /api/knowledge/assets | Lista ativos de conhecimento paginados (filtros dominio, tipo, status, page, size) |
| GET | /api/knowledge/assets/{id} | Detalhe de um ativo com rastreabilidade completa (documento de origem, trechos, modelo, versão, aprovador) |
| POST | /api/knowledge/assets/generate | Dispara geração de ativos em lote ({dominio, documentCodes?, tipos?}); 202 + {taskId}; máx. 50 documentos por lote |
| GET | /api/knowledge/assets/generate/stream/{taskId} | Progresso da geração via SSE (fase, total, processados, falhas, ativos gerados) |
| POST | /api/knowledge/assets/{id}/regenerate | Re-geração pontual (nova versão do mesmo documento/tipo); 202 + {taskId} |
| PUT | /api/knowledge/assets/{id}/status | Transição de status (`{status: "APPROVED"\ |
| PUT | /api/knowledge/assets/{id}/conteudo | Persiste edição humana do conteúdo (mantém DRAFT, marca edição humana; valida citações) |
| GET | /api/knowledge/assets/{id}/fonte | Ativo + trechos-fonte citados, para revisão lado a lado |
| GET | /api/knowledge/assets/{id}/diff | Diferença entre a versão atual e a última aprovada |
| PUT | /api/knowledge/assets/status-lote | Aprovação/rejeição em lote ({ids, status, reason}, máx. 200 ids; resultado parcial por item) |
| DELETE | /api/knowledge/assets/{id} | Exclui ativo em DRAFT/REJECTED (nunca um aprovado) |
| GET | /api/knowledge/review-queue/fontes | Documentos fora da origem esperada aguardando decisão humana (?dominio=) |
| GET | /api/knowledge/metrics/overview | Indicadores da base de conhecimento (funil, backlog, qualidade da geração, últimos lotes) |
| GET | /api/catalog/glossary/terms | Lista termos de glossário (?status=DRAFT; com proveniência do documento de origem) |
| PUT | /api/catalog/glossary/terms/{id} | Edição inline da definição de um termo |
| PUT | /api/catalog/glossary/status-lote | Aprovação/rejeição de termos em lote (máx. 500 ids); propaga ao chat em ≤ 5 min |
| GET | /api/knowledge-prompt/{tipo} | Lê o prompt de conhecimento do domínio (tipo: doc, faq, glossary, tone; ?domain=) |
| POST | /api/knowledge-prompt/{tipo} | Customiza o prompt do domínio (?domain=) |
| POST | /api/knowledge-prompt/{tipo}/reset | Restaura o prompt padrão do domínio (?domain=) |
curl -X POST "$BASE/api/knowledge/assets/generate" \
-H "Authorization: Bearer $TOKEN" \
-H "X-Requested-With: XMLHttpRequest" \
-H "Content-Type: application/json" \
-d '{"dominio": "CPC"}'Conexões & Drivers
Cadastre fontes de dados externas de forma idempotente — toda conexão criada dispara catalogação automática — e administre os drivers que as suportam.
| Método | Endpoint | O que faz |
|---|---|---|
| POST | /api/connections | Cria conexão explicitamente (sem deduplicação) |
| POST | /api/connections/ensure | Cria ou reusa conexão de forma idempotente (deduplicação por fingerprint de tipo+host+porta+banco+usuário, sem credencial) |
| GET | /api/connections | Lista conexões visíveis ao usuário (?orphan=true lista órfãs; admin) |
| GET | /api/connections/{id} | Detalhe da conexão |
| POST | /api/connections/test-without-save | Testa a configuração antes de persistir |
| POST | /api/connections/{id}/test | Testa uma conexão existente |
| POST | /api/connections/{id}/scan | Recatalogação manual — enfileira nova varredura de catalogação (admin) |
| GET | /api/connections/{id}/scan/status | Estado da varredura de catalogação em andamento |
| GET | /api/connections/{id}/scan/events | Progresso da catalogação via SSE |
| POST | /api/connections/{id}/bindings | Reatribui credencial/vínculo a um usuário (conexão órfã) |
| GET | /api/connections/{id}/monitoring | Lê agenda, janela e política da fonte monitorada |
| PUT | /api/connections/{id}/monitoring | Grava agenda, janela e política da fonte monitorada |
| POST | /api/connections/{id}/check-now | Dispara verificação imediata; 202 + {syncId, status, historyUrl}; 409 se já há sincronização em andamento; limite 10/hora por usuário |
| GET | /api/connections/{id}/sync-history | Histórico paginado de sincronizações (?page=&size=, size 1–100) |
| DELETE | /api/connections/{id} | Revoga a conexão (datasets já catalogados permanecem) |
| GET | /api/drivers | Lista drivers instalados (?status= filtra) |
| GET | /api/drivers/catalog | Catálogo oficial de drivers aprovados |
| POST | /api/drivers/upload | Upload de driver + metadados; passa por pipeline de validação (bytecode, vulnerabilidades, assinatura, teste de carga) |
| POST | /api/drivers/bootstrap | Instala em lote os drivers oficiais de download automático |
| GET | /api/drivers/{id}/usages | Conexões que usam o driver |
| POST | /api/drivers/{id}/fetch-docs | Reingesta a documentação do fabricante (202; tarefa em segundo plano) |
| GET | /api/drivers/{id}/docs-status | Progresso da ingestão de documentação (RUNNING/COMPLETED/FAILED) |
Painéis & DATTA BI
Monte workspaces, publique dashboards, renderize visuais com filtros e drill, e acione os copilots de BI — tudo o que o editor faz, via API.
| Método | Endpoint | O que faz |
|---|---|---|
| GET | /api/config/panels | Catálogo achatado dos painéis da plataforma (nativos, canvas e dashboards BI) — escopado à visibilidade de workspace do usuário |
| GET | /api/config/workspaces | Lista os workspaces visíveis ao usuário (admin/S2S vê todos; workspace sem membros é público; com membros, só membros e owner) |
| GET | /api/config/workspaces/{id} | Detalhe de um workspace visível; workspace restrito de que o usuário não é membro responde 404 |
| PUT | /api/config/workspaces/{id}/panel-refs | Define os painéis vinculados por referência ({"panelRefs":[{"workspaceId","panelId"}]}; valida e deduplica; referência inválida → 400) |
| POST | /api/config/workspaces/{id}/panels | Cria painel de canvas / publica dashboard BI no workspace (kind: "dattabi-dashboard") |
| PUT | /api/config/workspaces/{id}/panels/{panelId} | Salva título/configuração do painel |
| GET | /api/config/panel/{domain}/datasources | Fontes disponíveis no contexto (construtor de painéis) |
| POST | /api/config/panel/{domain}/fields | Campos da fonte selecionada (_all_ como domínio na criação rápida) |
| POST | /api/config/panel/{domain}/tables | Tabelas da fonte selecionada |
| POST | /api/config/panel/{domain}/aggregate | Dados agregados para renderização de painel (leitura via POST — parâmetros no corpo) |
| POST | /api/config/panel/{domain}/preview | Preview de dados reais para tabelas |
| GET | /api/datalayer-admin/kafka/topics | Lista tópicos de streaming disponíveis (criação rápida) |
| GET | /api/dattabi/workspaces | Lista workspaces do DATTA BI |
| GET | /api/dattabi/workspaces/{id}/shares | Lista usuários com acesso ao workspace + papel |
| PUT | /api/dattabi/workspaces/{id}/shares/{userId} | Define o papel do compartilhamento (`{role: "view"\ |
| DELETE | /api/dattabi/workspaces/{id}/shares/{userId} | Remove o compartilhamento do workspace |
| GET | /api/dattabi/workspaces/{id}/themes | Lista temas do workspace |
| GET | /api/dattabi/dashboards | Lista dashboards (?workspaceId=&includeArchived=; workspaceId vazio → []) |
| POST | /api/dattabi/dashboards | Cria dashboard |
| PATCH | /api/dattabi/dashboards/{id} | Atualização parcial (merge de campos não-nulos: título, descrição, layouts, modelo, filtros, páginas, tema); usada pelo auto-save |
| GET | /api/dattabi/dashboards/{id}/versions | Lista versões do dashboard |
| POST | /api/dattabi/dashboards/{id}/restore | Restaura a última versão |
| GET | /api/dattabi/dashboards/{id}/export.pdf | Exporta o dashboard (também .png, .csv, .svg) |
| POST | /api/dattabi/dashboards/{id}/share | Cria link de compartilhamento |
| GET | /api/dattabi/shares/public | Consome link de compartilhamento (?t=<token>&p=) |
| DELETE | /api/dattabi/shares/{id} | Revoga link de compartilhamento |
| GET | /api/dattabi/dashboards/{id}/thumbnail.png | Miniatura do dashboard (header `X-Thumb-Source: snapshot\ |
| PUT | /api/dattabi/dashboards/{id}/thumbnail | Publica o screenshot real da miniatura |
| POST | /api/dattabi/dashboards/{id}/render | Re-renderiza o dashboard com overrides (filtro cruzado) |
| POST | /api/dattabi/charts/{id}/render-drilled | Renderiza um chart com drill ({overrides, bindingsOverride}) |
| POST | /api/dattabi/copilot/chat | Copilot do editor (SSE) |
| POST | /api/dattabi/dashboards/{id}/copilot/ask | Copilot do dashboard publicado (SSE) |
| POST | /api/dattabi/dashboards/{id}/copilot/narrative | Gera narrativa executiva do dashboard |
| GET | /api/dattabi/dashboards/{id}/copilot/suggestions | Sugestões de perguntas do copilot |
| POST | /api/dattabi/copilot/quick-dashboard | Criação rápida (precedência customQuery > sources[] > fonte única legada) |
| POST | /api/dattabi/copilot/generate-dashboard | Gera dashboard por linguagem natural ({prompt, datasetIds?, persist?, workspaceId?}) |
| GET | /api/dattabi/datasets | Lista datasets do workspace (?workspaceId=; filtrado por permissão) |
| GET | /api/dattabi/datasets/{id} | Consulta dataset (campo loadMode: IMPORT \ |
| POST | /api/dattabi/datasets | Cria dataset (também usado pelo DATTA Prep para persistir cada consulta) |
| POST | /api/dattabi/models | Cria modelo semântico agrupando consultas |
| POST | /api/dattabi/models/{modelId}/datasets/{datasetId} | Liga um dataset ao modelo |
| POST | /api/dattabi/prep/profile | Perfil estatístico por coluna ({datasetRef, steps, sample?}) |
| POST | /api/dattabi/copilot/r/suggest | Gera script R por linguagem natural |
| GET | /api/dattabi/copilot/r/packages | Lista pacotes R habilitados |
| POST | /api/dattabi/r/execute | Executa script R sobre amostra do dataset |
| POST | /api/dattabi/dattax/validate | Valida sintaxe DATTAX (aba Consulta personalizada) |
| POST | /api/dattabi/refresh-jobs/{id}/run-now | Dispara refresh imediato de dataset materializado |
| GET | /api/config/maps-api-key | Chave de mapas para visuais georreferenciados (compartilhada entre BI, Chat e Investigar) |
curl -X POST "$BASE/api/dattabi/copilot/generate-dashboard" \
-H "Authorization: Bearer $TOKEN" \
-H "X-Requested-With: XMLHttpRequest" \
-H "Content-Type: application/json" \
-d '{"prompt": "Painel de processos por classe e por mês", "persist": true}'Pipelines & Execuções
Execute scripts DATTAX, assine streams em tempo real, controle o ciclo de vida de pipelines e acompanhe qualquer execução em segundo plano.
| Método | Endpoint | O que faz |
|---|---|---|
| POST | /api/dattax/execute | Executa script DATTAX avulso (progresso via SSE da própria chamada) |
| GET | /api/dattax/stdlib | Catálogo da biblioteca padrão DATTAX (alimenta o autocomplete do editor) |
| POST | /api/dattax/stream/subscribe | Cria assinatura de stream DATTAX; retorna {subscriptionId, feasibility, sseUrl, wsUrl} |
| GET | /api/dattax/stream | Lista assinaturas de stream ativas |
| GET | /api/dattax/stream/{id}/events | Eventos da assinatura via SSE (fallback do WebSocket) |
| GET | /api/dattax/stream/{id}/lag | Métricas de atraso da assinatura de stream |
| DELETE | /api/dattax/stream/{id} | Cancela a assinatura de stream |
| WS | /ws/dattax/stream/{id} | Canal primário (WebSocket) de eventos do stream |
| GET | /api/pipelines/summary | Lista paginada dos pacotes de extração (24 por página) com facetas de origem, situação e integração |
| GET | /api/pipelines/stats | Indicadores agregados da galeria de pacotes (total, em execução, agendados, executados hoje, taxa de sucesso) |
| GET | /api/pipelines/quick/capabilities | Combinações de origem e destino que a Extração Rápida sabe executar diretamente |
| POST | /api/pipelines/quick/preview | Converte as escolhas do assistente rápido no desenho do pipeline, sem gravar nem executar |
| GET | /api/pipelines/{id}/dattax | Converte a definição visual do pipeline em script DATTAX |
| POST | /api/pipelines/{id}/{acao} | Ciclo de vida do pipeline (acao: pause, resume, archive, activate) |
| GET | /api/etl/jobs | Cargas DATTA Extract / ETL (em andamento e finalizadas) |
| GET | /api/tasks | Execuções em andamento do hub de tarefas (ingestões, uploads) |
| GET | /api/tasks/all | Histórico das últimas tarefas finalizadas (?limit=10) |
| GET | /api/tasks/stream | Estado vivo das execuções via SSE (atualização a cada 5 s) |
| POST | /api/search/executions | Grava registro terminal de execução (servidor-a-servidor) |
| GET | /api/search/executions/history | Lê o histórico durável de execuções (?from=&to= em epoch ms, limit até 1000) |
Processos BPM
Publique modelos de processo, crie instâncias e correlacione mensagens a eventos BPMN a partir dos seus sistemas.
Gerenciar modelos exige a permissão BPMN_DEPLOY (ou perfil administrador). Modelo publicado é imutável: para alterá-lo, abra uma nova versão.
| Método | Endpoint | O que faz |
|---|---|---|
| POST | /api/bpmn/modelos | Cria/importa um modelo BPMN a partir do XML |
| PUT | /api/bpmn/modelos/{id} | Edita o modelo enquanto ele não foi publicado |
| DELETE | /api/bpmn/modelos/{id} | Remove o modelo |
| POST | /api/bpmn/modelos/{id}/publicar | Publica o modelo, tornando-o executável e imutável |
| POST | /api/bpmn/modelos/{id}/nova-versao | Abre nova versão editável a partir do modelo publicado |
| POST | /api/bpmn/modelos/{id}/auto-iniciar | Configura o início automático de instâncias do modelo |
| GET | /api/bpmn/modelos/{id}/contexto/previa | Prévia da troca de contexto (destino=): contagens (incluindo instanciasSeguindoContextoAtivo, que nunca são migradas) e os pares banco/label/propriedade dos dois lados; não escreve nada |
| PUT | /api/bpmn/modelos/{id}/contexto | Reaponta o contexto do modelo e, com migrarInstancias, o das instâncias dele ({contexto, migrarInstancias, motivo}; motivo obrigatório) |
| POST | /api/bpmn/instancias | Cria instância de processo BPM ({modeloId, chaveNegocio, titulo, variaveis}) |
| POST | /api/bpmn/mensagens | Publica mensagem correlacionada para eventos de mensagem BPMN ({nome, correlacao, variaveis} → {entregues}) |
| DELETE | /api/bpmn/instancias/por-contexto | Exclui as instâncias BPM de um contexto purgado (cancela as ativas) |
| GET | /api/bpmn/instancias | Lista instâncias; aceita modeloId, status, chaveNegocio, responsavel (use __sem__ para as sem responsável), pagina, tamanho |
| PUT | /api/bpmn/instancias/{id}/responsavel | Define ou troca o responsável pela instância ({responsavel}; vazio libera). Exige BPMN_EXECUTE |
| PUT | /api/bpmn/instancias/responsavel-por-chave | Propaga o responsável para todas as instâncias de uma chave de negócio (?chave=, corpo {responsavel}) |
| POST | /api/bpmn/instancias/backfill-responsaveis | Preenche o responsável das instâncias antigas a partir das atribuições vigentes (idempotente) |
| GET | `/api/bpmn/relatorios/{resumo\ | fases\ |
curl -X POST "$BASE/api/bpmn/instancias" \
-H "Authorization: Bearer $TOKEN" \
-H "X-Requested-With: XMLHttpRequest" \
-H "Content-Type: application/json" \
-d '{"modeloId": "triagem-processo", "chaveNegocio": "0001234-56.2024.8.26.0100", "titulo": "Triagem do processo", "variaveis": {}}'Usuários, Permissões & Contextos
Provisione contas, atribua perfis e permissões, administre contextos de domínio e execute limpezas controladas.
| Método | Endpoint | O que faz |
|---|---|---|
| POST | /api/auth/register | Cadastro de usuário local (login obrigatório, com validação de campos) |
| POST | /api/auth/login | Autentica por e-mail OU login no mesmo campo |
| GET | /api/auth/users/{email} | Consulta a conta (e-mail é a chave canônica) |
| PUT | /api/auth/users/{email} | Atualiza a conta |
| DELETE | /api/auth/users/{email} | Remove a conta |
| PUT | /api/auth/users/{email}/role | Define o perfil (role) do usuário |
| PUT | /api/auth/users/{email}/permissions | Concede permissões diretas ao usuário |
| POST | /api/auth/jupyter-cookie | Emite cookie HttpOnly de sessão para o ambiente de Notebook |
| POST | /api/users/atribuir | Atribui o processo a um usuário (?processoNumero=; corpo {email}, contexto opcional). A gravação acontece no contexto em que o processo existe; 404 nomeia o contexto consultado e 409 pede o contexto quando o número existe em mais de um. Exige USERS_EDIT. Forma canônica — é a única que alcança número com barra |
| POST | /api/users/atribuir/{processoNumero} | Mesma atribuição com o número no endereço. Mantida para integrações já escritas; não alcança número com barra |
| GET | /api/contextos | Lista os contextos cadastrados (forma enxuta: chave e rótulo); usada por instaladores e integrações para descobrir o que existe |
| GET | /api/contextos/list | Lista os contextos com os detalhes completos de cada um |
| GET | /api/contextos/active | Contexto ativo no momento |
| GET | /api/contextos/{nome} | Detalhe de um contexto específico |
| GET | /api/config/domain/list | Lista contextos configurados (chave, rótulo, tipo, fontes de dados) |
| GET | /api/config/domain/{nome} | Contexto + fontes de dados + base de código processual (quando definida) |
| PUT | /api/config/domain/{nome} | Atualiza o contexto (fontes de dados, flag de consumo de ativos de conhecimento pelo chat; campo vazio limpa, ausente preserva) |
| GET | /api/config/rule-contexts-merged | Contextos de regra + rótulos {contexts, labels}, já filtrados pela visibilidade |
| GET | /api/prompts/domains/active | Contexto ativo da plataforma (fallback do frontend para resolver domain) |
| GET | /api/config/feature-visible-contexts | Mapa completo funcionalidade → contextos visíveis |
| GET | /api/config/feature-visible-contexts/{feature} | Contextos visíveis de uma funcionalidade (allowlist: dattabi, extract, ontology) |
| POST | /api/config/feature-visible-contexts/{feature} | Grava a lista de contextos da funcionalidade (lista vazia = todos visíveis) |
| GET/POST | /api/config/rules-visible-contexts | Visibilidade de contextos no Painel de Regras (legado) |
| GET/POST | /api/config/upload-pdf-visible-contexts | Visibilidade de contextos no Upload PDF (legado) |
| GET/POST | /api/config/upload-url-visible-contexts | Visibilidade de contextos no Upload URL (legado) |
| POST | /api/documents/context/purge | Orquestra o purge completo do contexto (?domain=&reason=; permissão sensível) |
| POST | /api/graph/context/purge | Purge do grafo do contexto (?domain=; valida o alvo contra bases de sistema; cascateia ao BPM) |
| POST | /api/search/admin/context/purge | Apaga os índices de busca do contexto (?domain=) |
MCP & Integrações Externas
Conecte agentes de IA externos às ferramentas do DATTA via protocolo MCP (JSON-RPC 2.0 + SSE), com observabilidade das invocações.
| Método | Endpoint | O que faz |
|---|---|---|
| GET | /api/mcp/tools | Lista as ferramentas MCP registradas (nome, schema, permissão) |
| GET | /api/mcp/sessions | Sessões SSE ativas |
| GET | /api/mcp/invocations | Invocações recentes (?limit=200; usuário, ferramenta, duração, resultado) |
| GET | /api/mcp/info | Informações do servidor MCP (uso servidor-a-servidor) |
| POST | /mcp/rpc | Canal JSON-RPC 2.0 do MCP (Authorization: Bearer) |
| GET | /mcp/sse | Canal SSE do MCP; o evento endpoint devolve a URL de mensagens da sessão (/mcp/sse/messages?sessionId=...) |
curl -X POST "$BASE/mcp/rpc" \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{"jsonrpc": "2.0", "id": 1, "method": "tools/list"}'Exportação de Conhecimento & Contas de Serviço
Leve o conhecimento curado do DATTA para sistemas externos — assistentes próprios, portais, buscadores — por um canal com identidade própria, separada das contas de pessoas.
Contas de serviço
Integrações não usam a conta de um usuário: você cria uma conta de serviço com escopo de contextos e troca as credenciais por um token de acesso. O segredo é exibido uma única vez, na criação — guarde-o no seu cofre.
| Método | Endpoint | O que faz |
|---|---|---|
| POST | /api/auth/service-accounts | Cria a conta com escopo de contextos ({nome, descricao, dominios[]}); devolve o identificador e o segredo, este último exibido só agora |
| GET | /api/auth/service-accounts | Lista as contas de serviço existentes |
| DELETE | /api/auth/service-accounts/{id} | Revoga a conta; corpo {reason} obrigatório, idempotente, efeito propagado em até 60 s |
| POST | /api/auth/service-accounts/token | Troca identificador + segredo por um token com o escopo da conta; limite de 10 chamadas/minuto por identificador e origem |
| GET | /api/auth/service-accounts/{id}/status | Consulta a situação da conta (uso servidor-a-servidor para checar revogação) |
Credencial inválida e conta revogada devolvem a mesma resposta de erro no pedido de token — a diferença não é revelada de propósito. Para saber se uma conta foi revogada, consulte a listagem.
Exportação por contexto
Base: /api/knowledge/export/{contexto}/.... Só conteúdo aprovado é exportado. Comece pelo manifesto: ele traz o inventário por coleção e uma versão de snapshot que serve de validador de cache — repetindo a chamada com esse validador, você recebe "sem novidades" em vez do conteúdo inteiro.
| Método | Endpoint | O que faz |
|---|---|---|
| GET | /api/knowledge/export/{contexto}/manifest | Inventário por coleção + versão do snapshot; devolve "não modificado" quando você informa a versão que já tem |
| GET | /api/knowledge/export/{contexto}/documentos | Documentos otimizados aprovados (`?format=json\ |
| GET | /api/knowledge/export/{contexto}/faq | Pares de pergunta e resposta aprovados (?since=) |
| GET | /api/knowledge/export/{contexto}/glossario | Termos de glossário aprovados (?since=) |
| GET | /api/knowledge/export/{contexto}/chunks | Trechos vigentes em fluxo contínuo, paginados por cursor (?includeEmbeddings=) |
| GET | /api/knowledge/export/{contexto}/bundle | Pacote zip com manifesto, documentos, perguntas e glossário de uma vez |
Para sincronização incremental, guarde o instante da última exportação e passe-o em since: as coleções devolvem apenas o que mudou desde então.
TOKEN=$(curl -s -X POST "$BASE/api/auth/service-accounts/token" \
-H "Content-Type: application/json" \
-d '{"clientId": "'"$CLIENT_ID"'", "clientSecret": "'"$CLIENT_SECRET"'"}' | jq -r .accessToken)
curl -s "$BASE/api/knowledge/export/MEC/manifest" \
-H "Authorization: Bearer $TOKEN"Configuração & Utilitários
Ajustes de plataforma consumíveis por API: modelos de IA, chaves de fontes externas, documentação restrita e navegação no armazenamento de objetos.
| Método | Endpoint | O que faz |
|---|---|---|
| POST | /api/config/thinking-model | Grava o modelo de raciocínio da etapa de seleção de ferramenta do chat (escolha de plataforma, vale para todos os contextos) |
| GET/POST | /api/config/datajud-url | Lê/grava a URL base do DataJud (dinâmico, sem reimplantação) |
| GET/POST | /api/config/datajud-key | Lê/grava a chave pública do CNJ (mascarada após salva) |
| GET | /api/config/internal/datajud-key | Leitura servidor-a-servidor da chave DataJud |
| GET | /api/docs/{caminho} | Serve manifesto + conteúdo da seção restrita do Portal de Documentação (autenticado) |
| GET | /api/platform/minio/browser/buckets | Lista buckets do armazenamento de objetos ([{name, creationDate}]) |
| GET | /api/platform/minio/browser/objects | Lista objetos/pastas (?bucket=&prefix=&recursive=&max=&startAfter= → {objects[], truncated, nextToken}) |
| GET | /api/platform/minio/browser/object | Detalhe do objeto (?bucket=&key=; tamanho, tipo, última modificação, etag, metadados) |
| GET | /api/platform/minio/browser/summary | Resumo do bucket (?bucket=; contagem e tamanho total, teto de 50.000 objetos) |
| GET/PUT | /api/platform/minio/config | Lê/grava a configuração do armazenamento de objetos (chave secreta mascarada; escrita administrativa) |
| POST | /api/platform/minio/test | Testa a conectividade do armazenamento de objetos ({ok, message}) |
Os endpoints evoluem junto com a plataforma — novas rotas surgem e parâmetros são refinados a cada versão; em caso de divergência, o comportamento observado na versão instalada prevalece. Toda execução disparada via API (triagens, ingestões, gerações, sincronizações) aparece na área Execuções da interface, com a mesma trilha de auditoria das ações feitas pela tela.