From 2e0b2191c05781b6f372540bc83bb6e27fadb3d8 Mon Sep 17 00:00:00 2001 From: Ali BARIN Date: Mon, 28 Nov 2022 01:56:50 +0100 Subject: [PATCH] feat: accept username, password, tls for redis configuration --- packages/backend/.env-example | 3 +++ packages/backend/src/config/app.ts | 10 ++++++++-- packages/backend/src/config/redis.ts | 17 ++++++++++++++++- packages/docs/pages/advanced/configuration.md | 3 +++ 4 files changed, 30 insertions(+), 3 deletions(-) diff --git a/packages/backend/.env-example b/packages/backend/.env-example index e86e6ebf..53505520 100644 --- a/packages/backend/.env-example +++ b/packages/backend/.env-example @@ -13,5 +13,8 @@ ENCRYPTION_KEY=sample-encryption-key APP_SECRET_KEY=sample-app-secret-key REDIS_PORT=6379 REDIS_HOST=127.0.0.1 +REDIS_USERNAME=redis_username +REDIS_PASSWORD=redis_password +REDIS_TLS=true ENABLE_BULLMQ_DASHBOARD=false SERVE_WEB_APP_SEPARATELY=true diff --git a/packages/backend/src/config/app.ts b/packages/backend/src/config/app.ts index 2b8ef999..6d41956b 100644 --- a/packages/backend/src/config/app.ts +++ b/packages/backend/src/config/app.ts @@ -21,6 +21,9 @@ type AppConfig = { serveWebAppSeparately: boolean; redisHost: string; redisPort: number; + redisUsername: string; + redisPassword: string; + redisTls: boolean; enableBullMQDashboard: boolean; bullMQDashboardUsername: string; bullMQDashboardPassword: string; @@ -55,14 +58,17 @@ const appConfig: AppConfig = { postgresUsername: process.env.POSTGRES_USERNAME || 'automatisch_development_user', postgresPassword: process.env.POSTGRES_PASSWORD, - postgresEnableSsl: process.env.POSTGRES_ENABLE_SSL === 'true' ? true : false, + postgresEnableSsl: process.env.POSTGRES_ENABLE_SSL === 'true', encryptionKey: process.env.ENCRYPTION_KEY || '', appSecretKey: process.env.APP_SECRET_KEY || '', serveWebAppSeparately, redisHost: process.env.REDIS_HOST || '127.0.0.1', redisPort: parseInt(process.env.REDIS_PORT || '6379'), + redisUsername: process.env.REDIS_USERNAME, + redisPassword: process.env.REDIS_PASSWORD, + redisTls: process.env.REDIS_TLS === 'true', enableBullMQDashboard: - process.env.ENABLE_BULLMQ_DASHBOARD === 'true' ? true : false, + process.env.ENABLE_BULLMQ_DASHBOARD === 'true', bullMQDashboardUsername: process.env.BULLMQ_DASHBOARD_USERNAME, bullMQDashboardPassword: process.env.BULLMQ_DASHBOARD_PASSWORD, baseUrl, diff --git a/packages/backend/src/config/redis.ts b/packages/backend/src/config/redis.ts index dd816d0f..fedb5be0 100644 --- a/packages/backend/src/config/redis.ts +++ b/packages/backend/src/config/redis.ts @@ -1,9 +1,24 @@ import appConfig from './app'; -const redisConfig = { +type TRedisConfig = { + host: string, + port: number, + username?: string, + password?: string, + tls?: Record, + enableOfflineQueue: boolean, +} + +const redisConfig: TRedisConfig = { host: appConfig.redisHost, port: appConfig.redisPort, + username: appConfig.redisUsername, + password: appConfig.redisPassword, enableOfflineQueue: false, }; +if (appConfig.redisTls) { + redisConfig.tls = {}; +} + export default redisConfig; diff --git a/packages/docs/pages/advanced/configuration.md b/packages/docs/pages/advanced/configuration.md index 592ee31f..88d90ba1 100644 --- a/packages/docs/pages/advanced/configuration.md +++ b/packages/docs/pages/advanced/configuration.md @@ -29,6 +29,9 @@ Please be careful with the `ENCRYPTION_KEY` environment variable. It is used to | `APP_SECRET_KEY` | string | | Secret Key to authenticate the user | | `REDIS_HOST` | string | `redis` | Redis Host | | `REDIS_PORT` | number | `6379` | Redis Port | +| `REDIS_USERNAME` | string | `` | Redis Username | +| `REDIS_PASSWORD` | string | `` | Redis Password | +| `REDIS_TLS` | boolean | `false` | Redis TLS | | `TELEMETRY_ENABLED` | boolean | `true` | Enable/Disable Telemetry | | `ENABLE_BULLMQ_DASHBOARD` | boolean | `false` | Enable BullMQ Dashboard | | `BULLMQ_DASHBOARD_USERNAME` | string | | Username to login BullMQ Dashboard |