- Replace TLAS with License Authority throughout documentation - Add Government of Goa emblem/logo (Ashoka Chakra style) - Update frontend branding to match documentation - Add configurable Swagger API link via VITE_API_BASE_URL env var - Fix Docker build for VitePress (git dependency, .dockerignore) - Fix helmet security headers for HTTP deployments - Add CORS support for VM deployment Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
1.6 KiB
1.6 KiB
Backup & Recovery
Backup Strategy
| Data Type | Frequency | Retention |
|---|---|---|
| Database (full) | Daily | 30 days |
| Database (incremental) | Hourly | 7 days |
| Uploaded documents | Daily | 1 year |
| Configuration | On change | 90 days |
| Blockchain state | Daily | 90 days |
Database Backup
Automated Backups
# Daily full backup (runs at 02:00 UTC)
pg_dump -Fc license_prod > /backups/license_$(date +%Y%m%d).dump
# Hourly WAL archiving
archive_command = 'cp %p /backups/wal/%f'
Manual Backup
# Create backup
docker exec postgres pg_dump -U license_app -Fc license_prod > backup.dump
# Verify backup
pg_restore --list backup.dump
Recovery Procedures
Database Recovery
# Stop application
docker-compose stop api
# Restore database
pg_restore -d license_prod -c backup.dump
# Verify data
psql -d license_prod -c "SELECT COUNT(*) FROM applications;"
# Restart application
docker-compose start api
Point-in-Time Recovery
# Restore to specific timestamp
recovery_target_time = '2026-02-09 10:00:00'
Disaster Recovery
RTO/RPO Targets
| Metric | Target |
|---|---|
| Recovery Time Objective (RTO) | 4 hours |
| Recovery Point Objective (RPO) | 1 hour |
DR Procedure
- Identify failure scope
- Activate DR environment
- Restore from latest backup
- Verify data integrity
- Update DNS to DR site
- Notify stakeholders
Backup Verification
Monthly backup testing:
- Restore to test environment
- Run integrity checks
- Verify application functionality
- Document results