/v1/governance: mapeamentos de atores (vinculam IDs de atores opacos a PII, com pseudonimização/apagamento GDPR), arquivos (baixe arquivos de logs de auditoria concluídos do armazenamento frio) e logs de auditoria (histórico imutável, encadeado por hash, que você pode reverificar de forma independente). O tenant é sempre resolvido a partir do JWT — nunca de um caminho ou corpo.
Cada rota de governança é delimitada ao tenant do chamador. As leituras de mapeamentos de atores são divididas em dois níveis de autorização: a lista sem PII versus a leitura de desanonimização de um único registro, para que a resolução de identidade permaneça separável do acesso de navegação.
Mapeamentos de atores
Um mapeamento de ator vincula um
actorId opaco (por exemplo user:550e8400-e29b-41d4-a716-446655440000) a PII legível (displayName, email). As linhas da lista são sem PII por design — apenas o GET de um único registro retorna a identidade em texto claro.
Listar mapeamentos de atores
Linhas paginadas por cursor, sem PII. Filtre por um prefixo de ID de ator.actorId (filtro por prefixo), limit (padrão 25, limitado a 100) e cursor.
Upsert de um mapeamento de ator
Cria ou atualiza a PII de um ID de ator.PUT é idempotente — a mesma chamada cria o registro no primeiro uso e o atualiza a partir de então. Você deve fornecer ao menos um entre displayName ou email.
Obter um mapeamento de ator (desanonimizar)
Retorna a PII em texto claro de um único ID de ator. Esta é a primitiva de desanonimização, por isso é protegida pela permissão mais restritadeanonymize em vez da leitura simples.
Pseudonimizar (GDPR)
SubstituidisplayName e email por [REDACTED] mantendo o registro e seu vínculo com actorId — a trilha de auditoria permanece intacta, mas a PII desaparece. Responde 204 No Content.
Excluir (direito ao apagamento)
Remove permanentemente o mapeamento para o direito ao apagamento do GDPR. Responde204 No Content.
Pseudonimizar mantém o registro (com a PII removida); excluir o apaga por completo. Escolha pseudonimizar quando precisar reter o vínculo de auditoria, e excluir quando o próprio registro não deva persistir.
Arquivos
Quando as partições de logs de auditoria expiram, elas são comprimidas e movidas para o armazenamento de objetos. Os endpoints de arquivos listam os arquivos concluídos e emitem URLs de download com tempo limitado.
Listar arquivos
Paginados por offset. Filtre por intervalo de datas.from, to (YYYY-MM-DD ou RFC 3339), limit (1–200, padrão 20) e offset. Apenas os arquivos COMPLETE são listados — os arquivos em andamento e com falha nunca são expostos.
Baixar um arquivo
Retorna uma URL pré-assinada mais o checksum para verificação de integridade.Logs de auditoria
Toda mudança relevante para a governança é gravada em um log de auditoria imutável, por tenant. Cada registro é encadeado em uma cadeia de hash SHA-256 à prova de adulteração (
recordHash = SHA-256(prevHash || conteúdo canônico)), de modo que um cliente pode reverificar a integridade de forma independente.
Listar logs de auditoria
Paginados por cursor, com filtros detalhados.actor, action, entity_type, date_from, date_to (YYYY-MM-DD ou RFC 3339), limit (1–200, padrão 20) e cursor.
Quando um diff excede o limite de payload do outbox, changes carrega um envelope com marcador de truncamento em vez do diff completo, e truncated passa a true, com originalSize informando o tamanho em bytes anterior ao truncamento.
Verificar a cadeia de auditoria
Reverifica que cada registro inspecionado se encadeia ao anterior e corresponde ao seu hash armazenado. É estritamente somente leitura — comprova a resistência à adulteração, nunca altera um registro.intact é true quando todo o trecho inspecionado está intacto; se uma quebra for encontrada, firstBrokenSeq informa o tenantSeq do primeiro registro que falha e verifiedCount informa quantos se mantiveram antes dele. truncated é true quando a cadeia contém mais registros do que o limite de inspeção maxRecords permitia.
Obter um log de auditoria
Você também pode listar o histórico de uma entidade diretamente com
GET /v1/governance/entities/{entityType}/{entityId}/audit-logs (paginado por cursor), o que é conveniente quando você já conhece a entidade que está auditando.Códigos de resposta
| Status | Significado |
|---|---|
200 | Dados de mapeamento, arquivo ou auditoria retornados |
204 | Mapeamento de ator pseudonimizado ou excluído |
400 | Entrada inválida (falta displayName/email, data/paginação incorreta) |
403 | Falta o nível de permissão necessário (por exemplo, deanonymize para PII de um único registro) |
404 | Mapeamento de ator, arquivo ou log de auditoria não encontrado |
422 | Campo malformado (por exemplo, formato de email inválido) |

