58 lines
3.2 KiB
Markdown
58 lines
3.2 KiB
Markdown
# Changelog
|
|
|
|
## [1.3.0] - Sécurité
|
|
- Ajout d'une page de login (identifiant + mot de passe)
|
|
- Session Flask sécurisée (HttpOnly, SameSite Lax, durée configurable)
|
|
- Protection timing attack via `hmac.compare_digest`
|
|
- Toutes les routes API protégées par `@login_required`
|
|
- Bouton Déconnexion dans le header
|
|
- Credentials configurables dans le `docker-compose.yml` (`APP_USERNAME`, `APP_PASSWORD`, `SECRET_KEY`)
|
|
|
|
## [1.2.0] - Pause et Stop
|
|
- Bouton ⏸ Pause — suspend le transfert entre deux chunks
|
|
- Bouton ⏹ Stop — annule le transfert et supprime le fichier partiel
|
|
- Les boutons sont grisés quand aucun transfert n'est actif
|
|
- État pause/stop correctement restauré à la reconnexion
|
|
|
|
## [1.1.0] - Cache et performance
|
|
- Cache serveur avec TTL configurable (`CACHE_TTL`, défaut 60s)
|
|
- Prefetch automatique des 5 premiers sous-dossiers en arrière-plan
|
|
- Invalidation du cache après mkdir, rename et fin de transfert
|
|
- Bouton ↻ Actualiser force un rechargement en bypass du cache
|
|
|
|
## [1.0.2] - Corrections
|
|
- Fix : double ajout en queue lors d'un transfert (push local supprimé, sync via serveur uniquement)
|
|
- Fix : `transfer_stop` / `transfer_pause` non déclarés en `global` dans `queue_worker`, coupant tous les transferts suivants après un premier Stop
|
|
- Fix : IndentationError sur `transfer_thread = None` introduite par un patch sed
|
|
|
|
## [1.0.1] - Reconnexion et progression
|
|
- Synchronisation de la file d'attente au rechargement de la page via `/api/queue`
|
|
- Le transfert en cours et son pourcentage sont restaurés à la reconnexion
|
|
- `current_percent` suivi côté serveur pour être exposé à la reconnexion
|
|
|
|
## [1.0.0] - Version initiale
|
|
- Interface dual-pane Seedbox / NAS
|
|
- File d'attente séquentielle avec progression WebSocket en temps réel
|
|
- Navigation par double-clic avec breadcrumb
|
|
- Sélection multiple côté seedbox
|
|
- Création de dossiers sur les deux panneaux
|
|
- Renommage côté NAS uniquement
|
|
- Seedbox montée en lecture seule (`:ro`)
|
|
- Serveur Flask + Eventlet pour les requêtes concurrentes pendant les transferts
|
|
- Compatible smartphone
|
|
|
|
## [2.0.0] - Architecture plugin
|
|
- Refonte complète en architecture plugin pour les systèmes de fichiers
|
|
- Interface `AbstractFS` dans `plugins/base.py` — tout plugin hérite de cette classe
|
|
- Plugin `LocalFS` (`plugins/local.py`) — remplace le code direct `os.*` précédent
|
|
- Plugin `SFTPfs` (`plugins/sftp.py`) — accès SFTP via Paramiko avec prefetch
|
|
- Registre auto-découverte (`plugins/__init__.py`) — tout fichier dans `plugins/` est chargé automatiquement
|
|
- Ajouter un nouveau protocole = créer un seul fichier `plugins/monprotocole.py`
|
|
- Gestion des connexions dans l'interface : ajout, suppression, test de connexion
|
|
- Chaque panneau peut pointer vers n'importe quelle connexion configurée
|
|
- Les connexions sont persistées dans `data/connections.json` (volume Docker)
|
|
- Connexions par défaut (Seedbox/NAS locaux) créées automatiquement depuis les variables d'environnement
|
|
- Moteur de copie universel : fonctionne entre n'importe quels deux FS (Local→SFTP, SFTP→Local, Local→Local…)
|
|
- Ajout de `paramiko` dans les dépendances
|
|
- Nouveau volume `./data:/app/data` pour la persistance des connexions
|