pii-shield mais apertada na segunda, um colega
ampliou um regex na quarta, e agora o tráfego real está gerando falsos
positivos. Você precisa ver o que mudou, quem mudou e reverter — sem
adivinhar o JSON anterior ou fazer redeploy de nada. É isso que o
versionamento de guardrail te dá: uma linha de histórico por mudança, um
diff entre quaisquer duas, e revert em um clique.
Esta página é o destino focado na superfície de versionamento. Para o motor de
guardrail em si — tipos de regra, estágios, ações — comece na
Visão geral dos guardrails ou na
referência completa de Guardrails.
1. O que o versionamento de guardrail registra
Toda mutação em um guardrail — create, update, delete e revert — escreve uma linha de histórico append-only na mesma transação que a mudança. A linha captura um snapshot da config visível ao usuário naquele momento:- o name do guardrail,
- se ele estava enabled,
- se era o default do workspace,
- o corpo completo de rules.
1), a
operation que a produziu, o author e um timestamp. Como a linha é
escrita transacionalmente com a edição, o histórico nunca pode ficar fora de
sincronia com a política ao vivo — se a edição commita, sua linha de histórico
também.
O histórico é append-only. Um revert não rebobina ou reescreve linhas
passadas; ele anexa uma nova versão (veja
§4). Você sempre vê a sequência
completa de quem fez o quê, em ordem.
2. Um exemplo concreto — encontre a edição ruim e reverta
Digamos que o guardrail42 desviou. Você escreve tudo isto a partir do
console na sua própria sessão — a chave de relay sk-orca-... serve
apenas para chamadas /v1/*, nunca para ler ou mudar política.
Liste o histórico
Abra History na linha do guardrail em
/console/guardrails. O feed é
do mais novo primeiro. Você vê v5 update (quarta, por um colega), v4 update (segunda, por você), v3 update, e assim por diante até v1 create. Ler o histórico está aberto a qualquer Member do workspace.Faça o diff da mudança suspeita
Escolha as duas versões que cercam a regressão —
v4 e v5 — e veja o
diff. O corpo de rules é mostrado lado a lado, então o regex ampliado salta
como a linha que mudou.X-Workspace-Id:
3. Histórico, diff e o feed de versões
O feed de histórico
O feed de histórico
GET /api/guardrail/:id/history retorna o rastro de versões, do mais novo
primeiro. Cada entrada é um snapshot com seu número de versão, operação
(create / update / delete / revert), autor e timestamp. O feed tem
escopo de workspace — um chamador em outro workspace recebe o mesmo
envelope de não-encontrado que um guardrail ausente, então a existência
nunca vaza.Uma única versão
Uma única versão
GET /api/guardrail/:id/history/:version busca um snapshot pelo seu número
de versão — útil para inspecionar o corpo exato de rules que estava ao vivo
em um ponto no tempo antes de você decidir se reverte para ele.O diff
O diff
GET /api/guardrail/:id/history/diff?from=N&to=M retorna ambos os
snapshots — from e to — para que o console possa renderizar uma
comparação lado a lado do name, das flags e das rules. Ambas as versões
devem pertencer ao seu workspace, ou a chamada retorna o envelope uniforme
de não-encontrado.Leituras — lista de histórico, versão única e diff — estão abertas a qualquer
Member do workspace. São pura inspeção: nada sobre o tráfego muda, e
nenhuma chamada a modelo ou fornecedor é feita.
4. O revert restaura como uma nova versão
Um revert não é uma rebobinagem.POST /api/guardrail/:id/revert com um corpo
to_version:
- Carrega o snapshot da versão alvo.
- Restaura o name, a flag enabled, a flag default e as rules do guardrail ao vivo para aquele snapshot — atomicamente, em uma transação.
- Anexa uma nova linha de histórico
revertcapturando o estado agora ao vivo.
v5 de volta para v4 produz um novo v6 cujo conteúdo é
igual a v4. Seu histórico lê v1 → v2 → … → v5 → v6(revert) — cada passo
preservado, nada mutado. Reverta aquele snapshot mais antigo de novo depois e
você obtém um v7, e assim por diante.
Como o vínculo vive no gateway, um revert desloca cada chave de API
vinculada a este guardrail de uma vez — e o padrão do workspace, se for este
— na próxima chamada. Veja
vincular a uma chave e
o padrão do workspace para como o
vínculo resolve.
5. Papéis e retenção
| Ação | Rota | Papel |
|---|---|---|
| Listar / ler versões, diff | GET …/history, …/history/diff, …/history/:version | Member |
| Reverter para uma versão | POST …/revert | Developer+ |
Todas as rotas de histórico são
/api/guardrail/* e autenticam com seu
session / access token sob X-Workspace-Id — nunca uma chave de relay
sk-orca-.... Reverter carrega o mesmo gate Developer+ que criar ou atualizar
um guardrail, já que muda o tráfego ao vivo.6. Para onde ir a seguir
Teste e eval antes de publicar
Prove uma política no sandbox e contra um corpus antes que ela se torne
uma versão que você teria que reverter.
Ajustar falsos positivos
O loop de flag-depois-promover que o versionamento torna seguro.
Ações: block, mask, flag
O que cada regra faz uma vez que uma versão está ao vivo.
Referência de Guardrails
O motor completo — tipos de regra, estágios, presets e a API completa.
O versionamento aqui cobre a política de conteúdo de guardrail. O firewall
tem sua própria superfície de mudança para política de ferramenta; para como
as duas camadas de enforcement diferem, veja
guardrails vs. firewall.
