eqs doctor (audit) : un DELETE en 204 sans corps compte comme « réponse non documentée », alors que platform.reponses l'accepte #179

Open
opened 2026-10-18 14:27:22 +00:00 by marc-agbanavor · 0 comments

Constat

eqs doctor (audit, @eqs/cli 0.24.1) compte comme « réponse non documentée » toute opération dont la seule réponse 2xx est un 204 sans corps. Sur le hub : api.reponsesDocumentees.ecarts : 0 → 8, soit exactement les sept DELETE en 204 et POST /api/invitations/acceptation (204) :

DELETE /api/sessions/{id}
DELETE /api/mes-sessions/{id}
DELETE /api/mes-agents/{clientId}
DELETE /api/droits/roles/{roleId}
DELETE /api/droits/attributions/{attributionId}
DELETE /api/droits/ajustements/{ajustementId}
DELETE /api/droits/applications/{applicationId}/cles/{cleId}
POST   /api/invitations/acceptation

Cause

Deux règles disent le contraire :

  • platform.reponses (@eqs/platform-nest/dist/conformite.js) accepte un 204 sans contenu (if (code === '204') return true) — c'est d'ailleurs ce qu'elle conseille (« ou @HttpCode(204) ») ;
  • compterSpec (@eqs/cli/dist/audit.js) exige r.content !== undefined sur une 2xx (seules les 3xx sont exemptées depuis #147). Un 204 n'a, par définition, pas de content.

La baseline compte donc comme écart ce que la conformité déclare correct, et suivre son conseil fait monter le compteur.

Correctif proposé

Dans compterSpec, tenir pour documentée une réponse 204 (et 205) sans content, comme platform.reponses ; idéalement une seule fonction partagée par les deux, avec un test « DELETE 204 » dans chacune.

🤖 Generated with Claude Code

## Constat `eqs doctor` (audit, `@eqs/cli` 0.24.1) compte comme « réponse non documentée » toute opération dont la seule réponse 2xx est un **204 sans corps**. Sur le hub : `api.reponsesDocumentees.ecarts : 0 → 8`, soit exactement les sept `DELETE` en 204 et `POST /api/invitations/acceptation` (204) : ``` DELETE /api/sessions/{id} DELETE /api/mes-sessions/{id} DELETE /api/mes-agents/{clientId} DELETE /api/droits/roles/{roleId} DELETE /api/droits/attributions/{attributionId} DELETE /api/droits/ajustements/{ajustementId} DELETE /api/droits/applications/{applicationId}/cles/{cleId} POST /api/invitations/acceptation ``` ## Cause Deux règles disent le contraire : - `platform.reponses` (`@eqs/platform-nest/dist/conformite.js`) accepte un `204` sans contenu (`if (code === '204') return true`) — c'est d'ailleurs ce qu'elle conseille (« ou @HttpCode(204) ») ; - `compterSpec` (`@eqs/cli/dist/audit.js`) exige `r.content !== undefined` sur une 2xx (seules les 3xx sont exemptées depuis #147). Un 204 n'a, par définition, pas de `content`. La baseline compte donc comme écart ce que la conformité déclare correct, et suivre son conseil fait monter le compteur. ## Correctif proposé Dans `compterSpec`, tenir pour documentée une réponse `204` (et `205`) sans `content`, comme `platform.reponses` ; idéalement une seule fonction partagée par les deux, avec un test « DELETE 204 » dans chacune. 🤖 Generated with [Claude Code](https://claude.com/claude-code)
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#179
No description provided.