/api/guardrail/*. Questa pagina è
il riferimento API guardrail rotta per rotta: ogni endpoint, il ruolo di workspace
che richiede e l’auth che si aspetta.
Per cosa è un guardrail e come si compongono le regole, leggi
Guardrails. Questa pagina è il complemento a livello di wire.
1. Auth e scope
Ogni rotta/api/guardrail/* è management plane: si autentica con il tuo
session o access token di console (la stessa identità con cui accedi alla console),
non con una chiave di relay.
- Le rotte sono workspace-scoped — vedono solo i guardrails del workspace attivo. Nulla attraversa un confine di tenant.
- Ogni rotta è RBAC-gated dal tuo ruolo di workspace (Viewer / Developer / Admin / Owner). Le letture sono aperte a Viewer+; la sandbox e tutte le scritture richiedono Developer+; gli endpoint di falso positivo richiedono Admin (Admin o Owner).
La maggior parte dei team non chiama mai queste rotte direttamente — la console le
guida tutte. Ricorri alla superficie REST quando vuoi i guardrails nel source control,
in CI o collegati al tuo tooling.
2. Una chiamata concreta — elenca i tuoi guardrails
Una lettura è il punto più semplice da cui partire. Autenticato come qualsiasi membro del workspace (Viewer+):3. Il modello dei ruoli in una tabella
L’azione che compi, non la rotta, sceglie il livello.| Azione | Ruolo minimo |
|---|---|
| Lettura (list/get, cronologia, match, eval run), eseguire un eval | Viewer+ |
| Eseguire un test in sandbox | Developer+ |
| Creare, aggiornare, eliminare, ripristinare, caricare/eliminare corpus | Developer+ |
| Marcare / smarcare un match come falso positivo | Admin |
guardrails:read (detenuto da Viewer in su); le
scritture mappano a guardrails:write (Developer in su). Marcare un falso positivo
richiede in aggiunta il ruolo Admin. Vedi
Scope, chiavi e policy per come
si combinano ruoli e permessi.
4. Rotte per area
Guardrails (CRUD + sandbox)
Guardrails (CRUD + sandbox)
| Metodo & path | Ruolo |
|---|---|
GET /api/guardrail/ | Viewer+ |
GET /api/guardrail/meta | Viewer+ |
GET /api/guardrail/my-permissions | qualsiasi membro |
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 restituisce il vocabolario del motore — tipi di regola, fasi, azioni, entità
PII, preset e categorie di preset — così uno strumento può costruire un form senza
hard-coding degli enum. test esegue la policy corrente su testo di esempio in
una sandbox: nulla viene persistito, nulla va upstream.Cronologia delle versioni
Cronologia delle versioni
| Metodo & path | Ruolo |
|---|---|
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 copia in avanti una vecchia versione come una nuova versione
— la cronologia non viene mai mutata.Eval e corpora
Eval e corpora
| Metodo & path | Ruolo |
|---|---|
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+ |
Feed dei match
Feed dei match
| Metodo & path | Ruolo |
|---|---|
GET /api/guardrail/match | qualsiasi membro |
GET /api/guardrail/match/grouped | qualsiasi membro |
GET /api/guardrail/match/stats | qualsiasi membro |
GET /api/guardrail/match/export | qualsiasi membro |
GET /api/guardrail/match/cap-status | qualsiasi membro |
GET /api/guardrail/match/:id | qualsiasi membro |
POST /api/guardrail/match/:id/mark-fp | Admin |
DELETE /api/guardrail/match/:id/mark-fp | Admin |
mark-fp sono solo Admin (Admin o Owner) e rate-limited.5. Risoluzione: quale guardrail si applica
Le rotte qui sopra gestiscono le policy; la risoluzione decide quale gira su una data chiamata di relay. È un modello explicit-or-default senza fallback silenzioso su un collegamento esplicito:guardrail_idesplicito sulla chiave → quel guardrail si applica, se esiste ed è abilitato. Un collegamento disabilitato è l’interruttore di spegnimento — non ricade.- Nessun collegamento → il guardrail default abilitato del workspace
(
is_default). - Nessuno dei due → nessuna applicazione. La richiesta è byte-identica a un workspace che non ha mai abilitato la feature.
guardrail_id su una chiave tramite l’editor della chiave o l’API dei token;
0/null significa “nessun collegamento esplicito.”
6. Cosa restituisce un block
Quando scatta una regola con azioneblock, la chiamata di relay (/v1/*, sulla tua
chiave di relay) — non queste rotte di management — restituisce:
| Campo | Valore |
|---|---|
| Stato HTTP | 400 |
| Codice di errore | guardrail_blocked |
| Costo in quota | un block in fase di input scatta prima del pre-consume, quindi non viene addebitata quota |
| Retry | marcato skip-retry |
7. Azioni, fasi e tipi di regola in sintesi
La rottameta restituisce questi come enum; eccoli qui per riferimento rapido.
- Azioni:
block(rifiuta, HTTP 400),mask(redige il match, inoltra il testo ripulito),flag(solo log — osserva senza modificare il traffico),annotate(non bloccante — registra il match e inietta una nota leggibile dall’uomo upstream così il modello ne è informato prima di rispondere),spotlight(non bloccante — avvolge la porzione non attendibile corrispondente in delimitatori e dice al modello di trattarla come dato, non come istruzioni; una difesa da prompt-injection, in pratica in fase di input). - Fasi:
input(la richiesta),output(la risposta del modello) oboth. - Tipi di regola:
keyword,regex,pii,max_chars,external,llm_judge,grounding.
Le regole in fase di output sono applicate sia sulle risposte streaming che
non-streaming: un
block taglia lo stream, e un mask riscrive le porzioni
corrispondenti in banda man mano che i chunk scorrono. Su uno stream, i byte già
scaricati non possono essere ritirati, quindi un match viene gestito solo una volta che
abbastanza di esso è stato bufferizzato — per la garanzia più forte, scansiona in fase di
input, che sanifica la richiesta prima che il modello la veda mai. Prova prima la tua
esatta combinazione fase/stream nella sandbox.8. Riferimenti correlati
API Firewall
Il pari del piano-azioni —
/api/workspace/firewall/* e le rotte del gateway.API Compliance
/api/compliance/* — pack, report firmati, residency, readiness.Codici di errore
Ogni codice
*_blocked, il suo stato HTTP e cosa farci.Guardrails (approfondimento)
Tipi di regola, entità PII, preset, eval e il feed dei match per intero.
