/api/guardrail/*. Cette page est la référence de l’API guardrail route par
route : chaque endpoint, le rôle d’espace de travail qu’il requiert, et l’auth qu’il
attend.
Pour savoir ce qu’est un guardrail et comment les règles se composent, lisez
Guardrails. Cette page est le compagnon au niveau du
protocole.
1. Auth et portée
Chaque route/api/guardrail/* est un plan de gestion : elle s’authentifie avec
votre session de console ou token d’accès (la même identité avec laquelle vous
vous connectez à la console), pas une clé de relais.
- Les routes sont à portée d’espace de travail — elles ne voient jamais que les guardrails de l’espace de travail actif. Rien ne franchit une frontière de tenant.
- Chaque route est gardée par RBAC selon votre rôle d’espace de travail (Viewer / Developer / Admin / Owner). Les lectures sont ouvertes à Viewer+ ; le sandbox et toutes les écritures requièrent Developer+ ; les endpoints de faux positif requièrent Admin (Admin ou Owner).
La plupart des équipes n’appellent jamais ces routes directement — la console les
pilote toutes. Tournez-vous vers la surface REST quand vous voulez vos guardrails sous
contrôle de version, en CI, ou câblés dans votre propre outillage.
2. Un appel concret — lister vos guardrails
Une lecture est l’endroit le plus simple pour commencer. Authentifié en tant que n’importe quel membre de l’espace de travail (Viewer+) :3. Le modèle de rôles en un tableau
L’action que vous entreprenez, pas la route, choisit le niveau.| Action | Rôle minimum |
|---|---|
| Lecture (list/get, historique, correspondances, exécutions d’éval), lancer un éval | Viewer+ |
| Lancer un test sandbox | Developer+ |
| Créer, mettre à jour, supprimer, revenir en arrière, upload/supprimer corpus | Developer+ |
| Marquer / dé-marquer une correspondance comme faux positif | Admin |
guardrails:read (détenue par Viewer et
au-dessus) ; les écritures correspondent à guardrails:write (Developer et au-dessus).
Marquer un faux positif requiert en plus le rôle Admin. Voir
Portée, clés et politiques pour
la combinaison des rôles et des permissions.
4. Routes par domaine
Guardrails (CRUD + sandbox)
Guardrails (CRUD + sandbox)
| Méthode & chemin | Rôle |
|---|---|
GET /api/guardrail/ | Viewer+ |
GET /api/guardrail/meta | Viewer+ |
GET /api/guardrail/my-permissions | tout membre |
GET /api/guardrail/:id | Viewer+ |
GET /api/guardrail/:id/tokens | Viewer+ |
POST /api/guardrail/test | Developer+ |
POST /api/guardrail/ | Developer+ |
PUT /api/guardrail/ | Developer+ |
DELETE /api/guardrail/:id | Developer+ |
meta renvoie le vocabulaire du moteur — types de règles, étapes, actions,
entités PII, presets, et catégories de presets — afin qu’un outil puisse
construire un formulaire sans coder en dur les enums. test exécute la politique
actuelle sur un texte d’échantillon dans un sandbox : rien n’est persisté, rien
ne part en amont.Historique des versions
Historique des versions
| Méthode & chemin | Rôle |
|---|---|
GET /api/guardrail/:id/history | Viewer+ |
GET /api/guardrail/:id/history/diff | Viewer+ |
GET /api/guardrail/:id/history/:version | Viewer+ |
POST /api/guardrail/:id/revert | Developer+ |
revert copie une ancienne version en avant comme une nouvelle
version — l’historique n’est jamais muté.Éval & corpora
Éval & corpora
| Méthode & chemin | Rôle |
|---|---|
POST /api/guardrail/:id/eval | Viewer+ |
GET /api/guardrail/:id/eval/runs | Viewer+ |
GET /api/guardrail/eval/runs/:run_id | Viewer+ |
GET /api/guardrail/eval/corpora | Viewer+ |
POST /api/guardrail/eval/corpora | Developer+ |
GET /api/guardrail/eval/corpora/:id | Viewer+ |
DELETE /api/guardrail/eval/corpora/:id | Developer+ |
Flux de correspondances
Flux de correspondances
| Méthode & chemin | Rôle |
|---|---|
GET /api/guardrail/match | tout membre |
GET /api/guardrail/match/grouped | tout membre |
GET /api/guardrail/match/stats | tout membre |
GET /api/guardrail/match/export | tout membre |
GET /api/guardrail/match/cap-status | tout membre |
GET /api/guardrail/match/:id | tout membre |
POST /api/guardrail/match/:id/mark-fp | Admin |
DELETE /api/guardrail/match/:id/mark-fp | Admin |
mark-fp sont
réservées à Admin (Admin ou Owner) et rate-limitées.5. Résolution : quel guardrail s’applique
Les routes ci-dessus gèrent les politiques ; la résolution décide laquelle s’exécute sur un appel de relais donné. C’est un modèle explicite-ou-défaut sans fallback silencieux sur un attachement explicite :guardrail_idexplicite sur la clé → ce guardrail s’applique, *s’*il existe et est activé. Un attachement désactivé est l’interrupteur d’arrêt — il ne retombe pas sur le défaut.- Aucun attachement → le guardrail par défaut activé de l’espace de travail
(
is_default). - Ni l’un ni l’autre → aucune application. La requête est identique octet pour octet à un espace de travail qui n’a jamais activé la fonctionnalité.
guardrail_id sur une clé via l’éditeur de clé ou l’API de token ; 0/null
signifie « aucun attachement explicite ».
6. Ce que renvoie un block
Lorsqu’une règle à actionblock se déclenche, l’appel de relais (/v1/*, sur votre
clé de relais) — pas ces routes de gestion — renvoie :
| Champ | Valeur |
|---|---|
| Statut HTTP | 400 |
| Code d’erreur | guardrail_blocked |
| Coût en quota | un block à l’étape d’entrée se déclenche avant la pré-consommation, donc aucun quota n’est facturé |
| Retry | marqué skip-retry |
7. Actions, étapes et types de règles en un coup d’œil
La routemeta les renvoie comme enums ; les voici pour référence rapide.
- Actions :
block(rejeter, HTTP 400),mask(redacter la correspondance, transmettre le texte nettoyé),flag(journaliser seulement — observer sans changer le trafic),annotate(non-bloquant — enregistrer la correspondance et injecter une note lisible par un humain en amont afin que le modèle en soit informé avant de répondre),spotlight(non-bloquant — encadrer le segment non fiable correspondant dans des délimiteurs et dire au modèle de le traiter comme des données, pas des instructions ; une défense contre l’injection de prompt, à l’étape d’entrée en pratique). - Étapes :
input(la requête),output(la réponse du modèle), ouboth. - Types de règles :
keyword,regex,pii,max_chars,external,llm_judge,grounding.
Les règles à l’étape de sortie sont appliquées sur les réponses streaming et
non-streaming : un
block coupe le flux, et un mask réécrit les segments
correspondants en bande à mesure que les chunks circulent. Sur un flux, les octets
déjà transmis ne peuvent pas être rétractés, donc une correspondance n’est traitée
qu’une fois qu’une partie suffisante a été bufferisée — pour la garantie la plus forte,
scannez à l’étape input, qui assainit la requête avant que le modèle ne la voie.
Prouvez d’abord votre combinaison exacte étape/flux dans le sandbox.8. Références associées
API Firewall
Le pair du plan d’action —
/api/workspace/firewall/* et les routes de
passerelle.API Compliance
/api/compliance/* — packs, rapports signés, résidence, préparation.Codes d'erreur
Chaque code
*_blocked, son statut HTTP, et quoi faire à son sujet.Guardrails (plongée)
Types de règles, entités PII, presets, évals, et le flux de correspondances en
entier.
