Aller au contenu principal

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 ApiException et exposent un ApiCodeResponse stable.
  • 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, TenantMembership et TenantContext.
  • Le rôle plateforme est porté par Account.platformRole.
  • Le rôle dans un tenant est porté par TenantMembership.role et 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