प्लेनटेक्स्ट अब भी काम करता है। SecretRefs प्रत्येक क्रेडेंशियल के लिए वैकल्पिक हैं।
रनटाइम मॉडल
- Secrets अनुरोध पथों पर विलंबित रूप से नहीं, बल्कि सक्रियण के दौरान तत्परता से इन-मेमोरी रनटाइम स्नैपशॉट में रिज़ॉल्व होते हैं।
- कोल्ड Gateway स्टार्टअप पुनः प्रयास योग्य SecretRef विफलता को किसी ज्ञात गैर-Gateway स्वामी तक सीमित रखता है, बशर्ते वह स्वामी पृथक्करण का समर्थन करता हो। मैप किए गए स्वामी वर्गों में मॉडल प्रदाता और Skills, मीडिया/TTS/Cron प्रदाता, पात्र प्रमाणीकरण प्रोफ़ाइल, प्रति-एजेंट मेमोरी, सैंडबॉक्स SSH, चैनल खाते और मैनिफ़ेस्ट में घोषित Plugin रूट शामिल हैं। Gateway प्रारंभ होता है, स्वामी को कॉन्फ़िगर-किंतु-अनुपलब्ध के रूप में दर्ज करता है और संशोधित अवनति चेतावनी जारी करता है। Gateway इनग्रेस प्रमाणीकरण, संरचनात्मक रूप से अमान्य रेफ़रेंस या रिज़ॉल्व किए गए मान, विफलता पर बंद होने वाले स्वामी और वे रेफ़रेंस जिनका रनटाइम स्वामी मैप नहीं किया गया है, अब भी स्टार्टअप को विफल करते हैं।
- रीलोड प्रत्येक मैप किए गए स्वामी को स्वतंत्र रूप से सत्यापित करता है, फिर एक परमाण्विक स्नैपशॉट प्रकाशित करता है। स्वस्थ स्वामी रीफ़्रेश होते हैं। कोई पात्र विफल स्वामी अपना अंतिम-ज्ञात-सही मान बनाए रखता है और केवल तभी स्टेल होता है, जब उसकी रेफ़रेंस पहचानें, प्रदाता परिभाषाएँ और पूर्ण गैर-गोपनीय स्वामी अनुबंध अपरिवर्तित हों; बदला हुआ या नया विफल स्वामी कोल्ड हो जाता है। कोई कठोर विफलता रीलोड को अस्वीकार करती है और सक्रिय स्नैपशॉट को सुरक्षित रखती है।
- नीति उल्लंघन (उदाहरण के लिए, SecretRef इनपुट के साथ संयुक्त OAuth-मोड प्रमाणीकरण प्रोफ़ाइल) रनटाइम अदला-बदली से पहले सक्रियण को विफल करते हैं।
- रनटाइम अनुरोध केवल सक्रिय इन-मेमोरी स्नैपशॉट को पढ़ते हैं। मॉडल-प्रदाता SecretRef क्रेडेंशियल निर्गमन तक प्रमाणीकरण स्टोरेज और स्ट्रीम विकल्पों से प्रक्रिया-स्थानीय सेंटिनल के रूप में गुजरते हैं। आउटबाउंड डिलीवरी पथ (Discord उत्तर/थ्रेड डिलीवरी, Telegram कार्रवाई प्रेषण) भी उसी स्नैपशॉट को पढ़ते हैं और प्रत्येक प्रेषण पर रेफ़रेंस को दोबारा रिज़ॉल्व नहीं करते।
निर्गमन-समय इंजेक्शन (सेंटिनल)
SecretRefs द्वारा समर्थित मॉडल-प्रदाता क्रेडेंशियल के लिए, OpenClaw मॉडल-प्रमाणीकरण रिज़ॉल्यूशन के दौरान एक अपारदर्शी, प्रक्रिया-स्थानीय सेंटिनल बनाता है। इसलिए प्रमाणीकरण स्टोरेज, स्ट्रीम विकल्प, SDK कॉन्फ़िगरेशन, लॉग, त्रुटि ऑब्जेक्ट और अधिकांश रनटाइम निरीक्षण प्रदाता क्रेडेंशियल के बजायoc-sent-v1-... जैसा मान देखते हैं। संरक्षित मॉडल फ़ेच और प्रबंधित स्थानीय-प्रदाता स्वास्थ्य प्रोब प्रत्येक अनुरोध के प्रक्रिया से बाहर जाने के ठीक पहले URL और हेडर मानों में ज्ञात सेंटिनल को बदल देते हैं।
अज्ञात सेंटिनल-जैसे मान नेटवर्क गतिविधि से पहले विफलता पर बंद हो जाते हैं। OpenClaw किसी अनरिज़ॉल्व्ड सेंटिनल को प्रदाता तक अग्रेषित करने के बजाय अनुरोध भेजने से मना करता है। अतिरिक्त सुरक्षा उपाय के रूप में रिज़ॉल्व किए गए गोपनीय मान भी सटीक-मान लॉग संशोधन के लिए पंजीकृत किए जाते हैं।
प्रदाता अडैप्टर अपने SDK द्वारा समर्थित नवीनतम इंजेक्शन बिंदु का उपयोग करते हैं:
- कस्टम फ़ेच विकल्प वाले SDK को OpenClaw का संरक्षित फ़ेच मिलता है, इसलिए SDK सेंटिनल बनाए रखता है।
- कस्टम फ़ेच विकल्प के बिना SDK क्लाइंट निर्माण के ठीक पहले सेंटिनल को अनरैप करते हैं। Plugin-स्वामित्व वाली प्रदाता स्ट्रीम और एजेंट हार्नेस अंतिम कोर-स्वामित्व वाले हैंडऑफ़ पर अनरैप करते हैं, क्योंकि वे ट्रांसपोर्ट OpenClaw के संरक्षित फ़ेच को साझा नहीं करते।
OPENCLAW_SECRET_SENTINELS=off सेट करें (0 या false भी स्वीकार किए जाते हैं, अक्षर-स्थिति से निरपेक्ष)। यह किल स्विच सटीक-मान संशोधन पंजीकरण को अक्षम नहीं करता।
एजेंट-अभिगम सीमा
SecretRefs क्रेडेंशियल को कॉन्फ़िगरेशन और जनरेट की गई मॉडल फ़ाइलों में स्थायी होने से रोकते हैं, लेकिन वे प्रक्रिया-पृथक्करण सीमा नहीं हैं। एजेंट द्वारा पढ़े जा सकने वाले पथ में डिस्क पर छोड़ा गया प्लेनटेक्स्ट क्रेडेंशियल अब भी फ़ाइल या शेल टूल के माध्यम से पढ़ा जा सकता है, जिससे API-स्तरीय संशोधन बायपास हो जाता है। उन उत्पादन परिनियोजनों के लिए जहाँ एजेंट-अभिगम योग्य फ़ाइलें दायरे में हैं, माइग्रेशन को केवल तभी पूर्ण मानें जब ये सभी शर्तें पूरी हों:- समर्थित क्रेडेंशियल प्लेनटेक्स्ट मानों के बजाय SecretRefs का उपयोग करते हैं।
- पुराना प्लेनटेक्स्ट अवशेष
openclaw.json,auth-profiles.json,.env, और जनरेट की गईmodels.jsonफ़ाइलों से मिटा दिया गया है। - माइग्रेशन के बाद
openclaw secrets audit --checkस्वच्छ है। - शेष असमर्थित या घूर्णित क्रेडेंशियल OS पृथक्करण, कंटेनर पृथक्करण या बाहरी क्रेडेंशियल प्रॉक्सी द्वारा सुरक्षित हैं।
सक्रिय-सतह फ़िल्टरिंग
SecretRefs केवल प्रभावी रूप से सक्रिय सतहों पर सत्यापित किए जाते हैं:- सक्षम सतहें: मैप किए गए, पृथक किए जा सकने वाले स्वामियों की पुनः प्रयास योग्य विफलताएँ कोल्ड या स्टेल अवनति में प्रवेश करती हैं। कठोर, विफलता पर बंद, Gateway-आवश्यक या अमैप्ड विफलताएँ स्टार्टअप/रीलोड को अवरुद्ध करती हैं।
- निष्क्रिय सतहें: अनरिज़ॉल्व्ड रेफ़रेंस स्टार्टअप/रीलोड को अवरुद्ध नहीं करते; वे एक गैर-घातक
SECRETS_REF_IGNORED_INACTIVE_SURFACEनिदान जारी करते हैं।
निष्क्रिय सतहों के उदाहरण
निष्क्रिय सतहों के उदाहरण
- अक्षम चैनल/खाता प्रविष्टियाँ।
- शीर्ष-स्तरीय चैनल क्रेडेंशियल जिन्हें कोई सक्षम खाता इनहेरिट नहीं करता।
- अक्षम टूल/फ़ीचर सतहें।
- वेब खोज प्रदाता-विशिष्ट कुंजियाँ जिन्हें
tools.web.search.providerद्वारा चयनित नहीं किया गया है। स्वचालित मोड में (प्रदाता अनसेट), स्वतः-पहचान के लिए कुंजियों को प्राथमिकता के क्रम में तब तक देखा जाता है जब तक कोई रिज़ॉल्व न हो जाए; चयन के बाद, गैर-चयनित प्रदाता कुंजियाँ निष्क्रिय होती हैं। - सैंडबॉक्स SSH प्रमाणीकरण सामग्री (
agents.defaults.sandbox.ssh.identityData,certificateData,knownHostsData, और प्रति-एजेंट ओवरराइड) केवल तभी सक्रिय होती है, जब प्रभावी सैंडबॉक्स बैकएंडsshहो और सैंडबॉक्स मोडoffन हो—डिफ़ॉल्ट एजेंट या किसी सक्षम एजेंट के लिए। gateway.remote.token/gateway.remote.passwordSecretRefs सक्रिय होते हैं यदि इनमें से कोई शर्त पूरी हो:gateway.mode=remotegateway.remote.urlकॉन्फ़िगर किया गया हैgateway.tailscale.mode,serveयाfunnelहै- उन रिमोट सतहों के बिना स्थानीय मोड में:
gateway.remote.tokenतब सक्रिय होता है जब टोकन प्रमाणीकरण जीत सकता हो और कोई पर्यावरण/प्रमाणीकरण टोकन कॉन्फ़िगर न हो;gateway.remote.passwordकेवल तभी सक्रिय होता है जब पासवर्ड प्रमाणीकरण जीत सकता हो और कोई पर्यावरण/प्रमाणीकरण पासवर्ड कॉन्फ़िगर न हो।
- स्टार्टअप प्रमाणीकरण रिज़ॉल्यूशन के लिए
gateway.auth.tokenSecretRef तब निष्क्रिय होता है जबOPENCLAW_GATEWAY_TOKENसेट हो, क्योंकि उस रनटाइम के लिए पर्यावरण टोकन इनपुट जीतता है।
Gateway प्रमाणीकरण सतह निदान
जबgateway.auth.token, gateway.auth.password, gateway.remote.token, या gateway.remote.password पर SecretRef सेट होता है, तो Gateway स्टार्टअप/रीलोड कोड SECRETS_GATEWAY_AUTH_SURFACE के अंतर्गत सतह की स्थिति लॉग करता है:
active: SecretRef प्रभावी प्रमाणीकरण सतह का हिस्सा है और इसे रिज़ॉल्व होना आवश्यक है।inactive: कोई अन्य प्रमाणीकरण सतह जीतती है, या रिमोट प्रमाणीकरण अक्षम/निष्क्रिय है।
ऑनबोर्डिंग रेफ़रेंस पूर्व-जाँच
इंटरैक्टिव ऑनबोर्डिंग में SecretRef स्टोरेज चुनने पर सहेजने से पहले पूर्व-जाँच सत्यापन चलता है:- पर्यावरण रेफ़रेंस: पर्यावरण चर का नाम सत्यापित करता है और पुष्टि करता है कि सेटअप के दौरान कोई गैर-रिक्त मान दिखाई दे रहा है।
- प्रदाता रेफ़रेंस (
fileयाexec): प्रदाता चयन सत्यापित करता है,idको रिज़ॉल्व करता है और रिज़ॉल्व किए गए मान का प्रकार जाँचता है। - क्विकस्टार्ट प्रवाह: जब
gateway.auth.tokenपहले से SecretRef हो, तो ऑनबोर्डिंग समान त्वरित-विफलता गेट का उपयोग करके प्रोब/डैशबोर्ड बूटस्ट्रैप से पहले उसे (env,file, औरexecरेफ़रेंस के लिए) रिज़ॉल्व करती है।
SecretRef अनुबंध
हर स्थान पर एक ही ऑब्जेक्ट आकार:- env
- file
- exec
provider,^[a-z][a-z0-9_-]{0,63}$से मेल खाना चाहिएid,^[A-Z][A-Z0-9_]{0,127}$से मेल खाना चाहिए
प्रदाता कॉन्फ़िगरेशन
secrets.providers के अंतर्गत प्रदाता परिभाषित करें:
पर्यावरण प्रदाता
पर्यावरण प्रदाता
allowlistके माध्यम से वैकल्पिक सटीक-नाम अनुमति सूची।- अनुपलब्ध या रिक्त पर्यावरण मान रिज़ॉल्यूशन को विफल करते हैं।
फ़ाइल प्रदाता
फ़ाइल प्रदाता
pathपर स्थानीय फ़ाइल पढ़ता है।mode: "json"(डिफ़ॉल्ट) JSON ऑब्जेक्ट पेलोड अपेक्षित करता है औरidको JSON पॉइंटर के रूप में रिज़ॉल्व करता है।mode: "singleValue"रेफ़रेंस आईडी"value"अपेक्षित करता है और फ़ाइल की अपरिष्कृत सामग्री लौटाता है (अंतिम न्यूलाइन हटाकर)।- पथ को स्वामित्व/अनुमति जाँचों में सफल होना चाहिए;
timeoutMs(डिफ़ॉल्ट 5000) औरmaxBytes(डिफ़ॉल्ट 1 MiB) पठन को सीमित करते हैं। - Windows में विफलता पर बंद: यदि पथ के लिए ACL सत्यापन उपलब्ध नहीं है, तो रिज़ॉल्यूशन विफल हो जाता है। केवल विश्वसनीय पथों के लिए, जाँच को बायपास करने हेतु उस प्रदाता पर
allowInsecurePath: trueसेट करें।
Exec प्रदाता
Exec प्रदाता
- कॉन्फ़िगर किए गए निरपेक्ष बाइनरी पथ को बिना किसी शेल के सीधे चलाता है।
- डिफ़ॉल्ट रूप से
commandएक नियमित फ़ाइल होनी चाहिए, सिमलिंक नहीं। सिमलिंक कमांड पथों (उदाहरण के लिए Homebrew शिम) की अनुमति देने के लिएallowSymlinkCommand: trueसेट करें, और इसेtrustedDirs(उदाहरण के लिए["/opt/homebrew"]) के साथ जोड़ें, ताकि केवल पैकेज-मैनेजर पथ ही योग्य हों। timeoutMs(डिफ़ॉल्ट 5000),noOutputTimeoutMs(डिफ़ॉल्टtimeoutMsके बराबर),maxOutputBytes(डिफ़ॉल्ट 1 MiB),env/passEnvअनुमति-सूची औरtrustedDirsका समर्थन करता है।jsonOnlyका डिफ़ॉल्टtrueहै।jsonOnly: falseऔर अनुरोधित एकल आईडी के साथ, सामान्य गैर-JSON stdout को उस आईडी के मान के रूप में स्वीकार किया जाता है।- Windows में विफलता पर बंद: यदि कमांड पथ के लिए ACL सत्यापन उपलब्ध नहीं है, तो रिज़ॉल्यूशन विफल हो जाता है। केवल विश्वसनीय पथों के लिए, जाँच को बायपास करने हेतु उस प्रदाता पर
allowInsecurePath: trueसेट करें। - Plugin-प्रबंधित exec प्रदाता कॉपी किए गए
command/argsके बजायpluginIntegrationका उपयोग कर सकते हैं। OpenClaw स्टार्टअप/रीलोड के दौरान इंस्टॉल किए गए Plugin मैनिफ़ेस्ट से वर्तमान कमांड विवरण रिज़ॉल्व करता है; यदि Plugin अक्षम, हटाया गया या अविश्वसनीय हो, अथवा अब इंटीग्रेशन घोषित न करता हो, तो उस प्रदाता के सक्रिय SecretRefs विफलता पर बंद हो जाते हैं।
code एक वैकल्पिक मशीन-पठनीय निदान है। OpenClaw मान्यता-प्राप्त
कोड NOT_FOUND और AMBIGUOUS_DUPLICATE_KEY को प्रदाता और रेफ़रेंस आईडी के साथ प्रदर्शित करता है। अन्य
कोड और message जैसे मुक्त-रूप फ़ील्ड protocol-v1 संगतता के लिए स्वीकार किए जाते हैं,
लेकिन प्रदर्शित नहीं किए जाते, क्योंकि रिज़ॉल्वर आउटपुट में क्रेडेंशियल सामग्री हो सकती है।फ़ाइल-समर्थित API कुंजियाँ
कॉन्फ़िगरेशन केenv ब्लॉक में file:... स्ट्रिंग न रखें। वह ब्लॉक शाब्दिक और गैर-ओवरराइडिंग है, इसलिए वहाँ file:... कभी रिज़ॉल्व नहीं होता।
इसके बजाय समर्थित क्रेडेंशियल फ़ील्ड पर फ़ाइल SecretRef का उपयोग करें:
mode: "singleValue" के लिए, SecretRef id, "value" है। mode: "json" के लिए, "/providers/xai/apiKey" जैसे निरपेक्ष JSON पॉइंटर का उपयोग करें।
SecretRefs स्वीकार करने वाले फ़ील्ड के लिए SecretRef क्रेडेंशियल सतह देखें।
Exec इंटीग्रेशन के उदाहरण
सेवा खातों, बंडल किए गए एजेंट Skill और समस्या निवारण को शामिल करने वाली समर्पित 1Password मार्गदर्शिका के लिए 1Password देखें।1Password CLI
1Password CLI
Bitwarden Secrets Manager (`bws`)
Bitwarden Secrets Manager (`bws`)
SecretRef आईडी को Bitwarden Secrets Manager आइटम कुंजियों से मैप करने के लिए रिज़ॉल्वर रैपर का उपयोग करें। रिपॉज़िटरी में रिज़ॉल्वर अनुरोधित आईडी को बैच करता है,
scripts/secrets/openclaw-bws-resolver.mjs शामिल है; इसे उस होस्ट पर किसी निरपेक्ष विश्वसनीय पथ में इंस्टॉल या कॉपी करें जो Gateway चलाता है।आवश्यकताएँ:- Gateway होस्ट पर Bitwarden Secrets Manager CLI (
bws) इंस्टॉल हो। BWS_ACCESS_TOKENGateway सेवा के लिए उपलब्ध हो।PATHरिज़ॉल्वर को पास किया गया हो, याBWS_BINको निरपेक्षbwsबाइनरी पथ पर सेट किया गया हो।- स्वयं-होस्ट किए गए Bitwarden इंस्टेंस का उपयोग करते समय परिवेश में
BWS_SERVER_URLसेट हो।
bws secret list चलाता है और मेल खाने वाले सीक्रेट key फ़ील्ड के मान लौटाता है। ऐसी कुंजियों का उपयोग करें जो exec SecretRef आईडी अनुबंध को पूरा करती हों, जैसे openclaw/providers/openai/apiKey; अंडरस्कोर वाली env-var-शैली की कुंजियाँ रिज़ॉल्वर चलने से पहले ही अस्वीकार कर दी जाती हैं। यदि एक से अधिक दृश्यमान Bitwarden सीक्रेट में अनुरोधित कुंजी समान हो, तो रिज़ॉल्वर अनुमान लगाने के बजाय उस आईडी को अस्पष्ट मानकर विफल कर देता है। कॉन्फ़िगरेशन अपडेट करने के बाद रिज़ॉल्वर पथ सत्यापित करें:HashiCorp Vault CLI
HashiCorp Vault CLI
password-store (`pass`)
password-store (`pass`)
SecretRef आईडी को सीधे फिर exec प्रदाता कॉन्फ़िगर करें और सीक्रेट को
pass प्रविष्टियों से मैप करने के लिए छोटे रिज़ॉल्वर रैपर का उपयोग करें। इसे ऐसे निरपेक्ष पथ पर निष्पादन योग्य फ़ाइल के रूप में सहेजें जो आपकी exec-प्रदाता पथ जाँचों में सफल हो, उदाहरण के लिए /usr/local/bin/openclaw-pass-resolver। #!/usr/bin/env node शेबैंग, रिज़ॉल्वर प्रक्रिया के PATH से node को रिज़ॉल्व करता है, इसलिए passEnv में PATH शामिल करें। यदि pass उस PATH पर नहीं है, तो पैरेंट परिवेश में PASS_BIN सेट करें और उसे भी passEnv में शामिल करें:apiKey को pass प्रविष्टि पथ की ओर इंगित करें:pass प्रविष्टि की पहली पंक्ति पर रखें, या इसके बजाय पूर्ण pass show आउटपुट लौटाने के लिए रैपर को अनुकूलित करें। कॉन्फ़िगरेशन अपडेट करने के बाद स्थैतिक ऑडिट और exec रिज़ॉल्वर पथ, दोनों सत्यापित करें:sops
sops
MCP सर्वर परिवेश चर
plugins.entries.acpx.config.mcpServers के माध्यम से कॉन्फ़िगर किए गए MCP सर्वर env vars, SecretInput स्वीकार करते हैं, जिससे API कुंजियाँ और टोकन प्लेनटेक्स्ट कॉन्फ़िगरेशन से बाहर रहते हैं:
${MCP_SERVER_API_KEY} जैसे env-template रेफ़रेंस और SecretRef ऑब्जेक्ट, MCP सर्वर प्रक्रिया शुरू होने से पहले Gateway सक्रियण के दौरान रिज़ॉल्व होते हैं। अन्य SecretRef सतहों की तरह, अनरिज़ॉल्व्ड रेफ़रेंस केवल तभी सक्रियण रोकते हैं जब acpx Plugin प्रभावी रूप से सक्रिय हो।
Sandbox SSH प्रमाणीकरण सामग्री
मुख्यssh Sandbox बैकएंड SSH प्रमाणीकरण सामग्री के लिए भी SecretRefs का समर्थन करता है:
- OpenClaw इन संदर्भों को प्रत्येक SSH कॉल पर विलंबित रूप से नहीं, बल्कि सैंडबॉक्स सक्रियण के दौरान हल करता है।
- हल किए गए मान प्रतिबंधात्मक फ़ाइल अनुमतियों (
0o600) के साथ एक अस्थायी डायरेक्टरी में लिखे जाते हैं और जनरेट किए गए SSH कॉन्फ़िगरेशन में उपयोग होते हैं। - यदि प्रभावी सैंडबॉक्स बैकएंड
sshनहीं है (या सैंडबॉक्स मोडoffहै), तो ये संदर्भ निष्क्रिय रहते हैं और स्टार्टअप को अवरुद्ध नहीं करते।
समर्थित क्रेडेंशियल सतह
प्रामाणिक रूप से समर्थित और असमर्थित क्रेडेंशियल SecretRef क्रेडेंशियल सतह में सूचीबद्ध हैं।रनटाइम में बनाए गए या बदलते रहने वाले क्रेडेंशियल और OAuth रीफ़्रेश सामग्री को केवल-पढ़ने योग्य SecretRef समाधान से जानबूझकर बाहर रखा गया है।
आवश्यक व्यवहार और प्राथमिकता
- संदर्भ के बिना फ़ील्ड: अपरिवर्तित।
- संदर्भ वाला फ़ील्ड: सक्रियण के दौरान सक्रिय सतहों पर आवश्यक।
- यदि प्लेनटेक्स्ट और संदर्भ दोनों मौजूद हैं, तो समर्थित प्राथमिकता पथों पर संदर्भ को प्राथमिकता मिलती है।
- रेडैक्शन सेंटिनल
__OPENCLAW_REDACTED__आंतरिक कॉन्फ़िगरेशन रेडैक्शन/पुनर्स्थापन के लिए आरक्षित है और शाब्दिक रूप से सबमिट किए गए कॉन्फ़िगरेशन डेटा के रूप में अस्वीकार किया जाता है।
SECRETS_REF_OVERRIDES_PLAINTEXT(रनटाइम चेतावनी)REF_SHADOWED(जबauth-profiles.jsonक्रेडेंशियलopenclaw.jsonसंदर्भों पर प्राथमिकता लेते हैं, तब ऑडिट निष्कर्ष)
serviceAccount इनलाइन JSON या SecretRef स्वीकार करता है। Doctor, हटाए जा चुके सहोदर serviceAccountRef को इस प्रामाणिक फ़ील्ड में ले जाता है, जब यह सेट न हो।
सक्रियण ट्रिगर
Secret सक्रियण इन पर चलता है:- स्टार्टअप (प्रीफ़्लाइट और अंतिम सक्रियण)
- कॉन्फ़िगरेशन रीलोड हॉट-अप्लाई पथ
- कॉन्फ़िगरेशन रीलोड रीस्टार्ट-जाँच पथ
secrets.reloadके माध्यम से मैन्युअल रीलोड- Gateway कॉन्फ़िगरेशन लेखन RPC प्रीफ़्लाइट (
config.set/config.apply/config.patch), जो संपादनों को स्थायी करने से पहले सबमिट किए गए कॉन्फ़िगरेशन पेलोड में सक्रिय-सतह SecretRefs को सत्यापित करता है
- सफलता स्नैपशॉट को परमाण्विक रूप से बदल देती है।
- सख्त स्टार्टअप विफलता Gateway स्टार्टअप को रोक देती है।
- कोल्ड स्टार्टअप के दौरान, मैप किए गए और पृथक किए जा सकने वाले गैर-Gateway स्वामी की पुनःप्रयास-योग्य समाधान विफलता स्नैपशॉट को उस सटीक स्वामी के कॉन्फ़िगर-अनुपलब्ध होने के साथ प्रकाशित कर सकती है। उस स्वामी के अनुरोध
SECRET_SURFACE_UNAVAILABLEके साथ विफल होते हैं; स्पष्ट संदर्भ विफल होने के बाद मॉडल-प्रदाता स्वामी एनवायरनमेंट या प्रमाणीकरण-प्रोफ़ाइल क्रेडेंशियल पर फ़ॉलबैक नहीं करते। - रीलोड और रीस्टार्ट-जाँच योग्य मैप किए गए स्वामियों को पृथक करते हैं। अपरिवर्तित प्रदाता परिभाषाओं और अपरिवर्तित पूर्ण गैर-गोपनीय स्वामी अनुबंध वाली अपरिवर्तित संदर्भ पहचानें अपने सटीक अंतिम-ज्ञात-सही मानों को स्टेल रूप में बनाए रखती हैं; बदले हुए या नए कॉन्फ़िगर किए गए अनसुलझे संदर्भ केवल उस स्वामी के लिए कोल्ड प्रकाशित होते हैं। सख्त रीलोड विफलता पहले से सक्रिय स्नैपशॉट को सुरक्षित रखती है।
config.set,config.apply, औरconfig.patchपृथक किए जा सकने वाले स्वामियों के लिए वाक्य-विन्यास की दृष्टि से मान्य अनसुलझे संदर्भ स्वीकार करते हैं और रेडैक्ट की गईdegradedSecretOwnersरिपोर्ट लौटाते हैं। Gateway इनग्रेस प्रमाणीकरण, संरचनात्मक रूप से अमान्य कॉन्फ़िगरेशन या हल किए गए मान, नीति उल्लंघन और अज्ञात स्वामी अब भी डिस्क परिवर्तन से पहले अस्वीकार होते हैं।- किसी अन्य स्वामी के कोल्ड या स्टेल होने पर भी स्वस्थ सहोदर स्वामी सामान्य रूप से हल और प्रकाशित होते हैं।
- आउटबाउंड सहायक/टूल कॉल को स्पष्ट प्रति-कॉल चैनल टोकन देने से SecretRef सक्रियण ट्रिगर नहीं होता; सक्रियण बिंदु स्टार्टअप, रीलोड और स्पष्ट
secrets.reloadही रहते हैं।
अवनत और पुनर्प्राप्त संकेत
स्वस्थ स्थिति के बाद रीलोड-समय सक्रियण विफल होने पर, OpenClaw अवनत secrets स्थिति में प्रवेश करता है और एक-बार के सिस्टम इवेंट तथा लॉग कोड उत्सर्जित करता है:SECRETS_RELOADER_DEGRADEDSECRETS_RELOADER_RECOVERED
- अवनत: स्वस्थ स्वामी रीफ़्रेश होते हैं, स्टेल स्वामी अंतिम-ज्ञात-सही मान बनाए रखते हैं और कोल्ड स्वामी अनुपलब्ध रहते हैं।
- पुनर्प्राप्त: अगले सफल सक्रियण के बाद एक बार उत्सर्जित होता है।
- पहले से अवनत स्थिति में बार-बार होने वाली विफलताएँ चेतावनियाँ लॉग करती हैं, लेकिन इवेंट दोबारा उत्सर्जित नहीं करतीं।
- सख्त स्टार्टअप विफलता कभी अवनत इवेंट उत्सर्जित नहीं करती, क्योंकि रनटाइम कभी सक्रिय नहीं हुआ। कोल्ड स्वामियों वाला सफल स्टार्टअप स्वामी के अवनत होने को लॉग करता है, लेकिन रीलोडर इवेंट उत्सर्जित नहीं करता।
- संदर्भ-सीमित स्टार्टअप और रीलोड विफलताएँ प्रत्येक प्रभावित स्वामी के लिए संरचित
SECRETS_DEGRADEDचेतावनी उत्सर्जित करती हैं। प्रदाता-सीमित आउटेज प्रत्येक स्वामी के लिए प्रदाता विफलता दोहराने के बजाय प्रदाता और प्रभावित स्वामियों की पूर्ण सूची सहित एकSECRETS_PROVIDER_DEGRADEDचेतावनी उत्सर्जित करते हैं। चेतावनियों में रेडैक्ट किया गया कारण,coldयाstaleस्वामी स्थिति औरopenclaw secrets reloadपुनःप्रयास संकेत शामिल होते हैं। इनमें कभी हल किए गए मान या SecretRef आईडी शामिल नहीं होते। openclaw doctorकोल्ड और स्टेल स्वामियों को उनके प्रभावित कॉन्फ़िगरेशन पथों, रेडैक्ट किए गए कारण और पुनःप्रयास मार्गदर्शन के साथ सूचीबद्ध करता है।
कमांड-पथ समाधान
कमांड पथ Gateway स्नैपशॉट RPC के माध्यम से समर्थित SecretRef समाधान का विकल्प चुन सकते हैं। दो व्यापक व्यवहार लागू होते हैं:- सख्त कमांड पथ
- केवल-पढ़ने योग्य कमांड पथ
उदाहरण के लिए
openclaw memory रिमोट-मेमोरी पथ और openclaw qr --remote, जब इसे रिमोट साझा-सीक्रेट संदर्भों की आवश्यकता होती है। ये सक्रिय स्नैपशॉट से पढ़ते हैं और आवश्यक SecretRef अनुपलब्ध होने पर तुरंत विफल होते हैं।- बैकएंड secret रोटेशन के बाद स्नैपशॉट रीफ़्रेश
openclaw secrets reloadद्वारा संभाला जाता है। - इन कमांड पथों द्वारा उपयोग की जाने वाली Gateway RPC विधि:
secrets.resolve।
ऑडिट और कॉन्फ़िगरेशन कार्यप्रवाह
डिफ़ॉल्ट ऑपरेटर प्रवाह:1
वर्तमान स्थिति का ऑडिट करें
2
SecretRefs कॉन्फ़िगर और लागू करें
3
पुनः ऑडिट करें
configure के दौरान लागू करने के बजाय योजना सहेजते हैं, तो पुनः ऑडिट से पहले उस सहेजी गई योजना को openclaw secrets apply --from <plan-path> से लागू करें।
secrets audit
secrets audit
निष्कर्षों में शामिल हैं:
- स्थायी रूप से संग्रहीत प्लेनटेक्स्ट मान (
openclaw.json,auth-profiles.json,.env, और जनरेट किया गयाagents/*/agent/models.json)। - जनरेट की गई
models.jsonप्रविष्टियों में प्लेनटेक्स्ट संवेदनशील प्रदाता हेडर अवशेष। - अनसुलझे संदर्भ।
- प्राथमिकता शैडोइंग (
auth-profiles.jsonकाopenclaw.jsonसंदर्भों पर प्राथमिकता लेना)। - लीगेसी अवशेष (
auth.json, OAuth अनुस्मारक)।
openclaw secrets audit --allow-exec का उपयोग करें।हेडर अवशेष टिप्पणी: संवेदनशील प्रदाता हेडर पहचान नाम-आधारित अनुमान पर आधारित है (सामान्य प्रमाणीकरण/क्रेडेंशियल हेडर नाम और authorization, x-api-key, token, secret, password, और credential जैसे अंश)।secrets configure
secrets configure
इंटरैक्टिव सहायक जो:
- पहले
secrets.providersकॉन्फ़िगर करता है (env/file/exec, जोड़ें/संपादित करें/हटाएँ)। - आपको एक एजेंट स्कोप के लिए
openclaw.jsonऔरauth-profiles.jsonमें समर्थित secret-धारक फ़ील्ड चुनने देता है। - लक्ष्य चयनकर्ता में सीधे नया
auth-profiles.jsonमैपिंग बना सकता है। - SecretRef विवरण (
source,provider,id) कैप्चर करता है। - प्रीफ़्लाइट समाधान चलाता है और तुरंत लागू कर सकता है।
--allow-exec सेट न हो, प्रीफ़्लाइट exec SecretRef जाँच छोड़ देता है। यदि आप सीधे configure --apply से लागू करते हैं और योजना में exec संदर्भ/प्रदाता शामिल हैं, तो लागू करने के चरण के लिए भी --allow-exec सेट रखें।उपयोगी मोड:openclaw secrets configure --providers-onlyopenclaw secrets configure --skip-provider-setupopenclaw secrets configure --agent <id>
configure लागू करने के डिफ़ॉल्ट:- लक्षित प्रदाताओं के लिए
auth-profiles.jsonसे मेल खाते स्थिर क्रेडेंशियल हटाएँ। auth.jsonसे लीगेसी स्थिरapi_keyप्रविष्टियाँ हटाएँ।- प्रभावी स्थिति और सक्रिय-कॉन्फ़िगरेशन
.envफ़ाइलों से मेल खाने वाली ज्ञात secret पंक्तियाँ हटाएँ (जब दोनों पथ मेल खाते हों, तब डुप्लिकेट हटाकर)।
secrets apply
secrets apply
सहेजी गई योजना लागू करें:Exec टिप्पणी: जब तक
--allow-exec सेट न हो, ड्राई-रन exec जाँच छोड़ देता है; लेखन मोड exec SecretRefs/प्रदाताओं वाली योजनाओं को तब तक अस्वीकार करता है, जब तक --allow-exec सेट न हो।सख्त लक्ष्य/पथ अनुबंध विवरण और सटीक अस्वीकृति नियमों के लिए, Secrets Apply योजना अनुबंध देखें।एक-तरफ़ा सुरक्षा नीति
सुरक्षा मॉडल:- लेखन मोड से पहले प्रीफ़्लाइट सफल होना आवश्यक है।
- कमिट से पहले रनटाइम सक्रियण सत्यापित किया जाता है।
- लागू करने की प्रक्रिया परमाण्विक फ़ाइल प्रतिस्थापन और विफलता पर सर्वोत्तम-प्रयास पुनर्स्थापन का उपयोग करके फ़ाइलें अपडेट करती है।
लीगेसी प्रमाणीकरण संगतता टिप्पणियाँ
स्थिर क्रेडेंशियल के लिए रनटाइम अब प्लेनटेक्स्ट लीगेसी प्रमाणीकरण संग्रहण पर निर्भर नहीं है।- रनटाइम क्रेडेंशियल स्रोत हल किया गया इन-मेमोरी स्नैपशॉट है।
- लीगेसी स्थिर
api_keyप्रविष्टियाँ मिलने पर हटा दी जाती हैं। - OAuth-संबंधित संगतता व्यवहार अलग रहता है।
वेब UI टिप्पणी
कुछ SecretInput यूनियनों को फ़ॉर्म मोड की तुलना में रॉ एडिटर मोड में कॉन्फ़िगर करना अधिक आसान है।संबंधित
- प्रमाणीकरण - प्रमाणीकरण सेटअप
- CLI: सीक्रेट्स - CLI कमांड
- Vault SecretRefs - HashiCorp Vault प्रदाता सेटअप
- पर्यावरण चर - पर्यावरण वरीयता क्रम
- SecretRef क्रेडेंशियल सतह - क्रेडेंशियल सतह
- सीक्रेट्स लागू करने की योजना का अनुबंध - योजना अनुबंध का विवरण
- सुरक्षा - सुरक्षा स्थिति