ADR 0002 — Uso do Laravel Backpack para painel administrativo
Introdução ao documento
Este ADR registra a decisão de utilizar o Laravel Backpack como solução de painel administrativo.
Versionamento
- Versão do documento: 1.0.0
- Última atualização: 2026-03-04
- Responsável: Time Dhedalos
Referencial teórico
-
Status: Aceito
-
Data: 2026-03-04
Contexto
- O projeto precisa de uma interface administrativa para gerenciar submissões, usuários, roles, permissions, chaves Novu e arquivos modelo de atividades.
- A equipe busca produtividade e padronização, evitando construir painéis admin do zero.
- Evidência:
composer.json—backpack/crud ^6.8,backpack/pro ^2.2,backpack/permissionmanager ^7.2
Decisão
- Adotar Laravel Backpack 6.8 (com Backpack Pro) como painel admin CRUD.
- Utilizar Backpack Permission Manager para gerenciamento visual de roles e permissions (integrado com Spatie Permission).
- Implementar CRUDs para:
DeliverableSubmission,User,Role,Permission,NovuKey,ActivityTemplateFile. - Integrar Swagger UI e Log Viewer como páginas embarcadas no painel admin.
Consequências
Positivas
- Geração rápida de interfaces CRUD com validação, filtros, upload de arquivos e paginação.
- Integração nativa com Spatie Permission para controle de acesso granular.
- Redução significativa de tempo de desenvolvimento para funcionalidades admin.
- Padrão visual consistente e responsivo.
Negativas
- Dependência de pacote proprietário (Backpack Pro requer licença —
auth.json). - Customização avançada de UI limitada pelo framework do Backpack.
- Testes de CI precisam de
composer.ci.jsonalternativo para evitar pacotes privados.- Evidência:
.github/workflows/test.yaml— usacomposer.ci.json
- Evidência:
Alternativas consideradas
- Filament PHP — alternativa moderna, mas exigiria reescrita de toda a camada admin.
- Nova (Laravel) — excelente, mas custo de licença e lock-in mais forte.
- Admin customizado — flexibilidade total, mas custo de desenvolvimento e manutenção elevado.
Pendências
- ⚠️ PENDÊNCIA: Documentar processo de renovação/gestão da licença Backpack Pro.