Commit Graph

11 Commits

Author SHA1 Message Date
Colin Maudry ac3ba89c0a fix(backup): retirer users.sqlite du suivi git, logging, test restore CLI, garde snapshot (#89)
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-24 17:45:40 +02:00
Colin Maudry 196a9db8c1 refactor(backup): retirer le return 1 inaccessible dans main() (#89)
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-24 17:26:37 +02:00
Colin Maudry 1453990f7a feat(backup): CLI backup/list/restore (#89)
Implement CLI interface for the backup module with three subcommands:
- backup: create a backup and apply rotation
- list: list available backups
- restore: restore a specific backup

Also add __main__.py to enable 'python -m src.backup'.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-24 17:23:57 +02:00
Colin Maudry ded5e66ccc fix(backup): nettoyer le fichier temporaire en cas d'erreur dans restore (#89)
Wraps temp file operations in try/except to ensure the temporary database file is always cleaned up, even if an exception occurs during write_snapshot or verify_integrity.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-24 17:21:28 +02:00
Colin Maudry cae0a528f3 feat(backup): orchestration backup/list/restore (#89)
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-24 17:18:47 +02:00
Colin Maudry 108592f289 feat(backup): wrapper de stockage S3 (boto3) + faux stockage de test (#89) 2026-06-24 17:13:17 +02:00
Colin Maudry efefc3f5b0 feat(backup): snapshot SQLite cohérent et contrôle d'intégrité (#89)
Implémente les trois fonctions de gestion de snapshots SQLite:
- make_snapshot: crée un snapshot gzippé cohérent via sqlite3.Connection.backup()
- write_snapshot: écrit le snapshot décompressé à destination
- verify_integrity: valide l'intégrité d'une base avec PRAGMA integrity_check

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-24 17:10:22 +02:00
Colin Maudry 2a691e37b7 feat(backup): chiffrement Fernet des sauvegardes
- Ajouter encrypt() et decrypt() avec clés Fernet urlsafe-base64
- Tests de roundtrip et échec avec mauvaise clé

Fixes #89
2026-06-24 17:08:34 +02:00
Colin Maudry 927f56cb1c feat(backup): rotation multi-paliers (fonction pure)
Implémente la fonction select_retained() pour la rétention multi-paliers:
- Paliers fixes: horaire/12h, 12h/72h, quotidien/21j
- Palier mensuel: 12 mois calendaires
- Fonction pure, pas de dépendances sur d'autres modules backup

Fixes #89
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-24 17:06:27 +02:00
Colin Maudry 48c0649a68 feat(backup): nommage horodaté des clés S3 (#89)
Ajoute les fonctions make_key() et parse_timestamp() pour gérer
le format des clés S3 avec horodatage UTC.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-24 17:02:47 +02:00
Colin Maudry 1d2a945aa1 feat(backup): config et dépendances pour la sauvegarde S3 (#89) 2026-06-24 17:00:34 +02:00