API et développement #
Monorepo #
backend/ contient Symfony, contrôleurs, domaine, entités et repositories. frontend/ contient React, les pages lazy, Axios et TanStack Query.
Authentification REST #
POST /api/auth/login émet un JWT de 15 minutes lié à une session. Le refresh rotatif est un cookie HttpOnly. Les endpoints privés exigent ROLE_VIEWER; les écritures ajoutent leur rôle métier.
Créer un endpoint ou une page #
Validez côté serveur, résolvez l’organisation courante, recherchez chaque relation dans ce tenant et ajoutez RBAC, audit et tests. Côté React, ajoutez une page sous frontend/src/pages, l’import lazy, la route et la navigation conditionnée aux droits.
make test
make lint
docker compose exec backend php bin/console doctrine:schema:validateToute modification persistée exige une migration Doctrine réversible.
Organisation backend #
Les contrôleurs adaptent HTTP, Application orchestre les cas d’usage, Domain porte les règles réutilisables, Entity conserve les invariants persistants et Repository filtre les données. Évitez de placer une règle critique uniquement dans React.
Tests indispensables #
Ajoutez un cas nominal, un refus de rôle, une ressource d’un autre tenant et une validation métier. Pour une relation, testez chaque identifiant étranger. Côté frontend, testez chargement, mutation, erreur et responsive.
Migration Doctrine #
Générez et relisez la migration, rendez-la compatible avec les données existantes, prévoyez reprise et rollback lorsque possible. Validez schéma et testez sur une copie représentative avant production.
Contribution #
Une pull request doit rester ciblée, expliquer impact sécurité/tenant, inclure tests et documentation, puis satisfaire make test et make lint. Ne commitez ni .env, ni clés JWT, ni données réelles.