CLI commands
नीति
openclaw policy
openclaw policy बंडल किए गए Policy Plugin द्वारा प्रदान किया जाता है। यह मौजूदा OpenClaw सेटिंग्स के ऊपर एक एंटरप्राइज़
अनुरूपता परत है, कोई दूसरी कॉन्फ़िगरेशन
प्रणाली नहीं। आप policy.jsonc में आवश्यकताएँ लिखते हैं; OpenClaw सक्रिय
वर्कस्पेस को साक्ष्य के रूप में देखता है; Policy doctor --lint के माध्यम से विचलन की रिपोर्ट करता है। Policy
टूल कॉल लागू नहीं करता या अनुरोध के समय रनटाइम व्यवहार को फिर से नहीं लिखता, और यह
auth-profiles.json जैसे प्रति-एजेंट क्रेडेंशियल स्टोर को सत्यापित नहीं करता।
Policy कॉन्फ़िगर किए गए चैनल, MCP सर्वर, मॉडल प्रदाता, नेटवर्क SSRF
स्थिति, इनग्रेस/चैनल पहुँच, Gateway एक्सपोज़र और Node कमांड स्थिति,
लिखे गए संदेश-रूटिंग प्रोब,
एजेंट वर्कस्पेस पहुँच, सैंडबॉक्स स्थिति, डेटा-प्रबंधन स्थिति, सीक्रेट
प्रदाता/प्रमाणीकरण प्रोफ़ाइल स्थिति और शासित टूल मेटाडेटा (TOOLS.md) की जाँच करता है। इसका उपयोग
तब करें जब किसी वर्कस्पेस को "Telegram सक्षम
नहीं होना चाहिए" या "शासित टूल को जोखिम और स्वामी मेटाडेटा घोषित करना चाहिए" जैसे टिकाऊ, जाँच-योग्य कथन की आवश्यकता हो। यदि
आपको सत्यापन या विचलन पहचान के बिना केवल स्थानीय व्यवहार चाहिए, तो सामान्य
कॉन्फ़िगरेशन पर्याप्त है।
त्वरित शुरुआत
openclaw plugins enable policypolicy.jsonc अनुपस्थित होने पर भी Plugin सक्षम रहता है, ताकि doctor
जाँचों को चुपचाप छोड़ने के बजाय अनुपस्थित आर्टिफ़ैक्ट की रिपोर्ट कर सके।
policy.jsonc को स्वयं लिखें; यह वर्तमान सेटिंग्स से जनरेट नहीं होता। प्रत्येक
शीर्ष-स्तरीय अनुभाग एक नियम नेमस्पेस है: कोई जाँच तभी चलती है जब उसके अंतर्गत कोई ठोस नियम
मौजूद हो (असमर्थित अनुभाग या कुंजियाँ चुपचाप अनदेखी होने के बजाय
policy/policy-jsonc-invalid के रूप में विफल होती हैं)। प्रत्येक समर्थित अनुभाग को शामिल करने वाला न्यूनतम
उदाहरण:
{ "channels": { "denyRules": [ { "id": "no-telegram", "when": { "provider": "telegram" }, "reason": "इस वर्कस्पेस के लिए Telegram स्वीकृत नहीं है।", }, ], }, "mcp": { "servers": { "allow": ["docs"], "deny": ["untrusted"], }, }, "models": { "providers": { "allow": ["openai", "anthropic"], "deny": ["openrouter"], }, }, "network": { "privateNetwork": { "allow": false, }, }, "routing": { "requireBindings": true, "requireConfiguredChannels": true, "probes": [ { "id": "family-dm", "route": { "channel": "imessage", "peer": { "kind": "direct", "id": "+15555550123" }, }, "expect": { "agentId": "family", "matchedBy": ["binding.peer"], }, }, ], }, "ingress": { "session": { "requireDmScope": "per-channel-peer", }, "channels": { "allowDmPolicies": ["pairing", "allowlist", "disabled"], "denyOpenGroups": true, "requireMentionInGroups": true, }, }, "gateway": { "exposure": { "allowNonLoopbackBind": false, "allowTailscaleFunnel": false, }, "auth": { "requireAuth": true, "requireExplicitRateLimit": true, }, "controlUi": { "allowInsecure": false, }, "remote": { "allow": false, }, "http": { "denyEndpoints": ["chatCompletions", "responses"], "requireUrlAllowlists": true, }, "nodes": { "denyCommands": ["system.run"], }, }, "agents": { "workspace": { "allowedAccess": ["none", "ro"], "denyTools": ["exec", "process", "write", "edit", "apply_patch"], }, }, "dataHandling": { "sensitiveLogging": { "requireRedaction": true, }, "telemetry": { "denyContentCapture": true, }, "retention": { "requireSessionMaintenance": true, }, "memory": { "denySessionTranscriptIndexing": true, }, }, "secrets": { "requireManagedProviders": true, "denySources": ["exec"], "allowInsecureProviders": false, }, "auth": { "profiles": { "requireMetadata": ["provider", "mode"], "allowModes": ["api_key", "token"], }, }, "execApprovals": { "requireFile": true, "defaults": { "allowSecurity": ["deny"] }, "agents": { "allowSecurity": ["deny", "allowlist"], "allowAutoAllowSkills": false, "allowlist": { "expected": ["deploy", "status"] }, }, }, "tools": { "requireMetadata": ["risk", "sensitivity", "owner"], "profiles": { "allow": ["messaging", "minimal"], }, "fs": { "requireWorkspaceOnly": true, }, "exec": { "allowSecurity": ["deny", "allowlist"], "requireAsk": ["always"], "allowHosts": ["sandbox"], }, "elevated": { "allow": false, }, "denyTools": ["group:runtime", "group:fs"], },}नीचे दी गई नियम तालिकाओं से स्पष्ट न होने वाली व्यापक टिप्पणियाँ:
- नॉन-लूपबैक बाइंड अस्वीकार करते समय
gateway.bindको छोड़ने का अर्थ है कि आप रनटाइम डिफ़ॉल्ट स्वीकार करते हैं; सख्त अनुरूपता के लिएgateway.bind: "loopback"सेट करें। - केवल-पढ़ने योग्य एजेंट के लिए, लागू डिफ़ॉल्ट/एजेंट पर सैंडबॉक्स
modeकोallयाnon-mainऔरworkspaceAccessकोnoneयाroपर सेट करें। अनुपस्थित याoffसैंडबॉक्स मोड केवल-पढ़ने योग्य Policy को संतुष्ट नहीं करता। agents.workspace.denyToolsexec,process,write,edit,apply_patchस्वीकार करता है। कॉन्फ़िगरेशन के टूल-अस्वीकरण समूहgroup:fs(फ़ाइल परिवर्तन) औरgroup:runtime(शेल/प्रोसेस) समकक्ष स्थिति को संतुष्ट करते हैं।- Exec-अनुमोदन जाँचें लाइव
exec-approvals.jsonआर्टिफ़ैक्ट को केवल तभी पढ़ती हैं जब कोईexecApprovalsनियम मौजूद हो; अनुपस्थित या अमान्य आर्टिफ़ैक्ट अवलोकन-अयोग्य साक्ष्य है, कृत्रिम रूप से उत्तीर्ण परिणाम नहीं। - सीक्रेट और प्रमाणीकरण-प्रोफ़ाइल साक्ष्य केवल प्रदाता/स्रोत स्थिति और
SecretRef मेटाडेटा दर्ज करते हैं, मूल मान कभी नहीं। Policy
auth-profiles.jsonजैसे प्रति-एजेंट क्रेडेंशियल स्टोर को पढ़ता या सत्यापित नहीं करता। - डेटा-प्रबंधन साक्ष्य केवल कॉन्फ़िगरेशन-स्तरीय स्थिति है (रिडैक्शन मोड, टेलीमेट्री कैप्चर टॉगल, सत्र रखरखाव मोड, ट्रांसक्रिप्ट-इंडेक्सिंग सेटिंग)। यह लॉग, टेलीमेट्री एक्सपोर्ट, ट्रांसक्रिप्ट या मेमोरी फ़ाइलों का निरीक्षण नहीं करता, और साफ़ परिणाम यह प्रमाणित नहीं करता कि उनमें कोई व्यक्तिगत डेटा या सीक्रेट मौजूद नहीं हैं।
- रूटिंग प्रोब OpenClaw के रनटाइम बाइंडिंग रिज़ॉल्वर का पुनः उपयोग करते हैं। रूटिंग साक्ष्य केवल प्रोब आईडी, रिज़ॉल्व किया गया एजेंट, मिलान प्रकार और रिडैक्ट किया गया बाइंडिंग मेटाडेटा दर्ज करता है। यह कभी भी पीयर, खाता, गिल्ड, टीम या भूमिका पहचानकर्ता दर्ज नहीं करता। रूटिंग अनुभाग जोड़ने से जानबूझकर Policy और सत्यापन हैश बदलते हैं; रूटिंग के बिना नीतियाँ अपना मौजूदा साक्ष्य आकार बनाए रखती हैं।
Policy नियम संदर्भ
नीचे दिया गया प्रत्येक नियम वैकल्पिक है; कोई जाँच तभी चलती है जब नियम मौजूद हो। देखी गई स्थिति मौजूदा OpenClaw कॉन्फ़िगरेशन या वर्कस्पेस मेटाडेटा है।
दायरा-विशिष्ट ओवरले
जब विशिष्ट एजेंटों या चैनलों को शीर्ष-स्तरीय आधाररेखा से अधिक सख्त Policy की आवश्यकता हो, तब
scopes.<scopeName> का उपयोग करें। दायरे का नाम केवल एक लेबल है; मिलान दायरे के भीतर के
चयनकर्ता का उपयोग करता है। ओवरले योगात्मक होते हैं: वैश्विक नियम चलता रहता है,
और दायरा-विशिष्ट नियम उसी साक्ष्य के विरुद्ध अपना अलग निष्कर्ष जोड़ सकता है।
| चयनकर्ता | समर्थित अनुभाग | कब उपयोग करें |
|---|---|---|
agentIds |
tools, agents.workspace, sandbox, dataHandling.memory, execApprovals |
एक या अधिक रनटाइम एजेंटों को अधिक सख्त नियमों की आवश्यकता हो। |
channelIds |
ingress.channels |
एक या अधिक चैनलों को अधिक सख्त इनग्रेस नियमों की आवश्यकता हो। |
यदि कोई agentIds प्रविष्टि agents.entries.* में मौजूद नहीं है, तो OpenClaw
दायरा-विशिष्ट नियम को छोड़ने के बजाय उस रनटाइम
एजेंट आईडी के लिए विरासत में मिली वैश्विक/डिफ़ॉल्ट स्थिति के विरुद्ध उसका मूल्यांकन करता है।
{ "tools": { "exec": { "allowHosts": ["sandbox", "node"], }, }, "sandbox": { "requireMode": ["all", "non-main"], }, "scopes": { "release-workspace": { "agentIds": ["release-agent", "review-agent"], "agents": { "workspace": { "allowedAccess": ["none", "ro"], }, }, }, "release-lockdown": { "agentIds": ["release-agent"], "tools": { "exec": { "allowHosts": ["sandbox"], "allowSecurity": ["deny", "allowlist"], "requireAsk": ["always"], }, "denyTools": ["exec", "process", "write", "edit", "apply_patch"], }, "sandbox": { "requireMode": ["all"], "allowBackends": ["docker"], }, "dataHandling": { "memory": { "denySessionTranscriptIndexing": true, }, }, }, "shell-sandbox": { "agentIds": ["shell-agent"], "sandbox": { "allowBackends": ["openshell"], "containers": { "requireReadOnlyMounts": false, }, }, }, "telegram-ingress": { "channelIds": ["telegram"], "ingress": { "channels": { "allowDmPolicies": ["pairing"], "denyOpenGroups": true, "requireMentionInGroups": true, }, }, }, },}एक ही एजेंट कई दायरों में आ सकता है, यदि प्रत्येक दायरा किसी अलग फ़ील्ड को नियंत्रित करता हो, जैसा ऊपर दिखाया गया है। समान एजेंट के लिए दोहराया गया दायरा-विशिष्ट फ़ील्ड समान रूप से या अधिक प्रतिबंधात्मक होना चाहिए; कमज़ोर डुप्लिकेट दावे को अस्वीकार कर दिया जाता है (अनुमति-सूचियाँ उपसमुच्चय होती हैं, अस्वीकरण-सूचियाँ अधिसमुच्चय होती हैं, आवश्यक बूलियन निश्चित होते हैं)।
कंटेनर स्थिति नियमों (sandbox.containers.*) की जाँच केवल उस
साक्ष्य के विरुद्ध की जाती है जिसे मिलान किए गए एजेंट का सैंडबॉक्स बैकएंड उजागर कर सकता है। यदि कोई बैकएंड
आपके द्वारा उसके लिए सक्षम किए गए नियम का अवलोकन नहीं कर सकता, तो Policy उत्तीर्ण करने के बजाय
policy/sandbox-container-posture-unobservable की रिपोर्ट करता है; कंटेनर नियमों का दायरा
उन एजेंट समूहों तक सीमित करें जो ऐसा बैकएंड उपयोग करते हैं जो उन्हें उजागर कर सकता है।
शीर्ष-स्तरीय ingress.session.requireDmScope वैश्विक रहता है; session.dmScope
चैनल से संबद्ध किया जा सकने वाला साक्ष्य नहीं है, इसलिए इसका दायरा channelIds द्वारा निर्धारित नहीं किया जा सकता।
policy.jsonc में मौजूद प्रत्येक दायरा मान्य और लागू करने योग्य होना चाहिए।
चैनल
| Policy फ़ील्ड | देखी गई स्थिति | कब उपयोग करें |
|---|---|---|
channels.denyRules[].when.provider |
channels.* प्रदाता और सक्षम स्थिति |
telegram जैसे किसी प्रदाता के कॉन्फ़िगर किए गए चैनलों को अस्वीकार करें। |
channels.denyRules[].reason |
निष्कर्ष संदेश और सुधार संकेत का संदर्भ | बताएँ कि प्रदाता को क्यों अस्वीकार किया गया है। |
MCP सर्वर
| Policy फ़ील्ड | देखी गई स्थिति | कब उपयोग करें |
|---|---|---|
mcp.servers.allow |
mcp.servers.* आईडी |
प्रत्येक कॉन्फ़िगर किए गए MCP सर्वर का अनुमति-सूची में होना आवश्यक बनाएँ। |
mcp.servers.deny |
mcp.servers.* आईडी |
विशिष्ट कॉन्फ़िगर किए गए MCP सर्वर आईडी अस्वीकार करें। |
मॉडल प्रदाता
| Policy फ़ील्ड | देखी गई स्थिति | कब उपयोग करें |
|---|---|---|
models.providers.allow |
models.providers.* आईडी और चयनित मॉडल संदर्भ |
कॉन्फ़िगर किए गए प्रदाताओं और चयनित मॉडल संदर्भों के लिए स्वीकृत प्रदाताओं का उपयोग आवश्यक बनाएँ। |
models.providers.deny |
models.providers.* आईडी और चयनित मॉडल संदर्भ |
प्रदाता आईडी के आधार पर कॉन्फ़िगर किए गए प्रदाताओं और चयनित मॉडल संदर्भों को अस्वीकार करें। |
नेटवर्क
| नीति फ़ील्ड | देखी गई स्थिति | कब उपयोग करें |
|---|---|---|
network.privateNetwork.allow |
निजी-नेटवर्क SSRF एस्केप हैच | निजी-नेटवर्क एक्सेस को अक्षम रखना आवश्यक बनाने के लिए false पर सेट करें। |
संदेश रूटिंग
| नीति फ़ील्ड | देखी गई स्थिति | कब उपयोग करें |
|---|---|---|
routing.requireBindings |
ACP बाइंडिंग को छोड़कर चैनल रूट बाइंडिंग | कम-से-कम एक संदेश-रूटिंग बाइंडिंग आवश्यक बनाएँ। |
routing.requireConfiguredChannels |
बाइंडिंग चैनल आईडी और कॉन्फ़िगर की गई channels.* आईडी |
पुराने या गलत वर्तनी वाले बाइंडिंग चैनल आईडी का पता लगाएँ। |
routing.probes[].route |
सार्वजनिक OpenClaw रूट रिज़ॉल्वर | संदेश भेजे बिना किसी प्रतिनिधि इनबाउंड रूट का वर्णन करें। |
routing.probes[].expect.agentId |
रिज़ॉल्व किया गया एजेंट आईडी | रूट का समीक्षा किए गए एजेंट तक पहुँचना आवश्यक बनाएँ। |
routing.probes[].expect.matchedBy |
रिज़ॉल्वर मिलान प्रकार | पीयर, अकाउंट, चैनल या अन्य समीक्षा की गई बाइंडिंग विशिष्टता आवश्यक बनाएँ। |
प्रोब आईडी अद्वितीय होनी चाहिए। कोई रूट channel, वैकल्पिक accountId,
peer, parentPeer, guildId, teamId और memberRoleIds का समर्थन करता है। पीयर प्रकार
direct, group और channel हैं। matchedBy में एक या अधिक रनटाइम
मिलान प्रकार हो सकते हैं, जिनमें binding.peer, binding.account, binding.channel,
या default शामिल हैं।
रूटिंग जाँच केवल अनुरूपता जाँच हैं। वे स्टार्टअप, संदेश डिलीवरी, बाइंडिंग प्राथमिकता या फ़ॉलबैक व्यवहार को नहीं बदलतीं। निष्कर्षों के लिए ऑपरेटर समीक्षा आवश्यक है, क्योंकि किसी बाइंडिंग को स्वचालित रूप से बदलने से निजी संदेश किसी अन्य दिशा में भेजे जा सकते हैं।
इनग्रेस और चैनल एक्सेस
| नीति फ़ील्ड | देखी गई स्थिति | कब उपयोग करें |
|---|---|---|
ingress.session.requireDmScope |
session.dmScope |
समीक्षा किया गया डायरेक्ट-मैसेज आइसोलेशन स्कोप आवश्यक बनाएँ। |
ingress.channels.allowDmPolicies |
channels.*.dmPolicy और पुराने चैनल DM नीति फ़ील्ड |
केवल समीक्षा की गई डायरेक्ट-मैसेज चैनल नीतियों की अनुमति दें। |
ingress.channels.denyOpenGroups |
चैनल, अकाउंट और समूह इनग्रेस नीति | कॉन्फ़िगर किए गए चैनलों और अकाउंट के लिए खुले समूह इनग्रेस को अस्वीकार करें। |
ingress.channels.requireMentionInGroups |
चैनल, अकाउंट, समूह, गिल्ड और नेस्टेड उल्लेख गेट कॉन्फ़िगरेशन | समूह इनग्रेस खुला या उल्लेख-गेटेड होने पर उल्लेख गेट आवश्यक बनाएँ। |
Gateway
| नीति फ़ील्ड | देखी गई स्थिति | कब उपयोग करें |
|---|---|---|
gateway.exposure.allowNonLoopbackBind |
gateway.bind |
लूपबैक Gateway बाइंडिंग आवश्यक बनाने के लिए false पर सेट करें। |
gateway.exposure.allowTailscaleFunnel |
Tailscale सर्व/फ़नल Gateway पोस्चर | Tailscale Funnel एक्सपोज़र अस्वीकार करने के लिए false पर सेट करें। |
gateway.auth.requireAuth |
gateway.auth.mode |
अक्षम Gateway प्रमाणीकरण को अस्वीकार करने के लिए true पर सेट करें। |
gateway.auth.requireExplicitRateLimit |
gateway.auth.rateLimit |
स्पष्ट प्रमाणीकरण दर-सीमा कॉन्फ़िगरेशन आवश्यक बनाने के लिए true पर सेट करें। |
gateway.controlUi.allowInsecure |
कंट्रोल UI के असुरक्षित प्रमाणीकरण/डिवाइस/ओरिजिन टॉगल | असुरक्षित कंट्रोल UI एक्सपोज़र टॉगल अस्वीकार करने के लिए false पर सेट करें। |
gateway.remote.allow |
रिमोट Gateway मोड/कॉन्फ़िगरेशन | रिमोट Gateway मोड अस्वीकार करने के लिए false पर सेट करें। |
gateway.http.denyEndpoints |
Gateway HTTP API एंडपॉइंट | chatCompletions या responses जैसे एंडपॉइंट आईडी अस्वीकार करें। |
gateway.http.requireUrlAllowlists |
Gateway HTTP URL-फ़ेच इनपुट | URL-फ़ेच इनपुट पर URL अनुमत-सूचियाँ आवश्यक बनाने के लिए true पर सेट करें। |
gateway.nodes.denyCommands |
gateway.nodes.commands.deny |
OpenClaw कॉन्फ़िगरेशन में system.run जैसे सटीक Node कमांड आईडी का अस्वीकृत होना आवश्यक बनाएँ। |
gateway.nodes.denyCommands एक सटीक, केस-संवेदी नीति अस्वीकृति-सुपरसेट नियम है।
जब नीति को यह सिद्ध करना हो कि विशेषाधिकार-प्राप्त Node कमांड OpenClaw
कॉन्फ़िगरेशन द्वारा स्पष्ट रूप से अस्वीकृत हैं, तब इसका उपयोग करें। जो डिप्लॉयमेंट जानबूझकर किसी विशेषाधिकार-प्राप्त
Node कमांड की अनुमति देता है, उसे केवल
gateway.nodes.commands.allow पर निर्भर रहने के बजाय समीक्षा के बाद policy.jsonc अपडेट करना चाहिए।
एजेंट वर्कस्पेस
| नीति फ़ील्ड | देखी गई स्थिति | कब उपयोग करें |
|---|---|---|
agents.workspace.allowedAccess |
agents.defaults.sandbox.workspaceAccess और agents.entries.*.sandbox.workspaceAccess |
केवल none या ro जैसे सैंडबॉक्स वर्कस्पेस एक्सेस मानों की अनुमति दें। |
agents.workspace.denyTools |
वैश्विक और प्रति-एजेंट टूल अस्वीकृति कॉन्फ़िगरेशन | म्यूटेशन टूल (exec, process, write, edit, apply_patch) का अस्वीकृत होना आवश्यक बनाएँ। |
सैंडबॉक्स पोस्चर
| नीति फ़ील्ड | देखी गई स्थिति | कब उपयोग करें |
|---|---|---|
sandbox.requireMode |
agents.defaults.sandbox.mode और प्रति-एजेंट मोड |
केवल all या non-main जैसे समीक्षा किए गए सैंडबॉक्स मोड की अनुमति दें। |
sandbox.allowBackends |
agents.defaults.sandbox.backend और प्रति-एजेंट बैकएंड |
केवल docker जैसे समीक्षा किए गए सैंडबॉक्स बैकएंड की अनुमति दें। |
sandbox.containers.denyHostNetwork |
कंटेनर-समर्थित सैंडबॉक्स/ब्राउज़र नेटवर्क मोड | होस्ट नेटवर्क मोड अस्वीकार करें। |
sandbox.containers.denyContainerNamespaceJoin |
कंटेनर-समर्थित सैंडबॉक्स/ब्राउज़र नेटवर्क मोड | किसी अन्य कंटेनर नेटवर्क नेमस्पेस से जुड़ना अस्वीकार करें। |
sandbox.containers.requireReadOnlyMounts |
कंटेनर-समर्थित सैंडबॉक्स/ब्राउज़र माउंट मोड | माउंट का केवल-पठन होना आवश्यक बनाएँ। |
sandbox.containers.denyContainerRuntimeSocketMounts |
कंटेनर-समर्थित सैंडबॉक्स/ब्राउज़र माउंट लक्ष्य | कंटेनर रनटाइम सॉकेट माउंट अस्वीकार करें। |
sandbox.containers.denyUnconfinedProfiles |
कंटेनर सुरक्षा प्रोफ़ाइल पोस्चर | अप्रतिबंधित कंटेनर सुरक्षा प्रोफ़ाइल अस्वीकार करें। |
sandbox.browser.requireCdpSourceRange |
सैंडबॉक्स ब्राउज़र CDP स्रोत सीमा | ब्राउज़र CDP एक्सपोज़र द्वारा स्रोत सीमा घोषित करना आवश्यक बनाएँ। |
नीति अनुपस्थित sandbox.mode को उसका अंतर्निहित डिफ़ॉल्ट off मानती है, इसलिए
sandbox.requireMode किसी नए या गैर-कॉन्फ़िगर किए गए सैंडबॉक्स को
["all"] जैसी अनुमत-सूची से बाहर रिपोर्ट करता है।
डेटा प्रबंधन
| नीति फ़ील्ड | देखी गई स्थिति | कब उपयोग करें |
|---|---|---|
dataHandling.sensitiveLogging.requireRedaction |
logging.redactSensitive |
logging.redactSensitive: "off" को अस्वीकार करने के लिए true पर सेट करें। |
dataHandling.telemetry.denyContentCapture |
diagnostics.otel.captureContent |
टेलीमेट्री सामग्री कैप्चर अस्वीकार करने के लिए true पर सेट करें। |
dataHandling.retention.requireSessionMaintenance |
session.maintenance.mode |
प्रभावी सत्र रखरखाव मोड enforce आवश्यक बनाने के लिए true पर सेट करें। |
dataHandling.memory.denySessionTranscriptIndexing |
memory.qmd.sessions.enabled, memory.search.experimental.sessionMemory और प्रति-एजेंट ओवरराइड |
मेमोरी में सत्र ट्रांस्क्रिप्ट इंडेक्सिंग अस्वीकार करने के लिए true पर सेट करें। |
सीक्रेट
| नीति फ़ील्ड | देखी गई स्थिति | कब उपयोग करें |
|---|---|---|
secrets.requireManagedProviders |
कॉन्फ़िगरेशन SecretRefs और secrets.providers.* घोषणाएँ |
SecretRefs द्वारा घोषित प्रोवाइडर की ओर संकेत करना आवश्यक बनाने के लिए true पर सेट करें। |
secrets.denySources |
सीक्रेट प्रोवाइडर स्रोत और SecretRef स्रोत | exec, file या किसी अन्य कॉन्फ़िगर किए गए स्रोत नाम जैसे स्रोतों को अस्वीकार करें। |
secrets.allowInsecureProviders |
असुरक्षित सीक्रेट-प्रोवाइडर पोस्चर फ़्लैग | असुरक्षित पोस्चर चुनने वाले प्रोवाइडर को अस्वीकार करने के लिए false पर सेट करें। |
Exec अनुमोदन
Exec-अनुमोदन जाँच रनटाइम exec-approvals.json आर्टिफ़ैक्ट पढ़ती हैं:
डिफ़ॉल्ट रूप से ~/.openclaw/exec-approvals.json, या
OPENCLAW_STATE_DIR सेट होने पर $OPENCLAW_STATE_DIR/exec-approvals.json।
execApprovals.defaults.* या execApprovals.agents.* के अंतर्गत पोस्चर नियमों को
पठनीय आर्टिफ़ैक्ट प्रमाण आवश्यक होता है; अनुपस्थित या अमान्य आर्टिफ़ैक्ट को
सर्वोत्तम-प्रयास पास के बजाय अप्रेक्षणीय प्रमाण के रूप में रिपोर्ट किया जाता है। पठनीय होने पर, छोड़े गए
फ़ील्ड रनटाइम डिफ़ॉल्ट प्राप्त करते हैं: अनुपस्थित defaults.security, full होता है, और
अनुपस्थित एजेंट सुरक्षा वही डिफ़ॉल्ट प्राप्त करती है। प्रमाण में defaults,
agents.*, agents.*.allowlist[].pattern, वैकल्पिक argPattern, प्रभावी
autoAllowSkills पोस्चर और प्रविष्टि स्रोत शामिल होते हैं—सॉकेट पथ/टोकन,
commandText, lastUsedCommand, रिज़ॉल्व किए गए पथ या टाइमस्टैम्प कभी नहीं।
| नीति फ़ील्ड | देखी गई स्थिति | कब उपयोग करें |
|---|---|---|
execApprovals.requireFile |
सक्रिय रनटाइम exec-approvals.json पथ |
अनुमोदन आर्टिफ़ैक्ट का मौजूद होना और पार्स होना आवश्यक करने के लिए true पर सेट करें। |
execApprovals.defaults.allowSecurity |
defaults.security, डिफ़ॉल्ट रूप से full |
केवल अनुमोदित डिफ़ॉल्ट अनुमोदन सुरक्षा मोड की अनुमति दें। |
execApprovals.agents.allowSecurity |
agents.*.security, डिफ़ॉल्ट इनहेरिट करते हुए |
केवल अनुमोदित प्रति-एजेंट प्रभावी अनुमोदन सुरक्षा मोड की अनुमति दें। |
execApprovals.agents.allowAutoAllowSkills |
defaults.autoAllowSkills और agents.*.autoAllowSkills, रनटाइम डिफ़ॉल्ट इनहेरिट करते हुए |
अंतर्निहित Skills CLI अनुमोदन के बिना सख्त मैन्युअल अनुमति-सूचियाँ आवश्यक करने के लिए false पर सेट करें। |
execApprovals.agents.allowlist.expected |
समेकित agents.*.allowlist[] पैटर्न और वैकल्पिक argPattern प्रविष्टियाँ |
अनुमोदन अनुमति-सूची का समीक्षित पैटर्न सेट से मेल खाना आवश्यक करें। |
उदाहरण: अनुमोदन आर्टिफ़ैक्ट आवश्यक करें, उदार डिफ़ॉल्ट अस्वीकार करें, और चयनित एजेंटों के लिए केवल समीक्षित exec अनुमोदन स्थिति की अनुमति दें।
{ "execApprovals": { "requireFile": true, "defaults": { // सुरक्षा मोड: "deny", "allowlist", या "full"। // यह डिफ़ॉल्ट केवल कड़ी पाबंदी वाली अस्वीकार स्थिति की अनुमति देता है। "allowSecurity": ["deny"], }, }, "scopes": { "restricted-shell": { "agentIds": ["family-agent", "groups-agent"], "execApprovals": { "agents": { // चयनित एजेंट समीक्षित अनुमति-सूची स्थिति का उपयोग कर सकते हैं, लेकिन "full" का नहीं। "allowSecurity": ["allowlist"], // false का अर्थ है कि Skills CLI को autoAllowSkills द्वारा अंतर्निहित रूप से // अनुमोदित होने के बजाय समीक्षित अनुमति-सूची में दिखाई देना आवश्यक है। "allowAutoAllowSkills": false, "allowlist": { "expected": [ // सरल प्रविष्टि: बिना argPattern वाला सटीक समीक्षित निष्पादन-योग्य पैटर्न। "travel-hub", // सीमित प्रविष्टि: पैटर्न और समीक्षित आर्ग्युमेंट रेगुलर एक्सप्रेशन। { "pattern": "calendar-cli", "argPattern": "^sync\\b" }, "/bin/date", ], }, }, }, }, },}प्रमाणीकरण प्रोफ़ाइल
| नीति फ़ील्ड | देखी गई स्थिति | कब उपयोग करें |
|---|---|---|
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.entries.*.tools.profile |
केवल minimal, messaging, या coding जैसी टूल प्रोफ़ाइल आईडी की अनुमति दें। |
tools.fs.requireWorkspaceOnly |
tools.fs.workspaceOnly और प्रति-एजेंट tools.fs ओवरराइड |
केवल कार्यक्षेत्र फ़ाइल-सिस्टम टूल स्थिति आवश्यक करने के लिए true पर सेट करें। |
tools.exec.allowSecurity |
tools.exec.security और प्रति-एजेंट exec सुरक्षा |
केवल deny या allowlist जैसे exec सुरक्षा मोड की अनुमति दें। |
tools.exec.requireAsk |
tools.exec.ask और प्रति-एजेंट exec पूछताछ मोड |
always जैसी अनुमोदन स्थिति आवश्यक करें। |
tools.exec.allowHosts |
tools.exec.host और प्रति-एजेंट exec होस्ट रूटिंग |
केवल sandbox जैसे exec होस्ट रूटिंग मोड की अनुमति दें। |
tools.elevated.allow |
tools.elevated.enabled और प्रति-एजेंट उन्नत स्थिति |
उन्नत टूल मोड को अक्षम रखना आवश्यक करने के लिए false पर सेट करें। |
tools.alsoAllow.expected |
tools.alsoAllow और प्रति-एजेंट tools.alsoAllow |
सटीक alsoAllow प्रविष्टियाँ आवश्यक करें और अनुपलब्ध या अनपेक्षित अतिरिक्त टूल अनुदानों की रिपोर्ट करें। |
tools.denyTools |
tools.deny और agents.entries.*.tools.deny |
कॉन्फ़िगर की गई टूल अस्वीकार-सूचियों में group:runtime और group:fs जैसी टूल आईडी या समूह शामिल होना आवश्यक करें। |
जाँच चलाएँ
लेखन के दौरान केवल-नीति जाँच चलाएँ:
openclaw policy checkopenclaw policy check --jsonopenclaw policy check --severity-min errorpolicy check केवल नीति जाँच सेट चलाता है और साक्ष्य, निष्कर्ष,
तथा सत्यापन हैश उत्सर्जित करता है। Policy Plugin सक्षम होने पर यही निष्कर्ष
openclaw doctor --lint में भी दिखाई देते हैं।
ऑपरेटर नीति फ़ाइल की तुलना लिखित बेसलाइन से करें:
openclaw policy compare --baseline official.policy.jsoncopenclaw policy compare --baseline official.policy.jsonc --policy policy.jsonc --jsonpolicy compare नीति-फ़ाइल सिंटैक्स की जाँच नीति-फ़ाइल सिंटैक्स के विरुद्ध करता है; यह
रनटाइम स्थिति, साक्ष्य, क्रेडेंशियल या सीक्रेट की जाँच नहीं करता। यह वही
नियम मेटाडेटा उपयोग करता है जो स्कोप्ड ओवरले को नियंत्रित करता है: अनुमति-सूचियाँ समान या
अधिक संकीर्ण रहनी चाहिए, अस्वीकार-सूचियाँ समान या अधिक व्यापक रहनी चाहिए, आवश्यक बूलियन को
अपना मान बनाए रखना चाहिए, क्रमबद्ध स्ट्रिंग केवल कॉन्फ़िगर किए गए क्रम के
अधिक सख्त छोर की ओर जा सकती हैं, और सटीक सूचियाँ मेल खानी चाहिए। बेसलाइन
संगठन द्वारा लिखित नीति हो सकती है; जाँची गई नीति अधिक सख्त मान या
अतिरिक्त नियम जोड़ सकती है। शीर्ष-स्तरीय जाँचा गया नियम स्कोप्ड बेसलाइन नियम को तब संतुष्ट कर सकता है जब
वह समान या अधिक प्रतिबंधात्मक हो। फ़ाइलों के बीच स्कोप नामों का मेल खाना
आवश्यक नहीं है; तुलना चयनकर्ता (agentIds/channelIds) और फ़ील्ड के आधार पर होती है।
रूटिंग प्रोब के लिए, प्रत्येक बेसलाइन प्रोब आईडी को उसी रूट
और अपेक्षित एजेंट के साथ रहना आवश्यक है। जाँची गई नीति प्रोब जोड़ सकती है या matchedBy को संकीर्ण कर सकती है, लेकिन
किसी प्रोब को हटाना, उसका रूट या एजेंट बदलना, या उसके स्वीकृत मिलान
प्रकारों को व्यापक करना कमज़ोर है।
स्वच्छ तुलना (--json):
{ "ok": true, "baselinePath": "official.policy.jsonc", "policyPath": "policy.jsonc", "rulesChecked": 3, "findings": []}स्वच्छ policy check --json आउटपुट में स्थिर हैश शामिल होते हैं, जिन्हें ऑपरेटर या
पर्यवेक्षक रिकॉर्ड कर सकता है:
{ "ok": true, "attestation": { "policy": { "path": "policy.jsonc", "hash": "sha256:..." }, "workspace": { "scope": "policy", "hash": "sha256:..." }, "findingsHash": "sha256:...", "attestationHash": "sha256:..." }, "checksRun": 5, "checksSkipped": 0, "findings": []}नीति कॉन्फ़िगर करें
नीति कॉन्फ़िग plugins.entries.policy.config के अंतर्गत रहता है।
{ "plugins": { "entries": { "policy": { "enabled": true, "config": { "enabled": true, "path": "policy.jsonc", "workspaceRepairs": false, "expectedHash": "sha256:...", "expectedAttestationHash": "sha256:...", }, }, }, },}| सेटिंग | उद्देश्य |
|---|---|
enabled |
policy.jsonc के मौजूद होने से पहले भी नीति जाँच सक्षम करें। |
workspaceRepairs |
doctor --fix को नीति-प्रबंधित कार्यक्षेत्र सेटिंग संपादित करने की अनुमति दें। |
expectedHash |
अनुमोदित नीति आर्टिफ़ैक्ट के लिए वैकल्पिक हैश-लॉक। |
expectedAttestationHash |
पिछली स्वीकृत स्वच्छ नीति जाँच के लिए वैकल्पिक हैश-लॉक। |
path |
नीति आर्टिफ़ैक्ट का कार्यक्षेत्र-सापेक्ष स्थान। |
Plugin को इंस्टॉल रखते हुए किसी कार्यक्षेत्र के लिए नीति
जाँच अक्षम करने हेतु plugins.entries.policy.config.enabled को false पर सेट करें।
नीति स्थिति स्वीकार करें
उदाहरण JSON आउटपुट:
{ "ok": true, "attestation": { "checkedAt": "2026-05-10T20:00:00.000Z", "policy": { "path": "policy.jsonc", "hash": "sha256:..." }, "workspace": { "scope": "policy", "hash": "sha256:..." }, "findingsHash": "sha256:...", "attestationHash": "sha256:..." }, "evidence": { "channels": [ { "id": "telegram", "provider": "telegram", "source": "oc://openclaw.config/channels/telegram", "enabled": false } ], "mcpServers": [ { "id": "docs", "transport": "stdio", "source": "oc://openclaw.config/mcp/servers/docs", "command": "npx" } ], "modelProviders": [ { "id": "openai", "source": "oc://openclaw.config/models/providers/openai" } ], "modelRefs": [ { "ref": "openai/gpt-5.6-sol", "provider": "openai", "model": "gpt-5.6-sol", "source": "oc://openclaw.config/agents/defaults/model" } ], "network": [ { "id": "browser-private-network", "source": "oc://openclaw.config/browser/ssrfPolicy/dangerouslyAllowPrivateNetwork", "value": false } ], "gatewayExposure": [ { "id": "gateway-bind", "kind": "bind", "source": "oc://openclaw.config/gateway/bind", "value": "loopback", "nonLoopback": false, "explicit": true } ], "agentWorkspace": [ { "id": "agents-defaults-workspace-access", "kind": "workspaceAccess", "source": "oc://openclaw.config/agents/defaults/sandbox/workspaceAccess", "scope": "defaults", "value": "ro", "sandboxMode": "all", "sandboxModeSource": "oc://openclaw.config/agents/defaults/sandbox/mode", "sandboxEnabled": true, "explicit": true }, { "id": "agents-defaults-tool-exec", "kind": "toolDeny", "source": "oc://openclaw.config/tools/deny", "scope": "defaults", "tool": "exec", "denied": true, "explicit": true } ], "secrets": [ { "id": "vault", "kind": "provider", "source": "oc://openclaw.config/secrets/providers/vault", "providerSource": "env" }, { "id": "oc://openclaw.config/models/providers/openai/apiKey", "kind": "input", "source": "oc://openclaw.config/models/providers/openai/apiKey", "provenance": "secretRef", "refSource": "env", "refProvider": "vault" } ], "authProfiles": [ { "id": "github", "source": "oc://openclaw.config/auth/profiles/github", "validMetadata": true, "provider": "github", "mode": "token" } ], "tools": [ { "id": "deploy", "source": "oc://TOOLS.md/tools/deploy", "line": 12, "risk": "critical", "sensitivity": "restricted", "capabilities": ["IRREVERSIBLE_EXTERNAL"] } ] }, "checksRun": 30, "checksSkipped": 0, "findings": []}attestation.policy.hash लिखित नियम आर्टिफ़ैक्ट की पहचान करता है। evidence
जाँचों द्वारा उपयोग की गई प्रेक्षित OpenClaw स्थिति दर्ज करता है, और
workspace.hash उस साक्ष्य पेलोड की पहचान करता है। findingsHash सटीक
निष्कर्ष-समुच्चय की पहचान करता है। checkedAt जाँच चलने का समय दर्ज करता है।
attestationHash स्थिर दावे (नीति हैश, साक्ष्य हैश,
निष्कर्ष हैश और स्वच्छ/अस्वच्छ स्थिति) की पहचान करता है और जानबूझकर checkedAt को
बाहर रखता है, ताकि समान नीति स्थिति हमेशा समान सत्यापन हैश उत्पन्न करे। ये
चार मान मिलकर एक नीति जाँच के लिए ऑडिट ट्यूपल बनाते हैं।
यदि कोई Gateway या पर्यवेक्षक किसी रनटाइम कार्रवाई को अवरुद्ध करने, अनुमोदित करने या उस पर टिप्पणी जोड़ने के लिए नीति का उपयोग करता है,
तो उसे पिछली स्वच्छ जाँच का सत्यापन हैश दर्ज करना चाहिए।
checkedAt ऑडिट लॉग के लिए JSON आउटपुट में रहता है, लेकिन
स्थिर हैश का भाग नहीं है।
नीति स्थिति स्वीकार करने का जीवनचक्र:
policy.jsoncलिखें या उसकी समीक्षा करें।openclaw policy check --jsonचलाएँ।- यदि स्वच्छ हो, तो
attestation.policy.hashकोexpectedHashके रूप में दर्ज करें। attestation.attestationHashकोexpectedAttestationHashके रूप में दर्ज करें।- CI या रिलीज़ गेट में
openclaw doctor --lintदोबारा चलाएँ।
यदि नीति नियम जानबूझकर बदले जाते हैं, तो स्वच्छ जाँच से दोनों स्वीकृत हैश
अपडेट करें। यदि केवल कार्यस्थान सेटिंग बदलती हैं (नीति समान रहती है),
तो सामान्यतः केवल expectedAttestationHash बदलता है।
agents.workspace नियमों को सक्षम या अपग्रेड करने से कार्यस्थान हैश और सत्यापन हैश में
agentWorkspace साक्ष्य जुड़ता है; नया साक्ष्य जाँचें और
सक्षम करने के बाद स्वीकृत सत्यापन हैश रीफ़्रेश करें। टूल पोस्चर नियमों को सक्षम या अपग्रेड करने से
इसी प्रकार toolPosture साक्ष्य जुड़ता है।
openclaw policy watch जाँच दोबारा चलाता है और यह रिपोर्ट करता है कि वर्तमान साक्ष्य कब
expectedAttestationHash से मेल खाना बंद कर देता है:
openclaw policy watch --jsonएकल विचलन मूल्यांकन की आवश्यकता वाली CI या स्क्रिप्ट में --once का उपयोग करें।
--once के बिना, यह डिफ़ॉल्ट रूप से हर दो सेकंड में पोल करता है; अंतराल बदलने के लिए
--interval-ms का उपयोग करें।
निष्कर्ष
| जाँच आईडी | निष्कर्ष |
|---|---|
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/routing-bindings-required |
नीति के लिए चैनल रूट बाइंडिंग आवश्यक है, लेकिन कोई भी कॉन्फ़िगर नहीं है। |
policy/routing-binding-channel-unconfigured |
किसी रूट बाइंडिंग में ऐसा चैनल नामित है जो channels.* में अनुपस्थित है। |
policy/routing-agent-mismatch |
लिखित रूट किसी भिन्न एजेंट पर रिज़ॉल्व होता है। |
policy/routing-match-kind-mismatch |
लिखित रूट अनपेक्षित बाइंडिंग विशिष्टता पर मेल खाता है। |
policy/ingress-dm-policy-unapproved |
किसी चैनल की DM नीति, नीति की अनुमत-सूची से बाहर है। |
policy/ingress-dm-scope-unapproved |
session.dmScope नीति द्वारा आवश्यक DM पृथक्करण दायरे से मेल नहीं खाता। |
policy/ingress-open-groups-denied |
किसी चैनल की समूह नीति open है, जबकि नीति खुले समूह प्रवेश को अस्वीकार करती है। |
policy/ingress-group-mention-required |
कोई चैनल या समूह प्रविष्टि उल्लेख गेट अक्षम करती है, जबकि नीति के लिए वे आवश्यक हैं। |
policy/gateway-non-loopback-bind |
नीति द्वारा अस्वीकार किए जाने पर भी Gateway बाइंड स्थिति गैर-लूपबैक एक्सपोज़र की अनुमति देती है। |
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 |
Gateway HTTP URL-फ़ेच इनपुट में आवश्यक URL अनुमत-सूची नहीं है। |
policy/gateway-node-command-denied |
नीति द्वारा अस्वीकृत Node कमांड को OpenClaw कॉन्फ़िग द्वारा अस्वीकृत नहीं किया गया है। |
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 |
निष्पादन सुरक्षा मोड नीति की अनुमत-सूची से बाहर है। |
policy/tools-exec-ask-unapproved |
निष्पादन पूछताछ मोड नीति की अनुमत-सूची से बाहर है। |
policy/tools-exec-host-unapproved |
निष्पादन होस्ट रूटिंग नीति की अनुमत-सूची से बाहर है। |
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 |
सैंडबॉक्स बैकएंड नीति की अनुमत-सूची से बाहर है। |
policy/sandbox-container-posture-unobservable |
ऐसे बैकएंड के लिए कंटेनर स्थिति नियम सक्षम है जो उसका अवलोकन नहीं कर सकता। |
policy/sandbox-container-host-network-denied |
कंटेनर-समर्थित सैंडबॉक्स या ब्राउज़र होस्ट नेटवर्क मोड का उपयोग करता है। |
policy/sandbox-container-namespace-join-denied |
कंटेनर-समर्थित सैंडबॉक्स या ब्राउज़र किसी अन्य कंटेनर नेमस्पेस से जुड़ता है। |
policy/sandbox-container-mount-mode-required |
कंटेनर-समर्थित सैंडबॉक्स या ब्राउज़र माउंट केवल-पढ़ने योग्य नहीं है। |
policy/sandbox-container-runtime-socket-mount |
कंटेनर-समर्थित सैंडबॉक्स या ब्राउज़र माउंट कंटेनर रनटाइम सॉकेट को एक्सपोज़ करता है। |
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 |
कॉन्फ़िगर किए गए निष्पादन अनुमोदन आर्टिफ़ैक्ट को पार्स नहीं किया जा सकता। |
policy/exec-approvals-default-security-unapproved |
निष्पादन अनुमोदन डिफ़ॉल्ट ऐसे सुरक्षा मोड का उपयोग करते हैं जो नीति की अनुमत-सूची से बाहर है। |
policy/exec-approvals-agent-security-unapproved |
किसी प्रति-एजेंट प्रभावी निष्पादन अनुमोदन का सुरक्षा मोड अनुमत-सूची से बाहर है। |
policy/exec-approvals-auto-allow-skills-enabled |
कोई निष्पादन अनुमोदन एजेंट कौशल CLI को अंतर्निहित रूप से स्वतः अनुमति देता है, जबकि नीति इसे अस्वीकार करती है। |
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 (वह लिखित नियम जिसने इसे निष्कर्ष बनाया) दोनों शामिल हो सकते हैं।
आज दोनों oc:// पता स्ट्रिंग हैं, लेकिन फ़ील्ड नाम पते के प्रारूप के बजाय नीति में
भूमिका का वर्णन करते हैं।
निष्कर्षों के उदाहरण:
{ "checkId": "policy/channels-denied-provider", "severity": "error", "message": "चैनल 'telegram' अस्वीकृत प्रदाता 'telegram' का उपयोग करता है।", "source": "policy", "path": "openclaw config", "ocPath": "oc://openclaw.config/channels/telegram", "target": "oc://openclaw.config/channels/telegram", "requirement": "oc://policy.jsonc/channels/denyRules/#0", "fixHint": "इस कार्यस्थान के लिए Telegram स्वीकृत नहीं है।"}{ "checkId": "policy/tools-missing-risk-level", "severity": "error", "message": "TOOLS.md टूल 'deploy' का कोई स्पष्ट जोखिम वर्गीकरण नहीं है।", "source": "policy", "path": "TOOLS.md", "line": 12, "ocPath": "oc://TOOLS.md/tools/deploy", "target": "oc://TOOLS.md/tools/deploy", "requirement": "oc://policy.jsonc/tools/requireMetadata"}{ "checkId": "policy/mcp-unapproved-server", "severity": "error", "message": "MCP सर्वर 'remote' नीति की अनुमत-सूची में नहीं है।", "source": "policy", "path": "openclaw config", "ocPath": "oc://openclaw.config/mcp/servers/remote", "target": "oc://openclaw.config/mcp/servers/remote", "requirement": "oc://policy.jsonc/mcp/servers/allow"}{ "checkId": "policy/models-unapproved-provider", "severity": "error", "message": "मॉडल संदर्भ 'anthropic/claude-sonnet-4.7' अस्वीकृत प्रदाता 'anthropic' का उपयोग करता है।", "source": "policy", "path": "openclaw config", "ocPath": "oc://openclaw.config/agents/defaults/model/fallbacks/#0", "target": "oc://openclaw.config/agents/defaults/model/fallbacks/#0", "requirement": "oc://policy.jsonc/models/providers/allow"}{ "checkId": "policy/network-private-access-enabled", "severity": "error", "message": "नेटवर्क सेटिंग 'browser-private-network' निजी-नेटवर्क पहुँच की अनुमति देती है।", "source": "policy", "path": "openclaw config", "ocPath": "oc://openclaw.config/browser/ssrfPolicy/dangerouslyAllowPrivateNetwork", "target": "oc://openclaw.config/browser/ssrfPolicy/dangerouslyAllowPrivateNetwork", "requirement": "oc://policy.jsonc/network/privateNetwork/allow"}{ "checkId": "policy/gateway-non-loopback-bind", "severity": "error", "message": "Gateway बाइंड सेटिंग 'gateway-bind' गैर-लूपबैक एक्सपोज़र की अनुमति देती है।", "source": "policy", "path": "openclaw config", "ocPath": "oc://openclaw.config/gateway/bind", "target": "oc://openclaw.config/gateway/bind", "requirement": "oc://policy.jsonc/gateway/exposure/allowNonLoopbackBind"}{ "checkId": "policy/gateway-node-command-denied", "severity": "error", "message": "Gateway Node कमांड 'system.run' नीति द्वारा अस्वीकृत है, लेकिन OpenClaw कॉन्फ़िगरेशन द्वारा अस्वीकृत नहीं है।", "source": "policy", "path": "openclaw config", "ocPath": "oc://openclaw.config/gateway/nodes/commands/deny", "target": "oc://openclaw.config/gateway/nodes/commands/deny", "requirement": "oc://policy.jsonc/gateway/nodes/denyCommands", "fixHint": "'system.run' को gateway.nodes.commands.deny में जोड़ें या समीक्षा के बाद नीति अपडेट करें।"}{ "checkId": "policy/agents-workspace-access-denied", "severity": "error", "message": "agents.defaults सैंडबॉक्स workspaceAccess 'rw' की नीति द्वारा अनुमति नहीं है।", "source": "policy", "path": "openclaw config", "ocPath": "oc://openclaw.config/agents/defaults/sandbox/workspaceAccess", "target": "oc://openclaw.config/agents/defaults/sandbox/workspaceAccess", "requirement": "oc://policy.jsonc/agents/workspace/allowedAccess"}सुधार
doctor --lint और policy check केवल-पढ़ने योग्य हैं।
doctor --fix नीति-प्रबंधित कार्यस्थान सेटिंग्स को केवल तभी संपादित करता है, जब
workspaceRepairs स्पष्ट रूप से सक्षम हो; अन्यथा जाँचें बताती हैं कि वे क्या
सुधारेंगी और सेटिंग्स को अपरिवर्तित छोड़ देती हैं।
इस संस्करण में, सुधार channels.denyRules द्वारा अस्वीकृत चैनलों को अक्षम कर सकता है और
नीचे सूचीबद्ध स्वचालित दायरा-संकुचन सुधार लागू कर सकता है। workspaceRepairs को
नीति फ़ाइल की समीक्षा के बाद ही सक्षम करें, क्योंकि कोई मान्य नियम
कार्यस्थान कॉन्फ़िगरेशन बदल सकता है:
- जब वैश्विक नीति उन्नत टूल को प्रतिबंधित करती है, तब
tools.elevated.enabled=falseसेट करें - जब नीति के अनुसार उन टूल को अस्वीकृत करना आवश्यक हो, तब अनुपस्थित आवश्यक-अस्वीकृति टूल आईडी को
tools.denyयाagents.entries.*.tools.denyमें जोड़ें - असुरक्षित
gateway.controlUi.*टॉगल कोfalseपर सेट करें - जब नीति दूरस्थ Gateway मोड को अस्वीकृत करती है, तब
gateway.mode=localसेट करें - जब नीति Gateway HTTP API एंडपॉइंट को अस्वीकृत करती है, तब रिपोर्ट किए गए
gateway.http.endpoints.*.enabledपथों कोfalseपर सेट करें - जब नीति खुले समूह इनग्रेस को अस्वीकृत करती है, तब रिपोर्ट किए गए चैनल इनग्रेस
groupPolicyपथों कोallowlistपर सेट करें - जब नीति के अनुसार समूह उल्लेख आवश्यक हों, तब रिपोर्ट किए गए चैनल इनग्रेस
requireMentionपथों कोtrueपर सेट करें - जब नीति के अनुसार संवेदनशील लॉगिंग
रिडैक्शन आवश्यक हो, तब
logging.redactSensitive=toolsसेट करें - जब नीति टेलीमेट्री सामग्री कैप्चर को अस्वीकृत करती है, तब
diagnostics.otel.captureContent=false, या ऑब्जेक्ट-रूप टेलीमेट्री कैप्चर सेटिंग्स के लिएdiagnostics.otel.captureContent.enabled=falseसेट करें
दायरा-निर्धारित उन्नत-टूल सुधार केवल पहचान तक सीमित हैं। जब निष्कर्ष साझा लॉगिंग या टेलीमेट्री कॉन्फ़िगरेशन की रिपोर्ट करता है, तब दायरा-निर्धारित डेटा-प्रबंधन सुधार भी छोड़ दिए जाते हैं, क्योंकि साझा सेटिंग बदलने से दायरा-निर्धारित नीति लक्ष्य के अतिरिक्त अन्य भी प्रभावित होंगे।
जब निष्कर्ष इनहेरिट किए गए रूट tools.deny की रिपोर्ट करता है, तब दायरा-निर्धारित आवश्यक-अस्वीकृति सुधार छोड़ दिए जाते हैं, क्योंकि आवश्यक टूल को रूट कॉन्फ़िगरेशन में जोड़ने से
दायरा-निर्धारित नीति लक्ष्य के अतिरिक्त अन्य भी प्रभावित होंगे। एजेंट-स्थानीय आवश्यक-अस्वीकृति सुधार
रिपोर्ट किए गए agents.entries.*.tools.deny पथ को अपडेट कर सकते हैं।
जब निष्कर्ष इनहेरिट किए गए channels.defaults.* की रिपोर्ट करता है, तब दायरा-निर्धारित चैनल इनग्रेस सुधार छोड़ दिए जाते हैं, क्योंकि साझा चैनल डिफ़ॉल्ट बदलने से
दायरा-निर्धारित नीति लक्ष्य के अतिरिक्त अन्य भी प्रभावित होंगे। Gateway HTTP URL-फ़ेच अनुमतिसूची के निष्कर्ष
मैन्युअल रहते हैं, क्योंकि स्वचालित सुधार सही एंडपॉइंट URL
अनुमतिसूची मान नहीं चुन सकता।
Gateway बाइंड और Node-कमांड निष्कर्षों के लिए समीक्षा आवश्यक रहती है। जब
policy/gateway-non-loopback-bind या policy/gateway-node-command-denied
को किसी कॉन्फ़िगरेशन पथ से मैप किया जा सकता है, तब doctor --fix प्रस्तावित
gateway.bind या gateway.nodes.commands.deny परिवर्तन को छोड़े गए पूर्वावलोकन
मार्गदर्शन के रूप में रिपोर्ट करता है। यह परिवर्तन लागू नहीं करता, और निष्कर्ष को तब तक
सुधारा हुआ नहीं माना जाता, जब तक कोई ऑपरेटर कॉन्फ़िगरेशन या नीति की समीक्षा करके उसे अपडेट नहीं करता।
{ "plugins": { "entries": { "policy": { "config": { "workspaceRepairs": true, }, }, }, },}निकास कोड
| कमांड | 0 |
1 |
2 |
|---|---|---|---|
policy check |
सीमा पर कोई निष्कर्ष नहीं। | एक या अधिक निष्कर्ष सीमा तक पहुँचे। | आर्ग्युमेंट या रनटाइम विफलता। |
policy compare |
नीति फ़ाइल कम-से-कम बेसलाइन जितनी सख्त है। | नीति फ़ाइल अमान्य है, अनुपस्थित है, या बेसलाइन नियमों से कमज़ोर है। | आर्ग्युमेंट या रनटाइम विफलता। |
policy watch |
कोई निष्कर्ष नहीं और स्वीकृत हैश वर्तमान है। | निष्कर्ष मौजूद हैं या स्वीकृत सत्यापन पुराना है। | आर्ग्युमेंट या रनटाइम विफलता। |