CLI commands
رازها
openclaw secrets
از openclaw secrets برای مدیریت SecretRefها و سالم نگه داشتن snapshot فعال runtime استفاده کنید.
نقشهای فرمان:
reload: RPC مربوط به Gateway (secrets.reload) که refها را دوباره resolve میکند و snapshot runtime را فقط در صورت موفقیت کامل جایگزین میکند (بدون نوشتن پیکربندی).audit: اسکن فقطخواندنی storeهای پیکربندی/auth/generated-model و باقیماندههای legacy برای plaintext، refهای resolveنشده، و drift در precedence (refهای exec نادیده گرفته میشوند مگر اینکه--allow-execتنظیم شده باشد).configure: برنامهریز تعاملی برای راهاندازی provider، نگاشت target، و preflight (TTY لازم است).apply: اجرای یک plan ذخیرهشده (--dry-runفقط برای اعتبارسنجی؛ dry-run بهصورت پیشفرض بررسیهای exec را نادیده میگیرد، و حالت write planهای دارای exec را رد میکند مگر اینکه--allow-execتنظیم شده باشد)، سپس پاکسازی باقیماندههای plaintext هدفگذاریشده.
چرخه پیشنهادی برای operator:
openclaw secrets audit --check
openclaw secrets configure
openclaw secrets apply --from /tmp/openclaw-secrets-plan.json --dry-run
openclaw secrets apply --from /tmp/openclaw-secrets-plan.json
openclaw secrets audit --check
openclaw secrets reload
اگر plan شما شامل SecretRefها/providerهای exec است، در هر دو فرمان dry-run و write apply گزینه --allow-exec را ارسال کنید.
نکته exit code برای CI/gateها:
audit --checkدر صورت وجود یافتهها1برمیگرداند.- refهای resolveنشده
2برمیگردانند.
مرتبط:
- راهنمای Secrets: مدیریت Secrets
- سطح credential: سطح Credential مربوط به SecretRef
- راهنمای امنیت: امنیت
بارگذاری دوباره snapshot runtime
refهای secret را دوباره resolve کنید و snapshot runtime را بهصورت اتمی جایگزین کنید.
openclaw secrets reload
openclaw secrets reload --json
openclaw secrets reload --url ws://127.0.0.1:18789 --token <token>
نکتهها:
- از متد RPC مربوط به Gateway با نام
secrets.reloadاستفاده میکند. - اگر resolution شکست بخورد، Gateway آخرین snapshot سالم شناختهشده را نگه میدارد و خطا برمیگرداند (بدون فعالسازی جزئی).
- پاسخ JSON شامل
warningCountاست.
گزینهها:
--url <url>--token <token>--timeout <ms>--json
Audit
وضعیت OpenClaw را برای موارد زیر اسکن کنید:
- ذخیرهسازی secret بهصورت plaintext
- refهای resolveنشده
- drift در precedence (credentialهای
auth-profiles.jsonکه refهایopenclaw.jsonرا shadow میکنند) - باقیماندههای
agents/*/agent/models.jsonتولیدشده (مقادیرapiKeyبرای provider و headerهای حساس provider) - باقیماندههای legacy (ورودیهای store قدیمی auth، یادآورهای OAuth)
نکته درباره باقیمانده header:
- تشخیص header حساس provider بر پایه heuristic نام است (نامها و قطعههای رایج header مربوط به auth/credential مانند
authorization،x-api-key،token،secret،password، وcredential).
openclaw secrets audit
openclaw secrets audit --check
openclaw secrets audit --json
openclaw secrets audit --allow-exec
رفتار exit:
--checkدر صورت وجود یافتهها با مقدار غیرصفر خارج میشود.- refهای resolveنشده با کد غیرصفر دارای اولویت بالاتر خارج میشوند.
نکات برجسته شکل گزارش:
status:clean | findings | unresolvedresolution:refsChecked,skippedExecRefs,resolvabilityCompletesummary:plaintextCount,unresolvedRefCount,shadowedRefCount,legacyResidueCount- کدهای یافته:
PLAINTEXT_FOUNDREF_UNRESOLVEDREF_SHADOWEDLEGACY_RESIDUE
Configure (helper تعاملی)
تغییرات provider و SecretRef را بهصورت تعاملی بسازید، preflight را اجرا کنید، و در صورت نیاز apply کنید:
openclaw secrets configure
openclaw secrets configure --plan-out /tmp/openclaw-secrets-plan.json
openclaw secrets configure --apply --yes
openclaw secrets configure --providers-only
openclaw secrets configure --skip-provider-setup
openclaw secrets configure --agent ops
openclaw secrets configure --json
جریان:
- ابتدا راهاندازی provider (
add/edit/removeبرای aliasهایsecrets.providers). - سپس نگاشت credential (انتخاب fieldها و تخصیص refهای
{source, provider, id}). - در پایان preflight و apply اختیاری.
flagها:
--providers-only: فقطsecrets.providersرا configure کنید و نگاشت credential را نادیده بگیرید.--skip-provider-setup: راهاندازی provider را نادیده بگیرید و credentialها را به providerهای موجود نگاشت کنید.--agent <id>: کشف target و نوشتن درauth-profiles.jsonرا به یک store agent محدود کنید.--allow-exec: بررسیهای exec SecretRef را هنگام preflight/apply مجاز کنید (ممکن است فرمانهای provider اجرا شوند).
نکتهها:
- به TTY تعاملی نیاز دارد.
- نمیتوانید
--providers-onlyرا با--skip-provider-setupترکیب کنید. configurefieldهای دارای secret درopenclaw.jsonبههمراهauth-profiles.jsonرا برای scope agent انتخابشده هدف میگیرد.configureاز ساخت مستقیم نگاشتهای جدیدauth-profiles.jsonدر جریان picker پشتیبانی میکند.- سطح canonical پشتیبانیشده: سطح Credential مربوط به SecretRef.
- پیش از apply، preflight resolution را انجام میدهد.
- اگر preflight/apply شامل refهای exec است،
--allow-execرا برای هر دو مرحله تنظیمشده نگه دارید. - planهای تولیدشده بهصورت پیشفرض گزینههای scrub را فعال دارند (
scrubEnv،scrubAuthProfilesForProviderTargets،scrubLegacyAuthJsonهمگی فعال هستند). - مسیر apply برای مقادیر plaintext پاکسازیشده یکطرفه است.
- بدون
--apply، CLI پس از preflight همچنانApply this plan now?را prompt میکند. - با
--apply(و بدون--yes)، CLI یک confirmation برگشتناپذیر اضافی prompt میکند. --jsonplan و گزارش preflight را چاپ میکند، اما فرمان همچنان به TTY تعاملی نیاز دارد.
نکته ایمنی provider نوع exec:
- نصبهای Homebrew اغلب binaryهای symlinkشده را زیر
/opt/homebrew/bin/*عرضه میکنند. allowSymlinkCommand: trueرا فقط زمانی تنظیم کنید که برای مسیرهای مورد اعتماد package-manager لازم است، و آن را باtrustedDirsهمراه کنید (برای مثال["/opt/homebrew"]).- در Windows، اگر verification مربوط به ACL برای مسیر provider در دسترس نباشد، OpenClaw بهشکل fail-closed عمل میکند. فقط برای مسیرهای مورد اعتماد، روی آن provider گزینه
allowInsecurePath: trueرا تنظیم کنید تا بررسیهای امنیت مسیر bypass شوند.
Apply کردن یک plan ذخیرهشده
plan تولیدشده قبلی را apply یا preflight کنید:
openclaw secrets apply --from /tmp/openclaw-secrets-plan.json
openclaw secrets apply --from /tmp/openclaw-secrets-plan.json --allow-exec
openclaw secrets apply --from /tmp/openclaw-secrets-plan.json --dry-run
openclaw secrets apply --from /tmp/openclaw-secrets-plan.json --dry-run --allow-exec
openclaw secrets apply --from /tmp/openclaw-secrets-plan.json --json
رفتار exec:
--dry-runبدون نوشتن fileها، preflight را اعتبارسنجی میکند.- بررسیهای exec SecretRef بهصورت پیشفرض در dry-run نادیده گرفته میشوند.
- حالت write، planهایی را که شامل SecretRefها/providerهای exec هستند رد میکند مگر اینکه
--allow-execتنظیم شده باشد. - برای opt in به بررسی/اجرای provider نوع exec در هر یک از دو حالت، از
--allow-execاستفاده کنید.
جزئیات contract مربوط به plan (مسیرهای target مجاز، قواعد اعتبارسنجی، و semantics شکست):
مواردی که apply ممکن است بهروزرسانی کند:
openclaw.json(targetهای SecretRef + upsert/delete کردن provider)auth-profiles.json(scrub کردن provider-target)- باقیماندههای legacy
auth.json - کلیدهای secret شناختهشده در
~/.openclaw/.envکه مقدارهایشان migrate شدهاند
چرا backup برای rollback وجود ندارد
secrets apply عمدا rollback backupهایی که شامل مقدارهای plaintext قدیمی باشند نمینویسد.
ایمنی از preflight سختگیرانه + apply تقریبا اتمی با restore درونحافظهای best-effort هنگام شکست به دست میآید.
مثال
openclaw secrets audit --check
openclaw secrets configure
openclaw secrets audit --check
اگر audit --check همچنان یافتههای plaintext گزارش میکند، مسیرهای target گزارششده باقیمانده را بهروزرسانی کنید و audit را دوباره اجرا کنید.