mirror of
https://github.com/siop-spelev/siop2.git
synced 2026-08-08 12:41:54 +00:00
- packages/shared : rôles/catégories, schémas Zod, contrat d'API ; pnpm contract → docs/openapi.json committée (règle d'or ADR-001) - apps/api : NestJS 11 + Prisma 6, migration r0_identity (Role/Permission/User) ; guard JWT global + @Public() ; PermissionsGuard (@RequirePermission, matrice relue en base, cache 60 s) ; FileStorage (seul import MinIO) ; /health - démo-login ADR-002 : module conditionnel DEMO_MODE (404 sinon, testé e2e), double verrou production, refus des comptes isDemo=false - seed idempotent : 7 rôles, matrice complète (70 lignes), 7 comptes démo - 19 tests Jest (unit + e2e) ; smoke test sur build de prod Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
21 lines
693 B
Plaintext
21 lines
693 B
Plaintext
# Copier en .env pour le dev local (valeurs alignées sur infra/docker-compose.yml).
|
|
NODE_ENV=development
|
|
PORT=3000
|
|
DATABASE_URL=postgresql://siop:siop@localhost:5432/siop
|
|
REDIS_URL=redis://localhost:6379
|
|
|
|
# 16 caractères minimum — générer un vrai secret hors dev : openssl rand -hex 32
|
|
JWT_SECRET=dev-only-secret-0123456789abcdef
|
|
JWT_EXPIRES_IN=8h
|
|
|
|
# ADR-002 — sélecteur de compte démo. En production : ABSENT.
|
|
# (DEMO_MODE=true + NODE_ENV=production exige DEMO_MODE_I_KNOW=true.)
|
|
DEMO_MODE=true
|
|
# Mot de passe commun des comptes seedés (connexion classique) :
|
|
SEED_DEMO_PASSWORD=Demo!2026
|
|
|
|
MINIO_ENDPOINT=localhost
|
|
MINIO_PORT=9000
|
|
MINIO_ACCESS_KEY=siop
|
|
MINIO_SECRET_KEY=siop-minio
|