SGEProduto · Domínio · Desenvolvimento
Repositório

migration-reference · implemented

Migration base 04 — activity_log

Estado atual da auditoria baseada no Spatie Activity Log.

Contrato atual

CampoRegra
idbigint, chave primária.
log_namenullable e indexado.
descriptiontexto obrigatório.
subject_type / subject_idmorph nullable/indexado para entidade afetada.
eventnullable.
causer_type / causer_idmorph nullable/indexado para autor.
attribute_changesJSON nullable; alterações de atributos.
propertiesJSON nullable; contexto adicional.
timestampsauditoria 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:create como terminal e Jobs/seeders/comandos sem pessoa autenticada como system.
  • Completar registro de todos os campos de negócio de UserPersonalData; hoje somente emancipation_verified_at é incluído.