Zum Inhalt springen
OmniRoute source

Feature Flags (Deutsch)

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 der Prozess erneut bereitgestellt werden muss. Jedes Flag wird durch eine FeatureFlagDefinition mit key, label, description, category, defaultValue, type und einem requiresRestart-Hinweis beschrieben.

Der effektive Wert eines Flags wird durch resolveFeatureFlag() mit folgender 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. Umgebungsvariable — process.env[<KEY>], sofern gesetzt und nicht leer.
  3. Definitionsstandardwert — der defaultValue aus featureFlagDefinitions.ts.

Ein boolesches Flag gilt als aktiviert, wenn sein effektiver Wert "true", "1" oder "yes" ist (siehe isFeatureFlagEnabled()).

[!NOTE] Für die meisten Flags ist außerdem eine entsprechende Umgebungsvariable mit demselben Namen in ENVIRONMENT.md dokumentiert. Die DB-Überschreibung des Flags hat Vorrang vor dieser Umgebungsvariable. Ein Flag mit requiresRestart: true wird sofort gespeichert, aber erst beim Prozessstart erneut eingelesen — beim Umschalten wird im Dashboard ein Banner „Server neu starten“ angezeigt.


77 Flags in 6 Kategorien. Standardwert ist der in der Definition festgelegte Standardwert – der Wert, der verwendet wird, wenn weder eine DB-Überschreibung noch eine Umgebungsvariable vorhanden ist.

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 Modus zum Schutz vor 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 des Anbieters 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-Adressbereiche 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 Kontopräfix in AUTH-Protokollzeilen aufnehmen (z. B. „Using <provider> account: abc12345…“). Standardmäßig deaktiviert, damit Kontokennungen in gemeinsam genutzten/mandantenfähigen Prozessprotokollen unkenntlich gemacht werden. Unabhängig vom Debug-Modus; das Umschalten des Debug-Modus legt diese 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 deaktiviert (Standardwert), sind sowohl die Anmeldung per Passwort als auch OIDC verfügbar.
Schlüssel Typ Standardwert Neustart Beschreibung
ENABLE_TLS_FINGERPRINT boolean false ✓ Aktiviert den Tarnmodus für TLS-Fingerabdrücke.
AUDIO_REMOTE_PROVIDER_NODES boolean false Erlaubt den Routen /v1/audio/*, 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 zulässig und davon nicht betroffen.
RERANK_REMOTE_PROVIDER_NODES boolean false Erlaubt POST /v1/rerank (und dem Loopback-Reranking-Schritt der Memory-Engine), OpenAI-kompatible Provider-Knoten zu verwenden, die außerhalb von localhost gehostet werden. Standardmäßig deaktiviert — das Weiterleiten an einen Remote-Host ändert die Egress-Identität und muss eine ausdrückliche Entscheidung des Betreibers sein. Loopback-Knoten sind immer zulässig; Remote-Knoten müssen außerdem die Richtlinie für ausgehende Provider-URLs erfüllen.
PROXY_AUTO_SELECT_ENABLED boolean false Wählt automatisch den ersten funktionierenden Proxy aus der Registry aus, wenn einer Verbindung kein Proxy zugewiesen ist. Standardmäßig deaktiviert (andernfalls wird jeder Registry-Proxy zu einem globalen Fallback — #3332).
OMNIROUTE_CONTROL_PLANE_PROXY_DIRECT_FALLBACK boolean false Erlaubt OAuth- und Provider-Validierungsabläufen, einen fest zugewiesenen 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 Wendet bei einer Netzwerkausnahme (Zeitüberschreitung, Verbindung abgelehnt/zurückgesetzt) für einen Rotations-Executor mit mehreren Konten eine kurze Abklingzeit an und überspringt für den Rest der Anfrage andere Konten ohne Proxy, anstatt jedes erneut zu versuchen, wenn das fehlschlagende Konto keinen dedizierten Proxy besitzt. Standardmäßig aktiviert (sicher: keine Änderung der Egress-IP; reduziert lediglich das Latenz-/Abklingzeitrisiko bei Konten mit gemeinsamem Egress). Deaktivieren, um die sofortige Weitergabe beim ersten Fehler eines Kontos ohne Proxy wiederherzustellen.
ROTATION_ATTRIBUTION boolean false Die Opencode-Rotation zeichnet auf, welches Konto die Anfrage bedient hat oder übersprungen wurde (nur maskierte IDs, niemals vollständige Konto-IDs), und verknüpft Proxy-Protokolleinträge mit der zugehörigen Anfrage, sodass der Betreiber übersprungene Konten von nicht verwendeten unterscheiden kann. Standardmäßig deaktiviert.
PROXY_SKIP_RECENTLY_FAILED boolean false Proxy-Pools und die kontobezogene Rotation von Opencode stellen einen gerade fehlgeschlagenen Proxy (abgelehnte TCP-Prüfung oder darüber empfangene 429-Antwort) für einen prozessbezogenen Zeitraum nicht erneut bereit; dieser Zeitraum verdoppelt sich bei jeder Wiederholung bis zu einem Höchstwert. Es wird kein Proxy-Status geschrieben; wenn alle Kandidaten zurückgestellt wurden, bleibt die Auswahl unverändert. Standardmäßig deaktiviert.
PROXY_POOL_EGRESS_OBSERVATION boolean false Zeigt im Dashboard unter einem Proxy-Pool an, 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 Überwacht beim OpenCode-Executor das erste Byte des Bodys einer gestreamten Responses-Antwort (Zeitfenster: RESPONSES_FIRST_BYTE_TIMEOUT_MS, Standardwert 15000). Ein 2xx-Responses-Stream, der über dieses Zeitfenster hinaus stumm bleibt, gilt als blockiert: Für das Konto wird eine Abkühlphase festgelegt, und die Anfrage wechselt einmal zum nächsten Konto; eine zweite Blockierung führt zu einem sofortigen Fehler. Standardmäßig deaktiviert: Bei blockierten Streams wird weiterhin wie bisher bis zum Zeitlimit für die Stream-Bereitschaft gewartet.
OPENCODE_USER_BLOCKED_ROTATION boolean false OpenCode-Executor: Bei einer 403/451-Antwort mit einer user_blocked-Ablehnung (nicht aufgrund der geografischen Position und nicht aufgrund einer Ablehnung des Cloudflare-Fingerprints) wird für das abgelehnte Konto eine Abkühlphase festgelegt und höchstens einmal pro Anfrage zum nächsten Konto gewechselt; eine zweite Ablehnung wird unverändert und ohne Erfolgsmarkierung zurückgegeben. Standardmäßig deaktiviert: Das Umgehen einer vorgelagerten Benutzersperre durch Routing kann wie eine Umgehungsmaßnahme wirken und die Kennzeichnung über die gesamte Flotte verbreiten.
OPENCODE_TRANSIENT_FAILOVER_BACKOFF boolean false OpenCode-Rotation: Nach zwei aufeinanderfolgenden vorübergehenden Fehlern des vorgelagerten Dienstes (5xx oder eine leere 400-Antwort) wird vor dem nächsten Konto pausiert — beginnend bei 1,5 s und sich mit jedem weiteren Fehler verdoppelnd, begrenzt auf 6 s pro Pause und 10 s pro Anfrage; bei einer Client-Trennung wird die Pause übersprungen. Der fehlerhafte Body wird vor dem Warten freigegeben. Standardmäßig deaktiviert: Das Failover erfolgt weiterhin sofort.
OPENCODE_PARK_AND_RESUME boolean false OpenCode-Rotation: Die Anfrage wird nach wiederholten vorübergehenden 429-Antworten (oder einer neuen Markierung für eine hohe Pool-Auslastung) mit einem Heartbeat geparkt; anschließend wird ein begrenzter Durchlauf mit bis zu 3 aufeinanderfolgenden Konten wiederholt, anstatt die gesamte Flotte parallel anzufragen. Standardmäßig deaktiviert: Jede 429-Antwort führt genau wie bisher zum Wechsel auf das nächste Konto.
FLUSH_EMPTY_RETRY_ENABLED boolean false Wenn bei übersetzten Streaming-Durchläufen der vorgelagerte Durchlauf keine nutzbaren Inhalte enthält (nur Reasoning-Abschluss oder keine wertvollen Chunks), werden über den normalen Anmeldeinformationspfad begrenzte Wiederholungsversuche ausgeführt (bis zu STREAM_RECOVERY.EMPTY_TURN_RETRY_MAX), bevor dem Client irgendetwas bereitgestellt wird. Standardmäßig deaktiviert: Leere Durchläufe behalten das aktuelle Verhalten bei (leere 200-Antwort oder 502-Antwort aufgrund leerer Inhalte).
OPENCODE_RATE_LIMITED_429_EARLY_STOP boolean false OpenCode-Rotation: Die Kontenwelle wird bei der ersten 429-Antwort beendet, die als echte Ratenbegrenzung klassifiziert wurde (auswertbares Retry-After oder ein Body, der eine Raten- bzw. Nutzungsbegrenzung nennt), und diese vorgelagerte 429-Antwort wird unverändert zurückgegeben. Nicht klassifizierte 429-Antworten führen weiterhin zu einer Rotation. Standardmäßig deaktiviert: Die kostenlose Stufe ist pro ausgehender IP-Adresse begrenzt (#9611), daher führt jede 429-Antwort zu einer Rotation, und bei einer erschöpften Welle wird die letzte vorgelagerte 429-Antwort zurückgegeben.
MITM_DISABLE_TLS_VERIFY boolean false ✓ Deaktiviert die Überprüfung von TLS-Zertifikaten für den MITM-Proxy. Gefahr.
OMNIROUTE_ALLOW_PRIVATE_PROVIDER_URLS boolean false Erlaubt Anbieter-URLs, die auf private/interne Netzwerke verweisen.
OMNIROUTE_ALLOW_LOCAL_PROVIDER_URLS boolean true Erlaubt das Hinzufügen/Validieren von Anbietern unter lokalen/privaten Adressen (127.0.0.1, localhost, LAN). 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 ✓ Aktiviert den mit Claude Code kompatiblen Anbietermodus.
Schlüssel Typ Standardwert Beschreibung
TOOL_POLICY_MODE enum disabled Durchsetzungsmodus für Richtlinien zur 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 durch OmniRoute bei direkten Anfragen an ein einzelnes Modell. Vorgelagerte Begrenzungen gelten weiterhin.
CAPABILITY_FILTER_ENABLED boolean false Lehnt Anfragen vor der Weiterleitung ab, wenn dem Zielmodell erforderliche Fähigkeiten fehlen (Bildverarbeitung, Werkzeuge, strukturierte Ausgabe, Kontextfenster). Schützt direkte Anfragen an einen einzelnen Anbieter, 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 muss weiterhin separat aktiviert werden.
Schlüssel Typ Standardwert Neustart Beschreibung
UNIVERSAL_CONTEXT_HANDOFF_ENABLED boolean true Erstellt und injiziert Zusammenfassungen von Unterhaltungen, wenn beim Combo-Routing das Modell gewechselt wird. Deaktivieren Sie diese Option, um Modellwechsel unabhängig voneinander zu behandeln und Hintergrundanfragen zur Kontextü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 unveränderte Kommentare vom Upstream zu erhalten.
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 die Token-Nutzung 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 RTK-Filter auf Projektebene ohne Validierung vertrauen.
OMNIROUTE_ENABLE_LIVE_WS boolean true ✓ Den WebSocket-Server für das Echtzeit-Dashboard beim Import starten (standardmäßig Port 20132).
OMNIROUTE_CODEX_WS_ENABLED boolean true Codex die Verwendung des Responses-over-WebSocket-Transports erlauben. Wenn deaktiviert, greift Codex auf HTTP Responses zurück.
OMNIROUTE_CODEX_APP_SERVER_ENABLED boolean true Codex die Verwendung des lokalen app-server-WebSocket-JSON-RPC-Transports (codexTransport=app-server) erlauben. Wenn deaktiviert, greifen Verbindungen, die app-server verwenden sollen, auf die anderen Transporte von Codex zurück.
OMNIROUTE_EMERGENCY_FALLBACK boolean true Anfragen mit ausgeschöpftem Budget an den kostenlosen Notfall-Fallback-Anbieter bzw. das entsprechende Modell weiterleiten. (Siehe Notfall-Fallback bei ausgeschöpftem Budget unten.)
STREAM_RECOVERY_ENABLED boolean false Transparente frühzeitige Wiederholungsversuche für abgeschnittene vorgelagerte SSE-Streams aktivieren, bevor Antwort-Bytes den Client erreichen.
STREAM_RECOVERY_MIDSTREAM_ENABLED boolean false Der Stream-Wiederherstellung erlauben, nach der Übertragung von Bytes an den Client eine Antwort erneut anzufordern und zusammenzufügen.
STREAM_RECOVERY_TOOLCALL_ORDER_FIX boolean false Fortsetzungen während eines Streams für Tool-Aufrufe absichern: Einen unterbrochenen Stream niemals fortsetzen, sobald ein Tool-Aufruf ausgegeben wurde (noch in Bearbeitung oder bereits mit finish_reason tool_calls beendet), und nach einer leeren Fortsetzung schließen, statt das gesamte Budget aufzubrauchen. Deaktiviert: Release-Verhalten.
STREAM_EARLY_EOF_SIBLING_FAILOVER_ENABLED boolean false Einmaliges Failover zu einer gleichgeordneten Verbindung, wenn ein SSE-Stream geschlossen wird, bevor ein verwertbarer Frame ausgegeben wurde, und der begrenzte Wiederholungsversuch über dieselbe Verbindung ausgeschöpft ist; ist keine verwendbare gleichgeordnete Verbindung verfügbar, wird der ursprüngliche STREAM_EARLY_EOF-502-Fehler zurückgegeben. Standardmäßig deaktiviert: Ein vorzeitiges EOF bleibt nach dem Wiederholungsversuch über dieselbe Verbindung endgültig.
MODEL_CATALOG_INCLUDE_NAMES boolean true Anzeigenfreundliche Namensfelder in /v1/models-Antworten einschließen. Für Clients deaktivieren, die nur Modell-IDs erwarten.
MODELS_CATALOG_PREFIX_MODE enum dual Steuert, wie Modell-IDs in /v1/models mit Präfixen versehen werden. ‘dual’ (Standard) gibt aus Gründen der Abwärtskompatibilität sowohl Alias- als auch kanonische Anbieter-ID-Präfixe aus. ‘alias’ gibt nur das kurze Alias-Präfix aus (z. B. ds-web/model, nicht deepseek-web/model). ‘canonical’ gibt nur das vollständige Anbieter-ID-Präfix aus. Werte: dual, alias, canonical.
ARENA_ELO_SYNC_ENABLED boolean true Regelmäßige ELO-Synchronisierung der Arena-AI-Bestenliste für Intelligenzranglisten von Modellen aktivieren.
EXPOSE_CC_DISCOVERY_ALIASES boolean false claude/&lt;provider&gt;/&lt;model&gt;-Spiegel-IDs unter /v1/models veröffentlichen, 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/<provider>/<model>. Aktiviert (Standard): /v1/models veröffentlicht für jedes geeignete, denkfähige Claude-Modell eine Variante ohne Denkprozess, und eine mit einer Anfrage gesendete no-think/-ID wird wieder dem tatsächlichen Modell zugeordnet, wobei die Schlussfolgerungsfunktion 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 bzw. Deaktivierung über ModelSpec.noThinkingAlias gilt weiterhin, solange diese Option aktiviert ist.
OMNIROUTE_DISABLE_THINKING_LEVEL_VARIANTS boolean false Die Generierung von Denkstufenvarianten (z. B. -low, -medium, -high) im /v1/models-Katalog deaktivieren.
OMNIROUTE_CHAT_VIRTUAL_LANES boolean false ✓ Adaptive virtuelle Zulassungsspuren pro Mandant für die Anbieterweiterleitung aktivieren (#9654): Eine Lastspitze eines Mandanten führt dann nicht mehr zu 503-Fehlern 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 <gateway-alias>/<model>-Spiegel-IDs unter /v1/models für Modelle bekannt geben, deren kanonischer Eigentümer keine aktiven Anmeldedaten besitzt, die jedoch von einem 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 Guthabenerkennung für mit New-API-/One-API-/Sub2API-Aggregatoren kompatible Knoten aktivieren. Wenn diese Option aktiviert ist, zeigen kompatible Knoten mit gesetztem Aggregator-Flag ihr Guthaben im Dashboard und beim Quoten-Preflight-Routing an.
SERVER_OWNED_TOOL_LOOP_ENABLED boolean false Nicht streamende, serverseitig verwaltete Tool-Aufrufe fortsetzen, bis das Modell eine vom Client verwendbare Antwort zurückgibt.
SEARCH_STATS_HIDE_DELETED_CONNECTIONS boolean false In Suchstatistiken und kürzlich durchgeführten Suchen nur Anbieter berücksichtigen, die noch über eine aktive Verbindung verfügen (schlüssellose Anbieter wie duckduckgo-free werden immer berücksichtigt). Bei deaktivierter Option wird jede gespeicherte Suchzeile mit einer Anbieter-ID beibehalten.
FREE_BADGE_REQUIRES_PROVIDER_FREE_TIER boolean false Anbieter-Seiten im Dashboard: Das „Kostenlos“-Badge nur bei Signalen anzeigen, die vom Anbieter berücksichtigt werden – die Heuristik für Anzeigenamen, nicht boolesche Kostenlos-Felder und :free-Suffixe bei registrierten Anbietern ohne dokumentierte kostenlose Tarifstufe werden nicht mehr berücksichtigt. Bei deaktivierter Option bleibt die bisherige Badge-Regel erhalten.
RETRY_AFTER_PROVENANCE_ENABLED boolean false Bei aggregierten 429-/503-Nichtverfügbarkeitsantworten Retry-After weglassen, wenn kein konkreter zukünftiger Zeitpunkt für einen erneuten Versuch bekannt ist (anstelle eines synthetischen Werts von 1 s), error.retry_after_provenance (signal | none) hinzufügen und Combo-Drain-Pfaden ermöglichen, textuelle Hinweise zu erneuten Versuchen 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 als Ausweichziel nur bei erschöpfter Quote markiert ist, die Combo aus einem nachweislich nicht quotenbedingten Grund stoppt (offener Anbieter-Schutzschalter, vorausschauendes Überspringen aufgrund der Latenz), mit 502 statt mit der wie ein Quotenfehler wirkenden 503 antworten. Stopps aufgrund von Sperrung, Abklingzeit, Nichtverfügbarkeit, Erschöpfung und Parallelitätsbegrenzung verwenden weiterhin 503.
MISTRAL_AMBIGUOUS_401_SOFT_LOCKOUT boolean false Eine einfache Mistral-401-Antwort ({"detail":"Unauthorized"}, ohne explizites Authentifizierungssignal) ist bei einem widerrufenen Schlüssel und bei erschöpfter Quote identisch. Wenn diese Option aktiviert ist, wird die Verbindung in eine Abklingphase versetzt, anstatt sie als expired zu parken, und zwar höchstens dreimal pro Stunde und Verbindung; beim nächsten Auftreten wird sie geparkt, sodass ein widerrufener Schlüssel dennoch letztlich entsprechend behandelt wird. Standardmäßig deaktiviert: Jede einfache Mistral-401-Antwort parkt die Verbindung weiterhin wie bisher.
XAI_OAUTH_LIVE_MODEL_DISCOVERY boolean false Den Live-xAI-Modellkatalog für xai-oauth-Verbindungen mithilfe des OAuth-Bearer-Tokens von https://api.x.ai/v1/models abrufen, 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 einen OAuth-Bearer akzeptiert).
BATCH_AND_FILE_AUTO_CLEANUP_ENABLED boolean false Dem automatischen Bereinigungsdurchlauf erlauben, abgeschlossene (erfolgreich/fehlgeschlagen/abgebrochen/abgelaufen) Batch-API-Aufträge zu löschen, die älter als OMNIROUTE_BATCH_RETENTION_DAYS sind, einschließlich ihrer zeilenweisen Prüfpunkte, und den BLOB-Inhalt hochgeladener Dateien zu löschen, deren eigenes expires_at überschritten ist. Standardmäßig deaktiviert: Bei jeder bestehenden Installation bleiben diese Daten genau wie bisher erhalten, bis ein Betreiber die Funktion aktiviert. Die vom Betreiber ausgelöste Route DELETE /api/v1/batches/delete-completed bleibt davon in jedem Fall unberührt — sie ist ein separater, bedingungsloser öffentlicher API-Vertrag.
ANTIGRAVITY_ACCOUNT_LEASE_ENABLED boolean false Das ausgewählte Antigravity-Konto für den Streaming-Lebenszyklus der Anfrage reservieren, die es ausgewählt hat, sodass weder ein paralleler Wiederholungsversuch noch die Übergabe der Anmeldedaten ein Konto erneut auswählen kann, das bereits einem laufenden Stream zugewiesen ist. Die Reservierung ist auf (Verbindung, aufrufbares Upstream-Modell) begrenzt, sodass ein Konto weiterhin zwei verschiedene Modelle gleichzeitig bedienen kann. Wenn alle geeigneten Konten bereits für dieses Modell reserviert sind, gibt die Anfrage eine strukturierte 503-Antwort antigravity_pool_busy mit einem begrenzten Retry-After zurück, anstatt ein ausgelastetes Konto zusätzlich zu belasten. Standardmäßig deaktiviert: Die Kontoauswahl bleibt genau wie bisher, und es erfolgt keine Reservierung.
Schlüssel Typ Standardwert Neustart Beschreibung
CLI_COMPAT_ALL boolean false ✓ Kompatibilitätsmodus für alle CLI-Clients aktivieren.
MODEL_ALIAS_COMPAT_ENABLED boolean false Kompatibilitätsschicht für Modellaliase aktivieren.
PRICING_SYNC_ENABLED boolean false Automatische Synchronisierung der Preisdaten aktivieren (erfordert zusätzlich die Umgebungsvariable PRICING_SYNC_ENABLED).
OMNIROUTE_AUTO_SYNC_CODEX_PROFILES boolean false Nach einer Synchronisierung der Anbietermodelle automatisch die Profildateien ~/.codex/*.config.toml anhand des Live-Katalogs (neu) schreiben. Ändert niemals die aktive/standardmäßige Codex-Konfiguration. Standardmäßig deaktiviert.
OMNIROUTE_AUTO_SYNC_CLAUDE_PROFILES boolean false Nach einer Synchronisierung der Anbietermodelle automatisch die Claude-Code-Profile unter ~/.claude/profiles/<name>/settings.json anhand des Live-Katalogs (neu) schreiben. Ändert niemals die aktive/standardmäßige Claude-Konfiguration. Standardmäßig deaktiviert.
Schlüssel Typ Standardwert Beschreibung
OMNIROUTE_DISABLE_LOCAL_HEALTHCHECK boolean false Deaktiviert den Endpunkt für die Integritätsprüfung der lokalen Instanz.
OMNIROUTE_DISABLE_TOKEN_HEALTHCHECK boolean false Deaktiviert die Integritätsprüfung der Token-Validierung.
SKILLS_SANDBOX_NETWORK_ENABLED boolean false Aktiviert den Netzwerkzugriff in der Skills-Sandbox-Umgebung.
PROXY_HEALTH_BLOCKED_RESETS_STREAK boolean false Bei der Proxy-Integritätsprüfung setzt eine vom Ziel abgelehnte Prüfung (401/403/429) die Serie aufeinanderfolgender Fehler des Proxys zurück. Standardmäßig deaktiviert: Eine Ablehnung bleibt neutral (#10654). Ein 5xx-Ergebnis bleibt in beiden Fällen nicht eindeutig; eine Ablehnung entfernt, deaktiviert oder reaktiviert niemals einen Proxy.
DB_HEALTHCHECK_STARTUP_DEFERRED_ENABLED boolean false Führt die Integritäts-/Zustandsprüfung der DB beim Start erst aus, nachdem der Server Anfragen akzeptiert (über setImmediate), anstatt den Start bis zum Abschluss zu blockieren (#13717). Standardmäßig deaktiviert: Der Start wird genauso wie vor diesem PR blockiert.

[!NOTE] INPUT_SANITIZER_BLOCK_THRESHOLD und der zugehörige 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 können weder über die DB überschrieben noch im Dashboard umgeschaltet werden. Siehe ENVIRONMENT.md.

[!NOTE] Die Spalte Restart kennzeichnet Flags mit requiresRestart: true — der Wert wird sofort gespeichert, tritt jedoch erst nach dem Neustart des Prozesses in Kraft. Enum- Flags lehnen alle Werte außerhalb der zulässigen Menge ab (serverseitig sowohl in setFeatureFlagOverride() als auch im REST-Handler für PUT validiert).


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 (sowie eine synthetische Ansicht Neustart erforderlich).
  • Einen Umschalter für boolesche Flags und ein Dropdown-Menü für Enum-Flags (src/app/(dashboard)/dashboard/settings/components/FeatureFlagCard.tsx).
  • Ein Quell-Badge pro Flag — DB, ENV oder DEF —, das anzeigt, woher der effektive Wert stammt.
  • Eine Schaltfläche Zurücksetzen (wird nur für Flags aus der Quelle DB angezeigt), um die Überschreibung zu entfernen, sowie die Schaltfläche Alle Überschreibungen zurücksetzen am unteren Rand.
  • Ein Banner Server neu starten, wenn ein Flag mit requiresRestart geändert wird.

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).

Gibt jedes Flag mit seinem effektiven Wert, seiner Quelle und einer Zusammenfassung zurück.

{
"flags": [
{
"key": "REQUIRE_API_KEY",
"label": "API-Schlüssel erforderlich",
"description": "Einen API-Schlüssel für alle eingehenden Anfragen verlangen",
"category": "security",
"type": "boolean",
"enumValues": null,
"defaultValue": "false",
"effectiveValue": "false",
"source": "default", // "db" | "env" | "default"
"requiresRestart": false,
"warningLevel": "caution",
},
// ... alle 77 Flags
],
"summary": {
"total": 56,
"active": 0,
"inactive": 0,
"overriddenByDb": 0,
"overriddenByEnv": 0,
},
}

Legt eine einzelne Überschreibung fest oder entfernt sie. Body: { key: string; value?: string }. Wird value weggelassen, wird die Überschreibung entfernt (wodurch der Umgebungs- bzw. Standardwert wiederhergestellt wird).

Terminal-Fenster
# Eine 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"}'
# Die Überschreibung entfernen (ohne "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/die neue source, den previousValue/ die previousSource sowie requiresRestart zurück. Unbekannte Schlüssel und Enum-Werte außerhalb des zulässigen Bereichs werden mit 400 abgelehnt.

Entfernt alle DB-Überschreibungen auf einmal und setzt jedes Flag auf seinen Umgebungs- bzw. Standardwert zurück. Gibt { cleared: &lt;count&gt;, 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.


OMNIROUTE_EMERGENCY_FALLBACK (Kategorie runtime, Standardwert true) steuert den kostenlosen Notfall-Fallback-Pfad in open-sse/services/emergencyFallback.ts. Wenn diese Option aktiviert ist, werden Anfragen, die ihr Budget ausgeschöpft haben, 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 Dashboard-Umschalter, 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 bereitgestellt.)



OmniRoute-Quellcode (a58000c7685f)

HagiCode

HagiCode ist ein agentischer Coding-Arbeitsplatz mit strukturierten Workflows, Multi-Agent-Ausführung und Hero-Dungeon-Ansichten.

Mit einem intelligenteren, schnelleren und unterhaltsameren agentischen Workflow wird aus Ideen nutzbare Software.

HagiCode-Hauptoberfläche im hellen Design
  • SmartStrukturierte Workflows machen aus Absichten einen umsetzbaren Weg von der Idee bis zur Auslieferung.
  • EfficientMulti-Agent-Workflows führen Recherche, Umsetzung und Prüfung parallel aus.
  • FunHero Dungeon macht lange Coding-Sitzungen anschaulich und gemeinschaftlich.
HagiCode besuchen