Middleware
Les Middleware sont des hooks qui s'exécutent avant ou après qu'une requête ne soit traitée par un contrôleur. Ils sont enregistrés dans start/kernel.ts.
Middleware Globaux
Ils s'exécutent sur chaque requête HTTP.
force_json_response: Assure que le client reçoit toujours du JSON, même sur les erreurs 404/500 (évite les pages d'erreur HTML par défaut).security_headers: Définit des headers type Helmet (HSTS, No-Sniff, XSS Protection).cors: Gère le Cross-Origin Resource Sharing.prometheus: Collecte les métriques RED (Rate, Error, Duration) pour Grafana.http_metrics: Log des métriques personnalisées comme "Nombre de requêtes actives".
Middleware Nommés
Ils sont appliqués à des routes spécifiques (principalement dans start/routes.ts).
auth
Vérifie le Bearer Token (JWT).
- Si valide : Attache
ctx.auth.user. - Si invalide : Renvoie une 401 Unauthorized.
permission
RBAC Enforcer.
Utilisation : .middleware(middleware.permission({ permission: 'camera:view' }))
- Vérifie si
ctx.auth.userpossède la permission requise viaPermissionScopeService.
rateLimit
Protège les endpoints sensibles (Login, Reset Password) en utilisant une fenêtre glissante Redis.
- Défaut : 5 tentatives par minute.
apiResponse
Standardise le format de sortie.
- Enveloppe la valeur de retour dans
{ data: ..., meta: ... }.