From 96a2ddcd692fd9057e6695c8d7a1e34674fc6ca0 Mon Sep 17 00:00:00 2001 From: Ilango Rajagopal Date: Wed, 1 Jul 2026 14:02:50 +0530 Subject: [PATCH 1/4] fix: check deny list in for certain chat models --- .../ChatCloudflareWorkersAI/ChatCloudflareWorkersAI.ts | 2 ++ .../ChatGoogleGenerativeAI/ChatGoogleGenerativeAI.ts | 2 ++ .../components/nodes/chatmodels/ChatLitellm/ChatLitellm.ts | 2 ++ .../components/nodes/chatmodels/ChatLocalAI/ChatLocalAI.ts | 2 ++ .../nodes/chatmodels/ChatNemoGuardrails/ChatNemoGuardrails.ts | 2 ++ .../components/nodes/chatmodels/ChatNvdiaNIM/ChatNvdiaNIM.ts | 3 +++ packages/components/nodes/chatmodels/ChatOllama/ChatOllama.ts | 3 +++ .../nodes/chatmodels/ChatOllama/ChatOllama_LlamaIndex.ts | 3 +++ .../nodes/chatmodels/ChatOpenAICustom/ChatOpenAICustom.ts | 3 +++ 9 files changed, 22 insertions(+) diff --git a/packages/components/nodes/chatmodels/ChatCloudflareWorkersAI/ChatCloudflareWorkersAI.ts b/packages/components/nodes/chatmodels/ChatCloudflareWorkersAI/ChatCloudflareWorkersAI.ts index 1928d42cef1..2ed051b50bd 100644 --- a/packages/components/nodes/chatmodels/ChatCloudflareWorkersAI/ChatCloudflareWorkersAI.ts +++ b/packages/components/nodes/chatmodels/ChatCloudflareWorkersAI/ChatCloudflareWorkersAI.ts @@ -1,6 +1,7 @@ import { ChatCloudflareWorkersAI, type CloudflareWorkersAIInput } from '@langchain/cloudflare' import { ICommonObject, INode, INodeData, INodeParams } from '../../../src/Interface' import { getBaseClasses, getCredentialData, getCredentialParam } from '../../../src/utils' +import { checkDenyList } from '../../../src/httpSecurity' class ChatCloudflareWorkersAI_ChatModels implements INode { label: string @@ -69,6 +70,7 @@ class ChatCloudflareWorkersAI_ChatModels implements INode { model } + if (baseUrl) await checkDenyList(baseUrl) if (baseUrl) { obj.baseUrl = baseUrl } diff --git a/packages/components/nodes/chatmodels/ChatGoogleGenerativeAI/ChatGoogleGenerativeAI.ts b/packages/components/nodes/chatmodels/ChatGoogleGenerativeAI/ChatGoogleGenerativeAI.ts index 65573b9fdfe..29b779de23d 100644 --- a/packages/components/nodes/chatmodels/ChatGoogleGenerativeAI/ChatGoogleGenerativeAI.ts +++ b/packages/components/nodes/chatmodels/ChatGoogleGenerativeAI/ChatGoogleGenerativeAI.ts @@ -6,6 +6,7 @@ import { getBaseClasses, getCredentialData, getCredentialParam } from '../../../ import { getModels, MODEL_TYPE } from '../../../src/modelLoader' import { GoogleGenerativeAIChatInput } from '@langchain/google-genai' import { ChatGoogleGenerativeAI } from './FlowiseChatGoogleGenerativeAI' +import { checkDenyList } from '../../../src/httpSecurity' class GoogleGenerativeAI_ChatModels implements INode { label: string @@ -275,6 +276,7 @@ class GoogleGenerativeAI_ChatModels implements INode { if (topK) obj.topK = parseFloat(topK) if (cache) obj.cache = cache if (temperature) obj.temperature = parseFloat(temperature) + if (baseUrl) await checkDenyList(baseUrl) if (baseUrl) obj.baseUrl = baseUrl if (thinkingLevel) { obj.thinkingConfig = { diff --git a/packages/components/nodes/chatmodels/ChatLitellm/ChatLitellm.ts b/packages/components/nodes/chatmodels/ChatLitellm/ChatLitellm.ts index a444d1ac79d..e9db9fa794d 100644 --- a/packages/components/nodes/chatmodels/ChatLitellm/ChatLitellm.ts +++ b/packages/components/nodes/chatmodels/ChatLitellm/ChatLitellm.ts @@ -4,6 +4,7 @@ import { BaseLLMParams } from '@langchain/core/language_models/llms' import { ICommonObject, IMultiModalOption, INode, INodeData, INodeParams } from '../../../src/Interface' import { getBaseClasses, getCredentialData, getCredentialParam } from '../../../src/utils' import { ChatOpenAI } from '../ChatOpenAI/FlowiseChatOpenAI' +import { checkDenyList } from '../../../src/httpSecurity' class ChatLitellm_ChatModels implements INode { label: string @@ -125,6 +126,7 @@ class ChatLitellm_ChatModels implements INode { streaming: streaming ?? true } + if (basePath) await checkDenyList(basePath) if (basePath) { obj.configuration = { baseURL: basePath diff --git a/packages/components/nodes/chatmodels/ChatLocalAI/ChatLocalAI.ts b/packages/components/nodes/chatmodels/ChatLocalAI/ChatLocalAI.ts index c7233004131..650331dd296 100644 --- a/packages/components/nodes/chatmodels/ChatLocalAI/ChatLocalAI.ts +++ b/packages/components/nodes/chatmodels/ChatLocalAI/ChatLocalAI.ts @@ -2,6 +2,7 @@ import { ChatOpenAI, ChatOpenAIFields } from '@langchain/openai' import { BaseCache } from '@langchain/core/caches' import { ICommonObject, INode, INodeData, INodeParams } from '../../../src/Interface' import { getBaseClasses, getCredentialData, getCredentialParam } from '../../../src/utils' +import { checkDenyList } from '../../../src/httpSecurity' class ChatLocalAI_ChatModels implements INode { label: string @@ -123,6 +124,7 @@ class ChatLocalAI_ChatModels implements INode { obj.openAIApiKey = localAIApiKey obj.apiKey = localAIApiKey } + if (basePath) await checkDenyList(basePath) if (basePath) obj.configuration = { baseURL: basePath } const model = new ChatOpenAI(obj) diff --git a/packages/components/nodes/chatmodels/ChatNemoGuardrails/ChatNemoGuardrails.ts b/packages/components/nodes/chatmodels/ChatNemoGuardrails/ChatNemoGuardrails.ts index d87cb2c0f3d..0ac0c9454db 100644 --- a/packages/components/nodes/chatmodels/ChatNemoGuardrails/ChatNemoGuardrails.ts +++ b/packages/components/nodes/chatmodels/ChatNemoGuardrails/ChatNemoGuardrails.ts @@ -6,6 +6,7 @@ import { CallbackManager, CallbackManagerForLLMRun } from '@langchain/core/callb import { ChatResult } from '@langchain/core/outputs' import { FailedAttemptHandler } from '@langchain/core/utils/async_caller' import { getBaseClasses, INode, INodeData, INodeParams } from '../../../src' +import { checkDenyList } from '../../../src/httpSecurity' export interface ChatNemoGuardrailsCallOptions extends BaseChatModelCallOptions { /** @@ -109,6 +110,7 @@ class ChatNemoGuardrailsChatModel implements INode { async init(nodeData: INodeData): Promise { const configurationId = nodeData.inputs?.configurationId const baseUrl = nodeData.inputs?.baseUrl + if (baseUrl) await checkDenyList(baseUrl) const obj: Partial = { configurationId: configurationId, baseUrl: baseUrl diff --git a/packages/components/nodes/chatmodels/ChatNvdiaNIM/ChatNvdiaNIM.ts b/packages/components/nodes/chatmodels/ChatNvdiaNIM/ChatNvdiaNIM.ts index 4ef8cf61893..14461704bf3 100644 --- a/packages/components/nodes/chatmodels/ChatNvdiaNIM/ChatNvdiaNIM.ts +++ b/packages/components/nodes/chatmodels/ChatNvdiaNIM/ChatNvdiaNIM.ts @@ -2,6 +2,7 @@ import { BaseCache } from '@langchain/core/caches' import { ChatOpenAI, ChatOpenAIFields } from '@langchain/openai' import { ICommonObject, INode, INodeData, INodeParams } from '../../../src/Interface' import { getBaseClasses, getCredentialData, getCredentialParam } from '../../../src/utils' +import { checkDenyList } from '../../../src/httpSecurity' class ChatNvdiaNIM_ChatModels implements INode { label: string @@ -158,6 +159,8 @@ class ChatNvdiaNIM_ChatModels implements INode { } } + if (basePath) await checkDenyList(basePath) + if (basePath || parsedBaseOptions) { obj.configuration = { baseURL: basePath, diff --git a/packages/components/nodes/chatmodels/ChatOllama/ChatOllama.ts b/packages/components/nodes/chatmodels/ChatOllama/ChatOllama.ts index b18d1eb3e16..3d33e048b67 100644 --- a/packages/components/nodes/chatmodels/ChatOllama/ChatOllama.ts +++ b/packages/components/nodes/chatmodels/ChatOllama/ChatOllama.ts @@ -4,6 +4,7 @@ import { BaseCache } from '@langchain/core/caches' import { ICommonObject, IMultiModalOption, INode, INodeData, INodeParams } from '../../../src/Interface' import { getBaseClasses, getCredentialData, getCredentialParam } from '../../../src/utils' import { ChatOllama } from './FlowiseChatOllama' +import { checkDenyList } from '../../../src/httpSecurity' class ChatOllama_ChatModels implements INode { label: string @@ -252,6 +253,8 @@ class ChatOllama_ChatModels implements INode { const cache = nodeData.inputs?.cache as BaseCache + if (baseUrl) await checkDenyList(baseUrl) + const obj: ChatOllamaInput & BaseChatModelParams = { baseUrl, temperature: parseFloat(temperature), diff --git a/packages/components/nodes/chatmodels/ChatOllama/ChatOllama_LlamaIndex.ts b/packages/components/nodes/chatmodels/ChatOllama/ChatOllama_LlamaIndex.ts index c33c1a985e8..c080e08faf1 100644 --- a/packages/components/nodes/chatmodels/ChatOllama/ChatOllama_LlamaIndex.ts +++ b/packages/components/nodes/chatmodels/ChatOllama/ChatOllama_LlamaIndex.ts @@ -1,6 +1,7 @@ import { INode, INodeData, INodeParams } from '../../../src/Interface' import { getBaseClasses } from '../../../src/utils' import { OllamaParams, Ollama } from 'llamaindex' +import { checkDenyList } from '../../../src/httpSecurity' class ChatOllama_LlamaIndex_ChatModels implements INode { label: string @@ -192,6 +193,8 @@ class ChatOllama_LlamaIndex_ChatModels implements INode { const stop = nodeData.inputs?.stop as string const tfsZ = nodeData.inputs?.tfsZ as string + if (baseUrl) await checkDenyList(baseUrl) + const obj: OllamaParams = { model: modelName, options: {}, diff --git a/packages/components/nodes/chatmodels/ChatOpenAICustom/ChatOpenAICustom.ts b/packages/components/nodes/chatmodels/ChatOpenAICustom/ChatOpenAICustom.ts index faf2ebd8b37..b4fac68259f 100644 --- a/packages/components/nodes/chatmodels/ChatOpenAICustom/ChatOpenAICustom.ts +++ b/packages/components/nodes/chatmodels/ChatOpenAICustom/ChatOpenAICustom.ts @@ -2,6 +2,7 @@ import { ChatOpenAI, ChatOpenAIFields } from '@langchain/openai' import { BaseCache } from '@langchain/core/caches' import { ICommonObject, INode, INodeData, INodeParams } from '../../../src/Interface' import { getBaseClasses, getCredentialData, getCredentialParam } from '../../../src/utils' +import { checkDenyList } from '../../../src/httpSecurity' class ChatOpenAICustom_ChatModels implements INode { label: string @@ -160,6 +161,8 @@ class ChatOpenAICustom_ChatModels implements INode { } } + if (basePath) await checkDenyList(basePath) + if (basePath || parsedBaseOptions) { obj.configuration = { baseURL: basePath, From e371dc2793be90963ce00c0c00a1bcce28ed0e9c Mon Sep 17 00:00:00 2001 From: Ilango Date: Wed, 1 Jul 2026 14:52:59 +0530 Subject: [PATCH 2/4] Update packages/components/nodes/chatmodels/ChatOllama/ChatOllama.ts Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com> --- .../components/nodes/chatmodels/ChatOllama/ChatOllama.ts | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/packages/components/nodes/chatmodels/ChatOllama/ChatOllama.ts b/packages/components/nodes/chatmodels/ChatOllama/ChatOllama.ts index 3d33e048b67..484a8716a21 100644 --- a/packages/components/nodes/chatmodels/ChatOllama/ChatOllama.ts +++ b/packages/components/nodes/chatmodels/ChatOllama/ChatOllama.ts @@ -253,10 +253,11 @@ class ChatOllama_ChatModels implements INode { const cache = nodeData.inputs?.cache as BaseCache - if (baseUrl) await checkDenyList(baseUrl) + const activeBaseUrl = baseUrl || 'http://localhost:11434' + await checkDenyList(activeBaseUrl) const obj: ChatOllamaInput & BaseChatModelParams = { - baseUrl, + baseUrl: activeBaseUrl, temperature: parseFloat(temperature), model: modelName, streaming: streaming ?? true From ddb5ea7c2ddbf550218b3967d43e12e5b6cd6a8c Mon Sep 17 00:00:00 2001 From: Ilango Date: Wed, 1 Jul 2026 14:53:08 +0530 Subject: [PATCH 3/4] Update packages/components/nodes/chatmodels/ChatCloudflareWorkersAI/ChatCloudflareWorkersAI.ts Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com> --- .../ChatCloudflareWorkersAI/ChatCloudflareWorkersAI.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/components/nodes/chatmodels/ChatCloudflareWorkersAI/ChatCloudflareWorkersAI.ts b/packages/components/nodes/chatmodels/ChatCloudflareWorkersAI/ChatCloudflareWorkersAI.ts index 2ed051b50bd..034e2ca0de6 100644 --- a/packages/components/nodes/chatmodels/ChatCloudflareWorkersAI/ChatCloudflareWorkersAI.ts +++ b/packages/components/nodes/chatmodels/ChatCloudflareWorkersAI/ChatCloudflareWorkersAI.ts @@ -70,8 +70,8 @@ class ChatCloudflareWorkersAI_ChatModels implements INode { model } - if (baseUrl) await checkDenyList(baseUrl) if (baseUrl) { + await checkDenyList(baseUrl) obj.baseUrl = baseUrl } From 7a2dbb80ef35e18fcf7ad16a81feb62600dbec20 Mon Sep 17 00:00:00 2001 From: Ilango Rajagopal Date: Wed, 1 Jul 2026 14:57:25 +0530 Subject: [PATCH 4/4] fix: review feedback --- .../ChatCloudflareWorkersAI/ChatCloudflareWorkersAI.ts | 2 +- .../ChatGoogleGenerativeAI/ChatGoogleGenerativeAI.ts | 6 ++++-- .../components/nodes/chatmodels/ChatLitellm/ChatLitellm.ts | 2 +- .../components/nodes/chatmodels/ChatLocalAI/ChatLocalAI.ts | 6 ++++-- 4 files changed, 10 insertions(+), 6 deletions(-) diff --git a/packages/components/nodes/chatmodels/ChatCloudflareWorkersAI/ChatCloudflareWorkersAI.ts b/packages/components/nodes/chatmodels/ChatCloudflareWorkersAI/ChatCloudflareWorkersAI.ts index 2ed051b50bd..034e2ca0de6 100644 --- a/packages/components/nodes/chatmodels/ChatCloudflareWorkersAI/ChatCloudflareWorkersAI.ts +++ b/packages/components/nodes/chatmodels/ChatCloudflareWorkersAI/ChatCloudflareWorkersAI.ts @@ -70,8 +70,8 @@ class ChatCloudflareWorkersAI_ChatModels implements INode { model } - if (baseUrl) await checkDenyList(baseUrl) if (baseUrl) { + await checkDenyList(baseUrl) obj.baseUrl = baseUrl } diff --git a/packages/components/nodes/chatmodels/ChatGoogleGenerativeAI/ChatGoogleGenerativeAI.ts b/packages/components/nodes/chatmodels/ChatGoogleGenerativeAI/ChatGoogleGenerativeAI.ts index 29b779de23d..432d3fd9e9a 100644 --- a/packages/components/nodes/chatmodels/ChatGoogleGenerativeAI/ChatGoogleGenerativeAI.ts +++ b/packages/components/nodes/chatmodels/ChatGoogleGenerativeAI/ChatGoogleGenerativeAI.ts @@ -276,8 +276,10 @@ class GoogleGenerativeAI_ChatModels implements INode { if (topK) obj.topK = parseFloat(topK) if (cache) obj.cache = cache if (temperature) obj.temperature = parseFloat(temperature) - if (baseUrl) await checkDenyList(baseUrl) - if (baseUrl) obj.baseUrl = baseUrl + if (baseUrl) { + await checkDenyList(baseUrl) + obj.baseUrl = baseUrl + } if (thinkingLevel) { obj.thinkingConfig = { thinkingLevel: thinkingLevel, diff --git a/packages/components/nodes/chatmodels/ChatLitellm/ChatLitellm.ts b/packages/components/nodes/chatmodels/ChatLitellm/ChatLitellm.ts index e9db9fa794d..9f3a302d8bd 100644 --- a/packages/components/nodes/chatmodels/ChatLitellm/ChatLitellm.ts +++ b/packages/components/nodes/chatmodels/ChatLitellm/ChatLitellm.ts @@ -126,8 +126,8 @@ class ChatLitellm_ChatModels implements INode { streaming: streaming ?? true } - if (basePath) await checkDenyList(basePath) if (basePath) { + await checkDenyList(basePath) obj.configuration = { baseURL: basePath } diff --git a/packages/components/nodes/chatmodels/ChatLocalAI/ChatLocalAI.ts b/packages/components/nodes/chatmodels/ChatLocalAI/ChatLocalAI.ts index 650331dd296..3c6d1426dfa 100644 --- a/packages/components/nodes/chatmodels/ChatLocalAI/ChatLocalAI.ts +++ b/packages/components/nodes/chatmodels/ChatLocalAI/ChatLocalAI.ts @@ -124,8 +124,10 @@ class ChatLocalAI_ChatModels implements INode { obj.openAIApiKey = localAIApiKey obj.apiKey = localAIApiKey } - if (basePath) await checkDenyList(basePath) - if (basePath) obj.configuration = { baseURL: basePath } + if (basePath) { + await checkDenyList(basePath) + obj.configuration = { baseURL: basePath } + } const model = new ChatOpenAI(obj)