pii-shield в понедельник, коллега
расширил regex в среду, и теперь реальный трафик выдаёт ложные
срабатывания. Вам нужно увидеть, что изменилось, кто изменил и
откатиться — не угадывая прежний JSON и ничего не передеплоивая. Это то,
что даёт вам версионирование guardrail: строка истории на изменение,
diff между любыми двумя и revert в один клик.
Эта страница — сфокусированная посадочная для поверхности версионирования.
Сам движок guardrail — типы правил, стадии, действия — начните с
обзора Guardrails или полного
справочника Guardrails.
1. Что записывает версионирование guardrail
Каждая мутация guardrail — create, update, delete и revert — пишет append-only строку истории в той же транзакции, что и изменение. Строка фиксирует снимок видимой пользователю конфигурации в этот момент:- имя guardrail,
- был ли он enabled,
- был ли он default’ом рабочего пространства,
- полное тело rules.
1),
операцию, которая её произвела, автора и временную метку.
Поскольку строка пишется транзакционно с редактированием, история никогда
не может рассинхронизироваться с живой политикой — если редактирование
коммитится, коммитится и его строка истории.
История append-only. Revert не отматывает и не переписывает прошлые
строки; он добавляет новую версию (см.
§4). Вы всегда видите
полную последовательность того, кто что сделал, по порядку.
2. Один конкретный пример — найти плохое редактирование и откатить
Скажем, guardrail42 отклонился. Вы создаёте всё это из консоли на
вашей собственной сессии — relay-ключ sk-orca-... только для вызовов
/v1/*, никогда для чтения или изменения политики.
Перечислите историю
Откройте History в строке guardrail в
/console/guardrails. Лента
новые-первыми. Вы видите v5 update (среда, коллега), v4 update
(понедельник, вы), v3 update и так далее назад до v1 create.
Чтение истории открыто любому Member рабочего пространства.Сравните подозрительное изменение
Выберите две версии, которые обрамляют регрессию —
v4 и v5 — и
посмотрите diff. Тело правил показано бок о бок, так что расширенный
regex выскакивает как строка, которая изменилась.X-Workspace-Id:
3. История, diff и лента версий
Лента истории
Лента истории
GET /api/guardrail/:id/history возвращает след версий, новые
первыми. Каждая запись — это один снимок с его номером версии,
операцией (create / update / delete / revert), автором и
временной меткой. Лента ограничена рабочим пространством — вызывающий
в другом рабочем пространстве получает тот же not-found конверт, что и
отсутствующий guardrail, так что существование никогда не утекает.Одна версия
Одна версия
GET /api/guardrail/:id/history/:version извлекает один снимок по его
номеру версии — удобно для инспекции точного тела правил, которое было
живым в момент времени, прежде чем вы решите, откатываться ли к нему.Diff
Diff
GET /api/guardrail/:id/history/diff?from=N&to=M возвращает оба
снимка — from и to — так что консоль может отрендерить
сравнение бок о бок имени, флагов и правил. Обе версии должны
принадлежать вашему рабочему пространству, иначе вызов возвращает
единообразный not-found конверт.Чтения — список истории, одна версия и diff — открыты любому Member
рабочего пространства. Это чистая инспекция: ничего в трафике не
меняется, и не делается вызов модели или вендора.
4. Revert восстанавливает как новую версию
Revert — не отмотка.POST /api/guardrail/:id/revert с телом
to_version:
- Загружает снимок целевой версии.
- Восстанавливает имя живого guardrail, флаг enabled, флаг default и правила к этому снимку — атомарно, в одной транзакции.
- Добавляет свежую строку истории
revert, фиксирующую теперь живое состояние.
v5 назад к v4 производит новую v6, чьё содержимое
равно v4. Ваша история читается v1 → v2 → … → v5 → v6(revert) —
каждый шаг сохранён, ничего не мутировано. Откатите тот более старый
снимок снова позже, и вы получите v7, и так далее.
Поскольку привязка живёт на шлюзе, revert сдвигает каждый API-ключ,
привязанный к этому guardrail сразу — и default рабочего пространства,
если это он — на следующем вызове. См.
привязку к ключу и
default рабочего пространства
для того, как разрешается привязка.
5. Роли и хранение
| Действие | Маршрут | Роль |
|---|---|---|
| Список / чтение версий, diff | GET …/history, …/history/diff, …/history/:version | Member |
| Revert к версии | POST …/revert | Developer+ |
Все маршруты истории —
/api/guardrail/* и аутентифицируются вашим
session / access token под X-Workspace-Id — никогда relay-ключом
sk-orca-.... Revert несёт тот же шлюз Developer+, что и создание или
обновление guardrail, поскольку он меняет живой трафик.6. Куда двигаться дальше
Тестирование и eval перед шипом
Докажите политику в песочнице и против корпуса до того, как она
станет версией, которую пришлось бы откатывать.
Настройка ложных срабатываний
Цикл flag-затем-продвинуть, который версионирование делает
безопасным.
Действия: block, mask, flag
Что делает каждое правило, как только версия становится живой.
Справочник Guardrails
Полный движок — типы правил, стадии, пресеты и полный API.
Версионирование здесь покрывает контентную политику guardrail. У
firewall своя поверхность изменений для политики инструментов; о том, как
два слоя применения отличаются, см.
guardrails vs. firewall.
