* 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.
61 KiB
Feature Flags (Polski)
🌐 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 · 🇲🇲 my · 🇳🇵 ne · 🇳🇱 nl · 🇳🇴 no · 🇮🇳 or · 🇮🇳 pa · 🇵🇭 phi · 🇵🇹 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
Przełączniki środowiska wykonawczego, które zmieniają zachowanie OmniRoute bez ponownego wdrożenia. Każda wymieniona tutaj flaga jest zdefiniowana w pliku
src/shared/constants/featureFlagDefinitions.ts— stanowiącym jedyne źródło prawdy. Zarówno panel, jak i interfejs REST API odczytują dane z tego pliku, dlatego poniższa tabela jest generowana tak, aby odpowiadała mu w stosunku 1:1.
Czym są flagi funkcji
Flaga funkcji to nazwany przełącznik (wartość logiczna lub wyliczeniowa), którego wartość można zmieniać w
czasie wykonywania i zapisywać w bazie danych bez konieczności ponownego wdrażania procesu. Każda
flaga jest opisana przez FeatureFlagDefinition zawierającą key, label,
description, category, defaultValue, type oraz wskazówkę requiresRestart.
Kolejność rozstrzygania
Efektywna wartość flagi jest ustalana przez
resolveFeatureFlag() zgodnie z następującą
kolejnością pierwszeństwa (wyższa pozycja ma pierwszeństwo):
- Nadpisanie w bazie danych — wartość przechowywana w tabeli
key_valuew przestrzeni nazwfeature_flags(ustawiana za pomocą panelu lub interfejsu REST API). - Zmienna środowiskowa —
process.env[<KEY>], jeśli jest ustawiona i nie jest pusta. - Wartość domyślna definicji —
defaultValuez plikufeatureFlagDefinitions.ts.
Flaga logiczna jest uznawana za włączoną, gdy jej efektywna wartość to "true",
"1" lub "yes" (zobacz isFeatureFlagEnabled()).
Note
Większość flag ma również odpowiadającą im zmienną środowiskową o tej samej nazwie, udokumentowaną w pliku
ENVIRONMENT.md. Nadpisanie flagi w bazie danych ma pierwszeństwo przed tą zmienną środowiskową. Flaga z ustawieniemrequiresRestart: truejest zapisywana natychmiast, ale ponownie odczytywana dopiero podczas uruchamiania procesu — jej przełączenie powoduje wyświetlenie w panelu banera „Uruchom serwer ponownie”.
Katalog flag
72 flagi w 6 kategoriach. Wartość domyślna oznacza wartość domyślną definicji — wartość używaną, gdy nie istnieje ani nadpisanie w bazie danych, ani zmienna środowiskowa.
Bezpieczeństwo (10)
| Klucz | Typ | Wartość domyślna | Opis |
|---|---|---|---|
REQUIRE_API_KEY |
boolean | false |
Wymagaj klucza API dla wszystkich żądań przychodzących. |
INPUT_SANITIZER_ENABLED |
boolean | true |
Włącz oczyszczanie danych wejściowych dla wszystkich żądań. |
INJECTION_GUARD_MODE |
enum | off |
Tryb ochrony przed wstrzykiwaniem poleceń. Wartości: off, warn, block, redact. |
PII_REDACTION_ENABLED |
boolean | false |
Redaguj dane osobowe w żądaniach (niezależnie od INPUT_SANITIZER_MODE). |
PII_RESPONSE_SANITIZATION |
boolean | false |
Oczyszczaj dane osobowe z odpowiedzi dostawcy. |
PII_RESPONSE_SANITIZATION_MODE |
enum | redact |
Tryb oczyszczania danych osobowych w odpowiedziach. Wartości: redact, warn, block, off. |
OUTBOUND_SSRF_GUARD_ENABLED |
boolean | true |
Blokuj żądania wychodzące do prywatnych/wewnętrznych zakresów adresów IP. |
ALLOW_API_KEY_REVEAL |
boolean | false |
Zezwalaj uwierzytelnionym użytkownikom panelu na wyświetlanie zapisanych kluczy API zamiast pokazywania wyłącznie zamaskowanych wartości. |
AUTH_LOG_INCLUDE_ACCOUNT_ID |
boolean | false |
Uwzględniaj prefiks konta w wierszach dziennika AUTH (np. „Używanie konta : abc12345...”). Domyślnie wyłączone, aby identyfikatory kont były redagowane we współdzielonych/wielodostępnych dziennikach procesu. Niezależne od trybu debugowania; jego przełączenie nie ujawnia tych danych. |
OMNIROUTE_OIDC_DISABLE_PASSWORD_LOGIN |
boolean | false |
Gdy OIDC jest włączone, wyłącz logowanie za pomocą hasła, aby użytkownicy mogli uwierzytelniać się wyłącznie przez logowanie jednokrotne OIDC. Gdy ta opcja jest wyłączona (domyślnie), dostępne jest zarówno logowanie za pomocą hasła, jak i OIDC. |
Sieć (15)
| Klucz | Typ | Domyślnie | Restart | Opis |
|---|---|---|---|---|
ENABLE_TLS_FINGERPRINT |
boolean | false |
✓ | Włącza tryb maskowania odcisku palca TLS. |
AUDIO_REMOTE_PROVIDER_NODES |
boolean | false |
Zezwala trasom /v1/audio/* na korzystanie z węzłów dostawców zgodnych z OpenAI, hostowanych poza localhostem. Domyślnie wyłączone — kierowanie audio do zdalnego hosta zmienia tożsamość ruchu wychodzącego i musi być świadomą decyzją operatora. Węzły pętli zwrotnej są zawsze dozwolone i ustawienie to na nie nie wpływa. | |
PROXY_AUTO_SELECT_ENABLED |
boolean | false |
Gdy do połączenia nie przypisano serwera proxy, automatycznie wybiera pierwszy działający serwer proxy z rejestru. Domyślnie wyłączone (w przeciwnym razie dowolny serwer proxy z rejestru staje się globalnym rozwiązaniem rezerwowym — #3332). | |
OMNIROUTE_CONTROL_PLANE_PROXY_DIRECT_FALLBACK |
boolean | false |
Zezwala przepływom OAuth i walidacji dostawcy na ominięcie przypiętego serwera proxy i bezpośrednie połączenie, gdy wstępne testy osiągalności serwera proxy zakończą się niepowodzeniem. Domyślnie wyłączone, ponieważ może to zmienić wychodzący adres IP. | |
NETWORK_ROTATION_SHARED_EGRESS_GUARD |
boolean | true |
W przypadku wyjątku sieciowego (przekroczenie limitu czasu, odmowa lub reset połączenia) w module wykonującym rotację wielu kont, gdy konto, na którym wystąpił błąd, nie ma dedykowanego serwera proxy, stosuje krótki okres wstrzymania i pomija pozostałe konta bez serwera proxy do końca obsługi żądania, zamiast ponawiać próbę dla każdego z nich. Domyślnie włączone (bezpieczne: nie zmienia wychodzącego adresu IP, a jedynie zmniejsza ryzyko opóźnień i okresów wstrzymania dla kont współdzielących ruch wychodzący). Wyłącz, aby przywrócić natychmiastowe propagowanie pierwszego wyjątku zgłoszonego dla konta bez serwera proxy. | |
PROXY_SKIP_RECENTLY_FAILED |
boolean | false |
Pule serwerów proxy oraz rotacja serwerów proxy dla poszczególnych kont w opencode przestają ponownie udostępniać serwer proxy, który właśnie zawiódł (odrzucona sonda TCP lub odebrana za jego pośrednictwem odpowiedź 429), przez okres właściwy dla danego procesu, podwajany przy każdym kolejnym niepowodzeniu aż do ustalonego limitu. Stan serwera proxy nie jest zapisywany; jeśli wszyscy kandydaci zostaną odłożeni, wybór pozostaje niezmieniony. Domyślnie wyłączone. | |
PROXY_POOL_EGRESS_OBSERVATION |
boolean | false |
Wyświetla w panelu, pod pulą serwerów proxy, ile zaobserwowanych wychodzących adresów IP obsługiwało jej członków w ciągu ostatnich 24 godz. oraz ile połączeń z nich korzystało. Funkcja tylko do odczytu, obliczana na podstawie dziennika serwera proxy i nigdy nieużywana do routingu. Domyślnie wyłączone. | |
OPENCODE_RESPONSES_STALL_ROTATION |
boolean | false |
Dla modułu wykonawczego OpenCode monitoruje pierwszy bajt treści strumieniowej odpowiedzi Responses (okno: RESPONSES_FIRST_BYTE_TIMEOUT_MS, domyślnie 15000). Strumień Responses z kodem 2xx, który pozostaje bezczynny po upływie tego okna, jest uznawany za zablokowany: konto zostaje objęte okresem wstrzymania, a żądanie jest jednokrotnie przekierowywane do następnego konta; drugie zablokowanie powoduje natychmiastowe niepowodzenie. Domyślnie wyłączone: zablokowane strumienie zachowują obecny czas oczekiwania do przekroczenia limitu czasu gotowości strumienia. |
|
OPENCODE_USER_BLOCKED_ROTATION |
boolean | false |
Moduł wykonawczy OpenCode: po otrzymaniu odpowiedzi 403/451 zawierającej odmowę user_blocked (niezwiązaną z lokalizacją geograficzną ani odrzuceniem odcisku palca przez Cloudflare) obejmuje odrzucone konto okresem wstrzymania i przełącza się na następne konto co najwyżej raz na żądanie; druga odmowa jest zwracana bez zmian i bez oznaczenia jako sukces. Domyślnie wyłączone: obchodzenie blokady użytkownika po stronie usługi nadrzędnej może wyglądać jak próba jej obejścia i rozprzestrzenić oznaczenie na całą flotę. |
|
OPENCODE_TRANSIENT_FAILOVER_BACKOFF |
boolean | false |
Rotacja OpenCode: po dwóch kolejnych przejściowych błędach usługi nadrzędnej (5xx lub pustej odpowiedzi 400) wstrzymaj działanie przed przejściem do następnego konta — 1,5 s, z podwajaniem przy każdym kolejnym błędzie, maksymalnie 6 s na przerwę i 10 s na żądanie; pomijane w przypadku rozłączenia klienta. Treść nieudanej odpowiedzi jest zwalniana przed oczekiwaniem. Domyślnie wyłączone: przełączanie awaryjne pozostaje natychmiastowe. | |
OPENCODE_RATE_LIMITED_429_EARLY_STOP |
boolean | false |
Rotacja OpenCode: zatrzymaj cykl kont po pierwszej odpowiedzi 429 sklasyfikowanej jako rzeczywiste ograniczenie szybkości (możliwy do przeanalizowania nagłówek Retry-After lub treść wskazująca limit szybkości/użycia) i zwróć tę odpowiedź 429 usługi nadrzędnej bez zmian. Niesklasyfikowane odpowiedzi 429 nie przerywają rotacji. Domyślnie wyłączone: warstwa bezpłatna jest ograniczana na podstawie wychodzącego adresu IP (#9611), dlatego każda odpowiedź 429 powoduje rotację, a po wyczerpaniu cyklu zwracana jest ostatnia odpowiedź 429 usługi nadrzędnej. |
|
MITM_DISABLE_TLS_VERIFY |
boolean | false |
✓ | Wyłącz weryfikację certyfikatu TLS dla serwera proxy MITM. Niebezpieczne. |
OMNIROUTE_ALLOW_PRIVATE_PROVIDER_URLS |
boolean | false |
Zezwól na adresy URL dostawców wskazujące sieci prywatne/wewnętrzne. | |
OMNIROUTE_ALLOW_LOCAL_PROVIDER_URLS |
boolean | true |
Zezwól na dodawanie/weryfikowanie dostawców pod adresami lokalnymi/prywatnymi (127.0.0.1, localhost, LAN). Domyślnie włączone (priorytet lokalny); wyłącz, aby rygorystycznie blokować wszystkie adresy inne niż publiczne. Adresy metadanych chmurowych pozostają zablokowane. | |
ENABLE_CC_COMPATIBLE_PROVIDER |
boolean | false |
✓ | Włącz tryb dostawcy zgodnego z Claude Code. |
Zasady (5)
| Klucz | Typ | Domyślnie | Opis |
|---|---|---|---|
TOOL_POLICY_MODE |
enum | disabled |
Tryb egzekwowania zasad użycia narzędzi. Wartości: disabled, warn, block. |
RATE_LIMIT_AUTO_ENABLE |
boolean | false |
Automatycznie włączaj ograniczanie szybkości na podstawie wzorców użycia. |
DISABLE_CONTEXT_WINDOW_CHECKS |
boolean | false |
Pomiń lokalne sprawdzanie okna kontekstu / maksymalnej liczby tokenów wejściowych przez OmniRoute w przypadku bezpośrednich żądań do pojedynczego modelu. Limity usługi nadrzędnej nadal obowiązują. |
CAPABILITY_FILTER_ENABLED |
boolean | false |
Odrzucaj żądania przed ich wysłaniem, gdy model docelowy nie ma wymaganych możliwości (obsługi obrazów, narzędzi, ustrukturyzowanych danych wyjściowych lub odpowiedniego okna kontekstu). Chroni bezpośrednie żądania kierowane do pojedynczego dostawcy, które omijają filtr zgodności warstwy combo. |
RADAR_ENABLED |
boolean | false |
Włącz moduł OmniRoute Radar (ekrany źródeł katalogu i synchronizacji). Domyślnie wyłączone; włączenie odblokowuje jedynie interfejs użytkownika — synchronizacja danych nadal wymaga osobnego wyrażenia zgody. |
Środowisko uruchomieniowe (32)
| Klucz | Typ | Domyślnie | Restart | Opis |
|---|---|---|---|---|
UNIVERSAL_CONTEXT_HANDOFF_ENABLED |
boolean | true |
Generuj i wstrzykuj podsumowania konwersacji, gdy routing kombinowany przełącza modele. Wyłącz, aby traktować przełączenia modeli niezależnie i zapobiec żądaniom przekazywania kontekstu w tle dla wszystkich istniejących i przyszłych kombinacji. | |
RESPONSES_PASSTHROUGH_DROP_COMMENTARY |
boolean | true |
Usuwaj wewnętrzne elementy wyjściowe fazy komentarza ze strumieni przekazywanych bezpośrednio przez interfejs Responses API przed przesłaniem ich do klientów. Wyłącz, aby otrzymywać nieprzetworzone komentarze z usługi nadrzędnej. | |
OMNIROUTE_MCP_ENFORCE_SCOPES |
boolean | true |
Egzekwuj ograniczenia zakresów dostępu do narzędzi MCP. | |
OMNIROUTE_MCP_COMPRESS_DESCRIPTIONS |
boolean | false |
Kompresuj opisy narzędzi MCP, aby zmniejszyć użycie tokenów. | |
OMNIROUTE_ENABLE_RUNTIME_BACKGROUND_TASKS |
boolean | false |
Włącz przetwarzanie zadań w tle podczas działania. | |
OMNIROUTE_DISABLE_BACKGROUND_SERVICES |
boolean | false |
✓ | Wyłącz wszystkie usługi działające w tle (odświeżanie limitów, synchronizację itp.). |
OMNIROUTE_RTK_TRUST_PROJECT_FILTERS |
boolean | false |
Ufaj filtrom RTK na poziomie projektu bez walidacji. | |
OMNIROUTE_ENABLE_LIVE_WS |
boolean | true |
✓ | Uruchom serwer WebSocket panelu czasu rzeczywistego podczas importowania (domyślnie na porcie 20132). |
OMNIROUTE_CODEX_WS_ENABLED |
boolean | true |
Zezwól Codex na korzystanie z transportu Responses-over-WebSocket. Gdy opcja jest wyłączona, Codex przełącza się na HTTP Responses. | |
OMNIROUTE_CODEX_APP_SERVER_ENABLED |
boolean | true |
Zezwól Codex na korzystanie z lokalnego transportu JSON-RPC przez WebSocket serwera aplikacji (codexTransport=app-server). Gdy opcja jest wyłączona, połączenia skonfigurowane do korzystania z serwera aplikacji przełączają się na inne transporty Codex. | |
OMNIROUTE_EMERGENCY_FALLBACK |
boolean | true |
Kieruj żądania z wyczerpanym budżetem do awaryjnego bezpłatnego dostawcy/modelu zastępczego. (Zobacz Awaryjny mechanizm zastępczy po wyczerpaniu budżetu poniżej.) | |
STREAM_RECOVERY_ENABLED |
boolean | false |
Włącz przezroczyste wczesne ponawianie przerwanych strumieni SSE dostawcy nadrzędnego, zanim jakiekolwiek bajty odpowiedzi dotrą do klienta. | |
STREAM_RECOVERY_MIDSTREAM_ENABLED |
boolean | false |
Zezwól mechanizmowi odzyskiwania strumienia na ponowne wysłanie żądania i scalenie odpowiedzi po tym, jak bajty dotarły już do klienta. | |
STREAM_RECOVERY_TOOLCALL_ORDER_FIX |
boolean | false |
Zapewnij bezpieczeństwo wywołań narzędzi podczas kontynuacji w trakcie strumienia: nigdy nie wznawiaj przerwanego strumienia po wyemitowaniu wywołania narzędzia (trwającego lub już zakończonego z finish_reason tool_calls) oraz zakończ działanie po jednej pustej kontynuacji zamiast wykorzystywać cały budżet. Wyłączone: zachowanie wersji produkcyjnej. | |
STREAM_EARLY_EOF_SIBLING_FAILOVER_ENABLED |
boolean | false |
Po wyczerpaniu ograniczonej liczby ponowień dla tego samego połączenia przełącz się jednorazowo na połączenie równorzędne, jeśli strumień SSE zostanie zamknięty przed wyemitowaniem jakiejkolwiek użytecznej ramki; jeśli brak dostępnego połączenia równorzędnego, zwracany jest pierwotny błąd STREAM_EARLY_EOF 502. Domyślnie wyłączone: po ponowieniu dla tego samego połączenia wczesny EOF pozostaje błędem końcowym. |
|
MODEL_CATALOG_INCLUDE_NAMES |
boolean | true |
Uwzględniaj przyjazne do wyświetlania pola nazw w odpowiedziach /v1/models. Wyłącz w przypadku klientów oczekujących wyłącznie identyfikatorów modeli. |
|
MODELS_CATALOG_PREFIX_MODE |
enum | dual |
Określa sposób dodawania prefiksów do identyfikatorów modeli w /v1/models. Wartość 'dual' (domyślna) emituje zarówno prefiksy aliasów, jak i kanoniczne prefiksy identyfikatorów dostawców w celu zachowania zgodności wstecznej. Wartość 'alias' emituje tylko krótki prefiks aliasu (np. ds-web/model zamiast deepseek-web/model). Wartość 'canonical' emituje tylko pełny prefiks identyfikatora dostawcy. Wartości: dual, alias, canonical. |
|
ARENA_ELO_SYNC_ENABLED |
boolean | true |
Włącz okresową synchronizację rankingu ELO z tabeli liderów Arena AI na potrzeby rankingów inteligencji modeli. | |
EXPOSE_CC_DISCOVERY_ALIASES |
boolean | false |
Udostępnia identyfikatory lustrzane claude/<provider>/<model> w /v1/models, dzięki czemu mechanizm wykrywania modeli bramy Claude Code wyświetla modele inne niż Claude. Globalny poziom trzystopniowej bramy (zmienna środowiskowa ma pierwszeństwo przed ustawieniem zastępczym w panelu). Zobacz Konfiguracja Claude Code. |
|
NO_THINKING_ALIAS_ENABLED |
boolean | true |
Główny przełącznik aliasów bramy no-think//. Włączony (domyślnie): /v1/models udostępnia wariant bez rozumowania dla każdego kwalifikującego się modelu Claude obsługującego rozumowanie, a identyfikator no-think/ przesłany w żądaniu jest rozpoznawany jako rzeczywisty model z wyłączonym rozumowaniem. Wyłączony: żadne warianty nie są udostępniane, a identyfikator no-think/ jest traktowany jak każdy inny nieznany identyfikator modelu. Opcja włączenia/wyłączenia ModelSpec.noThinkingAlias dla poszczególnych modeli nadal obowiązuje, gdy ten przełącznik jest włączony. | |
OMNIROUTE_DISABLE_THINKING_LEVEL_VARIANTS |
boolean | false |
Wyłącza generowanie wariantów poziomu rozumowania (np. -low, -medium, -high) w katalogu /v1/models. | |
OMNIROUTE_CHAT_VIRTUAL_LANES |
boolean | false |
✓ | Włącza adaptacyjne wirtualne pasma przyjmowania żądań dla poszczególnych dzierżawców podczas przekazywania do dostawcy (#9654): nagły wzrost ruchu jednego dzierżawcy nie powoduje już błędów 503 u innego. Zmienna środowiskowa OMNIROUTE_CHAT_VIRTUAL_LANES ma pierwszeństwo przed tym ustawieniem zastępczym w panelu; zmiany zaczynają obowiązywać po ponownym uruchomieniu serwera. |
EXPOSE_FUNCTIONAL_GATEWAY_MIRRORS |
boolean | false |
Udostępnia identyfikatory lustrzane / w /v1/models dla modeli, których kanoniczny właściciel nie ma aktywnych danych uwierzytelniających, ale są one kierowane przez bramę przekazującą z aktywnymi danymi uwierzytelniającymi. Ostrzeżenie: po włączeniu globalnym dodaje wpisy katalogu dla wszystkich klientów. | |
NEWAPI_AGGREGATOR_BALANCE |
boolean | false |
Włącza wykrywanie salda dla węzłów zgodnych z agregatorami New-API / One-API / Sub2API. Po włączeniu zgodne węzły z ustawioną flagą agregatora będą zgłaszać swoje saldo w panelu oraz podczas routingu ze wstępną kontrolą limitu. | |
SERVER_OWNED_TOOL_LOOP_ENABLED |
boolean | false |
Kontynuuje należące do serwera, niestrumieniowe wywołania narzędzi, dopóki model nie zwróci odpowiedzi możliwej do wykorzystania przez klienta. | |
SEARCH_STATS_HIDE_DELETED_CONNECTIONS |
boolean | false |
Statystyki wyszukiwania i ostatnie wyszukiwania uwzględniają tylko dostawców, którzy nadal mają aktywne połączenie (dostawcy niewymagający klucza, tacy jak duckduckgo-free, są uwzględniani zawsze). Wyłączenie zachowuje każdy przechowywany wiersz wyszukiwania z identyfikatorem dostawcy. | |
FREE_BADGE_REQUIRES_PROVIDER_FREE_TIER |
boolean | false |
Strony dostawców w panelu: wyświetla odznakę Free tylko na podstawie sygnałów honorowanych przez dostawcę — pomija heurystykę nazwy wyświetlanej, nieboolowskie pola bezpłatności oraz sufiksy :free w przypadku zarejestrowanych dostawców bez udokumentowanego bezpłatnego planu. Wyłączenie zachowuje dotychczasową regułę przyznawania odznaki. | |
RETRY_AFTER_PROVENANCE_ENABLED |
boolean | false |
W zagregowanych odpowiedziach 429/503 o niedostępności pomija Retry-After, gdy nie jest znany konkretny przyszły czas ponowienia (zamiast syntetycznej wartości 1s), dodaje error.retry_after_provenance (signal | none) i pozwala ścieżkom opróżniania kombinacji odczytywać opisowe wskazówki dotyczące ponowienia z treści odpowiedzi nadrzędnych w formacie JSON i zwykłego tekstu. Pole pojawia się tylko w odpowiedziach tworzonych przez unavailableResponse(); pozostałe treści odpowiedzi 429/503 pozostają bez zmian. |
|
PROTECTED_PRIORITY_INFRA_502_ENABLED |
boolean | false |
Gdy cel kombinacji priority, oznaczony jako awaryjny wyłącznie na wypadek wyczerpania limitu, zatrzyma kombinację z przyczyny, która w sposób możliwy do udowodnienia nie jest związana z limitem (otwarty wyłącznik obwodu dostawcy, predykcyjne pominięcie z powodu opóźnienia), zwracaj kod 502 zamiast kodu 503 sugerującego wyczerpanie limitu. Zatrzymania spowodowane blokadą, okresem karencji, niedostępnością, wyczerpaniem i limitem współbieżności nadal zwracają kod 503. |
|
MISTRAL_AMBIGUOUS_401_SOFT_LOCKOUT |
boolean | false |
Ogólna odpowiedź Mistral 401 ({"detail":"Unauthorized"}, bez jednoznacznego sygnału dotyczącego uwierzytelniania) jest identyczna zarówno dla unieważnionego klucza, jak i wyczerpanego limitu. Po włączeniu połączenie jest poddawane okresowi karencji zamiast oznaczania go jako expired, maksymalnie 3 razy na godzinę dla każdego połączenia; następne wystąpienie powoduje oznaczenie go jako expired, dzięki czemu unieważniony klucz ostatecznie osiąga właściwy stan. Domyślnie wyłączone: każda ogólna odpowiedź Mistral 401 oznacza połączenie jako expired, tak jak dotychczas. |
|
XAI_OAUTH_LIVE_MODEL_DISCOVERY |
boolean | false |
Pobieraj aktualny katalog modeli xAI dla połączeń xai-oauth z https://api.x.ai/v1/models, używając tokenu okaziciela OAuth, zamiast niezmiennego statycznego zestawu początkowego. Domyślnie wyłączone: xai-oauth nadal udostępnia statyczny zestaw początkowy bez zmian. W przypadku dowolnego błędu rozpoznawania mechanizm wykrywania powraca do zestawu początkowego (nie zweryfikowano, czy x.ai akceptuje token okaziciela OAuth w tym punkcie końcowym). |
|
BATCH_AND_FILE_AUTO_CLEANUP_ENABLED |
boolean | false |
Zezwól automatycznemu procesowi czyszczenia na usuwanie zadań Batch API w stanie końcowym (ukończonych/nieudanych/anulowanych/wygasłych), starszych niż OMNIROUTE_BATCH_RETENTION_DAYS, wraz z ich punktami kontrolnymi dla poszczególnych wierszy, oraz na czyszczenie zawartości BLOB przesłanych plików po upływie ich własnego terminu expires_at. Domyślnie wyłączone: każda istniejąca instalacja zachowuje te dane dokładnie tak jak dotychczas, dopóki operator nie włączy tej funkcji. Niezależnie od tego trasa DELETE /api/v1/batches/delete-completed, uruchamiana przez operatora, pozostaje bez zmian — stanowi oddzielny, bezwarunkowy kontrakt publicznego API. |
CLI (5)
| Klucz | Typ | Domyślnie | Restart | Opis |
|---|---|---|---|---|
CLI_COMPAT_ALL |
boolean | false |
✓ | Włącz tryb zgodności dla wszystkich klientów CLI. |
MODEL_ALIAS_COMPAT_ENABLED |
boolean | false |
Włącz warstwę zgodności aliasów modeli. | |
PRICING_SYNC_ENABLED |
boolean | false |
Włącz automatyczną synchronizację danych cenowych (wymaga również zmiennej środowiskowej PRICING_SYNC_ENABLED). |
|
OMNIROUTE_AUTO_SYNC_CODEX_PROFILES |
boolean | false |
Po synchronizacji modeli dostawcy automatycznie (ponownie) zapisuj pliki profili ~/.codex/*.config.toml na podstawie aktualnego katalogu. Nigdy nie zmienia aktywnej/domyślnej konfiguracji Codex. Domyślnie wyłączone. | |
OMNIROUTE_AUTO_SYNC_CLAUDE_PROFILES |
boolean | false |
Po synchronizacji modeli dostawcy automatycznie (ponownie) zapisuj profile Claude Code ~/.claude/profiles//settings.json na podstawie aktualnego katalogu. Nigdy nie zmienia aktywnej/domyślnej konfiguracji Claude. Domyślnie wyłączone. |
Kondycja (5)
| Klucz | Typ | Domyślnie | Opis |
|---|---|---|---|
OMNIROUTE_DISABLE_LOCAL_HEALTHCHECK |
boolean | false |
Wyłącza punkt końcowy kontroli kondycji lokalnej instancji. |
OMNIROUTE_DISABLE_TOKEN_HEALTHCHECK |
boolean | false |
Wyłącza kontrolę kondycji sprawdzającą poprawność tokenu. |
SKILLS_SANDBOX_NETWORK_ENABLED |
boolean | false |
Włącza dostęp do sieci w środowisku piaskownicy umiejętności. |
PROXY_HEALTH_BLOCKED_RESETS_STREAK |
boolean | false |
Podczas cyklicznej kontroli kondycji serwerów proxy odrzucenie żądania testowego przez cel (401/403/429) resetuje serię kolejnych niepowodzeń serwera proxy. Domyślnie wyłączone: odrzucenie pozostaje neutralne (#10654). Odpowiedź 5xx pozostaje nierozstrzygająca niezależnie od ustawienia; odrzucenie nigdy nie usuwa, nie wyłącza ani nie reaktywuje serwera proxy. |
DB_HEALTHCHECK_STARTUP_DEFERRED_ENABLED |
boolean | false |
Uruchamia początkową kontrolę integralności/kondycji bazy danych po rozpoczęciu przez serwer przyjmowania żądań (za pośrednictwem setImmediate), zamiast blokować uruchamianie do czasu jej ukończenia (#13717). Domyślnie wyłączone: uruchamianie jest blokowane dokładnie tak samo jak przed tym PR-em. |
Note
INPUT_SANITIZER_BLOCK_THRESHOLDi jego starszy aliasINJECTION_GUARD_BLOCK_THRESHOLDdostosowują trybblockzmiennejINJECTION_GUARD_MODE, ale są zwykłymi zmiennymi środowiskowymi odczytywanymi przezsrc/shared/utils/injectionSeverity.ts, a nie flagami funkcji: nie mają nadpisania w bazie danych ani przełącznika w panelu. ZobaczENVIRONMENT.md.
Note
Kolumna
Restartoznacza flagi z ustawieniemrequiresRestart: true— wartość jest utrwalana natychmiast, ale zaczyna obowiązywać dopiero po ponownym załadowaniu procesu. Flagi wyliczeniowe odrzucają każdą wartość spoza dozwolonego zbioru (walidacja po stronie serwera zarówno wsetFeatureFlagOverride(), jak i w procedurze obsługi żądania RESTPUT).
Przełączanie flag
Panel administracyjny
Przejdź do Panel administracyjny → Ustawienia → Flagi funkcji
(/dashboard/settings/feature-flags). Siatka
(src/app/(dashboard)/dashboard/settings/components/FeatureFlagsGrid.tsx)
obsługuje:
- Wyszukiwanie według klucza lub opisu oraz filtrowanie według kategorii (a także syntetyczny widok Wymaga ponownego uruchomienia).
- Przełącznik dla flag logicznych oraz listę rozwijaną dla flag wyliczeniowych
(
src/app/(dashboard)/dashboard/settings/components/FeatureFlagCard.tsx). - Etykietę źródła dla każdej flagi —
DB,ENVlubDEF— wskazującą, skąd pochodzi efektywna wartość. - Przycisk Resetuj (wyświetlany tylko dla flag pochodzących z
DB), który usuwa nadpisanie, oraz przycisk Resetuj wszystkie nadpisania na dole. - Baner Uruchom serwer ponownie, gdy zostanie zmieniona flaga
requiresRestart.
REST API
Wszystkie operacje są wykonywane za pośrednictwem jednej trasy:
src/app/api/settings/feature-flags/route.ts.
Każda metoda wymaga uwierzytelnionej sesji panelu administracyjnego (w przeciwnym razie zwracany jest kod 401).
GET /api/settings/feature-flags
Zwraca każdą flagę wraz z jej efektywną wartością, źródłem i podsumowaniem.
{
"flags": [
{
"key": "REQUIRE_API_KEY",
"label": "Wymagaj klucza API",
"description": "Wymagaj klucza API dla wszystkich przychodzących żądań",
"category": "security",
"type": "boolean",
"enumValues": null,
"defaultValue": "false",
"effectiveValue": "false",
"source": "default", // "db" | "env" | "default"
"requiresRestart": false,
"warningLevel": "caution",
},
// ... wszystkie 72 flagi
],
"summary": {
"total": 56,
"active": 0,
"inactive": 0,
"overriddenByDb": 0,
"overriddenByEnv": 0,
},
}
PUT /api/settings/feature-flags
Ustawia lub usuwa pojedyncze nadpisanie. Treść: { key: string; value?: string }.
Pominięcie value usuwa nadpisanie (przywracając wartość ze środowiska / domyślną).
# Ustaw nadpisanie w bazie danych
curl -X PUT http://localhost:20128/api/settings/feature-flags \
-H "Content-Type: application/json" \
-d '{"key":"REQUIRE_API_KEY","value":"true"}'
# Usuń nadpisanie (bez "value")
curl -X PUT http://localhost:20128/api/settings/feature-flags \
-H "Content-Type: application/json" \
-d '{"key":"REQUIRE_API_KEY"}'
Odpowiedź zawiera nowe wartości effectiveValue/source, poprzednie wartości previousValue/
previousSource oraz requiresRestart. Nieznane klucze i wartości wyliczeniowe spoza zakresu
są odrzucane z kodem 400.
DELETE /api/settings/feature-flags
Usuwa jednocześnie wszystkie nadpisania z bazy danych, przywracając każdej fladze jej wartość
ze środowiska / domyślną. Zwraca { cleared: <count>, message: "..." }.
Note
Flagi z
requiresRestart: truezaczynają obowiązywać dopiero po ponownym uruchomieniu procesu. Mechanizm ponownego uruchamiania w panelu administracyjnym wywołujePOST /api/restart, a następnie cyklicznie odpytujeGET /api/health/ping, dopóki serwer nie zostanie ponownie uruchomiony.
Awaryjny mechanizm zastępczy budżetu
OMNIROUTE_EMERGENCY_FALLBACK (kategoria runtime, wartość domyślna true) kontroluje
awaryjną bezpłatną ścieżkę zastępczą w
open-sse/services/emergencyFallback.ts.
Gdy jest włączona, żądania, które wyczerpią swój budżet, są kierowane do bezpłatnego
dostawcy/modelu zastępczego zamiast kończyć się niepowodzeniem. Ustaw ją na false (lub 0) — za pomocą
przełącznika w panelu administracyjnym, nadpisania w bazie danych albo zmiennej środowiskowej
OMNIROUTE_EMERGENCY_FALLBACK — aby wyłączyć to zachowanie i pozwolić, by żądania
z wyczerpanym budżetem kończyły się niepowodzeniem. (Udostępniono jako przełącznik w panelu administracyjnym w PR-ach #3741 / #3752.)
Zobacz także
- Dokumentacja zmiennych środowiskowych — większość flag ma udokumentowaną tam zmienną środowiskową o tej samej nazwie (wartość nadpisująca z bazy danych ma przed nią pierwszeństwo).
src/shared/constants/featureFlagDefinitions.ts— źródło prawdy dla każdej flagi.src/shared/utils/featureFlags.ts— logika rozstrzygania (resolveFeatureFlag,isFeatureFlagEnabled,resolveAllFeatureFlags).src/lib/db/featureFlags.ts— trwałe przechowywanie wartości nadpisujących z bazy danych w przestrzeni nazwfeature_flagstabelikey_value.