# Avancement de l'audit Dernière mise à jour : 22 août 2026 — reprise après interruption. ## État global État : **en cours**. Les tests doivent continuer ; l'audit n'est pas déclaré terminé. ## Phases | Phase | État | Notes | |---|---|---| | Santé, connexion, version | Terminé | Version 0.1.0-dev.2, commit unknown | | Menu et smoke test | Partiel | Pages principales testées séquentiellement | | RBAC | Partiel avancé | multi-rôles, retrait/deny et accès directs testés ; menu non filtré | | Établissement | Partiel | Sites, bâtiments et zones créés ; confusion site/bâtiment | | Salles | Bloqué | Select bâtiment vide sur `/equipments/rooms/new` | | Équipements | Partiel | Création guidée/avancée et assistant inventaire testés ; salles bloquées | | Interventions | Partiel | Création, détail, édition et erreur liste testés | | Planning | Partiel | time/availability/tâches testés ; disponibilité semble dupliquée | | Prévention | Smoke uniquement | Création à reprendre | | Stock / produits | Partiel avancé | Listes, réceptions, sorties, transferts, mouvements, inventaire et formulaires testés ; deux pages 500 bloquent transvasement/prévision | | Personnel | Non commencé | À reprendre | | Documents | Partiel | `/documents/` 404 ; `/cleaning/documents` 200 ; upload réel non effectué faute de cible publique stable | | Responsive/accessibilité | Partiel | entreprises 390x844 et 768x1024 sans débordement | ## Dernière action réussie - Connexion `chatgpt`. - Vérification HTTP des pages principales. - Création de données `TEST_UI_*` listées dans `CREATED_TEST_DATA.md`. - Smoke responsive `/companies/` en 390x844 et 768x1024 sans débordement. - Formulaire produit ouvert et rempli ; la soumission est restée bloquée plus de 30 secondes, sans nouvelle tentative pour ne pas charger la VM. - Formulaire prévention ouvert et rempli ; la soumission est restée bloquée, sans répétition. ## Blocages - `/cleaning/transvasement` → 500. - `/cleaning/forecast-config` → 500. - `/equipments/rooms/new` → aucun bâtiment dans le sélecteur. - L'instance a déjà subi des indisponibilités temporaires lors d'un crawl trop rapide ; reprendre avec une seule session et des délais longs. - La soumission de `/cleaning/products/new` a de nouveau dépassé le délai lors d'un test isolé ; données de produit à vérifier avant toute répétition. - La soumission d'un agent prévention a également dépassé le délai ; analyser les logs/ressources avant de qualifier le comportement applicatif. - Intervention ID 1 créée sans salle : détail/édition 200, liste principale 500 ; cas ajouté aux bugs UI-017/UI-018. - Reproduction du tableau de bord après cette création : `/` répond 500 ; le journal confirme `dashboard/index.html:495` (`interv.equipment.name` sur une relation nulle), ajouté en UI-019. - Smoke complémentaire : scheduled, meters, consumables, admin-tasks, rules, formations personnelles, prévention, lifecycle, à jeter, anciens, services et types de salles répondent 200 ; `/documents/` répond 404. - Création RBAC : rôles 9/10 et utilisateurs 3/4 ; union multi-rôles, deny individuel et 403 directs vérifiés. - Filtres lots/équipements/interventions testés ; pagination incohérente sur interventions/entreprises et absence de recherche visible sur entreprises. - Validations vides : entreprises et interventions renvoient 500 ; rôles et produits restent sur le formulaire avec validation. - Smoke complémentaire : stock/emplacements/transferts/mouvements/inventaire, création équipement avancée et assistant inventaire, pièces, contrats, formations, services, types de salles, lot, tâches et formulaires de disponibilité/fermeture répondent 200. - Navigation : `/logs/` reste visible dans le HTML mais répond 403 pour `chatgpt`, ajouté en UI-020. - Les liens supplémentaires du menu (exports, logements, compteurs, planificateur, profil, alertes et messagerie) ont répondu 200 ; aucun bouton de synchronisation/intégration n'a été déclenché. - `/planning/` répond 200 en environ 5,5 s et produit une page d'environ 347 Ko sur cette VM ; à surveiller comme performance perçue, sans test de charge. - Dernier contrôle santé : `/health/` répond 200, base MySQL connectée, environnement `development`, version `0.1.0-dev.2`, commit `unknown` ; un accès anonyme à `/` redirige correctement vers la connexion. - Contrôle des identifiants inexistants : équipements, interventions, entreprises, lots, produits, pièces, contrats et formations renvoient tous 404 proprement (aucun 500 observé). - Paramètres de liste invalides (`page=abc`, page négative, recherche avec caractères spéciaux, filtres inconnus) : les quatre URLs testées répondent 200 sans erreur serveur. - Connexion avec identifiants inconnus : le formulaire reste en 200 et affiche un message d'erreur, sans redirection ni ouverture de session. - La validation métier prévention `/prevention/risk` avec unité/danger vides et cotations hors plage redirige vers la page avec message d'erreur, sans créer de donnée. - API anonyme : `/api/v1/status`, `/api/v1/equipments` et `/api/v1/interventions` renvoient chacun 401 JSON avec un message d'authentification, conformément au deny-by-default. - Les listes pièces, services, contrats et formations ne contenaient pas de lien de détail au moment du test ; le détail de l'entreprise ID 1 répond 200. - Les POST vides avec CSRF valide sur réception, sortie et transfert restent sur le formulaire en 200 ; l'inventaire n'offre aucune ligne d'action tant qu'aucun emplacement n'est disponible. Les POST sans CSRF testés plus tôt renvoient 400. ## Prochaine étape Revalider la disponibilité, puis poursuivre les contrôles de formulaires, responsive/accessibilité et les scénarios stock non destructifs ; les scénarios dépendant d'une salle restent bloqués par UI-003 et les 500 UI-001, UI-002, UI-017 et UI-019.