6 KiB
6 KiB
Dette technique
Ce qui est connu, accepté pour l'instant, et à traiter. Une ligne par sujet ; retirer la ligne (et le noter dans le journal) quand c'est fait.
| Sujet | Pourquoi c'est une dette | Quand | Origine |
|---|---|---|---|
Image Uptime Kuma encore « historique » (même contenu que :1, désormais figé par digest — 2026-10-12) |
Le digest figé est celui publié sous le tag flottant :1 (1.23.17), qui injecte encore docker-latest-warning.js (sans impact : visible seulement sur /setup, jamais atteint). Migrer vers le build du tag versionné 1.23.17 (digest différent, probablement une image reconstruite sans ce script) demande de re-pull et de revérifier la page de statut et les sondes — pas fait ici. |
Avant le pilote | Demande d'Adam, 2026-10-09 ; réduite le 2026-10-12 |
Projet paillasse, compte paillasse-service et son rôle créés à la main (étape 6) |
Pas rejouables par Ansible (gabarit et quota le sont depuis l'étape 13, rôle openstack-projet). |
Bloc B | Étape 6 |
| Clé age des sauvegardes : copie hors du serveur non confirmée | Sans elle, aucune sauvegarde n'est déchiffrable si le serveur est perdu (voir docs/runbooks/sauvegardes.md). Adam doit confirmer l'avoir mise en lieu sûr. |
Dès que possible | Étape 3 |
Vitrine : Tailwind par CDN d'exécution (cdn.tailwindcss.com, 19 pages) |
Non destiné à la production selon Tailwind, lent, et oblige la vitrine à tolérer les scripts en ligne dans sa CSP. Compiler ces styles avec Vite. | Avant ouverture publique | Étape 12 (design) |
Vitrine : 52 scripts en ligne ; Pyodide et sql.js depuis jsDelivr (/ide) ; vidéo YouTube possible (/cours/…/cm) |
CSP vitrine avec 'unsafe-inline' ; tiers déclarés dans /confidentialite. Polices, xterm.js et CodeMirror sont auto-hébergés depuis l'étape 14. Héberger Pyodide/sql.js, passer les scripts en fichiers. |
Avant ouverture publique | Étapes 12 et 14 |
| xterm.js 5.5.0 (6.0.0 disponible) | Version majeure à évaluer séparément. | Bloc B | Étape 12 |
NodeSource installé par curl … | bash |
Script distant exécuté en root au premier déploiement. Déclarer le dépôt (deb822) avec une clé vérifiée. | Bloc B | Étape 8 |
| Aucune vérification dans un vrai navigateur | Extension Chrome non connectée (étapes 8, 12 et 14). La CSP n'est contrôlée que par ses rapports. Adam a testé /ide le 2026-10-09 (erreurs corrigées) ; à revérifier : exécution Python et SQL de /ide, pages vitrine utilisant xterm.js/CodeMirror servis par le portail. |
Dès que possible | Étapes 8, 12, 14 |
| Pas de sonde hors du serveur | Si le serveur tombe, personne n'est prévenu. | À décider avec Adam | Étape 7 |
| Kolla installé depuis une branche, pas un tag | Reproductibilité. | Montée de version | ADR 0001 |
| Correction séquentielle (~5 s pour le lab 08) | Acceptable ; à paralléliser si la charge l'exige. | Bloc B | Étape 11 |
Jeton de console : ≈ 1,1 s par appel Nova remote-consoles |
Plus gros poste de l'ouverture d'un lab (2,8 s au total, critère < 5 s tenu). Préparer les jetons à l'attribution si besoin. | Bloc B | Étape 13 |
| Tâches Ansible toujours « modifiées » (composer, npm, build, cache) | Brouille la lecture de l'idempotence. | Bloc B | Étape 8 |
| Mentions légales à compléter | Article « Disponibilité et responsabilité » des CGU ; délégué à la protection des données s'il en est désigné (éditeur, SIREN et adresse complétés le 2026-10-09). | Avant le pilote | Étape 14 |
| Slogans « du lycée au master » | Le catalogue va aujourd'hui du lycée au BUT. Positionnement laissé tel quel : décision éditoriale d'Adam. | À décider | Étape 14 |
Ancien storage/logs/laravel.log |
Fichier unique d'avant la rotation quotidienne (étape 14) : jamais purgé, à supprimer ou archiver (accord d'Adam). | Dès que possible | Étape 14 |
| Pages d'aperçu publiques (32) | Signalées comme aperçus avec données fictives ; à retirer ou remplacer au fur et à mesure que les fonctions réelles arrivent. | Au fil du bloc B | Étape 14 |
| Invitation des élèves majeurs par e-mail (V2 du CLAUDE.md) | Demande un service d'envoi d'e-mails (compte ouvert par Adam, DNS SPF/DKIM). Jamais pour les mineurs. | V2 | 2026-10-09 |
| Code de classe : caractères ambigus | Généré avec Str::random (0/O, 1/I/l possibles), contrairement aux codes élèves. Utiliser le même alphabet sans ambiguïté. |
Bloc B | 2026-10-09 |
sudo sans mot de passe pour adam (/etc/sudoers.d/90-adam) |
La clé SSH de Claude Code (sans passphrase) donne un accès root complet. Retrait proposé à l'étape 16 ; gardé par choix d'Adam pendant le bloc A. Retrait : vérifier son mot de passe (sudo -k && sudo -v), garder la session ouverte, sudo rm /etc/sudoers.d/90-adam, puis playbooks avec -K. |
Fin du bloc A | Étape 16 |
| Visio : pas de relais TURN sur 443 | Les réseaux scolaires qui bloquent l'UDP n'auront ni son ni image (CLAUDE.md : tout par 443). Restructurer l'entrée HTTPS (aiguillage Nginx par nom) + coturn ; demande un nom DNS (turn.syllabuslab.fr). | Avant le pilote | Étape 15 |
| Visio : chat activé à chaud non vérifié | L'interrupteur « Chat des élèves » change la barre d'outils par overwriteConfig ; non vérifié en navigateur. Vue mobile de la maquette non reprise (la page élève est simplement adaptative). |
Bloc B | Étape 15 |
| Image Jitsi figée sans procédure de mise à jour | stable-11248 : comme pour Kuma, prévoir la montée de version par Ansible (variable visio_version) et rejouer visio-e2e.mjs. |
Bloc B | Étape 15 |
| Self-healing : pas d'alerte Prometheus dédiée | syllabus_vm_panne_generale et syllabus_vm_irreparables sont publiées mais sans règle d'alerte ; seul le prof voit une VM irréparable dans la salle d'attente. |
Avant le pilote | 2026-10-12 |
Self-healing : ne couvre que les VM (pas le serveur, déjà en dette, ni les conteneurs/services, déjà Restart=always) |
Documenté dans docs/runbooks/self-healing.md, pas une lacune à corriger — rappel pour ne pas le redemander. |
— | 2026-10-12 |