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 emiteaudit_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 triodomain + resource + resourceId identifica a instância auditada:
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: