3.7 KiB
Implementation de la fonctionnalite Backup
Date : 2026-01-17 12:18:36 Version : 0.2.0 Auteur : Claude Code
Resume
Ajout d'une fonctionnalite de sauvegarde (backup) permettant d'exporter les donnees de l'extension ClipCoffre vers un dossier configurable. L'export inclut les parametres, l'historique clipboard, et les secrets (toujours obfusques).
Fichiers crees
src/services/backupService.js
Service responsable de l'export des donnees. Principales methodes :
isConfigured(): Verifie si le chemin de backup est configure et validebackup(): Execute l'export complet des donnees_formatTimestamp(): Genere un timestamp au formatYYYY-MM-DD_HH-mm-ss_ensureBackupDir(): Cree le dossier de backup avec les bonnes permissions
Fichiers modifies
Schema GSettings
Fichier : schemas/org.gnome.shell.extensions.secretclipboard.gschema.xml
Ajout de la cle backup_path :
<key name="backup_path" type="s">
<default>''</default>
<summary>Backup directory path</summary>
</key>
Settings Wrapper
Fichier : src/storage/settings.js
Ajout du getter/setter pour backupPath :
get backupPath() {
return this._settings.get_string('backup_path');
}
set backupPath(value) {
this._settings.set_string('backup_path', value);
}
Popup Settings (popup3)
Fichier : src/ui/popupSettings.js
- Ajout du champ de saisie pour configurer le chemin de backup
- Gestion de la valeur temporaire
_tempBackupPathpour annulation - Sauvegarde dans GSettings via le bouton OK
Headers UI (Secrets et Clipboard)
Fichiers :
src/ui/popupSecrets.jssrc/ui/popupClipboard.js
Ajout de l'icone backup (document-save-symbolic) dans les headers, a cote de l'icone settings. Le callback onBackupClick declenche l'export.
Panel Button et Popup Main
Fichiers :
-
src/ui/panelButton.js -
src/ui/popupMain.js -
Import du
BackupService -
Ajout de la methode
_doBackup()qui :- Verifie si le backup est configure
- Execute l'export
- Affiche une notification avec le resultat
Styles CSS
Fichier : stylesheet.css
.clipcoffre-backup-btn {
color: rgba(255, 255, 255, 0.9);
}
.clipcoffre-backup-btn:hover {
background-color: rgba(60, 180, 100, 0.3);
}
.clipcoffre-backup-path-input {
min-width: 280px;
}
Format d'export
Lors d'un backup, un dossier est cree avec le format :
<backup_path>/YYYY-MM-DD_HH-mm-ss/
Contenu du dossier :
| Fichier | Description |
|---|---|
settings.json |
Parametres GSettings (history_size, show_passwords, click_mode, backup_path) |
clipboard.json |
Favoris et historique du clipboard |
secrets.json |
Secrets obfusques (jamais en clair) |
manifest.json |
Metadata (uuid, version, timestamp) |
Permissions
- Dossiers :
0700 - Fichiers :
0600
Utilisation
- Ouvrir les parametres (icone engrenage)
- Configurer le "Chemin de backup" (ex:
/home/user/backup/clipcoffre) - Cliquer sur OK pour sauvegarder
- Cliquer sur l'icone de sauvegarde (disquette) dans le header
- Une notification confirme "Backup OK" ou affiche l'erreur
Messages d'erreur possibles
- "Chemin de backup non configure" : Le champ est vide
- "Chemin de backup invalide" : Le dossier n'existe pas
- "Configurer le chemin de backup dans les parametres" : Bouton backup clique sans configuration
Tests manuels
Voir MANUAL_TESTS.md section "Backup" (points 11-15) pour la procedure de test complete.
Securite
Les mots de passe exportes dans secrets.json restent obfusques (XOR + base64). Ils ne sont jamais exportes en clair. La cle d'obfuscation (key.json) n'est pas incluse dans le backup.