mirror of
https://github.com/farcasclaudiu/Flowise.git
synced 2026-06-28 15:00:57 +03:00
Add environment variable control for trust proxy setting (#5226)
* feat: allow trust proxy setting to be configured via environment variable * fix: restore HTTP_DENY_LIST in .env.example after merge conflict * feat: add conditional handling for trust proxy * feat: add trust proxy environment variable documentation * feat: add trust proxy environment variable sample value * fix: handle empty trust proxy string in docker environment --------- Co-authored-by: Henry Heng <henryheng@flowiseai.com>
This commit is contained in:
@@ -174,6 +174,7 @@ JWT_REFRESH_TOKEN_EXPIRY_IN_MINUTES=43200
|
||||
# HTTP_DENY_LIST=
|
||||
# CUSTOM_MCP_SECURITY_CHECK=true
|
||||
# CUSTOM_MCP_PROTOCOL=sse #(stdio | sse)
|
||||
# TRUST_PROXY=true #(true | false | 1 | loopback| linklocal | uniquelocal | IP addresses | loopback, IP addresses)
|
||||
|
||||
|
||||
############################################################################################################
|
||||
|
||||
@@ -77,7 +77,8 @@ export abstract class BaseCommand extends Command {
|
||||
ENABLE_BULLMQ_DASHBOARD: Flags.string(),
|
||||
CUSTOM_MCP_SECURITY_CHECK: Flags.string(),
|
||||
CUSTOM_MCP_PROTOCOL: Flags.string(),
|
||||
HTTP_DENY_LIST: Flags.string()
|
||||
HTTP_DENY_LIST: Flags.string(),
|
||||
TRUST_PROXY: Flags.string()
|
||||
}
|
||||
|
||||
protected async stopProcess() {
|
||||
@@ -210,5 +211,6 @@ export abstract class BaseCommand extends Command {
|
||||
if (flags.CUSTOM_MCP_SECURITY_CHECK) process.env.CUSTOM_MCP_SECURITY_CHECK = flags.CUSTOM_MCP_SECURITY_CHECK
|
||||
if (flags.CUSTOM_MCP_PROTOCOL) process.env.CUSTOM_MCP_PROTOCOL = flags.CUSTOM_MCP_PROTOCOL
|
||||
if (flags.HTTP_DENY_LIST) process.env.HTTP_DENY_LIST = flags.HTTP_DENY_LIST
|
||||
if (flags.TRUST_PROXY) process.env.TRUST_PROXY = flags.TRUST_PROXY
|
||||
}
|
||||
}
|
||||
|
||||
@@ -163,7 +163,19 @@ export class App {
|
||||
this.app.use(express.urlencoded({ limit: flowise_file_size_limit, extended: true }))
|
||||
|
||||
// Enhanced trust proxy settings for load balancer
|
||||
this.app.set('trust proxy', true) // Trust all proxies
|
||||
let trustProxy: string | boolean | number | undefined = process.env.TRUST_PROXY
|
||||
if (typeof trustProxy === 'undefined' || trustProxy.trim() === '' || trustProxy === 'true') {
|
||||
// Default to trust all proxies
|
||||
trustProxy = true
|
||||
} else if (trustProxy === 'false') {
|
||||
// Disable trust proxy
|
||||
trustProxy = false
|
||||
} else if (!isNaN(Number(trustProxy))) {
|
||||
// Number: Trust specific number of proxies
|
||||
trustProxy = Number(trustProxy)
|
||||
}
|
||||
|
||||
this.app.set('trust proxy', trustProxy)
|
||||
|
||||
// Allow access from specified domains
|
||||
this.app.use(cors(getCorsOptions()))
|
||||
|
||||
Reference in New Issue
Block a user