Aller au contenu principal

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.

  1. 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).
  2. security_headers : Définit des headers type Helmet (HSTS, No-Sniff, XSS Protection).
  3. cors : Gère le Cross-Origin Resource Sharing.
  4. prometheus : Collecte les métriques RED (Rate, Error, Duration) pour Grafana.
  5. 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.user possède la permission requise via PermissionScopeService.

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: ... }.