fix(deploy) : les gardes du déploiement reçoivent une session, et n'exigent plus un navigateur #1828

Merged
foXaCe merged 1 commit from fix/deploy-session into main 2026-10-18 09:23:39 +02:00
Owner

Le déploiement du front rembobinait un front sain, trois fois de suite, pour deux raisons qui n'étaient
pas dans le code.

  1. Les gardes lisaient la page de connexion. Depuis STUD-1233, le service répond la page de connexion à
    toute route protégée sans cookie : verifier-processus.py recevait du HTML là où il attendait du JSON
    (« réponse illisible »), et le garde des routes de deployer.sh aussi. deploy-132.sh fabrique une session
    courte (HMAC de l'expiration, comme serveur_auth.jeton_session) et la leur passe ; le vérificateur l'envoie
    sous son nom (studio_session=).
  2. Le rendu exigeait un Chromium absent du 130. Le vérificateur comptait « rendu non exécuté » comme un
    défaut. Il le dit maintenant (VERIF_SANS_NAVIGATEUR=1) — le front reste tenu par la garde statique de
    l'habillage, les tests et la CI ; depuis le PC, le rendu est jugé.
  3. L'homogénéité ne bloque plus quand elle ne peut pas mesurer : 0 bon, 1 écart (refus), 2 NON MESURÉ (on
    continue en le disant).

Mesuré : verifier-processus.py rend « PAGE BONNE — /processus/ charge sa build, relevé de 5 s » depuis le 130.

Le déploiement du front rembobinait un front **sain**, trois fois de suite, pour deux raisons qui n'étaient pas dans le code. 1. **Les gardes lisaient la page de connexion.** Depuis STUD-1233, le service répond la page de connexion à toute route protégée sans cookie : `verifier-processus.py` recevait du HTML là où il attendait du JSON (« réponse illisible »), et le garde des routes de `deployer.sh` aussi. `deploy-132.sh` fabrique une session courte (HMAC de l'expiration, comme `serveur_auth.jeton_session`) et la leur passe ; le vérificateur l'envoie sous son nom (`studio_session=`). 2. **Le rendu exigeait un Chromium absent du 130.** Le vérificateur comptait « rendu non exécuté » comme un défaut. Il le dit maintenant (`VERIF_SANS_NAVIGATEUR=1`) — le front reste tenu par la garde statique de l'habillage, les tests et la CI ; depuis le PC, le rendu est jugé. 3. **L'homogénéité ne bloque plus quand elle ne peut pas mesurer** : 0 bon, 1 écart (refus), 2 NON MESURÉ (on continue en le disant). Mesuré : `verifier-processus.py` rend « PAGE BONNE — /processus/ charge sa build, relevé de 5 s » depuis le 130.
fix(deploy) : les deux gardes du déploiement reçoivent une session, et n'exigent plus un navigateur
All checks were successful
Tests du tableau (Rust + Svelte) / Front Svelte (_tableau/front) (pull_request) Successful in 3m22s
Tests du tableau (Rust + Svelte) / Rust (_tableau/rust) (pull_request) Successful in 9m21s
f67b4f9f77
Le déploiement du front rembobinait un front SAIN, trois fois de suite, pour deux raisons qui n'étaient pas
dans le code.

**1. Les gardes lisaient la page de connexion.** Depuis STUD-1233, le service répond la page de connexion à
toute route protégée SANS cookie. `verifier-processus.py` demandait `/api/processus` et recevait du HTML : il
concluait « réponse illisible ». Le garde des routes (`deployer.sh`) faisait de même. `deploy-132.sh` fabrique
maintenant une session courte (la clé de session du 132, un HMAC de son expiration, comme
`serveur_auth.jeton_session`) et la passe aux deux (`VERIF_COOKIE`). Le vérificateur l'envoie sous son nom
(`studio_session=`) : le jeton nu ne sert à rien, et c'est ce qui a fait échouer le premier essai.

**2. Le rendu exigeait un Chromium absent.** Le 130 n'a pas de navigateur : `verifier-processus.py` comptait
« rendu non exécuté » comme un défaut, et le déploiement rembobinait. Il le dit maintenant
(`VERIF_SANS_NAVIGATEUR=1`, message explicite) : ce sont la garde statique de l'habillage, les tests du front et
la CI qui tiennent le front depuis le 130. Depuis le PC de l'opérateur, Chromium est là et le rendu est jugé.

**3. L'homogénéité ne bloque plus quand elle ne peut pas mesurer.** `homogeneite.py` sort 2 quand aucun Chrome
n'est là (ou pas de captures de référence) ; le déploiement refusait. Il distingue désormais les trois issues :
0 (mesuré, bon), 1 (mesuré, écart nouveau — refus), 2 (NON MESURÉ — on continue en le disant).

Mesuré : `verifier-processus.py` rend « PAGE BONNE — /processus/ charge sa build, relevé de 5 s » depuis le 130,
et le déploiement de `front service` va au bout.
foXaCe merged commit 6f83f0233e into main 2026-10-18 09:23:39 +02:00
Sign in to join this conversation.
No reviewers
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
foXaCe/studio!1828
No description provided.