From 4ba0e97b95713a2c34fb77f8cb3a32e46d762a80 Mon Sep 17 00:00:00 2001 From: Brian Gough Date: Wed, 9 Apr 2025 13:51:55 +0100 Subject: [PATCH] Merge pull request #24749 from overleaf/bg-history-redis-buffer add history redis to history-v1 GitOrigin-RevId: 70dc1aee809ad17902c93c020f3804c0f1429238 --- .../config/custom-environment-variables.json | 10 +++++++++ services/history-v1/storage/scripts/redis.mjs | 21 +++++++++++++++++-- 2 files changed, 29 insertions(+), 2 deletions(-) diff --git a/services/history-v1/config/custom-environment-variables.json b/services/history-v1/config/custom-environment-variables.json index daf804251c..d07ae2925a 100644 --- a/services/history-v1/config/custom-environment-variables.json +++ b/services/history-v1/config/custom-environment-variables.json @@ -89,6 +89,16 @@ "host": "QUEUES_REDIS_HOST", "password": "QUEUES_REDIS_PASSWORD", "port": "QUEUES_REDIS_PORT" + }, + "history": { + "host": "HISTORY_REDIS_HOST", + "password": "HISTORY_REDIS_PASSWORD", + "port": "HISTORY_REDIS_PORT" + }, + "lock": { + "host": "REDIS_HOST", + "password": "REDIS_PASSWORD", + "port": "REDIS_PORT" } } } diff --git a/services/history-v1/storage/scripts/redis.mjs b/services/history-v1/storage/scripts/redis.mjs index bf46452ba4..ce9a39891f 100644 --- a/services/history-v1/storage/scripts/redis.mjs +++ b/services/history-v1/storage/scripts/redis.mjs @@ -1,11 +1,28 @@ import redis from '@overleaf/redis-wrapper' import config from 'config' -const redisOptions = config.get('redis.queue') +// Get allowed Redis dbs from config +const redisConfig = config.get('redis') +const allowedDbs = Object.keys(redisConfig) +// Get the Redis db from command line argument or use the first available db as default +const db = process.argv[2] + +// Validate redis db +if (!allowedDbs.includes(db)) { + if (db) { + console.error('Invalid redis db:', db) + } + console.error(`Usage: node redis.mjs [${allowedDbs.join('|')}]`) + process.exit(1) +} + +// Get redis options based on command line argument +const redisOptions = config.get(`redis.${db}`) +console.log('Using redis db:', db) console.log('REDIS CONFIG', { ...redisOptions, - password: '*'.repeat(redisOptions.password.length), + password: '*'.repeat(redisOptions.password?.length), }) const rclient = redis.createClient(redisOptions)