@eqs/auth jetonDelegue : marge de 5 s, refus reconnu au seul invalid_grant, panne de base lue comme 502 #160

Open
opened 2026-10-15 08:43:52 +00:00 by nicolas-fryder · 0 comments

Constat

La 0.21 (#144) propose jetonDelegue, qui rafraîchit le jeton d'un fournisseur délégué. Nuage ne l'adopte pas encore. Son propre jetonHq (apps/api/src/hq/hq-delegue.ts, EQS-Sandbox/NUAGE) se comporte différemment sur trois points, que ses tests d'intégration éprouvent :

jetonDelegue (socle 0.24) jetonHq (nuage)
Marge avant expiration 5 s 60 s : une requête lente partie à 4 s de l'échéance arrive avec un jeton mort
Refus du point de jeton reconnu au seul corps invalid_grant tout 400/401, quel que soit le corps : HQ (better-auth mcp) ne renvoie pas toujours invalid_grant
Panne de la base pendant la lecture ou l'écriture du compte 502 (« fournisseur indisponible ») 500 : c'est un défaut du satellite, pas du fournisseur, et le 502 envoie chercher au mauvais endroit

Nuage distingue aussi trois issues : non lié, un refus qui délie, une panne qui garde la liaison. Il le fait avec une seule opération de rafraîchissement en vol par personne.

Ce qui est attendu

  • Une marge configurable, avec un défaut d'au moins 30 s.
  • Un refus reconnu sur le statut (400/401) et non sur le seul corps.
  • Une panne de la base distinguée d'une panne du fournisseur : 500 contre 502, codes distincts dans l'esprit de CODES_DELEGATION.
  • Des tests pour chaque branche.

Critère de fin

Nuage peut remplacer jetonHq par jetonDelegue sans perdre de comportement, et ses tests hq-delegation.spec.ts (branche « rafraîchissement ») passent tels quels.

Ouvert depuis une session de travail sur Nuage, à la montée en 0.24.0 (commit 65c8dff).

## Constat La 0.21 (#144) propose `jetonDelegue`, qui rafraîchit le jeton d'un fournisseur délégué. Nuage ne l'adopte pas encore. Son propre `jetonHq` (`apps/api/src/hq/hq-delegue.ts`, EQS-Sandbox/NUAGE) se comporte différemment sur trois points, que ses tests d'intégration éprouvent : | | `jetonDelegue` (socle 0.24) | `jetonHq` (nuage) | |---|---|---| | Marge avant expiration | 5 s | 60 s : une requête lente partie à 4 s de l'échéance arrive avec un jeton mort | | Refus du point de jeton | reconnu au seul corps `invalid_grant` | tout 400/401, quel que soit le corps : HQ (better-auth `mcp`) ne renvoie pas toujours `invalid_grant` | | Panne de la base pendant la lecture ou l'écriture du compte | 502 (« fournisseur indisponible ») | 500 : c'est un défaut du satellite, pas du fournisseur, et le 502 envoie chercher au mauvais endroit | Nuage distingue aussi trois issues : non lié, un refus qui délie, une panne qui garde la liaison. Il le fait avec une seule opération de rafraîchissement en vol par personne. ## Ce qui est attendu - Une marge configurable, avec un défaut d'au moins 30 s. - Un refus reconnu sur le statut (400/401) et non sur le seul corps. - Une panne de la base distinguée d'une panne du fournisseur : 500 contre 502, codes distincts dans l'esprit de `CODES_DELEGATION`. - Des tests pour chaque branche. ## Critère de fin Nuage peut remplacer `jetonHq` par `jetonDelegue` sans perdre de comportement, et ses tests `hq-delegation.spec.ts` (branche « rafraîchissement ») passent tels quels. *Ouvert depuis une session de travail sur Nuage, à la montée en 0.24.0 (commit `65c8dff`).*
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
Infrastructure/eqs-platform#160
No description provided.