docs: corrige des assertions documentaires fausses (upload images, fallback JSON, workflow commande)
This commit is contained in:
parent
0604d743fc
commit
aec417df3e
3 changed files with 15 additions and 11 deletions
|
|
@ -19,7 +19,7 @@ d'authentification durci dans `docs/uml/security-sequence.md`.
|
|||
| Brute-force | double throttle : compteur par compte (`user`) + par IP (`login_throttle`), backoff degressif |
|
||||
| Sessions | cookies `HttpOnly` + `Secure` + `SameSite=Strict`, regeneration d'ID a la connexion (anti-fixation), idle 4h / absolu 10h |
|
||||
| Injection | PDO prepared statements exclusivement |
|
||||
| Upload | validation MIME + taille, stockage hors webroot |
|
||||
| Upload | non implemente (aucun flux d'upload livre) ; prevu : validation MIME + taille, stockage hors webroot |
|
||||
| En-tetes / PHP | `expose_php=Off`, `allow_url_fopen/include=Off`, `cgi.fix_pathinfo=0`, fonctions d'execution systeme desactivees |
|
||||
| RGPD | retention limitee (audit ~12 mois, throttle 24h, commandes ~3 ans), droit consultation/modif/suppression |
|
||||
| Secrets | `.env` gitignore, tenu hors de `.git/config` (credential helper lisant `.env`), secret-scan gitleaks en CI |
|
||||
|
|
|
|||
|
|
@ -17,13 +17,17 @@ Wakdo simule une borne de commande tactile de restauration rapide, avec back-off
|
|||
d'administration, workflow cuisine et API REST interne. Deux surfaces applicatives :
|
||||
|
||||
- **Borne (kiosk)** — front statique (HTML/CSS/JS vanilla ES6) servi par Apache,
|
||||
consommant des donnees (JSON statique en P5, API DB-backed au swap P4).
|
||||
consommant l'API REST DB-backed (`/api/*`). Le repli JSON statique initial a ete
|
||||
retire au profit d'un branchement direct sur l'API.
|
||||
- **Back-office + API** — application PHP rendue serveur (MVC maison) + endpoints
|
||||
`/api/*`, derriere authentification et RBAC.
|
||||
|
||||
Trois canaux de commande (`source`) : `kiosk`, `counter`, `drive`. Le cycle de vie
|
||||
d'une commande et la machine a etats sont decrits dans `docs/merise/` (domaine
|
||||
commande = phase **P4**, schema en base mais workflow applicatif a venir).
|
||||
d'une commande et la machine a etats sont decrits dans `docs/merise/`. Le domaine
|
||||
commande est livre de bout en bout : creation et encaissement via l'API
|
||||
(`POST /api/orders`, `POST /api/orders/{number}/pay` avec decrement de stock),
|
||||
file cuisine (KDS), annulation et livraison cote back-office, saisie comptoir et
|
||||
drive (POS tactile).
|
||||
|
||||
---
|
||||
|
||||
|
|
@ -132,8 +136,8 @@ src/app/
|
|||
Views/ admin/* (pages back-office rendues serveur), auth/* (login/reset)
|
||||
src/public/
|
||||
admin/ front controller + assets (CSS/JS) du back-office
|
||||
borne/ front kiosk statique (index, categories, products, product, cart,
|
||||
payment, confirmation) + assets JS modules + data JSON
|
||||
borne/ front kiosk statique (index, categories, products, payment,
|
||||
confirmation ; panier en panneau persistant) + assets JS modules
|
||||
```
|
||||
|
||||
Conventions transverses : controleurs non-`final` (seam de test : sous-classe injectant
|
||||
|
|
@ -165,7 +169,7 @@ Vue rendue dans admin/layout (sorties echappees, RG-T15) | ou JSON pour /api/*
|
|||
```
|
||||
|
||||
La borne (kiosk) est servie en statique par Apache ; ses pages consomment les donnees
|
||||
via `fetch` (JSON statique en P5 ; bascule sur `/api/*` DB-backed au swap P4).
|
||||
via `fetch` sur l'API DB-backed (`/api/*`).
|
||||
|
||||
---
|
||||
|
||||
|
|
@ -214,7 +218,7 @@ Threat model STRIDE + classification des donnees : `docs/PROJECT_CONTEXT.md` sec
|
|||
`ingredient`, `product_ingredient`, `allergen`, `ingredient_allergen`, `stock_movement`.
|
||||
- **RBAC / comptes** : `user`, `role`, `permission`, `role_permission`,
|
||||
`role_visible_source`.
|
||||
- **Commande (P4, schema pret)** : `customer_order`, `order_item`,
|
||||
- **Commande (livre)** : `customer_order`, `order_item`,
|
||||
`order_item_selection`, `order_item_modifier`.
|
||||
- **Transverses** : `audit_log` (journal immuable), `login_throttle`, `pin_throttle`.
|
||||
|
||||
|
|
|
|||
|
|
@ -117,7 +117,7 @@ Client Borne (Bloc 1) API (Bloc 2) BDD
|
|||
|
||||
### Compatibilite evaluation par bloc
|
||||
|
||||
- **Jury Bloc 1** : voit le front seul ; le front peut tomber en fallback sur JSON statiques fournis (`src/public/borne/data/*.json`) si l'API est indisponible.
|
||||
- **Jury Bloc 1** : voit le front seul ; le front consomme les donnees via `fetch` sur l'API (`/api/*`). Le fallback JSON statique initialement envisage a ete retire (la borne est branchee directement sur l'API DB-backed).
|
||||
- **Jury Bloc 2** : voit le back-office + teste l'API via curl/Postman de maniere autonome, sans dependre du front.
|
||||
- **Jury Bloc 5** : lance `docker compose up` ou `docker compose up`, verifie la CI/CD, les crons, l'archi, les scripts.
|
||||
|
||||
|
|
@ -205,7 +205,7 @@ Reseaux :
|
|||
### Bloc 1 — Borne client (Front)
|
||||
|
||||
**IN scope :**
|
||||
- Affichage dynamique menus + produits (charges par Ajax depuis API ou JSON fallback)
|
||||
- Affichage dynamique menus + produits (charges par `fetch` depuis l'API `/api/*`)
|
||||
- Composition panier : produits unitaires OU menus (burger + accompagnement + boisson + sauce)
|
||||
- Options taille (normale / grande, +0,50 € sur grande) pour accompagnements et boissons
|
||||
- Options de personnalisation simples (ex : sans oignon, avec fromage)
|
||||
|
|
@ -232,7 +232,7 @@ Reseaux :
|
|||
- **Manager** : catalogue (create/update), stock (reappro + inventaire), statistiques ; utilisateurs en **lecture seule** (`user.read`, pas de creation/modification/desactivation), pas d'acces RBAC
|
||||
- **Kitchen** : file des commandes `paid` triee par `paid_at` croissant, en **lecture seule** (KDS visuel) ; inventaire
|
||||
- **Counter** / **Drive** : saisir une commande (comptoir / drive-thru via casque/intercom), bouton "declarer livree" (geste unique `paid -> delivered`), annuler ; `source` auto-tague depuis `role.order_source` ; inventaire
|
||||
- Upload images produits (validation type MIME + taille + stockage dans volume `wakdo_uploads`)
|
||||
- Upload images produits : **non implemente** ; prevu (validation type MIME + taille + stockage dans volume `wakdo_uploads`)
|
||||
- Historique commandes par statut
|
||||
- Stats de base (commandes du jour, CA jour, produits top)
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue