`secure => true` etait en dur : un cookie Secure n'etant renvoye qu'en HTTPS, la
session ne tenait pas en HTTP (dev / standalone local / E2E) et le login admin
echouait ("Session expiree" -> CSRF KO). Revele par le parcours E2E admin.
SessionManager::cookieSecure() derive le flag du schema : X-Forwarded-Proto=https
(pose par Traefik en prod, fiable car l'app n'est joignable que par le proxy sur le
reseau interne), sinon var HTTPS, sinon port 443. Applique a la pose ET a l'expiration
du cookie. Prod inchange (toujours HTTPS -> Secure). httponly + SameSite=Strict
restent inconditionnels. Detail : docs/adr/0010.
Verifie : PHPStan L6 OK, 263 tests unit OK, E2E admin (login/garde/logout) vert.
1.9 KiB
1.9 KiB
Registre des decisions d'architecture (ADR)
Une fiche courte par decision structurante : contexte, decision, consequences. Format inspire des Architecture Decision Records (M. Nygard). Les ADR sont immuables : une decision revisee donne une nouvelle fiche qui supersede l'ancienne (statut mis a jour).
Auteur : BYAN (formalisation ; arbitrage et validation par l'auteur).
| # | Decision | Statut |
|---|---|---|
| 0001 | PHP from scratch, sans framework ni Composer | Accepte |
| 0002 | Back-office en MVC rendu serveur (pas de SPA) | Accepte |
| 0003 | Stock en pourcentage + disponibilite produit calculee (RG-T21) | Accepte |
| 0004 | PIN d'action sensible (equipier) + audit dans la meme transaction | Accepte |
| 0005 | Throttle du PIN separe des compteurs de connexion (RG-T22) | Accepte |
| 0006 | HTTP 409 (conflit) vs 422 (validation) | Accepte |
| 0007 | Effacement RGPD par anonymisation (tombstone), pas DELETE | Accepte |
| 0008 | Du Makefile a docker compose up (service wakdo-migrate) |
Accepte |
| 0009 | docker-compose.yml standalone + docker-compose.prod.yml gitignore | Accepte |
| 0010 | Cookie de session Secure conditionnel au HTTPS | Accepte |
Modele de fiche
# ADR-NNNN — Titre
- Statut : Propose | Accepte | Supersede par ADR-XXXX
- Date : AAAA-MM-JJ
## Contexte
Le probleme, les contraintes, les options envisagees.
## Decision
Le choix retenu, en une ou deux phrases nettes.
## Consequences
Ce que ca implique (positif et negatif), et les regles/fichiers concernes.