Files
OmniRoute/docs/i18n/km/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

78 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 · 🇮🇳 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


កុងតាក់ពេលដំណើរការដែលផ្លាស់ប្តូរឥរិយាបថរបស់ OmniRoute ដោយមិនចាំបាច់ដាក់ឱ្យដំណើរការឡើងវិញ។ Flag នីមួយៗដែលបានរាយនៅទីនេះត្រូវបានកំណត់នៅក្នុង src/shared/constants/featureFlagDefinitions.ts — ដែលជាប្រភពពិតតែមួយគត់។ ទាំងផ្ទាំងគ្រប់គ្រង និង REST API អានពី ឯកសារនោះ ដូច្នេះតារាងខាងក្រោមត្រូវបានបង្កើតឱ្យត្រូវគ្នានឹងវាក្នុងសមាមាត្រ 1:1។


Feature Flag ជាអ្វី

Feature flag គឺជាកុងតាក់ដែលមានឈ្មោះ (boolean ឬ enum) ដែលតម្លៃរបស់វាអាចត្រូវបានផ្លាស់ប្តូរ នៅពេលដំណើរការ និងរក្សាទុកក្នុងមូលដ្ឋានទិន្នន័យ ដោយមិនតម្រូវឱ្យដាក់ process ឱ្យដំណើរការឡើងវិញ។ Flag នីមួយៗត្រូវបានពិពណ៌នាដោយ FeatureFlagDefinition ដែលមាន key, label, description, category, defaultValue, type និងព័ត៌មានណែនាំ requiresRestart

លំដាប់នៃការកំណត់តម្លៃ

តម្លៃជាក់ស្តែង របស់ flag ត្រូវបានកំណត់ដោយ resolveFeatureFlag() តាមលំដាប់អាទិភាពខាងក្រោម (អាទិភាពខ្ពស់ជាងគេមានប្រសិទ្ធភាព)៖

  1. ការកំណត់ជំនួសក្នុង DB — តម្លៃដែលបានរក្សាទុកក្នុងតារាង key_value ក្រោម namespace feature_flags (កំណត់តាមរយៈផ្ទាំងគ្រប់គ្រង ឬ REST API)។
  2. អថេរបរិស្ថានprocess.env[<KEY>] ប្រសិនបើត្រូវបានកំណត់ និងមិនមែនជាតម្លៃទទេ។
  3. តម្លៃលំនាំដើមនៃនិយមន័យdefaultValue ពី featureFlagDefinitions.ts

Boolean flag ត្រូវបានចាត់ទុកថា បានបើក នៅពេលតម្លៃជាក់ស្តែងរបស់វាគឺ "true", "1""yes" (សូមមើល isFeatureFlagEnabled())។

Note

Flag ភាគច្រើនក៏មានអថេរបរិស្ថានដែលត្រូវគ្នា និងមាន ឈ្មោះដូចគ្នា ដែលបានចងក្រងជាឯកសារនៅក្នុង ENVIRONMENT.md។ ការកំណត់ជំនួសក្នុង DB របស់ flag មានអាទិភាពលើអថេរបរិស្ថាននោះ។ Flag ដែលមាន requiresRestart: true ត្រូវបានរក្សាទុកភ្លាមៗ ប៉ុន្តែត្រូវបានអានឡើងវិញតែនៅពេល process ចាប់ផ្តើមប៉ុណ្ណោះ — ការបិទបើកវានឹងបង្ហាញបដា "ចាប់ផ្តើមម៉ាស៊ីនមេឡើងវិញ" នៅក្នុងផ្ទាំងគ្រប់គ្រង។


បញ្ជី Flag

មាន flag ចំនួន 72 ក្នុង 6 ប្រភេទ។ លំនាំដើម គឺជាតម្លៃលំនាំដើមនៃនិយមន័យ — តម្លៃ ដែលត្រូវបានប្រើនៅពេលមិនមានទាំងការកំណត់ជំនួសក្នុង DB និងអថេរបរិស្ថាន។

សុវត្ថិភាព (10)

Key ប្រភេទ លំនាំដើម ការពិពណ៌នា
REQUIRE_API_KEY boolean false តម្រូវឱ្យមាន API key សម្រាប់សំណើចូលទាំងអស់។
INPUT_SANITIZER_ENABLED boolean true បើកការសម្អាតទិន្នន័យបញ្ចូលសម្រាប់សំណើទាំងអស់។
INJECTION_GUARD_MODE enum off របៀបការពារការបញ្ចូល prompt ដោយគ្រោះថ្នាក់។ តម្លៃ៖ off, warn, block, redact
PII_REDACTION_ENABLED boolean false លាក់ទិន្នន័យ PII ចេញពីសំណើ (ឯករាជ្យពី INPUT_SANITIZER_MODE)។
PII_RESPONSE_SANITIZATION boolean false សម្អាតទិន្នន័យ PII ចេញពីការឆ្លើយតបរបស់អ្នកផ្តល់សេវា។
PII_RESPONSE_SANITIZATION_MODE enum redact របៀបសម្រាប់ការសម្អាតទិន្នន័យ PII ក្នុងការឆ្លើយតប។ តម្លៃ៖ redact, warn, block, off
OUTBOUND_SSRF_GUARD_ENABLED boolean true រារាំងសំណើចេញទៅកាន់ជួរ IP ឯកជន/ផ្ទៃក្នុង។
ALLOW_API_KEY_REVEAL boolean false អនុញ្ញាតឱ្យអ្នកប្រើផ្ទាំងគ្រប់គ្រងដែលបានផ្ទៀងផ្ទាត់អត្តសញ្ញាណបង្ហាញ API key ដែលបានរក្សាទុក ជំនួសឱ្យការមើលឃើញតែតម្លៃដែលបានបិទបាំង។
AUTH_LOG_INCLUDE_ACCOUNT_ID boolean false រួមបញ្ចូលបុព្វបទគណនីក្នុងបន្ទាត់កំណត់ហេតុ AUTH (ឧ. "កំពុងប្រើគណនី ៖ abc12345...")។ ត្រូវបានបិទតាមលំនាំដើម ដូច្នេះអត្តសញ្ញាណគណនីត្រូវបានលាក់ចេញពីកំណត់ហេតុ process ដែលបានចែករំលែក/មានអ្នកជួលច្រើន។ វាឯករាជ្យពីរបៀប Debug; ការបិទបើករបៀប Debug មិនបង្ហាញព័ត៌មាននេះទេ។
OMNIROUTE_OIDC_DISABLE_PASSWORD_LOGIN boolean false នៅពេល OIDC ត្រូវបានបើក សូមបិទការចូលដោយពាក្យសម្ងាត់ ដើម្បីឱ្យអ្នកប្រើអាចផ្ទៀងផ្ទាត់អត្តសញ្ញាណបានតែតាមរយៈ OIDC Single Sign-On ប៉ុណ្ណោះ។ នៅពេលបិទ (លំនាំដើម) ទាំងការចូលដោយពាក្យសម្ងាត់ និង OIDC អាចប្រើបាន។

បណ្តាញ (15)

សោ ប្រភេទ លំនាំដើម ចាប់ផ្ដើមឡើងវិញ ការពិពណ៌នា
ENABLE_TLS_FINGERPRINT boolean false បើករបៀបលាក់បាំងស្នាមផ្ដិត TLS។
AUDIO_REMOTE_PROVIDER_NODES boolean false អនុញ្ញាតឱ្យ route /v1/audio/* ប្រើ node របស់អ្នកផ្ដល់សេវាដែលឆបគ្នាជាមួយ OpenAI និងត្រូវបានបង្ហោះនៅក្រៅ localhost។ បិទតាមលំនាំដើម — ការបញ្ជូន audio ទៅម៉ាស៊ីនពីចម្ងាយនឹងផ្លាស់ប្ដូរអត្តសញ្ញាណ egress ហើយត្រូវតែជាការសម្រេចចិត្តជាក់លាក់របស់ប្រតិបត្តិករ។ Loopback node តែងតែត្រូវបានអនុញ្ញាត និងមិនរងផលប៉ះពាល់ទេ។
PROXY_AUTO_SELECT_ENABLED boolean false នៅពេលគ្មាន proxy ត្រូវបានផ្ដល់ទៅឱ្យ connection សូមជ្រើសរើស proxy ដំបូងដែលដំណើរការពី registry ដោយស្វ័យប្រវត្តិ។ បិទតាមលំនាំដើម (បើមិនដូច្នោះទេ proxy ណាមួយក្នុង registry នឹងក្លាយជា fallback សកល — #3332)។
OMNIROUTE_CONTROL_PLANE_PROXY_DIRECT_FALLBACK boolean false អនុញ្ញាតឱ្យលំហូរ OAuth និងការផ្ទៀងផ្ទាត់អ្នកផ្ដល់សេវារំលង proxy ដែលបាន pin ហើយភ្ជាប់ដោយផ្ទាល់ នៅពេលការត្រួតពិនិត្យជាមុនអំពីលទ្ធភាពចូលដំណើរការ proxy បរាជ័យ។ បិទតាមលំនាំដើម ព្រោះវាអាចផ្លាស់ប្ដូរ egress IP។
NETWORK_ROTATION_SHARED_EGRESS_GUARD boolean true នៅពេលមានករណីលើកលែងបណ្ដាញ (អស់ពេលរង់ចាំ ការតភ្ជាប់ត្រូវបានបដិសេធ/កំណត់ឡើងវិញ) សម្រាប់ executor នៃការប្ដូរវេនគណនីច្រើន ប្រសិនបើគណនីដែលបរាជ័យមិនមាន proxy ផ្ទាល់ខ្លួនទេ សូមអនុវត្ត cooldown រយៈពេលខ្លី ហើយរំលងគណនីផ្សេងទៀតដែលគ្មាន proxy សម្រាប់សំណើដែលនៅសល់ ជំនួសឱ្យការព្យាយាមគណនីនីមួយៗឡើងវិញ។ បើកតាមលំនាំដើម (មានសុវត្ថិភាព៖ មិនផ្លាស់ប្ដូរ egress IP ទេ គ្រាន់តែកាត់បន្ថយហានិភ័យ latency/cooldown លើគណនីដែលប្រើ egress រួមគ្នា)។ បិទដើម្បីស្ដារការបញ្ជូនបន្តភ្លាមៗ នៅពេលមានការបោះ exception ដំបូងពីគណនីដែលគ្មាន proxy។
PROXY_SKIP_RECENTLY_FAILED boolean false Proxy pool និងការប្ដូរវេនតាមគណនីរបស់ opencode នឹងឈប់ផ្ដល់ proxy ដែលទើបតែបរាជ័យម្ដងទៀត (ការស្ទង់ TCP ត្រូវបានបដិសេធ ឬទទួលបាន 429 តាមរយៈវា) ក្នុងរយៈពេលសម្រាប់ process នីមួយៗ ដែលកើនឡើងទ្វេដងរាល់ពេលបរាជ័យម្ដងទៀត រហូតដល់កម្រិតអតិបរមា។ គ្មានស្ថានភាព proxy ត្រូវបានសរសេរទេ។ នៅពេលបេក្ខភាពទាំងអស់ត្រូវបានដាក់ដោយឡែក ជម្រើសមិនផ្លាស់ប្ដូរទេ។ បិទតាមលំនាំដើម។
PROXY_POOL_EGRESS_OBSERVATION boolean false បង្ហាញនៅក្រោម proxy pool ក្នុង dashboard នូវចំនួន egress IP ដែលបានសង្កេតឃើញថាបានបម្រើសមាជិករបស់វាក្នុងរយៈពេល 24 ម៉ោងចុងក្រោយ និងចំនួន connection ដែលបានប្រើពួកវា។ សម្រាប់តែអានប៉ុណ្ណោះ គណនាពី proxy log ហើយមិនដែលប្រើសម្រាប់ routing ទេ។ បិទតាមលំនាំដើម។
OPENCODE_RESPONSES_STALL_ROTATION boolean false សម្រាប់ OpenCode executor សូមតាមដាន byte ដំបូងនៃ body របស់ការឆ្លើយតប Responses ដែលបាន stream (ចន្លោះពេល៖ RESPONSES_FIRST_BYTE_TIMEOUT_MS, លំនាំដើម 15000)។ Responses stream ប្រភេទ 2xx ដែលនៅស្ងាត់លើសចន្លោះពេលនេះ ត្រូវបានចាត់ទុកថាជាប់គាំង៖ គណនីត្រូវបានដាក់ឱ្យ cooldown ហើយសំណើនឹងប្ដូរទៅគណនីបន្ទាប់មួយដង។ ការជាប់គាំងលើកទីពីរនឹងបរាជ័យភ្លាមៗ។ បិទតាមលំនាំដើម៖ stream ដែលជាប់គាំងនឹងបន្តប្រើរយៈពេលរង់ចាំបច្ចុប្បន្ន រហូតដល់អស់ពេលរង់ចាំភាពរួចរាល់របស់ stream។
OPENCODE_USER_BLOCKED_ROTATION boolean false OpenCode executor៖ នៅពេលមាន 403/451 ដែលភ្ជាប់មកជាមួយការបដិសេធ user_blocked (មិនមែនដោយសារភូមិសាស្ត្រ និងមិនមែនជាការបដិសេធស្នាមផ្ដិត Cloudflare) សូមដាក់គណនីដែលត្រូវបានបដិសេធឱ្យ cooldown ហើយប្ដូរទៅគណនីបន្ទាប់យ៉ាងច្រើនមួយដងក្នុងមួយសំណើ។ ការបដិសេធលើកទីពីរត្រូវបានត្រឡប់ដូចដើម ដោយគ្មានសញ្ញាសម្គាល់ថាជោគជ័យ។ បិទតាមលំនាំដើម៖ ការបង្វែរ routing ជុំវិញការទប់ស្កាត់អ្នកប្រើប្រាស់ពី upstream អាចមើលទៅដូចជាការគេចវេះ និងធ្វើឱ្យសញ្ញាសម្គាល់នោះរាលដាលទូទាំង fleet។
OPENCODE_TRANSIENT_FAILOVER_BACKOFF boolean false ការបង្វិល OpenCode៖ បន្ទាប់ពីការបរាជ័យបណ្ដោះអាសន្នពី upstream ពីរដងជាប់គ្នា (5xx ឬ 400 ដែលមាន body ទទេ) សូមផ្អាកមុនពេលប្ដូរទៅគណនីបន្ទាប់ — ចាប់ពី 1.5 វិនាទី ហើយកើនទ្វេដងសម្រាប់ការបរាជ័យបន្ថែមនីមួយៗ ដោយកំណត់អតិបរមា 6 វិនាទីក្នុងមួយការផ្អាក និង 10 វិនាទីក្នុងមួយ request ហើយរំលងនៅពេល client ផ្ដាច់ការតភ្ជាប់; body ដែលបរាជ័យត្រូវបាន release មុនពេលរង់ចាំ។ បិទតាមលំនាំដើម៖ failover នៅតែធ្វើឡើងភ្លាមៗ។
OPENCODE_RATE_LIMITED_429_EARLY_STOP boolean false ការបង្វិល OpenCode៖ បញ្ឈប់រង្វង់គណនីនៅពេលជួប 429 ដំបូងដែលត្រូវបានចាត់ថ្នាក់ថាជាការកំណត់អត្រាពិតប្រាកដ (Retry-After ដែលអាច parse បាន ឬ body ដែលរៀបរាប់អំពីដែនកំណត់អត្រា/ការប្រើប្រាស់) ហើយបញ្ជូន upstream 429 នោះត្រឡប់ទៅវិញដោយមិនកែប្រែ។ 429 ដែលមិនត្រូវបានចាត់ថ្នាក់នឹងបន្តការបង្វិល។ បិទតាមលំនាំដើម៖ free tier ត្រូវបានកំណត់តាម egress IP (#9611) ដូច្នេះរាល់ 429 នឹងបង្វិល ហើយរង្វង់ដែលបានប្រើអស់នឹងបញ្ជូន upstream 429 ចុងក្រោយត្រឡប់ទៅវិញ។
MITM_DISABLE_TLS_VERIFY boolean false បិទការផ្ទៀងផ្ទាត់វិញ្ញាបនបត្រ TLS សម្រាប់ MITM proxy។ គ្រោះថ្នាក់។
OMNIROUTE_ALLOW_PRIVATE_PROVIDER_URLS boolean false អនុញ្ញាត provider URLs ដែលចង្អុលទៅបណ្ដាញឯកជន/ខាងក្នុង។
OMNIROUTE_ALLOW_LOCAL_PROVIDER_URLS boolean true អនុញ្ញាតឱ្យបន្ថែម/ផ្ទៀងផ្ទាត់ providers នៅលើអាសយដ្ឋាន local/private (127.0.0.1, localhost, LAN)។ បើកតាមលំនាំដើម (ផ្ដល់អាទិភាពដល់ local); បិទដើម្បីរារាំងយ៉ាងតឹងរ៉ឹងឱ្យប្រើតែ public ប៉ុណ្ណោះ។ Cloud-metadata នៅតែត្រូវបានរារាំង។
ENABLE_CC_COMPATIBLE_PROVIDER boolean false បើករបៀប provider ដែលត្រូវគ្នាជាមួយ Claude Code។

គោលការណ៍ (5)

Key Type Default Description
TOOL_POLICY_MODE enum disabled របៀបអនុវត្តគោលការណ៍ប្រើប្រាស់ tool។ តម្លៃ៖ disabled, warn, block
RATE_LIMIT_AUTO_ENABLE boolean false បើកការកំណត់អត្រាដោយស្វ័យប្រវត្តិដោយផ្អែកលើលំនាំនៃការប្រើប្រាស់។
DISABLE_CONTEXT_WINDOW_CHECKS boolean false រំលងការពិនិត្យ context-window / max-input-token ក្នុងតំបន់របស់ OmniRoute សម្រាប់ direct single-model requests។ ដែនកំណត់ upstream នៅតែអនុវត្ត។
CAPABILITY_FILTER_ENABLED boolean false បដិសេធ requests មុនពេលបញ្ជូន នៅពេល target model ខ្វះ capabilities ដែលត្រូវការ (vision, tools, structured output, context window)។ ការពារ direct single-provider requests ដែលរំលង combo-layer compatibility filter។
RADAR_ENABLED boolean false បើកម៉ូឌុល OmniRoute Radar (អេក្រង់ catalog feed និង sync)។ បិទតាមលំនាំដើម; ការបើកគ្រាន់តែដោះសោ UI ប៉ុណ្ណោះ — data sync នៅតែតម្រូវឱ្យ opt-in ដាច់ដោយឡែក។

ពេលដំណើរការ (32)

សោ ប្រភេទ លំនាំដើម ចាប់ផ្ដើមឡើងវិញ សេចក្ដីពិពណ៌នា
UNIVERSAL_CONTEXT_HANDOFF_ENABLED boolean true បង្កើត និងបញ្ចូលសេចក្ដីសង្ខេបការសន្ទនា នៅពេល combo routing ប្ដូរ model។ បិទវា ដើម្បីចាត់ទុកការប្ដូរ model នីមួយៗដោយឯករាជ្យ និងទប់ស្កាត់សំណើ handoff នៅផ្ទៃខាងក្រោយ សម្រាប់ combo ដែលមានស្រាប់ និងនាពេលអនាគតទាំងអស់។
RESPONSES_PASSTHROUGH_DROP_COMMENTARY boolean true លុបធាតុលទ្ធផលនៃដំណាក់កាល commentary ខាងក្នុងចេញពី stream passthrough របស់ Responses API មុនពេលបញ្ជូនបន្តទៅ client។ បិទវា ដើម្បីទទួលបាន commentary ដើមពី upstream។
OMNIROUTE_MCP_ENFORCE_SCOPES boolean true អនុវត្តការរឹតត្បិត scope លើការចូលប្រើឧបករណ៍ MCP។
OMNIROUTE_MCP_COMPRESS_DESCRIPTIONS boolean false បង្រួមសេចក្ដីពិពណ៌នាឧបករណ៍ MCP ដើម្បីកាត់បន្ថយការប្រើប្រាស់ token។
OMNIROUTE_ENABLE_RUNTIME_BACKGROUND_TASKS boolean false បើកដំណើរការការប្រតិបត្តិកិច្ចការផ្ទៃខាងក្រោយនៅពេល runtime។
OMNIROUTE_DISABLE_BACKGROUND_SERVICES boolean false បិទសេវាផ្ទៃខាងក្រោយទាំងអស់ (ការធ្វើឱ្យ quota ស្រស់ឡើងវិញ, sync ជាដើម)។
OMNIROUTE_RTK_TRUST_PROJECT_FILTERS boolean false ទុកចិត្តលើ filter RTK កម្រិត project ដោយមិនមានការផ្ទៀងផ្ទាត់។
OMNIROUTE_ENABLE_LIVE_WS boolean true ចាប់ផ្ដើមម៉ាស៊ីនបម្រើ WebSocket របស់ dashboard តាមពេលវេលាជាក់ស្ដែង នៅពេល import (តាមលំនាំដើមប្រើ port 20132)។
OMNIROUTE_CODEX_WS_ENABLED boolean true អនុញ្ញាតឱ្យ Codex ប្រើ Responses-over-WebSocket transport។ នៅពេលបិទ Codex នឹងត្រឡប់ទៅប្រើ HTTP Responses វិញ។
OMNIROUTE_CODEX_APP_SERVER_ENABLED boolean true អនុញ្ញាតឱ្យ Codex ប្រើ local app-server WebSocket JSON-RPC transport (codexTransport=app-server)។ នៅពេលបិទ connection ដែលបានជ្រើសប្រើ app-server នឹងត្រឡប់ទៅប្រើ transport ផ្សេងទៀតរបស់ Codex។
OMNIROUTE_EMERGENCY_FALLBACK boolean true បញ្ជូន request ដែលអស់ថវិកាទៅកាន់ fallback provider/model ឥតគិតថ្លៃសម្រាប់គ្រាអាសន្ន។ (សូមមើល ការប្រើ Fallback ពេលថវិកាអាសន្ន ខាងក្រោម។)
STREAM_RECOVERY_ENABLED boolean false បើកការសាកល្បងម្តងទៀតដំបូងដោយស្វ័យប្រវត្តិសម្រាប់ upstream SSE stream ដែលត្រូវបានកាត់ផ្តាច់ មុនពេល response byte ណាមួយទៅដល់ client។
STREAM_RECOVERY_MIDSTREAM_ENABLED boolean false អនុញ្ញាតឱ្យ stream recovery ស្នើសុំ response ឡើងវិញ និងតភ្ជាប់វា បន្ទាប់ពី byte បានទៅដល់ client រួចហើយ។
STREAM_RECOVERY_TOOLCALL_ORDER_FIX boolean false ធ្វើឱ្យការបន្តពាក់កណ្តាល stream មានសុវត្ថិភាពសម្រាប់ tool-call៖ កុំបន្ត stream ដែលត្រូវបានកាត់ផ្តាច់ បន្ទាប់ពី tool call ត្រូវបានបញ្ចេញ (កំពុងដំណើរការ ឬបានបញ្ចប់រួចហើយជាមួយ finish_reason tool_calls) ហើយបិទបន្ទាប់ពី continuation ទទេមួយ ជំនួសឱ្យការប្រើថវិកាទាំងអស់។ បិទ៖ ឥរិយាបថនៃ release។
STREAM_EARLY_EOF_SIBLING_FAILOVER_ENABLED boolean false ប្តូរទៅ connection ដូចគ្នាប្រភេទផ្សេងមួយម្តង នៅពេល SSE stream បិទមុនពេលបញ្ចេញ frame ដែលមានប្រយោជន៍ណាមួយ ហើយការសាកល្បងឡើងវិញដែលមានកំណត់លើ connection ដដែលត្រូវបានប្រើអស់។ ប្រសិនបើគ្មាន connection ដូចគ្នាប្រភេទដែលអាចប្រើបានទេ STREAM_EARLY_EOF 502 ដើមនឹងត្រូវបានត្រឡប់។ បិទតាមលំនាំដើម៖ early-EOF នៅតែជាការបញ្ចប់ បន្ទាប់ពីការសាកល្បងឡើងវិញលើ connection ដដែល។
MODEL_CATALOG_INCLUDE_NAMES boolean true រួមបញ្ចូល field ឈ្មោះដែលងាយស្រួលបង្ហាញក្នុង response របស់ /v1/models។ បិទសម្រាប់ client ដែលរំពឹងទុកតែ model ID ប៉ុណ្ណោះ។
MODELS_CATALOG_PREFIX_MODE enum dual គ្រប់គ្រងរបៀបដាក់ prefix ឱ្យ model ID ក្នុង /v1/models។ '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 បើកការធ្វើសមកាលកម្ម ELO ជាប្រចាំពីតារាងចំណាត់ថ្នាក់ Arena AI សម្រាប់ចំណាត់ថ្នាក់ភាពឆ្លាតវៃរបស់ model។
EXPOSE_CC_DISCOVERY_ALIASES boolean false ផ្សព្វផ្សាយ mirror ids claude/<provider>/<model> នៅលើ /v1/models ដើម្បីឱ្យការស្វែងរកម៉ូដែលរបស់ Claude Code gateway បង្ហាញម៉ូដែលដែលមិនមែនជា Claude។ នេះជាកម្រិតសកលនៃច្រកបីកម្រិត (env មានអាទិភាពលើការកំណត់ជំនួសក្នុង dashboard)។ សូមមើល ការកំណត់រចនាសម្ព័ន្ធ Claude Code
NO_THINKING_ALIAS_ENABLED boolean true កុងតាក់មេសម្រាប់ gateway aliases no-think//។ បើក (លំនាំដើម)៖ /v1/models ផ្សព្វផ្សាយវ៉ារ្យ៉ង់ដែលមិនប្រើការគិតសម្រាប់គ្រប់ម៉ូដែល Claude ដែលគាំទ្រការគិត និងមានសិទ្ធិប្រើ ហើយ id no-think/ ដែលផ្ញើក្នុងសំណើនឹងត្រូវបានដោះស្រាយត្រឡប់ទៅម៉ូដែលពិត ដោយបិទការវែកញែក។ បិទ៖ គ្មានវ៉ារ្យ៉ង់ណាត្រូវបានផ្សព្វផ្សាយទេ ហើយ id no-think/ ត្រូវបានចាត់ទុកដូចជា model id មិនស្គាល់ផ្សេងទៀត។ ការជ្រើសចូល/ដកខ្លួនតាមម៉ូដែល ModelSpec.noThinkingAlias នៅតែត្រូវបានអនុវត្ត ខណៈពេលដែលវាបើក។
OMNIROUTE_DISABLE_THINKING_LEVEL_VARIANTS boolean false បិទការបង្កើតវ៉ារ្យ៉ង់កម្រិតនៃការគិត (ឧ. -low, -medium, -high) ក្នុងកាតាឡុក /v1/models។
OMNIROUTE_CHAT_VIRTUAL_LANES boolean false បើកផ្លូវទទួលយកនិម្មិតដែលសម្របខ្លួនតាម tenant នីមួយៗ សម្រាប់ការបញ្ជូនទៅ provider (#9654)៖ កំណើនសំណើភ្លាមៗរបស់ tenant មួយនឹងមិនបណ្ដាលឱ្យ tenant មួយទៀតទទួល 503 ទៀតទេ។ env var OMNIROUTE_CHAT_VIRTUAL_LANES មានអាទិភាពលើការកំណត់ជំនួសក្នុង dashboard នេះ; ការផ្លាស់ប្ដូរនឹងមានប្រសិទ្ធភាពនៅពេលចាប់ផ្ដើម server ឡើងវិញ។
EXPOSE_FUNCTIONAL_GATEWAY_MIRRORS boolean false ផ្សព្វផ្សាយ mirror ids / នៅលើ /v1/models សម្រាប់ម៉ូដែលដែលម្ចាស់ canonical របស់វាមិនមាន credential សកម្ម ប៉ុន្តែមាន passthrough gateway ដែលមាន credential សកម្មសម្រាប់បញ្ជូនវា។ ការព្រមាន៖ បន្ថែមធាតុកាតាឡុកសម្រាប់ client ទាំងអស់ នៅពេលបើកជាសកល។
NEWAPI_AGGREGATOR_BALANCE boolean false បើកការរកឃើញសមតុល្យសម្រាប់ node ដែលត្រូវគ្នាជាមួយ aggregator New-API / One-API / Sub2API។ នៅពេលបើក node ដែលត្រូវគ្នា និងបានកំណត់ aggregator flag នឹងរាយការណ៍សមតុល្យរបស់វាក្នុង dashboard និងការបញ្ជូនតាម quota-preflight។
SERVER_OWNED_TOOL_LOOP_ENABLED boolean false បន្ត tool calls ដែលគ្រប់គ្រងដោយ server និងមិនមែនជា streaming រហូតដល់ម៉ូដែលត្រឡប់ response ដែល client អាចប្រើបាន។
SEARCH_STATS_HIDE_DELETED_CONNECTIONS boolean false ស្ថិតិស្វែងរក និងការស្វែងរកថ្មីៗ រាប់តែ provider ដែលនៅមាន live connection ប៉ុណ្ណោះ (provider ដែលមិនត្រូវការ key ដូចជា duckduckgo-free តែងតែត្រូវបានរាប់)។ ការបិទនឹងរក្សាជួរទិន្នន័យស្វែងរកទាំងអស់ដែលបានរក្សាទុក និងមាន provider id។
FREE_BADGE_REQUIRES_PROVIDER_FREE_TIER boolean false ទំព័រ provider ក្នុង dashboard៖ បង្ហាញស្លាក Free តែលើសញ្ញាដែល provider ទទួលស្គាល់ប៉ុណ្ណោះ — ដោយលុបវិធីសន្និដ្ឋានតាម display-name, free fields ដែលមិនមែនជា boolean និងបច្ច័យ :free លើ provider ដែលបានចុះឈ្មោះ ប៉ុន្តែមិនមាន free tier ដែលបានចងក្រងជាឯកសារ។ ការបិទនឹងរក្សាច្បាប់ស្លាកបែបចាស់។
RETRY_AFTER_PROVENANCE_ENABLED boolean false នៅលើ response មិនអាចប្រើបាន 429/503 ដែលបានប្រមូលផ្ដុំ សូមលុប Retry-After នៅពេលមិនស្គាល់ពេលវេលាជាក់លាក់សម្រាប់សាកល្បងម្ដងទៀតនាពេលអនាគត (ជំនួសឱ្យតម្លៃសិប្បនិម្មិត 1s), បន្ថែម error.retry_after_provenance (signal | none) និងអនុញ្ញាតឱ្យ combo drain paths អានសេចក្ដីណែនាំជាអត្ថបទអំពីការសាកល្បងម្ដងទៀតពី JSON និង upstream bodies ជា plain-text។ field នេះបង្ហាញតែលើ response ដែលបង្កើតដោយ unavailableResponse() ប៉ុណ្ណោះ; bodies 429/503 ផ្សេងទៀតមិនផ្លាស់ប្ដូរ។
PROTECTED_PRIORITY_INFRA_502_ENABLED boolean false នៅពេលគោលដៅបន្សំ priority ដែលត្រូវបានសម្គាល់ថា fallback-only-on-quota-exhaustion បញ្ឈប់ការបន្សំដោយមូលហេតុដែលអាចបញ្ជាក់បានថាមិនមែនដោយសារកូតា (ឧបករណ៍កាត់សៀគ្វីរបស់អ្នកផ្តល់សេវាបើក ឬការរំលងដោយសារការព្យាករភាពយឺត) ត្រូវឆ្លើយតបជា 502 ជំនួសឱ្យ 503 ដែលមើលទៅដូចជាបញ្ហាកូតា។ ការបញ្ឈប់ដោយសារការចាក់សោ រយៈពេលរង់ចាំ ភាពមិនអាចប្រើបាន ការអស់កូតា និងកម្រិតអតិបរមានៃដំណើរការដំណាលគ្នា នៅតែឆ្លើយតបជា 503។
MISTRAL_AMBIGUOUS_401_SOFT_LOCKOUT boolean false ការឆ្លើយតប Mistral 401 ធម្មតា ({"detail":"Unauthorized"} ដោយគ្មានសញ្ញាផ្ទៀងផ្ទាត់អត្តសញ្ញាណច្បាស់លាស់) មានលក្ខណៈដូចគ្នាទាំងសម្រាប់សោដែលត្រូវបានដកហូត និងកូតាដែលបានអស់។ នៅពេលបើក វានឹងដាក់ការតភ្ជាប់ឱ្យស្ថិតក្នុងរយៈពេលរង់ចាំ ជំនួសឱ្យការផ្អាកវាជា expired ដោយធ្វើបែបនេះច្រើនបំផុត 3 ដងក្នុងមួយម៉ោងសម្រាប់ការតភ្ជាប់នីមួយៗ; លើកបន្ទាប់នឹងផ្អាកវា ដូច្នេះសោដែលត្រូវបានដកហូតនៅតែនឹងឈានទៅស្ថានភាពចុងក្រោយបាន។ តាមលំនាំដើម វាត្រូវបានបិទ៖ រាល់ការឆ្លើយតប Mistral 401 ធម្មតានឹងផ្អាកការតភ្ជាប់ដូចមុន។
XAI_OAUTH_LIVE_MODEL_DISCOVERY boolean false ទាញយកកាតាឡុកម៉ូដែល xAI ផ្ទាល់សម្រាប់ការតភ្ជាប់ xai-oauth ពី https://api.x.ai/v1/models ដោយប្រើ OAuth bearer token ជំនួសឱ្យបញ្ជីដើមឋិតិវន្តដែលបានកំណត់ទុក។ តាមលំនាំដើម វាត្រូវបានបិទ៖ xai-oauth បន្តផ្តល់បញ្ជីដើមឋិតិវន្តដោយមិនផ្លាស់ប្តូរ។ ប្រសិនបើមានកំហុសណាមួយក្នុងការដោះស្រាយ ការស្វែងរកនឹងត្រឡប់ទៅប្រើបញ្ជីដើមវិញ (មិនទាន់បានផ្ទៀងផ្ទាត់ថា x.ai ទទួលយក OAuth bearer នៅ endpoint នេះឬអត់)។
BATCH_AND_FILE_AUTO_CLEANUP_ENABLED boolean false អនុញ្ញាតឱ្យការសម្អាតស្វ័យប្រវត្តិលុបការងារ Batch API ដែលបានបញ្ចប់ (ជោគជ័យ/បរាជ័យ/បានបោះបង់/ផុតកំណត់) និងចាស់ជាង OMNIROUTE_BATCH_RETENTION_DAYS រួមជាមួយចំណុចត្រួតពិនិត្យតាមបន្ទាត់នីមួយៗរបស់វា ព្រមទាំងសម្អាតមាតិកា BLOB នៃឯកសារដែលបានផ្ទុកឡើង និងហួស expires_at របស់វា។ តាមលំនាំដើម វាត្រូវបានបិទ៖ រាល់ការដំឡើងដែលមានស្រាប់នឹងរក្សាទិន្នន័យនេះដូចមុន រហូតដល់ប្រតិបត្តិករជ្រើសរើសបើកវា។ route DELETE /api/v1/batches/delete-completed ដែលប្រតិបត្តិករបើកដំណើរការមិនរងផលប៉ះពាល់ក្នុងករណីណាមួយទេ — វាជាកិច្ចសន្យា API សាធារណៈដាច់ដោយឡែក និងគ្មានលក្ខខណ្ឌ។

CLI (5)

សោ ប្រភេទ លំនាំដើម ចាប់ផ្តើមឡើងវិញ សេចក្តីពិពណ៌នា
CLI_COMPAT_ALL boolean false បើករបៀបភាពត្រូវគ្នាសម្រាប់ CLI client ទាំងអស់។
MODEL_ALIAS_COMPAT_ENABLED boolean false បើកស្រទាប់ភាពត្រូវគ្នានៃឈ្មោះក្លែងក្លាយរបស់ម៉ូដែល។
PRICING_SYNC_ENABLED boolean false បើកការធ្វើសមកាលកម្មទិន្នន័យតម្លៃដោយស្វ័យប្រវត្តិ (តម្រូវឱ្យមាន environment variable PRICING_SYNC_ENABLED ផងដែរ)។
OMNIROUTE_AUTO_SYNC_CODEX_PROFILES boolean false បន្ទាប់ពីធ្វើសមកាលកម្មម៉ូដែលរបស់អ្នកផ្តល់សេវា ត្រូវសរសេរ ឬសរសេរឡើងវិញដោយស្វ័យប្រវត្តិនូវឯកសារ profile ~/.codex/*.config.toml ពីកាតាឡុកផ្ទាល់។ មិនផ្លាស់ប្តូរការកំណត់រចនាសម្ព័ន្ធ Codex ដែលកំពុងប្រើ/លំនាំដើមឡើយ។ តាមលំនាំដើម វាត្រូវបានបិទ។
OMNIROUTE_AUTO_SYNC_CLAUDE_PROFILES boolean false បន្ទាប់ពីធ្វើសមកាលកម្មម៉ូដែលរបស់អ្នកផ្តល់សេវា ត្រូវសរសេរ ឬសរសេរឡើងវិញដោយស្វ័យប្រវត្តិនូវ Claude Code profile ~/.claude/profiles//settings.json ពីកាតាឡុកផ្ទាល់។ មិនផ្លាស់ប្តូរការកំណត់រចនាសម្ព័ន្ធ Claude ដែលកំពុងប្រើ/លំនាំដើមឡើយ។ តាមលំនាំដើម វាត្រូវបានបិទ។

សុខភាពប្រព័ន្ធ (5)

គន្លឹះ ប្រភេទ លំនាំដើម ការពិពណ៌នា
OMNIROUTE_DISABLE_LOCAL_HEALTHCHECK boolean false បិទ endpoint ពិនិត្យសុខភាពរបស់ instance មូលដ្ឋាន។
OMNIROUTE_DISABLE_TOKEN_HEALTHCHECK boolean false បិទការពិនិត្យសុខភាពសម្រាប់ការផ្ទៀងផ្ទាត់ token។
SKILLS_SANDBOX_NETWORK_ENABLED boolean false បើកសិទ្ធិចូលប្រើបណ្ដាញនៅក្នុងបរិស្ថាន sandbox របស់ skills។
PROXY_HEALTH_BLOCKED_RESETS_STREAK boolean false ក្នុងការត្រួតពិនិត្យសុខភាព proxy ជាទូទៅ probe ដែលគោលដៅបានបដិសេធ (401/403/429) នឹងកំណត់ខ្សែបរាជ័យជាប់ៗគ្នារបស់ proxy ឡើងវិញ។ តាមលំនាំដើម វាត្រូវបានបិទ៖ ការបដិសេធនៅតែមានស្ថានភាពអព្យាក្រឹត (#10654)។ 5xx នៅតែមិនអាចសន្និដ្ឋានបាន ទោះក្នុងករណីណាក៏ដោយ ហើយការបដិសេធមិនដែលលុប បិទ ឬធ្វើឱ្យ proxy សកម្មឡើងវិញទេ។
DB_HEALTHCHECK_STARTUP_DEFERRED_ENABLED boolean false ដំណើរការការពិនិត្យសុចរិតភាព/សុខភាព DB ពេលចាប់ផ្ដើម បន្ទាប់ពី server ចាប់ផ្ដើមទទួល request (តាមរយៈ setImmediate) ជំនួសឱ្យការរារាំងដំណើរការចាប់ផ្ដើមរហូតដល់ការពិនិត្យបញ្ចប់ (#13717)។ តាមលំនាំដើម វាត្រូវបានបិទ៖ ដំណើរការចាប់ផ្ដើមត្រូវបានរារាំងដូចគ្នាទៅនឹងមុន PR នេះ។

Note

INPUT_SANITIZER_BLOCK_THRESHOLD និងឈ្មោះហៅក្រៅចាស់របស់វា INJECTION_GUARD_BLOCK_THRESHOLD កែសម្រួល mode block របស់ INJECTION_GUARD_MODE ប៉ុន្តែពួកវាជា environment variables ធម្មតាដែលត្រូវបានអានដោយ src/shared/utils/injectionSeverity.ts មិនមែនជា feature flags ទេ៖ ពួកវាមិនមានការកំណត់ជំនួសក្នុង DB និងមិនមាន toggle ក្នុង dashboard ទេ។ សូមមើល ENVIRONMENT.md

Note

ជួរឈរ Restart សម្គាល់ flags ដែលមាន requiresRestart: true — តម្លៃត្រូវបាន រក្សាទុកភ្លាមៗ ប៉ុន្តែមានប្រសិទ្ធភាពតែបន្ទាប់ពី process ផ្ទុកឡើងវិញប៉ុណ្ណោះ។ Enum flags បដិសេធតម្លៃណាមួយដែលនៅក្រៅសំណុំតម្លៃដែលបានអនុញ្ញាតរបស់វា (ត្រូវបានផ្ទៀងផ្ទាត់នៅផ្នែក server ក្នុង ទាំង setFeatureFlagOverride() និង REST handler សម្រាប់ PUT)។


ការបិទបើក Flag

ផ្ទាំងគ្រប់គ្រង

ចូលទៅកាន់ ផ្ទាំងគ្រប់គ្រង → ការកំណត់ → Feature Flags (/dashboard/settings/feature-flags)។ ក្រឡាចត្រង្គ (src/app/(dashboard)/dashboard/settings/components/FeatureFlagsGrid.tsx) គាំទ្រ៖

  • ស្វែងរក តាម key ឬសេចក្ដីពិពណ៌នា និង ត្រង តាមប្រភេទ (រួមទាំងទិដ្ឋភាពសំយោគ តម្រូវឱ្យចាប់ផ្ដើមឡើងវិញ)។
  • ប៊ូតុងបិទបើក សម្រាប់ boolean flags និង បញ្ជីទម្លាក់ចុះ សម្រាប់ enum flags (src/app/(dashboard)/dashboard/settings/components/FeatureFlagCard.tsx)។
  • ផ្លាកសម្គាល់ប្រភព សម្រាប់ flag នីមួយៗ — DB, ENV, ឬ DEF — ដែលបង្ហាញថា តម្លៃដែលមានប្រសិទ្ធភាពបានមកពីណា។
  • ប៊ូតុង កំណត់ឡើងវិញ (បង្ហាញតែសម្រាប់ flags ដែលមានប្រភពពី DB) ដើម្បីលុបការកំណត់ជំនួស និងប៊ូតុង កំណត់ការកំណត់ជំនួសទាំងអស់ឡើងវិញ នៅផ្នែកខាងក្រោម។
  • បដា ចាប់ផ្ដើមម៉ាស៊ីនមេឡើងវិញ នៅពេល flag ដែលមាន requiresRestart ត្រូវបានផ្លាស់ប្ដូរ។

REST API

ប្រតិបត្តិការទាំងអស់ឆ្លងកាត់ route តែមួយ៖ src/app/api/settings/feature-flags/route.ts។ method នីមួយៗតម្រូវឱ្យមាន dashboard session ដែលបានផ្ទៀងផ្ទាត់ (401 បើមិនដូច្នោះទេ)។

GET /api/settings/feature-flags

ត្រឡប់ 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",
    },
    // ... flags ទាំង 72
  ],
  "summary": {
    "total": 56,
    "active": 0,
    "inactive": 0,
    "overriddenByDb": 0,
    "overriddenByEnv": 0,
  },
}

PUT /api/settings/feature-flags

កំណត់ ឬលុបការកំណត់ជំនួសតែមួយ។ Body៖ { key: string; value?: string }។ ការមិនបញ្ចូល value នឹងលុបការកំណត់ជំនួស (ដោយស្ដារ env / default ឡើងវិញ)។

# កំណត់ការកំណត់ជំនួស 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"}'

response ឆ្លុះបញ្ចាំង effectiveValue/source ថ្មី previousValue/ previousSource និង requiresRestart។ keys ដែលមិនស្គាល់ និងតម្លៃ enum ដែលនៅក្រៅជួរត្រូវបានបដិសេធដោយ 400

DELETE /api/settings/feature-flags

សម្អាតការកំណត់ជំនួស DB ទាំងអស់ ក្នុងពេលតែមួយ ដោយស្ដារ flag នីមួយៗទៅតម្លៃ env / default របស់វា។ ត្រឡប់ { cleared: <count>, message: "..." }

Note

Flags ដែលមាន requiresRestart: true មានប្រសិទ្ធភាពតែបន្ទាប់ពីដំណើរការត្រូវបានផ្ទុកឡើងវិញប៉ុណ្ណោះ។ លំហូរចាប់ផ្ដើមឡើងវិញរបស់ផ្ទាំងគ្រប់គ្រងហៅ POST /api/restart ហើយបន្ទាប់មកធ្វើ polling GET /api/health/ping រហូតដល់ម៉ាស៊ីនមេដំណើរការឡើងវិញ។


ជម្រើសបម្រុងថវិកាបន្ទាន់

OMNIROUTE_EMERGENCY_FALLBACK (ប្រភេទ runtime, default true) គ្រប់គ្រង ផ្លូវ free-fallback បន្ទាន់នៅក្នុង open-sse/services/emergencyFallback.ts។ នៅពេលបើក សំណើដែលប្រើថវិការបស់ខ្លួនអស់ នឹងត្រូវបានបញ្ជូនទៅកាន់ provider/model បម្រុងឥតគិតថ្លៃ ជំនួសឱ្យការបរាជ័យទាំងស្រុង។ កំណត់វាទៅជា false (ឬ 0) — តាមរយៈ ប៊ូតុងបិទបើកនៅផ្ទាំងគ្រប់គ្រង ការកំណត់ជំនួស DB ឬ environment variable OMNIROUTE_EMERGENCY_FALLBACK — ដើម្បីបិទឥរិយាបថនេះ និងអនុញ្ញាតឱ្យសំណើដែលប្រើថវិកាអស់ បរាជ័យ។ (ត្រូវបានបង្ហាញជាប៊ូតុងបិទបើកនៅផ្ទាំងគ្រប់គ្រងក្នុង PRs #3741 / #3752។)


សូមមើលផងដែរ

  • ឯកសារយោងអំពីអថេរបរិស្ថាន — flag ភាគច្រើនមានអថេរបរិស្ថានដែលមានឈ្មោះដូចគ្នា និងត្រូវបានចងក្រងជាឯកសារនៅទីនោះ (ការកំណត់ជំនួសពី DB មានអាទិភាព លើអថេរនោះ)។
  • src/shared/constants/featureFlagDefinitions.ts — ប្រភពផ្លូវការសម្រាប់ flag នីមួយៗ។
  • src/shared/utils/featureFlags.ts — តក្កវិជ្ជាដោះស្រាយ (resolveFeatureFlag, isFeatureFlagEnabled, resolveAllFeatureFlags)។
  • src/lib/db/featureFlags.ts — ការរក្សាទុកការកំណត់ជំនួសពី DB ក្នុង namespace feature_flags នៃតារាង key_value