---
read_when:
    - आप चाहते हैं कि एजेंट चुने हुए 1Password सीक्रेट्स का अनुरोध करें
    - आपको प्रत्येक सीक्रेट के लिए अनुमोदन नीति और ऑडिट इतिहास चाहिए
    - आप OpenClaw के लिए 1Password सेवा खाता कॉन्फ़िगर कर रहे हैं
summary: ऑडिट किए गए एजेंट सीक्रेट्स ब्रोकर के रूप में वैकल्पिक 1Password Plugin का उपयोग करें
title: 1Password सीक्रेट्स ब्रोकर
x-i18n:
    generated_at: "2026-07-19T09:38:46Z"
    model: gpt-5.6
    postprocess_version: locale-links-v1
    prompt_version: 32
    provider: openai
    source_hash: 255ab4fd2c63754fef29d3ea87dcedc9ca2bd2f34bec1f81139e2ce5b6acdba2
    source_path: plugins/onepassword.md
    workflow: 16
---

# 1Password सीक्रेट्स ब्रोकर

बंडल किया गया `onepassword` plugin एजेंटों को 1Password फ़ील्ड के चुनिंदा सेट को
पढ़ने के लिए एक नीति-नियंत्रित टूल देता है। यह डिफ़ॉल्ट रूप से अक्षम रहता है और
`plugins.entries.onepassword.config` मौजूद होने तक कुछ नहीं करता।

यह एक एजेंट टूल है, SecretRef प्रदाता नहीं। यह पर्यावरण
चर इंजेक्ट नहीं करता या OpenClaw कॉन्फ़िग सीक्रेट्स का समाधान नहीं करता।

## सुरक्षा मॉडल

- केवल सेवा-अकाउंट प्रमाणीकरण। टोकन स्थानीय क्रेडेंशियल्स
  फ़ाइल में रहता है और `openclaw.json` में कभी स्वीकार नहीं किया जाता।
- केवल चुनिंदा रजिस्ट्री। एजेंट कॉन्फ़िगर किए गए स्लग सूचीबद्ध कर सकते हैं, लेकिन plugin कभी भी
  1Password वॉल्ट की गणना नहीं करता।
- प्रति-स्लग `auto`, `approve`, या `deny` नीति।
- अनुमोदन अनुदान की समय-सीमा समाप्त होती है। कैश किया गया मान कभी भी वर्तमान नीति को बायपास नहीं करता।
- हर एक्सेस प्रयास OpenClaw की साझा SQLite स्थिति में दर्ज किया जाता है। ऑडिट
  पंक्तियों में दिया गया कारण शामिल होता है; कारणों को गैर-संवेदनशील रखें। ब्रोकर
  प्राप्त किए गए मान या सेवा टोकन को कभी भी ऑडिट पंक्ति में कॉपी नहीं करता।
- वर्तमान टूल निष्पादन के बाद, OpenClaw के स्वामित्व वाली ट्रांसक्रिप्ट स्थिरता
  सफल `get` मान को संशोधित मेटाडेटा से बदल देती है।
- उस निष्पादन के लिए मान मॉडल को दिखाई देता है। यदि मॉडल इसे बाद की
  टूल कॉल या उत्तर में कॉपी करता है, तो वह अलग रिकॉर्ड इस plugin के
  स्थिरता हुक के बाहर होता है। नीतियों को सीमित रखें और मॉडल से किसी
  मान को दोहराने के लिए न कहें।
- plugin प्रत्येक कैश मिस पर `op` को एक बार इनवोक करता है। यह दर सीमाओं या
  अन्य विफलताओं पर पुनः प्रयास नहीं करता।
- हर `op` कॉल एक न्यूनतम पर्यावरण में चलती है जो 1Password
  डेस्कटॉप-ऐप एकीकरण (`OP_LOAD_DESKTOP_APP_SETTINGS=false`,
  `OP_BIOMETRIC_UNLOCK_ENABLED=false`) को अक्षम करता है, इसलिए Gateway होस्ट पर इंस्टॉल किया गया
  1Password ऐप कभी भी बायोमेट्रिक या macOS अनुमति डायलॉग ट्रिगर नहीं करता।

सेवा अकाउंट को केवल plugin कॉन्फ़िग में पंजीकृत वॉल्ट और आइटम तक पढ़ने की
पहुँच दें।

## शुरू करने से पहले

आपको चाहिए:

- Gateway होस्ट पर इंस्टॉल किया गया 1Password CLI (`op`)
- चुने गए आइटम तक पहुँच वाला 1Password सेवा अकाउंट
- एक समर्पित सेवा-अकाउंट टोकन फ़ाइल

बंडल किए गए plugin को सक्षम करें:

```bash
openclaw plugins enable onepassword
```

OpenClaw स्थिति डायरेक्टरी के अंतर्गत टोकन डायरेक्टरी और फ़ाइल बनाएँ:

```bash
mkdir -p ~/.openclaw/credentials/onepassword
chmod 700 ~/.openclaw/credentials/onepassword
printf '%s' "$OP_SERVICE_ACCOUNT_TOKEN" > \
  ~/.openclaw/credentials/onepassword/service-account-token
chmod 600 ~/.openclaw/credentials/onepassword/service-account-token
unset OP_SERVICE_ACCOUNT_TOKEN
```

जब `OPENCLAW_STATE_DIR` सेट हो, तो `~/.openclaw` को उस डायरेक्टरी से बदलें।
टोकन फ़ाइल के समूह या अन्य उपयोगकर्ताओं द्वारा पढ़ने या लिखने योग्य होने पर
plugin एक बार चेतावनी देता है।

## पंजीकृत सीक्रेट्स कॉन्फ़िगर करें

`openclaw.json` में plugin कॉन्फ़िग जोड़ें:

```jsonc
{
  "plugins": {
    "entries": {
      "onepassword": {
        "enabled": true,
        "config": {
          "vault": "Automation",
          "defaultPolicy": "approve",
          "cacheTtlSeconds": 300,
          "grantTtlHours": 720,
          "opTimeoutMs": 15000,
          "items": {
            "repository-token": {
              "item": "Repository automation token",
              "field": "credential",
              "policy": "approve",
              "description": "Token for repository automation",
            },
            "model-key": {
              "item": "Model provider key",
              "vault": "Agent credentials",
              "policy": "auto",
            },
          },
        },
      },
    },
  },
}
```

स्लग छोटे अक्षरों, संख्याओं और हाइफ़न का उपयोग करते हैं, अक्षर या
संख्या से शुरू होते हैं और अधिकतम 64 वर्ण रखते हैं। एक रजिस्ट्री में अधिकतम 32
स्लग हो सकते हैं; विवरणों में अधिकतम 200 वर्ण हो सकते हैं। `field` एक फ़ील्ड
लेबल या ID स्वीकार करता है, उसमें अल्पविराम नहीं होना चाहिए और उसका डिफ़ॉल्ट `credential` है।
आइटम-स्तरीय `vault` डिफ़ॉल्ट वॉल्ट को ओवरराइड करता है। `opBin` को `op`
निष्पादन योग्य के पूर्ण पथ पर सेट किया जा सकता है; अन्यथा plugin `PATH` से `op` का समाधान करता है।
आइटम शीर्षक हाइफ़न से शुरू नहीं होने चाहिए।

## एजेंट टूल का उपयोग करें

टूल का नाम `onepassword` है।

पंजीकृत स्लग सूचीबद्ध करें:

```json
{ "action": "list" }
```

परिणाम में केवल स्लग, विवरण, नीति और यह जानकारी होती है कि स्थायी
अनुदान सक्रिय है या नहीं। इसमें कभी कोई सीक्रेट मान नहीं होता और यह 1Password को क्वेरी नहीं करता।

एक सीक्रेट का अनुरोध करें:

```json
{
  "action": "get",
  "slug": "repository-token",
  "reason": "Authenticate the requested repository operation"
}
```

`reason` आवश्यक है, रिक्त नहीं होना चाहिए और 300 वर्णों तक सीमित है।
सफल `get` कॉन्फ़िगर किए गए स्लग, आइटम शीर्षक और
फ़ील्ड लेबल के साथ मान लौटाता है।

टूल स्कीमा एक आंतरिक `authorizationNonce` पैरामीटर भी घोषित करता है।
नीति लेयर अनुरोध का मूल्यांकन करने के बाद निष्पादित होने वाली टूल कॉल को प्राधिकरण
सौंपने के लिए इसे इंजेक्ट करती है। इसे कभी भी मैन्युअल रूप से सेट न करें: नीति हुक दिए गए
किसी भी मान को ओवरराइट करता है और अज्ञात मान अनुरोध को विफल कर देता है।

## नीति स्तर और अनुमोदन

- `auto`: तुरंत प्राप्त करें और अनुरोध का ऑडिट करें।
- `deny`: अनुरोध को ब्लॉक करें और उसका ऑडिट करें।
- `approve`: समय-सीमा समाप्त न हुआ स्थायी अनुदान उपयोग करें या किसी व्यक्ति से एक बार
  अनुमति देने, हमेशा अनुमति देने या अस्वीकार करने के लिए कहें।

एक बार अनुमति देना केवल वर्तमान टूल कॉल को अधिकृत करता है। हमेशा अनुमति देना उस एजेंट
और स्लग के लिए SQLite में स्थायी अनुदान लिखता है; अन्य एजेंटों को अपना
अनुमोदन लेना आवश्यक है। OpenClaw हमेशा अनुमति देने का विकल्प केवल तभी देता है जब कॉलर की ठोस एजेंट
पहचान हो। अनुदान की समय-सीमा `grantTtlHours` के बाद समाप्त होती है, जिसका डिफ़ॉल्ट 720 घंटे है।
अनसुलझा या समय-सीमा समाप्त हुआ अनुमोदन अनुरोध को अस्वीकार करता है; अधिकतम अनुमोदन
प्रतीक्षा 600 सेकंड है। plugin अधिकतम 1,024 स्थायी अनुदान रखता है; उस
सीमा पर सबसे पुराना अनुदान हटा दिया जाता है और उसके एजेंट को अगली पहुँच अनुमोदित करनी होगी।

हर मूल्यांकित प्राधिकरण एकल-उपयोग वाला होता है और साझा SQLite स्थिति के माध्यम से
निष्पादित होने वाली टूल कॉल को सौंपा जाता है, इसलिए जब Gateway प्रक्रिया में एक से अधिक
plugin इंस्टेंस सक्रिय हों तब भी यह हस्तांतरण काम करता है। अप्रयुक्त प्राधिकरण
600-सेकंड की अनुमोदन अवधि के बाद समाप्त हो जाते हैं।

इन-मेमोरी कैश का डिफ़ॉल्ट 300 सेकंड है और यह कॉन्फ़िगर की गई
स्लग रजिस्ट्री तक सीमित है। इसे अक्षम करने के लिए `cacheTtlSeconds` को `0` पर सेट करें। हर कैश लुकअप
से पहले नीति का मूल्यांकन किया जाता है और कैश हिट का ऑडिट होता है। रनटाइम कॉन्फ़िग पुनः लोड
हर नीति और निष्पादन सीमा पर प्रभावी होते हैं; plugin को अक्षम करने या
किसी स्लग को हटाने, अस्वीकार करने या पुनः लक्षित करने से लंबित प्राधिकरण और
कैश किए गए मान अमान्य हो जाते हैं।

## स्थिति और ऑडिट इतिहास की जाँच करें

तत्परता और रजिस्ट्री गणनाएँ दिखाएँ:

```bash
openclaw onepassword status
```

यह बताता है कि टोकन फ़ाइल मौजूद है या नहीं, `op` का समाधान हुआ या नहीं और उसका पथ,
पंजीकृत आइटम की संख्या तथा प्रति-नीति गणनाएँ। यह टोकन या सीक्रेट मानों को
कभी पढ़ता या प्रिंट नहीं करता।

50 सबसे हाल की ऑडिट पंक्तियाँ दिखाएँ:

```bash
openclaw onepassword audit
openclaw onepassword audit --limit 100
```

पंक्तियाँ सबसे नई पहले होती हैं और टाइमस्टैम्प, एजेंट, स्लग, परिणाम, प्रयास विफल होने पर
`errorCode` और संक्षिप्त किया गया कारण दिखाती हैं। कारण उसी रूप में संग्रहीत होता है
जिसमें दिया गया था; ब्रोकर प्राप्त मान को कभी ऑडिट लॉग में नहीं जोड़ता।

## 1Password CLI व्यवहार

प्रत्येक कैश मिस कॉन्फ़िगर किए गए आइटम, वॉल्ट और सटीक
फ़ील्ड चयनकर्ता, JSON आउटपुट, सीमित टाइमआउट और `--cache=false` के साथ `op item get` चलाता है। चाइल्ड
को पूर्ण आइटम के बजाय केवल वही फ़ील्ड प्राप्त होता है। चाइल्ड पर्यावरण में केवल
`OP_SERVICE_ACCOUNT_TOKEN` और `HOME` मौजूद होते हैं।

plugin एक प्रयास करता है। `RATE_LIMITED` त्रुटियों को बाद के एजेंट अनुरोध से पहले प्रतीक्षा करके
संभालना चाहिए; plugin स्वचालित पुनः प्रयास
लूप नहीं बनाता।

## त्रुटि कोड

विफल प्रयास टूल परिणाम और ऑडिट
पंक्ति में एक सीमित त्रुटि कोड रखते हैं।

1Password पहुँच त्रुटियाँ:

| कोड              | अर्थ                                                          |
| ----------------- | ---------------------------------------------------------------- |
| `TOKEN_MISSING`   | टोकन फ़ाइल अनुपस्थित या रिक्त है                                   |
| `OP_NOT_FOUND`    | `op` बाइनरी का समाधान नहीं किया जा सका                                |
| `ITEM_NOT_FOUND`  | कॉन्फ़िगर किया गया आइटम वॉल्ट में नहीं है                              |
| `FIELD_NOT_FOUND` | कॉन्फ़िगर किया गया फ़ील्ड आइटम पर नहीं है; उपलब्ध लेबल सूचीबद्ध हैं |
| `RATE_LIMITED`    | 1Password सेवा-अकाउंट दर सीमा पूरी हो गई                     |
| `AUTH_FAILED`     | सेवा-अकाउंट प्रमाणीकरण विफल हुआ                            |
| `TIMEOUT`         | `op` ने `opTimeoutMs` को पार कर लिया                                      |
| `OP_ERROR`        | कोई अन्य `op` विफलता या अमान्य आउटपुट                         |

नीति और सत्यापन त्रुटियाँ:

| कोड                                               | अर्थ                                                                      |
| -------------------------------------------------- | ---------------------------------------------------------------------------- |
| `INVALID_ACTION`, `INVALID_REASON`, `INVALID_SLUG` | अनुरोध इनपुट सत्यापन में विफल हुआ                                              |
| `UNKNOWN_SLUG`                                     | स्लग कॉन्फ़िगर की गई रजिस्ट्री में नहीं है                                       |
| `TOOL_CALL_ID_MISSING`                             | कॉल टूल कॉल ID के बिना पहुँची                                          |
| `POLICY_NOT_EVALUATED`                             | इस कॉल के लिए कोई मेल खाता प्राधिकरण नहीं है; अनुरोध नीति द्वारा अनुमोदित नहीं था |
| `POLICY_CHANGED`                                   | अनुमोदन और निष्पादन के बीच कॉन्फ़िग बदल गया                                |
| `GRANT_EXPIRED`                                    | स्थायी अनुदान निष्पादन से पहले समाप्त हो गया                                       |
| `APPROVAL_CANCELLED`                               | अनुमोदन लंबित रहने के दौरान रन निरस्त कर दिया गया                           |
