Campos
| Campo | Tipo | Descrição |
|---|---|---|
auditLogId | UUID | Identificador único |
organizationId | UUID? | Referência à organização |
userId | UUID? | Referência ao usuário que executou a ação (opcional) |
type | AuditLogType | Tipo do registro de log |
domain | AuditDomain | Domain do recurso auditado |
resource | AuditResource | Entity ou recurso auditado dentro do domain |
resourceId | String | ID da instância afetada |
action | String | Nome aberto da ação realizada |
userAgent | String? | User-Agent da requisição |
ip | String? | Endereço IP da requisição |
oldData | Json? | Dados antes da operação (snapshot) |
newData | Json? | Dados após a operação (snapshot) |
createdBy | UUID? | Usuário que criou o registro, quando aplicável |
createdAt | DateTime | Data de criação |
Relacionamentos
- Relaciona-se opcionalmente com Organization.
userIdidentifica logicamente o User associado à ação.
Regras de Negócio
- Log append-only — registros nunca são editados ou removidos.
typeclassifica se o registro nasceu de uma ação da aplicação ou de uma rotina do sistema.type = SYSTEM_LOGpode teruserId = nullquando não houver ator humano ou usuário de sistema associado.- Rastreamento via
domain+resource+resourceId(ex.:domain = IDENTITY,resource = USER,resourceId = uuid). domaineresourcesão enums fechados para garantir filtros consistentes.actioné 100% aberto e não possui enum. A aplicação pode registrar combinações de negócio comoUSER_BLOCKED,ROUTE_APPROVED,TICKET_REPRINTEDouSESSION_REVOKED.- Armazena snapshots de antes (
oldData) e depois (newData) para rastreabilidade completa. - Captura metadados da requisição (
userAgent,ip) para fins de segurança. - A consulta pode ser filtrada por organização, usuário, domain, resource, resourceId, action e data.
- Por ser append-only, o registro usa apenas
createdByecreatedAtcomo auditoria direta.
Enums
AuditLogType
| Valor | Descrição |
|---|---|
APPLICATION_LOG | Registro emitido por fluxo da aplicação, caso de uso, API ou ação de usuário |
SYSTEM_LOG | Registro emitido por rotina automática, scheduler, integração ou processo interno |
AuditDomain
| Valor |
|---|
IDENTITY |
TENANT |
AUTHORIZATION |
FLEET |
OPERATIONS |
SALES |
BENEFITS |
CREDIT_GRANT |
PROMOTION |
SUPPORT |
COMMUNICATION |
DATA_TRANSFER |
FINANCIAL |
WEBHOOKS |
OBSERVABILITY |
AuditResource
| Valor |
|---|
USER |
USER_SESSION |
CUSTOMER |
CUSTOMER_ADDRESS |
PROFILE |
OTP |
ORGANIZATION |
ORGANIZATION_ADDRESS |
COOPERATIVE |
COMPANY |
EMPLOYEE |
MEMBERSHIP |
INVITE |
ROLE |
ROLE_PERMISSION |
DRIVER |
DRIVER_COMPANY |
VEHICLE |
SEAT |
SEAT_TYPE |
POINT |
ROUTE |
ROUTE_APPROVAL |
TRIP |
TRIP_STOP |
TRIP_ITINERARY |
TRIP_EVENT |
TRIP_SEAT_SEGMENT |
TRIP_SCHEDULE |
TRIP_SCHEDULE_STOP |
TRIP_SCHEDULE_ITINERARY |
CHECKOUT |
ORDER |
PASSENGER |
TICKET |
TICKET_ACTIVITY |
ORDER_REVIEW |
FARE_BENEFIT_CATEGORY |
FARE_BENEFIT_PROGRAM |
PASSENGER_BENEFIT_REQUEST |
BENEFIT_DOCUMENT_VALIDATION |
BENEFIT_USAGE_HISTORY |
CREDIT_GRANT |
CREDIT_LEDGER_ENTRY |
PROMOTIONAL |
PROMOTIONAL_ROUTE_RULE |
PROMOTIONAL_ROUND_TRIP_RULE |
PROMOTIONAL_MULTI_TICKET_RULE |
PROMOTIONAL_LOW_DEMAND_TIME_RULE |
PROMOTIONAL_USAGE_HISTORY |
SUPPORT_CASE |
SUPPORT_CASE_MESSAGE |
SUPPORT_CASE_ATTACHMENT |
SUPPORT_CASE_ASSIGNMENT |
SUPPORT_CASE_CATEGORY |
SUPPORT_CASE_SATISFACTION_RATING |
NOTIFICATION |
NOTIFICATION_RECIPIENT |
EXPORT_RESOURCE |
EXPORT_SCHEDULED |
EXPORT_JOB |
COMPANY_PAYMENT_SETTINGS |
PAYMENT |
PAYMENT_METHOD |
RECEIVABLE |
BANK_ACCOUNT |
TRANSFER |
WEBHOOK |
AUDIT_LOG |