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

3.2 KiB

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