Paillasse/docs/dette.md
Adam Belkacemi 1ac8d4773a corrige /ide, sert Mulish depuis le portail et complète les mentions légales
/ide avait une erreur de syntaxe depuis la maquette et un aperçu hors de
son bac à sable. Mulish était encore importée depuis Google par la feuille
de thème. Nouveaux tests : syntaxe des scripts de chaque page, feuilles de
style sans import externe. public/vendor exclu du rsync.

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

4.7 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