SPB Git

Repository Public

progress.md 5.8 KB 75 lines markdown

1# SP Drive — état d'avancement23Dernière mise à jour : 2026-11-11. « Vérifié » signifie : commande exécutée, résultat observé. Production :4https://drive.spboucher.ai sur **m5ma** (PM2, déployé par `mld`, dépôt `sp-drive.git` sur spbgit).56## Vérifications exécutées78| Quoi | Commande | Résultat du 2026-11-11 |9|---|---|---|10| Types | `pnpm typecheck` | aucun message |11| Intégration (PostgreSQL réel, ClamAV réel, LibreOffice réel sur le portable) | `pnpm test` | 63 tests, 63 réussis |12| E2E bureau + mobile (Chromium, passkey virtuelle) + pages publiques sur WebKit iPhone | `pnpm e2e` | 122 réussis, 6 ignorés (captures d'écran) |13| Production | `scripts/prod-smoke.mts` sur drive.spboucher.ai | 21 contrôles réussis, 1 échec connu (conversion bureautique, voir « Bloqué ») |14| Sauvegarde + restauration sur le nœud | `scripts/backup.sh` puis `scripts/restore-test.sh` | `RESTORE TEST OK` (6 objets déchiffrés et re-hachés) |1516## Terminé et vérifié1718- **Comptes** : invitation à usage unique, passkeys (plusieurs, renommage, retrait sauf la dernière), sessions par19  appareil avec révocation, rotation quotidienne du jeton, réauthentification pour les opérations sensibles, codes de20  récupération, TOTP facultatif (exigé avec un code de récupération), administration (utilisateurs, quotas,21  invitations, état du système), journal d'activité.22- **Explorateur** : dossiers imbriqués, création, renommage, déplacement, copie, corbeille, restauration, suppression23  définitive ; téléversement multiple, par dossier, résumable, avec pause, reprise, annulation et SHA-256 ;24  collisions explicites (échec, renommer, nouvelle version) ; téléchargement direct avec reprise et ZIP ; versions ;25  quotas ; tags ; favoris ; récents ; recherche avec filtres ; doublons par compte ; grille et liste ; clavier ;26  glisser-déposer.27- **Aperçus** : PDF (pages, zoom, recherche), images, HEIC, SVG inerte, vidéo, audio, texte, Markdown assaini, CSV,28  JSON, classeurs XLSX, inventaire ZIP/TAR ; message clair pour le reste et pour les échecs.29- **Liens de partage** : fichier ou dossier, lecture seule ou téléchargement, mot de passe, expiration, plafonds de30  consultations et de téléchargements, usage unique, rotation, révocation immédiate, journal d'accès.31- **Portails de dépôt** : création illimitée, formulaire configurable, consentement, limites (taille, nombre, volume,32  fréquence, types), mot de passe, expiration, pause, rotation, révocation, suppression ; quarantaine → signature →33  antivirus → placement atomique ; reçu avec numéro de référence ; journal par dépôt ; notification au propriétaire.34- **Stockage** : objets et aperçus chiffrés (AES-256-GCM par blocs, clé par objet), lecture par plage, détection35  d'altération, ramasse-miettes.36- **Interface** : français et anglais, clair et sombre, bureau et téléphone, palette de commandes (⌘K), PWA37  installable (manifeste, icônes, service worker qui ne met en cache ni l'API ni les documents).38- **Exploitation** : manifeste `mld`, préparation du nœud, antivirus et mises à jour de signatures, sauvegarde39  nocturne chiffrée, test de restauration, CLI (invitation, réinitialisation d'accès, suppression de compte, rotation40  de clé, vérification des objets, migrations avec retour arrière).4142## Bloqué4344- **Aperçu des documents Word / PowerPoint / OpenDocument en production.** Sur m5ma, macOS suspend LibreOffice avant45  son démarrage tant que son premier lancement n'a pas été approuvé à l'écran (le nœud n'a pas d'opérateur devant46  lui). L'application le détecte en moins de 20 s et affiche « convertisseur indisponible » ; les fichiers restent47  téléchargeables. Pour débloquer : ouvrir une fois LibreOffice sur m5ma par partage d'écran et accepter48  l'avertissement, puis `pm2 restart sp-drive-worker`. La chaîne elle-même est vérifiée sur le portable (tests49  d'intégration et E2E).5051## Construit, non vérifié sur l'environnement cible5253- **Vrai Touch ID / Face ID** (Safari macOS et iOS) : tous les tests utilisent l'authentificateur virtuel de Chromium.54- **iPhone réel** : envoi depuis Photos/Fichiers, prise de photo, feuille de partage native, installation sur l'écran55  d'accueil ; les pages publiques passent sur WebKit émulé, pas sur un appareil.56- Appui long tactile, dépôt d'un dossier entier depuis le bureau, affichage d'un fichier infecté dans l'explorateur,57  comportement avec plusieurs milliers d'éléments, expiration de l'accès à un lien après une heure.58- **Tests de charge** : aucun.59- **Redémarrage du nœud** : `pm2 save` fait et `mld heal` couvre l'app, mais aucune coupure n'a été simulée.6061## Non fait en V1 (décidé ou reporté)6263- Notifications et accusés de réception **par courriel** (aucun service d'envoi configuré pour SP Drive) : les64  notifications sont dans l'application, le reçu du déposant est affiché à l'écran.65- **Copie hors nœud des sauvegardes** : `SPD_BACKUP_REMOTE` existe, mais un processus PM2 ne peut pas joindre le LAN66  sous macOS ; la destination et le mécanisme sont à décider. Aujourd'hui la sauvegarde est sur le même SSD que les67  données : elle protège d'une erreur logique, pas de la perte du disque.68- Dépôt par lien de partage (le dépôt passe par un portail), partage entre comptes internes, pilote S3, transcodage69  vidéo, synchronisation Finder / application iOS.70- Indicateur de position « 3 / 12 » dans la visionneuse ; panneau de téléversement visible hors de l'explorateur ;71  messages d'échec d'aperçu en anglais brut sous un titre traduit.72- Journaux d'accès de la passerelle : Caddy journalise les URL, donc les jetons des liens publics y figurent.73- CI : les suites se lancent à la main (`pnpm typecheck && pnpm test && pnpm e2e`), aucun pipeline automatique.74- Recherche plein texte, OCR, recherche sémantique, Q&A : après stabilisation de la V1.75
Files main
Menu

Theme