Aller au contenu principal

Cycle d’une requête

Les guards globaux sont déclarés dans AppModule dans l’ordre suivant :

ThrottlerGuard
→ JwtAccessGuard
→ TenantContextGuard
→ SuperAdminGuard
→ TenantMinLevelGuard
→ ApiInterceptor

Rôle de chaque étape

ÉtapeResponsabilité
ThrottlerGuardLimiter le débit global des requêtes.
JwtAccessGuardAuthentifier l’utilisateur et alimenter request.user.
TenantContextGuardConstruire request.tenantContext à partir de request.user et du :tenantId de l’URL.
SuperAdminGuardAppliquer @SuperAdminOnly() sur les routes plateforme.
TenantMinLevelGuardAppliquer @TenantMinLevel(...) et @TenantAdmin() sur les routes tenant.
ApiInterceptorNormaliser la réponse API.

Diagramme

sequenceDiagram
participant C as Client
participant A as API NestJS
participant J as JwtAccessGuard
participant T as TenantContextGuard
participant S as SuperAdminGuard
participant R as TenantMinLevelGuard
participant H as Handler

C->>A: HTTP request + access token
A->>J: validate JWT
J-->>A: request.user
A->>T: build tenantContext
T-->>A: request.tenantContext
A->>S: check @SuperAdminOnly if present
A->>R: check @TenantMinLevel if present
A->>H: execute controller
H-->>C: ApiResponse