migration-reference · implemented
Migration base 04 — activity_log
Estado atual da auditoria baseada no Spatie Activity Log.
Contrato atual
| Campo | Regra |
|---|---|
id | bigint, chave primária. |
log_name | nullable e indexado. |
description | texto obrigatório. |
subject_type / subject_id | morph nullable/indexado para entidade afetada. |
event | nullable. |
causer_type / causer_id | morph nullable/indexado para autor. |
attribute_changes | JSON nullable; alterações de atributos. |
properties | JSON nullable; contexto adicional. |
| timestamps | auditoria temporal. |
Cuidados
Não guardar senhas, tokens, URLs assinadas, códigos de verificação, credenciais SMTP ou conteúdo sensível de e-mail em properties/attribute_changes.
Consulta e autorização
A tela de auditoria usa Policy e revalida o vínculo ativo selecionado a cada requisição. No estado atual, somente o Administrador do Sistema pode consultá-la. O escopo inclui alterações em campi, contas com vínculos administrativos e vínculos de Administrador do Sistema ou Administrador do Campus. Estágios, documentos, concedentes e outros vínculos ficam fora. O histórico de e-mails usa tabelas próprias e autorização separada.
Rollback atual
O arquivo não define down(). Isso deve ser tratado como limitação/documentação explícita: rollback automático não está disponível para esta migration.
Checklist
- Criar tabela e morphs de sujeito/causador.
- Criar JSON de alterações/propriedades.
- Decidir se a migration deve ganhar
down()antes de ser usada em produção. - Definir e implementar eventos Eloquent para entidades de negócio, incluindo campos cadastrais de e-mail; tabelas de entrega mantêm histórico técnico próprio.
- Implementar consulta do histórico administrativo com Policy e vínculo ativo selecionado.
- Definir limites de consulta para os demais perfis e retenção institucional.
- Testar a exclusão de senhas, hashes, tokens e outros dados protegidos dos valores registrados.
- Relacionar ações humanas ao vínculo ativo; identificar
admin:createcomoterminale Jobs/seeders/comandos sem pessoa autenticada comosystem. - Completar registro de todos os campos de negócio de
UserPersonalData; hoje somenteemancipation_verified_até incluído.