Architecture globale
L’API est une application NestJS 11, structurée autour d’un noyau core et de briques communes common.
src/
├── common/
│ ├── api/ # format de réponse, interceptor, ApiException
│ ├── config/ # validation env, TypeORM, Swagger
│ └── data/ # entités communes
├── core/
│ ├── account/ # identité utilisateur globale
│ ├── health/ # probes live/ready/check
│ ├── mail/ # Mailjet + service mail
│ ├── security/ # OTP, JWT, sessions, guards plateforme
│ └── tenant/ # tenants, memberships, contexte tenant
└── root/
└── app.module.ts
Principes structurants
- Les erreurs métier héritent de
ApiExceptionet exposent unApiCodeResponsestable. - Les réponses HTTP passent par
ApiInterceptor, sauf routes annotées avec@SkipApiTransform(). - Les identifiants métier utilisent des ULID de longueur 26.
- Le multi-tenant repose sur
Tenant,TenantMembershipetTenantContext. - Le rôle plateforme est porté par
Account.platformRole. - Le rôle dans un tenant est porté par
TenantMembership.roleet transformé en niveau numérique.
Modules détectés
- access-control — 3 fichiers TypeScript
- account — 21 fichiers TypeScript
- health — 5 fichiers TypeScript
- mail — 17 fichiers TypeScript
- security — 69 fichiers TypeScript
- tenant — 56 fichiers TypeScript