/api/v1/healthPúblicoHealth Check
Liveness — responde sem autenticação.
Respuestas
- 200Successful ResponseHealthOut
Referencia
Todos los endpoints que un token de API puede llamar, generados a partir del contrato OpenAPI 1.78.0. Base URL: https://api.praxis.lbostuff.tech
Estado do serviço — sem autenticação.
/api/v1/healthPúblicoLiveness — responde sem autenticação.
/api/v1/versionPúblicoVersão do produto, commit a servir (build_sha, 7 hex) e versão desta API — responde sem autenticação.
rate_limited) ou, num pedido de scan, fila de scans do workspace cheia (scan_queue_full).object/api/v1/health/readyPúblicoReadiness: BD obrigatória; mensageria só reportada — a API continua utilizável sem broker (os endpoints assíncronos devolvem 503 próprios).
Tabelas monitorizadas: score, contrato, linhagem, veredito de CI.
/api/v1/datasetsTokenCatálogo de datasets com o score mais recente. Pesquisa com q, pagina com limit/offset; o total vem no header X-Total-Count.
| Nombre | En | Tipo | Descripción |
|---|---|---|---|
| connection_id | query | string | null | |
| q | query | string | null | Pesquisa em schema/tabela/nome |
| sort | query | "name" | "usage"= "name" | name (schema/tabela) ou usage (queries/dia, mais usados primeiro) |
| include | query | string | null | Extras separados por vírgula: `trust` (trust score da página) |
| limit | query | integer= 500 | itens por página (1–500) |
| offset | query | integer= 0 | itens a saltar; o total vem em X-Total-Count |
auth_required), inválido, expirado ou revogado (token_invalid).ErrorResponsetoken_read_only), workspace suspenso (workspace_suspended), quota da organização esgotada (org_quota, com plan e limit) ou acesso negado pela política do workspace.ErrorResponsevalidation_error): detail lista os campos. Uma recusa da própria rota (ex.: um dataset ainda sem contagem para reconciliar) traz o motivo em texto em detail, na língua do pedido, e o seu code quando o texto está no catálogo (senão null).ValidationErrorResponserate_limited) ou, num pedido de scan, fila de scans do workspace cheia (scan_queue_full).object/api/v1/datasets/findTokenPesquisa composta no catálogo: todos os filtros dados em conjunto (camada medallion,
domínio, PII, score mínimo, classe de uso). Até 40 datasets, só nomes de colunas PII.
É a tool find_datasets do assistente e do MCP.
| Nombre | En | Tipo | Descripción |
|---|---|---|---|
| query | query | string | null | texto em schema/tabela/termo |
| layer | query | string | null | bronze | silver | gold |
| domain | query | string | null | id ou nome do domínio |
| has_pii | query | boolean | null | só com (true) ou sem (false) PII |
| min_score | query | number | null | |
| usage_class | query | string | null | hot | active | cold | dead |
auth_required), inválido, expirado ou revogado (token_invalid).ErrorResponsetoken_read_only), workspace suspenso (workspace_suspended), quota da organização esgotada (org_quota, com plan e limit) ou acesso negado pela política do workspace.ErrorResponsevalidation_error): detail lista os campos. Uma recusa da própria rota (ex.: um dataset ainda sem contagem para reconciliar) traz o motivo em texto em detail, na língua do pedido, e o seu code quando o texto está no catálogo (senão null).ValidationErrorResponserate_limited) ou, num pedido de scan, fila de scans do workspace cheia (scan_queue_full).object/api/v1/datasets/{dataset_id}TokenDetalhe do dataset: colunas, último profiling por coluna, histórico de score, issues abertos e sugestões.
| Nombre | En | Tipo | Descripción |
|---|---|---|---|
| dataset_id* | path | string |
auth_required), inválido, expirado ou revogado (token_invalid).ErrorResponsetoken_read_only), workspace suspenso (workspace_suspended), quota da organização esgotada (org_quota, com plan e limit) ou acesso negado pela política do workspace.ErrorResponsevalidation_error): detail lista os campos. Uma recusa da própria rota (ex.: um dataset ainda sem contagem para reconciliar) traz o motivo em texto em detail, na língua do pedido, e o seu code quando o texto está no catálogo (senão null).ValidationErrorResponserate_limited) ou, num pedido de scan, fila de scans do workspace cheia (scan_queue_full).object/api/v1/datasets/{dataset_id}/auto-monitorsTokenEstado dos monitores automáticos (freshness/volume/schema) do dataset.
| Nombre | En | Tipo | Descripción |
|---|---|---|---|
| dataset_id* | path | string |
auth_required), inválido, expirado ou revogado (token_invalid).ErrorResponsetoken_read_only), workspace suspenso (workspace_suspended), quota da organização esgotada (org_quota, com plan e limit) ou acesso negado pela política do workspace.ErrorResponsevalidation_error): detail lista os campos. Uma recusa da própria rota (ex.: um dataset ainda sem contagem para reconciliar) traz o motivo em texto em detail, na língua do pedido, e o seu code quando o texto está no catálogo (senão null).ValidationErrorResponserate_limited) ou, num pedido de scan, fila de scans do workspace cheia (scan_queue_full).object/api/v1/datasets/{dataset_id}/incremental-profilingTokenPerfil incremental: flag, coluna temporal e como correu o último perfil.
| Nombre | En | Tipo | Descripción |
|---|---|---|---|
| dataset_id* | path | string |
auth_required), inválido, expirado ou revogado (token_invalid).ErrorResponsetoken_read_only), workspace suspenso (workspace_suspended), quota da organização esgotada (org_quota, com plan e limit) ou acesso negado pela política do workspace.ErrorResponsevalidation_error): detail lista os campos. Uma recusa da própria rota (ex.: um dataset ainda sem contagem para reconciliar) traz o motivo em texto em detail, na língua do pedido, e o seu code quando o texto está no catálogo (senão null).ValidationErrorResponserate_limited) ou, num pedido de scan, fila de scans do workspace cheia (scan_queue_full).object/api/v1/datasets/{dataset_id}/tuningTokenCartão #157: limiares das anomalias afinados pelo feedback (degrau, contagens, o que o próximo «ignorar» faz) e reajustes de regras à espera de aprovação.
| Nombre | En | Tipo | Descripción |
|---|---|---|---|
| dataset_id* | path | string |
auth_required), inválido, expirado ou revogado (token_invalid).ErrorResponsetoken_read_only), workspace suspenso (workspace_suspended), quota da organização esgotada (org_quota, com plan e limit) ou acesso negado pela política do workspace.ErrorResponsevalidation_error): detail lista os campos. Uma recusa da própria rota (ex.: um dataset ainda sem contagem para reconciliar) traz o motivo em texto em detail, na língua do pedido, e o seu code quando o texto está no catálogo (senão null).ValidationErrorResponserate_limited) ou, num pedido de scan, fila de scans do workspace cheia (scan_queue_full).object/api/v1/datasets/{dataset_id}/freshnessTokenColuna que mede a frescura (fixada ou escolhida em cada scan), o timestamp mais recente do último perfil em UTC, o fuso assumido e a regra que a mede.
| Nombre | En | Tipo | Descripción |
|---|---|---|---|
| dataset_id* | path | string |
auth_required), inválido, expirado ou revogado (token_invalid).ErrorResponsetoken_read_only), workspace suspenso (workspace_suspended), quota da organização esgotada (org_quota, com plan e limit) ou acesso negado pela política do workspace.ErrorResponsevalidation_error): detail lista os campos. Uma recusa da própria rota (ex.: um dataset ainda sem contagem para reconciliar) traz o motivo em texto em detail, na língua do pedido, e o seu code quando o texto está no catálogo (senão null).ValidationErrorResponserate_limited) ou, num pedido de scan, fila de scans do workspace cheia (scan_queue_full).object/api/v1/datasets/{dataset_id}/data-countryTokenPaís dos dados do dataset (cartão #513): o próprio, o efetivo (dataset → conexão → workspace) e de onde vem.
| Nombre | En | Tipo | Descripción |
|---|---|---|---|
| dataset_id* | path | string |
auth_required), inválido, expirado ou revogado (token_invalid).ErrorResponsetoken_read_only), workspace suspenso (workspace_suspended), quota da organização esgotada (org_quota, com plan e limit) ou acesso negado pela política do workspace.ErrorResponsevalidation_error): detail lista os campos. Uma recusa da própria rota (ex.: um dataset ainda sem contagem para reconciliar) traz o motivo em texto em detail, na língua do pedido, e o seu code quando o texto está no catálogo (senão null).ValidationErrorResponserate_limited) ou, num pedido de scan, fila de scans do workspace cheia (scan_queue_full).object/api/v1/datasets/{dataset_id}/label-qualityTokenQualidade de rótulos: extra disponível?, configuração, porta PII e último resultado.
| Nombre | En | Tipo | Descripción |
|---|---|---|---|
| dataset_id* | path | string |
auth_required), inválido, expirado ou revogado (token_invalid).ErrorResponsetoken_read_only), workspace suspenso (workspace_suspended), quota da organização esgotada (org_quota, com plan e limit) ou acesso negado pela política do workspace.ErrorResponsevalidation_error): detail lista os campos. Uma recusa da própria rota (ex.: um dataset ainda sem contagem para reconciliar) traz o motivo em texto em detail, na língua do pedido, e o seu code quando o texto está no catálogo (senão null).ValidationErrorResponserate_limited) ou, num pedido de scan, fila de scans do workspace cheia (scan_queue_full).object/api/v1/datasets/{dataset_id}/parsingTokenCampos compostos do último perfil (cartão #386): tipo, locale, componentes,
cobertura e máscaras do que não se decompõe. Só leitura; a proposta de
normalização é a sugestão parse_standardize:<coluna> do scan.
| Nombre | En | Tipo | Descripción |
|---|---|---|---|
| dataset_id* | path | string |
auth_required), inválido, expirado ou revogado (token_invalid).ErrorResponsetoken_read_only), workspace suspenso (workspace_suspended), quota da organização esgotada (org_quota, com plan e limit) ou acesso negado pela política do workspace.ErrorResponsevalidation_error): detail lista os campos. Uma recusa da própria rota (ex.: um dataset ainda sem contagem para reconciliar) traz o motivo em texto em detail, na língua do pedido, e o seu code quando o texto está no catálogo (senão null).ValidationErrorResponserate_limited) ou, num pedido de scan, fila de scans do workspace cheia (scan_queue_full).object/api/v1/datasets/{dataset_id}/sensitivityTokenClassificação de sensibilidade coluna a coluna (public/internal/confidential/pii), com a origem (auto/manual), autor+data, sugestões herdadas por linhagem e rasto.
| Nombre | En | Tipo | Descripción |
|---|---|---|---|
| dataset_id* | path | string |
auth_required), inválido, expirado ou revogado (token_invalid).ErrorResponsetoken_read_only), workspace suspenso (workspace_suspended), quota da organização esgotada (org_quota, com plan e limit) ou acesso negado pela política do workspace.ErrorResponsevalidation_error): detail lista os campos. Uma recusa da própria rota (ex.: um dataset ainda sem contagem para reconciliar) traz o motivo em texto em detail, na língua do pedido, e o seu code quando o texto está no catálogo (senão null).ValidationErrorResponserate_limited) ou, num pedido de scan, fila de scans do workspace cheia (scan_queue_full).object/api/v1/datasets/{dataset_id}/contractTokenContrato de dados ODCS do estado atual do dataset.
Versiona-o no repositório e valida-o em CI com scripts/validate_contract.py.
source=active devolve o contrato ACEITE pelo produtor dos dados — 404
enquanto nenhuma proposta foi aceite.
| Nombre | En | Tipo | Descripción |
|---|---|---|---|
| dataset_id* | path | string | |
| source | query | "observed" | "active"= "observed" |
auth_required), inválido, expirado ou revogado (token_invalid).ErrorResponsetoken_read_only), workspace suspenso (workspace_suspended), quota da organização esgotada (org_quota, com plan e limit) ou acesso negado pela política do workspace.ErrorResponsevalidation_error): detail lista os campos. Uma recusa da própria rota (ex.: um dataset ainda sem contagem para reconciliar) traz o motivo em texto em detail, na língua do pedido, e o seu code quando o texto está no catálogo (senão null).ValidationErrorResponserate_limited) ou, num pedido de scan, fila de scans do workspace cheia (scan_queue_full).object/api/v1/datasets/{dataset_id}/contract.dbt.ymlTokenContrato como schema.yml de dbt com contract: {enforced: true}.
O ODCS é a fonte de verdade; este ficheiro é um artefacto gerado — mantém uma só definição e evita que os dois esquemas divirjam.
| Nombre | En | Tipo | Descripción |
|---|---|---|---|
| dataset_id* | path | string |
auth_required), inválido, expirado ou revogado (token_invalid).ErrorResponsetoken_read_only), workspace suspenso (workspace_suspended), quota da organização esgotada (org_quota, com plan e limit) ou acesso negado pela política do workspace.ErrorResponsevalidation_error): detail lista os campos. Uma recusa da própria rota (ex.: um dataset ainda sem contagem para reconciliar) traz o motivo em texto em detail, na língua do pedido, e o seu code quando o texto está no catálogo (senão null).ValidationErrorResponserate_limited) ou, num pedido de scan, fila de scans do workspace cheia (scan_queue_full).object/api/v1/datasets/{dataset_id}/lineageTokenLinhagem direta do dataset: upstream (fontes) e downstream (impacto).
exposures (cartão #107): consumidores dbt (dashboards/apps) — nós-folha
que dependem deste dataset, diretamente (direct) ou via datasets a jusante.
ADR 0011 §2.4: um vizinho invisível para quem pede é «Dataset restrito»
(restricted: true), sem nome, id, coluna de ligação nem mapa de colunas.
| Nombre | En | Tipo | Descripción |
|---|---|---|---|
| dataset_id* | path | string |
auth_required), inválido, expirado ou revogado (token_invalid).ErrorResponsetoken_read_only), workspace suspenso (workspace_suspended), quota da organização esgotada (org_quota, com plan e limit) ou acesso negado pela política do workspace.ErrorResponsevalidation_error): detail lista os campos. Uma recusa da própria rota (ex.: um dataset ainda sem contagem para reconciliar) traz o motivo em texto em detail, na língua do pedido, e o seu code quando o texto está no catálogo (senão null).ValidationErrorResponserate_limited) ou, num pedido de scan, fila de scans do workspace cheia (scan_queue_full).object/api/v1/datasets/{dataset_id}/lineage/traverseTokenLinhagem até hops saltos: datasets upstream/downstream com o caminho no sentido
do fluxo («A → B → C»), arestas com a origem e o mapa de colunas, e os exposures a
jusante (só nomes). Até 40 datasets e 60 arestas (truncated). Um dataset invisível
para quem pede é «Dataset restrito». É a tool get_lineage do assistente e do MCP.
| Nombre | En | Tipo | Descripción |
|---|---|---|---|
| dataset_id* | path | string | |
| direction | query | "upstream" | "downstream" | "both"= "both" | |
| hops | query | integer= 1 | saltos a partir do dataset |
auth_required), inválido, expirado ou revogado (token_invalid).ErrorResponsetoken_read_only), workspace suspenso (workspace_suspended), quota da organização esgotada (org_quota, com plan e limit) ou acesso negado pela política do workspace.ErrorResponsevalidation_error): detail lista os campos. Uma recusa da própria rota (ex.: um dataset ainda sem contagem para reconciliar) traz o motivo em texto em detail, na língua do pedido, e o seu code quando o texto está no catálogo (senão null).ValidationErrorResponserate_limited) ou, num pedido de scan, fila de scans do workspace cheia (scan_queue_full).object/api/v1/datasets/{dataset_id}/lineage/impactTokenO que parte se o dataset (ou a column) mudar: datasets a jusante, exposures,
destinos fora do warehouse e, com a coluna, as colunas a jusante que derivam dela.
A mesma análise do impacto de um issue. É a tool impact_of do assistente e do MCP.
| Nombre | En | Tipo | Descripción |
|---|---|---|---|
| dataset_id* | path | string | |
| column | query | string | null | coluna (opcional) |
auth_required), inválido, expirado ou revogado (token_invalid).ErrorResponsetoken_read_only), workspace suspenso (workspace_suspended), quota da organização esgotada (org_quota, com plan e limit) ou acesso negado pela política do workspace.ErrorResponsevalidation_error): detail lista os campos. Uma recusa da própria rota (ex.: um dataset ainda sem contagem para reconciliar) traz o motivo em texto em detail, na língua do pedido, e o seu code quando o texto está no catálogo (senão null).ValidationErrorResponserate_limited) ou, num pedido de scan, fila de scans do workspace cheia (scan_queue_full).object/api/v1/datasets/{dataset_id}/lineage/pathTokenCaminho mais curto (até 6 saltos) do dataset até target_id, no sentido do fluxo;
sem caminho nesse sentido, procura no inverso (direction). Um destino invisível
para quem pede responde 404. É a tool path_between do assistente e do MCP.
| Nombre | En | Tipo | Descripción |
|---|---|---|---|
| dataset_id* | path | string | |
| target_id* | query | string | id do dataset de destino |
auth_required), inválido, expirado ou revogado (token_invalid).ErrorResponsetoken_read_only), workspace suspenso (workspace_suspended), quota da organização esgotada (org_quota, com plan e limit) ou acesso negado pela política do workspace.ErrorResponsevalidation_error): detail lista os campos. Uma recusa da própria rota (ex.: um dataset ainda sem contagem para reconciliar) traz o motivo em texto em detail, na língua do pedido, e o seu code quando o texto está no catálogo (senão null).ValidationErrorResponserate_limited) ou, num pedido de scan, fila de scans do workspace cheia (scan_queue_full).object/api/v1/datasets/{dataset_id}/schema-changesTokenTimeline de schema do dataset: add/drop/tipo por scan, com renomeações sugeridas, impacto a jusante e efeito no contrato ODCS. O impacto a jusante invisível para quem pede é «Dataset restrito» (ADR 0011).
| Nombre | En | Tipo | Descripción |
|---|---|---|---|
| dataset_id* | path | string |
auth_required), inválido, expirado ou revogado (token_invalid).ErrorResponsetoken_read_only), workspace suspenso (workspace_suspended), quota da organização esgotada (org_quota, com plan e limit) ou acesso negado pela política do workspace.ErrorResponsevalidation_error): detail lista os campos. Uma recusa da própria rota (ex.: um dataset ainda sem contagem para reconciliar) traz o motivo em texto em detail, na língua do pedido, e o seu code quando o texto está no catálogo (senão null).ValidationErrorResponserate_limited) ou, num pedido de scan, fila de scans do workspace cheia (scan_queue_full).object/api/v1/datasets/{dataset_id}/pipeline-healthTokenSaúde dos pipelines Fivetran/Airbyte que escrevem este dataset (cartão
#268): último sync, falhado/atrasado, latência origem→destino,
reconciliação de contagens e syncs recentes. Sem integração → status:
not_monitored. A origem invisível para quem pede é «Dataset restrito».
| Nombre | En | Tipo | Descripción |
|---|---|---|---|
| dataset_id* | path | string |
auth_required), inválido, expirado ou revogado (token_invalid).ErrorResponsetoken_read_only), workspace suspenso (workspace_suspended), quota da organização esgotada (org_quota, com plan e limit) ou acesso negado pela política do workspace.ErrorResponsevalidation_error): detail lista os campos. Uma recusa da própria rota (ex.: um dataset ainda sem contagem para reconciliar) traz o motivo em texto em detail, na língua do pedido, e o seu code quando o texto está no catálogo (senão null).ValidationErrorResponserate_limited) ou, num pedido de scan, fila de scans do workspace cheia (scan_queue_full).object/api/v1/datasets/{dataset_id}/ai-readinessTokenProntidão do dataset para IA: score global, prontidão por caso de uso (RAG/treino/agente/BI) com bloqueadores, PII e recomendações.
| Nombre | En | Tipo | Descripción |
|---|---|---|---|
| dataset_id* | path | string |
auth_required), inválido, expirado ou revogado (token_invalid).ErrorResponsetoken_read_only), workspace suspenso (workspace_suspended), quota da organização esgotada (org_quota, com plan e limit) ou acesso negado pela política do workspace.ErrorResponsevalidation_error): detail lista os campos. Uma recusa da própria rota (ex.: um dataset ainda sem contagem para reconciliar) traz o motivo em texto em detail, na língua do pedido, e o seu code quando o texto está no catálogo (senão null).ValidationErrorResponserate_limited) ou, num pedido de scan, fila de scans do workspace cheia (scan_queue_full).object/api/v1/datasets/{dataset_id}/trustTokenTrust score composto e explicável (cartão #142): score 0–100, grade A–E, componentes com evidência e ação para subir, bloqueadores. Zero LLM.
| Nombre | En | Tipo | Descripción |
|---|---|---|---|
| dataset_id* | path | string |
auth_required), inválido, expirado ou revogado (token_invalid).ErrorResponsetoken_read_only), workspace suspenso (workspace_suspended), quota da organização esgotada (org_quota, com plan e limit) ou acesso negado pela política do workspace.ErrorResponsevalidation_error): detail lista os campos. Uma recusa da própria rota (ex.: um dataset ainda sem contagem para reconciliar) traz o motivo em texto em detail, na língua do pedido, e o seu code quando o texto está no catálogo (senão null).ValidationErrorResponserate_limited) ou, num pedido de scan, fila de scans do workspace cheia (scan_queue_full).object/api/v1/datasets/{dataset_id}/trust-decisionTokenDecisão de confiança para consumir o dataset numa finalidade (cartão #150):
trusted | caution | untrusted | unknown, com razões, required_actions, sinais,
ttl_seconds (também em Cache-Control: max-age) e valid_until. Zero LLM.
Via token dvk_ fica no trilho de auditoria (#151). Ver docs/TRUST_API.md.
| Nombre | En | Tipo | Descripción |
|---|---|---|---|
| dataset_id* | path | string | |
| purpose | query | string= "agente" | agente | rag | treino | bi (ml = treino) |
auth_required), inválido, expirado ou revogado (token_invalid).ErrorResponsetoken_read_only), workspace suspenso (workspace_suspended), quota da organização esgotada (org_quota, com plan e limit) ou acesso negado pela política do workspace.ErrorResponsevalidation_error): detail lista os campos. Uma recusa da própria rota (ex.: um dataset ainda sem contagem para reconciliar) traz o motivo em texto em detail, na língua do pedido, e o seu code quando o texto está no catálogo (senão null).ValidationErrorResponserate_limited) ou, num pedido de scan, fila de scans do workspace cheia (scan_queue_full).object/api/v1/datasets/{dataset_id}/trust-factsTokenFactos de confiança do dataset num só envelope estável (cartão #153):
veredito com política, score e tendência 7d, contrato, política, sensibilidade,
AI-readiness por caso de uso, freshness vs alvo, ownership, linhagem, issues e
links. Só metadados; minimal nunca traz nomes de colunas. ETag = hash dos
factos (sem as_of); If-None-Match → 304. Só leitura, zero LLM, tokens
dvk_* incluídos. Ver docs/TRUST_API.md.
| Nombre | En | Tipo | Descripción |
|---|---|---|---|
| dataset_id* | path | string | |
| detail | query | string= "minimal" | minimal (só contagens) | full (com nomes) |
ETag enviado em If-None-Match.auth_required), inválido, expirado ou revogado (token_invalid).ErrorResponsetoken_read_only), workspace suspenso (workspace_suspended), quota da organização esgotada (org_quota, com plan e limit) ou acesso negado pela política do workspace.ErrorResponsevalidation_error): detail lista os campos. Uma recusa da própria rota (ex.: um dataset ainda sem contagem para reconciliar) traz o motivo em texto em detail, na língua do pedido, e o seu code quando o texto está no catálogo (senão null).ValidationErrorResponserate_limited) ou, num pedido de scan, fila de scans do workspace cheia (scan_queue_full).object/api/v1/datasets/{dataset_id}/contextTokenContexto unificado do dataset (cartão #146): identidade, schema+sensibilidade, qualidade+verdict, contrato, lineage, AI-readiness, trust, KB+README, uso e frescura numa só leitura. Sem LLM, sem amostras, owners/exposures só por nome.
| Nombre | En | Tipo | Descripción |
|---|---|---|---|
| dataset_id* | path | string | |
| sections | query | string | null | Secções separadas por vírgulas (identity, schema, quality, contract, lineage, readiness, trust, knowledge, usage, freshness). |
auth_required), inválido, expirado ou revogado (token_invalid).ErrorResponsetoken_read_only), workspace suspenso (workspace_suspended), quota da organização esgotada (org_quota, com plan e limit) ou acesso negado pela política do workspace.ErrorResponsevalidation_error): detail lista os campos. Uma recusa da própria rota (ex.: um dataset ainda sem contagem para reconciliar) traz o motivo em texto em detail, na língua do pedido, e o seu code quando o texto está no catálogo (senão null).ValidationErrorResponserate_limited) ou, num pedido de scan, fila de scans do workspace cheia (scan_queue_full).object/api/v1/datasets/{dataset_id}/calendarTokenHeatmap-calendário do dataset: score médio, issues abertas e scans falhados por dia (cache 1h).
| Nombre | En | Tipo | Descripción |
|---|---|---|---|
| dataset_id* | path | string | |
| days | query | integer= 90 |
auth_required), inválido, expirado ou revogado (token_invalid).ErrorResponsetoken_read_only), workspace suspenso (workspace_suspended), quota da organização esgotada (org_quota, com plan e limit) ou acesso negado pela política do workspace.ErrorResponsevalidation_error): detail lista os campos. Uma recusa da própria rota (ex.: um dataset ainda sem contagem para reconciliar) traz o motivo em texto em detail, na língua do pedido, e o seu code quando o texto está no catálogo (senão null).ValidationErrorResponserate_limited) ou, num pedido de scan, fila de scans do workspace cheia (scan_queue_full).object/api/v1/datasets/{dataset_id}/dimensionsTokenScorecard por dimensão de qualidade (DAMA/ISO 8000) do último scan: score
0–100 por dimensão (percentagem de checks aprovados), n.º de checks e issues
abertos. Uma dimensão sem checks vem measured=false e score=null («não
medido»), nunca 100. Inclui o histórico por scan (últimos 30).
| Nombre | En | Tipo | Descripción |
|---|---|---|---|
| dataset_id* | path | string |
auth_required), inválido, expirado ou revogado (token_invalid).ErrorResponsetoken_read_only), workspace suspenso (workspace_suspended), quota da organização esgotada (org_quota, com plan e limit) ou acesso negado pela política do workspace.ErrorResponsevalidation_error): detail lista os campos. Uma recusa da própria rota (ex.: um dataset ainda sem contagem para reconciliar) traz o motivo em texto em detail, na língua do pedido, e o seu code quando o texto está no catálogo (senão null).ValidationErrorResponserate_limited) ou, num pedido de scan, fila de scans do workspace cheia (scan_queue_full).object/api/v1/datasets/{dataset_id}/score/explainToken«Porque mudou o score?» (cartão #318): Δscore entre dois scans decomposto
por dimensão (peso·Δdimensão) e, dentro de cada uma, pelos drivers — colunas
cujos nulos mudaram, regras que passaram a falhar ou voltaram a passar, drift,
frescura, duplicados. Σ drivers + unexplained_points = delta. Por omissão
compara os dois últimos scans concluídos; 422 sem dois scans com score.
| Nombre | En | Tipo | Descripción |
|---|---|---|---|
| dataset_id* | path | string | |
| from | query | string | null | |
| to | query | string | null |
auth_required), inválido, expirado ou revogado (token_invalid).ErrorResponsetoken_read_only), workspace suspenso (workspace_suspended), quota da organização esgotada (org_quota, com plan e limit) ou acesso negado pela política do workspace.ErrorResponsevalidation_error): detail lista os campos. Uma recusa da própria rota (ex.: um dataset ainda sem contagem para reconciliar) traz o motivo em texto em detail, na língua do pedido, e o seu code quando o texto está no catálogo (senão null).ValidationErrorResponserate_limited) ou, num pedido de scan, fila de scans do workspace cheia (scan_queue_full).object/api/v1/datasets/{dataset_id}/syntheticTokenDados sintéticos gerados a partir do último perfil (SYNTH v1).
«Gémeo estatístico sem cópia»: só o perfil persistido (quantis,
histogramas, segmentos, regras, sensibilidade) — nenhuma linha da fonte.
Determinístico por (perfil, rows, seed). CSV em streaming até
synthetic_max_rows; json devolve {manifest, rows} até
synthetic_json_max_rows, com o scorecard em manifest.evaluation.
Antes de enviar, as linhas passam pela avaliação utilidade × privacidade:
com privacy_verdict = fail (uma amostra, um extremo sensível ou PII real
no output) a resposta é 409 com o motivo e nenhuma linha sai. Fica
registado um evento de auditoria (também na recusa).
| Nombre | En | Tipo | Descripción |
|---|---|---|---|
| dataset_id* | path | string | |
| rows | query | integer= 1000 | |
| seed | query | integer= 42 | |
| format | query | "csv" | "json"= "csv" |
auth_required), inválido, expirado ou revogado (token_invalid).ErrorResponseplan_limit); plan e limit dizem qual.PlanLimitErrorResponsetoken_read_only), workspace suspenso (workspace_suspended), quota da organização esgotada (org_quota, com plan e limit) ou acesso negado pela política do workspace.ErrorResponsevalidation_error): detail lista os campos. Uma recusa da própria rota (ex.: um dataset ainda sem contagem para reconciliar) traz o motivo em texto em detail, na língua do pedido, e o seu code quando o texto está no catálogo (senão null).ValidationErrorResponserate_limited) ou, num pedido de scan, fila de scans do workspace cheia (scan_queue_full).object/api/v1/datasets/{dataset_id}/synthetic/evaluationTokenScorecard utilidade × privacidade dos dados sintéticos de (rows, seed).
Avalia as mesmas linhas que GET /synthetic com o mesmo par enviaria.
Utilidade (0–100) contra o perfil: nulos, quantis p05–p95 normalizados
pelo IQR, distância de variação total aos histogramas e às quotas
categóricas, correlações dos pares. Privacidade contra as amostras do
perfil, os extremos min/max e as linhas de exemplo dos clusters de
duplicados: sample_leak, extreme_leak, pii_leak e o k_min do
output sobre os quase-identificadores. Veredito fail com qualquer leak
(o export recusa-o com 409), warn com k_min < 5, senão pass. Só
taxas, deltas e nomes de colunas — nunca valores. Não fica registado
nenhum evento (não exporta nada).
| Nombre | En | Tipo | Descripción |
|---|---|---|---|
| dataset_id* | path | string | |
| rows | query | integer= 1000 | |
| seed | query | integer= 42 |
auth_required), inválido, expirado ou revogado (token_invalid).ErrorResponseplan_limit); plan e limit dizem qual.PlanLimitErrorResponsetoken_read_only), workspace suspenso (workspace_suspended), quota da organização esgotada (org_quota, com plan e limit) ou acesso negado pela política do workspace.ErrorResponsevalidation_error): detail lista os campos. Uma recusa da própria rota (ex.: um dataset ainda sem contagem para reconciliar) traz o motivo em texto em detail, na língua do pedido, e o seu code quando o texto está no catálogo (senão null).ValidationErrorResponserate_limited) ou, num pedido de scan, fila de scans do workspace cheia (scan_queue_full).object/api/v1/datasets/{dataset_id}/remediation.sqlTokenScript consolidado das sugestões aceites.
O DataVault nunca executa escrita nas fontes: o script é para o cliente
rever e aplicar (staging primeiro). include_proposed=true junta também
as sugestões ainda não aceites; language=pyspark exporta a versão
PySpark (pipelines Spark/Databricks) em vez de SQL.
| Nombre | En | Tipo | Descripción |
|---|---|---|---|
| dataset_id* | path | string | |
| include_proposed | query | boolean= false | |
| language | query | string= "sql" |
auth_required), inválido, expirado ou revogado (token_invalid).ErrorResponsetoken_read_only), workspace suspenso (workspace_suspended), quota da organização esgotada (org_quota, com plan e limit) ou acesso negado pela política do workspace.ErrorResponsevalidation_error): detail lista os campos. Uma recusa da própria rota (ex.: um dataset ainda sem contagem para reconciliar) traz o motivo em texto em detail, na língua do pedido, e o seu code quando o texto está no catálogo (senão null).ValidationErrorResponserate_limited) ou, num pedido de scan, fila de scans do workspace cheia (scan_queue_full).object/api/v1/datasets/{dataset_id}/rules.dbt.ymlTokenRegras do dataset como testes dbt (schema.yml) — «propõe, tu aplicas no teu repo».
O mesmo ficheiro de GET /datasets/{id}/rules/export?format=dbt. Uma regra
referential (cartão #164) sai como relationships com to: ref('<tabela>');
a tabela vem do catálogo de quem exporta — um dataset de referência invisível
(ADR 0011) não dá nome, e a regra fica em nota.
| Nombre | En | Tipo | Descripción |
|---|---|---|---|
| dataset_id* | path | string |
auth_required), inválido, expirado ou revogado (token_invalid).ErrorResponsetoken_read_only), workspace suspenso (workspace_suspended), quota da organização esgotada (org_quota, com plan e limit) ou acesso negado pela política do workspace.ErrorResponsevalidation_error): detail lista os campos. Uma recusa da própria rota (ex.: um dataset ainda sem contagem para reconciliar) traz o motivo em texto em detail, na língua do pedido, e o seu code quando o texto está no catálogo (senão null).ValidationErrorResponserate_limited) ou, num pedido de scan, fila de scans do workspace cheia (scan_queue_full).object/api/v1/datasets/{dataset_id}/rules.dbt-tests.zipTokenRegras expression/custom_sql ativas como testes singulares do dbt (cartão #265).
ZIP com tests/*.sql (SELECT das linhas violadoras no dialeto da fonte, com
ref() no lugar da tabela) e um README com o que ficou de fora e porquê. O
texto das regras vai em blocos Jinja raw: o dbt não executa Jinja escrito
numa regra.
| Nombre | En | Tipo | Descripción |
|---|---|---|---|
| dataset_id* | path | string |
auth_required), inválido, expirado ou revogado (token_invalid).ErrorResponsetoken_read_only), workspace suspenso (workspace_suspended), quota da organização esgotada (org_quota, com plan e limit) ou acesso negado pela política do workspace.ErrorResponsevalidation_error): detail lista os campos. Uma recusa da própria rota (ex.: um dataset ainda sem contagem para reconciliar) traz o motivo em texto em detail, na língua do pedido, e o seu code quando o texto está no catálogo (senão null).ValidationErrorResponserate_limited) ou, num pedido de scan, fila de scans do workspace cheia (scan_queue_full).object/api/v1/datasets/{dataset_id}/verdictTokenVeredito compacto para o gate de CI: pass | warn | fail.
fail = alguma regra CRÍTICA falhou no último scan OU o contrato ODCS ficou inválido (campo removido por uma mudança de schema por resolver); warn = só warnings, tipo lógico divergente ou mudança que quebra a montante; pass = tudo verde. Sem scan ainda: verdict "unknown" (o gate decide).
| Nombre | En | Tipo | Descripción |
|---|---|---|---|
| dataset_id* | path | string |
auth_required), inválido, expirado ou revogado (token_invalid).ErrorResponsetoken_read_only), workspace suspenso (workspace_suspended), quota da organização esgotada (org_quota, com plan e limit) ou acesso negado pela política do workspace.ErrorResponsevalidation_error): detail lista os campos. Uma recusa da própria rota (ex.: um dataset ainda sem contagem para reconciliar) traz o motivo em texto em detail, na língua do pedido, e o seu code quando o texto está no catálogo (senão null).ValidationErrorResponserate_limited) ou, num pedido de scan, fila de scans do workspace cheia (scan_queue_full).object/api/v1/datasets/{dataset_id}/diff/{other_id}TokenData-diff por chave (RECON v2): base dataset_id ↔ candidato other_id.
Read-only nas duas fontes e nada persistido. Guardas de custo: linhas por
lado (diff_max_rows, amostragem determinística acima disso), colunas
comparadas, tempo total (504) e runs por workspace (429). Devolve
contagens, % só-base/só-candidato/alteradas, divergência e checksum por
coluna e o veredito pass | warn | fail para o gate de CI.
| Nombre | En | Tipo | Descripción |
|---|---|---|---|
| dataset_id* | path | string | |
| other_id* | path | string |
auth_required), inválido, expirado ou revogado (token_invalid).ErrorResponsetoken_read_only), workspace suspenso (workspace_suspended), quota da organização esgotada (org_quota, com plan e limit) ou acesso negado pela política do workspace.ErrorResponsevalidation_error): detail lista os campos. Uma recusa da própria rota (ex.: um dataset ainda sem contagem para reconciliar) traz o motivo em texto em detail, na língua do pedido, e o seu code quando o texto está no catálogo (senão null).ValidationErrorResponserate_limited) ou, num pedido de scan, fila de scans do workspace cheia (scan_queue_full).object/api/v1/trust-decisionsTokenDecisões de confiança de até 50 datasets numa finalidade (cartão #150).
Um id fora do workspace — ou invisível para quem pede (ADR 0011) — dá 404
ao pedido inteiro. decision é a pior do lote e ttl_seconds o menor. Só
leitura; via token dvk_ regista UM evento de auditoria agregado (#151).
auth_required), inválido, expirado ou revogado (token_invalid).ErrorResponsetoken_read_only), workspace suspenso (workspace_suspended), quota da organização esgotada (org_quota, com plan e limit) ou acesso negado pela política do workspace.ErrorResponsevalidation_error): detail lista os campos. Uma recusa da própria rota (ex.: um dataset ainda sem contagem para reconciliar) traz o motivo em texto em detail, na língua do pedido, e o seu code quando o texto está no catálogo (senão null).ValidationErrorResponserate_limited) ou, num pedido de scan, fila de scans do workspace cheia (scan_queue_full).object/api/v1/datasets/{dataset_id}/readmeToken| Nombre | En | Tipo | Descripción |
|---|---|---|---|
| dataset_id* | path | string |
auth_required), inválido, expirado ou revogado (token_invalid).ErrorResponsetoken_read_only), workspace suspenso (workspace_suspended), quota da organização esgotada (org_quota, com plan e limit) ou acesso negado pela política do workspace.ErrorResponsevalidation_error): detail lista os campos. Uma recusa da própria rota (ex.: um dataset ainda sem contagem para reconciliar) traz o motivo em texto em detail, na língua do pedido, e o seu code quando o texto está no catálogo (senão null).ValidationErrorResponserate_limited) ou, num pedido de scan, fila de scans do workspace cheia (scan_queue_full).object/api/v1/datasets/{dataset_id}/readme.mdTokenExport .md da versão publicada (com rotulagem e carimbo de aprovação).
| Nombre | En | Tipo | Descripción |
|---|---|---|---|
| dataset_id* | path | string |
auth_required), inválido, expirado ou revogado (token_invalid).ErrorResponsetoken_read_only), workspace suspenso (workspace_suspended), quota da organização esgotada (org_quota, com plan e limit) ou acesso negado pela política do workspace.ErrorResponsevalidation_error): detail lista os campos. Uma recusa da própria rota (ex.: um dataset ainda sem contagem para reconciliar) traz o motivo em texto em detail, na língua do pedido, e o seu code quando o texto está no catálogo (senão null).ValidationErrorResponserate_limited) ou, num pedido de scan, fila de scans do workspace cheia (scan_queue_full).objectContratos ODCS acordados com o produtor da fonte: versões numeradas, diff entre versões e propostas em revisão.
/api/v1/datasets/{dataset_id}/contract/versionsToken| Nombre | En | Tipo | Descripción |
|---|---|---|---|
| dataset_id* | path | string |
auth_required), inválido, expirado ou revogado (token_invalid).ErrorResponsetoken_read_only), workspace suspenso (workspace_suspended), quota da organização esgotada (org_quota, com plan e limit) ou acesso negado pela política do workspace.ErrorResponsevalidation_error): detail lista os campos. Uma recusa da própria rota (ex.: um dataset ainda sem contagem para reconciliar) traz o motivo em texto em detail, na língua do pedido, e o seu code quando o texto está no catálogo (senão null).ValidationErrorResponserate_limited) ou, num pedido de scan, fila de scans do workspace cheia (scan_queue_full).object/api/v1/datasets/{dataset_id}/contract/versions/{number}Token| Nombre | En | Tipo | Descripción |
|---|---|---|---|
| dataset_id* | path | string | |
| number* | path | integer |
auth_required), inválido, expirado ou revogado (token_invalid).ErrorResponsetoken_read_only), workspace suspenso (workspace_suspended), quota da organização esgotada (org_quota, com plan e limit) ou acesso negado pela política do workspace.ErrorResponsevalidation_error): detail lista os campos. Uma recusa da própria rota (ex.: um dataset ainda sem contagem para reconciliar) traz o motivo em texto em detail, na língua do pedido, e o seu code quando o texto está no catálogo (senão null).ValidationErrorResponserate_limited) ou, num pedido de scan, fila de scans do workspace cheia (scan_queue_full).object/api/v1/datasets/{dataset_id}/contract/diffTokenDiff secção a secção entre duas versões (from omitido => nenhuma).
| Nombre | En | Tipo | Descripción |
|---|---|---|---|
| dataset_id* | path | string | |
| to* | query | integer | |
| from | query | integer | null |
auth_required), inválido, expirado ou revogado (token_invalid).ErrorResponsetoken_read_only), workspace suspenso (workspace_suspended), quota da organização esgotada (org_quota, com plan e limit) ou acesso negado pela política do workspace.ErrorResponsevalidation_error): detail lista os campos. Uma recusa da própria rota (ex.: um dataset ainda sem contagem para reconciliar) traz o motivo em texto em detail, na língua do pedido, e o seu code quando o texto está no catálogo (senão null).ValidationErrorResponserate_limited) ou, num pedido de scan, fila de scans do workspace cheia (scan_queue_full).object/api/v1/datasets/{dataset_id}/contract/proposalsToken| Nombre | En | Tipo | Descripción |
|---|---|---|---|
| dataset_id* | path | string |
auth_required), inválido, expirado ou revogado (token_invalid).ErrorResponsetoken_read_only), workspace suspenso (workspace_suspended), quota da organização esgotada (org_quota, com plan e limit) ou acesso negado pela política do workspace.ErrorResponsevalidation_error): detail lista os campos. Uma recusa da própria rota (ex.: um dataset ainda sem contagem para reconciliar) traz o motivo em texto em detail, na língua do pedido, e o seu code quando o texto está no catálogo (senão null).ValidationErrorResponserate_limited) ou, num pedido de scan, fila de scans do workspace cheia (scan_queue_full).object/api/v1/datasets/{dataset_id}/contract/proposals/{proposal_id}TokenProposta com secções, estado, fios e diff face ao contrato ativo; o link de revisão só vem para administradores.
| Nombre | En | Tipo | Descripción |
|---|---|---|---|
| dataset_id* | path | string | |
| proposal_id* | path | string |
auth_required), inválido, expirado ou revogado (token_invalid).ErrorResponsetoken_read_only), workspace suspenso (workspace_suspended), quota da organização esgotada (org_quota, com plan e limit) ou acesso negado pela política do workspace.ErrorResponsevalidation_error): detail lista os campos. Uma recusa da própria rota (ex.: um dataset ainda sem contagem para reconciliar) traz o motivo em texto em detail, na língua do pedido, e o seu code quando o texto está no catálogo (senão null).ValidationErrorResponserate_limited) ou, num pedido de scan, fila de scans do workspace cheia (scan_queue_full).objectVista agregada do catálogo.
/api/v1/catalog/treemapTokenHierarquia conexão → schema → dataset com área = métrica e cor = score.
| Nombre | En | Tipo | Descripción |
|---|---|---|---|
| metric | query | TreemapMetric= "volume" | Área: volume|cost|columns |
auth_required), inválido, expirado ou revogado (token_invalid).ErrorResponsetoken_read_only), workspace suspenso (workspace_suspended), quota da organização esgotada (org_quota, com plan e limit) ou acesso negado pela política do workspace.ErrorResponsevalidation_error): detail lista os campos. Uma recusa da própria rota (ex.: um dataset ainda sem contagem para reconciliar) traz o motivo em texto em detail, na língua do pedido, e o seu code quando o texto está no catálogo (senão null).ValidationErrorResponserate_limited) ou, num pedido de scan, fila de scans do workspace cheia (scan_queue_full).object/api/v1/catalog/metadata-qualityTokenQualidade do catálogo e dos metadados do workspace (cartão #270): % de
checks cumpridos (owner, descrição, classificação, domínio, contrato, regras,
descrição atualizada, owner ativo, datasets sem uso com owner, docs das
colunas coerentes) — os não aplicáveis ficam fora do denominador —, por
dimensão, por check e por domínio; problemas com sugestões (README gerado,
import do catálogo externo), meta, tendência diária e cobertura do catálogo
externo. Os 50 piores datasets vêm em datasets; o CSV leva todos. Só
leitura, zero LLM, número fixo de queries.
auth_required), inválido, expirado ou revogado (token_invalid).ErrorResponsetoken_read_only), workspace suspenso (workspace_suspended), quota da organização esgotada (org_quota, com plan e limit) ou acesso negado pela política do workspace.ErrorResponsevalidation_error): detail lista os campos. Uma recusa da própria rota (ex.: um dataset ainda sem contagem para reconciliar) traz o motivo em texto em detail, na língua do pedido, e o seu code quando o texto está no catálogo (senão null).ValidationErrorResponserate_limited) ou, num pedido de scan, fila de scans do workspace cheia (scan_queue_full).object/api/v1/catalog/metadata-quality.csvTokenExport CSV para um pack de governação/procurement do cliente: por dataset (estado de cada check e códigos dos problemas) ou o resumo com meta e cobertura por check. Só metadados — nomes, contagens e códigos.
| Nombre | En | Tipo | Descripción |
|---|---|---|---|
| level | query | "datasets" | "summary"= "datasets" | datasets (uma linha por dataset) | summary (workspace e domínios) |
auth_required), inválido, expirado ou revogado (token_invalid).ErrorResponsetoken_read_only), workspace suspenso (workspace_suspended), quota da organização esgotada (org_quota, com plan e limit) ou acesso negado pela política do workspace.ErrorResponsevalidation_error): detail lista os campos. Uma recusa da própria rota (ex.: um dataset ainda sem contagem para reconciliar) traz o motivo em texto em detail, na língua do pedido, e o seu code quando o texto está no catálogo (senão null).ValidationErrorResponserate_limited) ou, num pedido de scan, fila de scans do workspace cheia (scan_queue_full).object/api/v1/domains/suggestionsTokenDomínio sugerido para os datasets sem domínio, pela maioria das ligações de
linhagem (de qualquer tipo, uma por par de datasets) a datasets já curados: um
domínio com pelo menos metade das ligações e sem empate. Os empates vêm em
ambiguous, com os candidatos. Cada sugestão traz os votos, o total de
ligações, até 3 colunas via, os tipos de aresta, inferred_only e a
signature da evidência. Admins veem todas; quem gere domínios só as desses
domínios; os outros levam 403. Um vizinho invisível conta no total e vem como
«Dataset restrito». Só leitura, zero LLM.
auth_required), inválido, expirado ou revogado (token_invalid).ErrorResponsetoken_read_only), workspace suspenso (workspace_suspended), quota da organização esgotada (org_quota, com plan e limit) ou acesso negado pela política do workspace.ErrorResponsevalidation_error): detail lista os campos. Uma recusa da própria rota (ex.: um dataset ainda sem contagem para reconciliar) traz o motivo em texto em detail, na língua do pedido, e o seu code quando o texto está no catálogo (senão null).ValidationErrorResponserate_limited) ou, num pedido de scan, fila de scans do workspace cheia (scan_queue_full).object/api/v1/domainsTokenauth_required), inválido, expirado ou revogado (token_invalid).ErrorResponsetoken_read_only), workspace suspenso (workspace_suspended), quota da organização esgotada (org_quota, com plan e limit) ou acesso negado pela política do workspace.ErrorResponsevalidation_error): detail lista os campos. Uma recusa da própria rota (ex.: um dataset ainda sem contagem para reconciliar) traz o motivo em texto em detail, na língua do pedido, e o seu code quando o texto está no catálogo (senão null).ValidationErrorResponserate_limited) ou, num pedido de scan, fila de scans do workspace cheia (scan_queue_full).object/api/v1/domains/{domain_id}Token| Nombre | En | Tipo | Descripción |
|---|---|---|---|
| domain_id* | path | string |
auth_required), inválido, expirado ou revogado (token_invalid).ErrorResponsetoken_read_only), workspace suspenso (workspace_suspended), quota da organização esgotada (org_quota, com plan e limit) ou acesso negado pela política do workspace.ErrorResponsevalidation_error): detail lista os campos. Uma recusa da própria rota (ex.: um dataset ainda sem contagem para reconciliar) traz o motivo em texto em detail, na língua do pedido, e o seu code quando o texto está no catálogo (senão null).ValidationErrorResponserate_limited) ou, num pedido de scan, fila de scans do workspace cheia (scan_queue_full).object/api/v1/domains/{domain_id}/sloTokenSLO do data product: a forma de /dashboard/slo restrita aos datasets do
domínio e avaliada contra o SLA declarado, com o breakdown por subtipo.
| Nombre | En | Tipo | Descripción |
|---|---|---|---|
| domain_id* | path | string | |
| months | query | integer= 6 |
auth_required), inválido, expirado ou revogado (token_invalid).ErrorResponsetoken_read_only), workspace suspenso (workspace_suspended), quota da organização esgotada (org_quota, com plan e limit) ou acesso negado pela política do workspace.ErrorResponsevalidation_error): detail lista os campos. Uma recusa da própria rota (ex.: um dataset ainda sem contagem para reconciliar) traz o motivo em texto em detail, na língua do pedido, e o seu code quando o texto está no catálogo (senão null).ValidationErrorResponserate_limited) ou, num pedido de scan, fila de scans do workspace cheia (scan_queue_full).object/api/v1/domains/{domain_id}/slo.csvTokenExport CSV do SLO do domínio: uma linha por dataset-dia, com os motivos.
| Nombre | En | Tipo | Descripción |
|---|---|---|---|
| domain_id* | path | string | |
| months | query | integer= 6 |
auth_required), inválido, expirado ou revogado (token_invalid).ErrorResponsetoken_read_only), workspace suspenso (workspace_suspended), quota da organização esgotada (org_quota, com plan e limit) ou acesso negado pela política do workspace.ErrorResponsevalidation_error): detail lista os campos. Uma recusa da própria rota (ex.: um dataset ainda sem contagem para reconciliar) traz o motivo em texto em detail, na língua do pedido, e o seu code quando o texto está no catálogo (senão null).ValidationErrorResponserate_limited) ou, num pedido de scan, fila de scans do workspace cheia (scan_queue_full).object/api/v1/domains/{domain_id}/readinessTokenReadiness do data product para um caso de uso (cartão #152): ready |
ready_with_warnings | not_ready, bloqueadores e avisos com code estável,
detalhe por dataset e valid_until (próximo scan agendado). Zero LLM, só
leitura (tokens dvk_* incluídos). Ver docs/CI_QUALITY_GATE.md.
| Nombre | En | Tipo | Descripción |
|---|---|---|---|
| domain_id* | path | string | |
| use_case | query | string= "bi" | rag | ml | agente | bi (treino = ml) |
auth_required), inválido, expirado ou revogado (token_invalid).ErrorResponsetoken_read_only), workspace suspenso (workspace_suspended), quota da organização esgotada (org_quota, com plan e limit) ou acesso negado pela política do workspace.ErrorResponsevalidation_error): detail lista os campos. Uma recusa da própria rota (ex.: um dataset ainda sem contagem para reconciliar) traz o motivo em texto em detail, na língua do pedido, e o seu code quando o texto está no catálogo (senão null).ValidationErrorResponserate_limited) ou, num pedido de scan, fila de scans do workspace cheia (scan_queue_full).object/api/v1/domains/{domain_id}/verdictTokenVeredito do data product para o gate de CI (cartão #148): pass | warn |
fail | unknown, agregado dos vereditos dos seus datasets — fail se algum
falha, warn se algum avisa, unknown se nenhum tem veredito (sem datasets
ou sem scans), pass caso contrário. Traz as contagens por veredito e o
veredito de cada dataset (o mesmo de GET /datasets/{dataset_id}/verdict),
por nome. with_policy=false deixa de fora a política de dados. Só leitura
(tokens dvk_* incluídos). Ver docs/CI_QUALITY_GATE.md.
| Nombre | En | Tipo | Descripción |
|---|---|---|---|
| domain_id* | path | string | |
| with_policy | query | boolean= true | conta as violações da política de dados (como o gate de CI) |
auth_required), inválido, expirado ou revogado (token_invalid).ErrorResponsetoken_read_only), workspace suspenso (workspace_suspended), quota da organização esgotada (org_quota, com plan e limit) ou acesso negado pela política do workspace.ErrorResponsevalidation_error): detail lista os campos. Uma recusa da própria rota (ex.: um dataset ainda sem contagem para reconciliar) traz o motivo em texto em detail, na língua do pedido, e o seu code quando o texto está no catálogo (senão null).ValidationErrorResponserate_limited) ou, num pedido de scan, fila de scans do workspace cheia (scan_queue_full).object/api/v1/domains/{domain_id}/contractTokenContratos ODCS do data product (cartão #148): um bundle YAML com um documento
por dataset do domínio, separados por --- e ordenados pelo nome do dataset.
Cada contrato leva domain e dataProduct (o nome do domínio), tenant (o
workspace) e team com o owner do domínio, só pelo nome. Sem datasets, o
bundle vem vazio. Só leitura (tokens dvk_* incluídos).
| Nombre | En | Tipo | Descripción |
|---|---|---|---|
| domain_id* | path | string |
auth_required), inválido, expirado ou revogado (token_invalid).ErrorResponsetoken_read_only), workspace suspenso (workspace_suspended), quota da organização esgotada (org_quota, com plan e limit) ou acesso negado pela política do workspace.ErrorResponsevalidation_error): detail lista os campos. Uma recusa da própria rota (ex.: um dataset ainda sem contagem para reconciliar) traz o motivo em texto em detail, na língua do pedido, e o seu code quando o texto está no catálogo (senão null).ValidationErrorResponserate_limited) ou, num pedido de scan, fila de scans do workspace cheia (scan_queue_full).object/api/v1/domains/{domain_id}/conformanceTokenConformidade do data product (cartão #154): por dataset, se tem owner,
contrato aceite, README aprovado, classificação revista, regra de freshness,
alvo e cumprimento de SLO, AI-readiness e política sem violações. Checks não
aplicáveis não penalizam; conformance_pct é None sem datasets. Gaps por
impacto e até 5 próximas ações. Só leitura, zero LLM, número fixo de queries.
| Nombre | En | Tipo | Descripción |
|---|---|---|---|
| domain_id* | path | string |
auth_required), inválido, expirado ou revogado (token_invalid).ErrorResponsetoken_read_only), workspace suspenso (workspace_suspended), quota da organização esgotada (org_quota, com plan e limit) ou acesso negado pela política do workspace.ErrorResponsevalidation_error): detail lista os campos. Uma recusa da própria rota (ex.: um dataset ainda sem contagem para reconciliar) traz o motivo em texto em detail, na língua do pedido, e o seu code quando o texto está no catálogo (senão null).ValidationErrorResponserate_limited) ou, num pedido de scan, fila de scans do workspace cheia (scan_queue_full).object/api/v1/domains/{domain_id}/metadata-qualityTokenQualidade dos metadados do domínio (cartão #270): os checks de completude, atualidade e coerência de cada dataset do domínio, problemas com sugestões, meta do domínio e tendência diária. Só leitura, zero LLM, número fixo de queries.
| Nombre | En | Tipo | Descripción |
|---|---|---|---|
| domain_id* | path | string |
auth_required), inválido, expirado ou revogado (token_invalid).ErrorResponsetoken_read_only), workspace suspenso (workspace_suspended), quota da organização esgotada (org_quota, com plan e limit) ou acesso negado pela política do workspace.ErrorResponsevalidation_error): detail lista os campos. Uma recusa da própria rota (ex.: um dataset ainda sem contagem para reconciliar) traz o motivo em texto em detail, na língua do pedido, e o seu code quando o texto está no catálogo (senão null).ValidationErrorResponserate_limited) ou, num pedido de scan, fila de scans do workspace cheia (scan_queue_full).object/api/v1/domains/{domain_id}/trust-factsTokenFactos de confiança do data product (cartão #153): agregado (decisões,
vereditos, médias, issues, sensibilidade) e os factos de cada dataset. ETag
+ If-None-Match → 304. Só leitura, tokens dvk_* incluídos.
| Nombre | En | Tipo | Descripción |
|---|---|---|---|
| domain_id* | path | string | |
| detail | query | string= "minimal" | minimal (só contagens) | full (com nomes) |
ETag enviado em If-None-Match.auth_required), inválido, expirado ou revogado (token_invalid).ErrorResponsetoken_read_only), workspace suspenso (workspace_suspended), quota da organização esgotada (org_quota, com plan e limit) ou acesso negado pela política do workspace.ErrorResponsevalidation_error): detail lista os campos. Uma recusa da própria rota (ex.: um dataset ainda sem contagem para reconciliar) traz o motivo em texto em detail, na língua do pedido, e o seu code quando o texto está no catálogo (senão null).ValidationErrorResponserate_limited) ou, num pedido de scan, fila de scans do workspace cheia (scan_queue_full).object/api/v1/domains/{domain_id}/data-policyTokenPolítica de dados do domínio (parcial) e a efetiva que os datasets herdam.
| Nombre | En | Tipo | Descripción |
|---|---|---|---|
| domain_id* | path | string |
auth_required), inválido, expirado ou revogado (token_invalid).ErrorResponsetoken_read_only), workspace suspenso (workspace_suspended), quota da organização esgotada (org_quota, com plan e limit) ou acesso negado pela política do workspace.ErrorResponsevalidation_error): detail lista os campos. Uma recusa da própria rota (ex.: um dataset ainda sem contagem para reconciliar) traz o motivo em texto em detail, na língua do pedido, e o seu code quando o texto está no catálogo (senão null).ValidationErrorResponserate_limited) ou, num pedido de scan, fila de scans do workspace cheia (scan_queue_full).object/api/v1/domains/{domain_id}/versionsTokenVersões publicadas do data product, a mais recente primeiro: versão
(MAJOR.MINOR), bump (major quebra o consumidor, minor é compatível),
resumo legível e contagens. Vazia até à 1.ª publicação. Só leitura.
| Nombre | En | Tipo | Descripción |
|---|---|---|---|
| domain_id* | path | string |
auth_required), inválido, expirado ou revogado (token_invalid).ErrorResponsetoken_read_only), workspace suspenso (workspace_suspended), quota da organização esgotada (org_quota, com plan e limit) ou acesso negado pela política do workspace.ErrorResponsevalidation_error): detail lista os campos. Uma recusa da própria rota (ex.: um dataset ainda sem contagem para reconciliar) traz o motivo em texto em detail, na língua do pedido, e o seu code quando o texto está no catálogo (senão null).ValidationErrorResponserate_limited) ou, num pedido de scan, fila de scans do workspace cheia (scan_queue_full).object/api/v1/domains/{domain_id}/versions/{from_version}/diff/{to_version}TokenMudanças entre duas versões do data product, com o bump que implicam.
from_version aceita uma versão ou latest (a última publicada; sem nenhuma,
compara com nada); to_version aceita uma versão ou current (o estado atual
tal como seria publicado). Só a última versão (latest ou pelo nome) até
current pré-visualiza a publicação e traz next_version; de uma versão
mais antiga, next_version é null. Cada mudança tem impact
(major | minor). 404 para uma versão que não existe; 422 para latest
no destino ou current na origem. Só leitura.
| Nombre | En | Tipo | Descripción |
|---|---|---|---|
| domain_id* | path | string | |
| from_version* | path | string | |
| to_version* | path | string |
auth_required), inválido, expirado ou revogado (token_invalid).ErrorResponsetoken_read_only), workspace suspenso (workspace_suspended), quota da organização esgotada (org_quota, com plan e limit) ou acesso negado pela política do workspace.ErrorResponsevalidation_error): detail lista os campos. Uma recusa da própria rota (ex.: um dataset ainda sem contagem para reconciliar) traz o motivo em texto em detail, na língua do pedido, e o seu code quando o texto está no catálogo (senão null).ValidationErrorResponserate_limited) ou, num pedido de scan, fila de scans do workspace cheia (scan_queue_full).object/api/v1/domains/{domain_id}/consumersTokenQuem depende do data product: utilizadores e consumidores externos registados
(source=manual) e os sistemas de IA e exposures dbt que usam os seus datasets
(source=derived). by_kind conta os quatro tipos (user, ai_system,
dbt_exposure, external) e summary é a frase de impacto («3 sistemas de IA e
2 dashboards dependem deste produto»), null sem consumidores. Um consumidor com
channel_id recebe o aviso de uma violação crítica do SLA. Só leitura.
| Nombre | En | Tipo | Descripción |
|---|---|---|---|
| domain_id* | path | string |
auth_required), inválido, expirado ou revogado (token_invalid).ErrorResponsetoken_read_only), workspace suspenso (workspace_suspended), quota da organização esgotada (org_quota, com plan e limit) ou acesso negado pela política do workspace.ErrorResponsevalidation_error): detail lista os campos. Uma recusa da própria rota (ex.: um dataset ainda sem contagem para reconciliar) traz o motivo em texto em detail, na língua do pedido, e o seu code quando o texto está no catálogo (senão null).ValidationErrorResponserate_limited) ou, num pedido de scan, fila de scans do workspace cheia (scan_queue_full).object/api/v1/domains/{domain_id}/grantsTokenAs equipas com acesso ao domínio — visível a todo o workspace (§2.4: é o que permite pedir acesso a quem não o tem).
| Nombre | En | Tipo | Descripción |
|---|---|---|---|
| domain_id* | path | string |
auth_required), inválido, expirado ou revogado (token_invalid).ErrorResponsetoken_read_only), workspace suspenso (workspace_suspended), quota da organização esgotada (org_quota, com plan e limit) ou acesso negado pela política do workspace.ErrorResponsevalidation_error): detail lista os campos. Uma recusa da própria rota (ex.: um dataset ainda sem contagem para reconciliar) traz o motivo em texto em detail, na língua do pedido, e o seu code quando o texto está no catálogo (senão null).ValidationErrorResponserate_limited) ou, num pedido de scan, fila de scans do workspace cheia (scan_queue_full).objectExecuções de profiling e regras.
/api/v1/scansTokenauth_required), inválido, expirado ou revogado (token_invalid).ErrorResponseplan_limit); plan e limit dizem qual.PlanLimitErrorResponsetoken_read_only), workspace suspenso (workspace_suspended), quota da organização esgotada (org_quota, com plan e limit) ou acesso negado pela política do workspace.ErrorResponsevalidation_error): detail lista os campos. Uma recusa da própria rota (ex.: um dataset ainda sem contagem para reconciliar) traz o motivo em texto em detail, na língua do pedido, e o seu code quando o texto está no catálogo (senão null).ValidationErrorResponserate_limited) ou, num pedido de scan, fila de scans do workspace cheia (scan_queue_full).object/api/v1/scansTokenScans mais recentes, opcionalmente filtrados por conexão.
| Nombre | En | Tipo | Descripción |
|---|---|---|---|
| connection_id | query | string | null | |
| limit | query | integer= 50 | itens por página (1–500) |
| offset | query | integer= 0 | itens a saltar; o total vem em X-Total-Count |
auth_required), inválido, expirado ou revogado (token_invalid).ErrorResponsetoken_read_only), workspace suspenso (workspace_suspended), quota da organização esgotada (org_quota, com plan e limit) ou acesso negado pela política do workspace.ErrorResponsevalidation_error): detail lista os campos. Uma recusa da própria rota (ex.: um dataset ainda sem contagem para reconciliar) traz o motivo em texto em detail, na língua do pedido, e o seu code quando o texto está no catálogo (senão null).ValidationErrorResponserate_limited) ou, num pedido de scan, fila de scans do workspace cheia (scan_queue_full).object/api/v1/scans/{scan_id}TokenEstado e resultado de um scan.
| Nombre | En | Tipo | Descripción |
|---|---|---|---|
| scan_id* | path | string |
auth_required), inválido, expirado ou revogado (token_invalid).ErrorResponsetoken_read_only), workspace suspenso (workspace_suspended), quota da organização esgotada (org_quota, com plan e limit) ou acesso negado pela política do workspace.ErrorResponsevalidation_error): detail lista os campos. Uma recusa da própria rota (ex.: um dataset ainda sem contagem para reconciliar) traz o motivo em texto em detail, na língua do pedido, e o seu code quando o texto está no catálogo (senão null).ValidationErrorResponserate_limited) ou, num pedido de scan, fila de scans do workspace cheia (scan_queue_full).object/api/v1/scans/{scan_id}/liveTokenFotografia do teatro do scan — fallback por polling quando o
SSE /events/scans/{id}/stream não está disponível. Mesmo formato.
| Nombre | En | Tipo | Descripción |
|---|---|---|---|
| scan_id* | path | string |
auth_required), inválido, expirado ou revogado (token_invalid).ErrorResponsetoken_read_only), workspace suspenso (workspace_suspended), quota da organização esgotada (org_quota, com plan e limit) ou acesso negado pela política do workspace.ErrorResponsevalidation_error): detail lista os campos. Uma recusa da própria rota (ex.: um dataset ainda sem contagem para reconciliar) traz o motivo em texto em detail, na língua do pedido, e o seu code quando o texto está no catálogo (senão null).ValidationErrorResponserate_limited) ou, num pedido de scan, fila de scans do workspace cheia (scan_queue_full).objectProblemas de qualidade detetados.
/api/v1/issuesTokenIssues com filtros por severidade, tipo, estado, dataset e responsável.
| Nombre | En | Tipo | Descripción |
|---|---|---|---|
| severity | query | Severity | null | |
| type | query | IssueType | null | |
| status | query | IssueStatus | null | |
| dataset_id | query | string | null | |
| domain_id | query | string | null | id de domínio ou 'mine' (domínios de que sou owner/membro) |
| assignee | query | string | null | id de utilizador, 'me' ou 'none' (sem dono) |
| assignee_team | query | string | null | id de equipa, 'mine' (das minhas equipas) ou 'none' (sem equipa) |
| include_snoozed | query | boolean= false | incluir issues adiados (snoozed_until no futuro) |
| open_on | query | string (date) | null | só issues abertos nesse dia (YYYY-MM-DD, UTC) — calendário |
| issue_id | query | string | null | um issue concreto (links «ver problema», cartão #114) |
| dimension | query | string | null | dimensão de qualidade (ex.: completeness, validity) — pelo mapa tipo/subtipo → dimensão |
| sla | query | string | null | 'breached' = só os que passaram o alvo do SLA de resolução (sla_breached_at) |
| limit | query | integer= 50 | itens por página (1–500) |
| offset | query | integer= 0 | itens a saltar; o total vem em X-Total-Count |
auth_required), inválido, expirado ou revogado (token_invalid).ErrorResponsetoken_read_only), workspace suspenso (workspace_suspended), quota da organização esgotada (org_quota, com plan e limit) ou acesso negado pela política do workspace.ErrorResponsevalidation_error): detail lista os campos. Uma recusa da própria rota (ex.: um dataset ainda sem contagem para reconciliar) traz o motivo em texto em detail, na língua do pedido, e o seu code quando o texto está no catálogo (senão null).ValidationErrorResponserate_limited) ou, num pedido de scan, fila de scans do workspace cheia (scan_queue_full).object/api/v1/issues/boardTokenContadores estado × responsável e estado × equipa para o board de atividades, só sobre os datasets visíveis (ADR 0011 §2.4).
| Nombre | En | Tipo | Descripción |
|---|---|---|---|
| include_snoozed | query | boolean= false | |
| dataset_id | query | string | null | |
| domain_id | query | string | null | |
| assignee_team | query | string | null | id de equipa, 'mine' (das minhas equipas) ou 'none' (sem equipa) |
auth_required), inválido, expirado ou revogado (token_invalid).ErrorResponsetoken_read_only), workspace suspenso (workspace_suspended), quota da organização esgotada (org_quota, com plan e limit) ou acesso negado pela política do workspace.ErrorResponsevalidation_error): detail lista os campos. Uma recusa da própria rota (ex.: um dataset ainda sem contagem para reconciliar) traz o motivo em texto em detail, na língua do pedido, e o seu code quando o texto está no catálogo (senão null).ValidationErrorResponserate_limited) ou, num pedido de scan, fila de scans do workspace cheia (scan_queue_full).object/api/v1/issues/sla-reportTokenRelatório mensal de stewardship: abertos, fechados e fora do SLA de resolução, MTTA/MTTR (mediana e p90, em horas de relógio do SLA: por resolver e sem os adiamentos) e ageing das abertas, por domínio, equipa ou severidade. Só sobre os datasets visíveis para quem pede.
| Nombre | En | Tipo | Descripción |
|---|---|---|---|
| period | query | string | null | mês AAAA-MM (UTC), ex.: 2026-09; omissão = o mês atual |
| group_by | query | "domain" | "team" | "severity"= "domain" |
auth_required), inválido, expirado ou revogado (token_invalid).ErrorResponsetoken_read_only), workspace suspenso (workspace_suspended), quota da organização esgotada (org_quota, com plan e limit) ou acesso negado pela política do workspace.ErrorResponsevalidation_error): detail lista os campos. Uma recusa da própria rota (ex.: um dataset ainda sem contagem para reconciliar) traz o motivo em texto em detail, na língua do pedido, e o seu code quando o texto está no catálogo (senão null).ValidationErrorResponserate_limited) ou, num pedido de scan, fila de scans do workspace cheia (scan_queue_full).object/api/v1/issues/{issue_id}/eventsTokenRasto do issue (quem mudou estado/responsável/prazo, quando, de→para).
| Nombre | En | Tipo | Descripción |
|---|---|---|---|
| issue_id* | path | string |
auth_required), inválido, expirado ou revogado (token_invalid).ErrorResponsetoken_read_only), workspace suspenso (workspace_suspended), quota da organização esgotada (org_quota, com plan e limit) ou acesso negado pela política do workspace.ErrorResponsevalidation_error): detail lista os campos. Uma recusa da própria rota (ex.: um dataset ainda sem contagem para reconciliar) traz o motivo em texto em detail, na língua do pedido, e o seu code quando o texto está no catálogo (senão null).ValidationErrorResponserate_limited) ou, num pedido de scan, fila de scans do workspace cheia (scan_queue_full).object/api/v1/issues/{issue_id}/explanationTokenCartão de explicação de uma anomalia: métrica com a janela marcada, dimensão culpada (drill-down), upstream do lineage e diagnóstico IA. Um upstream invisível para quem pede é «Dataset restrito» (ADR 0011 §2.4).
| Nombre | En | Tipo | Descripción |
|---|---|---|---|
| issue_id* | path | string |
auth_required), inválido, expirado ou revogado (token_invalid).ErrorResponsetoken_read_only), workspace suspenso (workspace_suspended), quota da organização esgotada (org_quota, com plan e limit) ou acesso negado pela política do workspace.ErrorResponsevalidation_error): detail lista os campos. Uma recusa da própria rota (ex.: um dataset ainda sem contagem para reconciliar) traz o motivo em texto em detail, na língua do pedido, e o seu code quando o texto está no catálogo (senão null).ValidationErrorResponserate_limited) ou, num pedido de scan, fila de scans do workspace cheia (scan_queue_full).object/api/v1/issues/{issue_id}/impactTokenImpacto da issue (cartão #107): datasets a jusante pela linhagem e os consumidores dbt (exposures) que parte — «este nulo parte o dashboard de Receita». Os datasets a jusante invisíveis para quem pede são «Dataset restrito», sem nome nem id (ADR 0011 §2.4): o impacto continua honesto.
| Nombre | En | Tipo | Descripción |
|---|---|---|---|
| issue_id* | path | string |
auth_required), inválido, expirado ou revogado (token_invalid).ErrorResponsetoken_read_only), workspace suspenso (workspace_suspended), quota da organização esgotada (org_quota, com plan e limit) ou acesso negado pela política do workspace.ErrorResponsevalidation_error): detail lista os campos. Uma recusa da própria rota (ex.: um dataset ainda sem contagem para reconciliar) traz o motivo em texto em detail, na língua do pedido, e o seu code quando o texto está no catálogo (senão null).ValidationErrorResponserate_limited) ou, num pedido de scan, fila de scans do workspace cheia (scan_queue_full).objectIssues relacionadas agrupadas via linhagem.
/api/v1/incidentsTokenIncidentes ativos, do mais recente para o mais antigo — só os cuja raiz é visível para quem pede (ADR 0011 §2.4).
auth_required), inválido, expirado ou revogado (token_invalid).ErrorResponsetoken_read_only), workspace suspenso (workspace_suspended), quota da organização esgotada (org_quota, com plan e limit) ou acesso negado pela política do workspace.ErrorResponsevalidation_error): detail lista os campos. Uma recusa da própria rota (ex.: um dataset ainda sem contagem para reconciliar) traz o motivo em texto em detail, na língua do pedido, e o seu code quando o texto está no catálogo (senão null).ValidationErrorResponserate_limited) ou, num pedido de scan, fila de scans do workspace cheia (scan_queue_full).object/api/v1/incidents/{incident_id}TokenIncidente com as issues agrupadas e o dataset raiz.
| Nombre | En | Tipo | Descripción |
|---|---|---|---|
| incident_id* | path | string |
auth_required), inválido, expirado ou revogado (token_invalid).ErrorResponsetoken_read_only), workspace suspenso (workspace_suspended), quota da organização esgotada (org_quota, com plan e limit) ou acesso negado pela política do workspace.ErrorResponsevalidation_error): detail lista os campos. Uma recusa da própria rota (ex.: um dataset ainda sem contagem para reconciliar) traz o motivo em texto em detail, na língua do pedido, e o seu code quando o texto está no catálogo (senão null).ValidationErrorResponserate_limited) ou, num pedido de scan, fila de scans do workspace cheia (scan_queue_full).objectTickets externos (Jira, Linear e outros) ligados a issues, incidentes, sugestões, propostas de contrato e classificações de colunas.
/api/v1/ticketsTokenTickets externos ligados a uma entidade — issue, incidente (inc-…), sugestão,
proposta de contrato ou classificação de coluna —, do mais antigo para o mais
recente. O estado não é sincronizado com a ferramenta de tickets: um ticket
criado pelo DataVault nasce open; um ligado à mão fica unknown.
| Nombre | En | Tipo | Descripción |
|---|---|---|---|
| entity_type* | query | TicketEntityType | |
| entity_id* | query | string |
auth_required), inválido, expirado ou revogado (token_invalid).ErrorResponsetoken_read_only), workspace suspenso (workspace_suspended), quota da organização esgotada (org_quota, com plan e limit) ou acesso negado pela política do workspace.ErrorResponsevalidation_error): detail lista os campos. Uma recusa da própria rota (ex.: um dataset ainda sem contagem para reconciliar) traz o motivo em texto em detail, na língua do pedido, e o seu code quando o texto está no catálogo (senão null).ValidationErrorResponserate_limited) ou, num pedido de scan, fila de scans do workspace cheia (scan_queue_full).object/api/v1/tickets/integrations/{integration_id}/targetsTokenProjetos e tipos de issue (Jira) ou equipas (Linear) onde a integração pode criar tickets, lidos agora do fornecedor — para escolher o destino no cartão do assistente. Só leitura (GET no Jira; query GraphQL no Linear), pelo caminho anti-SSRF. 404 integração de outro workspace, 402 plano, 502 o fornecedor falhou.
| Nombre | En | Tipo | Descripción |
|---|---|---|---|
| integration_id* | path | string |
auth_required), inválido, expirado ou revogado (token_invalid).ErrorResponseplan_limit); plan e limit dizem qual.PlanLimitErrorResponsetoken_read_only), workspace suspenso (workspace_suspended), quota da organização esgotada (org_quota, com plan e limit) ou acesso negado pela política do workspace.ErrorResponsevalidation_error): detail lista os campos. Uma recusa da própria rota (ex.: um dataset ainda sem contagem para reconciliar) traz o motivo em texto em detail, na língua do pedido, e o seu code quando o texto está no catálogo (senão null).ValidationErrorResponserate_limited) ou, num pedido de scan, fila de scans do workspace cheia (scan_queue_full).objectSinais de anomalia por confirmar.
/api/v1/signalsTokenSinais de anomalia (monitores automáticos) por confirmar ou descartados.
| Nombre | En | Tipo | Descripción |
|---|---|---|---|
| status | query | string | null | |
| dataset_id | query | string | null | |
| limit | query | integer= 100 | itens por página (1–500) |
| offset | query | integer= 0 | itens a saltar; o total vem em X-Total-Count |
auth_required), inválido, expirado ou revogado (token_invalid).ErrorResponsetoken_read_only), workspace suspenso (workspace_suspended), quota da organização esgotada (org_quota, com plan e limit) ou acesso negado pela política do workspace.ErrorResponsevalidation_error): detail lista os campos. Uma recusa da própria rota (ex.: um dataset ainda sem contagem para reconciliar) traz o motivo em texto em detail, na língua do pedido, e o seu code quando o texto está no catálogo (senão null).ValidationErrorResponserate_limited) ou, num pedido de scan, fila de scans do workspace cheia (scan_queue_full).objectSugestões de melhoria (heurísticas e IA).
/api/v1/suggestionsTokenSugestões de melhoria com filtros por dataset, estado e categoria. Pagina com limit/offset; o total filtrado vem no header X-Total-Count.
| Nombre | En | Tipo | Descripción |
|---|---|---|---|
| dataset_id | query | string | null | |
| status | query | SuggestionStatus | null | |
| category | query | SuggestionCategory | null | |
| limit | query | integer= 50 | itens por página (1–500) |
| offset | query | integer= 0 | itens a saltar; o total vem em X-Total-Count |
auth_required), inválido, expirado ou revogado (token_invalid).ErrorResponsetoken_read_only), workspace suspenso (workspace_suspended), quota da organização esgotada (org_quota, com plan e limit) ou acesso negado pela política do workspace.ErrorResponsevalidation_error): detail lista os campos. Uma recusa da própria rota (ex.: um dataset ainda sem contagem para reconciliar) traz o motivo em texto em detail, na língua do pedido, e o seu code quando o texto está no catálogo (senão null).ValidationErrorResponserate_limited) ou, num pedido de scan, fila de scans do workspace cheia (scan_queue_full).object/api/v1/suggestions/{suggestion_id}/eventsTokenTrilho de auditoria da sugestão: quem mudou o quê, quando e porquê.
| Nombre | En | Tipo | Descripción |
|---|---|---|---|
| suggestion_id* | path | string |
auth_required), inválido, expirado ou revogado (token_invalid).ErrorResponsetoken_read_only), workspace suspenso (workspace_suspended), quota da organização esgotada (org_quota, com plan e limit) ou acesso negado pela política do workspace.ErrorResponsevalidation_error): detail lista os campos. Uma recusa da própria rota (ex.: um dataset ainda sem contagem para reconciliar) traz o motivo em texto em detail, na língua do pedido, e o seu code quando o texto está no catálogo (senão null).ValidationErrorResponserate_limited) ou, num pedido de scan, fila de scans do workspace cheia (scan_queue_full).object/api/v1/suggestions/{suggestion_id}/pull-requestsToken| Nombre | En | Tipo | Descripción |
|---|---|---|---|
| suggestion_id* | path | string |
auth_required), inválido, expirado ou revogado (token_invalid).ErrorResponsetoken_read_only), workspace suspenso (workspace_suspended), quota da organização esgotada (org_quota, com plan e limit) ou acesso negado pela política do workspace.ErrorResponsevalidation_error): detail lista os campos. Uma recusa da própria rota (ex.: um dataset ainda sem contagem para reconciliar) traz o motivo em texto em detail, na língua do pedido, e o seu code quando o texto está no catálogo (senão null).ValidationErrorResponserate_limited) ou, num pedido de scan, fila de scans do workspace cheia (scan_queue_full).objectRegras de qualidade ativas.
/api/v1/rulesTokenRegras de qualidade, opcionalmente de um dataset. Pagina com limit/offset; o total filtrado vem no header X-Total-Count.
| Nombre | En | Tipo | Descripción |
|---|---|---|---|
| dataset_id | query | string | null | |
| limit | query | integer= 50 | itens por página (1–500) |
| offset | query | integer= 0 | itens a saltar; o total vem em X-Total-Count |
auth_required), inválido, expirado ou revogado (token_invalid).ErrorResponsetoken_read_only), workspace suspenso (workspace_suspended), quota da organização esgotada (org_quota, com plan e limit) ou acesso negado pela política do workspace.ErrorResponsevalidation_error): detail lista os campos. Uma recusa da própria rota (ex.: um dataset ainda sem contagem para reconciliar) traz o motivo em texto em detail, na língua do pedido, e o seu code quando o texto está no catálogo (senão null).ValidationErrorResponserate_limited) ou, num pedido de scan, fila de scans do workspace cheia (scan_queue_full).object/api/v1/rules/{rule_id}/failing-rows.sqlTokenQuery que lista as linhas que falham a regra, para correres no teu warehouse.
Só texto: o DataVault não a executa nem guarda linhas. Os nomes de tabela e
de coluna saem citados no dialeto e o limite é o LIMIT (ou TOP) dele. Os
avisos (aproximações, LIKE em vez de regex) vão em comentários no topo.
Sem tradução por linha a resposta é 204, com o motivo em X-DataVault-Reason:
not_row_level (contagem de linhas), stream_rule, no_dataset,
no_sql_source (a fonte não tem SQL: indica dialect), no_column,
no_timestamp_column, regex_untranslatable, reference_too_large (lista
acima de 500 valores), registry_reference, referential_other_connection,
invalid_params, sql_untranslatable ou external_source (a regra accuracy
confirma cada valor numa fonte autoritativa). Com um token dvk_, o pedido fica no
trilho de auditoria como leitura (failing_rows_sql_read).
| Nombre | En | Tipo | Descripción |
|---|---|---|---|
| rule_id* | path | string | |
| dialect | query | string | null | postgres | mysql | mssql | bigquery | snowflake | databricks | sqlite. Por omissão, o da fonte do dataset. |
| limit | query | integer= 100 | Máximo de linhas que a query devolve. |
X-DataVault-Dialect.stringtext/plainX-DataVault-Reason.auth_required), inválido, expirado ou revogado (token_invalid).ErrorResponsetoken_read_only), workspace suspenso (workspace_suspended), quota da organização esgotada (org_quota, com plan e limit) ou acesso negado pela política do workspace.ErrorResponsevalidation_error): detail lista os campos. Uma recusa da própria rota (ex.: um dataset ainda sem contagem para reconciliar) traz o motivo em texto em detail, na língua do pedido, e o seu code quando o texto está no catálogo (senão null).ValidationErrorResponserate_limited) ou, num pedido de scan, fila de scans do workspace cheia (scan_queue_full).object/api/v1/datasets/{dataset_id}/rules/exportTokenRegras ativas do dataset como ficheiro do formato pedido — «são os teus testes».
No SodaCL e no GX só sai o que o POST /rules/import lê de volta como a
mesma regra (mesma tabela, coluna, tipo e parâmetros; uma tolerância a zero é
a regra sem tolerância); o resto fica em unsupported, com o motivo, no
cabeçalho do ficheiro e nos headers X-Rules-*. A severidade não segue no
SodaCL nem no GX: o import aplica a do pedido. format=dbt é o mesmo
ficheiro de GET /datasets/{id}/rules.dbt.yml. Sem LLM e sem tocar na fonte.
| Nombre | En | Tipo | Descripción |
|---|---|---|---|
| dataset_id* | path | string | |
| format | query | "dbt" | "sodacl" | "gx"= "dbt" | dbt (schema.yml) | sodacl (checks YAML) | gx (suite JSON do Great Expectations 1.x) |
auth_required), inválido, expirado ou revogado (token_invalid).ErrorResponsetoken_read_only), workspace suspenso (workspace_suspended), quota da organização esgotada (org_quota, com plan e limit) ou acesso negado pela política do workspace.ErrorResponsevalidation_error): detail lista os campos. Uma recusa da própria rota (ex.: um dataset ainda sem contagem para reconciliar) traz o motivo em texto em detail, na língua do pedido, e o seu code quando o texto está no catálogo (senão null).ValidationErrorResponserate_limited) ou, num pedido de scan, fila de scans do workspace cheia (scan_queue_full).object/api/v1/rules/exportTokenRegras ativas dos datasets que quem pede vê, num só ficheiro SodaCL.
Uma secção checks for <tabela> por dataset (schema.tabela quando duas
tabelas têm o mesmo nome). O que não volta igual pelo POST /rules/import
fica em unsupported, no cabeçalho do ficheiro e nos headers X-Rules-*.
| Nombre | En | Tipo | Descripción |
|---|---|---|---|
| format | query | string= "sodacl" | Só sodacl: as suites GX e os schema.yml do dbt são por dataset. |
auth_required), inválido, expirado ou revogado (token_invalid).ErrorResponsetoken_read_only), workspace suspenso (workspace_suspended), quota da organização esgotada (org_quota, com plan e limit) ou acesso negado pela política do workspace.ErrorResponsevalidation_error): detail lista os campos. Uma recusa da própria rota (ex.: um dataset ainda sem contagem para reconciliar) traz o motivo em texto em detail, na língua do pedido, e o seu code quando o texto está no catálogo (senão null).ValidationErrorResponserate_limited) ou, num pedido de scan, fila de scans do workspace cheia (scan_queue_full).objectPacks de regras curados por indústria: pré-visualizar e propor ao dataset.
/api/v1/rule-packsTokenauth_required), inválido, expirado ou revogado (token_invalid).ErrorResponsetoken_read_only), workspace suspenso (workspace_suspended), quota da organização esgotada (org_quota, com plan e limit) ou acesso negado pela política do workspace.ErrorResponsevalidation_error): detail lista os campos. Uma recusa da própria rota (ex.: um dataset ainda sem contagem para reconciliar) traz o motivo em texto em detail, na língua do pedido, e o seu code quando o texto está no catálogo (senão null).ValidationErrorResponserate_limited) ou, num pedido de scan, fila de scans do workspace cheia (scan_queue_full).object/api/v1/rule-packs/{pack_id}Token| Nombre | En | Tipo | Descripción |
|---|---|---|---|
| pack_id* | path | string |
auth_required), inválido, expirado ou revogado (token_invalid).ErrorResponsetoken_read_only), workspace suspenso (workspace_suspended), quota da organização esgotada (org_quota, com plan e limit) ou acesso negado pela política do workspace.ErrorResponsevalidation_error): detail lista os campos. Uma recusa da própria rota (ex.: um dataset ainda sem contagem para reconciliar) traz o motivo em texto em detail, na língua do pedido, e o seu code quando o texto está no catálogo (senão null).ValidationErrorResponserate_limited) ou, num pedido de scan, fila de scans do workspace cheia (scan_queue_full).object/api/v1/rule-packs/{pack_id}/previewTokenO que aplicar o pack criaria neste dataset — sem escrever nada.
| Nombre | En | Tipo | Descripción |
|---|---|---|---|
| pack_id* | path | string | |
| dataset_id* | query | string |
auth_required), inválido, expirado ou revogado (token_invalid).ErrorResponsetoken_read_only), workspace suspenso (workspace_suspended), quota da organização esgotada (org_quota, com plan e limit) ou acesso negado pela política do workspace.ErrorResponsevalidation_error): detail lista os campos. Uma recusa da própria rota (ex.: um dataset ainda sem contagem para reconciliar) traz o motivo em texto em detail, na língua do pedido, e o seu code quando o texto está no catálogo (senão null).ValidationErrorResponserate_limited) ou, num pedido de scan, fila de scans do workspace cheia (scan_queue_full).objectClusters de registos duplicados.
/api/v1/duplicatesTokenClusters de registos duplicados detetados nos scans, com filtros por dataset e estado. Pagina com limit/offset; o total filtrado vem no header X-Total-Count.
| Nombre | En | Tipo | Descripción |
|---|---|---|---|
| dataset_id | query | string | null | |
| status | query | string | null | |
| limit | query | integer= 50 | itens por página (1–500) |
| offset | query | integer= 0 | itens a saltar; o total vem em X-Total-Count |
auth_required), inválido, expirado ou revogado (token_invalid).ErrorResponsetoken_read_only), workspace suspenso (workspace_suspended), quota da organização esgotada (org_quota, com plan e limit) ou acesso negado pela política do workspace.ErrorResponsevalidation_error): detail lista os campos. Uma recusa da própria rota (ex.: um dataset ainda sem contagem para reconciliar) traz o motivo em texto em detail, na língua do pedido, e o seu code quando o texto está no catálogo (senão null).ValidationErrorResponserate_limited) ou, num pedido de scan, fila de scans do workspace cheia (scan_queue_full).objectLinhagem entre datasets e o fluxo de qualidade por camada (Sankey).
/api/v1/lineage/sankeyTokenSankey de qualidade: nós por camada medallion (score + volume) e ligações da linhagem com largura = volume estimado e cor = faixa do score de origem.
| Nombre | En | Tipo | Descripción |
|---|---|---|---|
| connection_id | query | string | null | Limitar a uma conexão |
auth_required), inválido, expirado ou revogado (token_invalid).ErrorResponsetoken_read_only), workspace suspenso (workspace_suspended), quota da organização esgotada (org_quota, com plan e limit) ou acesso negado pela política do workspace.ErrorResponsevalidation_error): detail lista os campos. Uma recusa da própria rota (ex.: um dataset ainda sem contagem para reconciliar) traz o motivo em texto em detail, na língua do pedido, e o seu code quando o texto está no catálogo (senão null).ValidationErrorResponserate_limited) ou, num pedido de scan, fila de scans do workspace cheia (scan_queue_full).object/api/v1/lineage/dbt-metrics/driftTokenMétricas dbt definidas 2× (ou mais) com fórmulas, filtros, janelas ou modelos diferentes entre projetos/pastas, com as variantes e as diferenças.
auth_required), inválido, expirado ou revogado (token_invalid).ErrorResponsetoken_read_only), workspace suspenso (workspace_suspended), quota da organização esgotada (org_quota, com plan e limit) ou acesso negado pela política do workspace.ErrorResponsevalidation_error): detail lista os campos. Uma recusa da própria rota (ex.: um dataset ainda sem contagem para reconciliar) traz o motivo em texto em detail, na língua do pedido, e o seu code quando o texto está no catálogo (senão null).ValidationErrorResponserate_limited) ou, num pedido de scan, fila de scans do workspace cheia (scan_queue_full).objectPack de dados sintéticos com várias tabelas e FKs coerentes, gerado a partir dos perfis guardados, para dev/test e fixtures de CI (permitido a tokens; nenhuma linha real).
/api/v1/synthetic-packsTokenPack de dados sintéticos com várias tabelas coerentes, para dev/test e fixtures de CI.
Seleciona exatamente um de connection_id, domain_id ou dataset_ids
(até max_tables, no máximo 20). Cada tabela é gerada a partir do último
perfil, como em GET /datasets/{dataset_id}/synthetic, e as colunas ligadas
pela linhagem (cliente_id → clientes) só levam chaves que existem na
tabela de origem, com a mesma taxa de nulos. Nenhuma linha da fonte é lida.
format=zip devolve um CSV por tabela, schema.sql (tabelas, chaves e FKs) e
manifest.json (estratégias por coluna, FKs, avisos, seed e o aviso «dados
sintéticos — não contém dados reais»); format=sqlite devolve um ficheiro
SQLite com as mesmas tabelas e o manifesto na tabela _datavault_manifest.
O mesmo pedido sobre os mesmos perfis dá os mesmos bytes. Antes de escrever o
ficheiro, as linhas de cada tabela passam pela avaliação utilidade × privacidade de
GET /datasets/{dataset_id}/synthetic, com o scorecard de cada tabela no
evaluation do manifesto. Com privacy_verdict = fail numa tabela a resposta é
409 (code = synthetic_privacy_fail, com a key e os params de cada tabela
recusada em tables) e não sai nenhum ficheiro. Síncrono e com orçamento de
tempo: excedido, responde 422 sem ficheiro. Cada workspace tem um limite de
pedidos por janela (429 com Retry-After). Fica registado um evento de
auditoria (também na recusa).
auth_required), inválido, expirado ou revogado (token_invalid).ErrorResponseplan_limit); plan e limit dizem qual.PlanLimitErrorResponsetoken_read_only), workspace suspenso (workspace_suspended), quota da organização esgotada (org_quota, com plan e limit) ou acesso negado pela política do workspace.ErrorResponsevalidation_error): detail lista os campos. Uma recusa da própria rota (ex.: um dataset ainda sem contagem para reconciliar) traz o motivo em texto em detail, na língua do pedido, e o seu code quando o texto está no catálogo (senão null).ValidationErrorResponserate_limited) ou, num pedido de scan, fila de scans do workspace cheia (scan_queue_full).objectBase de conhecimento: relatórios, RCAs e decisões.
/api/v1/knowledgeTokenPesquisa na base de conhecimento (relatórios, RCAs, notas e decisões) com filtros por tipo, dataset ou issue.
| Nombre | En | Tipo | Descripción |
|---|---|---|---|
| q | query | string | null | pesquisa de texto (FTS) |
| kind | query | KnowledgeKind | null | |
| dataset_id | query | string | null | |
| issue_id | query | string | null | |
| include_outdated | query | boolean= true | |
| limit | query | integer= 50 | itens por página (1–500) |
| offset | query | integer= 0 | itens a saltar; o total vem em X-Total-Count |
auth_required), inválido, expirado ou revogado (token_invalid).ErrorResponsetoken_read_only), workspace suspenso (workspace_suspended), quota da organização esgotada (org_quota, com plan e limit) ou acesso negado pela política do workspace.ErrorResponsevalidation_error): detail lista os campos. Uma recusa da própria rota (ex.: um dataset ainda sem contagem para reconciliar) traz o motivo em texto em detail, na língua do pedido, e o seu code quando o texto está no catálogo (senão null).ValidationErrorResponserate_limited) ou, num pedido de scan, fila de scans do workspace cheia (scan_queue_full).object/api/v1/knowledge/graphTokenGrafo do património do workspace: {nodes, edges, stats}.
Nós: fontes, domínios, datasets, exposures, métricas, regras, termos do
glossário, problemas, sinais e entradas de conhecimento. Arestas: linhagem
(feeds, com lineage_kind), pertença a domínio, consumo por exposures,
métricas, termos (means, com as colunas) e as relações de qualidade.
Sem focus, o grafo completo com teto de 1500 nós; com focus=dataset:<id>,
a vizinhança a hops saltos (1 a 3) com teto de 400 nós. kinds limita os
tipos de nó. stats.by_kind e stats.by_edge_kind contam o que veio.
| Nombre | En | Tipo | Descripción |
|---|---|---|---|
| focus | query | string | null | vizinhança de um dataset: `dataset:<id>` |
| hops | query | integer= 2 | saltos a partir do foco (só com `focus`) |
| kinds | query | string | null | tipos de nó separados por vírgulas (ex.: `dataset,domain`) |
auth_required), inválido, expirado ou revogado (token_invalid).ErrorResponsetoken_read_only), workspace suspenso (workspace_suspended), quota da organização esgotada (org_quota, com plan e limit) ou acesso negado pela política do workspace.ErrorResponsevalidation_error): detail lista os campos. Uma recusa da própria rota (ex.: um dataset ainda sem contagem para reconciliar) traz o motivo em texto em detail, na língua do pedido, e o seu code quando o texto está no catálogo (senão null).ValidationErrorResponserate_limited) ou, num pedido de scan, fila de scans do workspace cheia (scan_queue_full).object/api/v1/knowledge/{entry_id}TokenUma entrada da base de conhecimento.
| Nombre | En | Tipo | Descripción |
|---|---|---|---|
| entry_id* | path | string |
auth_required), inválido, expirado ou revogado (token_invalid).ErrorResponsetoken_read_only), workspace suspenso (workspace_suspended), quota da organização esgotada (org_quota, com plan e limit) ou acesso negado pela política do workspace.ErrorResponsevalidation_error): detail lista os campos. Uma recusa da própria rota (ex.: um dataset ainda sem contagem para reconciliar) traz o motivo em texto em detail, na língua do pedido, e o seu code quando o texto está no catálogo (senão null).ValidationErrorResponserate_limited) ou, num pedido de scan, fila de scans do workspace cheia (scan_queue_full).objectRelatórios IA gerados (Markdown e HTML) e o percurso de cada geração.
/api/v1/reportsTokenRelatórios IA do workspace, mais recentes primeiro. Pagina com limit/offset; o total vem no header X-Total-Count.
| Nombre | En | Tipo | Descripción |
|---|---|---|---|
| limit | query | integer= 50 | itens por página (1–500) |
| offset | query | integer= 0 | itens a saltar; o total vem em X-Total-Count |
auth_required), inválido, expirado ou revogado (token_invalid).ErrorResponsetoken_read_only), workspace suspenso (workspace_suspended), quota da organização esgotada (org_quota, com plan e limit) ou acesso negado pela política do workspace.ErrorResponsevalidation_error): detail lista os campos. Uma recusa da própria rota (ex.: um dataset ainda sem contagem para reconciliar) traz o motivo em texto em detail, na língua do pedido, e o seu code quando o texto está no catálogo (senão null).ValidationErrorResponserate_limited) ou, num pedido de scan, fila de scans do workspace cheia (scan_queue_full).object/api/v1/reports/{report_id}/export.pdfTokenPDF do mesmo documento do export HTML — render server-side via
weasyprint (extra pdf). Sem o extra: 501 com a dica de instalação.
| Nombre | En | Tipo | Descripción |
|---|---|---|---|
| report_id* | path | string |
auth_required), inválido, expirado ou revogado (token_invalid).ErrorResponsetoken_read_only), workspace suspenso (workspace_suspended), quota da organização esgotada (org_quota, com plan e limit) ou acesso negado pela política do workspace.ErrorResponsevalidation_error): detail lista os campos. Uma recusa da própria rota (ex.: um dataset ainda sem contagem para reconciliar) traz o motivo em texto em detail, na língua do pedido, e o seu code quando o texto está no catálogo (senão null).ValidationErrorResponserate_limited) ou, num pedido de scan, fila de scans do workspace cheia (scan_queue_full).object/api/v1/reports/{report_id}/exportTokenHTML autónomo (download) — para partilhar por email ou imprimir.
| Nombre | En | Tipo | Descripción |
|---|---|---|---|
| report_id* | path | string |
auth_required), inválido, expirado ou revogado (token_invalid).ErrorResponsetoken_read_only), workspace suspenso (workspace_suspended), quota da organização esgotada (org_quota, com plan e limit) ou acesso negado pela política do workspace.ErrorResponsevalidation_error): detail lista os campos. Uma recusa da própria rota (ex.: um dataset ainda sem contagem para reconciliar) traz o motivo em texto em detail, na língua do pedido, e o seu code quando o texto está no catálogo (senão null).ValidationErrorResponserate_limited) ou, num pedido de scan, fila de scans do workspace cheia (scan_queue_full).object/api/v1/reports/{report_id}/traceTokenPercurso de uma geração como grafo (nós e arestas): o que correu em cada passo, quanto tempo levou e se houve alternativa (ex.: modelo de texto sem IA). lang=pt|en.
| Nombre | En | Tipo | Descripción |
|---|---|---|---|
| report_id* | path | string | |
| lang | query | string= "pt" |
auth_required), inválido, expirado ou revogado (token_invalid).ErrorResponsetoken_read_only), workspace suspenso (workspace_suspended), quota da organização esgotada (org_quota, com plan e limit) ou acesso negado pela política do workspace.ErrorResponsevalidation_error): detail lista os campos. Uma recusa da própria rota (ex.: um dataset ainda sem contagem para reconciliar) traz o motivo em texto em detail, na língua do pedido, e o seu code quando o texto está no catálogo (senão null).ValidationErrorResponserate_limited) ou, num pedido de scan, fila de scans do workspace cheia (scan_queue_full).object/api/v1/reports/{report_id}TokenEstado e conteúdo Markdown de um relatório IA.
| Nombre | En | Tipo | Descripción |
|---|---|---|---|
| report_id* | path | string |
auth_required), inválido, expirado ou revogado (token_invalid).ErrorResponsetoken_read_only), workspace suspenso (workspace_suspended), quota da organização esgotada (org_quota, com plan e limit) ou acesso negado pela política do workspace.ErrorResponsevalidation_error): detail lista os campos. Uma recusa da própria rota (ex.: um dataset ainda sem contagem para reconciliar) traz o motivo em texto em detail, na língua do pedido, e o seu code quando o texto está no catálogo (senão null).ValidationErrorResponserate_limited) ou, num pedido de scan, fila de scans do workspace cheia (scan_queue_full).object/api/v1/reports/{report_id}/public-shareTokenEstado do link público (qualquer membro — o link é para ser enviado).
| Nombre | En | Tipo | Descripción |
|---|---|---|---|
| report_id* | path | string |
auth_required), inválido, expirado ou revogado (token_invalid).ErrorResponsetoken_read_only), workspace suspenso (workspace_suspended), quota da organização esgotada (org_quota, com plan e limit) ou acesso negado pela política do workspace.ErrorResponsevalidation_error): detail lista os campos. Uma recusa da própria rota (ex.: um dataset ainda sem contagem para reconciliar) traz o motivo em texto em detail, na língua do pedido, e o seu code quando o texto está no catálogo (senão null).ValidationErrorResponserate_limited) ou, num pedido de scan, fila de scans do workspace cheia (scan_queue_full).objectCatálogo dos passos do pipeline de relatórios: o que entra, o que sai, o que se configura.
/api/v1/routines/blocksTokenCatálogo versionado dos passos do pipeline de relatórios, com o que é configurável hoje e os selos de cada passo. lang=pt|en.
| Nombre | En | Tipo | Descripción |
|---|---|---|---|
| lang | query | string= "pt" |
auth_required), inválido, expirado ou revogado (token_invalid).ErrorResponsetoken_read_only), workspace suspenso (workspace_suspended), quota da organização esgotada (org_quota, com plan e limit) ou acesso negado pela política do workspace.ErrorResponsevalidation_error): detail lista os campos. Uma recusa da própria rota (ex.: um dataset ainda sem contagem para reconciliar) traz o motivo em texto em detail, na língua do pedido, e o seu code quando o texto está no catálogo (senão null).ValidationErrorResponserate_limited) ou, num pedido de scan, fila de scans do workspace cheia (scan_queue_full).objectMétricas por persona.
/api/v1/dashboard/engineeringTokenMétricas para engenharia de dados: scans, falhas, tendência.
auth_required), inválido, expirado ou revogado (token_invalid).ErrorResponsetoken_read_only), workspace suspenso (workspace_suspended), quota da organização esgotada (org_quota, com plan e limit) ou acesso negado pela política do workspace.ErrorResponsevalidation_error): detail lista os campos. Uma recusa da própria rota (ex.: um dataset ainda sem contagem para reconciliar) traz o motivo em texto em detail, na língua do pedido, e o seu code quando o texto está no catálogo (senão null).ValidationErrorResponserate_limited) ou, num pedido de scan, fila de scans do workspace cheia (scan_queue_full).object/api/v1/dashboard/managementTokenMétricas para gestão: issues abertas/resolvidas, adoção.
auth_required), inválido, expirado ou revogado (token_invalid).ErrorResponsetoken_read_only), workspace suspenso (workspace_suspended), quota da organização esgotada (org_quota, com plan e limit) ou acesso negado pela política do workspace.ErrorResponsevalidation_error): detail lista os campos. Uma recusa da própria rota (ex.: um dataset ainda sem contagem para reconciliar) traz o motivo em texto em detail, na língua do pedido, e o seu code quando o texto está no catálogo (senão null).ValidationErrorResponserate_limited) ou, num pedido de scan, fila de scans do workspace cheia (scan_queue_full).object/api/v1/dashboard/executiveTokenScore global, risco e exposição estimada em €/mês.
auth_required), inválido, expirado ou revogado (token_invalid).ErrorResponsetoken_read_only), workspace suspenso (workspace_suspended), quota da organização esgotada (org_quota, com plan e limit) ou acesso negado pela política do workspace.ErrorResponsevalidation_error): detail lista os campos. Uma recusa da própria rota (ex.: um dataset ainda sem contagem para reconciliar) traz o motivo em texto em detail, na língua do pedido, e o seu code quando o texto está no catálogo (senão null).ValidationErrorResponserate_limited) ou, num pedido de scan, fila de scans do workspace cheia (scan_queue_full).object/api/v1/dashboard/calendarTokenHeatmap-calendário do workspace: score médio, issues abertas e scans falhados por dia (cache 1h).
| Nombre | En | Tipo | Descripción |
|---|---|---|---|
| days | query | integer= 90 |
auth_required), inválido, expirado ou revogado (token_invalid).ErrorResponsetoken_read_only), workspace suspenso (workspace_suspended), quota da organização esgotada (org_quota, com plan e limit) ou acesso negado pela política do workspace.ErrorResponsevalidation_error): detail lista os campos. Uma recusa da própria rota (ex.: um dataset ainda sem contagem para reconciliar) traz o motivo em texto em detail, na língua do pedido, e o seu code quando o texto está no catálogo (senão null).ValidationErrorResponserate_limited) ou, num pedido de scan, fila de scans do workspace cheia (scan_queue_full).object/api/v1/dashboard/sloTokenSLO de dados: attainment mensal e por dataset das slaProperties de
latência do contrato ODCS face à idade observada nos perfis, e violações
com os issues de freshness desse dia.
| Nombre | En | Tipo | Descripción |
|---|---|---|---|
| months | query | integer= 6 |
auth_required), inválido, expirado ou revogado (token_invalid).ErrorResponsetoken_read_only), workspace suspenso (workspace_suspended), quota da organização esgotada (org_quota, com plan e limit) ou acesso negado pela política do workspace.ErrorResponsevalidation_error): detail lista os campos. Uma recusa da própria rota (ex.: um dataset ainda sem contagem para reconciliar) traz o motivo em texto em detail, na língua do pedido, e o seu code quando o texto está no catálogo (senão null).ValidationErrorResponserate_limited) ou, num pedido de scan, fila de scans do workspace cheia (scan_queue_full).object/api/v1/dashboard/slo.csvTokenExport CSV do SLO: uma linha por dataset-dia medido.
| Nombre | En | Tipo | Descripción |
|---|---|---|---|
| months | query | integer= 6 |
auth_required), inválido, expirado ou revogado (token_invalid).ErrorResponsetoken_read_only), workspace suspenso (workspace_suspended), quota da organização esgotada (org_quota, com plan e limit) ou acesso negado pela política do workspace.ErrorResponsevalidation_error): detail lista os campos. Uma recusa da própria rota (ex.: um dataset ainda sem contagem para reconciliar) traz o motivo em texto em detail, na língua do pedido, e o seu code quando o texto está no catálogo (senão null).ValidationErrorResponserate_limited) ou, num pedido de scan, fila de scans do workspace cheia (scan_queue_full).object/api/v1/dashboard/dimensionsTokenScorecard por dimensão de qualidade (DAMA/ISO 8000) do workspace e de cada
domínio: média do último score de cada dataset, só com os datasets medidos
nessa dimensão (datasets_measured de datasets_total), checks e issues
abertos. score=null = nenhum dataset medido, nunca 100.
auth_required), inválido, expirado ou revogado (token_invalid).ErrorResponsetoken_read_only), workspace suspenso (workspace_suspended), quota da organização esgotada (org_quota, com plan e limit) ou acesso negado pela política do workspace.ErrorResponsevalidation_error): detail lista os campos. Uma recusa da própria rota (ex.: um dataset ainda sem contagem para reconciliar) traz o motivo em texto em detail, na língua do pedido, e o seu code quando o texto está no catálogo (senão null).ValidationErrorResponserate_limited) ou, num pedido de scan, fila de scans do workspace cheia (scan_queue_full).object/api/v1/dashboard/dimensions.csvTokenExport CSV do scorecard: uma linha por dataset × dimensão (último scan). Só metadados — nomes, scores e contagens; nunca amostras nem valores observados.
auth_required), inválido, expirado ou revogado (token_invalid).ErrorResponsetoken_read_only), workspace suspenso (workspace_suspended), quota da organização esgotada (org_quota, com plan e limit) ou acesso negado pela política do workspace.ErrorResponsevalidation_error): detail lista os campos. Uma recusa da própria rota (ex.: um dataset ainda sem contagem para reconciliar) traz o motivo em texto em detail, na língua do pedido, e o seu code quando o texto está no catálogo (senão null).ValidationErrorResponserate_limited) ou, num pedido de scan, fila de scans do workspace cheia (scan_queue_full).object/api/v1/dashboard/piiTokenMapa de PII do workspace: datasets × tipos de dado pessoal, origem da deteção (amostras do perfil, nome da coluna ou AI-readiness) e cobertura por regras ativas. Só metadados — nunca os valores das amostras.
auth_required), inválido, expirado ou revogado (token_invalid).ErrorResponsetoken_read_only), workspace suspenso (workspace_suspended), quota da organização esgotada (org_quota, com plan e limit) ou acesso negado pela política do workspace.ErrorResponsevalidation_error): detail lista os campos. Uma recusa da própria rota (ex.: um dataset ainda sem contagem para reconciliar) traz o motivo em texto em detail, na língua do pedido, e o seu code quando o texto está no catálogo (senão null).ValidationErrorResponserate_limited) ou, num pedido de scan, fila de scans do workspace cheia (scan_queue_full).object/api/v1/dashboard/pii.csvTokenExport CSV do mapa de PII para o DPO: uma linha por coluna com PII.
auth_required), inválido, expirado ou revogado (token_invalid).ErrorResponsetoken_read_only), workspace suspenso (workspace_suspended), quota da organização esgotada (org_quota, com plan e limit) ou acesso negado pela política do workspace.ErrorResponsevalidation_error): detail lista os campos. Uma recusa da própria rota (ex.: um dataset ainda sem contagem para reconciliar) traz o motivo em texto em detail, na língua do pedido, e o seu code quando o texto está no catálogo (senão null).ValidationErrorResponserate_limited) ou, num pedido de scan, fila de scans do workspace cheia (scan_queue_full).object/api/v1/dashboard/finopsTokenVisão FinOps: custos estimados por dataset + recomendações.
auth_required), inválido, expirado ou revogado (token_invalid).ErrorResponsetoken_read_only), workspace suspenso (workspace_suspended), quota da organização esgotada (org_quota, com plan e limit) ou acesso negado pela política do workspace.ErrorResponsevalidation_error): detail lista os campos. Uma recusa da própria rota (ex.: um dataset ainda sem contagem para reconciliar) traz o motivo em texto em detail, na língua do pedido, e o seu code quando o texto está no catálogo (senão null).ValidationErrorResponserate_limited) ou, num pedido de scan, fila de scans do workspace cheia (scan_queue_full).objectEficácia do programa de governação: KPIs de cobertura, resolução, SLA, adoção, scores por dimensão, incidentes e uso, com metas, semáforo e tendência mensal.
/api/v1/governanceTokenEficácia do programa de governação do workspace: cobertura (owner, documentação, classificação, contratos, regras), cycle time e MTTR dos críticos, cumprimento do SLO/SLA e dos prazos, adoção de sugestões e de regras «nunca mais», score por dimensão, incidentes críticos e uso — cada KPI com meta (workspace → organização → omissão), semáforo, variação e tendência mensal; a matriz por domínio e as metas. Só leitura, zero LLM.
| Nombre | En | Tipo | Descripción |
|---|---|---|---|
| months | query | integer= 6 | Meses de calendário (UTC) na tendência; o corrente conta até agora. |
auth_required), inválido, expirado ou revogado (token_invalid).ErrorResponsetoken_read_only), workspace suspenso (workspace_suspended), quota da organização esgotada (org_quota, com plan e limit) ou acesso negado pela política do workspace.ErrorResponsevalidation_error): detail lista os campos. Uma recusa da própria rota (ex.: um dataset ainda sem contagem para reconciliar) traz o motivo em texto em detail, na língua do pedido, e o seu code quando o texto está no catálogo (senão null).ValidationErrorResponserate_limited) ou, num pedido de scan, fila de scans do workspace cheia (scan_queue_full).object/api/v1/governance/scorecard.csvTokenScorecard executivo em CSV: uma linha por KPI (valor, meta e origem, estado, folga, variação e um valor por mês) e uma por domínio × KPI. Só códigos, números e nomes de domínios; células protegidas contra fórmulas.
| Nombre | En | Tipo | Descripción |
|---|---|---|---|
| months | query | integer= 6 | Meses de calendário (UTC) na tendência; o corrente conta até agora. |
auth_required), inválido, expirado ou revogado (token_invalid).ErrorResponsetoken_read_only), workspace suspenso (workspace_suspended), quota da organização esgotada (org_quota, com plan e limit) ou acesso negado pela política do workspace.ErrorResponsevalidation_error): detail lista os campos. Uma recusa da própria rota (ex.: um dataset ainda sem contagem para reconciliar) traz o motivo em texto em detail, na língua do pedido, e o seu code quando o texto está no catálogo (senão null).ValidationErrorResponserate_limited) ou, num pedido de scan, fila de scans do workspace cheia (scan_queue_full).object/api/v1/governance/evidence.mdTokenEvidência do programa de governação em Markdown, para o pack de procurement ou due diligence do cliente: resumo do semáforo, KPIs com meta e tendência, domínios e o método. Só agregados — sem nomes de datasets, colunas, amostras nem pessoas.
| Nombre | En | Tipo | Descripción |
|---|---|---|---|
| months | query | integer= 6 | Meses de calendário (UTC) na tendência; o corrente conta até agora. |
auth_required), inválido, expirado ou revogado (token_invalid).ErrorResponsetoken_read_only), workspace suspenso (workspace_suspended), quota da organização esgotada (org_quota, com plan e limit) ou acesso negado pela política do workspace.ErrorResponsevalidation_error): detail lista os campos. Uma recusa da própria rota (ex.: um dataset ainda sem contagem para reconciliar) traz o motivo em texto em detail, na língua do pedido, e o seu code quando o texto está no catálogo (senão null).ValidationErrorResponserate_limited) ou, num pedido de scan, fila de scans do workspace cheia (scan_queue_full).object/api/v1/governance/domains/{domain_id}TokenDrill-down de um domínio: os mesmos KPIs sobre os datasets do domínio (sem os utilizadores ativos, que são do workspace), com o SLA declarado como meta do SLO e a tendência mensal do domínio.
| Nombre | En | Tipo | Descripción |
|---|---|---|---|
| domain_id* | path | string | |
| months | query | integer= 6 | Meses de calendário (UTC) na tendência; o corrente conta até agora. |
auth_required), inválido, expirado ou revogado (token_invalid).ErrorResponsetoken_read_only), workspace suspenso (workspace_suspended), quota da organização esgotada (org_quota, com plan e limit) ou acesso negado pela política do workspace.ErrorResponsevalidation_error): detail lista os campos. Uma recusa da própria rota (ex.: um dataset ainda sem contagem para reconciliar) traz o motivo em texto em detail, na língua do pedido, e o seu code quando o texto está no catálogo (senão null).ValidationErrorResponserate_limited) ou, num pedido de scan, fila de scans do workspace cheia (scan_queue_full).objectFeeds tabulares estáveis para Excel e Power BI: scores, issues, SLO, custos e atividade em JSON ou CSV, paginados, com ETag. Guia do Power Query em POWER_BI.md.
/api/v1/biTokenCatálogo dos feeds: nome, colunas (nome e tipo), janela por omissão e o código Power Query pronto a colar.
O Power Query pode ler isto para validar o esquema antes de atualizar.
auth_required), inválido, expirado ou revogado (token_invalid).ErrorResponsetoken_read_only), workspace suspenso (workspace_suspended), quota da organização esgotada (org_quota, com plan e limit) ou acesso negado pela política do workspace.ErrorResponsevalidation_error): detail lista os campos. Uma recusa da própria rota (ex.: um dataset ainda sem contagem para reconciliar) traz o motivo em texto em detail, na língua do pedido, e o seu code quando o texto está no catálogo (senão null).ValidationErrorResponserate_limited) ou, num pedido de scan, fila de scans do workspace cheia (scan_queue_full).object/api/v1/bi/{feed}TokenUma página de um feed tabular com colunas fixas e versionadas.
JSON: {feed, schema_version, columns, total, limit, offset, next_offset,
rows}. CSV: cabeçalho + linhas, separador ,, decimais com ponto; o total
e a próxima página vêm em X-Total-Count e X-Next-Offset. Ordem estável
— paginar com offset nunca repete nem salta linhas. Só metadados e
métricas; nunca amostras de dados.
| Nombre | En | Tipo | Descripción |
|---|---|---|---|
| feed* | path | BiFeed | |
| since | query | string (date) | null | Primeiro dia incluído (YYYY-MM-DD, UTC). Omissão: 90 dias em scores/slo/activity. |
| until | query | string (date) | null | Último dia incluído (YYYY-MM-DD, UTC). |
| domain_id | query | string | null | Só datasets deste domínio. |
| dataset_id | query | string | null | Só este dataset. |
| status | query | IssueStatus | null | Só no feed issues. |
| limit | query | integer= 5000 | |
| offset | query | integer= 0 | |
| format | query | "json" | "csv"= "json" | |
| bom | query | boolean= false | CSV com BOM UTF-8 (acentos no Excel). |
auth_required), inválido, expirado ou revogado (token_invalid).ErrorResponsetoken_read_only), workspace suspenso (workspace_suspended), quota da organização esgotada (org_quota, com plan e limit) ou acesso negado pela política do workspace.ErrorResponsevalidation_error): detail lista os campos. Uma recusa da própria rota (ex.: um dataset ainda sem contagem para reconciliar) traz o motivo em texto em detail, na língua do pedido, e o seu code quando o texto está no catálogo (senão null).ValidationErrorResponserate_limited) ou, num pedido de scan, fila de scans do workspace cheia (scan_queue_full).objectDossiê do AI Act (plano Business) e dossiê regulatório dos elementos de dados críticos (BCBS 239, Solvência II): controlos, resultados, lacunas e linhagem.
/api/v1/workspace/data-policyTokenPolítica do workspace; com dataset_id, a EFETIVA desse dataset (fundida
com a dos seus domínios, cartão #147) e a origem de cada regra/campo.
| Nombre | En | Tipo | Descripción |
|---|---|---|---|
| dataset_id | query | string | null |
auth_required), inválido, expirado ou revogado (token_invalid).ErrorResponsetoken_read_only), workspace suspenso (workspace_suspended), quota da organização esgotada (org_quota, com plan e limit) ou acesso negado pela política do workspace.ErrorResponsevalidation_error): detail lista os campos. Uma recusa da própria rota (ex.: um dataset ainda sem contagem para reconciliar) traz o motivo em texto em detail, na língua do pedido, e o seu code quando o texto está no catálogo (senão null).ValidationErrorResponserate_limited) ou, num pedido de scan, fila de scans do workspace cheia (scan_queue_full).object/api/v1/compliance/clausesTokenAlíneas do art. 10.º com o texto da obrigação — base dos formulários.
auth_required), inválido, expirado ou revogado (token_invalid).ErrorResponsetoken_read_only), workspace suspenso (workspace_suspended), quota da organização esgotada (org_quota, com plan e limit) ou acesso negado pela política do workspace.ErrorResponsevalidation_error): detail lista os campos. Uma recusa da própria rota (ex.: um dataset ainda sem contagem para reconciliar) traz o motivo em texto em detail, na língua do pedido, e o seu code quando o texto está no catálogo (senão null).ValidationErrorResponserate_limited) ou, num pedido de scan, fila de scans do workspace cheia (scan_queue_full).object/api/v1/compliance/ai-systemsTokenSistemas de IA registados para o dossiê do AI Act.
auth_required), inválido, expirado ou revogado (token_invalid).ErrorResponseplan_limit); plan e limit dizem qual.PlanLimitErrorResponsetoken_read_only), workspace suspenso (workspace_suspended), quota da organização esgotada (org_quota, com plan e limit) ou acesso negado pela política do workspace.ErrorResponsevalidation_error): detail lista os campos. Uma recusa da própria rota (ex.: um dataset ainda sem contagem para reconciliar) traz o motivo em texto em detail, na língua do pedido, e o seu code quando o texto está no catálogo (senão null).ValidationErrorResponserate_limited) ou, num pedido de scan, fila de scans do workspace cheia (scan_queue_full).object/api/v1/compliance/ai-systems/{system_id}TokenDetalhe de um sistema de IA registado.
| Nombre | En | Tipo | Descripción |
|---|---|---|---|
| system_id* | path | string |
auth_required), inválido, expirado ou revogado (token_invalid).ErrorResponseplan_limit); plan e limit dizem qual.PlanLimitErrorResponsetoken_read_only), workspace suspenso (workspace_suspended), quota da organização esgotada (org_quota, com plan e limit) ou acesso negado pela política do workspace.ErrorResponsevalidation_error): detail lista os campos. Uma recusa da própria rota (ex.: um dataset ainda sem contagem para reconciliar) traz o motivo em texto em detail, na língua do pedido, e o seu code quando o texto está no catálogo (senão null).ValidationErrorResponserate_limited) ou, num pedido de scan, fila de scans do workspace cheia (scan_queue_full).object/api/v1/compliance/ai-systems/{system_id}/art10TokenDossiê de evidência do art. 10.º: alínea a alínea, com lacunas explícitas.
| Nombre | En | Tipo | Descripción |
|---|---|---|---|
| system_id* | path | string |
auth_required), inválido, expirado ou revogado (token_invalid).ErrorResponseplan_limit); plan e limit dizem qual.PlanLimitErrorResponsetoken_read_only), workspace suspenso (workspace_suspended), quota da organização esgotada (org_quota, com plan e limit) ou acesso negado pela política do workspace.ErrorResponsevalidation_error): detail lista os campos. Uma recusa da própria rota (ex.: um dataset ainda sem contagem para reconciliar) traz o motivo em texto em detail, na língua do pedido, e o seu code quando o texto está no catálogo (senão null).ValidationErrorResponserate_limited) ou, num pedido de scan, fila de scans do workspace cheia (scan_queue_full).object/api/v1/compliance/ai-systems/{system_id}/art10.mdTokenDossiê do art. 10.º em Markdown, pronto a anexar.
| Nombre | En | Tipo | Descripción |
|---|---|---|---|
| system_id* | path | string |
auth_required), inválido, expirado ou revogado (token_invalid).ErrorResponseplan_limit); plan e limit dizem qual.PlanLimitErrorResponsetoken_read_only), workspace suspenso (workspace_suspended), quota da organização esgotada (org_quota, com plan e limit) ou acesso negado pela política do workspace.ErrorResponsevalidation_error): detail lista os campos. Uma recusa da própria rota (ex.: um dataset ainda sem contagem para reconciliar) traz o motivo em texto em detail, na língua do pedido, e o seu code quando o texto está no catálogo (senão null).ValidationErrorResponserate_limited) ou, num pedido de scan, fila de scans do workspace cheia (scan_queue_full).object/api/v1/cdeTokenElementos de dados críticos do workspace, por regulação e dataset. Só de datasets que quem pede vê; o total vem no header X-Total-Count.
| Nombre | En | Tipo | Descripción |
|---|---|---|---|
| regulation | query | CdeRegulation | null | bcbs239 | solvency2 | custom; omitida = todas as regulações. |
| dataset_id | query | string | null | |
| limit | query | integer= 100 | itens por página (1–500) |
| offset | query | integer= 0 | itens a saltar; o total vem em X-Total-Count |
auth_required), inválido, expirado ou revogado (token_invalid).ErrorResponsetoken_read_only), workspace suspenso (workspace_suspended), quota da organização esgotada (org_quota, com plan e limit) ou acesso negado pela política do workspace.ErrorResponsevalidation_error): detail lista os campos. Uma recusa da própria rota (ex.: um dataset ainda sem contagem para reconciliar) traz o motivo em texto em detail, na língua do pedido, e o seu code quando o texto está no catálogo (senão null).ValidationErrorResponserate_limited) ou, num pedido de scan, fila de scans do workspace cheia (scan_queue_full).object/api/v1/cde/dossierTokenDossiê regulatório calculado na hora: por regulação e requisito (princípio do BCBS 239, número do art. 19.º do Reg. Delegado 2015/35), cada elemento crítico com os controlos por dimensão, o último resultado, os problemas abertos, o SLA, a linhagem a um salto, o owner e o contrato ODCS, e as lacunas. Determinístico, sem LLM; nenhum estado afirma conformidade.
| Nombre | En | Tipo | Descripción |
|---|---|---|---|
| regulation | query | CdeRegulation | null | bcbs239 | solvency2 | custom; omitida = todas as regulações. |
| domain_id | query | string | null | Só os elementos de datasets deste domínio. |
auth_required), inválido, expirado ou revogado (token_invalid).ErrorResponsetoken_read_only), workspace suspenso (workspace_suspended), quota da organização esgotada (org_quota, com plan e limit) ou acesso negado pela política do workspace.ErrorResponsevalidation_error): detail lista os campos. Uma recusa da própria rota (ex.: um dataset ainda sem contagem para reconciliar) traz o motivo em texto em detail, na língua do pedido, e o seu code quando o texto está no catálogo (senão null).ValidationErrorResponserate_limited) ou, num pedido de scan, fila de scans do workspace cheia (scan_queue_full).object/api/v1/cde/dossier.mdTokenO dossiê em Markdown (o mesmo texto do relatório gravado por POST /cde/dossier).
| Nombre | En | Tipo | Descripción |
|---|---|---|---|
| regulation | query | CdeRegulation | null | bcbs239 | solvency2 | custom; omitida = todas as regulações. |
| domain_id | query | string | null | Só os elementos de datasets deste domínio. |
auth_required), inválido, expirado ou revogado (token_invalid).ErrorResponsetoken_read_only), workspace suspenso (workspace_suspended), quota da organização esgotada (org_quota, com plan e limit) ou acesso negado pela política do workspace.ErrorResponsevalidation_error): detail lista os campos. Uma recusa da própria rota (ex.: um dataset ainda sem contagem para reconciliar) traz o motivo em texto em detail, na língua do pedido, e o seu code quando o texto está no catálogo (senão null).ValidationErrorResponserate_limited) ou, num pedido de scan, fila de scans do workspace cheia (scan_queue_full).object/api/v1/cde/dossier.csvTokenO dossiê em CSV: uma linha por elemento × requisito × dimensão, com o estado, as regras, o último resultado, os problemas abertos e as lacunas. Células protegidas contra fórmulas.
| Nombre | En | Tipo | Descripción |
|---|---|---|---|
| regulation | query | CdeRegulation | null | bcbs239 | solvency2 | custom; omitida = todas as regulações. |
| domain_id | query | string | null | Só os elementos de datasets deste domínio. |
auth_required), inválido, expirado ou revogado (token_invalid).ErrorResponsetoken_read_only), workspace suspenso (workspace_suspended), quota da organização esgotada (org_quota, com plan e limit) ou acesso negado pela política do workspace.ErrorResponsevalidation_error): detail lista os campos. Uma recusa da própria rota (ex.: um dataset ainda sem contagem para reconciliar) traz o motivo em texto em detail, na língua do pedido, e o seu code quando o texto está no catálogo (senão null).ValidationErrorResponserate_limited) ou, num pedido de scan, fila de scans do workspace cheia (scan_queue_full).objectFontes ligadas (sem credenciais).
/api/v1/connectionsTokenFontes ligadas ao workspace. Nunca inclui credenciais.
auth_required), inválido, expirado ou revogado (token_invalid).ErrorResponsetoken_read_only), workspace suspenso (workspace_suspended), quota da organização esgotada (org_quota, com plan e limit) ou acesso negado pela política do workspace.ErrorResponsevalidation_error): detail lista os campos. Uma recusa da própria rota (ex.: um dataset ainda sem contagem para reconciliar) traz o motivo em texto em detail, na língua do pedido, e o seu code quando o texto está no catálogo (senão null).ValidationErrorResponserate_limited) ou, num pedido de scan, fila de scans do workspace cheia (scan_queue_full).object/api/v1/connections/presetsTokenGaleria de fontes públicas de exemplo — reais, vivas, sem conta.
auth_required), inválido, expirado ou revogado (token_invalid).ErrorResponsetoken_read_only), workspace suspenso (workspace_suspended), quota da organização esgotada (org_quota, com plan e limit) ou acesso negado pela política do workspace.ErrorResponsevalidation_error): detail lista os campos. Uma recusa da própria rota (ex.: um dataset ainda sem contagem para reconciliar) traz o motivo em texto em detail, na língua do pedido, e o seu code quando o texto está no catálogo (senão null).ValidationErrorResponserate_limited) ou, num pedido de scan, fila de scans do workspace cheia (scan_queue_full).object/api/v1/connections/typesTokenTipos do registo com metadados e o estado do driver (find_spec — nada é importado).
O wizard desativa os tipos sem driver em vez de deixar criar e falhar no teste.
auth_required), inválido, expirado ou revogado (token_invalid).ErrorResponsetoken_read_only), workspace suspenso (workspace_suspended), quota da organização esgotada (org_quota, com plan e limit) ou acesso negado pela política do workspace.ErrorResponsevalidation_error): detail lista os campos. Uma recusa da própria rota (ex.: um dataset ainda sem contagem para reconciliar) traz o motivo em texto em detail, na língua do pedido, e o seu code quando o texto está no catálogo (senão null).ValidationErrorResponserate_limited) ou, num pedido de scan, fila de scans do workspace cheia (scan_queue_full).object/api/v1/connections/demo/packsTokenSeed packs por indústria: ERP, e-commerce, fintech PT, saúde.
Cada pack traz os problemas plantados e a história de cada um — o guião da demo comercial — e o pack de regras da galeria com que emparelha.
auth_required), inválido, expirado ou revogado (token_invalid).ErrorResponsetoken_read_only), workspace suspenso (workspace_suspended), quota da organização esgotada (org_quota, com plan e limit) ou acesso negado pela política do workspace.ErrorResponsevalidation_error): detail lista os campos. Uma recusa da própria rota (ex.: um dataset ainda sem contagem para reconciliar) traz o motivo em texto em detail, na língua do pedido, e o seu code quando o texto está no catálogo (senão null).ValidationErrorResponserate_limited) ou, num pedido de scan, fila de scans do workspace cheia (scan_queue_full).object/api/v1/connections/{connection_id}TokenDetalhe de uma fonte, sem credenciais.
| Nombre | En | Tipo | Descripción |
|---|---|---|---|
| connection_id* | path | string |
auth_required), inválido, expirado ou revogado (token_invalid).ErrorResponsetoken_read_only), workspace suspenso (workspace_suspended), quota da organização esgotada (org_quota, com plan e limit) ou acesso negado pela política do workspace.ErrorResponsevalidation_error): detail lista os campos. Uma recusa da própria rota (ex.: um dataset ainda sem contagem para reconciliar) traz o motivo em texto em detail, na língua do pedido, e o seu code quando o texto está no catálogo (senão null).ValidationErrorResponserate_limited) ou, num pedido de scan, fila de scans do workspace cheia (scan_queue_full).object/api/v1/connections/{connection_id}/query-logToken«O que o DataVault executou na tua base»: statements normalizados (sem valores), com execuções, duração, linhas e endpoint (primário/réplica).
| Nombre | En | Tipo | Descripción |
|---|---|---|---|
| connection_id* | path | string | |
| scan_id | query | string | null | |
| operation | query | "scan" | "discover" | "test" | null | |
| days | query | integer | null | |
| limit | query | integer= 100 | itens por página (1–500) |
| offset | query | integer= 0 | itens a saltar; o total vem em X-Total-Count |
auth_required), inválido, expirado ou revogado (token_invalid).ErrorResponsetoken_read_only), workspace suspenso (workspace_suspended), quota da organização esgotada (org_quota, com plan e limit) ou acesso negado pela política do workspace.ErrorResponsevalidation_error): detail lista os campos. Uma recusa da própria rota (ex.: um dataset ainda sem contagem para reconciliar) traz o motivo em texto em detail, na língua do pedido, e o seu code quando o texto está no catálogo (senão null).ValidationErrorResponserate_limited) ou, num pedido de scan, fila de scans do workspace cheia (scan_queue_full).object/api/v1/connections/{connection_id}/query-log/exportTokenO mesmo relatório para entregar ao DBA, em CSV ou JSON (download).
| Nombre | En | Tipo | Descripción |
|---|---|---|---|
| connection_id* | path | string | |
| format | query | "csv" | "json"= "csv" | |
| scan_id | query | string | null | |
| operation | query | "scan" | "discover" | "test" | null | |
| days | query | integer | null |
auth_required), inválido, expirado ou revogado (token_invalid).ErrorResponsetoken_read_only), workspace suspenso (workspace_suspended), quota da organização esgotada (org_quota, com plan e limit) ou acesso negado pela política do workspace.ErrorResponsevalidation_error): detail lista os campos. Uma recusa da própria rota (ex.: um dataset ainda sem contagem para reconciliar) traz o motivo em texto em detail, na língua do pedido, e o seu code quando o texto está no catálogo (senão null).ValidationErrorResponserate_limited) ou, num pedido de scan, fila de scans do workspace cheia (scan_queue_full).object/api/v1/connections/{connection_id}/engineeringTokenEstado da varredura de engenharia: opt-in, última varredura e issues abertos.
| Nombre | En | Tipo | Descripción |
|---|---|---|---|
| connection_id* | path | string |
auth_required), inválido, expirado ou revogado (token_invalid).ErrorResponsetoken_read_only), workspace suspenso (workspace_suspended), quota da organização esgotada (org_quota, com plan e limit) ou acesso negado pela política do workspace.ErrorResponsevalidation_error): detail lista os campos. Uma recusa da própria rota (ex.: um dataset ainda sem contagem para reconciliar) traz o motivo em texto em detail, na língua do pedido, e o seu code quando o texto está no catálogo (senão null).ValidationErrorResponserate_limited) ou, num pedido de scan, fila de scans do workspace cheia (scan_queue_full).objectReconciliação de contagens de linhas entre dois datasets (origem ↔ destino), a partir dos perfis.
/api/v1/reconcileTokenContagem A (origem), contagem B (destino), delta absoluto e % e estado ok | warn | fail. 404 se algum dataset não for deste workspace (ou não for visível para quem pede — ADR 0011); 422 se algum ainda não tiver contagem num perfil.
| Nombre | En | Tipo | Descripción |
|---|---|---|---|
| source* | query | string | Dataset de origem |
| target* | query | string | Dataset de destino |
| tolerance_pct | query | number= 0 | |delta %| até aqui → ok |
| fail_pct | query | number | null | |delta %| acima disto → fail (omissão: 2 × tolerância) |
auth_required), inválido, expirado ou revogado (token_invalid).ErrorResponsetoken_read_only), workspace suspenso (workspace_suspended), quota da organização esgotada (org_quota, com plan e limit) ou acesso negado pela política do workspace.ErrorResponsevalidation_error): detail lista os campos. Uma recusa da própria rota (ex.: um dataset ainda sem contagem para reconciliar) traz o motivo em texto em detail, na língua do pedido, e o seu code quando o texto está no catálogo (senão null).ValidationErrorResponserate_limited) ou, num pedido de scan, fila de scans do workspace cheia (scan_queue_full).objectGate de qualidade para pipelines RAG: veredito por documento antes de indexar (escrita permitida a tokens).
/api/v1/rag-gateTokenVeredito por documento — aceitar, rever ou rejeitar — com as flags que o
justificam (dados pessoais por tipo, duplicado exato/aproximado do corpus ou do
lote, idioma inesperado, boilerplate, texto curto, codificação partida,
documento desatualizado) e um score 0–100.
O conteúdo nunca é guardado: só o hash SHA-256 e um sketch de hashes dos
documentos aceites (fora de dry-run, com dataset_id), para que o próximo
lote detete o que já foi indexado. Autentica com o token de API dvk_*.
auth_required), inválido, expirado ou revogado (token_invalid).ErrorResponselimit: rag_gate_documents_per_month).PlanLimitErrorResponsetoken_read_only), workspace suspenso (workspace_suspended), quota da organização esgotada (org_quota, com plan e limit) ou acesso negado pela política do workspace.ErrorResponsedataset_id não pertence ao workspace.ErrorResponsevalidation_error): detail lista os campos. Uma recusa da própria rota (ex.: um dataset ainda sem contagem para reconciliar) traz o motivo em texto em detail, na língua do pedido, e o seu code quando o texto está no catálogo (senão null).ValidationErrorResponseRetry-After).Validação síncrona de registos contra as regras do dataset: veredito por registo e do lote, sem guardar nada (permitida a tokens).
/api/v1/datasets/{dataset_id}/validateTokenAplica as regras ativas do dataset a cada registo e devolve, por registo, se passou e que regras falharam (com o código do motivo); por regra, quantos registos passaram, falharam ou não se aplicam; e o veredito do lote.
Ao nível do registo: not_null, pattern, range, required_fields,
valid_identifier (dígito de controlo de NIF, NISS, IBAN…) e
in_reference_set. As regras do dataset inteiro (unique, freshness,
row_count_min…), as de SQL na fonte e as entre datasets ficam
not_applicable. Os registos não são guardados nem enviados a um LLM, e a
fonte do dataset não é lida. Autentica com o token de API dvk_*.
| Nombre | En | Tipo | Descripción |
|---|---|---|---|
| dataset_id* | path | string |
auth_required), inválido, expirado ou revogado (token_invalid).ErrorResponsetoken_read_only), workspace suspenso (workspace_suspended), quota da organização esgotada (org_quota, com plan e limit) ou acesso negado pela política do workspace.ErrorResponsevalidation_error): detail lista os campos. Uma recusa da própria rota (ex.: um dataset ainda sem contagem para reconciliar) traz o motivo em texto em detail, na língua do pedido, e o seu code quando o texto está no catálogo (senão null).ValidationErrorResponseRetry-After).Agentes e aplicações que registam o que consomem e a decisão de confiança que viram (registo permitido a tokens; só ids e rótulos).
/api/v1/trust/consumptionsTokenRegista o consumidor (agente, aplicação, pipeline ou notebook — criado no 1.º
registo, identificado pelo nome e tipo) e um consumo por dataset, com a
finalidade e a decisão de confiança vista (decision_seen; omitida = a decisão
atual da Trust API). Com consumer.run_ref, repetir o registo do mesmo run não
cria consumos novos (replayed). Só ids e rótulos: campos desconhecidos dão 422.
O nome do consumidor só aceita letras, algarismos, espaços e _ . : / -.
Um consumo em untrusted gera o evento consumer_untrusted_read e um aviso aos
canais de notificação, sem abrir problema. Os canais recebem no máximo um aviso
por hora por consumidor e dataset, e 20 avisos por hora no workspace inteiro; o
sino recebe todos os eventos. Autentica com o token de API dvk_*.
auth_required), inválido, expirado ou revogado (token_invalid).ErrorResponsetoken_read_only), workspace suspenso (workspace_suspended), quota da organização esgotada (org_quota, com plan e limit) ou acesso negado pela política do workspace.ErrorResponsedataset_id não pertence ao workspace (o pedido inteiro falha).ErrorResponsevalidation_error): detail lista os campos. Uma recusa da própria rota (ex.: um dataset ainda sem contagem para reconciliar) traz o motivo em texto em detail, na língua do pedido, e o seu code quando o texto está no catálogo (senão null).ValidationErrorResponseRetry-After)./api/v1/consumersTokenConsumidores do workspace (agentes, aplicações, pipelines, notebooks) com os
consumos a 7 e 30 dias, os consumos dos últimos 7 dias por decisão e o último
consumo — mais recentes primeiro. Só contam consumos de datasets que quem pede
vê; um consumidor só de datasets restritos não aparece. X-Total-Count = total.
| Nombre | En | Tipo | Descripción |
|---|---|---|---|
| limit | query | integer= 100 | itens por página (1–500) |
| offset | query | integer= 0 | itens a saltar; o total vem em X-Total-Count |
auth_required), inválido, expirado ou revogado (token_invalid).ErrorResponsetoken_read_only), workspace suspenso (workspace_suspended), quota da organização esgotada (org_quota, com plan e limit) ou acesso negado pela política do workspace.ErrorResponsevalidation_error): detail lista os campos. Uma recusa da própria rota (ex.: um dataset ainda sem contagem para reconciliar) traz o motivo em texto em detail, na língua do pedido, e o seu code quando o texto está no catálogo (senão null).ValidationErrorResponserate_limited) ou, num pedido de scan, fila de scans do workspace cheia (scan_queue_full).object/api/v1/datasets/{dataset_id}/consumersTokenConsumidores registados que leram este dataset nos últimos 30 dias, com os consumos a 7 e 30 dias e a última decisão de confiança vista neste dataset.
| Nombre | En | Tipo | Descripción |
|---|---|---|---|
| dataset_id* | path | string |
auth_required), inválido, expirado ou revogado (token_invalid).ErrorResponsetoken_read_only), workspace suspenso (workspace_suspended), quota da organização esgotada (org_quota, com plan e limit) ou acesso negado pela política do workspace.ErrorResponsevalidation_error): detail lista os campos. Uma recusa da própria rota (ex.: um dataset ainda sem contagem para reconciliar) traz o motivo em texto em detail, na língua do pedido, e o seu code quando o texto está no catálogo (senão null).ValidationErrorResponserate_limited) ou, num pedido de scan, fila de scans do workspace cheia (scan_queue_full).objectQualidade inline no editor (extensão VS Code): resumo por tabela referenciada num ficheiro SQL/dbt e perfil por coluna — só metadados.
/api/v1/ide/resolveTokenResumo de qualidade por tabela referenciada: score, issues abertos, versão do contrato ativo, colunas PII e violações da política de dados. Só metadados.
| Nombre | En | Tipo | Descripción |
|---|---|---|---|
| ref* | query | string[] | Tabelas referenciadas (`schema.tabela` ou `tabela`) |
| default_schema | query | string | null | Schema a preferir quando a referência não o indica |
| connection_id | query | string | null | Restringe a uma conexão |
auth_required), inválido, expirado ou revogado (token_invalid).ErrorResponsetoken_read_only), workspace suspenso (workspace_suspended), quota da organização esgotada (org_quota, com plan e limit) ou acesso negado pela política do workspace.ErrorResponsevalidation_error): detail lista os campos. Uma recusa da própria rota (ex.: um dataset ainda sem contagem para reconciliar) traz o motivo em texto em detail, na língua do pedido, e o seu code quando o texto está no catálogo (senão null).ValidationErrorResponserate_limited) ou, num pedido de scan, fila de scans do workspace cheia (scan_queue_full).object/api/v1/ide/datasets/{dataset_id}/columnsTokenPerfil por coluna para o hover: tipo, nulos %, distintos e classificação.
| Nombre | En | Tipo | Descripción |
|---|---|---|---|
| dataset_id* | path | string |
auth_required), inválido, expirado ou revogado (token_invalid).ErrorResponsetoken_read_only), workspace suspenso (workspace_suspended), quota da organização esgotada (org_quota, com plan e limit) ou acesso negado pela política do workspace.ErrorResponsevalidation_error): detail lista os campos. Uma recusa da própria rota (ex.: um dataset ainda sem contagem para reconciliar) traz o motivo em texto em detail, na língua do pedido, e o seu code quando o texto está no catálogo (senão null).ValidationErrorResponserate_limited) ou, num pedido de scan, fila de scans do workspace cheia (scan_queue_full).object/api/v1/ide/agent-configTokenConfig MCP pronta a colar por agente de código (Claude Code, Claude Desktop,
Cursor, VS Code, Codex) e snippets de regras. Nunca contém o token: traz o
placeholder token_placeholder, que a UI substitui no browser.
| Nombre | En | Tipo | Descripción |
|---|---|---|---|
| tool | query | "claude-code" | "claude-desktop" | "cursor" | "vscode" | "codex" | null | Ferramenta; omitido => todas |
auth_required), inválido, expirado ou revogado (token_invalid).ErrorResponsetoken_read_only), workspace suspenso (workspace_suspended), quota da organização esgotada (org_quota, com plan e limit) ou acesso negado pela política do workspace.ErrorResponsevalidation_error): detail lista os campos. Uma recusa da própria rota (ex.: um dataset ainda sem contagem para reconciliar) traz o motivo em texto em detail, na língua do pedido, e o seu code quando o texto está no catálogo (senão null).ValidationErrorResponserate_limited) ou, num pedido de scan, fila de scans do workspace cheia (scan_queue_full).objectRuns de orquestradores (Airflow, dbt Cloud) guardados como contexto do diagnóstico de causa-raiz; o pacote beryx-airflow reporta-os com um token.
/api/v1/integrations/dbt/run-resultsTokenResultados de um dbt test/dbt build corrido no pipeline do cliente.
Corpo: {"run_results": <target/run_results.json>, "manifest": <target/manifest.json>}
(e connection_id opcional). Cada teste casa com o dataset (schema + alias) e
com a regra — pelo rule_id em config.meta.beryx do export
rules.dbt.yml (ou em config.meta.datavault, até 2027-05-31), senão pela
coluna e tipo de teste. Com regra, o resultado conta
para GET /datasets/{dataset_id}/verdict; sem regra equivalente (testes
singulares, relationships) abre ou resolve um issue rule_violation com
subtype dbt_test. Reenviar o mesmo invocation_id não grava nada outra vez
(status duplicate). Só metadados de execução: schema fechado (chaves
desconhecidas, campos com linhas como failed_rows ou failures que não seja
uma contagem → 422). Só casa com os datasets em que quem envia pode escrever
(domínios restritos): os outros ficam como no_dataset, iguais a um dataset
que não existe. Aceita tokens de API.
auth_required), inválido, expirado ou revogado (token_invalid).ErrorResponsetoken_read_only), workspace suspenso (workspace_suspended), quota da organização esgotada (org_quota, com plan e limit) ou acesso negado pela política do workspace.ErrorResponsevalidation_error): detail lista os campos. Uma recusa da própria rota (ex.: um dataset ainda sem contagem para reconciliar) traz o motivo em texto em detail, na língua do pedido, e o seu code quando o texto está no catálogo (senão null).ValidationErrorResponserate_limited) ou, num pedido de scan, fila de scans do workspace cheia (scan_queue_full).object/api/v1/orchestrator-runsTokenRuns de orquestradores (dbt Cloud, Airflow) mais recentes primeiro — o mesmo contexto que o diagnóstico de causa-raiz usa. Só metadados do run.
| Nombre | En | Tipo | Descripción |
|---|---|---|---|
| connection_id | query | string | null | |
| source | query | OrchestratorSource | null | |
| status | query | OrchestratorRunStatus | null | |
| limit | query | integer= 50 | itens por página (1–500) |
| offset | query | integer= 0 | itens a saltar; o total vem em X-Total-Count |
auth_required), inválido, expirado ou revogado (token_invalid).ErrorResponsetoken_read_only), workspace suspenso (workspace_suspended), quota da organização esgotada (org_quota, com plan e limit) ou acesso negado pela política do workspace.ErrorResponsevalidation_error): detail lista os campos. Uma recusa da própria rota (ex.: um dataset ainda sem contagem para reconciliar) traz o motivo em texto em detail, na língua do pedido, e o seu code quando o texto está no catálogo (senão null).ValidationErrorResponserate_limited) ou, num pedido de scan, fila de scans do workspace cheia (scan_queue_full).object/api/v1/orchestrator-runsTokenRegista (ou atualiza, pelo external_run_id) o run de uma DAG/task Airflow.
Aceita tokens de API — é o que os callbacks do beryx-airflow chamam.
auth_required), inválido, expirado ou revogado (token_invalid).ErrorResponsetoken_read_only), workspace suspenso (workspace_suspended), quota da organização esgotada (org_quota, com plan e limit) ou acesso negado pela política do workspace.ErrorResponsevalidation_error): detail lista os campos. Uma recusa da própria rota (ex.: um dataset ainda sem contagem para reconciliar) traz o motivo em texto em detail, na língua do pedido, e o seu code quando o texto está no catálogo (senão null).ValidationErrorResponserate_limited) ou, num pedido de scan, fila de scans do workspace cheia (scan_queue_full).objectLos objetos que devuelve la API. Los campos marcados con * vienen siempre rellenados.
Pontuação 0–100 de cada componente do score global.
As componentes, o volume e, com a qualidade dos rótulos medida, rotulos.
Último resultado válido da qualidade dos rótulos (só contagens).
Prontidão para um caso de uso; um blocker chumba o veredito.
Conjunto de dados afeto ao sistema, com o papel.
Baseline que o detetor usou (ANOMTEMP v1): global ou o mesmo dia da semana.
Cartão de explicação de uma anomalia (cartão #111).
Degrau de uma métrica×coluna afinado pelo feedback (cartão #157).
Dimensão onde o exame de enviesamento é obrigatório.
Avaliação de uma alínea do art. 10.º.
Factos observados de um conjunto afeto ao sistema.
Dossiê de evidência do art. 10.º de um sistema de IA.
Estado de um monitor automático: active | learning | unavailable.
Monitores automáticos do dataset. enabled = conexão E dataset.
Valores: "scores" · "issues" · "slo" · "finops" · "activity" · "datasets" · "chargeback"
Regulação de um elemento de dados crítico (cartão #392).
O mapa regulação → dimensões vive em domain/compliance/regulatory_dossier.py.
Sem DORA nem IFRS 17: o pack DORA (#233) é sobre o DataVault como terceiro TIC
e não define dimensões de qualidade; o resto cabe em custom + reference.
Valores: "bcbs239" · "solvency2" · "custom"
Máscaras de formato da amostra (semantic_types.column_formats, cartão #137).
Coluna do dataset (a partir de columns_json).
Último ProfileResult de uma coluna (column_name=None => nível tabela).
Conexão sem credenciais — config/config_encrypted nunca são expostos.
Um tipo do registo: metadados de catálogo e disponibilidade NESTA instalação.
A Ajuda e o wizard leem daqui a lista de conectores (cartão #321) — nunca de
uma lista escrita à mão que diverge do `CONNECTOR_REGISTRY`.
Consumidor com os consumos a 7 e 30 dias e o último (decisão incluída).
Body de POST /trust/consumptions (cartão #166): só ids e rótulos — campos
desconhecidos (conteúdo, queries, parâmetros) são recusados com 422.
Coluna com a sua sensibilidade.
Conformidade com o contrato.
Contrato de dados do dataset.
Versão ativa do contrato.
Consumidor a jusante, só por nome.
Regra que falhou no último scan.
Frescura. Sem metadados nem perfil: available false e reason.
Identidade do dataset.
Entrada da base de conhecimento.
Base de conhecimento e README.
Vizinho direto na linhagem.
Linhagem resumida.
Issues abertos por severidade e por tipo.
Qualidade e veredicto. Sem scan: available false, reason e verdict.
Prontidão para IA. Sem scan: available false e reason.
README publicado (excerto).
Schema e sensibilidade. Sem schema recolhido: available false e reason.
Ponto da série de scores.
Componente do trust score.
Trust score. Sem score: available false e reason.
Uso pelas queries da fonte. Sem query logs: available false e reason.
Prontidão para um caso de uso de IA.
Uma secção acrescentada, alterada ou retirada entre duas versões.
Um campo que mudou dentro de uma secção.
Proposta de contrato com secções, fios e diff face ao contrato ativo.
Secção da versão em revisão, com o estado, a mudança e o fio.
Proposta de contrato na lista do dataset: estado e datas, sem secções nem link.
Comentário ou decisão num fio de secção.
Secção revisível do contrato: uma por coluna, a qualidade da tabela e os SLA.
Problema do contrato em forma estruturada, por code: field_removed,
type_diverged, upstream_changed, active_column_missing,
active_type_diverged, active_required_nullable, active_column_extra,
active_check_unenforced. Cada código traz só as chaves que lhe dizem respeito.
Mudança de schema que quebra num dataset diretamente a montante.
A versão com o documento ODCS, o YAML e as secções.
Diff secção a secção entre duas versões do contrato.
Uma versão do contrato ODCS do dataset, sem o documento.
Quem consome: o nome identifica-o no workspace, com o tipo (cartão #166).
País dos dados de um dataset (cartão #513): o próprio, o efetivo e de onde vem.
Checksum de uma coluna nos dois lados.
Divergência de uma coluna comparada.
Contagens de linhas da base e do candidato.
Exemplos de chaves (só a chave, nunca valores de outras colunas).
Limites de custo aplicados.
Body de POST /datasets/{id}/diff/{other} (RECON v2). Percentagens em 0–100.
Relatório do data-diff entre a base e o candidato.
Linhas só de um lado, alteradas e chaves duplicadas ou nulas.
Linhas lidas de cada lado.
Amostragem usada para caber nos limites de linhas.
Colunas que só existem num dos lados.
Um dos datasets comparados.
Limiares aplicados, em percentagem.
O JSON da política. Regras ausentes = desligadas (valores por omissão).
Os campos seguem a ordem de RULE_KEYS (o export GitOps é byte-a-byte
estável); regras novas entram no fim.
Uma regra da política, com o rótulo, a ajuda e a origem de cada campo.
A política (do workspace ou a efetiva de um dataset) e o catálogo de regras.
Prontidão do dataset para IA: score global, componentes, PII provável, quase-identificadores, recomendações e prontidão por caso de uso.
Contexto unificado do dataset. Cada secção só aparece quando pedida em sections.
Estado do contrato ODCS: mudanças de schema por resolver e, com uma versão
aceite pelo produtor (active_version), a conformidade com ela.
Detalhe: colunas, último profiling por coluna, histórico de score, issues abertos e sugestões (proposed+accepted) do dataset.
Linhagem direta do dataset: fontes, dependentes, nós externos e consumidores.
Parsing e normalização de campos compostos do último perfil (cartão #386).
Factos de confiança do dataset num só envelope estável (só metadados). Com
detail=minimal não vêm nomes de colunas nem texto livre.
GET /datasets/{id}/tuning: limiares afinados e reajustes pendentes.
Uso real segundo os query logs da plataforma.
Veredito do dataset para o gate de CI: fail com uma regra crítica falhada,
o contrato inválido ou uma violação crítica da política; warn só com avisos;
unknown sem scan. policy só vem quando a política é avaliada.
O mesmo invocation_id já tinha sido recebido: nada foi gravado outra vez.
Relatório de um dbt test recebido pela primeira vez.
O que aconteceu a um teste do run_results.json.
Datasets por decisão de confiança.
Seed pack por indústria (SEEDPACKS #127) — o seletor da demo.
Um check que contou para a dimensão — só metadados, nunca valores observados.
Dimensão do score calculada sobre uma amostra, não sobre a tabela inteira (cartão #294).
Uma mudança entre duas versões do data product (formato do diff de
contratos): impact major quebra o consumidor, minor é compatível.
Scorecard de conformidade do data product (cartão #154).
GET /domains/{id}/consumers: a lista por tipo, as contagens e a frase de impacto.
A parcial da política de um domínio e a efetiva que os seus datasets herdam.
Consumidores registados do data product (informativo; não muda o estado).
Readiness de um dataset do data product; open_slo_breaches é null sem SLA.
Readiness do data product para um caso de uso: not_ready com algum
bloqueador, ready_with_warnings só com avisos. valid_until é o próximo
scan agendado (null sem agenda); sla é null sem SLA declarado.
SLA declarado do data product (cartão #141). Gamas validadas no service.
- freshness_hours: alvo de frescura dos datasets sem regra própria (com
regra, vale o mais exigente);
- min_score: 0–100 — dia com score abaixo conta como violado;
- attainment_objective_pct: 50–100 (omissão 95);
- verdict_required: dia com veredito fail conta como violado.
SLO de um data product: a forma do dashboard + SLA declarado + breakdown.
Um vizinho de linhagem; um invisível a quem pede vem como «Dataset restrito»,
com um id opaco (restrito-N) e restricted: true (ADR 0011 §2.4).
Factos de confiança do data product: o agregado e os factos de cada dataset.
Agregado do data product: contagens e médias dos factos dos seus datasets.
Veredito de um dataset do data product (o mesmo do veredito do dataset).
Veredito do data product: o pior dos seus datasets (unknown se nenhum tem
veredito), as contagens e o veredito de cada dataset, por nome.
Diff entre duas versões; to_version=current é o estado atual tal como
seria publicado. next_version (a versão que a publicação gravaria) só vem
quando a origem é a última versão; nos outros casos é null.
Versão publicada do data product (cartão #168).
Corpo de todas as respostas de erro da API.
Job OpenLineage do cliente que liga um nó externo (cartão #130).
Nó fora dos nossos datasets visto no OpenLineage do cliente (S3, Kafka...).
Ticket num sistema externo ligado a uma entidade do DataVault (cartão #374).
status não é sincronizado com o vendor: um ticket criado pelo DataVault
nasce open; um ligado à mão (ou anterior a esta versão) fica unknown.
O que a regra pedia (nunca o valor do registo).
Coluna que mede a frescura do dataset e como foi lida no último perfil.
Um documento do lote: texto já extraído + metadata opcional.
O que o pipeline tolera. Omitido = os limiares da análise de corpus.
Painel de eficácia do programa de governação (cartão #274): KPIs com meta, semáforo, variação e tendência mensal; no workspace, a matriz por domínio e as metas (workspace → organização → omissão).
Dataset de partida de uma consulta ao grafo.
Dataset por id e nome.
Domínio por id e nome.
Ligação entre dois datasets, com as origens e o mapa de colunas.
Consumidor a jusante, só por nome: exposure dbt ou consumidor registado.
Filtros aplicados; só os que foram dados.
Resultado da pesquisa composta no catálogo.
Dataset que cumpre todos os filtros.
Coluna a jusante que deriva da coluna pedida.
Dataset a jusante afetado por uma mudança.
Dataset a montante ou a jusante, até ao número de saltos pedido.
Perfil de uma coluna para o hover, sem valores.
Resumo de qualidade de uma tabela referenciada no código. Só metadados.
Consumidor afetado — nó-folha da linhagem: exposure dbt (cartão #107) ou
consumidor registado pela Trust API (cartão #166, node: consumer).
Nó da árvore de impacto (pré-ordem; depth para indentar).
Incidente derivado: sem tabela própria, estado vem das issues agrupadas.
Perfil incremental do dataset: configuração, limiares e último estado.
Como foi feito o último perfil: mode full|incremental e porquê (reason).
Contadores do board de atividades: estado × responsável e estado × equipa.
Um passo do rasto de um issue (Atividades v1).
Impacto de uma issue: datasets a jusante e consumidores que parte.
Issues abertos ou reconhecidos por severidade, e o total.
Valores: "open" · "acknowledged" · "resolved" · "ignored"
Valores: "rule_violation" · "duplicates" · "schema_drift" · "schema_change" · "anomaly" · "auto_monitor" · "document" · "reported" · "engineering" · "cost_anomaly" · "label_quality" · "unused_dataset" · "dbt_divergence" · "metric_drift" · "policy_violation" · "slo_breach" · "matching" · "pipeline_sync" · "bi_refresh"
Tipo de entrada da base de conhecimento.
Valores: "report" · "rca" · "resolution" · "decision" · "note"
Estado da qualidade de rótulos de um dataset.
Ligação coluna a coluna numa aresta de linhagem.
Consumidor registado (agente, aplicação, pipeline) que leu o dataset.
Exposure dbt (dashboard, app, notebook) que depende do dataset.
Nós fora dos nossos datasets vistos no OpenLineage do cliente.
O que parte se o dataset (ou uma coluna dele) mudar.
Vizinho direto na linhagem (fonte ou dependente).
Caminho mais curto entre dois datasets, no sentido do fluxo dos dados.
Vizinhança de linhagem do dataset até 3 saltos, com tetos de datasets e arestas.
Valores: "bronze" · "silver" · "gold"
Qualidade do catálogo e dos metadados (cartão #270): completude, atualidade e coerência por dataset, com checks não aplicáveis fora do denominador, problemas com sugestões, meta, tendência diária e o catálogo externo.
Run reportado por um orquestrador (v1: Airflow, via beryx-airflow).
Run de um orquestrador (dbt Cloud, dbt Core, Airflow…): só metadados.
Valores: "running" · "success" · "error" · "cancelled"
Valores: "dbt_cloud" · "airflow" · "fivetran" · "airbyte" · "dbt_core"
Dimensão sem checks no scorecard mas com issues abertos (ex.: eficiência).
Campo composto de uma coluna (cartão #386): componentes e cobertura na amostra.
Sem valores da amostra: os exemplos que não se decompõem vêm como máscaras (dígito → 9, letra → A).
Uma ponta do pipeline: tabela e quando foi atualizada (e há quanto tempo).
RECON #16 entre os perfis mais recentes da origem e do destino.
Tabelas que entraram/saíram do pipeline num sync (as listas são cortadas).
Corpo do 402: o limite do plano que o pedido atingiu.
Avaliação da política de dados: off sem regras ligadas.
Violação de uma regra da política de dados. Depois de source vêm os
pormenores da regra, só os que ela usa.
Profundidade do profiling (por scan, com teto por plano).
Valores: "basic" · "standard" · "deep"
Bloqueador ou aviso com code estável; sem dataset quando é do data product.
Último resultado de uma regra num scan (cartão #164).
Reajuste/recalibração de regra à espera de aprovação (#157 retune, #156 tuning).
Teatro do scan: estado do scan + fotografia de progresso.
Mesmo formato nos frames snapshot do SSE e no GET de fallback (polling).
progress é None em scans antigos (TTL expirado) ou sem progresso gravado.
Entrada da timeline de schema do dataset.
Uma causa da variação, em pontos de score (ponderados, com sinal).
Δscore entre dois scans decomposto por dimensão e drivers (cartão #318).
Σ drivers + unexplained_points = delta.
Tipo semântico inferido no profiling (domain/quality/semantic_types.py).
Classificação de sensibilidade de uma coluna (cartão #112 — SENSCLASS).
Ordem = ordem crescente de sensibilidade (a herança por linhagem sugere sempre o nível mais alto a montante).
Valores: "public" · "internal" · "confidential" · "pii"
Colunas por nível de sensibilidade.
Nível herdado sugerido por linhagem (dataset diretamente a montante).
Valores: "info" · "warning" · "critical"
Abertas no fim do período por idade de calendário.
Relatório mensal de stewardship (cartão #396): SLA de resolução, MTTA/MTTR.
Cartão #396: alvo de resolução de uma severidade e desde quando conta.
Dataset-dias violados por subtipo (um dia pode violar vários).
Uma forma de statement executada pelo DataVault numa fonte (sem valores).
Valores: "deduplication" · "schema" · "performance" · "governance" · "rules" · "refactoring" · "enrichment"
Último ensaio só-leitura do passo de diagnóstico (cartão #178). Só contagens.
Porque é que o ensaio não contou (cartão #178): código estável + params; a
UI compõe o texto e message é o mesmo motivo em pt-PT, de recurso.
Ciclo de vida da remediação governada.
proposed → accepted (aprovada por admin) → applied (executada pelo cliente,
fora do DataVault) → verified (o scan seguinte confirmou a resolução).
dismissed rejeita; done é legado equivalente a verified.
Valores: "proposed" · "accepted" · "applied" · "verified" · "dismissed" · "done"
Scorecard utilidade × privacidade das linhas de (rows, seed) — cartão #174.
Só taxas, deltas, contagens e nomes de colunas; nunca valores.
Body de POST /synthetic-packs (cartão #175): exatamente um de connection_id,
domain_id ou dataset_ids. O teto de rows_per_table vem das settings. Um
campo desconhecido (rows em vez de rows_per_table) dá 422 em vez de cair no default.
Com que a UI compõe o motivo, por key: nomes de colunas e números, nunca valores.
Entidade do DataVault a que um ticket externo está ligado (cartão #374).
As violações de política de dados são issues do tipo policy_violation:
ligam-se como issue. Um incidente é derivado a cada leitura — ancora-se no
seu id (inc-<id do issue raiz>).
Valores: "issue" · "incident" · "suggestion" · "contract_proposal" · "column_sensitivity"
Métricas brutas de uma folha — para o resumo no hover.
Valores: "volume" · "cost" · "columns"
Nó do treemap do catálogo: raiz, conexão, schema ou dataset.
Bloqueador ou aviso do trust score. A UI traduz pela key e pelos
params (ADR 0006, adenda do cartão #476); message é o texto em pt-PT.
Componente do trust score (cartão #142): peso, valor 0..1, pontos, evidência em pt-PT com números e a ação para subir (None = já no máximo).
active: há versão do contrato aceite pelo produtor; valid: o contrato não falha.
Body de POST /trust-decisions (cartão #150): decisão de confiança em lote.
Decisões de um lote: decision é a pior e ttl_seconds o menor.
Decisão de confiança para consumir o dataset numa finalidade, com as razões, o que falta para subir de decisão e por quanto tempo vale.
Score global e, por caso de uso (rag, ml, agente, bi), score e veredito.
problems só com detail=full.
Idade dos dados (horas inteiras) contra o alvo e o cumprimento a 30 dias.
URLs relativos (UI e API): o consumidor junta a sua base.
columns e message só com detail=full.
pii_columns e pii_unmasked_columns só com detail=full.
blocker só com detail=full.
reasons só com detail=full.
Trust score composto e explicável (cartão #142). score/grade None =
dataset sem scan (reason diz porquê). Na lista (?include=trust) vêm só
score/grade/blocked — os componentes ficam para o detalhe.
Corpo do 422 da validação: detail é sempre a lista dos campos recusados.
Um campo recusado pela validação (422).
Os campos do ValidationError que o FastAPI publicava antes do cartão #361.
O input deixou de vir no cartão #450 (ecoava passwords) e fica descrito até
uma major: retirá-lo do schema é uma quebra (docs/api/VERSIONAMENTO.md §4).
Datasets por veredito.
Regra que falhou no último scan. engine = dbt quando a falha veio do
dbt test (aí observed é a contagem de linhas falhadas).
Identidade da release (cartão #312).