From 1db5009f0b4a1bc9055639c9bc500e9a1a46d0ac Mon Sep 17 00:00:00 2001 From: techartdev Date: Mon, 2 Feb 2026 02:16:59 +0200 Subject: [PATCH] Update gateway settings and translations for allow_insecure_auth option --- openclaw_assistant/config.yaml | 8 ++++++- openclaw_assistant/oc_config_helper.py | 28 ++++++++++++++++++------- openclaw_assistant/run.sh | 7 ++++--- openclaw_assistant/translations/bg.yaml | 4 ++++ openclaw_assistant/translations/de.yaml | 4 ++++ openclaw_assistant/translations/en.yaml | 4 ++++ openclaw_assistant/translations/es.yaml | 4 ++++ 7 files changed, 47 insertions(+), 12 deletions(-) diff --git a/openclaw_assistant/config.yaml b/openclaw_assistant/config.yaml index 4b10ef9..8b36519 100644 --- a/openclaw_assistant/config.yaml +++ b/openclaw_assistant/config.yaml @@ -1,5 +1,5 @@ name: OpenClaw Assistant -version: "0.5.26" +version: "0.5.27" slug: openclaw_assistant description: Run OpenClaw Assistant (OpenClaw-compatible) as a Home Assistant add-on. url: https://github.com/techartdev/OpenClawHomeAssistant @@ -56,6 +56,11 @@ options: # Gateway port to listen on gateway_port: 18789 + # Allow insecure HTTP authentication (required for HTTP gateway access on LAN) + # WARNING: Only enable if you're using HTTP (not HTTPS) for gateway_public_url + # Default is false for security. + allow_insecure_auth: false + schema: timezone: str @@ -71,4 +76,5 @@ schema: clean_session_locks_on_exit: bool? gateway_bind_mode: list(loopback|lan)? gateway_port: int(1,65535)? + allow_insecure_auth: bool? diff --git a/openclaw_assistant/oc_config_helper.py b/openclaw_assistant/oc_config_helper.py index 87d523d..a34172c 100644 --- a/openclaw_assistant/oc_config_helper.py +++ b/openclaw_assistant/oc_config_helper.py @@ -57,13 +57,14 @@ def set_gateway_setting(key, value): return write_config(cfg) -def apply_bind_mode_settings(bind_mode: str, port: int): +def apply_gateway_settings(bind_mode: str, port: int, allow_insecure_auth: bool): """ - Apply bind mode settings to OpenClaw config. + Apply gateway settings to OpenClaw config. Args: bind_mode: "loopback" or "lan" port: Port number to listen on (must be 1-65535) + allow_insecure_auth: Allow insecure HTTP authentication """ # Validate bind mode if bind_mode not in ["loopback", "lan"]: @@ -84,8 +85,15 @@ def apply_bind_mode_settings(bind_mode: str, port: int): gateway = cfg["gateway"] + # controlUi should be nested inside gateway + if "controlUi" not in gateway: + gateway["controlUi"] = {} + + control_ui = gateway["controlUi"] + current_bind = gateway.get("bind", "") current_port = gateway.get("port", 18789) + current_insecure = control_ui.get("allowInsecureAuth", False) changes = [] @@ -93,11 +101,14 @@ def apply_bind_mode_settings(bind_mode: str, port: int): gateway["bind"] = bind_mode changes.append(f"bind: {current_bind} -> {bind_mode}") - # Always update port when it differs from the desired value if current_port != port: gateway["port"] = port changes.append(f"port: {current_port} -> {port}") + if current_insecure != allow_insecure_auth: + control_ui["allowInsecureAuth"] = allow_insecure_auth + changes.append(f"allowInsecureAuth: {current_insecure} -> {allow_insecure_auth}") + if changes: if write_config(cfg): print(f"INFO: Updated gateway settings: {', '.join(changes)}") @@ -106,7 +117,7 @@ def apply_bind_mode_settings(bind_mode: str, port: int): print("ERROR: Failed to write config") return False else: - print(f"INFO: Gateway settings already correct (bind={bind_mode}, port={port})") + print(f"INFO: Gateway settings already correct (bind={bind_mode}, port={port}, allowInsecureAuth={allow_insecure_auth})") return True @@ -118,13 +129,14 @@ def main(): cmd = sys.argv[1] - if cmd == "apply-bind-mode": - if len(sys.argv) != 4: - print("Usage: oc_config_helper.py apply-bind-mode ") + if cmd == "apply-gateway-settings": + if len(sys.argv) != 5: + print("Usage: oc_config_helper.py apply-gateway-settings ") sys.exit(1) bind_mode = sys.argv[2] port = int(sys.argv[3]) - success = apply_bind_mode_settings(bind_mode, port) + allow_insecure_auth = sys.argv[4].lower() == "true" + success = apply_gateway_settings(bind_mode, port, allow_insecure_auth) sys.exit(0 if success else 1) elif cmd == "get": diff --git a/openclaw_assistant/run.sh b/openclaw_assistant/run.sh index a94da81..cac97d9 100644 --- a/openclaw_assistant/run.sh +++ b/openclaw_assistant/run.sh @@ -30,6 +30,7 @@ CLEAN_LOCKS_ON_EXIT=$(jq -r '.clean_session_locks_on_exit // true' "$OPTIONS_FIL # Gateway bind mode (loopback or lan) GATEWAY_BIND_MODE=$(jq -r '.gateway_bind_mode // "loopback"' "$OPTIONS_FILE") GATEWAY_PORT=$(jq -r '.gateway_port // 18789' "$OPTIONS_FILE") +ALLOW_INSECURE_AUTH=$(jq -r '.allow_insecure_auth // false' "$OPTIONS_FILE") export TZ="$TZNAME" @@ -202,10 +203,10 @@ fi if [ -f "$OPENCLAW_CONFIG_PATH" ]; then if [ -f "$HELPER_PATH" ]; then - if ! python3 "$HELPER_PATH" apply-bind-mode "$GATEWAY_BIND_MODE" "$GATEWAY_PORT"; then + if ! python3 "$HELPER_PATH" apply-gateway-settings "$GATEWAY_BIND_MODE" "$GATEWAY_PORT" "$ALLOW_INSECURE_AUTH"; then rc=$? - echo "ERROR: Failed to apply gateway bind mode via oc_config_helper.py (exit code ${rc})." - echo "ERROR: Gateway bind configuration may be incorrect; aborting startup." + echo "ERROR: Failed to apply gateway settings via oc_config_helper.py (exit code ${rc})." + echo "ERROR: Gateway configuration may be incorrect; aborting startup." exit "${rc}" fi else diff --git a/openclaw_assistant/translations/bg.yaml b/openclaw_assistant/translations/bg.yaml index 18579d0..0aaf82c 100644 --- a/openclaw_assistant/translations/bg.yaml +++ b/openclaw_assistant/translations/bg.yaml @@ -42,3 +42,7 @@ configuration: gateway_port: name: Порт на Gateway description: Номер на порт, на който OpenClaw gateway да слуша (по подразбиране - 18789) + + allow_insecure_auth: + name: Разрешаване на HTTP автентикация + description: Разрешаване на HTTP автентикация за достъп до gateway в локалната мрежа. ВНИМАНИЕ - Активирайте само ако използвате HTTP (не HTTPS) за gateway_public_url. Необходимо за достъп от браузър през HTTP. diff --git a/openclaw_assistant/translations/de.yaml b/openclaw_assistant/translations/de.yaml index f3b4a44..3c95ac1 100644 --- a/openclaw_assistant/translations/de.yaml +++ b/openclaw_assistant/translations/de.yaml @@ -42,3 +42,7 @@ configuration: gateway_port: name: Gateway-Port description: Portnummer, auf der das OpenClaw-Gateway lauscht (Standard - 18789) + + allow_insecure_auth: + name: Unsichere HTTP-Authentifizierung erlauben + description: HTTP-Authentifizierung für Gateway-Zugriff im LAN erlauben. WARNUNG - Nur aktivieren, wenn HTTP (nicht HTTPS) für gateway_public_url verwendet wird. Erforderlich für Browser-Zugriff über HTTP. diff --git a/openclaw_assistant/translations/en.yaml b/openclaw_assistant/translations/en.yaml index ba3fcd4..5f16300 100644 --- a/openclaw_assistant/translations/en.yaml +++ b/openclaw_assistant/translations/en.yaml @@ -42,3 +42,7 @@ configuration: gateway_port: name: Gateway Port description: Port number for the OpenClaw gateway to listen on (default - 18789) + + allow_insecure_auth: + name: Allow Insecure HTTP Auth + description: Allow HTTP authentication for gateway access on LAN. WARNING - Only enable if using HTTP (not HTTPS) for gateway_public_url. Required for browser access over HTTP. diff --git a/openclaw_assistant/translations/es.yaml b/openclaw_assistant/translations/es.yaml index 47f355b..ef88940 100644 --- a/openclaw_assistant/translations/es.yaml +++ b/openclaw_assistant/translations/es.yaml @@ -42,3 +42,7 @@ configuration: gateway_port: name: Puerto del Gateway description: Número de puerto en el que el gateway de OpenClaw escuchará (predeterminado - 18789) + + allow_insecure_auth: + name: Permitir autenticación HTTP insegura + description: Permitir autenticación HTTP para acceso al gateway en LAN. ADVERTENCIA - Solo habilitar si usa HTTP (no HTTPS) para gateway_public_url. Requerido para acceso desde navegador por HTTP.