Files
OmniRoute/docs/i18n/fa/docs/reference/FEATURE_FLAGS.md
Diego Rodrigues de Sa e Souza 8feea123bb feat(docs): mirror every docs/ page in all 65 locales (#14106)
* feat(docs): mirror every docs/ page in all 65 locales

Extends the documentation mirrors from the 22-page core set (#13940) to
every Markdown page under docs/: 152 sources x 65 locales = 9,880 mirrors
(6,208 new), language bars rewritten for the full locale list, state
adopted so the blocking drift gate now covers all 152 pages.

run-translation.mjs: an oversized block made only of table rows or list
items (PROVIDER_REFERENCE.md 244-row table, FREE_TIERS.md 71-item list) is
cut at item boundaries and rejoined without a blank line — the single
16-40 KB request outlived the backend socket for verbose scripts. 48
older mirrors whose tables had lost rows were retranslated with --force.

* docs(i18n): refresh mirrors for the sources the base changed since the branch cut

Section-level retranslation of the 29 docs (and README.md) whose source
or mirrors moved on release/v3.8.51 during the run, then state adoption;
the drift gate is green again on the merged tree.
2026-09-18 13:16:46 -03:00

65 KiB
Raw Blame History

Feature Flags (فارسی)

🌐 Languages: 🇺🇸 English · 🇪🇹 am · 🇸🇦 ar · 🇦🇿 az · 🇧🇬 bg · 🇧🇩 bn · 🇨🇿 cs · 🇩🇰 da · 🇩🇪 de · 🇬🇷 el · 🇪🇸 es · 🇪🇪 et · 🇫🇮 fi · 🇫🇷 fr · 🇮🇪 ga · 🇮🇳 gu · 🇳🇬 ha · 🇮🇱 he · 🇮🇳 hi · 🇭🇷 hr · 🇭🇺 hu · 🇦🇲 hy · 🇮🇩 id · 🇳🇬 ig · 🇮🇹 it · 🇯🇵 ja · 🇬🇪 ka · 🇰🇭 km · 🇮🇳 kn · 🇰🇷 ko · 🇱🇹 lt · 🇱🇻 lv · 🇮🇳 ml · 🇮🇳 mr · 🇲🇾 ms · 🇲🇹 mt · 🇲🇲 my · 🇳🇵 ne · 🇳🇱 nl · 🇳🇴 no · 🇮🇳 or · 🇮🇳 pa · 🇵🇭 phi · 🇵🇱 pl · 🇵🇹 pt · 🇧🇷 pt-BR · 🇷🇴 ro · 🇷🇺 ru · 🇱🇰 si · 🇸🇰 sk · 🇸🇮 sl · 🇷🇸 sr · 🇸🇪 sv · 🇰🇪 sw · 🇮🇳 ta · 🇮🇳 te · 🇹🇭 th · 🇹🇷 tr · 🇺🇦 uk-UA · 🇵🇰 ur · 🇺🇿 uz · 🇻🇳 vi · 🇳🇬 yo · 🇨🇳 zh-CN · 🇹🇼 zh-TW


کلیدهای runtime که رفتار OmniRoute را بدون استقرار مجدد تغییر میدهند. تمام فلگهای فهرستشده در اینجا در src/shared/constants/featureFlagDefinitions.ts تعریف شدهاند — منبع واحد حقیقت. داشبورد و REST API هر دو از آن فایل میخوانند، بنابراین جدول زیر بهگونهای تولید شده است که دقیقاً بهصورت 1:1 با آن مطابقت داشته باشد.


فلگهای قابلیت چیستند

فلگ قابلیت یک کلید نامگذاریشده (از نوع boolean یا enum) است که مقدار آن را میتوان در runtime تغییر داد و در پایگاه داده ذخیره کرد، بدون اینکه نیاز به استقرار مجدد فرایند باشد. هر فلگ با یک FeatureFlagDefinition توصیف میشود که شامل key، label، description، category، defaultValue، type و راهنمای requiresRestart است.

ترتیب تعیین مقدار

مقدار مؤثر یک فلگ توسط resolveFeatureFlag() و با ترتیب اولویت زیر تعیین میشود (بالاترین اولویت برنده است):

  1. بازنویسی DB — مقداری که در جدول key_value و در فضای نام feature_flags ذخیره شده است (از طریق داشبورد یا REST API تنظیم میشود).
  2. متغیر محیطیprocess.env[<KEY>]، در صورتی که تنظیم شده و خالی نباشد.
  3. مقدار پیشفرض تعریف — مقدار defaultValue از featureFlagDefinitions.ts.

یک فلگ boolean زمانی فعال در نظر گرفته میشود که مقدار مؤثر آن "true"، "1" یا "yes" باشد (isFeatureFlagEnabled() را ببینید).

Note

بیشتر فلگها همچنین یک متغیر محیطی متناظر با همان نام دارند که در ENVIRONMENT.md مستند شده است. بازنویسی DB فلگ نسبت به آن متغیر محیطی اولویت دارد. فلگی با requiresRestart: true بلافاصله ذخیره میشود، اما فقط هنگام راهاندازی فرایند دوباره خوانده میشود — تغییر آن، بنر «راهاندازی مجدد سرور» را در داشبورد نمایش میدهد.


فهرست فلگها

72 فلگ در 6 دسته. پیشفرض همان مقدار پیشفرض تعریف است — مقداری که وقتی نه بازنویسی DB و نه متغیر محیطی وجود داشته باشد، استفاده میشود.

امنیت (10)

کلید نوع پیشفرض توضیحات
REQUIRE_API_KEY boolean false برای همه درخواستهای ورودی، کلید API الزامی باشد.
INPUT_SANITIZER_ENABLED boolean true پاکسازی ورودی برای همه درخواستها فعال شود.
INJECTION_GUARD_MODE enum off حالت محافظت در برابر تزریق پرامپت. مقادیر: off، warn، block، redact.
PII_REDACTION_ENABLED boolean false اطلاعات شناسایی شخصی از درخواستها حذف شود (مستقل از INPUT_SANITIZER_MODE).
PII_RESPONSE_SANITIZATION boolean false اطلاعات شناسایی شخصی از پاسخهای ارائهدهنده پاکسازی شود.
PII_RESPONSE_SANITIZATION_MODE enum redact حالت پاکسازی اطلاعات شناسایی شخصی از پاسخها. مقادیر: redact، warn، block، off.
OUTBOUND_SSRF_GUARD_ENABLED boolean true درخواستهای خروجی به محدودههای IP خصوصی/داخلی مسدود شوند.
ALLOW_API_KEY_REVEAL boolean false به کاربران احراز هویتشده داشبورد اجازه داده شود بهجای مشاهده صرفاً مقادیر پوشاندهشده، کلیدهای API ذخیرهشده را آشکار کنند.
AUTH_LOG_INCLUDE_ACCOUNT_ID boolean false پیشوند حساب در خطوط گزارش AUTH درج شود (برای مثال، «در حال استفاده از حساب : abc12345...»). این گزینه بهطور پیشفرض غیرفعال است تا شناسههای حساب در گزارشهای فرایند اشتراکی/چندمستاجری پوشانده شوند. مستقل از حالت اشکالزدایی است؛ تغییر حالت اشکالزدایی این اطلاعات را آشکار نمیکند.
OMNIROUTE_OIDC_DISABLE_PASSWORD_LOGIN boolean false وقتی OIDC فعال است، ورود با گذرواژه غیرفعال شود تا کاربران فقط از طریق ورود یکپارچه OIDC احراز هویت کنند. وقتی غیرفعال باشد (پیشفرض)، هر دو روش ورود با گذرواژه و OIDC در دسترس هستند.

شبکه (15)

کلید نوع پیشفرض راهاندازی مجدد توضیحات
ENABLE_TLS_FINGERPRINT boolean false حالت پنهانسازی اثر انگشت TLS را فعال میکند.
AUDIO_REMOTE_PROVIDER_NODES boolean false به مسیرهای /v1/audio/* اجازه میدهد از گرههای ارائهدهندهٔ سازگار با OpenAI که خارج از localhost میزبانی میشوند استفاده کنند. بهطور پیشفرض غیرفعال است — مسیریابی صوت به یک میزبان راهدور، هویت خروجی را تغییر میدهد و باید تصمیمی صریح از سوی اپراتور باشد. گرههای loopback همیشه مجاز هستند و تحت تأثیر قرار نمیگیرند.
PROXY_AUTO_SELECT_ENABLED boolean false وقتی هیچ پروکسیای به یک اتصال اختصاص داده نشده است، نخستین پروکسی فعال را بهصورت خودکار از رجیستری انتخاب میکند. بهطور پیشفرض غیرفعال است (در غیر این صورت هر پروکسی رجیستری به یک جایگزین سراسری تبدیل میشود — #3332).
OMNIROUTE_CONTROL_PLANE_PROXY_DIRECT_FALLBACK boolean false به جریانهای اعتبارسنجی OAuth و ارائهدهنده اجازه میدهد وقتی بررسیهای اولیهٔ دسترسیپذیری پروکسی ناموفق هستند، پروکسی سنجاقشده را دور بزنند و مستقیماً متصل شوند. بهطور پیشفرض غیرفعال است، زیرا این کار میتواند IP خروجی را تغییر دهد.
NETWORK_ROTATION_SHARED_EGRESS_GUARD boolean true هنگام رخدادن یک استثنای شبکه (مهلت زمانی، رد یا بازنشانی اتصال) در یک اجراکنندهٔ چرخش چندحسابی، اگر حساب ناموفق پروکسی اختصاصی نداشته باشد، یک دورهٔ انتظار کوتاه اعمال میکند و بهجای تلاش مجدد برای تکتک حسابها، سایر حسابهای بدون پروکسی را تا پایان درخواست رد میکند. بهطور پیشفرض فعال است (ایمن: IP خروجی تغییر نمیکند و فقط خطر تأخیر/دورهٔ انتظار در حسابهای دارای خروجی مشترک را کاهش میدهد). برای بازگرداندن انتشار فوری در نخستین خطای حساب بدون پروکسی، آن را غیرفعال کنید.
PROXY_SKIP_RECENTLY_FAILED boolean false استخرهای پروکسی و چرخش مختص هر حساب در opencode، ارائهٔ مجدد پروکسیای را که بهتازگی ناموفق بوده است (کاوش TCP ردشده یا دریافت 429 از طریق آن)، برای مدتی مختص هر فرایند متوقف میکنند؛ این مدت با هر تکرار دو برابر میشود تا به سقف برسد. هیچ وضعیت پروکسیای ثبت نمیشود؛ اگر همهٔ گزینهها کنار گذاشته شوند، انتخاب بدون تغییر باقی میماند. بهطور پیشفرض غیرفعال است.
PROXY_POOL_EGRESS_OBSERVATION boolean false در داشبورد و زیر یک استخر پروکسی نشان میدهد که طی 24 ساعت گذشته، چند IP خروجی مشاهدهشده به اعضای آن سرویس دادهاند و چند اتصال از آنها استفاده کردهاند. فقط خواندنی است، از گزارش پروکسی محاسبه میشود و هرگز برای مسیریابی استفاده نمیشود. بهطور پیشفرض غیرفعال است.
OPENCODE_RESPONSES_STALL_ROTATION boolean false برای اجراکنندهٔ OpenCode، نخستین بایت بدنهٔ پاسخ جریانی Responses را پایش میکند (بازه: RESPONSES_FIRST_BYTE_TIMEOUT_MS، پیشفرض 15000). یک جریان 2xx از Responses که پس از پایان این بازه همچنان ساکت بماند، متوقفشده تلقی میشود: حساب وارد دورهٔ انتظار میشود و درخواست یک بار به حساب بعدی میچرخد؛ توقف دوم بلافاصله با شکست مواجه میشود. بهطور پیشفرض غیرفعال است: جریانهای متوقفشده تا پایان مهلت آمادگی جریان، رفتار انتظار فعلی را حفظ میکنند.
OPENCODE_USER_BLOCKED_ROTATION boolean false اجراکنندهٔ OpenCode: هنگام دریافت 403/451 حاوی امتناع user_blocked (نه محدودیت جغرافیایی و نه رد اثر انگشت Cloudflare)، حساب ردشده را وارد دورهٔ انتظار میکند و در هر درخواست حداکثر یک بار به حساب بعدی میچرخد؛ امتناع دوم بدون علامتگذاری موفقیت، همانطور که هست بازگردانده میشود. بهطور پیشفرض غیرفعال است: دور زدن مسیریابی یک مسدودسازی کاربر از سوی سرویس بالادستی ممکن است شبیه تلاش برای فرار به نظر برسد و پرچم را در سراسر ناوگان منتشر کند.
OPENCODE_TRANSIENT_FAILOVER_BACKOFF boolean false چرخش OpenCode: پس از دو شکست موقت متوالی در سرویس بالادستی (5xx یا یک 400 با بدنهٔ خالی)، پیش از رفتن به حساب بعدی مکث میکند — از 1.5 ثانیه شروع میشود و با هر شکست بعدی دو برابر میگردد، با سقف 6 ثانیه برای هر مکث و 10 ثانیه برای هر درخواست؛ در صورت قطع اتصال کلاینت از آن صرفنظر میشود. بدنهٔ ناموفق پیش از انتظار آزاد میشود. بهطور پیشفرض غیرفعال است: انتقال به جایگزین همچنان فوری انجام میشود.
OPENCODE_RATE_LIMITED_429_EARLY_STOP boolean false چرخش OpenCode: موج حسابها را در نخستین 429 که بهعنوان محدودیت نرخ واقعی طبقهبندی شده است (دارای Retry-After قابل تجزیه یا بدنهای که از محدودیت نرخ/مصرف نام میبرد) متوقف میکند و همان 429 بالادستی را بدون تغییر بازمیگرداند. برای 429های طبقهبندینشده، چرخش ادامه مییابد. بهطور پیشفرض غیرفعال است: سطح رایگان بهازای هر IP خروجی محدود است (#9611)، بنابراین هر 429 باعث چرخش میشود و یک موج تمامشده آخرین 429 بالادستی را بازمیگرداند.
MITM_DISABLE_TLS_VERIFY boolean false تأیید گواهی TLS را برای پروکسی MITM غیرفعال میکند. خطرناک است.
OMNIROUTE_ALLOW_PRIVATE_PROVIDER_URLS boolean false URLهای ارائهدهنده را که به شبکههای خصوصی/داخلی اشاره میکنند مجاز میسازد.
OMNIROUTE_ALLOW_LOCAL_PROVIDER_URLS boolean true افزودن/اعتبارسنجی ارائهدهندگان روی آدرسهای محلی/خصوصی (127.0.0.1، localhost، LAN) را مجاز میکند. بهطور پیشفرض فعال است (اولویت با محیط محلی)؛ برای مسدودسازی سختگیرانه و محدود به آدرسهای عمومی، آن را غیرفعال کنید. فرادادهٔ ابری همچنان مسدود میماند.
ENABLE_CC_COMPATIBLE_PROVIDER boolean false حالت ارائهدهندهٔ سازگار با Claude Code را فعال میکند.

سیاستها (5)

کلید نوع پیشفرض توضیحات
TOOL_POLICY_MODE enum disabled حالت اعمال سیاست استفاده از ابزار. مقادیر: disabled، warn، block.
RATE_LIMIT_AUTO_ENABLE boolean false فعالسازی خودکار محدودسازی نرخ بر اساس الگوهای استفاده.
DISABLE_CONTEXT_WINDOW_CHECKS boolean false بررسی محلی پنجرهٔ زمینه / حداکثر توکن ورودی OmniRoute را برای درخواستهای مستقیم تکمدلی نادیده میگیرد. محدودیتهای بالادستی همچنان اعمال میشوند.
CAPABILITY_FILTER_ENABLED boolean false وقتی مدل مقصد فاقد قابلیتهای لازم (بینایی، ابزارها، خروجی ساختیافته، پنجرهٔ زمینه) باشد، درخواستها را پیش از ارسال رد میکند. از درخواستهای مستقیم تکارائهدهندهای که فیلتر سازگاری لایهٔ ترکیبی را دور میزنند، محافظت میکند.
RADAR_ENABLED boolean false ماژول Radar در OmniRoute (صفحههای فید کاتالوگ و همگامسازی) را فعال میکند. بهطور پیشفرض خاموش است؛ فعالسازی فقط رابط کاربری را در دسترس قرار میدهد — همگامسازی دادهها همچنان نیازمند اعلام رضایت جداگانه است.

زمان اجرا (32)

کلید نوع پیشفرض راهاندازی مجدد توضیحات
UNIVERSAL_CONTEXT_HANDOFF_ENABLED بولی true هنگام تغییر مدل در مسیریابی ترکیبی، خلاصههای مکالمه را تولید و تزریق میکند. برای مستقل در نظر گرفتن تغییر مدلها و جلوگیری از درخواستهای تحویل پسزمینه برای همهٔ ترکیبهای فعلی و آینده، آن را غیرفعال کنید.
RESPONSES_PASSTHROUGH_DROP_COMMENTARY بولی true آیتمهای خروجی داخلیِ مرحلهٔ توضیحات را پیش از ارسال به کلاینتها، از جریانهای عبوری Responses API حذف میکند. برای دریافت توضیحات خام بالادستی، آن را غیرفعال کنید.
OMNIROUTE_MCP_ENFORCE_SCOPES بولی true محدودیتهای دامنه را برای دسترسی به ابزارهای MCP اعمال میکند.
OMNIROUTE_MCP_COMPRESS_DESCRIPTIONS بولی false برای کاهش مصرف توکن، توضیحات ابزارهای MCP را فشرده میکند.
OMNIROUTE_ENABLE_RUNTIME_BACKGROUND_TASKS بولی false پردازش وظایف پسزمینه را در زمان اجرا فعال میکند.
OMNIROUTE_DISABLE_BACKGROUND_SERVICES بولی false همهٔ سرویسهای پسزمینه (نوسازی سهمیه، همگامسازی و غیره) را غیرفعال میکند.
OMNIROUTE_RTK_TRUST_PROJECT_FILTERS بولی false بدون اعتبارسنجی به فیلترهای RTK در سطح پروژه اعتماد میکند.
OMNIROUTE_ENABLE_LIVE_WS بولی true سرور WebSocket داشبورد بلادرنگ را هنگام import راهاندازی میکند (بهطور پیشفرض روی پورت 20132).
OMNIROUTE_CODEX_WS_ENABLED بولی true به Codex اجازه میدهد از انتقال Responses-over-WebSocket استفاده کند. در صورت خاموش بودن، Codex به HTTP Responses برمیگردد.
OMNIROUTE_CODEX_APP_SERVER_ENABLED بولی true به Codex اجازه میدهد از انتقال محلی WebSocket JSON-RPC مربوط به app-server استفاده کند (codexTransport=app-server). در صورت خاموش بودن، اتصالهایی که app-server را انتخاب کردهاند به سایر روشهای انتقال Codex برمیگردند.
OMNIROUTE_EMERGENCY_FALLBACK بولی true درخواستهایی را که بودجهشان تمام شده است به ارائهدهنده/مدل جایگزین رایگان اضطراری هدایت میکند. (بخش جایگزین اضطراری بودجه را در ادامه ببینید.)
STREAM_RECOVERY_ENABLED بولی false پیش از آنکه هرگونه بایت پاسخ به کلاینت برسد، تلاش مجدد زودهنگام و شفاف را برای جریانهای SSE بالادستیِ ناقص فعال میکند.
STREAM_RECOVERY_MIDSTREAM_ENABLED بولی false به بازیابی جریان اجازه میدهد پس از رسیدن بایتها به کلاینت نیز پاسخ را دوباره درخواست کرده و به جریان قبلی متصل کند.
STREAM_RECOVERY_TOOLCALL_ORDER_FIX بولی false ادامه دادن در میانهٔ جریان را برای فراخوانی ابزار ایمن میکند: پس از انتشار یک فراخوانی ابزار، چه در حال اجرا باشد و چه پیشتر با finish_reason برابر با tool_calls پایان یافته باشد، هرگز جریان قطعشده را از سر نمیگیرد و بهجای مصرف کل بودجه، پس از یک ادامهٔ خالی اتصال را میبندد. حالت خاموش: رفتار نسخهٔ انتشاریافته.
STREAM_EARLY_EOF_SIBLING_FAILOVER_ENABLED بولی false وقتی یک جریان SSE پیش از انتشار هر فریم مفیدی بسته شود و تلاش مجدد محدود روی همان اتصال نیز مصرف شده باشد، یکبار به اتصال همتای دیگری سوییچ میکند؛ اگر همتای قابلاستفادهای وجود نداشته باشد، پاسخ اصلی 502 با STREAM_EARLY_EOF بازگردانده میشود. بهطور پیشفرض خاموش است: EOF زودهنگام پس از تلاش مجدد روی همان اتصال، نهایی باقی میماند.
MODEL_CATALOG_INCLUDE_NAMES بولی true فیلدهای نام مناسب برای نمایش را در پاسخهای /v1/models قرار میدهد. برای کلاینتهایی که فقط شناسههای مدل را انتظار دارند، آن را غیرفعال کنید.
MODELS_CATALOG_PREFIX_MODE شمارشی dual نحوهٔ پیشوندگذاری شناسههای مدل در /v1/models را کنترل میکند. 'dual' (پیشفرض) برای سازگاری عقبرو، هم پیشوند نام مستعار و هم پیشوند شناسهٔ رسمی ارائهدهنده را منتشر میکند. 'alias' فقط پیشوند کوتاه نام مستعار را منتشر میکند (برای مثال ds-web/model، نه deepseek-web/model). 'canonical' فقط پیشوند کامل شناسهٔ ارائهدهنده را منتشر میکند. مقادیر: dual، alias، canonical.
ARENA_ELO_SYNC_ENABLED بولی true همگامسازی دورهای ELO با جدول رتبهبندی Arena AI را برای رتبهبندی هوشمندی مدلها فعال میکند.
EXPOSE_CC_DISCOVERY_ALIASES بولی false شناسههای آینهای claude/<provider>/<model> را در /v1/models اعلام میکند تا کشف مدل در درگاه Claude Code، مدلهای غیر Claude را فهرست کند. این گزینه سطح سراسریِ دروازهٔ سهسطحی است (متغیر محیطی بر تنظیم داشبورد اولویت دارد). بخش پیکربندی Claude Code را ببینید.
NO_THINKING_ALIAS_ENABLED بولی true کلید اصلی برای نامهای مستعار درگاه no-think//. حالت روشن (پیشفرض): /v1/models برای هر مدل واجد شرایط Claude که قابلیت تفکر دارد، یک گونهٔ بدون تفکر اعلام میکند و شناسهٔ no-think/ ارسالشده در درخواست با سرکوب استدلال به مدل واقعی بازگردانی میشود. حالت خاموش: هیچ گونهای اعلام نمیشود و شناسهٔ no-think/ مانند هر شناسهٔ مدل ناشناختهٔ دیگری در نظر گرفته میشود. تا زمانی که این گزینه روشن است، انتخاب فعال/غیرفعالسازی جداگانهٔ هر مدل با ModelSpec.noThinkingAlias همچنان اعمال میشود.
OMNIROUTE_DISABLE_THINKING_LEVEL_VARIANTS بولی false تولید گونههای سطح تفکر (برای مثال -low، -medium، -high) را در کاتالوگ /v1/models غیرفعال میکند.
OMNIROUTE_CHAT_VIRTUAL_LANES بولی false مسیرهای پذیرش مجازی تطبیقی بهازای هر مستأجر را برای ارسال به ارائهدهنده فعال میکند (#9654): جهش بار یک مستأجر دیگر باعث خطای 503 برای مستأجر دیگری نمیشود. متغیر محیطی OMNIROUTE_CHAT_VIRTUAL_LANES بر این تنظیم داشبورد اولویت دارد؛ تغییرات پس از راهاندازی مجدد سرور اعمال میشوند.
EXPOSE_FUNCTIONAL_GATEWAY_MIRRORS بولی false شناسههای آینهای / را در /v1/models برای مدلهایی اعلام میکند که مالک رسمی آنها اعتبارنامهٔ فعالی ندارد، اما یک درگاه عبوری دارای اعتبارنامهٔ فعال آنها را مسیریابی میکند. هشدار: در صورت فعالسازی سراسری، ورودیهایی را برای همهٔ کلاینتها به کاتالوگ اضافه میکند.
NEWAPI_AGGREGATOR_BALANCE بولی false تشخیص موجودی را برای گرههای تجمیعکنندهٔ سازگار با New-API / One-API / Sub2API فعال میکند. در صورت فعال بودن، گرههای سازگاری که پرچم تجمیعکننده برایشان تنظیم شده است، موجودی خود را در داشبورد و مسیریابی پیشبررسی سهمیه گزارش میکنند.
SERVER_OWNED_TOOL_LOOP_ENABLED بولی false فراخوانیهای غیرجریانی ابزار تحت مالکیت سرور را تا زمانی ادامه میدهد که مدل پاسخی قابلاستفاده برای کلاینت بازگرداند.
SEARCH_STATS_HIDE_DELETED_CONNECTIONS بولی false آمار جستوجو و جستوجوهای اخیر فقط ارائهدهندگانی را محاسبه میکنند که همچنان اتصال فعالی دارند (ارائهدهندگان بدون کلید مانند duckduckgo-free همیشه محاسبه میشوند). در حالت خاموش، هر ردیف جستوجوی نگهداریشده که دارای شناسهٔ ارائهدهنده است حفظ میشود.
FREE_BADGE_REQUIRES_PROVIDER_FREE_TIER بولی false صفحههای ارائهدهندگان در داشبورد: نشان رایگان را فقط براساس سیگنالهایی نمایش میدهد که ارائهدهنده به آنها پایبند است — روش ابتکاری مبتنی بر نام نمایشی، فیلدهای رایگان غیربولی و پسوندهای :free را برای ارائهدهندگان ثبتشدهای که سطح رایگان مستندی ندارند کنار میگذارد. حالت خاموش، قاعدهٔ تاریخی نمایش نشان را حفظ میکند.
RETRY_AFTER_PROVENANCE_ENABLED بولی false در پاسخهای تجمیعشدهٔ عدم دسترسی 429/503، هنگامی که زمان مشخصی برای تلاش مجدد در آینده معلوم نیست، Retry-After را حذف میکند (بهجای مقدار ساختگی 1s)، فیلد error.retry_after_provenance (signal | none) را اضافه میکند و به مسیرهای تخلیهٔ ترکیب اجازه میدهد راهنمای متنی تلاش مجدد را از بدنههای بالادستی JSON و متن ساده بخوانند. این فیلد فقط در پاسخهایی ظاهر میشود که توسط unavailableResponse() ساخته شدهاند؛ سایر بدنههای 429/503 بدون تغییر میمانند.
PROTECTED_PRIORITY_INFRA_502_ENABLED بولی false وقتی یک مقصد ترکیبی priority که بهعنوان «فقط هنگام اتمام سهمیه جایگزین شود» علامتگذاری شده است، ترکیب را به دلیلی که بهطور اثباتپذیر سهمیه نیست متوقف کند (باز بودن قطعکنندهٔ مدار ارائهدهنده، رد شدن بهعلت تأخیر پیشبینیشده)، بهجای 503 شبیه خطای سهمیه، پاسخ 502 میدهد. توقفهای ناشی از قفل، دورهٔ انتظار، عدم دسترسی، اتمام منابع و سقف همزمانی همچنان 503 برمیگردانند.
MISTRAL_AMBIGUOUS_401_SOFT_LOCKOUT بولی false یک پاسخ سادهٔ 401 از Mistral ({"detail":"Unauthorized"}، بدون سیگنال صریح احراز هویت) برای کلید لغوشده و سهمیهٔ تمامشده یکسان است. در حالت روشن، بهجای کنار گذاشتن اتصال با وضعیت expired، آن را وارد دورهٔ انتظار میکند؛ حداکثر 3 بار در ساعت برای هر اتصال. مورد بعدی اتصال را کنار میگذارد، بنابراین کلید لغوشده همچنان در نهایت شناسایی میشود. بهطور پیشفرض خاموش است: هر پاسخ سادهٔ 401 از Mistral مانند گذشته اتصال را کنار میگذارد.
XAI_OAUTH_LIVE_MODEL_DISCOVERY بولی false کاتالوگ زندهٔ مدلهای xAI را برای اتصالهای xai-oauth با استفاده از توکن حامل OAuth از https://api.x.ai/v1/models دریافت میکند، بهجای آنکه از دادهٔ اولیهٔ ایستای منجمدشده استفاده کند. بهطور پیشفرض خاموش است: xai-oauth همچنان دادهٔ اولیهٔ ایستا را بدون تغییر ارائه میکند. در صورت بروز هرگونه خطای تفکیک، کشف مدل به دادهٔ اولیه بازمیگردد (پذیرش توکن حامل OAuth توسط x.ai در این نقطهٔ پایانی تأیید نشده است).
BATCH_AND_FILE_AUTO_CLEANUP_ENABLED بولی false به پاکسازی خودکار اجازه میدهد کارهای نهاییشدهٔ Batch API (completed/failed/cancelled/expired) قدیمیتر از OMNIROUTE_BATCH_RETENTION_DAYS را همراه با نقاط وارسی هر خط حذف کند و محتوای BLOB فایلهای بارگذاریشدهای را که از expires_at خود گذشتهاند پاک کند. بهطور پیشفرض خاموش است: تا زمانی که اپراتور آن را فعال نکند، همهٔ نصبهای موجود این دادهها را دقیقاً مانند گذشته نگه میدارند. مسیر DELETE /api/v1/batches/delete-completed که توسط اپراتور اجرا میشود در هر دو حالت بیتأثیر میماند — این مسیر یک قرارداد عمومی API جداگانه و بدون شرط است.

CLI (5)

کلید نوع پیشفرض راهاندازی مجدد توضیحات
CLI_COMPAT_ALL boolean false حالت سازگاری را برای همه کلاینتهای CLI فعال میکند.
MODEL_ALIAS_COMPAT_ENABLED boolean false لایه سازگاری نام مستعار مدل را فعال میکند.
PRICING_SYNC_ENABLED boolean false همگامسازی خودکار دادههای قیمتگذاری را فعال میکند (همچنین به متغیر محیطی PRICING_SYNC_ENABLED نیاز دارد).
OMNIROUTE_AUTO_SYNC_CODEX_PROFILES boolean false پس از همگامسازی مدل ارائهدهنده، فایلهای پروفایل ~/.codex/*.config.toml را بهصورت خودکار بر اساس کاتالوگ فعال (باز)نویسی میکند. پیکربندی فعال/پیشفرض Codex هرگز تغییر نمیکند. بهطور پیشفرض غیرفعال است.
OMNIROUTE_AUTO_SYNC_CLAUDE_PROFILES boolean false پس از همگامسازی مدل ارائهدهنده، پروفایلهای Claude Code در ~/.claude/profiles//settings.json را بهصورت خودکار بر اساس کاتالوگ فعال (باز)نویسی میکند. پیکربندی فعال/پیشفرض Claude هرگز تغییر نمیکند. بهطور پیشفرض غیرفعال است.

سلامت (5)

کلید نوع پیشفرض توضیحات
OMNIROUTE_DISABLE_LOCAL_HEALTHCHECK boolean false نقطه پایانی بررسی سلامت نمونه محلی را غیرفعال میکند.
OMNIROUTE_DISABLE_TOKEN_HEALTHCHECK boolean false بررسی سلامت اعتبارسنجی توکن را غیرفعال میکند.
SKILLS_SANDBOX_NETWORK_ENABLED boolean false دسترسی به شبکه را در محیط سندباکس مهارتها فعال میکند.
PROXY_HEALTH_BLOCKED_RESETS_STREAK boolean false در پیمایش سلامت پروکسی، کاوشی که هدف آن را رد کرده است (401/403/429)، زنجیره شکستهای متوالی پروکسی را بازنشانی میکند. بهطور پیشفرض غیرفعال است: یک رد درخواست خنثی باقی میماند (#10654). پاسخ 5xx در هر دو حالت نامشخص باقی میماند؛ رد درخواست هرگز پروکسی را حذف، غیرفعال یا دوباره فعال نمیکند.
DB_HEALTHCHECK_STARTUP_DEFERRED_ENABLED boolean false بررسی یکپارچگی/سلامت DB هنگام راهاندازی را پس از آغاز پذیرش درخواستها توسط سرور (از طریق setImmediate) اجرا میکند، بهجای اینکه راهاندازی را تا تکمیل آن مسدود کند (#13717). بهطور پیشفرض غیرفعال است: راهاندازی دقیقاً مانند قبل از این PR مسدود میشود.

Note

INPUT_SANITIZER_BLOCK_THRESHOLD و نام مستعار قدیمی آن INJECTION_GUARD_BLOCK_THRESHOLD حالت block مربوط به INJECTION_GUARD_MODE را تنظیم میکنند، اما متغیرهای محیطی سادهای هستند که توسط src/shared/utils/injectionSeverity.ts خوانده میشوند، نه پرچمهای ویژگی: آنها نه بازنویسی DB دارند و نه کلید تغییر وضعیت در داشبورد. مراجعه کنید به ENVIRONMENT.md.

Note

ستون راهاندازی مجدد پرچمهای دارای requiresRestart: true را مشخص میکند — مقدار فوراً ذخیره میشود، اما تنها پس از بارگذاری مجدد فرایند اعمال میشود. پرچمهای enum هر مقداری خارج از مجموعه مجاز خود را رد میکنند (اعتبارسنجی در سمت سرور هم در setFeatureFlagOverride() و هم در کنترلکننده REST PUT انجام میشود).


تغییر وضعیت پرچمها

داشبورد

به داشبورد ← تنظیمات ← پرچمهای ویژگی (/dashboard/settings/feature-flags) بروید. شبکهٔ (src/app/(dashboard)/dashboard/settings/components/FeatureFlagsGrid.tsx) از موارد زیر پشتیبانی میکند:

  • جستوجو بر اساس کلید یا توضیحات و فیلتر بر اساس دستهبندی (بهعلاوهٔ نمای ساختگی نیازمند راهاندازی مجدد).
  • یک کلید تغییر وضعیت برای پرچمهای بولی و یک فهرست کشویی برای پرچمهای enum (src/app/(dashboard)/dashboard/settings/components/FeatureFlagCard.tsx).
  • یک نشان منبع برای هر پرچم — DB، ENV یا DEF — که نشان میدهد مقدار مؤثر از کجا آمده است.
  • یک دکمهٔ بازنشانی (که فقط برای پرچمهای دارای منبع DB نمایش داده میشود) برای حذف مقدار بازنویسیشده، و یک دکمهٔ بازنشانی همهٔ مقادیر بازنویسیشده در پایین صفحه.
  • هنگام تغییر پرچمی با ویژگی requiresRestart، یک بنر راهاندازی مجدد سرور نمایش داده میشود.

API مبتنی بر REST

همهٔ عملیات از طریق یک مسیر واحد انجام میشوند: src/app/api/settings/feature-flags/route.ts. هر متد به یک نشست احراز هویتشدهٔ داشبورد نیاز دارد (در غیر این صورت 401).

GET /api/settings/feature-flags

همهٔ پرچمها را همراه با مقدار مؤثر، منبع و یک خلاصه برمیگرداند.

{
  "flags": [
    {
      "key": "REQUIRE_API_KEY",
      "label": "Require API Key",
      "description": "Require an API key for all incoming requests",
      "category": "security",
      "type": "boolean",
      "enumValues": null,
      "defaultValue": "false",
      "effectiveValue": "false",
      "source": "default", // "db" | "env" | "default"
      "requiresRestart": false,
      "warningLevel": "caution",
    },
    // ... همهٔ 72 پرچم
  ],
  "summary": {
    "total": 56,
    "active": 0,
    "inactive": 0,
    "overriddenByDb": 0,
    "overriddenByEnv": 0,
  },
}

PUT /api/settings/feature-flags

یک مقدار بازنویسیشده را برای یک پرچم تنظیم یا حذف میکند. بدنه: { key: string; value?: string }. حذف value از بدنه، مقدار بازنویسیشده را حذف میکند (و مقدار env / پیشفرض را بازمیگرداند).

# تنظیم یک مقدار بازنویسیشده در DB
curl -X PUT http://localhost:20128/api/settings/feature-flags \
  -H "Content-Type: application/json" \
  -d '{"key":"REQUIRE_API_KEY","value":"true"}'

# حذف مقدار بازنویسیشده (بدون "value")
curl -X PUT http://localhost:20128/api/settings/feature-flags \
  -H "Content-Type: application/json" \
  -d '{"key":"REQUIRE_API_KEY"}'

پاسخ، effectiveValue/source جدید، previousValue/ previousSource و requiresRestart را بازتاب میدهد. کلیدهای ناشناخته و مقادیر enum خارج از محدوده با 400 رد میشوند.

DELETE /api/settings/feature-flags

همهٔ مقادیر بازنویسیشدهٔ DB را یکباره پاک میکند و هر پرچم را به مقدار env / پیشفرض آن بازمیگرداند. { cleared: <count>, message: "..." } را برمیگرداند.

Note

پرچمهایی با requiresRestart: true فقط پس از بارگذاری مجدد فرایند اعمال میشوند. جریان راهاندازی مجدد داشبورد، POST /api/restart را فراخوانی میکند و سپس تا زمانی که سرور دوباره در دسترس قرار گیرد، GET /api/health/ping را بهطور دورهای بررسی میکند.


مسیر جایگزین اضطراری بودجه

OMNIROUTE_EMERGENCY_FALLBACK (دستهبندی runtime، مقدار پیشفرض true) مسیر جایگزین رایگان اضطراری را در open-sse/services/emergencyFallback.ts کنترل میکند. هنگامی که فعال باشد، درخواستهایی که بودجهٔ خود را تمام میکنند، بهجای شکست کامل به یک ارائهدهنده/مدل جایگزین رایگان هدایت میشوند. برای غیرفعال کردن این رفتار و شکست خوردن درخواستهایی که بودجهشان تمام شده است، آن را — از طریق کلید تغییر وضعیت داشبورد، یک مقدار بازنویسیشده در DB یا متغیر محیطی OMNIROUTE_EMERGENCY_FALLBACK — روی false (یا 0) تنظیم کنید. (در PRهای #3741 / #3752 بهصورت یک کلید تغییر وضعیت در داشبورد ارائه شده است.)


همچنین ببینید