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

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.ts definiert — 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):

  1. DB-Überschreibung — ein Wert, der in der Tabelle key_value unter dem Namespace feature_flags gespeichert ist (über das Dashboard oder die REST-API festgelegt).
  2. Umgebungsvariableprocess.env[<KEY>], sofern gesetzt und nicht leer.
  3. Definitionsstandardwert — der defaultValue aus featureFlagDefinitions.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.md dokumentiert ist. Die DB-Überschreibung des Schalters hat Vorrang vor dieser Umgebungsvariable. Ein Schalter mit requiresRestart: true wird 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_THRESHOLD und sein Legacy-Alias INJECTION_GUARD_BLOCK_THRESHOLD konfigurieren den Modus block von INJECTION_GUARD_MODE, sind jedoch einfache Umgebungsvariablen, die von src/shared/utils/injectionSeverity.ts gelesen werden, und keine Feature-Flags: Sie besitzen weder eine DB-Überschreibung noch einen Dashboard-Schalter. Siehe ENVIRONMENT.md.

Note

Die Spalte Neustart kennzeichnet Flags mit requiresRestart: 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 in setFeatureFlagOverride() als auch im REST-Handler PUT validiert).


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, ENV oder DEF —, das anzeigt, woher der effektive Wert stammt.
  • Eine Schaltfläche Zurücksetzen (wird nur für aus DB stammende 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 requiresRestart geä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: true werden erst nach einem Neustart des Prozesses wirksam. Der Neustartablauf des Dashboards ruft POST /api/restart auf und fragt anschließend GET /api/health/ping ab, 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