4.0 KiB
4.0 KiB
📦 Sistema de Backup & Restore - Aggios
🎯 Funcionalidades Implementadas
Interface Web (Superadmin)
URL: http://dash.localhost/superadmin/backup
Disponível apenas para usuários com role superadmin.
Recursos:
-
Criar Backup
- Botão para criar novo backup instantâneo
- Mostra nome do arquivo e tamanho
- Mantém automaticamente apenas os últimos 10 backups
-
Listar Backups
- Exibe todos os backups disponíveis
- Informações: nome, data, tamanho
- Seleção visual do backup ativo
-
Restaurar Backup
- Seleção de backup na lista
- Confirmação de segurança (alerta de sobrescrita)
- Recarrega a página após restauração
-
Download de Backup
- Botão de download em cada backup
- Download direto do arquivo .sql
API Endpoints
1. Listar Backups
GET /api/superadmin/backups
Authorization: Bearer {token}
Resposta:
{
"backups": [
{
"filename": "aggios_backup_2025-12-13_20-23-08.sql",
"size": "20.49 KB",
"date": "13/12/2025 20:23:08",
"timestamp": "2025-12-13_20-23-08"
}
]
}
2. Criar Backup
POST /api/superadmin/backup/create
Authorization: Bearer {token}
Resposta:
{
"message": "Backup created successfully",
"filename": "aggios_backup_2025-12-13_20-30-15.sql",
"size": "20.52 KB"
}
3. Restaurar Backup
POST /api/superadmin/backup/restore
Authorization: Bearer {token}
Content-Type: application/json
{
"filename": "aggios_backup_2025-12-13_20-23-08.sql"
}
Resposta:
{
"message": "Backup restored successfully"
}
4. Download de Backup
GET /api/superadmin/backup/download/{filename}
Authorization: Bearer {token}
Resposta: Arquivo .sql para download
📂 Estrutura de Arquivos
backups/
├── aggios_backup_2025-12-13_19-56-18.sql
├── aggios_backup_2025-12-13_20-12-49.sql
├── aggios_backup_2025-12-13_20-17-59.sql
└── aggios_backup_2025-12-13_20-23-08.sql (mais recente)
⚙️ Scripts PowerShell (ainda funcionam!)
Backup Manual
cd g:\Projetos\aggios-app\scripts
.\backup-db.ps1
Restaurar Último Backup
cd g:\Projetos\aggios-app\scripts
.\restore-db.ps1
🔒 Segurança
- ✅ Apenas superadmins podem acessar
- ✅ Validação de arquivos (apenas .sql na pasta backups/)
- ✅ Proteção contra path traversal
- ✅ Autenticação JWT obrigatória
- ✅ Confirmação dupla antes de restaurar
⚠️ Avisos Importantes
-
Backup Automático:
- Ainda não configurado
- Por enquanto, fazer backups manuais antes de
docker-compose down -v
-
Limite de Backups:
- Sistema mantém apenas os últimos 10 backups
- Backups antigos são deletados automaticamente
-
Restauração:
- ⚠️ SOBRESCREVE TODOS OS DADOS ATUAIS
- Sempre peça confirmação dupla
- Cria um backup automático antes? (implementar depois)
🚀 Como Usar
-
Acesse o Superadmin:
- Login: admin@aggios.app
- Senha: Ag@}O%}Z;if)97o*JOgNMbP2025!
-
No Menu Lateral:
- Clique em "Backup & Restore" (ícone de servidor)
-
Criar Backup:
- Clique em "Criar Novo Backup"
- Aguarde confirmação
-
Restaurar:
- Selecione o backup desejado na lista
- Clique em "Restaurar Backup"
- Confirme o alerta
- Aguarde reload da página
🐛 Troubleshooting
Erro ao criar backup
# Verificar se o container está rodando
docker ps | grep aggios-postgres
# Verificar logs
docker logs aggios-backend --tail 50
Erro ao restaurar
# Verificar permissões
ls -la g:\Projetos\aggios-app\backups\
# Testar manualmente
docker exec -i aggios-postgres psql -U aggios aggios_db < backup.sql
📝 TODO Futuro
- Backup automático agendado (diário)
- Backup antes de restaurar (safety)
- Upload de backup externo
- Exportar/importar apenas tabelas específicas
- Histórico de restaurações
- Notificações por email