pii-shield más estricta el lunes, un compañero amplió un
regex el miércoles, y ahora el tráfico real está arrojando falsos positivos.
Necesitas ver qué cambió, quién lo cambió y revertir — sin adivinar el JSON
anterior ni redesplegar nada. Eso es lo que te da el versionado de
guardrails: una fila de historial por cambio, un diff entre dos cualesquiera, y
revert de un clic.
Esta página es el aterrizaje enfocado para la superficie de versionado. Para el
motor de guardrails en sí — tipos de regla, etapas, acciones — empieza en la
Visión general de guardrails o la referencia
completa de Guardrails.
1. Qué registra el versionado de guardrails
Cada mutación en un guardrail — create, update, delete y revert — escribe una fila de historial de solo-anexado en la misma transacción que el cambio. La fila captura una instantánea de la config visible para el usuario en ese momento:- el name del guardrail,
- si estaba enabled,
- si era el valor por defecto del espacio de trabajo,
- el cuerpo completo de rules.
1), la
operation que la produjo, el author y una marca de tiempo. Como la fila
se escribe transaccionalmente con la edición, el historial nunca puede
desincronizarse con la política en vivo — si la edición se confirma, también lo
hace su fila de historial.
El historial es solo-anexado. Un revert no rebobina ni reescribe filas
pasadas; anexa una nueva versión (ver
§4). Siempre ves la secuencia
completa de quién hizo qué, en orden.
2. Un ejemplo concreto — encuentra la edición mala y revíértela
Digamos que el guardrail42 se ha desviado. Creas todo esto desde la
consola en tu propia sesión — la clave de relay sk-orca-... es solo para
llamadas /v1/*, nunca para leer o cambiar política.
Lista el historial
Abre History en la fila del guardrail en
/console/guardrails. El feed es
el más nuevo primero. Ves v5 update (miércoles, por un compañero), v4 update (lunes, por ti), v3 update, y así hacia atrás hasta v1 create.
Leer el historial está abierto a cualquier Member del espacio de trabajo.Haz diff del cambio sospechoso
Elige las dos versiones que enmarcan la regresión —
v4 y v5 — y mira el
diff. El cuerpo de rules se muestra lado a lado, así que el regex ampliado
salta como la línea que cambió.X-Workspace-Id:
3. Historial, diff y el feed de versiones
El feed de historial
El feed de historial
GET /api/guardrail/:id/history devuelve el rastro de versiones, el más
nuevo primero. Cada entrada es una instantánea con su número de versión,
operación (create / update / delete / revert), autor y marca de
tiempo. El feed tiene alcance de espacio de trabajo — un llamador en otro
espacio de trabajo obtiene el mismo envoltorio not-found que un guardrail
inexistente, así que la existencia nunca se filtra.Una sola versión
Una sola versión
GET /api/guardrail/:id/history/:version obtiene una instantánea por su
número de versión — útil para inspeccionar el cuerpo exacto de rules que
estaba en vivo en un punto en el tiempo antes de decidir si revertir a él.El diff
El diff
GET /api/guardrail/:id/history/diff?from=N&to=M devuelve ambas
instantáneas — from y to — para que la consola pueda renderizar una
comparación lado a lado del nombre, los flags y las rules. Ambas versiones
deben pertenecer a tu espacio de trabajo, o la llamada devuelve el envoltorio
not-found uniforme.Las lecturas — lista de historial, una sola versión y diff — están abiertas a
cualquier Member del espacio de trabajo. Son inspección pura: nada del
tráfico cambia, y no se hace ninguna llamada a modelo o proveedor.
4. Revert restaura como una nueva versión
Un revert no es un rebobinado.POST /api/guardrail/:id/revert con un cuerpo
to_version:
- Carga la instantánea de la versión objetivo.
- Restaura el nombre, el flag enabled, el flag default y las rules del guardrail en vivo a esa instantánea — de forma atómica, en una transacción.
- Anexa una fila de historial
revertfresca que captura el estado ahora en vivo.
v5 de vuelta a v4 produce una nueva v6 cuyo contenido
equivale a v4. Tu historial lee v1 → v2 → … → v5 → v6(revert) — cada paso
preservado, nada mutado. Revierte esa instantánea más antigua de nuevo más tarde
y obtienes una v7, y así sucesivamente.
Como la vinculación vive en el gateway, un revert surte efecto en cada clave
API vinculada a este guardrail de una vez — y el valor por defecto del espacio
de trabajo, si es este — en la siguiente llamada. Ver
vincular a una clave y
el valor por defecto del espacio de trabajo
para cómo resuelve la vinculación.
5. Roles y retención
| Acción | Ruta | Rol |
|---|---|---|
| Listar / leer versiones, diff | GET …/history, …/history/diff, …/history/:version | Member |
| Revertir a una versión | POST …/revert | Developer+ |
Todas las rutas de historial son
/api/guardrail/* y se autentican con tu
sesión / token de acceso bajo X-Workspace-Id — nunca una clave de relay
sk-orca-.... Revertir lleva la misma restricción Developer+ que crear o
actualizar un guardrail, ya que cambia el tráfico en vivo.6. Dónde ir a continuación
Pruebas y eval antes de lanzar
Prueba una política en el sandbox y contra un corpus antes de que se
convierta en una versión que tendrías que revertir.
Afinar falsos positivos
El bucle flag-luego-promover que el versionado hace seguro.
Acciones: block, mask, flag
Qué hace cada regla una vez que una versión está en vivo.
Referencia de Guardrails
El motor completo — tipos de regla, etapas, presets y la API completa.
El versionado aquí cubre la política de contenido de guardrail. El firewall
tiene su propia superficie de cambios para la política de herramientas; para cómo
difieren las dos capas de aplicación, ver
guardrails vs. firewall.
