3.3 KiB
3.3 KiB
2026-06-17 — Session : infra compose, documentation, E2E Playwright
Auteur : BYAN. Retrospective de session. Suite a l'achevement du back-office P3 (Stats/Users/RBAC), cette session a porte sur l'infra de demarrage, un jeu de documentation pour la Forge, et l'amorce des tests E2E.
Contexte de depart
P3 back-office complet et merge (#37 Stats, #38 Users, #39 RBAC). dev propre.
Ce qui a ete livre (PR mergees sur dev)
| PR | Objet |
|---|---|
| #40 | Makefile -> docker compose up : service one-shot wakdo-migrate (migrate + seed idempotents, suivi schema_migrations/seeds_applied). Makefile supprime. |
| #41 | docker-compose.yml standalone portable (port hote, sans Traefik) ; prod = docker-compose.prod.yml gitignore par hote. Renommage TRAEFIK_DOMAIN_* -> APP_HOST_*. .env.example local-first. |
| #42 | Doc socle : ARCHITECTURE.md (10 sections) + DEVELOPER.md. |
| #43 | Registre docs/adr/ : 9 ADR (puis 10, cf. #46). |
| #44 | Doc par domaine docs/domaines/ : 7 fiches (auth, catalogue, stock-recettes, users, rbac, stats, borne). |
| #45 | E2E Playwright etape 1 : parcours borne (welcome -> confirmation). |
| #46 | E2E Playwright etape 2 : parcours admin (garde -> login -> dashboard -> logout) + fix securite (cf. ADR-0010). |
Decisions notables
docker compose upcomme commande unique (Cr 7.c.4) sansmakeni dependance hote, via le servicewakdo-migrate. Cf. ADR-0008, journal makefile-to-compose.- Deux fichiers compose pleins et independants (pas d'overlay
-f) : un standalone versionne pour tous, un prod gitignore par hote. Choix de simplicite assume sur demande du user (clarte > DRY pour l'infra). Cf. ADR-0009. - Playwright en conteneur officiel, contre une stack jetable isolee (
run.sh, projet-p wakdoe2e, override container_name, joint par--add-host) : aucune dependance browser sur l'hote, ne touche aucune stack existante. Hostnames de test en.test(Chromium force*.localhostvers 127.0.0.1, RFC 6761).
Ce que l'E2E a fait remonter (sa valeur)
- a11y : le bouton "Valider ma commande" (
<a>) gardaitaria-disabled="true"(.disabledest un no-op sur un<a>) -> annonce desactive panier rempli. Corrige. - securite/usage : cookie de session
secure=trueen dur -> session intenable en HTTP, donc admin inconnectable en local. Rendu conditionnel au HTTPS (prod inchange). Cf. ADR-0010.
Verifications
PHPStan L6 OK ; 263 tests unit ; 7 tests JS ; 2 parcours E2E verts (borne + admin) ;
smoke-test standalone (stack jetable, migrate + seed + vhosts) ; CI Forgejo verte sur
chaque PR (auto-merge sur label). .env LOCAL migre vers APP_HOST_*.
Reste a faire (file d'attente)
- Deploiement serveur (Thanos) : migrer le
.envserveur (APP_HOST_*), placer sondocker-compose.prod.yml, back-fillseeds_appliedavant le 1er up. - E2E etape 3 : job CI Forgejo (stack jetable + Playwright conteneur) ; verifier que le runner peut lancer Docker.
- Front : page de login a retravailler (signalee comme "moche" ; pas le dashboard).
- Doc : enrichissements (diagrammes), doc commande quand P4 sort.
- P4 : domaine commande (KPIs vente, nav orders, swap borne -> API DB-backed).
Reprise
docs/SESSION_RESUME.md tient l'etat detaille et les commandes de reprise.