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
| Étape | Responsabilité |
|---|---|
ThrottlerGuard | Limiter le débit global des requêtes. |
JwtAccessGuard | Authentifier l’utilisateur et alimenter request.user. |
TenantContextGuard | Construire request.tenantContext à partir de request.user et du :tenantId de l’URL. |
SuperAdminGuard | Appliquer @SuperAdminOnly() sur les routes plateforme. |
TenantMinLevelGuard | Appliquer @TenantMinLevel(...) et @TenantAdmin() sur les routes tenant. |
ApiInterceptor | Normaliser 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