All checks were successful
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.
1.2 KiB
1.2 KiB
ADR-0004 — PIN d'action sensible (equipier) + audit dans la meme transaction
- Statut : Accepte
- Date : 2026-06-15
Contexte
Les postes back-office sont partages (session ouverte au comptoir). Pour les operations sensibles (annulation, changement prix/TVA, suppressions, inventaire, gestion utilisateur, RBAC, effacement PII), il faut imputer l'acte a une personne, pas a la session partagee.
Decision
Modele identifiant equipier + PIN : l'operation sensible exige email + PIN, verifies
contre user.pin_hash (argon2id). Le user_id ainsi resolu est l'acteur ecrit dans
audit_log (RG-T14), dans la meme transaction que l'effet (RG-T08). Le set sensible
est defini par RG-T13. Les operations de stock tracent via stock_movement.user_id
(pas de double-journal).
Consequences
- (+) Imputabilite reelle sur poste partage ; trace immuable et atomique (pas d'effet sans audit, ni l'inverse).
- (+) Le PIN n'identifie pas la session : un manager peut autoriser sur le poste d'un autre sans relog.
- (-) Surface d'attaque PIN (4 chiffres) -> necessite un throttle dedie (voir ADR-0005).
- Brique :
App\Auth\PinVerifier. Regle :docs/merise/mlt.mdRG-T13/RG-T14.