openclaw policy
openclaw policy надається вбудованим Policy Plugin. Policy є корпоративним
шаром перевірки відповідності поверх наявних налаштувань OpenClaw. Він не додає
другої системи конфігурації. policy.jsonc визначає створені вимоги,
OpenClaw спостерігає активний робочий простір як доказ, а перевірки стану policy
повідомляють про відхилення через doctor --lint. Остаточний сигнал
відповідності - чистий запуск doctor --lint; policy додає знахідки до цієї
спільної поверхні lint замість створення окремого шлюзу стану.
Наразі Policy керує налаштованими каналами, серверами MCP, постачальниками моделей,
станом мережевого SSRF, станом доступу ingress/каналів, станом експозиції Gateway, станом робочого простору агента,
станом обробки даних, станом постачальника секретів конфігурації OpenClaw/профілю автентифікації та керованими
оголошеннями інструментів. Наприклад, IT або оператор робочого простору може зафіксувати, що Telegram
не є затвердженим постачальником каналів, обмежити сервери MCP і посилання на моделі
затвердженими записами, вимагати, щоб доступ fetch/browser до приватної мережі залишався
вимкненим, вимагати, щоб ізоляція сесій прямих повідомлень і стан channel ingress
залишалися в межах перевірених обмежень, вимагати, щоб bind/auth/HTTP експозиція Gateway залишалася в межах перевірених
обмежень, вимагати, щоб доступ до робочого простору агента й заборони інструментів залишалися в перевіреному
стані, вимагати, щоб SecretRefs конфігурації OpenClaw використовували керованих постачальників, вимагати,
щоб профілі автентифікації конфігурації містили метадані постачальника/режиму, вимагати, щоб керовані інструменти
містили метадані ризику та чутливості, вимагати редагування чутливих логів, заборонити
захоплення вмісту телеметрії, вимагати підтримування збереження сесій, заборонити індексацію пам’яті
транскриптів сесій, а потім використовувати doctor --lint як спільний
шлюз відповідності.
Використовуйте policy, коли робочому простору потрібне довговічне твердження на кшталт “ці канали
не повинні бути ввімкнені” або “керовані інструменти повинні оголошувати метадані затвердження” і
повторюваний спосіб довести, що OpenClaw усе ще відповідає цьому твердженню. Використовуйте
лише звичайну конфігурацію та документацію робочого простору, коли вам потрібна тільки локальна поведінка і
не потрібні знахідки policy або вихід атестації.
Швидкий старт
Увімкніть вбудований Policy Plugin перед першим використанням:policy.jsonc відсутній, тож
doctor може повідомити про відсутній артефакт.
Policy створюється автором, а не генерується з поточних налаштувань користувача. Мінімальна
policy для каналів, серверів MCP, постачальників моделей, мережевого стану, доступу ingress/каналів, експозиції Gateway,
стану робочого простору агента, налаштованого стану середовища виконання sandbox, стану
обробки даних OpenClaw, стану постачальника секретів конфігурації/профілю автентифікації, стану файлу
затверджень exec і метаданих інструментів має такий вигляд:
channels.*,
mcp.servers.*, models.providers.*, вибрані посилання на моделі агента, налаштування мережевого SSRF,
область сесії прямих повідомлень, DM policy каналу, політику груп каналу,
шлюзи згадок у каналі/групі, стан bind/auth/Control UI/Tailscale/remote/HTTP Gateway,
стан доступу до робочого простору sandbox агента конфігурації OpenClaw і стан заборон інструментів,
стан конфігурації обробки даних, походження постачальника секретів
конфігурації та SecretRef, метадані профілю автентифікації конфігурації, налаштований
глобальний/поагентний стан інструментів і оголошення TOOLS.md як докази, а потім
повідомляє про спостережуваний стан, що не відповідає вимогам. Якщо policy забороняє non-loopback
bind Gateway, опускайте gateway.bind лише тоді, коли ви
готові переглядати стандартне значення runtime; установіть gateway.bind=loopback для
суворої відповідності конфігурації. Для стану агента лише для читання налаштуйте режим sandbox
у відповідних типових значеннях або агенті та встановіть workspaceAccess у none або
ro; пропущений режим sandbox або off не задовольняє policy лише для читання/без запису.
agents.workspace.denyTools підтримує exec, process, write,
edit і apply_patch; конфігурація OpenClaw group:fs охоплює інструменти мутації файлів,
а group:runtime охоплює інструменти shell/process. Policy стану інструментів спостерігає
tools.profile, tools.allow, tools.alsoAllow, tools.deny,
tools.fs.workspaceOnly, tools.exec.security, tools.exec.ask,
tools.exec.host, tools.elevated.enabled і ті самі поагентні
перевизначення agents.list[].tools.*. Policy затверджень exec читає названий
продуктовий артефакт exec-approvals.json лише тоді, коли присутнє правило execApprovals;
докази записують типові значення, поагентний стан і шаблони allowlist
без socket-токенів або тексту останньої використаної команди. Policy не примусово застосовує виклики інструментів
під час runtime. Докази секретів записують
стан постачальника/джерела та метадані SecretRef, але ніколи сирі значення секретів. Policy
не читає й не атестує поагентні сховища облікових даних, як-от auth-profiles.json;
ці сховища залишаються у власності наявних потоків автентифікації та облікових даних.
Докази обробки даних є лише станом на рівні конфігурації: вони перевіряють налаштований
режим редагування, перемикачі захоплення вмісту телеметрії, режим підтримування сесій і
налаштування індексації пам’яті транскриптів сесій. Вони не перевіряють сирі логи,
експорти телеметрії, вміст транскриптів, файли пам’яті й не доводять, що персональних
даних або секретів не існує.
Довідник правил policy
Кожне поле policy нижче є необов’язковим. Перевірка виконується лише тоді, коли відповідне правило присутнє вpolicy.jsonc. Спостережуваний стан - це наявна конфігурація OpenClaw або
метадані робочого простору; policy повідомляє про відхилення, але не переписує поведінку runtime,
якщо шлях ремонту явно не доступний і не ввімкнений.
Файли policy суворі: непідтримувані секції або ключі правил повідомляються як
policy/policy-jsonc-invalid, а не ігноруються.
Накладення policy зберігають широкі правила верхнього рівня глобальними, а потім дозволяють іменованим блокам областей
додавати суворіші звичайні секції policy для явних селекторів. Назва області є
лише описовим контейнером; зіставлення використовує значення селекторів усередині області.
Накладення є адитивним: глобальні твердження все одно виконуються, а scoped claim може створити
власну знахідку щодо тієї самої спостережуваної конфігурації.
Областеві накладення
Використовуйтеscopes.<scopeName>, коли одному набору агентів або каналів потрібна суворіша
policy, ніж базовий рівень верхнього рівня. Секції з областю агента використовують agentIds, що
підтримує tools.*, agents.workspace.*, sandbox.*, dataHandling.memory.*
і execApprovals.*. Channel-scoped
ingress використовує channelIds, що підтримує ingress.channels.*. Непідтримувані
секції відхиляються, а не ігноруються. Якщо запис agentIds не
присутній в agents.list[], OpenClaw оцінює scoped rule щодо успадкованого
глобального/типового стану для цього runtime agent id.
sandbox.containers.* застосовується
до агента, backend sandbox якого не може відкрити це поле, policy повідомляє
policy/sandbox-container-posture-unobservable замість того, щоб вважати твердження
успішним. Використовуйте окремі області agentIds для груп агентів, які використовують різні
backends sandbox, і залишайте непідтримувані правила контейнерів unset або false для
груп, де ці поля не можна спостерігати.
Верхньорівневе ingress.session.requireDmScope залишається глобальним, оскільки
session.dmScope не є доказом, що атрибутується каналу.
| Селектор | Підтримувані розділи | Використовуйте, коли |
|---|---|---|
agentIds | tools, agents.workspace, sandbox, dataHandling.memory, and execApprovals | Одному або кільком агентам runtime потрібні суворіші правила. |
channelIds | ingress.channels | Одному або кільком каналам потрібні суворіші правила входу. |
policy.jsonc, має бути дійсною та придатною до примусового застосування.
Канали
| Поле політики | Спостережуваний стан | Використовуйте, коли |
|---|---|---|
channels.denyRules[].when.provider | Постачальник channels.* і ввімкнений стан | Заборонити налаштовані канали від постачальника, наприклад telegram. |
channels.denyRules[].reason | Повідомлення знахідки та контекст підказки щодо виправлення | Пояснити, чому постачальника заборонено. |
MCP-сервери
| Поле політики | Спостережуваний стан | Використовуйте, коли |
|---|---|---|
mcp.servers.allow | Ідентифікатори mcp.servers.* | Вимагати, щоб кожен налаштований MCP-сервер був у списку дозволених. |
mcp.servers.deny | Ідентифікатори mcp.servers.* | Заборонити конкретні налаштовані ідентифікатори MCP-серверів. |
Постачальники моделей
| Поле політики | Спостережуваний стан | Використовуйте, коли |
|---|---|---|
models.providers.allow | Ідентифікатори models.providers.* і вибрані посилання на моделі | Вимагати, щоб налаштовані постачальники і вибрані посилання на моделі використовували схвалених постачальників. |
models.providers.deny | Ідентифікатори models.providers.* і вибрані посилання на моделі | Заборонити налаштованих постачальників і вибрані посилання на моделі за ідентифікатором постачальника. |
Мережа
| Поле політики | Спостережуваний стан | Використовуйте, коли |
|---|---|---|
network.privateNetwork.allow | Механізми обходу SSRF для приватної мережі | Установіть false, щоб вимагати вимкнення доступу до приватної мережі. |
Вхід і доступ до каналів
| Поле політики | Спостережуваний стан | Використовуйте, коли |
|---|---|---|
ingress.session.requireDmScope | session.dmScope | Вимагати перевірену область ізоляції прямих повідомлень. |
ingress.channels.allowDmPolicies | channels.*.dmPolicy і застарілі поля політики DM каналу | Дозволяти лише перевірені політики каналів прямих повідомлень. |
ingress.channels.denyOpenGroups | Політика входу каналу, облікового запису та групи | Заборонити відкритий груповий вхід для налаштованих каналів і облікових записів. |
ingress.channels.requireMentionInGroups | Конфігурація шлюзу згадок для каналу, облікового запису, групи, гільдії та вкладених згадок | Вимагати шлюзи згадок, коли груповий вхід відкритий або керований згадками. |
Gateway
| Поле політики | Спостережуваний стан | Використовуйте, коли |
|---|---|---|
gateway.exposure.allowNonLoopbackBind | gateway.bind | Установіть false, щоб вимагати прив’язку Gateway до loopback. |
gateway.exposure.allowTailscaleFunnel | Позиція Gateway для Tailscale serve/funnel | Установіть false, щоб заборонити експозицію Tailscale Funnel. |
gateway.auth.requireAuth | gateway.auth.mode | Установіть true, щоб відхиляти вимкнену автентифікацію Gateway. |
gateway.auth.requireExplicitRateLimit | gateway.auth.rateLimit | Установіть true, щоб вимагати явну конфігурацію обмеження частоти автентифікації. |
gateway.controlUi.allowInsecure | Небезпечні перемикачі автентифікації/пристрою/джерела Control UI | Установіть false, щоб заборонити небезпечні перемикачі експозиції Control UI. |
gateway.remote.allow | Віддалений режим/конфігурація Gateway | Установіть false, щоб заборонити віддалений режим Gateway. |
gateway.http.denyEndpoints | Кінцеві точки HTTP API Gateway | Заборонити ідентифікатори кінцевих точок, як-от chatCompletions або responses. |
gateway.http.requireUrlAllowlists | Вхідні дані Gateway HTTP для отримання URL | Установіть true, щоб вимагати списки дозволених URL для вхідних даних отримання URL. |
Робочий простір агента
| Поле політики | Спостережуваний стан | Використовуйте, коли |
|---|---|---|
agents.workspace.allowedAccess | agents.defaults.sandbox.workspaceAccess і agents.list[].sandbox.workspaceAccess | Дозволяти лише значення доступу робочого простору sandbox, як-от none або ro. |
agents.workspace.denyTools | Глобальна та поагентна конфігурація заборони інструментів | Вимагати заборону інструментів мутації робочого простору/runtime, як-от exec, process, write, edit або apply_patch. |
Позиція sandbox
| Поле політики | Спостережуваний стан | Використовуйте, коли |
|---|---|---|
sandbox.requireMode | agents.defaults.sandbox.mode і поагентний режим | Дозволяти лише перевірені режими sandbox, як-от all або non-main. |
sandbox.allowBackends | agents.defaults.sandbox.backend і поагентний backend | Дозволяти лише перевірені backend-и sandbox, як-от docker. |
sandbox.containers.denyHostNetwork | Мережевий режим sandbox/browser на базі контейнера | Заборонити режим мережі хоста. |
sandbox.containers.denyContainerNamespaceJoin | Мережевий режим sandbox/browser на базі контейнера | Заборонити приєднання до простору імен мережі іншого контейнера. |
sandbox.containers.requireReadOnlyMounts | Режим монтування sandbox/browser на базі контейнера | Вимагати монтування лише для читання. |
sandbox.containers.denyContainerRuntimeSocketMounts | Цілі монтування sandbox/browser на базі контейнера | Заборонити монтування сокетів runtime контейнера. |
sandbox.containers.denyUnconfinedProfiles | Позиція профілю безпеки контейнера | Заборонити необмежені профілі безпеки контейнера. |
sandbox.browser.requireCdpSourceRange | Діапазон джерела CDP браузера sandbox | Вимагати, щоб експозиція CDP браузера оголошувала діапазон джерела. |
sandbox.mode як неявне стандартне значення off, тому
sandbox.requireMode повідомляє про новий або неналаштований sandbox як такий, що перебуває поза
списком дозволених, наприклад ["all"].
Обробка даних
| Поле політики | Спостережуваний стан | Використовуйте, коли |
|---|---|---|
dataHandling.sensitiveLogging.requireRedaction | logging.redactSensitive | Установіть true, щоб відхиляти logging.redactSensitive: "off". |
dataHandling.telemetry.denyContentCapture | diagnostics.otel.captureContent | Установіть true, щоб відхиляти захоплення вмісту телеметрією. |
dataHandling.retention.requireSessionMaintenance | session.maintenance.mode | Установіть true, щоб вимагати ефективний режим обслуговування сесій enforce. |
dataHandling.memory.denySessionTranscriptIndexing | memory.qmd.sessions.enabled і agents.*.memorySearch.experimental.sessionMemory | Установіть true, щоб відхиляти індексування стенограм сесій у пам’ять. |
Секрети
| Поле політики | Спостережуваний стан | Використовуйте, коли |
|---|---|---|
secrets.requireManagedProviders | Config SecretRefs і оголошення secrets.providers.* | Установіть true, щоб вимагати, аби SecretRefs вказували на оголошених постачальників. |
secrets.denySources | Джерела постачальників секретів і джерела SecretRef | Заборонити джерела, як-от exec, file або іншу назву налаштованого джерела. |
secrets.allowInsecureProviders | Прапорці небезпечної позиції постачальника секретів | Установіть false, щоб відхиляти постачальників, які погоджуються на небезпечну позицію. |
Схвалення exec
Політика схвалень exec спостерігає активний артефакт runtimeexec-approvals.json.
За замовчуванням це ~/.openclaw/exec-approvals.json; коли
встановлено OPENCLAW_STATE_DIR, Policy читає
$OPENCLAW_STATE_DIR/exec-approvals.json. Фактичні правила позиції, як-от
execApprovals.defaults.* або execApprovals.agents.*, потребують доказів із придатного для читання артефакта;
відсутній або недійсний артефакт повідомляється як неспостережувані докази,
а не стає best-effort проходженням за синтетичними стандартними значеннями runtime. Щойно
артефакт доступний для читання, пропущені поля схвалення успадковують стандартні значення runtime: відсутнє
defaults.security дорівнює full, а відсутня безпека агента успадковує це
стандартне значення. Докази включають defaults, agents.* і
agents.*.allowlist[].pattern плюс необов’язковий argPattern, ефективну
позицію autoAllowSkills і джерело запису. Вони не включають шлях
сокета/токен, commandText, lastUsedCommand, розв’язані шляхи або часові позначки.
| Поле політики | Спостережений стан | Використовуйте, коли |
|---|---|---|
execApprovals.requireFile | Шлях активного runtime-артефакта exec-approvals.json | Установіть true, щоб вимагати існування та успішного розбору артефакта схвалень. |
execApprovals.defaults.allowSecurity | defaults.security, за замовчуванням full | Дозволяти лише схвалені стандартні режими безпеки схвалень. |
execApprovals.agents.allowSecurity | agents.*.security, успадковує стандартні значення | Дозволяти лише схвалені ефективні режими безпеки схвалень для окремих агентів. |
execApprovals.agents.allowAutoAllowSkills | defaults.autoAllowSkills і agents.*.autoAllowSkills, успадковує runtime-стандарти | Установіть false, щоб вимагати строгі ручні списки дозволів без неявного схвалення CLI Skills. |
execApprovals.agents.allowlist.expected | Сукупний шаблон agents.*.allowlist[] і необов’язкові записи argPattern | Вимагати, щоб список дозволів схвалень відповідав перевіреному набору шаблонів. |
Профілі автентифікації
| Поле політики | Спостережений стан | Використовуйте, коли |
|---|---|---|
auth.profiles.requireMetadata | Метадані провайдера та режиму auth.profiles.* | Вимагати ключі метаданих, як-от provider і mode, у профілях автентифікації конфігурації. |
auth.profiles.allowModes | auth.profiles.*.mode | Дозволяти лише підтримувані режими профілю автентифікації, як-от api_key, aws-sdk, oauth або token. |
Метадані інструментів
| Поле політики | Спостережений стан | Використовуйте, коли |
|---|---|---|
tools.requireMetadata | Керовані оголошення TOOLS.md | Вимагати, щоб керовані інструменти оголошували ключі метаданих, як-от risk, sensitivity або owner. |
Позиція інструментів
| Поле політики | Спостережений стан | Використовуйте, коли |
|---|---|---|
tools.profiles.allow | tools.profile і agents.list[].tools.profile | Дозволяти лише ідентифікатори профілів інструментів, як-от minimal, messaging або coding. |
tools.fs.requireWorkspaceOnly | tools.fs.workspaceOnly і перевизначення tools.fs для окремих агентів | Установіть true, щоб вимагати позицію інструмента файлової системи лише в межах робочої області. |
tools.exec.allowSecurity | tools.exec.security і безпека exec для окремих агентів | Дозволяти лише режими безпеки exec, як-от deny або allowlist. |
tools.exec.requireAsk | tools.exec.ask і режим запиту exec для окремих агентів | Вимагати позицію схвалення, як-от always. |
tools.exec.allowHosts | tools.exec.host і маршрутизація exec-хоста для окремих агентів | Дозволяти лише режими маршрутизації exec-хоста, як-от sandbox. |
tools.elevated.allow | tools.elevated.enabled і підвищена позиція для окремих агентів | Установіть false, щоб вимагати, аби підвищений режим інструментів залишався вимкненим. |
tools.alsoAllow.expected | tools.alsoAllow і tools.alsoAllow для окремих агентів | Вимагати точні записи alsoAllow і повідомляти про відсутні або неочікувані додаткові дозволи інструментів. |
tools.denyTools | tools.deny і agents.list[].tools.deny | Вимагати, щоб налаштовані списки заборони інструментів містили ідентифікатори інструментів або групи, як-от group:runtime і group:fs. |
policy check запускає лише набір перевірок політики та виводить докази, знахідки й
хеші атестації. Ті самі знахідки також з’являються в openclaw doctor --lint,
коли Plugin Policy увімкнено.
Порівняйте файл політики оператора з авторським базовим файлом політики:
policy compare порівнює синтаксис файла політики із синтаксисом файла політики. Він не
перевіряє runtime-стан OpenClaw, докази, облікові дані чи секрети. Команда
використовує ті самі метадані правил політики, що керують scoped-накладаннями: списки дозволів мають
залишатися рівними або вужчими, списки заборон мають залишатися рівними або ширшими, обов’язкові булеві значення
мають зберігати своє обов’язкове значення, впорядковані рядки мають рухатися лише в бік більш
обмежувального кінця налаштованого порядку, а точні списки мають збігатися.
Базовий файл може бути політикою, створеною організацією. Перевірювана політика може
використовувати суворіші значення або додавати додаткові правила політики. Перевірюване правило верхнього рівня також може
задовольняти scoped-базове правило, коли воно так само або більш обмежувальне, оскільки
політика верхнього рівня застосовується широко. Назви областей не повинні збігатися; scoped-
порівняння прив’язується до значення селектора, як-от agentIds або channelIds, і до
поля політики, що перевіряється.
Приклад чистого JSON-виводу порівняння повідомляє лише стан порівняння файлів політики:
policy check --json містить стабільні хеші, які може
записати оператор або supervisor:
Налаштування політики
Конфігурація політики розміщується вplugins.entries.policy.config.
| Налаштування | Призначення |
|---|---|
enabled | Увімкнути перевірки політики навіть до появи policy.jsonc. |
workspaceRepairs | Дозволити doctor --fix редагувати налаштування робочої області, керовані політикою. |
expectedHash | Необов’язкове hash-lock для схваленого артефакта політики. |
expectedAttestationHash | Необов’язкове hash-lock для останньої прийнятої чистої перевірки політики. |
path | Розташування артефакта політики відносно робочої області. |
plugins.entries.policy.config.enabled у false, щоб вимкнути перевірки політики
для робочої області, залишивши Plugin установленим.
Вимоги до метаданих інструментів задаються в policy.jsonc через
tools.requireMetadata, наприклад ["risk", "sensitivity", "owner"].
Прийняття стану політики
Приклад JSON-виводу:workspace.hash ідентифікує це корисне навантаження доказів для перевіреної області.
Хеш виявлень ідентифікує точний набір виявлень, повернений перевіркою.
checkedAt записує, коли виконувалося оцінювання. Хеш атестації ідентифікує
стале твердження: хеш політики, хеш доказів, хеш виявлень і те, чи був
результат чистим. Він навмисно не включає checkedAt, тому однаковий
стан політики створює ту саму атестацію під час повторних перевірок. Разом
вони формують аудиторський кортеж для цієї перевірки політики.
Якщо пізніше Gateway або супервізор використовує політику, щоб блокувати, схвалювати або анотувати
дію під час виконання, він має записувати хеш атестації з останньої чистої перевірки
політики. checkedAt залишається в JSON-виводі для журналів аудиту, але не є частиною
стабільного хешу атестації.
Використовуйте цей життєвий цикл під час прийняття стану політики:
- Створіть або перегляньте
policy.jsonc. - Запустіть
openclaw policy check --json. - Якщо результат чистий, запишіть
attestation.policy.hashякexpectedHash. - Запишіть
attestation.attestationHashякexpectedAttestationHash. - Повторно запустіть
openclaw doctor --lintу CI або release gates.
expectedAttestationHash.
Увімкнення або оновлення правил agents.workspace додає докази agentWorkspace до
хешу робочого простору та хешу атестації. Оператори мають переглянути нові
докази й оновити прийняті хеші атестації після ввімкнення цих правил.
Увімкнення або оновлення правил стану безпеки інструментів додає докази toolPosture у
такий самий спосіб.
openclaw policy watch повторно запускає ту саму перевірку й повідомляє, коли
поточні докази більше не відповідають expectedAttestationHash:
--once у CI або скриптах, яким потрібне лише одне оцінювання відхилення. Без
--once команда за замовчуванням опитує кожні дві секунди; використовуйте --interval-ms, щоб
вибрати інший інтервал.
Виявлення
Наразі політика перевіряє:| ID перевірки | Висновок |
|---|---|
policy/policy-jsonc-missing | Політика ввімкнена, але policy.jsonc відсутній. |
policy/policy-jsonc-invalid | Політику не вдається розібрати або вона містить некоректні записи правил. |
policy/policy-hash-mismatch | Політика не відповідає налаштованому expectedHash. |
policy/attestation-hash-mismatch | Поточні докази політики більше не відповідають прийнятій атестації. |
policy/policy-conformance-invalid | Базовий або перевірений файл політики має недійсний синтаксис порівняння. |
policy/policy-conformance-missing | У перевіреному файлі політики відсутнє правило, потрібне базовим файлом політики. |
policy/policy-conformance-weaker | Перевірений файл політики має слабше значення, ніж базовий файл політики. |
policy/channels-denied-provider | Увімкнений канал відповідає правилу заборони каналу. |
policy/mcp-denied-server | Налаштований MCP-сервер заборонений політикою. |
policy/mcp-unapproved-server | Налаштований MCP-сервер перебуває поза списком дозволених. |
policy/models-denied-provider | Налаштований постачальник моделі або посилання на модель використовує забороненого постачальника. |
policy/models-unapproved-provider | Налаштований постачальник моделі або посилання на модель перебуває поза списком дозволених. |
policy/network-private-access-enabled | Аварійний обхід SSRF для приватної мережі ввімкнено, хоча політика його забороняє. |
policy/ingress-dm-policy-unapproved | Політика приватних повідомлень каналу перебуває поза списком дозволених політикою. |
policy/ingress-dm-scope-unapproved | session.dmScope не відповідає області ізоляції приватних повідомлень, яку вимагає політика. |
policy/ingress-open-groups-denied | Політика групи каналу має значення open, хоча політика забороняє вхідні відкриті групи. |
policy/ingress-group-mention-required | Запис каналу або групи вимикає шлюзи згадок, хоча політика вимагає їх. |
policy/gateway-non-loopback-bind | Позиція прив’язки Gateway дозволяє не-loopback-доступ, хоча політика його забороняє. |
policy/gateway-auth-disabled | Автентифікацію Gateway вимкнено, хоча політика вимагає автентифікації. |
policy/gateway-rate-limit-missing | Позиція обмеження частоти автентифікації Gateway не задана явно, хоча політика цього вимагає. |
policy/gateway-control-ui-insecure | Увімкнено перемикачі небезпечного доступу до Gateway Control UI. |
policy/gateway-tailscale-funnel | Доступ через Gateway Tailscale Funnel увімкнено, хоча політика його забороняє. |
policy/gateway-remote-enabled | Віддалений режим Gateway активний, хоча політика його забороняє. |
policy/gateway-http-endpoint-enabled | Кінцеву точку Gateway HTTP API увімкнено, хоча політика її забороняє. |
policy/gateway-http-url-fetch-unrestricted | Вхід URL-fetch Gateway HTTP не має потрібного списку дозволених URL. |
policy/agents-workspace-access-denied | Режим пісочниці агента або доступ до робочої області перебуває поза списком дозволених політикою. |
policy/agents-tool-not-denied | Агент або типова конфігурація не забороняє інструмент, якого вимагає політика. |
policy/tools-profile-unapproved | Налаштований глобальний або агентний профіль інструментів перебуває поза списком дозволених. |
policy/tools-fs-workspace-only-required | Інструменти файлової системи не налаштовані з позицією шляхів лише в робочій області. |
policy/tools-exec-security-unapproved | Режим безпеки Exec перебуває поза списком дозволених політикою. |
policy/tools-exec-ask-unapproved | Режим запиту Exec перебуває поза списком дозволених політикою. |
policy/tools-exec-host-unapproved | Маршрутизація хоста Exec перебуває поза списком дозволених політикою. |
policy/tools-elevated-enabled | Підвищений режим інструментів увімкнено, хоча політика його забороняє. |
policy/tools-also-allow-missing | У налаштованому списку alsoAllow відсутній запис, потрібний політикою. |
policy/tools-also-allow-unexpected | Налаштований список alsoAllow містить запис, не очікуваний політикою. |
policy/tools-required-deny-missing | Глобальний або агентний список заборон інструментів не містить потрібного забороненого інструмента. |
policy/sandbox-mode-unapproved | Режим пісочниці перебуває поза списком дозволених політикою. |
policy/sandbox-backend-unapproved | Backend пісочниці перебуває поза списком дозволених політикою. |
policy/sandbox-container-posture-unobservable | Правило позиції контейнера ввімкнено для backend, який не може його спостерігати. |
policy/sandbox-container-host-network-denied | Пісочниця або браузер на базі контейнера використовує режим мережі хоста. |
policy/sandbox-container-namespace-join-denied | Пісочниця або браузер на базі контейнера приєднується до простору імен іншого контейнера. |
policy/sandbox-container-mount-mode-required | Монтування пісочниці або браузера на базі контейнера не є лише для читання. |
policy/sandbox-container-runtime-socket-mount | Монтування пісочниці або браузера на базі контейнера відкриває сокет runtime контейнера. |
policy/sandbox-container-unconfined-profile | Профіль пісочниці контейнера є необмеженим, хоча політика це забороняє. |
policy/sandbox-browser-cdp-source-range-missing | Діапазон джерел CDP браузера пісочниці відсутній, хоча політика його вимагає. |
policy/data-handling-redaction-disabled | Редагування чутливих даних у журналах вимкнено, хоча політика його вимагає. |
policy/data-handling-telemetry-content-capture | Захоплення вмісту телеметрії ввімкнено, хоча політика його забороняє. |
policy/data-handling-session-retention-not-enforced | Обслуговування зберігання сесій не застосовується, хоча політика цього вимагає. |
policy/data-handling-session-transcript-memory-enabled | Індексування пам’яті транскриптів сесій увімкнено, хоча політика його забороняє. |
policy/secrets-unmanaged-provider | SecretRef у конфігурації посилається на постачальника, не оголошеного в secrets.providers. |
policy/secrets-denied-provider-source | Постачальник секретів у конфігурації або SecretRef використовує джерело, заборонене політикою. |
policy/secrets-insecure-provider | Постачальник секретів явно обирає небезпечну позицію, хоча політика її забороняє. |
policy/auth-profile-invalid-metadata | У профілі автентифікації конфігурації відсутні чинні метадані постачальника або режиму. |
policy/auth-profile-unapproved-mode | Режим профілю автентифікації конфігурації перебуває поза списком дозволених політикою. |
policy/exec-approvals-missing | Політика вимагає exec-approvals.json, але артефакт відсутній. |
policy/exec-approvals-invalid | Налаштований артефакт схвалень exec не вдається розібрати. |
policy/exec-approvals-default-security-unapproved | Типові схвалення Exec використовують режим безпеки поза списком дозволених політикою. |
policy/exec-approvals-agent-security-unapproved | Ефективний режим безпеки схвалень exec для окремого агента перебуває поза списком дозволених. |
policy/exec-approvals-auto-allow-skills-enabled | Агент схвалення exec неявно автоматично дозволяє CLI Skills, хоча політика це забороняє. |
policy/exec-approvals-allowlist-missing | У списку дозволених схвалень відсутній шаблон, потрібний політикою. |
policy/exec-approvals-allowlist-unexpected | Список дозволених схвалень містить шаблон, не очікуваний політикою. |
policy/tools-missing-risk-level | У керованій декларації інструмента відсутні метадані ризику. |
policy/tools-unknown-risk-level | Керована декларація інструмента використовує невідоме значення ризику. |
policy/tools-missing-sensitivity-token | У керованій декларації інструмента відсутні метадані чутливості. |
policy/tools-missing-owner | У керованій декларації інструмента відсутні метадані власника. |
policy/tools-unknown-sensitivity-token | Керована декларація інструмента використовує невідоме значення чутливості. |
target, і requirement. target — це
спостережуваний об’єкт робочої області, який не відповідає вимогам. requirement — це створене
правило політики, через яке це стало висновком. Сьогодні обидва значення є адресами, зазвичай
шляхами oc://, але назви полів описують їхню роль у політиці, а не
формат адреси.
Приклад висновку JSON:
Виправлення
doctor --lint і policy check призначені лише для читання.
doctor --fix редагує налаштування робочого простору, керовані політикою, лише коли
workspaceRepairs явно ввімкнено. Без цієї згоди перевірки політики
повідомляють, що саме вони відремонтували б, і залишають налаштування без змін.
У цій версії ремонт може вимикати канали, увімкнені в конфігурації OpenClaw,
але заборонені channels.denyRules. Вмикайте workspaceRepairs лише після
перегляду файлу політики, оскільки чинне правило заборони може вимкнути
налаштований канал:
Коди виходу
| Команда | 0 | 1 | 2 |
|---|---|---|---|
policy check | Немає знахідок на пороговому рівні. | Одна або більше знахідок досягли порогового рівня. | Помилка аргументів або виконання. |
policy compare | Файл політики щонайменше такий самий суворий, як базовий. | Файл політики недійсний, відсутній або слабший за базові правила. | Помилка аргументів або виконання. |
policy watch | Немає знахідок, а прийнятий хеш актуальний. | Знахідки існують або прийнята атестація застаріла. | Помилка аргументів або виконання. |