3.2 KiB
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_pausenon déclarés englobaldansqueue_worker, coupant tous les transferts suivants après un premier Stop - Fix : IndentationError sur
transfer_thread = Noneintroduite 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_percentsuivi 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
AbstractFSdansplugins/base.py— tout plugin hérite de cette classe - Plugin
LocalFS(plugins/local.py) — remplace le code directos.*précédent - Plugin
SFTPfs(plugins/sftp.py) — accès SFTP via Paramiko avec prefetch - Registre auto-découverte (
plugins/__init__.py) — tout fichier dansplugins/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
paramikodans les dépendances - Nouveau volume
./data:/app/datapour la persistance des connexions