* 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.
59 KiB
Feature Flags (Deutsch)
🌐 Languages: 🇺🇸 English · 🇪🇹 am · 🇸🇦 ar · 🇦🇿 az · 🇧🇬 bg · 🇧🇩 bn · 🇨🇿 cs · 🇩🇰 da · 🇬🇷 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 · 🇵🇱 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
Laufzeit-Umschalter, die das Verhalten von OmniRoute ohne erneutes Deployment ändern. Jeder hier aufgeführte Schalter ist in
src/shared/constants/featureFlagDefinitions.tsdefiniert — der zentralen Quelle der Wahrheit. Sowohl das Dashboard als auch die REST-API lesen aus dieser Datei, sodass die nachstehende Tabelle so generiert wird, dass sie 1:1 mit ihr übereinstimmt.
Was Feature-Flags sind
Ein Feature-Flag ist ein benannter Umschalter (boolesch oder Enum), dessen Wert zur
Laufzeit geändert und in der Datenbank gespeichert werden kann, ohne dass ein erneutes Deployment
des Prozesses erforderlich ist. Jeder Schalter wird durch eine FeatureFlagDefinition mit einem key, label,
description, category, defaultValue, type und einem requiresRestart-Hinweis beschrieben.
Auswertungsreihenfolge
Der effektive Wert eines Schalters wird durch
resolveFeatureFlag() mit der folgenden
Priorität ermittelt (die höchste gewinnt):
- DB-Überschreibung — ein Wert, der in der Tabelle
key_valueunter dem Namespacefeature_flagsgespeichert ist (über das Dashboard oder die REST-API festgelegt). - Umgebungsvariable —
process.env[<KEY>], sofern gesetzt und nicht leer. - Definitionsstandardwert — der
defaultValueausfeatureFlagDefinitions.ts.
Ein boolescher Schalter gilt als aktiviert, wenn sein effektiver Wert "true",
"1" oder "yes" ist (siehe isFeatureFlagEnabled()).
Note
Für die meisten Schalter gibt es außerdem eine entsprechende Umgebungsvariable mit demselben Namen, die in
ENVIRONMENT.mddokumentiert ist. Die DB-Überschreibung des Schalters hat Vorrang vor dieser Umgebungsvariable. Ein Schalter mitrequiresRestart: truewird sofort gespeichert, aber erst beim Start des Prozesses erneut eingelesen — beim Umschalten wird im Dashboard ein Banner „Server neu starten“ angezeigt.
Schalterkatalog
72 Schalter in 6 Kategorien. Standardwert ist der Definitionsstandardwert — der Wert, der verwendet wird, wenn weder eine DB-Überschreibung noch eine Umgebungsvariable vorhanden ist.
Sicherheit (10)
| Schlüssel | Typ | Standardwert | Beschreibung |
|---|---|---|---|
REQUIRE_API_KEY |
boolean | false |
Einen API-Schlüssel für alle eingehenden Anfragen verlangen. |
INPUT_SANITIZER_ENABLED |
boolean | true |
Eingabebereinigung für alle Anfragen aktivieren. |
INJECTION_GUARD_MODE |
enum | off |
Schutzmodus gegen Prompt-Injection. Werte: off, warn, block, redact. |
PII_REDACTION_ENABLED |
boolean | false |
Personenbezogene Daten aus Anfragen entfernen (unabhängig von INPUT_SANITIZER_MODE). |
PII_RESPONSE_SANITIZATION |
boolean | false |
Personenbezogene Daten aus Antworten von Anbietern bereinigen. |
PII_RESPONSE_SANITIZATION_MODE |
enum | redact |
Modus für die Bereinigung personenbezogener Daten in Antworten. Werte: redact, warn, block, off. |
OUTBOUND_SSRF_GUARD_ENABLED |
boolean | true |
Ausgehende Anfragen an private/interne IP-Bereiche blockieren. |
ALLOW_API_KEY_REVEAL |
boolean | false |
Authentifizierten Dashboard-Benutzern erlauben, gespeicherte API-Schlüssel anzuzeigen, anstatt nur maskierte Werte zu sehen. |
AUTH_LOG_INCLUDE_ACCOUNT_ID |
boolean | false |
Das Konto-Präfix in AUTH-Protokollzeilen aufnehmen (z. B. „Verwendetes -Konto: abc12345...“). Standardmäßig deaktiviert, damit Kontokennungen in gemeinsam genutzten bzw. mandantenfähigen Prozessprotokollen unkenntlich gemacht werden. Unabhängig vom Debug-Modus; das Umschalten des Debug-Modus legt diese Informationen nicht offen. |
OMNIROUTE_OIDC_DISABLE_PASSWORD_LOGIN |
boolean | false |
Wenn OIDC aktiviert ist, die Anmeldung per Passwort deaktivieren, sodass sich Benutzer nur über OIDC Single Sign-On authentifizieren können. Wenn dies deaktiviert ist (Standard), sind sowohl die Anmeldung per Passwort als auch OIDC verfügbar. |
Netzwerk (15)
| Schlüssel | Typ | Standardwert | Neustart | Beschreibung |
|---|---|---|---|---|
ENABLE_TLS_FINGERPRINT |
boolean | false |
✓ | TLS-Fingerprint-Tarnmodus aktivieren. |
AUDIO_REMOTE_PROVIDER_NODES |
boolean | false |
Den Routen /v1/audio/* erlauben, OpenAI-kompatible Provider-Knoten zu verwenden, die außerhalb von localhost gehostet werden. Standardmäßig deaktiviert — das Weiterleiten von Audio an einen Remote-Host ändert die Egress-Identität und muss eine ausdrückliche Entscheidung des Betreibers sein. Loopback-Knoten sind immer erlaubt und davon nicht betroffen. | |
PROXY_AUTO_SELECT_ENABLED |
boolean | false |
Wenn einer Verbindung kein Proxy zugewiesen ist, automatisch den ersten funktionsfähigen Proxy aus der Registry auswählen. Standardmäßig deaktiviert (andernfalls wird jeder Registry-Proxy zu einem globalen Fallback — #3332). | |
OMNIROUTE_CONTROL_PLANE_PROXY_DIRECT_FALLBACK |
boolean | false |
OAuth- und Provider-Validierungsabläufen erlauben, einen festgelegten Proxy zu umgehen und eine direkte Verbindung herzustellen, wenn Vorabprüfungen der Proxy-Erreichbarkeit fehlschlagen. Standardmäßig deaktiviert, da dies die Egress-IP ändern kann. | |
NETWORK_ROTATION_SHARED_EGRESS_GUARD |
boolean | true |
Bei einer Netzwerkausnahme (Zeitüberschreitung, Verbindung abgelehnt/zurückgesetzt) eines Rotations-Executors für mehrere Konten eine kurze Abkühlzeit anwenden und andere Konten ohne Proxy für den Rest der Anfrage überspringen, anstatt jedes erneut zu versuchen, sofern das fehlerhafte Konto keinen dedizierten Proxy hat. Standardmäßig aktiviert (sicher: keine Änderung der Egress-IP, reduziert lediglich das Latenz-/Abkühlrisiko bei Konten mit gemeinsamem Egress). Deaktivieren, um beim ersten Fehler ohne Proxy die sofortige Weitergabe wiederherzustellen. | |
PROXY_SKIP_RECENTLY_FAILED |
boolean | false |
Proxy-Pools und die kontospezifische Rotation von opencode stellen einen Proxy, der gerade fehlgeschlagen ist (abgelehnte TCP-Prüfung oder darüber empfangener 429-Status), für einen prozessspezifischen Zeitraum nicht erneut bereit. Dieser Zeitraum verdoppelt sich bei jeder Wiederholung bis zu einer Obergrenze. Es wird kein Proxy-Status geschrieben; wenn alle Kandidaten zurückgestellt sind, bleibt die Auswahl unverändert. Standardmäßig deaktiviert. | |
PROXY_POOL_EGRESS_OBSERVATION |
boolean | false |
Im Dashboard unter einem Proxy-Pool anzeigen, wie viele beobachtete Egress-IPs dessen Mitglieder in den letzten 24 h bedient haben und wie viele Verbindungen sie verwendet haben. Schreibgeschützt, aus dem Proxy-Protokoll berechnet und niemals für das Routing verwendet. Standardmäßig deaktiviert. | |
OPENCODE_RESPONSES_STALL_ROTATION |
boolean | false |
Beim OpenCode-Executor das erste Body-Byte einer gestreamten Responses-Antwort überwachen (Zeitfenster: RESPONSES_FIRST_BYTE_TIMEOUT_MS, Standardwert 15000). Ein 2xx-Responses-Stream, der über das Zeitfenster hinaus keine Daten liefert, gilt als blockiert: Für das Konto wird eine Abkühlzeit festgelegt und die Anfrage wird einmal zum nächsten Konto weiterrotiert; ein zweiter Stillstand führt zum sofortigen Fehlschlag. Standardmäßig deaktiviert: Bei blockierten Streams gilt weiterhin die aktuelle Wartezeit bis zum Timeout der Stream-Bereitschaft. |
|
OPENCODE_USER_BLOCKED_ROTATION |
boolean | false |
OpenCode-Executor: Bei einem 403/451-Status mit einer user_blocked-Ablehnung (nicht geografisch bedingt und keine Ablehnung des Cloudflare-Fingerprints) für das abgelehnte Konto eine Abkühlzeit festlegen und höchstens einmal pro Anfrage zum nächsten Konto rotieren; eine zweite Ablehnung wird unverändert und ohne Erfolgsmarkierung zurückgegeben. Standardmäßig deaktiviert: Das Umgehen einer Upstream-Benutzersperre durch Routing kann wie Umgehung wirken und die Markierung auf die gesamte Flotte ausweiten. |
|
OPENCODE_TRANSIENT_FAILOVER_BACKOFF |
boolean | false |
OpenCode-Rotation: Nach zwei aufeinanderfolgenden vorübergehenden Upstream-Fehlern (5xx oder eine leere 400-Antwort) vor dem nächsten Konto pausieren — 1,5 s, mit Verdopplung bei jedem weiteren Fehler, begrenzt auf 6 s pro Pause und 10 s pro Anfrage; bei einem Verbindungsabbruch durch den Client wird die Pause übersprungen. Der fehlerhafte Body wird vor dem Warten freigegeben. Standardmäßig deaktiviert: Das Failover erfolgt weiterhin sofort. | |
OPENCODE_RATE_LIMITED_429_EARLY_STOP |
boolean | false |
OpenCode-Rotation: Die Kontenwelle beim ersten 429-Status stoppen, der als echtes Ratenlimit klassifiziert wurde (parsbares Retry-After oder ein Body, der ein Raten-/Nutzungslimit nennt), und diesen Upstream-429-Status unverändert zurückgeben. Bei nicht klassifizierten 429-Statuscodes wird die Rotation fortgesetzt. Standardmäßig deaktiviert: Der kostenlose Tarif ist pro Egress-IP begrenzt (#9611), daher führt jeder 429-Status zu einer Rotation und eine erschöpfte Welle gibt den letzten Upstream-429-Status zurück. |
|
MITM_DISABLE_TLS_VERIFY |
boolean | false |
✓ | Die Überprüfung von TLS-Zertifikaten für den MITM-Proxy deaktivieren. Gefahr. |
OMNIROUTE_ALLOW_PRIVATE_PROVIDER_URLS |
boolean | false |
Provider-URLs zulassen, die auf private/interne Netzwerke verweisen. | |
OMNIROUTE_ALLOW_LOCAL_PROVIDER_URLS |
boolean | true |
Das Hinzufügen/Validieren von Providern unter lokalen/privaten Adressen (127.0.0.1, localhost, LAN) erlauben. Standardmäßig aktiviert (Local-first); für eine strikte Beschränkung auf öffentliche Adressen deaktivieren. Cloud-Metadaten bleiben blockiert. | |
ENABLE_CC_COMPATIBLE_PROVIDER |
boolean | false |
✓ | Den mit Claude Code kompatiblen Provider-Modus aktivieren. |
Richtlinien (5)
| Schlüssel | Typ | Standardwert | Beschreibung |
|---|---|---|---|
TOOL_POLICY_MODE |
enum | disabled |
Modus zur Durchsetzung der Richtlinie für die Werkzeugnutzung. Werte: disabled, warn, block. |
RATE_LIMIT_AUTO_ENABLE |
boolean | false |
Aktiviert die Ratenbegrenzung automatisch auf Grundlage von Nutzungsmustern. |
DISABLE_CONTEXT_WINDOW_CHECKS |
boolean | false |
Überspringt die lokale Prüfung des Kontextfensters bzw. der maximalen Eingabe-Token von OmniRoute für direkte Einzelmodellanfragen. Vorgelagerte Beschränkungen gelten weiterhin. |
CAPABILITY_FILTER_ENABLED |
boolean | false |
Lehnt Anfragen vor der Weiterleitung ab, wenn das Zielmodell nicht über die erforderlichen Fähigkeiten verfügt (Bildverarbeitung, Werkzeuge, strukturierte Ausgabe, Kontextfenster). Schützt direkte Einzelanbieteranfragen, die den Kompatibilitätsfilter der Kombinationsschicht umgehen. |
RADAR_ENABLED |
boolean | false |
Aktiviert das OmniRoute-Radar-Modul (Katalog-Feed-Ansichten und Synchronisierung). Standardmäßig deaktiviert; die Aktivierung schaltet lediglich die Benutzeroberfläche frei — die Datensynchronisierung erfordert weiterhin eine separate Zustimmung. |
Laufzeit (32)
| Schlüssel | Typ | Standardwert | Neustart | Beschreibung |
|---|---|---|---|---|
UNIVERSAL_CONTEXT_HANDOFF_ENABLED |
boolean | true |
Generiert Gesprächszusammenfassungen und fügt sie ein, wenn das Combo-Routing zwischen Modellen wechselt. Deaktivieren Sie diese Option, um Modellwechsel unabhängig voneinander zu behandeln und Hintergrundanfragen zur Übergabe für alle bestehenden und zukünftigen Combos zu verhindern. | |
RESPONSES_PASSTHROUGH_DROP_COMMENTARY |
boolean | true |
Entfernt interne Ausgabeelemente der Kommentarphase aus Passthrough-Streams der Responses API, bevor sie an Clients weitergeleitet werden. Deaktivieren Sie diese Option, um unverarbeitete Upstream-Kommentare zu empfangen. | |
OMNIROUTE_MCP_ENFORCE_SCOPES |
boolean | true |
Erzwingt Bereichsbeschränkungen für den Zugriff auf MCP-Tools. | |
OMNIROUTE_MCP_COMPRESS_DESCRIPTIONS |
boolean | false |
Komprimiert Beschreibungen von MCP-Tools, um den Tokenverbrauch zu reduzieren. | |
OMNIROUTE_ENABLE_RUNTIME_BACKGROUND_TASKS |
boolean | false |
Aktiviert die Verarbeitung von Hintergrundaufgaben zur Laufzeit. | |
OMNIROUTE_DISABLE_BACKGROUND_SERVICES |
boolean | false |
✓ | Deaktiviert alle Hintergrunddienste (Kontingentaktualisierung, Synchronisierung usw.). |
OMNIROUTE_RTK_TRUST_PROJECT_FILTERS |
boolean | false |
Vertraut RTK-Filtern auf Projektebene ohne Validierung. | |
OMNIROUTE_ENABLE_LIVE_WS |
boolean | true |
✓ | Startet beim Import den WebSocket-Server des Echtzeit-Dashboards (standardmäßig auf Port 20132). |
OMNIROUTE_CODEX_WS_ENABLED |
boolean | true |
Erlaubt Codex, den Responses-over-WebSocket-Transport zu verwenden. Wenn diese Option deaktiviert ist, greift Codex auf HTTP Responses zurück. | |
OMNIROUTE_CODEX_APP_SERVER_ENABLED |
boolean | true |
Erlaubt Codex, den lokalen app-server-WebSocket-JSON-RPC-Transport zu verwenden (codexTransport=app-server). Wenn diese Option deaktiviert ist, greifen Verbindungen, die app-server verwenden sollen, auf die anderen Transporte von Codex zurück. | |
OMNIROUTE_EMERGENCY_FALLBACK |
boolean | true |
Leitet Anfragen mit ausgeschöpftem Budget an den kostenlosen Notfall-Fallback-Anbieter bzw. das entsprechende Modell weiter. (Siehe Notfall-Fallback bei ausgeschöpftem Budget weiter unten.) | |
STREAM_RECOVERY_ENABLED |
boolean | false |
Aktiviert transparente frühe Wiederholungsversuche für abgeschnittene Upstream-SSE-Streams, bevor Antwortbytes den Client erreichen. | |
STREAM_RECOVERY_MIDSTREAM_ENABLED |
boolean | false |
Erlaubt der Stream-Wiederherstellung, eine Antwort erneut anzufordern und zusammenzufügen, nachdem bereits Bytes den Client erreicht haben. | |
STREAM_RECOVERY_TOOLCALL_ORDER_FIX |
boolean | false |
Macht die Fortsetzung mitten im Stream sicher für Tool-Aufrufe: Ein unterbrochener Stream wird nie fortgesetzt, nachdem ein Tool-Aufruf ausgegeben wurde (noch aktiv oder bereits mit finish_reason tool_calls abgeschlossen), und nach einer leeren Fortsetzung wird beendet, anstatt das gesamte Budget aufzubrauchen. Deaktiviert: Release-Verhalten. | |
STREAM_EARLY_EOF_SIBLING_FAILOVER_ENABLED |
boolean | false |
Wechselt einmalig zu einer gleichgeordneten Verbindung, wenn ein SSE-Stream geschlossen wird, bevor ein verwertbarer Frame ausgegeben wurde, und der begrenzte Wiederholungsversuch über dieselbe Verbindung aufgebraucht ist; ist keine verwendbare gleichgeordnete Verbindung vorhanden, wird der ursprüngliche STREAM_EARLY_EOF-Fehler 502 zurückgegeben. Standardmäßig deaktiviert: Early-EOF bleibt nach dem Wiederholungsversuch über dieselbe Verbindung endgültig. |
|
MODEL_CATALOG_INCLUDE_NAMES |
boolean | true |
Nimmt anzeigefreundliche Namensfelder in Antworten von /v1/models auf. Deaktivieren Sie diese Option für Clients, die ausschließlich Modell-IDs erwarten. |
|
MODELS_CATALOG_PREFIX_MODE |
enum | dual |
Steuert, wie Modell-IDs in /v1/models Präfixe erhalten. 'dual' (Standardwert) gibt zur Abwärtskompatibilität sowohl Alias- als auch kanonische Anbieter-ID-Präfixe aus. 'alias' gibt ausschließlich das kurze Aliaspräfix aus (z. B. ds-web/model, nicht deepseek-web/model). 'canonical' gibt ausschließlich das vollständige Anbieter-ID-Präfix aus. Werte: dual, alias, canonical. |
|
ARENA_ELO_SYNC_ENABLED |
boolean | true |
Aktiviert die regelmäßige ELO-Synchronisierung der Arena-AI-Bestenliste für Modellintelligenz-Ranglisten. | |
EXPOSE_CC_DISCOVERY_ALIASES |
boolean | false |
Veröffentlicht gespiegelte IDs im Format claude/<provider>/<model> unter /v1/models, damit die Modellerkennung des Claude-Code-Gateways auch Nicht-Claude-Modelle auflistet. Globale Ebene der dreistufigen Steuerung (die Umgebungsvariable hat Vorrang vor der Dashboard-Überschreibung). Siehe Claude-Code-Konfiguration. |
|
NO_THINKING_ALIAS_ENABLED |
boolean | true |
Hauptschalter für die Gateway-Aliasse no-think//. Aktiviert (Standardwert): /v1/models veröffentlicht für jedes geeignete denkfähige Claude-Modell eine Variante ohne Denkmodus, und eine in einer Anfrage gesendete no-think/-ID wird wieder zum tatsächlichen Modell aufgelöst, wobei die Schlussfolgerung unterdrückt wird. Deaktiviert: Es werden keine Varianten veröffentlicht, und eine no-think/-ID wird wie jede andere unbekannte Modell-ID behandelt. Die modellspezifische Aktivierung/Deaktivierung über ModelSpec.noThinkingAlias gilt weiterhin, solange diese Option aktiviert ist. | |
OMNIROUTE_DISABLE_THINKING_LEVEL_VARIANTS |
boolean | false |
Deaktiviert die Erzeugung von Varianten der Denkstufe (z. B. -low, -medium, -high) im /v1/models-Katalog. | |
OMNIROUTE_CHAT_VIRTUAL_LANES |
boolean | false |
✓ | Aktiviert mandantenspezifische adaptive virtuelle Zulassungsspuren für die Anbieterweiterleitung (#9654): Die Lastspitze eines Mandanten verursacht dann keine 503-Fehler mehr bei einem anderen. Die Umgebungsvariable OMNIROUTE_CHAT_VIRTUAL_LANES hat Vorrang vor dieser Dashboard-Überschreibung; Änderungen werden beim Neustart des Servers wirksam. |
EXPOSE_FUNCTIONAL_GATEWAY_MIRRORS |
boolean | false |
Veröffentlicht gespiegelte IDs im Format / unter /v1/models für Modelle, deren kanonischer Eigentümer keine aktiven Anmeldedaten besitzt, die jedoch durch ein Passthrough-Gateway mit aktiven Anmeldedaten weitergeleitet werden. Warnung: Fügt bei globaler Aktivierung Katalogeinträge für alle Clients hinzu. | |
NEWAPI_AGGREGATOR_BALANCE |
boolean | false |
Aktiviert die Guthabenerkennung für Aggregator-kompatible Knoten von New-API / One-API / Sub2API. Wenn diese Option aktiviert ist, melden kompatible Knoten mit gesetztem Aggregator-Flag ihr Guthaben im Dashboard und beim Kontingent-Preflight-Routing. | |
SERVER_OWNED_TOOL_LOOP_ENABLED |
boolean | false |
Setzt nicht streamende, serverseitig gesteuerte Tool-Aufrufe fort, bis das Modell eine für den Client nutzbare Antwort zurückgibt. | |
SEARCH_STATS_HIDE_DELETED_CONNECTIONS |
boolean | false |
In Suchstatistiken und kürzlich ausgeführten Suchen werden nur Anbieter gezählt, die noch über eine aktive Verbindung verfügen (schlüssellose Anbieter wie duckduckgo-free werden immer gezählt). Bei deaktivierter Option werden alle gespeicherten Suchzeilen mit einer Anbieter-ID beibehalten. | |
FREE_BADGE_REQUIRES_PROVIDER_FREE_TIER |
boolean | false |
Anbieter-Seiten des Dashboards: Zeigt das Kostenlos-Abzeichen nur bei Signalen an, die der Anbieter berücksichtigt — die Heuristik für Anzeigenamen, nicht boolesche Kostenlos-Felder und :free-Suffixe bei registrierten Anbietern ohne dokumentierte kostenlose Stufe werden verworfen. Bei deaktivierter Option bleibt die bisherige Abzeichenregel bestehen. | |
RETRY_AFTER_PROVENANCE_ENABLED |
boolean | false |
Lässt bei aggregierten 429/503-Antworten wegen Nichtverfügbarkeit Retry-After weg, wenn kein konkreter zukünftiger Wiederholungszeitpunkt bekannt ist (anstelle eines synthetischen Werts von 1 s), fügt error.retry_after_provenance (signal | none) hinzu und erlaubt Combo-Drain-Pfaden, Wiederholungshinweise in Prosa aus JSON- und Klartext-Upstream-Antwortkörpern zu lesen. Das Feld erscheint nur in Antworten, die von unavailableResponse() erstellt wurden; andere 429/503-Antwortkörper bleiben unverändert. |
|
PROTECTED_PRIORITY_INFRA_502_ENABLED |
boolean | false |
Wenn ein priority-Combo-Ziel, das nur bei ausgeschöpftem Kontingent als Fallback markiert ist, die Combo aus einem nachweislich nicht kontingentbedingten Grund stoppt (offener Leistungsschalter des Anbieters, prädiktives Überspringen aufgrund der Latenz), wird mit 502 statt mit der wie ein Kontingentfehler wirkenden 503 geantwortet. Stopps aufgrund von Sperrung, Abklingzeit, Nichtverfügbarkeit, Ausschöpfung und Parallelitätsgrenze behalten 503 bei. |
|
MISTRAL_AMBIGUOUS_401_SOFT_LOCKOUT |
boolean | false |
Eine einfache Mistral-401-Antwort ({"detail":"Unauthorized"}, kein explizites Authentifizierungssignal) ist bei einem widerrufenen Schlüssel und bei ausgeschöpftem Kontingent identisch. Wenn diese Option aktiviert ist, wird die Verbindung in eine Abklingzeit versetzt, anstatt sie als expired zu parken, und zwar höchstens dreimal pro Stunde und Verbindung; beim nächsten Mal wird sie geparkt, sodass ein widerrufener Schlüssel weiterhin zuverlässig erkannt wird. Standardmäßig deaktiviert: Jede einfache Mistral-401-Antwort parkt die Verbindung wie zuvor. |
|
XAI_OAUTH_LIVE_MODEL_DISCOVERY |
boolean | false |
Ruft für xai-oauth-Verbindungen den aktuellen xAI-Modellkatalog von https://api.x.ai/v1/models unter Verwendung des OAuth-Bearer-Tokens ab, anstatt den unveränderlichen statischen Ausgangsbestand zu verwenden. Standardmäßig deaktiviert: xai-oauth stellt weiterhin unverändert den statischen Ausgangsbestand bereit. Bei jedem Auflösungsfehler greift die Erkennung auf den Ausgangsbestand zurück (es ist nicht verifiziert, ob x.ai an diesem Endpunkt ein OAuth-Bearer-Token akzeptiert). |
|
BATCH_AND_FILE_AUTO_CLEANUP_ENABLED |
boolean | false |
Erlaubt der automatischen Bereinigung, abgeschlossene (completed/failed/cancelled/expired) Batch-API-Aufträge zu löschen, die älter als OMNIROUTE_BATCH_RETENTION_DAYS sind, einschließlich ihrer zeilenbezogenen Prüfpunkte, und den BLOB-Inhalt hochgeladener Dateien nach Ablauf ihres jeweiligen expires_at zu leeren. Standardmäßig deaktiviert: Jede bestehende Installation behält diese Daten genau wie zuvor, bis ein Betreiber die Funktion aktiviert. Die vom Betreiber ausgelöste Route DELETE /api/v1/batches/delete-completed bleibt in beiden Fällen unberührt — sie stellt einen separaten, bedingungslosen öffentlichen API-Vertrag dar. |
CLI (5)
| Schlüssel | Typ | Standardwert | Neustart | Beschreibung |
|---|---|---|---|---|
CLI_COMPAT_ALL |
boolean | false |
✓ | Aktiviert den Kompatibilitätsmodus für alle CLI-Clients. |
MODEL_ALIAS_COMPAT_ENABLED |
boolean | false |
Aktiviert die Kompatibilitätsschicht für Modellaliase. | |
PRICING_SYNC_ENABLED |
boolean | false |
Aktiviert die automatische Synchronisierung von Preisdaten (erfordert außerdem die Umgebungsvariable PRICING_SYNC_ENABLED). |
|
OMNIROUTE_AUTO_SYNC_CODEX_PROFILES |
boolean | false |
Schreibt nach der Synchronisierung der Anbietermodelle automatisch die Profildateien ~/.codex/*.config.toml aus dem aktuellen Katalog (neu). Ändert niemals die aktive/standardmäßige Codex-Konfiguration. Standardmäßig deaktiviert. | |
OMNIROUTE_AUTO_SYNC_CLAUDE_PROFILES |
boolean | false |
Schreibt nach der Synchronisierung der Anbietermodelle automatisch die Claude-Code-Profile ~/.claude/profiles//settings.json aus dem aktuellen Katalog (neu). Ändert niemals die aktive/standardmäßige Claude-Konfiguration. Standardmäßig deaktiviert. |
Systemzustand (5)
| Schlüssel | Typ | Standardwert | Beschreibung |
|---|---|---|---|
OMNIROUTE_DISABLE_LOCAL_HEALTHCHECK |
boolean | false |
Deaktiviert den Endpunkt zur Zustandsprüfung der lokalen Instanz. |
OMNIROUTE_DISABLE_TOKEN_HEALTHCHECK |
boolean | false |
Deaktiviert die Zustandsprüfung zur Tokenvalidierung. |
SKILLS_SANDBOX_NETWORK_ENABLED |
boolean | false |
Aktiviert den Netzwerkzugriff in der Skills-Sandbox-Umgebung. |
PROXY_HEALTH_BLOCKED_RESETS_STREAK |
boolean | false |
Bei der Proxy-Zustandsprüfung setzt eine vom Ziel abgelehnte Anfrage (401/403/429) die Serie aufeinanderfolgender Proxy-Fehler zurück. Standardmäßig deaktiviert: Eine Ablehnung bleibt neutral (#10654). Ein 5xx-Fehler bleibt in beiden Fällen uneindeutig; eine Ablehnung entfernt, deaktiviert oder reaktiviert niemals einen Proxy. |
DB_HEALTHCHECK_STARTUP_DEFERRED_ENABLED |
boolean | false |
Führt die Datenbankintegritäts-/Zustandsprüfung beim Start erst aus, nachdem der Server begonnen hat, Anfragen zu akzeptieren (über setImmediate), anstatt den Start bis zum Abschluss zu blockieren (#13717). Standardmäßig deaktiviert: Der Start wird genau wie vor diesem PR blockiert. |
Note
INPUT_SANITIZER_BLOCK_THRESHOLDund sein Legacy-AliasINJECTION_GUARD_BLOCK_THRESHOLDkonfigurieren den ModusblockvonINJECTION_GUARD_MODE, sind jedoch einfache Umgebungsvariablen, die vonsrc/shared/utils/injectionSeverity.tsgelesen werden, und keine Feature-Flags: Sie besitzen weder eine DB-Überschreibung noch einen Dashboard-Schalter. SieheENVIRONMENT.md.
Note
Die Spalte
Neustartkennzeichnet Flags mitrequiresRestart: true— der Wert wird sofort gespeichert, tritt jedoch erst nach dem Neuladen des Prozesses in Kraft. Enum- Flags lehnen jeden Wert außerhalb ihrer zulässigen Menge ab (serverseitig sowohl insetFeatureFlagOverride()als auch im REST-HandlerPUTvalidiert).
Flags umschalten
Dashboard
Navigieren Sie zu Dashboard → Einstellungen → Feature-Flags
(/dashboard/settings/feature-flags). Das Raster
(src/app/(dashboard)/dashboard/settings/components/FeatureFlagsGrid.tsx)
unterstützt:
- Suche nach Schlüssel oder Beschreibung und Filterung nach Kategorie (zuzüglich einer synthetischen Ansicht Neustart erforderlich).
- Einen Umschalter für boolesche Flags und eine Dropdown-Liste für Enum-Flags
(
src/app/(dashboard)/dashboard/settings/components/FeatureFlagCard.tsx). - Ein Quellen-Badge pro Flag —
DB,ENVoderDEF—, das anzeigt, woher der effektive Wert stammt. - Eine Schaltfläche Zurücksetzen (wird nur für aus
DBstammende Flags angezeigt), um die Überschreibung zu entfernen, sowie unten eine Schaltfläche Alle Überschreibungen zurücksetzen. - Ein Banner Server neu starten, wenn ein Flag mit
requiresRestartgeändert wird.
REST-API
Alle Vorgänge laufen über eine einzige Route:
src/app/api/settings/feature-flags/route.ts.
Jede Methode erfordert eine authentifizierte Dashboard-Sitzung (andernfalls 401).
GET /api/settings/feature-flags
Gibt jedes Flag mit seinem effektiven Wert, seiner Quelle und einer Zusammenfassung zurück.
{
"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",
},
// ... alle 72 Flags
],
"summary": {
"total": 56,
"active": 0,
"inactive": 0,
"overriddenByDb": 0,
"overriddenByEnv": 0,
},
}
PUT /api/settings/feature-flags
Legt eine einzelne Überschreibung fest oder entfernt sie. Body: { key: string; value?: string }.
Wird value weggelassen, wird die Überschreibung entfernt (und der Umgebungs- bzw. Standardwert wiederhergestellt).
# DB-Überschreibung festlegen
curl -X PUT http://localhost:20128/api/settings/feature-flags \
-H "Content-Type: application/json" \
-d '{"key":"REQUIRE_API_KEY","value":"true"}'
# Überschreibung entfernen (kein "value")
curl -X PUT http://localhost:20128/api/settings/feature-flags \
-H "Content-Type: application/json" \
-d '{"key":"REQUIRE_API_KEY"}'
Die Antwort gibt den neuen effectiveValue/source, den previousValue/
previousSource sowie requiresRestart zurück. Unbekannte Schlüssel und Enum-Werte
außerhalb des zulässigen Bereichs werden mit 400 abgelehnt.
DELETE /api/settings/feature-flags
Löscht alle DB-Überschreibungen auf einmal und setzt jedes Flag auf seinen Umgebungs- bzw. Standardwert
zurück. Gibt { cleared: <count>, message: "..." } zurück.
Note
Flags mit
requiresRestart: truewerden erst nach einem Neustart des Prozesses wirksam. Der Neustartablauf des Dashboards ruftPOST /api/restartauf und fragt anschließendGET /api/health/pingab, bis der Server wieder verfügbar ist.
Notfall-Fallback bei ausgeschöpftem Budget
OMNIROUTE_EMERGENCY_FALLBACK (Kategorie runtime, Standardwert true) steuert den
kostenlosen Notfall-Fallback-Pfad in
open-sse/services/emergencyFallback.ts.
Wenn er aktiviert ist, werden Anfragen, deren Budget ausgeschöpft ist, an einen kostenlosen Fallback-
Anbieter bzw. ein kostenloses Fallback-Modell weitergeleitet, anstatt vollständig fehlzuschlagen. Setzen Sie den Wert auf false (oder 0) — über den
Umschalter im Dashboard, eine DB-Überschreibung oder die Umgebungsvariable OMNIROUTE_EMERGENCY_FALLBACK
—, um dieses Verhalten zu deaktivieren und Anfragen mit ausgeschöpftem Budget
fehlschlagen zu lassen. (In den PRs #3741 / #3752 als Dashboard-Umschalter verfügbar gemacht.)
Siehe auch
- Referenz der Umgebungsvariablen — die meisten Flags verfügen über eine gleichnamige Umgebungsvariable, die dort dokumentiert ist (die DB-Überschreibung hat Vorrang vor ihr).
src/shared/constants/featureFlagDefinitions.ts— maßgebliche Quelle für alle Flags.src/shared/utils/featureFlags.ts— Auflösungslogik (resolveFeatureFlag,isFeatureFlagEnabled,resolveAllFeatureFlags).src/lib/db/featureFlags.ts— Persistierung der DB-Überschreibungen im Namensraumfeature_flagsder Tabellekey_value.