Skip to main content
O AuditLog é um log de auditoria append-only que registra mutações auditáveis que ocorrem no sistema. Cada registro identifica o tipo de log, o domain, o recurso afetado, o usuário associado à ação e os dados necessários para rastreabilidade.

Campos

Tipo do registro

type separa a origem do registro: Esse campo não substitui action. Ele apenas classifica a origem do log.

Integração por evento

Toda mutação auditável emite audit_log.requested depois que a operação principal termina com sucesso. O domínio de origem envia o identificador do recurso e todos os dados necessários para criar o registro; Observability reage ao evento e persiste o AuditLog. O identifier do evento é um UUID único por mutação e se torna o auditLogId. Uma redelivery com o mesmo identificador é idempotente; mutações distintas do mesmo recurso devem gerar identificadores distintos. O produtor é responsável por informar corretamente type, domain, resource, resourceId, action, oldData, newData, ator, organização e metadados da requisição. Rotinas automáticas usam SYSTEM_LOG e podem enviar userId = null. Cada domínio deve testar os eventos de auditoria emitidos por suas próprias mutações. O domínio audit-log testa o consumo e a persistência do evento.

Rastreamento

O trio domain + resource + resourceId identifica a instância auditada:
Isso permite filtrar o histórico de auditoria por tipo de recurso e identificador.

Action aberta

action não é enum. Ela é uma string aberta, definida pela aplicação no momento do registro. A convenção recomendada é usar uma combinação legível de recurso + ação de negócio, como:

Exemplo de Registros

ORDER_CREATED

USER_BLOCKED

ROUTE_APPROVED

SESSION_REVOKED_AUTOMATICALLY

Regras de Negócio

  • O AuditLog é append-only — registros são permanentes.
  • O userId identifica quem disparou a ação, mesmo que tenha sido uma operação automática (nesse caso, pode ser um usuário de sistema).
  • type = SYSTEM_LOG pode ter userId = null quando não houver ator humano ou usuário de sistema associado.
  • domain e resource são catálogos fixos. action é aberta e não deve virar enum.

Dados Capturados

O AuditLog pode ser utilizado para gerar relatórios de atividade, detectar padrões anômalos e atender solicitações de auditoria externa.