Changelog — Hub GCMLab

Version actuelle : v1.68

v1.68 Actuelle 2026-09-28

Hub : design GCM aussi en production (routage Caddy)

  • Le Hub sert la page classique (fond photo) quand le design GCM est choisi, et la nouvelle page (gl-app) pour Atelier, y compris derrière Caddy (VM/VPS)
  • Routage Caddy par cookie gcmlab_design (deploy/Caddyfile et deploy/Caddyfile.http)
v1.67 2026-09-28

Refonte visuelle — design GCMLab (GCM / Atelier)

  • Les thèmes de couleurs sont remplacés par le design GCMLab : GCM (orange pastel) ou Atelier (crème/doré), sélectionnable dans le menu « Design »
  • Le choix est partagé entre le Hub et tous les modules via le cookie gcmlab_design
  • Barre de navigation modernisée et page de connexion en deux volets
v1.66 2026-09-25

Tuile Projets : statuts

  • La tuile Projets affiche en cours, en attente, terminés et annulés
v1.65 2026-09-25

Retrait du mode sombre du Hub

  • Mode sombre retiré du Hub (plus d'option « Sombre » ni de détection automatique)
  • Thème GCM avec choix du fond photo par défaut
v1.64 2026-09-22

Thème sombre et surfaces moins blanches

  • Nouveau thème « Sombre » dans le menu Thème du Hub
  • Par défaut : thème sombre si le navigateur est en préférence sombre (avant le premier choix explicite)
  • Survols, listes et menus de champs utilisent des surfaces variables (moins de blanc pur au survol)
  • Correctif sécurité : suppression du lien Retour (javascript:history.back) sur Projets
  • Confirmations de suppression harmonisées via data-confirm (famille de procédé, favoris, modération Améliorations)
v1.63 2026-09-14

Nouvelle tuile « Suivi des procédés »

  • Nouvelle tuile « Suivi des procédés » sur le Hub (tâches liées aux procédés de microfabrication)
  • Statistiques de la tuile : nombre de tâches en cours et en attente
  • Ajout du module Procédés aux accès par utilisateur (Administration Projets → Utilisateurs)
v1.62 2026-08-22

Tuile « Maintenances préventives » et tuiles uniformisées

  • La tuile Pompes est renommée « Maintenances préventives »
  • Statistique « Nombre de maintenances récurrentes » ajoutée sous les statistiques des pompes
  • La tuile Inventaires est renommée « Gestion des inventaires »
  • Statistique Ententes « Nombre de commandes en attente de réception » renommée « Nombre de commandes à recevoir »
  • La tuile Calibrations est renommée « Métrologie des équipements »
  • Hauteur des tuiles uniformisée : un espace fixe est réservé pour les statistiques sur toutes les tuiles (les lignes du haut et du bas ont désormais la même taille)
v1.61 2026-08-18

Sécurité — scripts inline externalisés sur tous les modules

  • Tous les scripts inline et gestionnaires inline (onsubmit, onclick, onchange) ont été déplacés vers des fichiers .js statiques dans les 7 modules (Projets, Demandes, Inventaires, Ententes, Calibrations, Pompes, Hub)
  • Les données Jinja passées aux scripts sont désormais injectées via des blocs JSON sécurisés (script type=application/json), ce qui supprime les scripts inline du HTML
  • Les confirmations de suppression sont gérées par un utilitaire commun (data-confirm) et les boutons d'impression par data-print
  • Ce nettoyage prépare le retrait de 'unsafe-inline' de la directive script-src de la Content-Security-Policy
  • Ebeam : l'import du fichier Excel réflectomètre remplit automatiquement les 10 points de mesure et recalcule la moyenne (même format que l'ICP-CVD Plasmatherm)
  • Pompes : les cases à cocher des types de tâches du formulaire de maintenance sont alignées sur deux lignes, et le choix d'utilisation d'un kit est décalé vers la droite pour réduire la hauteur de la page
v1.60 2026-08-17

Sécurité — Tailwind auto-hébergé et en-têtes dédoublonnés

  • Tailwind CSS chargé en local (plus de dépendance au CDN cdn.tailwindcss.com) — élimine le besoin de SRI et les requêtes externes
  • En-tête X-Frame-Options retiré des modules (déjà posé par Caddy) pour éviter les doublons signalés par les scanners
v1.59 2026-08-14

Tuile Pompes — statistique des pompes en spare

  • La tuile Pompes affiche désormais le nombre de pompes en spare, sous celles en service et en arrêt
v1.58 2026-08-12

Tuiles Hub — statistiques et rappels discrets

  • Le badge « Disponible » est remplacé par des statistiques détaillées par module : nombre de projets en cours et en attente, pompes en service et à l'arrêt, équipements suivis, inventaires, demandes actives, ententes actives et commandes en attente de réception
  • « Indisponible » reste affiché quand l'utilisateur n'a pas accès au module
  • Tuiles légèrement agrandies pour accueillir les statistiques
  • Les statistiques s'affichent en texte simple, sans encadré ni fond coloré
  • Les rappels (Facturation à faire, Maintenance à faire, Nouvelle note, Nouvelle demande) ne clignotent plus : pastilles discrètes à fond orange pâle avec point indicateur, positionnées en bas à droite de la tuile
v1.57 2026-08-12

Hub — correctifs sécurité externe (audit)

  • Listing de répertoire désactivé sur le serveur local du Hub (plus d'énumération de /static/ et des dossiers sans index)
  • Documentation interactive de l'API (Swagger /docs, /redoc, /openapi.json) désactivée par défaut sur tous les modules — réactivation uniquement via ENABLE_API_DOCS=1
  • Limitation des tentatives de connexion (anti brute-force) : 10 essais max par IP sur 5 minutes, puis refus temporaire 429
v1.56 2026-08-11

Hub — audit et renforcement de la sécurité

  • Validation des hôtes autorisés (ALLOWED_HOSTS / HUB_ALLOWED_HOSTS) pour toutes les redirections et URL publiques : un header Host non autorisé est ignoré et remplacé par l'hôte de confiance (anti open-redirect)
  • En-têtes de sécurité ajoutés sur toutes les réponses : X-Content-Type-Options (nosniff), X-Frame-Options (DENY), Referrer-Policy (same-origin)
  • Limite de taille des corps de requête (25 Mo) pour limiter les attaques par déni de service via le proxy
  • Déconnexion en POST uniquement (anti-CSRF) : un GET /logout est désormais relayé en POST vers le module Projets au lieu de renvoyer une erreur 405
v1.55 2026-08-07

Hub — écran de chargement avant affichage des tuiles

  • Le contenu du Hub (tuiles, en-tête) reste masqué tant que la session n'est pas vérifiée
  • Un écran de chargement discret (spinner « Vérification de la session… ») apparaît en premier, puis l'invite de connexion le cas échéant
  • Le Hub n'est plus visible avant la redirection vers la page de connexion
  • Le serveur nginx n'utilise plus la mise en cache du navigateur pour les pages HTML (no-cache), pour éviter qu'une ancienne version de la page s'affiche
v1.54 2026-08-07

Hub — point retiré entre la version et le crédit

  • Le point « · » entre le numéro de version et « Christophe Clément™ » est retiré
  • Un léger espacement est conservé entre les deux éléments
v1.53 2026-08-07

Tuile Inventaires — description mise à jour

  • Description de la tuile Inventaires : « Suivi des inventaires du/des laboratoires. »
v1.52 2026-08-07

Tuiles du Hub — séparateur sous le titre

  • Un petit séparateur discret (courte ligne) est ajouté entre le titre et la description de chaque tuile, aux couleurs du thème choisi
v1.51 2026-08-07

Tuiles du Hub — titres centrés et agrandis

  • Le titre de chaque tuile est centré horizontalement dans la tuile
  • La taille de la police du titre est légèrement augmentée
v1.50 2026-08-05

Tuiles du Hub — suppression des préfixes GCMLab et LMF

  • Les titres des tuiles n'affichent plus les préfixes « GCMLab : » et « LMF : », seul le nom du module est conservé
v1.49 2026-08-03

Version et changelog réservés aux administrateurs

  • Le numéro de version et le lien « Changelog » n'apparaissent plus que pour les administrateurs
  • La page Changelog redirige les autres utilisateurs vers l'accueil
v1.48 2026-08-03

Tuile Calibrations — libellé

  • La tuile du module Calibrations est renommée « GCMLab: Suivi des équipements »
v1.47 2026-08-03

Audit et renforcement de la sécurité

  • Clé de session partagée GCMLAB_SECRET_KEY obligatoire sur tous les modules : les applications refusent désormais de démarrer avec une clé par défaut
  • Compte de démonstration christophe supprimé (migration automatique : compte effacé si aucune donnée, changement de mot de passe forcé sinon)
  • Contrôle d'accès renforcé : les routes d'administration en écriture (Projets) exigent le rôle Admin
  • XSS corrigé dans le module Suivi des demandes : le Markdown est assaini (DOMPurify) avant affichage
  • Suppression du rendu non échappé (tojson) dans Projets et Pompes
  • Correction du lien « Retour au Hub » depuis Projets : il pointe vers la racine du site au lieu du port 8080
v1.46 2026-08-02

Correction session — session-status (dev)

  • Proxy /projets/api/session-status via le hub : plus de déconnexion intempestive toutes les 5 minutes en développement local
  • La déconnexion automatique après 2 h d'inactivité et la déconnexion manuelle sont maintenant cohérentes entre le hub et les modules
v1.45 2026-07-24

Disposition des tuiles du hub

  • Ligne du haut : trois modules GCMLab (Projets, Données, Inventaires)
  • Ligne du bas : Ententes à gauche, Pompes et Demandes LMF au centre et à droite
v1.44 2026-07-17

Alerte arc-en-ciel — Améliorations

  • Pour l'administrateur : le lien « Améliorations » s'illumine en arc-en-ciel s'il y a des suggestions en attente
  • L'effet disparaît lorsque toutes les suggestions sont traitées
v1.43 2026-07-17

Modération Améliorations — repli par année

  • Correction du repli/dépli des suggestions par année (▲ / ▼)
v1.42 2026-07-17

Améliorations — liste utilisateur et modération admin

  • Mes suggestions : bouton « Retirer de ma liste » une fois la suggestion traitée
  • Modération admin : suggestions regroupées par année, dépliables (▲ / ▼)
v1.41 2026-07-17

Correction page Améliorations

  • Suppression de la boucle de rechargement (login ↔ Améliorations)
  • Message d'erreur clair si l'API feedback Projets est indisponible
v1.40 2026-07-17

Améliorations & bugs (Hub)

  • Lien discret « Améliorations » en haut à gauche une fois connecté
  • Page pour signaler un bug ou proposer une amélioration par module
  • Administrateur : approuver, rejeter ou supprimer ; l'utilisateur voit ✓ Approuvé avec la date
v1.39 2026-07-15

Tuile Ententes & Suivi commandes

  • Tuile hub renommée : « GCMLab : Ententes & Suivi commandes »
v1.38 2026-07-12

Tuile Projets Industriels

  • Tuile hub renommée : « GCMLab : Projets Industriels »
v1.37 2026-07-11

Fond photo pour le thème GCM

  • Sous Thème → GCM : option « Fond photo » avec la photo du bâtiment
  • Disponible uniquement avec le thème GCM ; le choix est mémorisé dans le navigateur
v1.36 2026-07-10

Sélecteur de thème sur le Hub

  • Menu Thème (Bleu LMF, GCM, Forêt, Indigo, Ardoise) à côté de la déconnexion
  • Le choix est mémorisé dans le navigateur
v1.35 2026-07-10

Tuiles Hub selon accès modules

  • Chaque tuile peut être grisée si l'utilisateur n'a pas l'accès au module (réglage dans Projets → Utilisateurs)
  • Message d'erreur dédié lors d'un accès refusé
v1.34 2026-07-10

Espacement du titre GCMLab : Données

  • Tuile hub : « GCMLab : Données » (espace avant les deux-points)
v1.33 2026-07-10

Renommage des tuiles Projets, Pompes et Demandes

  • Tuiles hub : « GCMLab : Projets », « LMF : Suivi des pompes », « LMF : Suivi des demandes »
v1.32 2026-07-10

Renommage des tuiles Inventaires et Ententes

  • Tuiles hub : « GCMLab : Inventaires » et « GCMLab : Ententes »
v1.31 2026-07-05

Hub — grille des modules

  • Une seule tuile « Module à venir » (6 modules au total sur le hub)
v1.30 2026-07-05

Module LMF — Inventaires

  • Nouvelle tuile « LMF — Inventaires » (port dev 8005, chemin /inventaires/)
  • Proxy hub et stack Docker unifiée pour le module Inventaires
v1.29 2026-07-05

Tuile Calibrations — libellés

  • Titre : « GCMLab: Données »
  • Description : « Historique et suivi des données équipements »
v1.28 2026-07-05

Hub — libellés Calibrations

  • Tuile : « GCMLab: Suivi des données des équipements »
  • Phrase de pied de page sur la connexion unique retirée
v1.27 2026-07-02

Tuile Demandes — correction alertes en dev local

  • Hub :8080 utilise /demandes/api/hub-alerts (proxy) au lieu d'une URL 404
  • Les badges Nouvelle note / Nouvelle demande s'affichent correctement une fois connecté
v1.26 2026-07-02

Tuile Demandes — alertes personnalisées

  • Badges « Nouvelle note » et « Nouvelle demande » sur la tuile (comme Pompes / Projets)
  • Visibles uniquement pour le demandeur ou l'assigné concerné
  • Proxy /api/demandes/hub-alerts en développement local (port 8080)
v1.25 2026-06-21

Hub — déconnexion après inactivité

  • Vérification automatique de la session toutes les 5 minutes sur le Hub
  • Déconnexion et message d'expiration après 2 heures sans activité (onglet ouvert inclus)
v1.24 2026-06-21

Tuile Demandes — libellé raccourci

  • Titre de la tuile : « Suivi des demandes LMF »
v1.23 2026-06-21

Barre utilisateur Hub agrandie

  • Nom connecté et bouton Déconnexion plus visibles en haut à droite
v1.22 2026-06-21

Hub dev :8080 — tuiles via chemins

  • En local, les tuiles passent par /demandes/ etc. (redirect du hub) au lieu du port direct
v1.21 2026-06-21

Tuile Demandes — lien direct

  • Les tuiles modules ont un href réel (fonctionne même sans JavaScript)
  • Correction navigation vers /demandes/ depuis le Hub
v1.20 2026-06-21

En-tête Hub — utilisateur à droite

  • Nom d'utilisateur et bouton Déconnexion alignés à droite, au-dessus du logo
v1.19 2026-06-21

Tuile Projets sans accès

  • Badge « Indisponible » (même style que « Disponible ») pour les comptes Hub seulement
v1.18 2026-06-21

Tuile Projets selon les droits

  • La tuile GCMLab Projets est désactivée pour les comptes « Hub seulement »
v1.17 2026-06-21

Connexion unique GCMLab

  • Login obligatoire avant d'accéder au Hub (/login)
  • Session partagée — les autres modules n'ont plus de connexion séparée
  • Gestion des comptes uniquement dans GCMLab Projets
v1.16 2026-06-21

Ports développement local réalignés

  • Projets 8001, Pompes 8002, Calibrations 8003, Suivi des demandes 8004
v1.15 2026-06-21

Module Suivi des demandes — développement local

  • Tuile « Suivi des demandes — Gestion des maintenances » active (port dev 8003)
v1.14 2026-06-21

Alerte facturation — tuile Projets

  • Badge rouge clignotant « Facturation à faire » sur la tuile GCMLab Projets
  • Affiché lorsqu'au moins un projet est au statut A facturer
  • Proxy hub /api/projets/ et repli JavaScript (comme pour les pompes)
v1.13 2026-06-21

Nouvelles tuiles à venir

  • Trois tuiles supplémentaires sur la page d'accueil (même format que les modules actifs)
  • « Suivi des demandes — Gestion des maintenances » et deux emplacements « Module à venir » (badge Bientôt)
v1.12 2026-06-21

Tuile Calibrations — libellé GCM

  • Tuile « GCM — Données de calibration » (au lieu de LMF)
v1.11 2026-06-21

Module Calibrations disponible

  • Tuile « Données de calibration » active (port dev 8002, /calibrations/ en prod)
  • Lien vers le nouveau module LMF Calibrations
v1.10 2026-06-30

Alerte maintenance — Docker

  • Suppression du marqueur __POMPES_MAINTENANCE_ALERT__ à la génération des pages
  • Repli JavaScript si une ancienne page HTML est encore en cache
v1.09 2026-06-30

Page d'accueil — crédit et pied de page

  • Crédit simplifié : Christophe Clément™
  • Suppression de la mention « Intranet GCMLab » sous les tuiles
v1.08 2026-06-30

Stack unifiée — un seul port

  • Tuiles vers /projets/ et /pompes/ en production (ports 80/443)
  • Détection automatique stack unifiée vs développement multi-ports
  • docker-compose.unified.yml : hub + projets + pompes + Caddy
v1.07 2026-06-30

Alerte maintenance — affichage serveur

  • Badge injecté côté serveur à chaque chargement du hub (fiable sans JavaScript)
  • Cache désactivé sur hub.js / hub.css pour éviter les anciennes versions
v1.06 2026-06-30

Alerte maintenance — fiabilité

  • Proxy hub /api/pompes/ vers le module pompes (plus de blocage CORS)
  • Repli automatique sur l'appel direct au port 8001
v1.05 2026-06-30

Alerte maintenance — correction

  • Badge « Maintenance à faire » affiché uniquement si alerte réelle (plus de faux positif)
  • Badge rouge clignotant à droite de « Disponible »
v1.04 2026-06-30

Alerte maintenance pompes

  • Badge rouge clignotant « Maintenance à faire » sur la tuile Pompes si échéance ≤ 15 jours
v1.03 2026-06-25

Module Maintenance pompes

  • Tuile Maintenance pompes active (port 8001)
v1.02 2026-06-25

Crédit auteur

  • Mention « Vibecodé par Christophe Clément » à côté du numéro de version
v1.01 2026-06-25

Version et changelog du hub

  • Fichier hub/version.py et page changelog
  • Numéro de version affiché sur la page d'accueil
  • Convention documentée pour tous les modules (MODULES.md)
v1.00 2026-06-25

Hub GCMLab initial

  • Page d'accueil avec tuiles vers les modules
  • Tuile GCMLab Projets active (port 8000)
  • Tuiles Maintenance pompes et Calibrations (bientôt)
  • Déploiement Docker optionnel (docker-compose.stack.yml)