TRUNCATE no nível do banco bloqueia deleção em massa; o hash SHA-256 de cada registro inclui o hash do anterior, então remover um registro ou alterar sua data quebra a cadeia em tudo que vem depois. Se você precisa remover um registro por razão legal (GDPR direito ao esquecimento sobre PII, por exemplo), a resposta é minimização de dados na entrada, não edição retroativa.
O Tracer mantém uma completa e imutável de todas as decisões de validação. Este guia explica como o sistema de auditoria funciona e como consultar o histórico de validações para relatórios de conformidade.
Visão geral de conformidade
O Tracer foi projetado para atender aos requisitos de auditoria de regulamentações financeiras, incluindo:
Arquitetura da trilha de auditoria
O Tracer registra cada decisão de validação com contexto completo para conformidade e investigação.
O que é registrado
Toda validação cria um registro de auditoria imutável contendo:Eventos de auditoria são deduplicados para validações de transações. Se uma requisição de validação for retentada com o mesmo
requestId, apenas o primeiro evento de auditoria é armazenado. Isso garante que a trilha de auditoria reflita eventos de negócio únicos, não padrões de retentativa da API.Imutabilidade e cadeia de hash
Registros de auditoria são write-once e encadeados criptograficamente:- Registros não podem ser modificados após a criação.
- A tabela de auditoria é protegida no nível do banco de dados: um trigger de
TRUNCATEbloqueia exclusões em massa. - Cada registro armazena um hash SHA-256 calculado sobre a identidade, o timestamp e o ator do registro, mais o hash do registro anterior, formando uma cadeia append-only. Remover um registro, reordená-lo ou alterar sua data faz todos os registros posteriores falharem na verificação.
- Um
pg_advisory_xact_lockserializa as escritas da cadeia de hash para manter a ordem estável sob inserções concorrentes.
GET /v1/audit-events/{id}/verify, que retorna:
isValid é true e message confirma. Quando um registro não corresponde mais ao seu hash armazenado, isValid é false e message informa a adulteração. Essa é a base criptográfica para as garantias de evidência de adulteração exigidas por SOX/GLBA.
Em uma verificação que falha, firstInvalidId carrega um número de sequência interno do registro divergente. Ele não é um id de evento de auditoria, então não é um valor que você possa passar para GET /v1/audit-events/{id}.
A trilha de auditoria foi projetada para auditorias de conformidade. Você pode reconstruir exatamente o que aconteceu em qualquer validação, mesmo anos depois, e provar que os registros não foram modificados a posteriori.
Retenção de dados
O Tracer retém dados de acordo com requisitos regulatórios e necessidades operacionais.
Períodos de retenção
Considerações de conformidade
- Requisito SOX: Manter registros por 7 anos a partir da data do relatório de auditoria
- Requisito GLBA: Reter registros demonstrando conformidade com regras de privacidade
- Exportação de dados: Registros podem ser exportados para sistemas de auditoria externos
Consultando histórico de validações
Use o endpoint
GET /v1/validations para consultar validações históricas.
Consulta básica
Consulta filtrada
Filtros disponíveis
Requisito de formato de data
Válido:Paginação
Resultados usam paginação baseada em cursor. A resposta inclui camposnextCursor e hasMore para navegar pelos resultados.
Ao usar paginação por cursor,
sort_by e sort_order são fixados a partir da consulta original.Ordenação
Obtendo detalhes de validação
Recupere detalhes completos para uma validação específica usando
GET /v1/validations/{id}.
A resposta contém tudo necessário para entender uma decisão de validação:
- Snapshot da requisição: O payload de entrada completo como recebido
- Snapshot da resposta: Resposta completa incluindo decisão e motivo
- Regras avaliadas: Todas as regras que foram verificadas
- Regras correspondentes: Regras que foram acionadas (se houver)
- Detalhes de limites: Informações de uso para limites verificados
- Timestamps: Quando a validação ocorreu e tempo de processamento
Consultando eventos de auditoria
Além dos registros de validação, o Tracer também expõe um log de eventos de auditoria genérico via
GET /v1/audit-events. Essa é a única forma de ver mudanças de ciclo de vida em regras e limites — quem as criou, atualizou, ativou, desativou, voltou para rascunho ou excluiu.
Tipos de evento
Os eventos de reserva aparecem no log, mas nenhum filtro os seleciona:
event_type, action e resource_type aceitam apenas os valores listados na tabela abaixo, e um valor de reserva em qualquer um deles é rejeitado com o erro 0009. Para ler eventos de reserva, consulte por intervalo de datas e pagine os resultados.Filtros
GET /v1/audit-events aceita os mesmos filtros de intervalo de datas e escopo que GET /v1/validations, mais filtros específicos para eventos de ciclo de vida:
Casos de uso
- Quem ativou esta regra?
GET /v1/audit-events?resource_type=rule&resource_id={ruleId}&action=ACTIVATE - Todas as mudanças em regras na semana passada:
GET /v1/audit-events?resource_type=rule&start_date=...&end_date=... - Todas as exclusões de limites em 2026:
GET /v1/audit-events?resource_type=limit&action=DELETE&start_date=2026-01-01T00:00:00Z
Detalhe de um evento
UseGET /v1/audit-events/{id} para recuperar um registro de auditoria específico, incluindo o snapshot de estado no momento do evento.
Cenários de relatórios de conformidade
Consultas comuns para relatórios de auditoria e conformidade.
Cenário 1: Investigação de auditoria
“Por que esta transação foi negada em 15 de janeiro?”Cenário 2: Relatório mensal de conformidade
“Mostrar todas as transações negadas para contas corporativas em janeiro”Cenário 3: Análise de eficácia de regra
“Quais transações foram negadas por uma regra de fraude específica?”Cenário 4: Revisão de utilização de limite
“Quais transações excederam limites de gastos este mês?”Melhores práticas para conformidade
Recomendações para manter a prontidão para auditorias.
Manutenção de registros
- Armazene IDs de validação nos seus registros de transação para fácil referência cruzada
- Registre o requestId que você envia para o Tracer para correlação
- Exporte regularmente se você precisa de registros em sistemas de auditoria externos
Preparação para auditoria
- Teste consultas antes da temporada de auditoria para garantir que você consegue recuperar os dados necessários
- Verifique intervalos de data funcionam corretamente com seus requisitos de timezone
- Documente o alinhamento da sua política de retenção com a retenção de 7 anos do Tracer
Fluxo de trabalho de investigação
Ao investigar uma transação específica:- Encontre o ID de validação dos seus logs de transação ou histórico do Tracer
- Recupere detalhes completos usando GET /v1/validations/
- Revise o snapshot da requisição para ver quais dados foram fornecidos
- Verifique regras correspondentes para entender por que a decisão foi tomada
- Verifique status do limite se limites estavam envolvidos
Comportamento de no-match e auditoria
Quando uma validação executa e nenhuma regra corresponde, o Tracer retorna uma decisão padrão configurada em vez de tratar a falta de correspondência como erro. Isso é um fallback por requisição, não uma estratégia de resiliência a falhas de infraestrutura. A decisão é governada pela variável de ambiente
DEFAULT_DECISION_WHEN_NO_MATCH (padrão: ALLOW).
Defina
DEFAULT_DECISION_WHEN_NO_MATCH=DENY para semântica fail-closed em deployments de alta segurança. O serviço loga um aviso no startup se essa variável permanecer no padrão ALLOW.tracer_audit_persist_failures_total e o endpoint /readyz para detectar esses casos.
Referência rápida
Endpoints-chave e informações de retenção.

