Gateway
قرارداد طرح اعمال رازها
این صفحه قرارداد سختگیرانهای را تعریف میکند که توسط openclaw secrets apply اعمال میشود.
اگر هدفی با این قواعد مطابقت نداشته باشد، apply پیش از تغییر پیکربندی شکست میخورد.
شکل فایل طرح
openclaw secrets apply --from <plan.json> انتظار یک آرایه targets از اهداف طرح را دارد:
{ version: 1, protocolVersion: 1, targets: [ { type: "models.providers.apiKey", path: "models.providers.openai.apiKey", pathSegments: ["models", "providers", "openai", "apiKey"], providerId: "openai", ref: { source: "env", provider: "default", id: "OPENAI_API_KEY" }, }, { type: "auth-profiles.api_key.key", path: "profiles.openai:default.key", pathSegments: ["profiles", "openai:default", "key"], agentId: "main", ref: { source: "env", provider: "default", id: "OPENAI_API_KEY" }, }, ],}درج/بهروزرسانی و حذفهای ارائهدهنده
طرحها همچنین میتوانند دو فیلد اختیاری در سطح بالا داشته باشند که نگاشت
secrets.providers را همراه با نوشتنهای هر هدف تغییر میدهند:
providerUpserts— شیئی که کلیدهای آن نامهای مستعار ارائهدهنده هستند. هر مقدار یک تعریف ارائهدهنده است (همان شکلی که زیرsecrets.providers.<alias>درopenclaw.jsonپذیرفته میشود، برای مثال یک ارائهدهندهexecیاfile).providerDeletes— آرایهای از نامهای مستعار ارائهدهنده برای حذف.
providerUpserts پیش از targets اجرا میشود، بنابراین یک target.ref.provider میتواند
به نام مستعار ارائهدهندهای اشاره کند که همان طرح در
providerUpserts معرفی میکند. بدون این، طرحهایی که به نام مستعاری اشاره میکنند که هنوز
در openclaw.json پیکربندی نشده است، با provider "<alias>" is not configured شکست میخورند.
{ version: 1, protocolVersion: 1, providerUpserts: { onepassword_anthropic: { source: "exec", command: "/usr/bin/op", args: ["read", "op://Vault/Anthropic/credential"], }, }, providerDeletes: ["legacy_unused_alias"], targets: [ { type: "models.providers.apiKey", path: "models.providers.anthropic.apiKey", pathSegments: ["models", "providers", "anthropic", "apiKey"], providerId: "anthropic", ref: { source: "exec", provider: "onepassword_anthropic", id: "credential" }, }, ],}ارائهدهندههای Exec که از طریق providerUpserts معرفی میشوند همچنان مشمول
قواعد رضایت exec در رفتار رضایت ارائهدهنده Exec هستند:
طرحهایی که شامل ارائهدهندههای exec هستند در حالت نوشتن به --allow-exec نیاز دارند.
محدوده هدف پشتیبانیشده
اهداف طرح برای مسیرهای اعتبارنامه پشتیبانیشده در موارد زیر پذیرفته میشوند:
رفتار نوع هدف
قاعده کلی:
target.typeباید شناختهشده باشد و باید با شکل نرمالشدهtarget.pathمطابقت داشته باشد.
نامهای مستعار سازگاری برای طرحهای موجود همچنان پذیرفته میشوند:
models.providers.apiKeyskills.entries.apiKeychannels.googlechat.serviceAccount
قواعد اعتبارسنجی مسیر
هر هدف با همه موارد زیر اعتبارسنجی میشود:
typeباید یک نوع هدف شناختهشده باشد.pathباید یک مسیر نقطهای غیرخالی باشد.pathSegmentsمیتواند حذف شود. اگر ارائه شود، باید دقیقاً به همان مسیرpathنرمال شود.- بخشهای ممنوع رد میشوند:
__proto__،prototype،constructor. - مسیر نرمالشده باید با شکل مسیر ثبتشده برای نوع هدف مطابقت داشته باشد.
- اگر
providerIdیاaccountIdتنظیم شده باشد، باید با شناسه کدگذاریشده در مسیر مطابقت داشته باشد. - اهداف
auth-profiles.jsonبهagentIdنیاز دارند. - هنگام ایجاد نگاشت جدید
auth-profiles.json،authProfileProviderرا شامل کنید.
رفتار شکست
اگر اعتبارسنجی یک هدف شکست بخورد، apply با خطایی مانند این خارج میشود:
Invalid plan target path for models.providers.apiKey: models.providers.openai.baseUrlبرای طرح نامعتبر، هیچ نوشتنی ثبت نمیشود.
رفتار رضایت ارائهدهنده Exec
--dry-runبهصورت پیشفرض بررسیهای SecretRef از نوع exec را رد میکند.- طرحهایی که شامل SecretRefها/ارائهدهندههای exec هستند، در حالت نوشتن رد میشوند مگر اینکه
--allow-execتنظیم شده باشد. - هنگام اعتبارسنجی/اعمال طرحهایی که شامل exec هستند، در هر دو فرمان dry-run و نوشتن،
--allow-execرا ارسال کنید.
نکات محدوده زمان اجرا و ممیزی
- ورودیهای فقطارجاعی
auth-profiles.json(keyRef/tokenRef) در حلوفصل زمان اجرا و پوشش ممیزی گنجانده میشوند. secrets applyاهداف پشتیبانیشدهopenclaw.json، اهداف پشتیبانیشدهauth-profiles.json، و اهداف اختیاری پاکسازی را مینویسد.
بررسیهای اپراتور
# Validate plan without writesopenclaw secrets apply --from /tmp/openclaw-secrets-plan.json --dry-run # Then apply for realopenclaw secrets apply --from /tmp/openclaw-secrets-plan.json # For exec-containing plans, opt in explicitly in both modesopenclaw secrets apply --from /tmp/openclaw-secrets-plan.json --dry-run --allow-execopenclaw secrets apply --from /tmp/openclaw-secrets-plan.json --allow-execاگر apply با پیام مسیر هدف نامعتبر شکست خورد، طرح را با openclaw secrets configure دوباره تولید کنید یا مسیر هدف را به یکی از شکلهای پشتیبانیشده بالا اصلاح کنید.