Vous êtes ici : Référence — la porte publique de la suite (api-portail).
Les endpoints réellement montés d’api-portail (portail.groupesignalisation.ca).
Lecture 6 min. Audience : devs, intégrateurs internes.
Date : 2026-07-07 | Version : 1.0 — remplace le stub ; inventaire par analyse statique du code (juillet 2026)
Deux zones, une seule publique. La surface publique (rouge) répond sans authentification ; tout le reste est derrière une porte — cookie de session ou Bearer JWT, plus le rôle ADMIN ou GESTIONNAIRE résolu en base.
La surface d’api-portail : une zone publique sans compte, tout le reste derrière la porte d’authentification. Détail des routes ci-dessous.
Deux modes d’authentification pour l’admin : un cookie de session (httpOnly, 8 h) posé par le flow OIDC Authorization Code + PKCE, ou un Bearer JWT Entra validé par JWKS (signature, audience, issuers v1/v2). Les routes d’administration exigent le rôle ADMIN ou GESTIONNAIRE, résolu en base (Système C — voir Modèle d’accès).
Fail-closed : utilisateur sans rôle → 403 ; contexte compagnie manquant → refus. La page publique de scan lit sous un contexte public restreint (aucune PII — voir Sécurité).
Rate limiting : la surface publique de scan et la porte de login sont limitées par IP.
Corps JSON limité à 64 kb ; toute entrée est validée (Zod ou motif strict QR-#####).
La page de scan (CNESST) : fiche véhicule bilingue du sticker QR-#####, données non-PII uniquement. Si le sticker n’est pas attribué et qu’une session admin/gestionnaire est présente, la page d’attribution s’affiche à la place.
GET /health
JSON
Liveness — statut, app, version.
GET /ready
JSON
Readiness — ping base de données (503 si indisponible).
Tout autre chemin non listé répond 404. Il n’y a pas de route /api/version dans cette app.