Sauvegardes
SwiftUP sauvegarde automatiquement votre base de données dans le cloud, chiffrée, au démarrage puis toutes les 24 heures, en arrière-plan, sans jamais interrompre l'encaissement. Vous pouvez aussi déclencher une sauvegarde manuelle à tout moment.
Comment ça marche
À chaque sauvegarde, l'application réalise ces étapes automatiquement :
Instantané sûr
Une copie cohérente de la base SQLite est prise sans verrouiller le fichier en cours d'utilisation (VACUUM INTO), donc les ventes continuent normalement.
Compression + chiffrement
L'instantané est compressé en ZIP puis chiffré en AES-256-GCM : le serveur ne stocke qu'une archive illisible sans la clé. Une empreinte SHA-256 de l'archive chiffrée est calculée pour garantir l'intégrité.
Envoi sécurisé
L'archive est envoyée au serveur SwiftUP en HTTPS. Le serveur revérifie l'empreinte et refuse tout fichier corrompu.
Sauvegarde automatique
Une première sauvegarde est lancée environ 30 secondes après le démarrage de l'application (en même temps que le renvoi des archives en attente), puis toutes les 24 heures, entièrement en arrière-plan.
- Aucun réglage à faire dans l'application : le service démarre seul lorsque le poste dispose d'une licence valide et de ses identifiants de sauvegarde (fournis avec l'installation). Sans ces identifiants, l'envoi est désactivé plutôt que de transmettre une base non chiffrée.
- Le processus n'interrompt jamais l'interface ni l'encaissement.
- Chaque étape est journalisée dans un fichier dédié (logs/backup.log) pour le support.
Sauvegarde manuelle
Pour lancer une sauvegarde immédiatement (par exemple avant une mise à jour) :
- 1Ouvrez Config. application (Paramètres) → carte « Sauvegarde automatique ».
- 2Cliquez sur « Sauvegarder maintenant ».
- 3Le statut passe à « Sauvegarde en cours… », puis « Dernière sauvegarde réussie » avec la date, la taille et la référence. Si l'envoi échoue, le message « Envoi impossible — sauvegarde mise en file d'attente » s'affiche.
Fiabilité & mode hors ligne
Si l'envoi échoue (coupure réseau, serveur momentanément indisponible), rien n'est perdu :
- Les erreurs temporaires (réseau, erreur serveur 5xx) sont réessayées automatiquement avec un délai croissant (2s, 4s, 8s).
- Les erreurs définitives (réponse 4xx : fichier refusé, empreinte invalide, archive trop volumineuse…) ne sont pas réessayées.
- En cas d'échec, l'archive chiffrée est mise de côté dans une file d'attente locale (pending-backups).
- La file d'attente est renvoyée automatiquement toutes les 5 minutes, dès que la connexion revient.
- La file conserve au maximum 5 archives : au-delà, les plus anciennes sont supprimées (la sauvegarde la plus récente est la plus utile).
- Si le serveur refuse l'identifiant de sauvegarde ou la licence (401/403), les archives sont conservées jusqu'à ce que la configuration soit corrigée.
Suivre l'état des sauvegardes
La carte « Sauvegarde automatique » de Config. application affiche :
- Le statut : Sauvegarde en cours…, Dernière sauvegarde réussie, Échec de la dernière sauvegarde ou Aucune sauvegarde effectuée
- La date de la dernière sauvegarde réussie (« Le … »)
- TAILLE, RÉFÉRENCE (#ID attribué par le serveur) et FRÉQUENCE (Toutes les 24 h)
- Le nombre d'archives en attente (« N en attente d'envoi »)
- Le message de la dernière erreur, en cas d'échec
- Les boutons « Sauvegarder maintenant » et « Actualiser »
Stockage côté serveur
Les archives sont rangées sur le serveur par poste, année et mois, sous un nom de fichier généré aléatoirement (le nom envoyé par le poste n'est jamais utilisé).
- Taille maximale d'une archive : 500 Mo.
- Les dossiers de sauvegarde sont protégés contre tout accès HTTP direct.
- Chaque envoi nécessite une licence valide (code poste + clé) et un identifiant de sauvegarde propre à l'installation.
Restauration
L'application ne propose pas de bouton de restauration : la restauration est réalisée par le support SwiftUP, qui :
- vérifie l'empreinte SHA-256 de l'archive enregistrée au moment de l'envoi ;
- déchiffre l'archive (toute modification la rend indéchiffrable) ;
- contrôle l'intégrité de la base SQLite et la présence des tables SwiftUP ;
- remet la base en place application fermée, en conservant l'ancienne base (renommée, jamais supprimée).