3.2 KiB
3.2 KiB
GoodDrive — Correctifs aperçus, sessions et quotas
Aperçus
- Les appels
/apipassent par le proxy Vite, du port frontend1028vers le servicebackend:1029; l'URL signée pour l'aperçu reste sur le même domaine. - L'API vérifie les permissions lors de la création du lien et de chaque demande de lecture, y compris les plages
Rangedes vidéos. - PDF et texte peuvent être affichés dans une iframe de même origine ; les autres pages restent protégées des intégrations externes.
- Les liens d'aperçu expirent après deux heures et ne dispensent jamais de la vérification des permissions. Une URL déjà ouverte pourra expirer pendant une vidéo très longue : rouvrir l'aperçu pour régénérer son lien.
- Une vérification HEAD signale un aperçu inaccessible au lieu d'afficher une page vide. Formats visés : images, PDF, audio, vidéo et textes courants ; les codecs vidéo dépendent du navigateur.
Connexion
apiet renouvellement JWT utilisent la même origine/api.- Le renouvellement est partagé entre requêtes concurrentes (une seule requête en cours).
- On déconnecte uniquement lorsque le serveur rejette explicitement le refresh token. Un problème réseau ou un backend indisponible conserve la session et permet de réessayer.
Navigation et gestion des espaces
- Suppression de la rubrique « Espaces & invitations » de la navigation.
- Clic droit sur l'espace (bureau) ou
…(mobile) : paramètres, accès et invitations via fenêtres dédiées. - Le bouton
+à côté d'« Espaces partagés » reste disponible pour créer un espace enfant.
Quotas imbriqués
- Le calcul distingue occupation réelle (fichiers actifs, corbeille et uploads réservés) et quotas attribués aux sous-espaces.
- Chaque espace enfant avec quota réserve cette capacité au sein du quota de son parent ; les réservations ne sont jamais additionnées deux fois.
- Une limite est refusée si elle dépasse la capacité non attribuée restante du parent, ou si elle devient inférieure aux engagements des descendants.
- Un espace sans quota propre affiche son occupation et la capacité restante héritée de ses ancêtres.
- Les créations d'espaces, modifications de quotas et uploads utilisent des verrous transactionnels sur les ancêtres ; les paramètres de quota restent stockés dans les champs déjà présents, donc aucune migration.
- Les invitations non utilisées ne constituent pas des espaces physiques réservés. Un quota est revérifié lors de l'acceptation, au cas où la capacité disponible aurait changé.
Déploiement
Remplacer les fichiers de l'archive puis reconstruire :
docker compose up -d --build frontend backend
Après redémarrage, tester en conditions réelles : un aperçu PDF, une image, une vidéo MP4 compatible navigateur, le rafraîchissement du jeton après 30 minutes, et un parent de 10 Go avec deux sous-espaces de 7 et 4 Go (le second doit être refusé).
Tests locaux effectués : analyse syntaxique JS/JSX, compilation syntaxique Python, tests Node frontend. Les tests Django avec base de données et le build Vite complet requièrent les dépendances non présentes dans cet environnement.