From 3cda47cdb449aac970426f0929c9e5f8bb8bd807 Mon Sep 17 00:00:00 2001 From: Timothy Jaeryang Baek Date: Mon, 7 Sep 2026 12:16:09 -0400 Subject: [PATCH] refac --- backend/open_webui/utils/tools.py | 8 ++---- .../components/AddTerminalServerModal.svelte | 23 +++++++++++++++ src/lib/components/AddToolServerModal.svelte | 28 +++++++++++++++++-- 3 files changed, 51 insertions(+), 8 deletions(-) diff --git a/backend/open_webui/utils/tools.py b/backend/open_webui/utils/tools.py index ebf744d7d7..31485112a9 100644 --- a/backend/open_webui/utils/tools.py +++ b/backend/open_webui/utils/tools.py @@ -145,15 +145,13 @@ async def build_tool_server_headers( auth_type = connection.get('auth_type', 'bearer') headers = {} - cookies = {} + cookies = getattr(request, 'cookies', {}) if connection.get('forward_cookies', False) else {} if auth_type == 'bearer': headers.update(bearer_auth_header(connection.get('key', ''))) elif auth_type == 'session': - cookies = request.cookies if hasattr(request, 'cookies') else {} headers.update(bearer_auth_header(request.state.token.credentials)) elif auth_type == 'system_oauth': - cookies = request.cookies if hasattr(request, 'cookies') else {} oauth_token = extra_params.get('__oauth_token__', None) if oauth_token: headers.update(bearer_auth_header(oauth_token.get('access_token', ''))) @@ -1393,16 +1391,14 @@ async def get_terminal_tools( # Build auth headers auth_type = connection.get('auth_type', 'bearer') - cookies = {} + cookies = getattr(request, 'cookies', {}) if connection.get('forward_cookies', False) else {} headers = {'Content-Type': 'application/json', 'X-User-Id': user.id} if auth_type == 'bearer': headers.update(bearer_auth_header(connection.get('key', ''))) elif auth_type == 'session': - cookies = request.cookies headers.update(bearer_auth_header(request.state.token.credentials)) elif auth_type == 'system_oauth': - cookies = request.cookies oauth_token = extra_params.get('__oauth_token__', None) if oauth_token: headers.update(bearer_auth_header(oauth_token.get('access_token', ''))) diff --git a/src/lib/components/AddTerminalServerModal.svelte b/src/lib/components/AddTerminalServerModal.svelte index 15be4244e8..15a1f1b00c 100644 --- a/src/lib/components/AddTerminalServerModal.svelte +++ b/src/lib/components/AddTerminalServerModal.svelte @@ -5,6 +5,7 @@ import Modal from '$lib/components/common/Modal.svelte'; import SensitiveInput from '$lib/components/common/SensitiveInput.svelte'; + import Switch from '$lib/components/common/Switch.svelte'; import XMark from '$lib/components/icons/XMark.svelte'; import AccessControlModal from '$lib/components/workspace/common/AccessControlModal.svelte'; import AccessButton from '$lib/components/common/AccessButton.svelte'; @@ -34,6 +35,7 @@ let name = ''; let id = ''; let auth_type = 'bearer'; + let forwardCookies = false; let path = '/openapi.json'; let enabled = false; let chatUploads: 'default' | 'filesystem' = 'default'; @@ -73,6 +75,7 @@ }; const init = () => { + forwardCookies = connection?.forward_cookies ?? false; if (connection) { id = connection?.id ?? ''; url = connection.url; @@ -125,6 +128,7 @@ key = ''; name = ''; auth_type = 'bearer'; + forwardCookies = false; path = '/openapi.json'; enabled = false; chatUploads = 'default'; @@ -393,6 +397,7 @@ name, path, auth_type, + ...(!direct ? { forward_cookies: forwardCookies } : {}), enabled: enabled, config: connectionConfig, // Policy fields @@ -874,6 +879,24 @@ {#if showAdvanced} + {#if !direct} +
+
+ +

+ {$i18n.t('Forward cookies from your Open WebUI request to this server.')} +

+
+ +
+ {/if} +
diff --git a/src/lib/components/AddToolServerModal.svelte b/src/lib/components/AddToolServerModal.svelte index f5ed25449b..5e02ad8996 100644 --- a/src/lib/components/AddToolServerModal.svelte +++ b/src/lib/components/AddToolServerModal.svelte @@ -6,7 +6,7 @@ import { toast } from 'svelte-sonner'; import { getContext, onMount } from 'svelte'; - const i18n = getContext('i18n'); + const i18n = getContext('i18n'); import Modal from '$lib/components/common/Modal.svelte'; import Plus from '$lib/components/icons/Plus.svelte'; @@ -36,7 +36,7 @@ export let edit = false; export let direct = false; - export let connection = null; + export let connection: any = null; let inputElement = null; @@ -49,6 +49,7 @@ let path = 'openapi.json'; let auth_type = 'bearer'; + let forwardCookies = false; let key = ''; let headers = ''; @@ -264,6 +265,7 @@ if (data.path) path = data.path; if (data.auth_type) auth_type = data.auth_type; + forwardCookies = data.forward_cookies ?? false; if (data.headers) headers = JSON.stringify(data.headers, null, 2); if (data.key) key = data.key; @@ -300,6 +302,7 @@ path, auth_type, + ...(!direct && ['', 'openapi'].includes(type) ? { forward_cookies: forwardCookies } : {}), headers: headers ? JSON.parse(headers) : undefined, key, @@ -380,6 +383,7 @@ path, auth_type, + ...(!direct && ['', 'openapi'].includes(type) ? { forward_cookies: forwardCookies } : {}), headers: headers ? JSON.parse(headers) : undefined, key, @@ -424,6 +428,7 @@ key = ''; auth_type = 'bearer'; + forwardCookies = false; id = ''; name = ''; @@ -442,6 +447,7 @@ }; const init = () => { + forwardCookies = connection?.forward_cookies ?? false; if (connection) { type = connection?.type ?? 'openapi'; url = connection.url; @@ -848,6 +854,24 @@
{#if showAdvanced} + {#if !direct && ['', 'openapi'].includes(type)} +
+
+ +

+ {$i18n.t('Forward cookies from your Open WebUI request to this server.')} +

+
+ +
+ {/if} + {#if ['', 'openapi'].includes(type)}