Refonte seed catégories IPC — Service categoryBackupService (wrapper SREF pre-migration) #120

Closed
opened 2026-04-19 15:08:05 +00:00 by maximus · 0 comments
Owner

Refs: spec-decisions-refonte-seed-categories-ipc.md + spec-plan-refonte-seed-categories-ipc.md

Livraison 2 — Wrapper autour de dataExportService pour créer et vérifier un backup SREF complet AVANT la migration. Filet de sécurité obligatoire : si backup échoue, la migration est abort.

Tâches

  • Créer src/services/categoryBackupService.ts
  • Fonction createPreMigrationBackup(profile): Promise<BackupResult> :
    • Génère nom fichier <ProfileName>_avant-migration-<ISO8601>.sref
    • Emplacement par défaut ~/Documents/Simpl-Resultat/backups/
    • Appelle dataExportService.performExport(transactions_with_categories, json, password)
    • Écrit via write_export_file (commande Tauri existante)
    • Vérifie intégrité via read_import_file + checksum SHA-256
    • Retourne BackupResult { path, size, checksum, verifiedAt } ou throw
  • Gérer erreurs explicites : espace disque insuffisant, permissions, dossier inexistant
  • Si profil protégé par PIN : chiffrement appliqué avec le même password

Dépendances

Aucune (peut être développé en parallèle de #119)

Références code existant

  • src-tauri/src/commands/export_import_commands.rs:8-49 — format SREF v0.1
  • src/services/dataExportService.ts:7-10 — mode transactions_with_categories
  • src/services/dataExportService.ts:199importCategoriesOnly() (utilisé pour rollback dans #122)
Refs: spec-decisions-refonte-seed-categories-ipc.md + spec-plan-refonte-seed-categories-ipc.md Livraison 2 — Wrapper autour de `dataExportService` pour créer et vérifier un backup SREF complet AVANT la migration. Filet de sécurité obligatoire : si backup échoue, la migration est abort. ## Tâches - [ ] Créer `src/services/categoryBackupService.ts` - [ ] Fonction `createPreMigrationBackup(profile): Promise<BackupResult>` : - Génère nom fichier `<ProfileName>_avant-migration-<ISO8601>.sref` - Emplacement par défaut `~/Documents/Simpl-Resultat/backups/` - Appelle `dataExportService.performExport(transactions_with_categories, json, password)` - Écrit via `write_export_file` (commande Tauri existante) - Vérifie intégrité via `read_import_file` + checksum SHA-256 - Retourne `BackupResult { path, size, checksum, verifiedAt }` ou throw - [ ] Gérer erreurs explicites : espace disque insuffisant, permissions, dossier inexistant - [ ] Si profil protégé par PIN : chiffrement appliqué avec le même password ## Dépendances Aucune (peut être développé en parallèle de #119) ## Références code existant - `src-tauri/src/commands/export_import_commands.rs:8-49` — format SREF v0.1 - `src/services/dataExportService.ts:7-10` — mode `transactions_with_categories` - `src/services/dataExportService.ts:199` — `importCategoriesOnly()` (utilisé pour rollback dans #122)
maximus added this to the spec-refonte-seed-categories-ipc milestone 2026-04-19 15:08:05 +00:00
maximus added the
status:ready
type:feature
source:human
labels 2026-04-19 15:08:05 +00:00
maximus added
status:in-progress
and removed
status:ready
labels 2026-04-19 19:37:53 +00:00
maximus added
status:approved
and removed
status:in-progress
labels 2026-04-19 19:47:25 +00:00
Sign in to join this conversation.
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference: maximus/Simpl-Resultat#120
No description provided.