* 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.
85 KiB
Feature Flags (မြန်မာ)
🌐 Languages: 🇺🇸 English · 🇪🇹 am · 🇸🇦 ar · 🇦🇿 az · 🇧🇬 bg · 🇧🇩 bn · 🇨🇿 cs · 🇩🇰 da · 🇩🇪 de · 🇬🇷 el · 🇪🇸 es · 🇪🇪 et · 🇮🇷 fa · 🇫🇮 fi · 🇫🇷 fr · 🇮🇪 ga · 🇮🇳 gu · 🇳🇬 ha · 🇮🇱 he · 🇮🇳 hi · 🇭🇷 hr · 🇭🇺 hu · 🇦🇲 hy · 🇮🇩 id · 🇳🇬 ig · 🇮🇹 it · 🇯🇵 ja · 🇬🇪 ka · 🇰🇭 km · 🇮🇳 kn · 🇰🇷 ko · 🇱🇹 lt · 🇱🇻 lv · 🇮🇳 ml · 🇮🇳 mr · 🇲🇾 ms · 🇲🇹 mt · 🇳🇵 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
ပြန်လည် deploy လုပ်စရာမလိုဘဲ OmniRoute ၏ လုပ်ဆောင်ပုံကို ပြောင်းလဲနိုင်သည့် runtime toggle များ။ ဤနေရာတွင် ဖော်ပြထားသည့် flag တိုင်းကို
src/shared/constants/featureFlagDefinitions.tsတွင် သတ်မှတ်ထားသည် — ၎င်းသည် တစ်ခုတည်းသော မှန်ကန်သည့် အချက်အလက်ရင်းမြစ်ဖြစ်သည်။ Dashboard နှင့် REST API နှစ်ခုစလုံးသည် ထိုဖိုင်မှ ဖတ်ရှုကြသောကြောင့် အောက်ပါဇယားကို ၎င်းနှင့် 1:1 ကိုက်ညီစေရန် ထုတ်လုပ်ထားသည်။
Feature Flag ဆိုသည်မှာ အဘယ်နည်း
Feature flag ဆိုသည်မှာ အမည်သတ်မှတ်ထားသော toggle (boolean သို့မဟုတ် enum) တစ်ခုဖြစ်ပြီး ၎င်း၏တန်ဖိုးကို
runtime တွင် ပြောင်းလဲ၍ database ထဲတွင် အမြဲတမ်းသိမ်းဆည်းထားနိုင်ကာ process ကို ပြန်လည် deploy လုပ်ရန် မလိုအပ်ပါ။ Flag တစ်ခုချင်းစီကို
key, label, description, category, defaultValue, type နှင့် requiresRestart အရိပ်အမြွက်တို့ ပါဝင်သော FeatureFlagDefinition ဖြင့် ဖော်ပြထားသည်။
တန်ဖိုးဖြေရှင်းမှု အစီအစဉ်
Flag တစ်ခု၏ အကျိုးသက်ရောက်နေသောတန်ဖိုး ကို
resolveFeatureFlag() က အောက်ပါ ဦးစားပေးအစီအစဉ်အတိုင်း ဖြေရှင်းသည် (အမြင့်ဆုံးက အနိုင်ရသည်) -
- DB override —
feature_flagsnamespace အောက်ရှိkey_valueဇယားတွင် သိမ်းဆည်းထားသော တန်ဖိုးတစ်ခု (dashboard သို့မဟုတ် REST API မှတစ်ဆင့် သတ်မှတ်ထားသည်)။ - Environment variable — သတ်မှတ်ထားပြီး အလွတ်မဟုတ်ပါက
process.env[<KEY>]။ - သတ်မှတ်ချက်၏ မူလတန်ဖိုး —
featureFlagDefinitions.tsမှdefaultValue။
Boolean flag တစ်ခု၏ အကျိုးသက်ရောက်နေသောတန်ဖိုးသည် "true",
"1" သို့မဟုတ် "yes" ဖြစ်ပါက ဖွင့်ထားသည် ဟု သတ်မှတ်သည်
(isFeatureFlagEnabled() ကို ကြည့်ပါ)။
Note
Flag အများစုတွင်
ENVIRONMENT.md၌ မှတ်တမ်းတင်ထားသော အမည်တူ environment variable တစ်ခုလည်း ရှိသည်။ Flag ၏ DB override သည် ထို environment variable ထက် ဦးစားပေးသည်။requiresRestart: trueပါသော flag ကို ချက်ချင်း အမြဲတမ်းသိမ်းဆည်းသော်လည်း process စတင်ချိန်တွင်သာ ပြန်လည်ဖတ်ရှုသည် — ၎င်းကို toggle လုပ်ပါက dashboard တွင် "Server ကို ပြန်လည်စတင်ပါ" banner တစ်ခု ပေါ်လာသည်။
Flag စာရင်း
Category 6 ခုတွင် flag 72 ခုရှိသည်။ မူလတန်ဖိုး ဆိုသည်မှာ သတ်မှတ်ချက်၏ မူလတန်ဖိုးဖြစ်ပြီး — DB override နှင့် environment variable နှစ်ခုစလုံး မရှိသည့်အခါ အသုံးပြုသည့်တန်ဖိုးဖြစ်သည်။
လုံခြုံရေး (10)
| Key | အမျိုးအစား | မူလတန်ဖိုး | ဖော်ပြချက် |
|---|---|---|---|
REQUIRE_API_KEY |
boolean | false |
ဝင်လာသော request အားလုံးအတွက် API key တစ်ခု လိုအပ်စေသည်။ |
INPUT_SANITIZER_ENABLED |
boolean | true |
Request အားလုံးအတွက် input sanitization ကို ဖွင့်ပေးသည်။ |
INJECTION_GUARD_MODE |
enum | off |
Prompt injection ကာကွယ်မှု mode။ တန်ဖိုးများ - off, warn, block, redact။ |
PII_REDACTION_ENABLED |
boolean | false |
Request များမှ PII ကို ဖုံးကွယ်သည် (INPUT_SANITIZER_MODE နှင့် သီးခြားဖြစ်သည်)။ |
PII_RESPONSE_SANITIZATION |
boolean | false |
Provider response များမှ PII ကို သန့်စင်ဖယ်ရှားသည်။ |
PII_RESPONSE_SANITIZATION_MODE |
enum | redact |
PII response sanitization အတွက် mode။ တန်ဖိုးများ - redact, warn, block, off။ |
OUTBOUND_SSRF_GUARD_ENABLED |
boolean | true |
Private/internal IP range များသို့ အပြင်ထွက် request ပို့ခြင်းကို ပိတ်ဆို့သည်။ |
ALLOW_API_KEY_REVEAL |
boolean | false |
အထောက်အထားစစ်ဆေးပြီးသော dashboard အသုံးပြုသူများအား ဖုံးကွယ်ထားသောတန်ဖိုးများကိုသာ မြင်စေမည့်အစား သိမ်းဆည်းထားသော API key များကို ဖော်ပြကြည့်ရှုခွင့်ပေးသည်။ |
AUTH_LOG_INCLUDE_ACCOUNT_ID |
boolean | false |
AUTH log စာကြောင်းများတွင် account prefix ကို ထည့်သွင်းသည် (ဥပမာ "အသုံးပြုနေသော account: abc12345...")။ မျှဝေသုံးစွဲသော/multi-tenant process log များမှ account identifier များကို ဖုံးကွယ်ထားနိုင်ရန် မူလအားဖြင့် ပိတ်ထားသည်။ Debug Mode နှင့် သီးခြားဖြစ်ပြီး Debug Mode ကို ပြောင်းလဲခြင်းက ဤအချက်အလက်ကို မဖော်ပြပါ။ |
OMNIROUTE_OIDC_DISABLE_PASSWORD_LOGIN |
boolean | false |
OIDC ကို ဖွင့်ထားသည့်အခါ အသုံးပြုသူများသည် OIDC Single Sign-On မှတစ်ဆင့်သာ အထောက်အထားစစ်ဆေးနိုင်စေရန် password login ကို ပိတ်သည်။ ပိတ်ထားသည့်အခါ (မူလအခြေအနေ) password login နှင့် OIDC နှစ်ခုစလုံးကို အသုံးပြုနိုင်သည်။ |
ကွန်ရက် (15)
| ကီး | အမျိုးအစား | မူလတန်ဖိုး | ပြန်လည်စတင်ရန် | ဖော်ပြချက် |
|---|---|---|---|---|
ENABLE_TLS_FINGERPRINT |
boolean | false |
✓ | TLS fingerprint ကို ဖုံးကွယ်သည့်မုဒ်ကို ဖွင့်ပါ။ |
AUDIO_REMOTE_PROVIDER_NODES |
boolean | false |
/v1/audio/* လမ်းကြောင်းများအား localhost ပြင်ပတွင် လက်ခံထားသော OpenAI-compatible provider node များကို အသုံးပြုခွင့်ပေးပါ။ မူလအားဖြင့် ပိတ်ထားသည် — audio ကို remote host တစ်ခုသို့ လမ်းကြောင်းပေးခြင်းက အထွက်ချိတ်ဆက်မှု၏ identity ကို ပြောင်းလဲစေသောကြောင့် operator က အတိအလင်း ဆုံးဖြတ်ရမည်။ Loopback node များကို အမြဲတမ်း ခွင့်ပြုထားပြီး သက်ရောက်မှုမရှိပါ။ | |
PROXY_AUTO_SELECT_ENABLED |
boolean | false |
ချိတ်ဆက်မှုတစ်ခုအတွက် proxy သတ်မှတ်မထားသည့်အခါ registry ထဲမှ ပထမဆုံး အလုပ်လုပ်သော proxy ကို အလိုအလျောက် ရွေးချယ်ပါ။ မူလအားဖြင့် ပိတ်ထားသည် (မဟုတ်ပါက registry ရှိ မည်သည့် proxy မဆို global fallback ဖြစ်လာမည် — #3332)။ | |
OMNIROUTE_CONTROL_PLANE_PROXY_DIRECT_FALLBACK |
boolean | false |
Proxy ချိတ်ဆက်ရောက်ရှိနိုင်မှုကို ကြိုတင်စစ်ဆေးရာတွင် မအောင်မြင်ပါက OAuth နှင့် provider validation flow များအား သတ်မှတ်ပိတ်ထားသော proxy ကို ကျော်ပြီး တိုက်ရိုက်ချိတ်ဆက်ခွင့်ပေးပါ။ ၎င်းသည် အထွက် IP ကို ပြောင်းလဲစေနိုင်သောကြောင့် မူလအားဖြင့် ပိတ်ထားသည်။ | |
NETWORK_ROTATION_SHARED_EGRESS_GUARD |
boolean | true |
Account အများအပြားကို လှည့်လည်အသုံးပြုသည့် executor တစ်ခုတွင် network exception (timeout၊ connection refused/reset) ဖြစ်ပြီး မအောင်မြင်သော account အတွက် သီးသန့် proxy မရှိပါက account တစ်ခုချင်းစီကို ထပ်မံကြိုးစားမည့်အစား cooldown အတိုတစ်ခု သတ်မှတ်ကာ ကျန် request ကာလအတွင်း proxy မရှိသော အခြား account များကို ကျော်လိုက်ပါ။ မူလအားဖြင့် ဖွင့်ထားသည် (ဘေးကင်းသည်—အထွက် IP မပြောင်းလဲဘဲ shared-egress account များတွင် latency/cooldown အန္တရာယ်ကိုသာ လျှော့ချပေးသည်)။ ပထမဆုံး proxy မရှိသော throw တွင် ချက်ချင်း propagation ပြန်ဖြစ်စေရန် ပိတ်ပါ။ | |
PROXY_SKIP_RECENTLY_FAILED |
boolean | false |
Proxy pool များနှင့် opencode ၏ account အလိုက် rotation သည် မကြာသေးမီက မအောင်မြင်ခဲ့သော proxy (ငြင်းပယ်ခံရသော TCP probe သို့မဟုတ် ၎င်းမှတစ်ဆင့် လက်ခံရရှိသည့် 429) ကို process တစ်ခုချင်းစီအလိုက် သတ်မှတ်ထားသော ကာလအတွင်း ထပ်မံအသုံးမပြုတော့ပါ။ ထိုကာလသည် ထပ်မံမအောင်မြင်တိုင်း နှစ်ဆတိုးလာပြီး သတ်မှတ်အမြင့်ဆုံးအထိသာ ရောက်မည်။ Proxy status တစ်စုံတစ်ရာကို ရေးသားမည်မဟုတ်ပါ။ Candidate အားလုံးကို ဘေးဖယ်ထားပါက ရွေးချယ်မှုသည် မပြောင်းလဲပါ။ မူလအားဖြင့် ပိတ်ထားသည်။ | |
PROXY_POOL_EGRESS_OBSERVATION |
boolean | false |
Dashboard ရှိ proxy pool အောက်တွင် လွန်ခဲ့သော 24 h အတွင်း ၎င်း၏ member များကို ဝန်ဆောင်မှုပေးခဲ့သော တွေ့ရှိထားသည့် အထွက် IP အရေအတွက်နှင့် ၎င်းတို့ကို အသုံးပြုခဲ့သည့် ချိတ်ဆက်မှုအရေအတွက်ကို ပြပါ။ Read-only ဖြစ်ပြီး proxy log မှ တွက်ချက်ထားကာ routing အတွက် မည်သည့်အခါမျှ အသုံးမပြုပါ။ မူလအားဖြင့် ပိတ်ထားသည်။ | |
OPENCODE_RESPONSES_STALL_ROTATION |
boolean | false |
OpenCode executor အတွက် streamed Responses reply ၏ ပထမဆုံး body byte ကို စောင့်ကြည့်ပါ (အချိန်အပိုင်းအခြား—RESPONSES_FIRST_BYTE_TIMEOUT_MS၊ မူလ 15000)။ အချိန်အပိုင်းအခြား ကျော်လွန်သည်အထိ တိတ်ဆိတ်နေသော 2xx Responses stream ကို ရပ်တန့်နေသည်ဟု သတ်မှတ်ပြီး account ကို cooldown ချကာ request ကို နောက် account သို့ တစ်ကြိမ်သာ လှည့်ပေးမည်။ ဒုတိယအကြိမ် ရပ်တန့်ပါက ချက်ချင်း မအောင်မြင်ဟု သတ်မှတ်မည်။ မူလအားဖြင့် ပိတ်ထားသည်—ရပ်တန့်နေသော stream များသည် ယနေ့အသုံးပြုနေသည့် stream readiness timeout အထိ ဆက်လက်စောင့်ဆိုင်းမည်။ |
|
OPENCODE_USER_BLOCKED_ROTATION |
boolean | false |
OpenCode executor—user_blocked ငြင်းပယ်မှုပါရှိသည့် 403/451 (geo ကြောင့်မဟုတ်သလို Cloudflare fingerprint rejection လည်း မဟုတ်ပါ) ဖြစ်ပါက ငြင်းပယ်ခံရသော account ကို cooldown ချပြီး request တစ်ခုလျှင် အများဆုံး တစ်ကြိမ်သာ နောက် account သို့ လှည့်ပေးပါ။ ဒုတိယအကြိမ် ငြင်းပယ်မှုကို success mark မပါဘဲ မူလအတိုင်း ပြန်ပေးမည်။ မူလအားဖြင့် ပိတ်ထားသည်—upstream user block ကို ရှောင်ကွင်း၍ routing လုပ်ခြင်းသည် ရှောင်တိမ်းမှုကဲ့သို့ ထင်ရနိုင်ပြီး flag ကို fleet တစ်ခုလုံးသို့ ပျံ့နှံ့စေနိုင်သည်။ |
|
OPENCODE_TRANSIENT_FAILOVER_BACKOFF |
boolean | false |
OpenCode အလှည့်ကျအသုံးပြုမှု—ယာယီ upstream ချို့ယွင်းမှု (5xx သို့မဟုတ် body အလွတ်ပါသော 400) နှစ်ကြိမ်ဆက်တိုက်ဖြစ်ပေါ်ပြီးနောက် နောက် account သို့မပြောင်းမီ ခေတ္တစောင့်ဆိုင်းသည်—ထပ်မံဖြစ်ပေါ်သော ချို့ယွင်းမှုတစ်ကြိမ်စီအတွက် 1.5s မှစ၍ နှစ်ဆတိုးမည်ဖြစ်ပြီး စောင့်ဆိုင်းမှုတစ်ကြိမ်လျှင် အများဆုံး 6s နှင့် request တစ်ခုလျှင် အများဆုံး 10s သတ်မှတ်ထားကာ client ချိတ်ဆက်မှုပြတ်တောက်ပါက ကျော်သွားမည်၊ စောင့်ဆိုင်းခြင်းမပြုမီ ချို့ယွင်းသွားသော body ကို လွှတ်ပေးမည်။ မူလအတိုင်း ပိတ်ထားသည်—failover ကို ချက်ချင်းဆက်လုပ်မည်။ | |
OPENCODE_RATE_LIMITED_429_EARLY_STOP |
boolean | false |
OpenCode အလှည့်ကျအသုံးပြုမှု—အမှန်တကယ် rate limit အဖြစ် သတ်မှတ်ထားသော ပထမဆုံး 429 (Retry-After ကို parse လုပ်နိုင်ခြင်း သို့မဟုတ် body တွင် rate/usage limit ကို ဖော်ပြထားခြင်း) တွင် account အလှည့်ကို ရပ်တန့်ပြီး ထို upstream 429 ကို မပြောင်းလဲဘဲ ပြန်ပေးသည်။ သတ်မှတ်ခွဲခြားမထားသော 429 များအတွက် ဆက်လက်အလှည့်ကျမည်။ မူလအတိုင်း ပိတ်ထားသည်—free tier ကို egress IP တစ်ခုချင်းစီအလိုက် ကန့်သတ်ထားသောကြောင့် (#9611) 429 တိုင်းတွင် အလှည့်ကျပြီး account အားလုံး ကုန်ဆုံးသွားပါက နောက်ဆုံး upstream 429 ကို ပြန်ပေးသည်။ |
|
MITM_DISABLE_TLS_VERIFY |
boolean | false |
✓ | MITM proxy အတွက် TLS certificate စစ်ဆေးအတည်ပြုခြင်းကို ပိတ်သည်။ အန္တရာယ်ရှိသည်။ |
OMNIROUTE_ALLOW_PRIVATE_PROVIDER_URLS |
boolean | false |
private/internal network များသို့ ညွှန်ပြသော provider URL များကို ခွင့်ပြုသည်။ | |
OMNIROUTE_ALLOW_LOCAL_PROVIDER_URLS |
boolean | true |
local/private address များ (127.0.0.1, localhost, LAN) ပေါ်ရှိ provider များကို ထည့်သွင်းခြင်း/အတည်ပြုခြင်းအား ခွင့်ပြုသည်။ မူလအတိုင်း ဖွင့်ထားသည် (local-first)၊ public address များကိုသာ တင်းကျပ်စွာ ခွင့်ပြုရန် ပိတ်ပါ။ Cloud metadata ကို ဆက်လက်ပိတ်ဆို့ထားမည်။ | |
ENABLE_CC_COMPATIBLE_PROVIDER |
boolean | false |
✓ | Claude Code နှင့် တွဲဖက်အသုံးပြုနိုင်သော provider mode ကို ဖွင့်သည်။ |
မူဝါဒများ (5)
| Key | Type | Default | Description |
|---|---|---|---|
TOOL_POLICY_MODE |
enum | disabled |
Tool အသုံးပြုမှုဆိုင်ရာ မူဝါဒကို အကောင်အထည်ဖော်သည့် mode။ တန်ဖိုးများ—disabled, warn, block။ |
RATE_LIMIT_AUTO_ENABLE |
boolean | false |
အသုံးပြုမှုပုံစံများအပေါ် အခြေခံ၍ rate limiting ကို အလိုအလျောက် ဖွင့်သည်။ |
DISABLE_CONTEXT_WINDOW_CHECKS |
boolean | false |
တစ်ခုတည်းသော model သို့ တိုက်ရိုက်ပို့သော request များအတွက် OmniRoute ၏ local context-window / max-input-token စစ်ဆေးမှုကို ကျော်သွားသည်။ Upstream limit များသည် ဆက်လက်သက်ရောက်သည်။ |
CAPABILITY_FILTER_ENABLED |
boolean | false |
ပစ်မှတ် model တွင် လိုအပ်သော လုပ်ဆောင်နိုင်စွမ်းများ (vision, tools, structured output, context window) မရှိပါက dispatch မလုပ်မီ request များကို ငြင်းပယ်သည်။ combo-layer compatibility filter ကို ကျော်ဖြတ်သည့် တစ်ခုတည်းသော provider သို့ တိုက်ရိုက်ပို့သော request များကို ကာကွယ်ပေးသည်။ |
RADAR_ENABLED |
boolean | false |
OmniRoute Radar module (catalog feed screen များနှင့် sync) ကို ဖွင့်သည်။ မူလအတိုင်း ပိတ်ထားသည်၊ ဖွင့်ခြင်းက UI ကိုသာ အသုံးပြုခွင့်ပေးပြီး data sync အတွက် သီးခြား opt-in လုပ်ရန် လိုအပ်ဆဲဖြစ်သည်။ |
Runtime (32)
| Key | Type | Default | Restart | Description |
|---|---|---|---|---|
UNIVERSAL_CONTEXT_HANDOFF_ENABLED |
boolean | true |
combo routing က model များ ပြောင်းသည့်အခါ စကားဝိုင်းအကျဉ်းချုပ်များကို ဖန်တီးပြီး ထည့်သွင်းပါ။ model ပြောင်းလဲမှုများကို သီးခြားစီ ကိုင်တွယ်ရန်နှင့် လက်ရှိနှင့် အနာဂတ် combo အားလုံးအတွက် နောက်ခံ handoff request များကို တားဆီးရန် ပိတ်ပါ။ | |
RESPONSES_PASSTHROUGH_DROP_COMMENTARY |
boolean | true |
client များထံ မပို့မီ Responses API passthrough stream များမှ အတွင်းပိုင်း commentary-phase output item များကို ဖယ်ရှားပါ။ မူရင်း upstream commentary ကို လက်ခံရန် ပိတ်ပါ။ | |
OMNIROUTE_MCP_ENFORCE_SCOPES |
boolean | true |
MCP tool အသုံးပြုခွင့်အပေါ် scope ကန့်သတ်ချက်များကို မဖြစ်မနေ လိုက်နာစေပါ။ | |
OMNIROUTE_MCP_COMPRESS_DESCRIPTIONS |
boolean | false |
token အသုံးပြုမှု လျှော့ချရန် MCP tool ဖော်ပြချက်များကို ချုံ့ပါ။ | |
OMNIROUTE_ENABLE_RUNTIME_BACKGROUND_TASKS |
boolean | false |
runtime တွင် နောက်ခံ task လုပ်ဆောင်ခြင်းကို ဖွင့်ပါ။ | |
OMNIROUTE_DISABLE_BACKGROUND_SERVICES |
boolean | false |
✓ | နောက်ခံ service အားလုံးကို ပိတ်ပါ (quota refresh၊ sync စသည်)။ |
OMNIROUTE_RTK_TRUST_PROJECT_FILTERS |
boolean | false |
project-level RTK filter များကို validation မပြုဘဲ ယုံကြည်အသုံးပြုပါ။ | |
OMNIROUTE_ENABLE_LIVE_WS |
boolean | true |
✓ | import လုပ်သည့်အခါ real-time dashboard WebSocket server ကို စတင်ပါ (ပုံမှန်အားဖြင့် port 20132)။ |
OMNIROUTE_CODEX_WS_ENABLED |
boolean | true |
Codex အား Responses-over-WebSocket ပို့ဆောင်မှုကို အသုံးပြုခွင့်ပေးသည်။ ပိတ်ထားပါက Codex သည် HTTP Responses သို့ ပြန်လည်ပြောင်းလဲအသုံးပြုသည်။ | |
OMNIROUTE_CODEX_APP_SERVER_ENABLED |
boolean | true |
Codex အား စက်တွင်း app-server WebSocket JSON-RPC ပို့ဆောင်မှု (codexTransport=app-server) ကို အသုံးပြုခွင့်ပေးသည်။ ပိတ်ထားပါက app-server အသုံးပြုရန် ရွေးချယ်ထားသော ချိတ်ဆက်မှုများသည် Codex ၏ အခြားပို့ဆောင်မှုများသို့ ပြန်လည်ပြောင်းလဲအသုံးပြုသည်။ |
|
OMNIROUTE_EMERGENCY_FALLBACK |
boolean | true |
ဘတ်ဂျက်ကုန်ဆုံးသွားသော တောင်းဆိုမှုများကို အရေးပေါ် အခမဲ့ အစားထိုးဝန်ဆောင်မှုပေးသူ/မော်ဒယ်ထံ လမ်းကြောင်းပြောင်းပေးသည်။ (အောက်ပါ အရေးပေါ် ဘတ်ဂျက် အစားထိုးမှု ကို ကြည့်ပါ။) | |
STREAM_RECOVERY_ENABLED |
boolean | false |
တုံ့ပြန်မှု byte များ client ထံ မရောက်ရှိမီ ဖြတ်တောက်သွားသော upstream SSE stream များအတွက် ပွင့်လင်းမြင်သာသည့် အစောပိုင်း ပြန်လည်ကြိုးစားမှုကို ဖွင့်ပေးသည်။ | |
STREAM_RECOVERY_MIDSTREAM_ENABLED |
boolean | false |
byte များ client ထံ ရောက်ရှိပြီးသည့်နောက်တွင် တုံ့ပြန်မှုကို ပြန်လည်တောင်းဆို၍ ဆက်စပ်ပေါင်းစည်းခြင်းဖြင့် stream ပြန်လည်ရယူမှုကို ခွင့်ပြုသည်။ | |
STREAM_RECOVERY_TOOLCALL_ORDER_FIX |
boolean | false |
stream အလယ်ပိုင်း ဆက်လက်လုပ်ဆောင်မှုကို tool-call အတွက် ဘေးကင်းစေသည်- tool call တစ်ခု ထုတ်လွှတ်ပြီးသည်နှင့် (လုပ်ဆောင်ဆဲဖြစ်စေ၊ finish_reason tool_calls ဖြင့် ပြီးဆုံးပြီးဖြစ်စေ) ဖြတ်တောက်သွားသော stream ကို မည်သည့်အခါမျှ ပြန်မစဘဲ၊ ဘတ်ဂျက်တစ်ခုလုံးကို သုံးစွဲမည့်အစား အချည်းနှီး ဆက်လက်လုပ်ဆောင်မှုတစ်ကြိမ်အပြီးတွင် ပိတ်သည်။ ပိတ်ထားပါက- release အပြုအမူအတိုင်း ဖြစ်သည်။ |
|
STREAM_EARLY_EOF_SIBLING_FAILOVER_ENABLED |
boolean | false |
SSE stream တစ်ခုသည် အသုံးဝင်သော frame တစ်ခုမျှ မထုတ်လွှတ်မီ ပိတ်သွားပြီး ကန့်သတ်ထားသည့် တူညီသောချိတ်ဆက်မှု ပြန်လည်ကြိုးစားမှု ကုန်ဆုံးသွားပါက အခြား sibling ချိတ်ဆက်မှုတစ်ခုသို့ တစ်ကြိမ် အစားထိုးပြောင်းလဲသည်။ အသုံးပြုနိုင်သော sibling မရှိပါက မူလ STREAM_EARLY_EOF 502 ကို ပြန်ပေးသည်။ ပုံသေအားဖြင့် ပိတ်ထားသည်- တူညီသောချိတ်ဆက်မှု ပြန်လည်ကြိုးစားပြီးနောက် early-EOF သည် အပြီးသတ်ဖြစ်နေဆဲဖြစ်သည်။ |
|
MODEL_CATALOG_INCLUDE_NAMES |
boolean | true |
/v1/models တုံ့ပြန်မှုများတွင် ဖတ်ရှုရလွယ်ကူသော ပြသမှုအမည် field များကို ထည့်သွင်းသည်။ မော်ဒယ် ID များကိုသာ မျှော်လင့်သော client များအတွက် ပိတ်ပါ။ |
|
MODELS_CATALOG_PREFIX_MODE |
enum | dual |
/v1/models တွင် မော်ဒယ် ID များကို prefix ထည့်သွင်းပုံအား ထိန်းချုပ်သည်။ dual (ပုံသေ) သည် နောက်ကြောင်းပြန် လိုက်ဖက်ညီမှုအတွက် alias နှင့် canonical provider-id prefix နှစ်မျိုးလုံးကို ထုတ်ပေးသည်။ alias သည် အတိုကောက် alias prefix ကိုသာ ထုတ်ပေးသည် (ဥပမာ ds-web/model ဖြစ်ပြီး deepseek-web/model မဟုတ်ပါ)။ canonical သည် provider-id အပြည့်အစုံ prefix ကိုသာ ထုတ်ပေးသည်။ တန်ဖိုးများ- dual, alias, canonical။ |
|
ARENA_ELO_SYNC_ENABLED |
boolean | true |
မော်ဒယ်ဉာဏ်ရည် အဆင့်သတ်မှတ်ချက်များအတွက် Arena AI leaderboard ELO ကို အချိန်မှန် ထပ်တူပြုခြင်းအား ဖွင့်ပေးသည်။ | |
EXPOSE_CC_DISCOVERY_ALIASES |
boolean | false |
Claude Code gateway ၏ model ရှာဖွေမှုတွင် Claude မဟုတ်သော model များကို စာရင်းပြုစုနိုင်ရန် /v1/models ပေါ်တွင် claude/<provider>/<model> mirror id များကို ကြေညာပါ။ အဆင့်သုံးဆင့် gate ၏ global အဆင့်ဖြစ်သည် (env သည် dashboard override ထက် ဦးစားပေးသည်)။ Claude Code configuration ကို ကြည့်ပါ။ |
|
NO_THINKING_ALIAS_ENABLED |
boolean | true |
no-think// gateway alias များအတွက် master switch ဖြစ်သည်။ ဖွင့်ထားပါက (မူလသတ်မှတ်ချက်)- သတ်မှတ်ချက်နှင့်ကိုက်ညီပြီး စဉ်းစားဆင်ခြင်နိုင်သော Claude model တိုင်းအတွက် /v1/models က no-thinking မူကွဲတစ်ခုကို ကြေညာပြီး request တစ်ခုတွင် ပေးပို့သည့် no-think/ id ကို reasoning ပိတ်ထားသော အမှန်တကယ် model သို့ ပြန်လည်ဖြေရှင်းပေးသည်။ ပိတ်ထားပါက မည်သည့်မူကွဲကိုမျှ မကြေညာဘဲ no-think/ id ကို အခြားမသိရှိသော model id များကဲ့သို့ သတ်မှတ်သည်။ ဤအရာကို ဖွင့်ထားစဉ် model တစ်ခုချင်းစီ၏ ModelSpec.noThinkingAlias opt-in/opt-out သည် ဆက်လက်သက်ရောက်သည်။ | |
OMNIROUTE_DISABLE_THINKING_LEVEL_VARIANTS |
boolean | false |
/v1/models catalog တွင် thinking level မူကွဲများ (ဥပမာ -low၊ -medium၊ -high) ဖန်တီးခြင်းကို ပိတ်ပါ။ | |
OMNIROUTE_CHAT_VIRTUAL_LANES |
boolean | false |
✓ | Provider dispatch အတွက် tenant တစ်ခုချင်းစီအလိုက် အလိုက်သင့်ပြောင်းလဲနိုင်သော virtual admission lane များကို ဖွင့်ပါ (#9654)- tenant တစ်ခု၏ ရုတ်တရက်မြင့်တက်လာသော အသုံးပြုမှုကြောင့် အခြား tenant တစ်ခုတွင် 503 ဖြစ်တော့မည်မဟုတ်ပါ။ OMNIROUTE_CHAT_VIRTUAL_LANES env var သည် ဤ dashboard override ထက် ဦးစားပေးသည်။ ပြောင်းလဲမှုများသည် server ပြန်လည်စတင်ချိန်တွင် သက်ရောက်သည်။ |
EXPOSE_FUNCTIONAL_GATEWAY_MIRRORS |
boolean | false |
Canonical owner တွင် အသုံးပြုနိုင်သော credential မရှိသော်လည်း အသုံးပြုနိုင်သော credential ပါသည့် passthrough gateway က route လုပ်ပေးသော model များအတွက် /v1/models ပေါ်တွင် / mirror id များကို ကြေညာပါ။ သတိပေးချက်- global အနေဖြင့် ဖွင့်ထားပါက client အားလုံးအတွက် catalog entry များ ထပ်ပေါင်းမည်။ | |
NEWAPI_AGGREGATOR_BALANCE |
boolean | false |
New-API / One-API / Sub2API aggregator နှင့် တွဲဖက်အသုံးပြုနိုင်သော node များအတွက် balance စစ်ဆေးခြင်းကို ဖွင့်ပါ။ ဖွင့်ထားပါက aggregator flag သတ်မှတ်ထားသော တွဲဖက်အသုံးပြုနိုင်သည့် node များသည် ၎င်းတို့၏ balance ကို dashboard နှင့် quota-preflight routing တွင် ဖော်ပြမည်။ | |
SERVER_OWNED_TOOL_LOOP_ENABLED |
boolean | false |
Model က client အသုံးပြုနိုင်သော response ကို ပြန်ပေးသည်အထိ non-streaming server-owned tool call များကို ဆက်လက်လုပ်ဆောင်ပါ။ | |
SEARCH_STATS_HIDE_DELETED_CONNECTIONS |
boolean | false |
Search stats နှင့် မကြာသေးမီက ရှာဖွေမှုများတွင် လက်ရှိအသုံးပြုနိုင်သော connection ရှိနေသေးသည့် provider များကိုသာ ရေတွက်သည် (duckduckgo-free ကဲ့သို့ keyless provider များကို အမြဲရေတွက်သည်)။ ပိတ်ထားပါက provider id ပါသည့် သိမ်းဆည်းထားသော search row အားလုံးကို ဆက်လက်ထိန်းသိမ်းသည်။ | |
FREE_BADGE_REQUIRES_PROVIDER_FREE_TIER |
boolean | false |
Dashboard provider စာမျက်နှာများတွင် provider က အမှန်တကယ်ပံ့ပိုးသော signal များပေါ်၌သာ Free badge ကို ပြပါ — မှတ်တမ်းတင်ထားသော free tier မရှိသည့် registered provider များအတွက် display-name heuristic၊ boolean မဟုတ်သော free field များနှင့် :free suffix များကို ထည့်မတွက်ပါ။ ပိတ်ထားပါက ယခင် badge စည်းမျဉ်းကို ဆက်လက်အသုံးပြုသည်။ | |
RETRY_AFTER_PROVENANCE_ENABLED |
boolean | false |
စုစည်းထားသော 429/503 unavailable response များတွင် တိကျသော အနာဂတ် retry အချိန်ကို မသိရှိပါက (အတုအယောင် 1s အစား) Retry-After ကို ချန်လှပ်ပြီး error.retry_after_provenance (signal | none) ကို ထည့်ပါ။ ထို့အပြင် combo drain path များက JSON နှင့် plain-text upstream body များရှိ စာသားဖြင့်ဖော်ပြထားသော retry အရိပ်အမြွက်များကို ဖတ်ရှုနိုင်စေပါ။ ဤ field သည် unavailableResponse() ဖြင့် တည်ဆောက်ထားသော response များတွင်သာ ပေါ်လာပြီး အခြား 429/503 body များမှာ မပြောင်းလဲပါ။ |
|
PROTECTED_PRIORITY_INFRA_502_ENABLED |
boolean | false |
fallback-only-on-quota-exhaustion ဟု အမှတ်အသားပြုထားသည့် priority ပေါင်းစပ်ပစ်မှတ်တစ်ခုသည် ခွဲတမ်းကြောင့်မဟုတ်ကြောင်း အတည်ပြုနိုင်သည့် အကြောင်းရင်းတစ်ခု (ဝန်ဆောင်မှုပေးသူ၏ circuit breaker ပွင့်နေခြင်း၊ ကြိုတင်ခန့်မှန်းထားသည့် latency ကြောင့် ကျော်ခြင်း) ဖြင့် ပေါင်းစပ်မှုကို ရပ်တန့်လိုက်သည့်အခါ ခွဲတမ်းပြဿနာနှင့်တူသော 503 အစား 502 ကို ပြန်ဖြေပါ။ Lockout၊ cooldown၊ unavailable၊ exhaustion နှင့် concurrency-cap ကြောင့် ရပ်တန့်မှုများသည် 503 ကို ဆက်လက်အသုံးပြုပါမည်။ |
|
MISTRAL_AMBIGUOUS_401_SOFT_LOCKOUT |
boolean | false |
ရိုးရိုး Mistral 401 ({"detail":"Unauthorized"}၊ တိကျပြတ်သားသော auth အချက်ပြမှုမရှိ) သည် ပြန်လည်ရုပ်သိမ်းထားသော key နှင့် ခွဲတမ်းကုန်ဆုံးနေသောအခြေအနေတို့အတွက် တူညီပါသည်။ ဖွင့်ထားသည့်အခါ connection ကို expired အဖြစ် ရပ်ထားမည့်အစား cooldown ပြုလုပ်ပြီး connection တစ်ခုလျှင် တစ်နာရီအတွင်း အများဆုံး 3 ကြိမ်အထိ ပြုလုပ်ပါသည်။ နောက်တစ်ကြိမ်တွင် ရပ်ထားမည်ဖြစ်သဖြင့် ပြန်လည်ရုပ်သိမ်းထားသော key သည် နောက်ဆုံးတွင် ထိုအခြေအနေသို့ ရောက်ရှိနေဆဲဖြစ်သည်။ မူလသတ်မှတ်ချက်အရ ပိတ်ထားသည်- ရိုးရိုး Mistral 401 တိုင်းသည် ယခင်ကဲ့သို့ connection ကို ရပ်ထားပါသည်။ |
|
XAI_OAUTH_LIVE_MODEL_DISCOVERY |
boolean | false |
xai-oauth connection များအတွက် ရပ်တန့်ထားသော static seed အစား OAuth bearer token ကို အသုံးပြု၍ https://api.x.ai/v1/models မှ လက်ရှိ xAI model catalog ကို ရယူပါ။ မူလသတ်မှတ်ချက်အရ ပိတ်ထားသည်- xai-oauth သည် static seed ကို မပြောင်းလဲဘဲ ဆက်လက်ပံ့ပိုးပါသည်။ Resolution error တစ်ခုခုဖြစ်ပါက discovery သည် seed ကို ပြန်လည်အသုံးပြုပါသည် (ဤ endpoint တွင် x.ai က OAuth bearer ကို လက်ခံခြင်းရှိမရှိ အတည်မပြုရသေးပါ)။ |
|
BATCH_AND_FILE_AUTO_CLEANUP_ENABLED |
boolean | false |
အလိုအလျောက် cleanup sweep အား OMNIROUTE_BATCH_RETENTION_DAYS ထက် သက်တမ်းကြာသော terminal (completed/failed/cancelled/expired) Batch API job များကို ၎င်းတို့၏ per-line checkpoint များနှင့်အတူ ဖျက်ခွင့်ပြုပြီး၊ မိမိတို့၏ expires_at ကို ကျော်လွန်သွားသော upload လုပ်ထားသည့် file များ၏ BLOB content ကို ရှင်းလင်းခွင့်ပြုပါ။ မူလသတ်မှတ်ချက်အရ ပိတ်ထားသည်- operator တစ်ဦးက အသုံးပြုရန် ရွေးချယ်မချင်း လက်ရှိ install တိုင်းသည် ဤ data ကို ယခင်အတိုင်း အတိအကျ ထိန်းသိမ်းထားပါသည်။ Operator မှ စတင်လုပ်ဆောင်သော DELETE /api/v1/batches/delete-completed route သည် မည်သည့်အခြေအနေတွင်မဆို သက်ရောက်မှုမရှိပါ — ၎င်းသည် သီးခြားဖြစ်ပြီး အခြေအနေမဲ့ public API contract တစ်ခုဖြစ်သည်။ |
CLI (5)
| Key | Type | Default | Restart | ဖော်ပြချက် |
|---|---|---|---|---|
CLI_COMPAT_ALL |
boolean | false |
✓ | CLI client အားလုံးအတွက် compatibility mode ကို ဖွင့်ပါ။ |
MODEL_ALIAS_COMPAT_ENABLED |
boolean | false |
Model alias compatibility layer ကို ဖွင့်ပါ။ | |
PRICING_SYNC_ENABLED |
boolean | false |
ဈေးနှုန်း data ကို အလိုအလျောက် synchronization ပြုလုပ်ခြင်းအား ဖွင့်ပါ (PRICING_SYNC_ENABLED environment variable လည်း လိုအပ်ပါသည်)။ |
|
OMNIROUTE_AUTO_SYNC_CODEX_PROFILES |
boolean | false |
Provider model sync ပြုလုပ်ပြီးနောက် လက်ရှိ catalog မှ ~/.codex/*.config.toml profile file များကို အလိုအလျောက် (ပြန်လည်)ရေးသားပါ။ လက်ရှိအသုံးပြုနေသော/မူလ Codex config ကို မည်သည့်အခါမျှ မပြောင်းလဲပါ။ မူလသတ်မှတ်ချက်အရ ပိတ်ထားသည်။ | |
OMNIROUTE_AUTO_SYNC_CLAUDE_PROFILES |
boolean | false |
Provider model sync ပြုလုပ်ပြီးနောက် လက်ရှိ catalog မှ ~/.claude/profiles//settings.json Claude Code profile များကို အလိုအလျောက် (ပြန်လည်)ရေးသားပါ။ လက်ရှိအသုံးပြုနေသော/မူလ Claude config ကို မည်သည့်အခါမျှ မပြောင်းလဲပါ။ မူလသတ်မှတ်ချက်အရ ပိတ်ထားသည်။ |
ကျန်းမာရေး (5)
| Key | Type | Default | Description |
|---|---|---|---|
OMNIROUTE_DISABLE_LOCAL_HEALTHCHECK |
boolean | false |
ဒေသတွင်း instance ၏ health check endpoint ကို ပိတ်ပါ။ |
OMNIROUTE_DISABLE_TOKEN_HEALTHCHECK |
boolean | false |
token အတည်ပြုခြင်း health check ကို ပိတ်ပါ။ |
SKILLS_SANDBOX_NETWORK_ENABLED |
boolean | false |
skills sandbox environment တွင် network အသုံးပြုခွင့်ကို ဖွင့်ပါ။ |
PROXY_HEALTH_BLOCKED_RESETS_STREAK |
boolean | false |
proxy health sweep တွင် target က ငြင်းပယ်ခဲ့သော probe (401/403/429) သည် proxy ၏ ဆက်တိုက်မအောင်မြင်မှုအရေအတွက်ကို ပြန်လည်သတ်မှတ်သည်။ ပုံမှန်အားဖြင့် ပိတ်ထားသည်- ငြင်းပယ်မှုသည် ကြားနေအဖြစ် ဆက်ရှိနေသည် (#10654)။ 5xx သည် မည်သို့ပင်ဖြစ်စေ အတည်မပြုနိုင်သောအခြေအနေအဖြစ် ဆက်ရှိနေသည်။ ငြင်းပယ်မှုတစ်ခုသည် proxy ကို မည်သည့်အခါမျှ ဖယ်ရှားခြင်း၊ ပိတ်ခြင်း သို့မဟုတ် ပြန်လည်အသက်သွင်းခြင်း မပြုပါ။ |
DB_HEALTHCHECK_STARTUP_DEFERRED_ENABLED |
boolean | false |
စတင်မှု ပြီးဆုံးသည်အထိ ပိတ်ဆို့ထားမည့်အစား server က request များကို စတင်လက်ခံပြီးနောက် (setImmediate မှတစ်ဆင့်) စတင်ချိန် DB integrity/health check ကို လုပ်ဆောင်ပါ (#13717)။ ပုံမှန်အားဖြင့် ပိတ်ထားသည်- ဤ PR မတိုင်မီကအတိုင်း စတင်မှုကို အတိအကျ ပိတ်ဆို့ထားသည်။ |
Note
INPUT_SANITIZER_BLOCK_THRESHOLDနှင့် ၎င်း၏ အဟောင်း alias ဖြစ်သောINJECTION_GUARD_BLOCK_THRESHOLDတို့သည်INJECTION_GUARD_MODE၏blockmode ကို ချိန်ညှိပေးသော်လည်း ၎င်းတို့သည်src/shared/utils/injectionSeverity.tsက ဖတ်ရှုသည့် သာမန် environment variable များသာဖြစ်ပြီး feature flag များ မဟုတ်ပါ- ၎င်းတို့တွင် DB override နှင့် dashboard toggle မရှိပါ။ အသေးစိတ်ကိုENVIRONMENT.mdတွင် ကြည့်ပါ။
Note
Restartcolumn သည်requiresRestart: trueပါသော flag များကို မှတ်သားဖော်ပြသည် — value ကို ချက်ချင်း သိမ်းဆည်းထားသော်လည်း process ပြန်လည်စတင်ပြီးနောက်မှသာ အကျိုးသက်ရောက်သည်။ Enum flag များသည် ၎င်းတို့၏ ခွင့်ပြုထားသော set ပြင်ပရှိ မည်သည့် value ကိုမဆို ငြင်းပယ်သည် (server ဘက်တွင်setFeatureFlagOverride()နှင့် RESTPUThandler နှစ်ခုစလုံး၌ အတည်ပြုသည်)။
Flag များ အဖွင့်အပိတ် ပြုလုပ်ခြင်း
ဒက်ရှ်ဘုတ်
ဒက်ရှ်ဘုတ် → ဆက်တင်များ → Feature Flags
(/dashboard/settings/feature-flags) သို့ သွားပါ။ Grid
(src/app/(dashboard)/dashboard/settings/components/FeatureFlagsGrid.tsx)
သည် အောက်ပါတို့ကို ပံ့ပိုးပေးသည်-
- key သို့မဟုတ် ဖော်ပြချက်ဖြင့် ရှာဖွေခြင်းနှင့် category အလိုက် စစ်ထုတ်ခြင်း (ထို့အပြင် ဖန်တီးထားသော ပြန်လည်စတင်ရန် လိုအပ်သည် view)။
- boolean flag များအတွက် အဖွင့်အပိတ်ခလုတ်နှင့် enum flag များအတွက် dropdown
(
src/app/(dashboard)/dashboard/settings/components/FeatureFlagCard.tsx)။ - Flag တစ်ခုချင်းစီအတွက် အကျိုးသက်ရောက်နေသော value သည် မည်သည့်နေရာမှ လာကြောင်း ပြသပေးသည့်
source badge —
DB,ENVသို့မဟုတ်DEF။ - Override ကို ဖယ်ရှားရန် ပြန်လည်သတ်မှတ်ရန် ခလုတ် (
DBမှ ရရှိသည့် flag များအတွက်သာ ပြသသည်) နှင့် အောက်ခြေရှိ Override အားလုံးကို ပြန်လည်သတ်မှတ်ရန် ခလုတ်။ requiresRestartflag တစ်ခု ပြောင်းလဲသည့်အခါ ဆာဗာကို ပြန်လည်စတင်ရန် banner။
REST API
လုပ်ဆောင်ချက်အားလုံးသည် route တစ်ခုတည်းမှတစ်ဆင့် လုပ်ဆောင်သည်-
src/app/api/settings/feature-flags/route.ts။
Method တိုင်းအတွက် အထောက်အထားစိစစ်ပြီးသော dashboard session လိုအပ်သည် (မရှိပါက 401)။
GET /api/settings/feature-flags
Flag တိုင်း၏ အကျိုးသက်ရောက်နေသော value၊ source နှင့် အကျဉ်းချုပ်ကို ပြန်ပေးသည်။
{
"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",
},
// ... flag 72 ခုလုံး
],
"summary": {
"total": 56,
"active": 0,
"inactive": 0,
"overriddenByDb": 0,
"overriddenByEnv": 0,
},
}
PUT /api/settings/feature-flags
Override တစ်ခုတည်းကို သတ်မှတ်ခြင်း သို့မဟုတ် ဖယ်ရှားခြင်း ပြုလုပ်သည်။ Body: { key: string; value?: string }။
value ကို ချန်လှပ်ထားပါက override ကို ဖယ်ရှားမည် (env / default ကို ပြန်လည်အသုံးပြုမည်)။
# DB override တစ်ခု သတ်မှတ်ရန်
curl -X PUT http://localhost:20128/api/settings/feature-flags \
-H "Content-Type: application/json" \
-d '{"key":"REQUIRE_API_KEY","value":"true"}'
# Override ကို ဖယ်ရှားရန် ("value" မပါ)
curl -X PUT http://localhost:20128/api/settings/feature-flags \
-H "Content-Type: application/json" \
-d '{"key":"REQUIRE_API_KEY"}'
Response သည် effectiveValue/source အသစ်၊ previousValue/
previousSource နှင့် requiresRestart တို့ကို ပြန်လည်ဖော်ပြသည်။ မသိရှိသော key များနှင့် သတ်မှတ်အပိုင်းအခြားပြင်ပရှိ enum
value များကို 400 ဖြင့် ငြင်းပယ်သည်။
DELETE /api/settings/feature-flags
DB override အားလုံးကို တစ်ကြိမ်တည်းဖြင့် ရှင်းလင်းပြီး flag တိုင်းကို ၎င်း၏ env / default
value သို့ ပြန်လည်ထားရှိသည်။ { cleared: <count>, message: "..." } ကို ပြန်ပေးသည်။
Note
requiresRestart: trueပါသော flag များသည် process ကို ပြန်လည် load လုပ်ပြီးမှသာ အကျိုးသက်ရောက်သည်။ Dashboard ၏ restart flow သည်POST /api/restartကို ခေါ်ဆိုပြီး ဆာဗာ ပြန်လည်အလုပ်လုပ်သည်အထိGET /api/health/pingကို ထပ်ခါတလဲလဲ စစ်ဆေးသည်။
အရေးပေါ် Budget Fallback
OMNIROUTE_EMERGENCY_FALLBACK (category runtime၊ default true) သည်
open-sse/services/emergencyFallback.ts ရှိ
အရေးပေါ် အခမဲ့ fallback လမ်းကြောင်းကို ထိန်းချုပ်သည်။
ဖွင့်ထားသောအခါ budget ကုန်ဆုံးသွားသည့် request များကို ချက်ချင်း မအောင်မြင်စေဘဲ အခမဲ့ fallback
provider/model တစ်ခုသို့ လမ်းကြောင်းပြောင်းပေးသည်။ ထိုလုပ်ဆောင်ချက်ကို ပိတ်ပြီး budget ကုန်ဆုံးသွားသည့် request များကို
မအောင်မြင်စေရန် dashboard toggle၊ DB override သို့မဟုတ် OMNIROUTE_EMERGENCY_FALLBACK
environment variable မှတစ်ဆင့် ၎င်းကို false (သို့မဟုတ် 0) ဟု သတ်မှတ်ပါ။
(PR များ #3741 / #3752 တွင် dashboard toggle အဖြစ် ဖော်ပြထားသည်။)
ထပ်မံကြည့်ရှုရန်
- Environment Variables အကိုးအကား — flag အများစုအတွက် အမည်တူ environment variable ကို ထိုနေရာတွင် မှတ်တမ်းပြုထားသည် (DB override သည် ၎င်းထက် ဦးစားပေးသည်)။
src/shared/constants/featureFlagDefinitions.ts— flag အားလုံးအတွက် တရားဝင်အချက်အလက်ရင်းမြစ်။src/shared/utils/featureFlags.ts— ဆုံးဖြတ်ခြင်းဆိုင်ရာ logic (resolveFeatureFlag,isFeatureFlagEnabled,resolveAllFeatureFlags)။src/lib/db/featureFlags.ts—key_valuetable ၏feature_flagsnamespace အတွင်း DB override ကို အမြဲတမ်းသိမ်းဆည်းခြင်း။