Aller au contenu

Lot 0 bis, séquence L0-5 — Rôles de l'éditeur

02/10/2026. Séquence L0-5 du plan d’alignement. Amende AM-14 de la note d’amendement : décision EC-099.

  • BioTrace est l’éditeur. Son équipe paramètre l’application en global ou pour un client, depuis un super back-office. On n’audite pas l’équipe de l’éditeur : il n’y a donc aucune séparation des tâches entre ses membres.
  • Trois rôles génériques remplacent le rôle unique equipe_biotrace de Keycloak.
  • La séparation des tâches chez les clients est inchangée (EC-012, SB-11, validation des capacités).
  • Aucune migration.
Rôle Keycloak Périmètre Routes aujourd’hui
editeur_admin Super administrateur : tous les droits de l’éditeur, en global et pour chaque client Passe toutes les gardes de rôle éditeur
editeur_parametrage Paramétrage global : packs filière et référentiels, catalogues, publication Aucune : la publication reste un script lancé après revue de code
editeur_support Paramétrage et assistance pour un client POST /v1/organisations
  • @SansOrganisation(...roles) (apps/api/src/auth/garde.ts) marque une route de l’éditeur, sans organisation active. Elle exige l’un des rôles donnés ; editeur_admin passe toujours.
  • Refus : 403 { erreur: "role_editeur_requis", details: { roles } }, avec les rôles admis. L’ancien rôle equipe_biotrace n’ouvre plus rien.
  • Contrat d’API 1.12.0.
  • Accès de l’éditeur à un client (RG-309) : agir dans l’organisation d’un client, avec un accès journalisé. Le mécanisme viendra avec le premier écran du super back-office.
  • Atelier de publication (lots 6 et 7) : ses routes seront gardées par editeur_parametrage.
Test Ce qu’il vérifie
apps/api/test/identite/garde.test.ts Sans rôle : 403 avec les rôles admis ; autre rôle de l’éditeur : refusé ; support et super administrateur : admis ; ancien rôle : refusé
apps/api/test/identite/identite.test.ts Création d’organisation par le support ou le super administrateur, refusée au paramétrage seul
infra/keycloak/test/royaume-reel.test.mjs Rôles du royaume : les trois rôles de l’éditeur et second_facteur_exige, rien d’autre
apps/api/src/i18n.test.ts role_editeur_requis traduit en français et en anglais