corentin_wakdo/docs/adr/0002-back-office-mvc-rendu-serveur.md
Imugiii 035129d7be
All checks were successful
CI / js-tests (pull_request) Successful in 23s
CI / secret-scan (pull_request) Successful in 10s
CI / php-lint (pull_request) Successful in 23s
CI / static-tests (pull_request) Successful in 45s
CI / auto-merge (pull_request) Successful in 4s
docs(adr): registre des decisions d'architecture (9 ADR)
docs/adr/ : une fiche courte (contexte / decision / consequences) par decision
structurante, + un index et un modele de fiche.

0001 PHP from scratch sans Composer ; 0002 back-office MVC rendu serveur ;
0003 stock en % + dispo calculee RG-T21 ; 0004 PIN d'action sensible + audit en
transaction ; 0005 throttle PIN separe du login (RG-T22) ; 0006 HTTP 409 vs 422 ;
0007 effacement RGPD par anonymisation (tombstone) ; 0008 Makefile -> docker compose
(wakdo-migrate) ; 0009 compose standalone + prod gitignore.

Deuxieme PR du jeu de documentation. Resout le renvoi docs/adr/ d'ARCHITECTURE.md.
2026-06-17 13:50:27 +00:00

22 lines
1 KiB
Markdown

# ADR-0002 — Back-office en MVC rendu serveur (pas de SPA)
- Statut : Accepte
- Date : 2026-06-15
## Contexte
Le back-office (login, CRUD catalogue, stock, users, RBAC, stats) doit etre construit.
Options : SPA JS consommant une API JSON ; pages rendues serveur (MVC PHP) ; hybride.
La borne client, elle, est deja un front statique distinct (Bloc 1).
## Decision
Le back-office est en **MVC rendu serveur** : formulaires POST + redirections, vues PHP
injectees dans un layout commun. L'API REST (`/api/*`) reste interne, consommee par la
borne. Login = vue PHP, pas un endpoint JSON.
## Consequences
- (+) CSRF, sessions, garde de permission et echappement de sortie se branchent
naturellement sur chaque page ; demontre le MVC sans build front.
- (+) Pas de duplication d'etat client/serveur pour l'admin.
- (-) Interactions riches (matrice RBAC, editeur recette) gerees en JS vanilla cible,
CSP-safe (champs caches / cases scalaires), sans framework front.
- Controleurs non-`final` (seam de test) ; vues sous `src/app/Views/admin`.