Files
Seedmover/CHANGELOG.md
2026-03-23 22:24:24 +01:00

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