Sauvegarder et restaurer la base de données

IsoFind stocke l'ensemble des données analytiques dans une base SQLite locale. Cette page couvre les deux méthodes de sauvegarde disponibles, les chemins de stockage sur le système de fichiers, la procédure de restauration, la migration automatique du schéma entre versions, et la sauvegarde chiffrée disponible avec la protection avancée.

Les fichiers de la base de données

IsoFind utilise plusieurs bases de données SQLite distinctes, chacune avec un rôle précis. Elles sont toutes stockées dans le dossier de données utilisateur d'IsoFind.

Fichier Contenu Critique
isofind.db Base principale : échantillons, données isotopiques, méthodes, CRM, standards, archives, purifications, pipelines, publications, logs d'audit. Contient 24 tables. Oui
workflows.db Workflows Nexus sauvegardés, états des sessions. Selon usage
fractionation_database.db Base des coefficients de fractionnement isotopique de référence. Non (reconstituable)
users.db Comptes utilisateurs, sessions, codes de récupération (mode multi-utilisateurs uniquement). Selon mode

Emplacement sur le système de fichiers

Tous les fichiers de données persistants sont dans le dossier applicatif IsoFind, séparé du répertoire d'installation du logiciel. Ce dossier est préservé lors des mises à jour.

SystèmeChemin
Windows %LOCALAPPDATA%\IsoFind\
Linux ~/.local/share/isofind/
macOS ~/Library/Application Support/isofind/

Les sauvegardes sont automatiquement placées dans le sous-dossier backups\ de ce même répertoire.

Pour localiser rapidement le dossier de données sur Windows, taper %LOCALAPPDATA%\IsoFind directement dans la barre d'adresse de l'Explorateur de fichiers.

Sauvegarde manuelle depuis l'interface

La méthode de sauvegarde la plus directe est l'export depuis le menu de gestion de la base de données :

Menu Données Sauvegarder base locale

IsoFind génère une copie de isofind.db horodatée dans le dossier backups\. Le nom du fichier suit le format isofind_YYYYMMDD_HHMMSS.db. Cette opération est non destructive et peut être effectuée à tout moment, même pendant une session de travail active.

La même opération est accessible via l'API locale :

GET /api/database/backup

Cette route retourne le fichier de sauvegarde directement en téléchargement.

Menu de sauvegarde de la base de données IsoFind Figure 1 : Menu de gestion de la base de données avec l'option de sauvegarde.

Sauvegarde chiffrée (protection avancée)

Lorsque la protection de base de données est activée au niveau Avancé, IsoFind peut créer des sauvegardes chiffrées avec AES-256-GCM. La clé de chiffrement est dérivée du mot de passe maître via PBKDF2-HMAC-SHA256 avec 600 000 itérations et un sel aléatoire de 32 octets.

Menu Protection Sauvegarde chiffrée

La procédure demande le mot de passe maître, puis crée le fichier chiffré dans backups\ avec l'extension .protected.bak. Le format du fichier est :

OctetsContenu
4Longueur du nonce (big-endian)
12Nonce GCM aléatoire
resteDonnées chiffrées (base SQLite + tag d'authentification GCM)

Le tag d'authentification GCM garantit que toute modification du fichier chiffré sera détectée à la restauration. Une sauvegarde altérée ne peut pas être restaurée silencieusement.

La sauvegarde chiffrée ne peut être restaurée qu'avec le mot de passe maître exact utilisé lors de sa création. Ce mot de passe n'est pas récupérable. Conserver le mot de passe maître dans un gestionnaire de mots de passe indépendant du poste IsoFind.

Sauvegarde cloud optionnelle

Au-delà des sauvegardes locales et chiffrées, IsoFind propose une sauvegarde cloud pour envoyer directement un fichier de sauvegarde vers un serveur distant : serveur WebDAV de l'organisation, chemin réseau monté (SMB / NFS), ou bucket S3-compatible. Cette fonctionnalité est désactivée par défaut dans l'édition Pro et doit être activée depuis les paramètres de sauvegarde.

La sauvegarde cloud ne modifie pas la philosophie offline d'IsoFind. L'application reste entièrement fonctionnelle sans connexion. Seul le transfert de sauvegarde sort du poste, et uniquement à la demande explicite de l'utilisateur, vers une destination qu'il a lui-même configurée. Aucune communication avec des serveurs IsoFind n'est impliquée.

Trois protocoles supportés

Le choix du protocole dépend de l'infrastructure disponible dans l'organisation. Les trois options couvrent les cas d'usage les plus fréquents en laboratoire et en entreprise.

Protocole Cas d'usage Exemples de serveurs
WebDAV Serveur collaboratif d'équipe ou d'organisation Nextcloud, ownCloud, SharePoint, serveurs WebDAV personnels
Chemin réseau monté Partage de fichiers géré par le système d'exploitation Lecteur réseau Windows (SMB), point de montage Linux (NFS, CIFS)
S3-compatible Stockage objet d'entreprise ou cloud privé MinIO, Ceph, AWS S3, Scaleway Object Storage, OVH Cloud

Configuration et déclenchement

La configuration de la destination cloud se fait depuis l'interface de sauvegarde. Après avoir sélectionné le protocole, les champs pertinents apparaissent dynamiquement pour chaque type de destination.

Menu Données Sauvegarder base Cloud
Protocole Champs à renseigner
WebDAV URL du serveur, identifiant, mot de passe, vérification SSL (optionnelle)
Chemin réseau Chemin destination absolu (le montage est pris en charge par l'OS)
S3-compatible Endpoint, bucket, préfixe, région, access key, secret key

Test de connexion avant envoi

Avant d'envoyer effectivement une sauvegarde, un bouton de test vérifie que la connexion est fonctionnelle : authentification réussie, écriture possible, destination accessible. Le test n'envoie pas le fichier, il valide uniquement la configuration. Cette étape est fortement recommandée pour s'assurer qu'une future sauvegarde automatique ne se soldera pas par un échec silencieux.

POST /api/database/backup/cloud/test

Si le test réussit, le bouton Envoyer la sauvegarde devient actif et la sauvegarde est transmise vers la destination choisie.

POST /api/database/backup/cloud

Stockage des identifiants dans le keyring

Les identifiants de connexion (mot de passe WebDAV, secret key S3) peuvent être mémorisés dans le trousseau de clés IsoFind pour éviter de les retaper à chaque sauvegarde. Le même mécanisme cryptographique que celui utilisé pour les clés PKI protège ces secrets : chiffrement AES-256-GCM, dérivation PBKDF2-HMAC-SHA256 avec 600 000 itérations, nonce aléatoire à chaque écriture.

L'activation est optionnelle via une case à cocher dans la fenêtre de sauvegarde cloud. Lorsque activée, un alias et un mot de passe de keyring sont demandés. Le mot de passe de keyring est distinct du mot de passe de sauvegarde chiffrée et distinct du mot de passe des autres comptes utilisateur ; il protège uniquement les secrets de destination cloud.

Endpoint keyring Usage
POST /api/isof/keyring/store-secret Chiffre et stocke un secret sous un alias
POST /api/isof/keyring/get-secret Déchiffre et retourne un secret
GET /api/isof/keyring/list-secrets Liste les alias disponibles (pas les valeurs)
DELETE /api/isof/keyring/delete-secret Supprime un secret du trousseau
Les secrets stockés dans le keyring ne peuvent être déchiffrés qu'avec le mot de passe exact utilisé lors de la sauvegarde initiale. Un mot de passe perdu oblige à supprimer puis recréer l'entrée. Il n'existe pas de mécanisme de récupération centralisé : c'est le prix de la conception zero-trust du keyring.

Chiffrement en transit et au repos

Le niveau de chiffrement en transit dépend du protocole choisi. Le chiffrement au repos dépend de la politique du serveur cible, et n'est pas géré par IsoFind directement sauf si la sauvegarde a été chiffrée localement avant envoi.

Protocole Chiffrement en transit Commentaire
WebDAV TLS 1.2+ si l'URL est en HTTPS Refuser les serveurs en HTTP pur pour les dossiers sensibles
Chemin réseau Selon configuration OS (SMB 3.0 chiffré, NFS avec Kerberos) Responsabilité de l'administrateur système
S3-compatible TLS 1.2+ (endpoint HTTPS) Chiffrement côté serveur activable selon le fournisseur
Pour une protection maximale, combiner les deux mécanismes : créer une sauvegarde chiffrée AES-256-GCM localement (fichier .protected.bak), puis envoyer ce fichier chiffré vers la destination cloud. Le serveur distant n'a alors accès qu'à un fichier déjà chiffré, indépendamment de sa politique de chiffrement interne.

Isolation réseau et middleware

Les endpoints de sauvegarde cloud ne sont accessibles que via le backend local d'IsoFind (localhost). Le middleware AirGapMiddleware empêche toute exposition externe de ces endpoints, même si un port du backend était accidentellement ouvert. Les credentials transitent uniquement en local entre le frontend Tauri et FastAPI ; ils ne sont jamais écrits en clair dans un fichier de log.

Usage recommandé

  • Pour un poste isolé en air-gap strict, laisser la sauvegarde cloud désactivée et utiliser uniquement la sauvegarde locale ou chiffrée.
  • Pour un poste connecté travaillant sur un projet critique, utiliser WebDAV vers un Nextcloud hébergé en interne avec TLS, et conserver parallèlement une sauvegarde chiffrée locale.
  • Pour une équipe travaillant avec des dossiers de forensique ou de défense, préférer un chemin réseau monté avec SMB 3.0 chiffré ; le transfert reste sous le contrôle complet de l'administrateur système.
  • Pour une sauvegarde automatique récurrente, combiner le niveau de protection Avancé (qui planifie les sauvegardes chiffrées) avec une destination cloud configurée, ce qui permet d'externaliser les sauvegardes sans intervention manuelle.

Restaurer une sauvegarde

Restauration standard

Pour restaurer une sauvegarde non chiffrée, fermer IsoFind, remplacer le fichier isofind.db dans le dossier de données par la copie souhaitée, puis relancer IsoFind.

La restauration est également disponible depuis l'interface :

Menu Fichier Gestion BDD Restaurer

Ou via l'API :

POST /api/database/restore
La restauration remplace la base de données active. Toutes les données créées après la date de la sauvegarde sont perdues. IsoFind crée automatiquement une sauvegarde de sécurité de la base courante (fichier .before_restore.bak) avant d'écraser, permettant un retour arrière en cas d'erreur.

Restauration d'une sauvegarde chiffrée

Depuis le menu Protection, l'option de restauration chiffrée demande le chemin du fichier .protected.bak et le mot de passe maître. IsoFind déchiffre le contenu en mémoire, vérifie le tag d'authentification GCM, puis écrit la base restaurée sur le disque après avoir sauvegardé la base courante.

Migration automatique du schéma

À chaque démarrage, IsoFind vérifie la conformité du schéma de la base de données par rapport à la version attendue. Cette vérification est effectuée par le module db_migration.py avant l'initialisation du backend.

La stratégie de migration est non destructive : les colonnes manquantes sont ajoutées via ALTER TABLE ADD COLUMN, les tables absentes sont recréées intégralement. Aucune donnée existante n'est supprimée ni modifiée. Cette migration silencieuse garantit la compatibilité ascendante lors d'une mise à jour du logiciel.

Les 24 tables de isofind.db sont vérifiées à chaque démarrage. Si une colonne a été ajoutée dans une nouvelle version d'IsoFind, elle est créée automatiquement avec sa valeur par défaut sans intervention de l'utilisateur.

La migration automatique du schéma signifie que les sauvegardes d'anciennes versions d'IsoFind sont restaurables sans manipulation manuelle. La base est mise à niveau au démarrage suivant la restauration.

Bonnes pratiques de sauvegarde

Pour les laboratoires avec des données critiques ou sensibles, quelques règles simples permettent de minimiser le risque de perte :

Effectuer une sauvegarde manuelle avant toute opération de masse (import CSV volumineux, normalisation globale, suppression de projet). Ces opérations modifient de nombreuses lignes en une seule passe et ne sont pas réversibles autrement.

Conserver les sauvegardes hors du poste IsoFind, sur un support distinct (serveur réseau, disque externe, stockage chiffré). Le dossier backups\ est sur le même disque que la base active : un incident matériel affecte les deux simultanément.

Pour les déploiements en contexte sensible (forensique, défense, traçabilité réglementée), utiliser la sauvegarde chiffrée plutôt que la copie brute. Un fichier .protected.bak est illisible sans le mot de passe maître, même en cas d'accès physique au support.

Le niveau de protection Avancé active les sauvegardes automatiques planifiées. À ce niveau, IsoFind crée une sauvegarde chiffrée à intervalle régulier sans intervention manuelle, et l'événement est consigné dans l'audit trail.

Récupérer des données après une erreur

Si des données ont été supprimées accidentellement, plusieurs chemins de récupération existent selon le cas.

Les échantillons supprimés via le menu d'archivage ne sont pas détruits immédiatement : ils sont déplacés dans les tables archive_samples et archive_isotope_data de la base. Ils sont accessibles et restaurables depuis le module Archives d'IsoFind sans avoir à toucher à la base directement.

Les suppressions définitives (depuis le module Archives ou via suppression directe) ne sont récupérables que depuis une sauvegarde antérieure. La procédure est de restaurer la sauvegarde sur un poste de test, d'exporter les échantillons concernés en CSV depuis cette instance, puis de les réimporter dans la base courante.

La sauvegarde de sécurité .before_restore.bak créée automatiquement avant chaque restauration permet un retour arrière immédiat si la restauration produit un résultat inattendu.

Vérification de l'intégrité

L'intégrité de la base peut être vérifiée depuis l'interface de protection :

Menu Protection Vérifier l'intégrité

IsoFind exécute la commande SQLite PRAGMA integrity_check sur la base active et affiche le résultat. Une base saine retourne ok. Si des erreurs sont détectées, restaurer la sauvegarde la plus récente.

Cette vérification est également disponible depuis l'API :

GET /api/protection/logs/verify

Cette route vérifie la cohérence de la chaîne HMAC-SHA256 de l'audit trail (chaque entrée de log est liée cryptographiquement à la précédente). Un audit trail intact confirme qu'aucune entrée n'a été supprimée ou modifiée après enregistrement.