diff --git a/docs/fa/auth-credential-semantics.md b/docs/fa/auth-credential-semantics.md index 9e192ca93..29527d885 100644 --- a/docs/fa/auth-credential-semantics.md +++ b/docs/fa/auth-credential-semantics.md @@ -1,28 +1,28 @@ --- read_when: - - کار روی حل‌وفصل پروفایل احراز هویت یا مسیریابی اعتبارنامه‌ها - - عیب‌یابی خطاهای احراز هویت مدل یا ترتیب پروفایل -summary: معناشناسی مرجعِ واجد شرایط بودن اعتبارنامه و حل آن برای پروفایل‌های احراز هویت + - کار روی تعیین پروفایل احراز هویت یا مسیریابی اعتبارنامه + - اشکال‌زدایی شکست‌های احراز هویت مدل یا ترتیب پروفایل +summary: معناشناسی مرجع برای صلاحیت اعتبارنامه و حل‌وفصل آن در پروفایل‌های احراز هویت title: معناشناسی اعتبارنامه‌های احراز هویت x-i18n: - generated_at: "2026-04-29T22:23:11Z" + generated_at: "2026-04-30T21:02:20Z" model: gpt-5.5 provider: openai - source_hash: 0525a71d3f08b7aa95e2f06acc6c23d87cd92d6b5fe4fc050ecf2b7caff84b3f + source_hash: 39b9f96159d5a7b793983d07c37a73139a0904abbbc8831267807d6acf5c0037 source_path: auth-credential-semantics.md workflow: 16 --- -این سند معناشناسی معیار واجد شرایط بودن اعتبارنامه و حل آن را تعریف می‌کند که در موارد زیر استفاده می‌شود: +این سند معنای معیارهای واجد شرایط بودن و حل‌وفصل اعتبارنامه را که در موارد زیر استفاده می‌شود، به‌صورت مرجع تعریف می‌کند: - `resolveAuthProfileOrder` - `resolveApiKeyForProfile` - `models status --probe` - `doctor-auth` -هدف، همسو نگه داشتن رفتار زمان انتخاب و رفتار زمان اجرا است. +هدف این است که رفتار زمان انتخاب و زمان اجرا هم‌راستا بماند. -## کدهای پایدار دلیل کاوش +## کدهای دلیل پایدار probe - `ok` - `excluded_by_auth_order` @@ -40,61 +40,62 @@ x-i18n: 1. وقتی هر دو `token` و `tokenRef` وجود نداشته باشند، یک پروفایل توکن واجد شرایط نیست. 2. `expires` اختیاری است. -3. اگر `expires` وجود داشته باشد، باید یک عدد متناهی بزرگ‌تر از `0` باشد. +3. اگر `expires` وجود داشته باشد، باید عددی متناهی و بزرگ‌تر از `0` باشد. 4. اگر `expires` نامعتبر باشد (`NaN`، `0`، منفی، نامتناهی، یا از نوع نادرست)، پروفایل با `invalid_expires` واجد شرایط نیست. 5. اگر `expires` در گذشته باشد، پروفایل با `expired` واجد شرایط نیست. 6. `tokenRef` اعتبارسنجی `expires` را دور نمی‌زند. -### قواعد حل +### قواعد حل‌وفصل -1. معناشناسی حل‌کننده برای `expires` با معناشناسی واجد شرایط بودن یکسان است. -2. برای پروفایل‌های واجد شرایط، ماده توکن می‌تواند از مقدار درون‌خطی یا `tokenRef` حل شود. +1. معنای حل‌کننده برای `expires` با معنای واجد شرایط بودن یکسان است. +2. برای پروفایل‌های واجد شرایط، ماده توکن می‌تواند از مقدار درون‌خطی یا `tokenRef` حل‌وفصل شود. 3. ارجاع‌های غیرقابل حل در خروجی `models status --probe` مقدار `unresolved_ref` تولید می‌کنند. -## قابلیت حمل کپی Agent +## قابلیت حمل کپی agent -وراثت احراز هویت Agent به‌صورت گذرخوان است. وقتی یک Agent پروفایل محلی ندارد، می‌تواند در زمان اجرا پروفایل‌ها را از مخزن Agent پیش‌فرض/اصلی حل کند، بدون اینکه ماده محرمانه را در `auth-profiles.json` خودش کپی کند. +ارث‌بری احراز هویت agent به‌صورت read-through است. وقتی یک agent پروفایل محلی ندارد، می‌تواند در زمان اجرا پروفایل‌ها را از محل ذخیره agent پیش‌فرض/اصلی حل‌وفصل کند، بدون اینکه ماده محرمانه را در `auth-profiles.json` خودش کپی کند. جریان‌های کپی صریح، مانند `openclaw agents add`، از این سیاست قابلیت حمل استفاده می‌کنند: - پروفایل‌های `api_key` قابل حمل هستند، مگر اینکه `copyToAgents: false` باشد. - پروفایل‌های `token` قابل حمل هستند، مگر اینکه `copyToAgents: false` باشد. -- پروفایل‌های `oauth` به‌طور پیش‌فرض قابل حمل نیستند، زیرا توکن‌های نوسازی می‌توانند یک‌بارمصرف یا حساس به چرخش باشند. -- جریان‌های OAuth متعلق به ارائه‌دهنده فقط زمانی می‌توانند با `copyToAgents: true` اعلام مشارکت کنند که ایمن بودن کپی کردن ماده نوسازی میان Agentها معلوم باشد. +- پروفایل‌های `oauth` به‌صورت پیش‌فرض قابل حمل نیستند، چون توکن‌های refresh می‌توانند یک‌بارمصرف یا حساس به چرخش باشند. +- جریان‌های OAuth متعلق به provider فقط زمانی می‌توانند با `copyToAgents: true` opt in کنند که ایمن بودن کپی کردن ماده refresh بین agentها مشخص باشد. -پروفایل‌های غیرقابل حمل از طریق وراثت گذرخوان همچنان در دسترس می‌مانند، مگر اینکه Agent مقصد جداگانه وارد شود و پروفایل محلی خودش را ایجاد کند. +پروفایل‌های غیرقابل حمل همچنان از طریق ارث‌بری read-through در دسترس می‌مانند، مگر اینکه agent مقصد جداگانه وارد شود و پروفایل محلی خودش را ایجاد کند. -## فیلتر کردن ترتیب صریح احراز هویت +## فیلتر کردن ترتیب احراز هویت صریح -- وقتی `auth.order.` یا override ترتیب auth-store برای یک ارائه‌دهنده تنظیم شده باشد، `models status --probe` فقط شناسه‌های پروفایلی را کاوش می‌کند که در ترتیب احراز هویت حل‌شده برای آن ارائه‌دهنده باقی می‌مانند. -- یک پروفایل ذخیره‌شده برای آن ارائه‌دهنده که از ترتیب صریح حذف شده است، بعدا به‌صورت خاموش امتحان نمی‌شود. خروجی کاوش آن را با `reasonCode: excluded_by_auth_order` و جزئیات `Excluded by auth.order for this provider.` گزارش می‌کند. +- وقتی `auth.order.` یا بازنویسی ترتیب auth-store برای یک provider تنظیم شده باشد، `models status --probe` فقط شناسه‌های پروفایلی را probe می‌کند که در ترتیب احراز هویت حل‌وفصل‌شده برای آن provider باقی مانده‌اند. +- پروفایل ذخیره‌شده‌ای برای آن provider که از ترتیب صریح حذف شده باشد، بعدا بی‌سروصدا امتحان نمی‌شود. خروجی probe آن را با `reasonCode: excluded_by_auth_order` و جزئیات `Excluded by auth.order for this provider.` گزارش می‌کند. -## حل هدف کاوش +## حل‌وفصل هدف probe -- هدف‌های کاوش می‌توانند از پروفایل‌های احراز هویت، اعتبارنامه‌های محیطی، یا `models.json` بیایند. -- اگر یک ارائه‌دهنده اعتبارنامه داشته باشد اما OpenClaw نتواند یک مدل قابل کاوش برای آن حل کند، `models status --probe` مقدار `status: no_model` را با `reasonCode: no_model` گزارش می‌کند. +- هدف‌های probe می‌توانند از پروفایل‌های احراز هویت، اعتبارنامه‌های محیط، یا `models.json` بیایند. +- اگر یک provider اعتبارنامه داشته باشد اما OpenClaw نتواند نامزد مدل قابل probe برای آن را حل‌وفصل کند، `models status --probe` مقدار `status: no_model` را با `reasonCode: no_model` گزارش می‌کند. ## کشف اعتبارنامه CLI خارجی -- اعتبارنامه‌های صرفا زمان اجرا که متعلق به CLIهای خارجی هستند، فقط زمانی کشف می‌شوند که ارائه‌دهنده، زمان اجرا، یا پروفایل احراز هویت در محدوده عملیات فعلی باشد، یا زمانی که یک پروفایل محلی ذخیره‌شده برای آن منبع خارجی از قبل وجود داشته باشد. -- مسیرهای فقط‌خواندنی/وضعیت مقدار `allowKeychainPrompt: false` را ارسال می‌کنند؛ آن‌ها فقط از اعتبارنامه‌های CLI خارجی مبتنی بر فایل استفاده می‌کنند و نتایج macOS Keychain را نمی‌خوانند یا دوباره استفاده نمی‌کنند. +- اعتبارنامه‌های فقط زمان اجرا که متعلق به CLIهای خارجی هستند، فقط زمانی کشف می‌شوند که provider، runtime، یا پروفایل احراز هویت در دامنه عملیات جاری باشد، یا وقتی یک پروفایل محلی ذخیره‌شده برای آن منبع خارجی از قبل وجود داشته باشد. +- فراخوان‌های auth-store باید یک حالت کشف CLI خارجی صریح انتخاب کنند: `none` برای احراز هویت پایدار/plugin فقط، `existing` برای refresh کردن پروفایل‌های CLI خارجی که از قبل ذخیره شده‌اند، یا `scoped` برای یک مجموعه مشخص از provider/profile. +- مسیرهای فقط‌خواندنی/status مقدار `allowKeychainPrompt: false` را ارسال می‌کنند؛ آن‌ها فقط از اعتبارنامه‌های CLI خارجی مبتنی بر فایل استفاده می‌کنند و نتایج macOS Keychain را نمی‌خوانند یا دوباره استفاده نمی‌کنند. ## محافظ سیاست OAuth SecretRef - ورودی SecretRef فقط برای اعتبارنامه‌های ایستا است. -- اگر اعتبارنامه پروفایل `type: "oauth"` باشد، اشیای SecretRef برای ماده اعتبارنامه آن پروفایل پشتیبانی نمی‌شوند. -- اگر `auth.profiles..mode` برابر `"oauth"` باشد، ورودی `keyRef`/`tokenRef` مبتنی بر SecretRef برای آن پروفایل رد می‌شود. -- نقض‌ها در مسیرهای حل احراز هویت هنگام راه‌اندازی/بارگذاری مجدد، شکست‌های سخت هستند. +- اگر اعتبارنامه یک پروفایل `type: "oauth"` باشد، شیءهای SecretRef برای ماده اعتبارنامه آن پروفایل پشتیبانی نمی‌شوند. +- اگر `auth.profiles..mode` برابر با `"oauth"` باشد، ورودی `keyRef`/`tokenRef` مبتنی بر SecretRef برای آن پروفایل رد می‌شود. +- تخلف‌ها در مسیرهای حل‌وفصل احراز هویت هنگام startup/reload خطاهای سخت هستند. -## پیام‌رسانی سازگار با نسخه‌های قدیمی +## پیام‌رسانی سازگار با legacy -برای سازگاری اسکریپت، خط اول خطاهای کاوش بدون تغییر می‌ماند: +برای سازگاری script، خط اول خطاهای probe بدون تغییر می‌ماند: `Auth profile credentials are missing or expired.` -جزئیات مناسب برای انسان و کدهای پایدار دلیل ممکن است در خطوط بعدی اضافه شوند. +جزئیات خوانا برای انسان و کدهای دلیل پایدار ممکن است در خطوط بعدی افزوده شوند. ## مرتبط -- [مدیریت اسرار](/fa/gateway/secrets) +- [مدیریت Secrets](/fa/gateway/secrets) - [ذخیره‌سازی احراز هویت](/fa/concepts/oauth)