diff --git a/.kilo/plans/remediation-plan.md b/.kilo/plans/remediation-plan.md index 46c6232..9cbc476 100644 --- a/.kilo/plans/remediation-plan.md +++ b/.kilo/plans/remediation-plan.md @@ -1,5 +1,8 @@ # Plan de remédiation — PC Builder +> **Statut : exécuté le 2026-07-23.** Voir le résumé d'implémentation à la +> fin de ce document pour le détail des commits et des décisions prises. + Basé sur la revue de code du 2026-07-23. Objectif : corriger les failles de sécurité critiques avant toute mise en production, puis assainir la base du code (majeur), puis traiter les points mineurs/qualité. @@ -318,3 +321,43 @@ fonctionnels Japa : - **2.5** : garder, implémenter ou supprimer le champ `origin`. - **2.8** : supprimer les composants orphelins (Option A) ou finaliser la fonctionnalité galerie/éditeur de composants uniques (Option B). + +--- + +## Résumé d'implémentation (2026-07-23) + +Toutes les phases du plan ont été exécutées. Commits (après réécriture +d'historique, voir 1.3 ci-dessous) : + +- `3cc189c` — fix(security): close IDOR on computers/components update & destroy + (Phase 1: 1.1, 1.2, 1.5, 2.1, 2.2, retrait du suivi de `.env.production`) +- `3579c9d` — refactor: uniform validation, fix create form UX, dedupe filter + dropdowns (Phase 2: 2.3, 2.4, 2.5, 2.7, déplacement `MIGRATION_*.md`) +- `94f89be` — chore: harden config, strengthen frontend typing, fix UTF-8 + mojibake (Phase 3: 3.1, 3.2, 3.3, 3.5) +- `562cea3` — test: add functional regression tests for IDOR fixes (Phase 4) +- `b888718` — docs(ci): flag NAS deploy secrets risk and .env.production + breakage (documentation de 1.4) + +### Décisions prises avec l'utilisateur +- **1.3 (purge historique)** : `git-filter-repo` a été utilisé pour retirer + `.env.production` de tous les commits, une sauvegarde bundle complète a été + créée avant l'opération (`/tmp/user/1000/kilo/pc_builder_backup_*.bundle`), + puis l'historique réécrit a été poussé en force vers `origin/main`. Tout + autre clone existant du dépôt doit être resynchronisé + (`git fetch && git reset --hard origin/main`). **Les secrets réels + (APP_KEY, DB_PASSWORD du NAS) doivent encore être régénérés manuellement**, + car ils ont circulé en clair dans l'historique avant la purge. +- **1.4 (CI/NAS)** : documenté uniquement dans `.gitea/workflows/build.yml` + (pas d'accès au NAS pour reconfigurer SSH/sudo). Le retrait de + `.env.production` du suivi git casse le step `cat .env.production` du + pipeline de déploiement — c'est documenté en commentaire, à corriger en + migrant les secrets vers Gitea Actions. +- **2.5 (champ `origin`)** : supprimé (jamais fourni par le backend). +- **2.8 (widgets orphelins)** : conservés tels quels, non supprimés. + +### Non traité +- Phase 2.6 a été traitée dans le commit de sécurité (détachement des + composants + nettoyage des fichiers uploads à la suppression d'un + ordinateur), avancée par rapport au planning initial. +- 2.8 tranché "garder tel quel" — aucune action requise.