From ce9b9ad8ca2b2db423601a50ad977b11f015ab41 Mon Sep 17 00:00:00 2001 From: Henry Date: Thu, 21 Sep 2023 21:54:03 +0100 Subject: [PATCH] add env variable to start.ts --- packages/server/src/commands/start.ts | 2 ++ packages/server/src/utils/rateLimit.ts | 14 +++++++++----- 2 files changed, 11 insertions(+), 5 deletions(-) diff --git a/packages/server/src/commands/start.ts b/packages/server/src/commands/start.ts index b9ea970d551..6bf7d6993b4 100644 --- a/packages/server/src/commands/start.ts +++ b/packages/server/src/commands/start.ts @@ -27,6 +27,7 @@ export default class Start extends Command { LOG_LEVEL: Flags.string(), TOOL_FUNCTION_BUILTIN_DEP: Flags.string(), TOOL_FUNCTION_EXTERNAL_DEP: Flags.string(), + NUMBER_OF_PROXIES: Flags.string(), DATABASE_TYPE: Flags.string(), DATABASE_PATH: Flags.string(), DATABASE_PORT: Flags.string(), @@ -72,6 +73,7 @@ export default class Start extends Command { if (flags.PORT) process.env.PORT = flags.PORT if (flags.DEBUG) process.env.DEBUG = flags.DEBUG + if (flags.NUMBER_OF_PROXIES) process.env.NUMBER_OF_PROXIES = flags.NUMBER_OF_PROXIES // Authorization if (flags.FLOWISE_USERNAME) process.env.FLOWISE_USERNAME = flags.FLOWISE_USERNAME diff --git a/packages/server/src/utils/rateLimit.ts b/packages/server/src/utils/rateLimit.ts index b1cd1819dce..68b5b693b3a 100644 --- a/packages/server/src/utils/rateLimit.ts +++ b/packages/server/src/utils/rateLimit.ts @@ -12,7 +12,7 @@ async function addRateLimiter(id: string, duration: number, limit: number, messa rateLimiters[id] = rateLimit({ windowMs: duration * 1000, max: limit, - handler: (req, res) => { + handler: (_, res) => { res.status(429).send(message) } }) @@ -33,15 +33,19 @@ export function getRateLimiter(req: Request, res: Response, next: NextFunction) export async function createRateLimiter(chatFlow: IChatFlow) { if (!chatFlow.apiConfig) return - const apiConfig: any = JSON.parse(chatFlow.apiConfig) + const apiConfig = JSON.parse(chatFlow.apiConfig) + const rateLimit: { limitDuration: number; limitMax: number; limitMsg: string } = apiConfig.rateLimit if (!rateLimit) return + const { limitDuration, limitMax, limitMsg } = rateLimit if (limitMax && limitDuration && limitMsg) await addRateLimiter(chatFlow.id, limitDuration, limitMax, limitMsg) } export async function initializeRateLimiter(chatFlowPool: IChatFlow[]) { - await chatFlowPool.map(async (chatFlow) => { - await createRateLimiter(chatFlow) - }) + await Promise.all( + chatFlowPool.map(async (chatFlow) => { + await createRateLimiter(chatFlow) + }) + ) }