From 8ad8179b26504bf8d1233622857580fa43aedc30 Mon Sep 17 00:00:00 2001 From: Marcus Pohorely Date: Fri, 14 Feb 2025 11:42:33 +0100 Subject: [PATCH 1/2] allow more redis settings --- Client/src/Features/Settings/settingsSlice.js | 4 ++++ Server/db/models/AppSettings.js | 14 ++++++++++++++ Server/index.js | 13 ++++++++++++- Server/service/jobQueue.js | 13 ++++++++++++- Server/service/settingsService.js | 4 ++++ Server/validation/joi.js | 4 ++++ 6 files changed, 50 insertions(+), 2 deletions(-) diff --git a/Client/src/Features/Settings/settingsSlice.js b/Client/src/Features/Settings/settingsSlice.js index 283a8502d..f81404589 100644 --- a/Client/src/Features/Settings/settingsSlice.js +++ b/Client/src/Features/Settings/settingsSlice.js @@ -42,6 +42,10 @@ export const updateAppSettings = createAsyncThunk( dbConnectionString: settings.dbConnectionString, redisHost: settings.redisHost, redisPort: settings.redisPort, + redisUser: settings.redisUser, + redisPassword: settings.redisPassword, + redisDb: settings.redisDb, + redisPrefix: settings.redisPrefix, jwtTTL: settings.jwtTTL, pagespeedApiKey: settings.pagespeedApiKey, systemEmailHost: settings.systemEmailHost, diff --git a/Server/db/models/AppSettings.js b/Server/db/models/AppSettings.js index c4faa0881..8ebd468d9 100644 --- a/Server/db/models/AppSettings.js +++ b/Server/db/models/AppSettings.js @@ -46,6 +46,20 @@ const AppSettingsSchema = mongoose.Schema( type: Number, default: "6379", }, + redisUser: { + type: String, + }, + redisPassword: { + type: String, + }, + redisDb: { + type: Number, + default: 0 + }, + redisPrefix: { + type: String, + default: "", + }, jwtTTL: { type: String, required: true, diff --git a/Server/index.js b/Server/index.js index b1f3f914b..a04b9baed 100644 --- a/Server/index.js +++ b/Server/index.js @@ -108,10 +108,21 @@ const shutdown = async () => { const settings = ServiceRegistry.get(SettingsService.SERVICE_NAME).getSettings() || {}; - const { redisHost = "127.0.0.1", redisPort = 6379 } = settings; + const { + redisHost = "127.0.0.1", + redisPort = 6379, + redisUser = null, + redisPassword = null, + redisDb = 0, + redisPrefix = "" + } = settings; const redis = new IORedis({ host: redisHost, port: redisPort, + username: redisUser, + password: redisPassword, + db: redisDb, + keyPrefix: redisPrefix, }); logger.info({ message: "Flushing Redis" }); await redis.flushall(); diff --git a/Server/service/jobQueue.js b/Server/service/jobQueue.js index be36383d2..f34f1a045 100644 --- a/Server/service/jobQueue.js +++ b/Server/service/jobQueue.js @@ -28,10 +28,21 @@ class NewJobQueue { Worker ) { const settings = settingsService.getSettings() || {}; - const { redisHost = "127.0.0.1", redisPort = 6379 } = settings; + const { + redisHost = "127.0.0.1", + redisPort = 6379, + redisUser = null, + redisPassword = null, + redisDb = 0, + redisPrefix = "" + } = settings; const connection = { host: redisHost, port: redisPort, + username: redisUser, + password: redisPassword, + db: redisDb, + keyPrefix: redisPrefix, }; this.queues = {}; diff --git a/Server/service/settingsService.js b/Server/service/settingsService.js index 24931f6ce..75eb0fe00 100644 --- a/Server/service/settingsService.js +++ b/Server/service/settingsService.js @@ -11,6 +11,10 @@ const envConfig = { dbConnectionString: process.env.DB_CONNECTION_STRING, redisHost: process.env.REDIS_HOST, redisPort: process.env.REDIS_PORT, + redisUser = process.env.REDIS_USER, + redisPassword = process.env.REDIS_PASSWORD, + redisDb = process.env.REDIS_DB, + redisPrefix = process.env.REDIS_PREFIX, jwtTTL: process.env.TOKEN_TTL, refreshTokenTTL: process.env.REFRESH_TOKEN_TTL, pagespeedApiKey: process.env.PAGESPEED_API_KEY, diff --git a/Server/validation/joi.js b/Server/validation/joi.js index b60022fc5..0d70ffa83 100644 --- a/Server/validation/joi.js +++ b/Server/validation/joi.js @@ -408,6 +408,10 @@ const updateAppSettingsBodyValidation = joi.object({ dbConnectionString: joi.string().allow(""), redisHost: joi.string().allow(""), redisPort: joi.number().allow(null, ""), + redisUser: : joi.string().allow(null, ""), + redisPassword: : joi.string().allow(null, ""), + redisDb: : joi.number().allow(null, 0), + redisPrefix: joi.string().allow(""), jwtTTL: joi.string().allow(""), pagespeedApiKey: joi.string().allow(""), systemEmailHost: joi.string().allow(""), From 742fb09e867e59ea845afc2fb76ebc3377610d83 Mon Sep 17 00:00:00 2001 From: Marcus Pohorely Date: Fri, 14 Feb 2025 13:05:15 +0100 Subject: [PATCH 2/2] chore: missed --- Server/service/settingsService.js | 8 ++++---- Server/validation/joi.js | 6 +++--- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/Server/service/settingsService.js b/Server/service/settingsService.js index 75eb0fe00..4f804c586 100644 --- a/Server/service/settingsService.js +++ b/Server/service/settingsService.js @@ -11,10 +11,10 @@ const envConfig = { dbConnectionString: process.env.DB_CONNECTION_STRING, redisHost: process.env.REDIS_HOST, redisPort: process.env.REDIS_PORT, - redisUser = process.env.REDIS_USER, - redisPassword = process.env.REDIS_PASSWORD, - redisDb = process.env.REDIS_DB, - redisPrefix = process.env.REDIS_PREFIX, + redisUser: process.env.REDIS_USER, + redisPassword: process.env.REDIS_PASSWORD, + redisDb: process.env.REDIS_DB, + redisPrefix: process.env.REDIS_PREFIX, jwtTTL: process.env.TOKEN_TTL, refreshTokenTTL: process.env.REFRESH_TOKEN_TTL, pagespeedApiKey: process.env.PAGESPEED_API_KEY, diff --git a/Server/validation/joi.js b/Server/validation/joi.js index 0d70ffa83..65056f557 100644 --- a/Server/validation/joi.js +++ b/Server/validation/joi.js @@ -408,9 +408,9 @@ const updateAppSettingsBodyValidation = joi.object({ dbConnectionString: joi.string().allow(""), redisHost: joi.string().allow(""), redisPort: joi.number().allow(null, ""), - redisUser: : joi.string().allow(null, ""), - redisPassword: : joi.string().allow(null, ""), - redisDb: : joi.number().allow(null, 0), + redisUser: joi.string().allow(null, ""), + redisPassword: joi.string().allow(null, ""), + redisDb: joi.number().allow(null, 0), redisPrefix: joi.string().allow(""), jwtTTL: joi.string().allow(""), pagespeedApiKey: joi.string().allow(""),