Paillasse/docs/dette.md
Adam Belkacemi dd4f9c3c55 permet aux élèves de rejoindre leur classe avec son code, et les fiches en lot
L'élève saisit le code de classe et son prénom, le prof accepte, l'élève
voit une seule fois son identifiant et son code. Aucun e-mail. Le prof
peut aussi régénérer les fiches de plusieurs élèves d'un coup. Procédure
pour prouver la copie de la clé des sauvegardes.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-09 22:18:53 +02:00

5.1 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 non figée (louislam/uptime-kuma:1) Une version différente peut arriver à n'importe quel redéploiement, sans test. Figer un tag précis (voire le digest) dans une variable du rôle supervision, et documenter la mise à jour par Ansible (changer la variable, relancer le rôle, vérifier) — jamais par le bouton de l'interface. Kuma lui-même qualifie ce tag d'« historique » (il injecte docker-latest-warning.js dans les images latest/1, constaté le 2026-10-09) : prévoir la migration vers un tag versionné, en testant la page de statut et les sondes. Avant le pilote Demande d'Adam, 2026-10-09
Base de données d'OpenStack non sauvegardée (MariaDB de Kolla : Keystone, Nova, Neutron, Heat, Placement) Seule la base du portail l'est. Une perte de ce serveur oblige à recréer projet, compte de service, gabarits, et perd les stacks en cours. Kolla fournit kolla-ansible mariadb_backup : l'intégrer à la sauvegarde quotidienne et au test de restauration. Avant le pilote Étape 13
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
Larastan (PHPStan niveau 6) absent Exigé par le CLAUDE.md depuis l'étape 8, jamais installé. Bloc B Étape 8
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
Permissions-Policy ferme caméra et micro À ouvrir pour la visio. Étape 15 Étape 12
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