From 946aa254489e41377e9085fbdbaec3b3e0d1e2c6 Mon Sep 17 00:00:00 2001 From: Quan HL Date: Wed, 7 Jun 2023 15:48:40 +0700 Subject: [PATCH 1/6] feat: sentinel configuration --- app.js | 30 ++++++++++++++++++++++++++++-- 1 file changed, 28 insertions(+), 2 deletions(-) diff --git a/app.js b/app.js index f0af701..7017026 100644 --- a/app.js +++ b/app.js @@ -3,12 +3,38 @@ assert.ok(process.env.JAMBONES_MYSQL_HOST && process.env.JAMBONES_MYSQL_USER && process.env.JAMBONES_MYSQL_PASSWORD && process.env.JAMBONES_MYSQL_DATABASE, 'missing JAMBONES_MYSQL_XXX env vars'); -assert.ok(process.env.JAMBONES_REDIS_HOST, 'missing JAMBONES_REDIS_HOST env var'); +if (process.env.JAMBONES_REDIS_SENTINELS) { + assert.ok(process.env.JAMBONES_REDIS_SENTINEL_MASTER_NAME, + 'missing JAMBONES_REDIS_SENTINEL_MASTER_NAME env var, JAMBONES_REDIS_SENTINEL_PASSWORD env var is optional'); +} else { + assert.ok(process.env.JAMBONES_REDIS_HOST, 'missing JAMBONES_REDIS_HOST env var'); +} assert.ok(process.env.DRACHTIO_HOST, 'missing DRACHTIO_HOST env var'); assert.ok(process.env.DRACHTIO_PORT, 'missing DRACHTIO_PORT env var'); assert.ok(process.env.DRACHTIO_SECRET, 'missing DRACHTIO_SECRET env var'); assert.ok(process.env.JAMBONES_TIME_SERIES_HOST, 'missing JAMBONES_TIME_SERIES_HOST env var'); +const JAMBONES_REDIS_SENTINELS = process.env.JAMBONES_REDIS_SENTINELS ? { + sentinels: process.env.JAMBONES_REDIS_SENTINELS.split(',').map((sentinel) => { + let host, port = 26379; + if (sentinel.includes(':')) { + const arr = sentinel.split(':'); + host = arr[0]; + port = parseInt(arr[1], 10); + } else { + host = sentinel; + } + return {host, port}; + }), + name: process.env.JAMBONES_REDIS_SENTINEL_MASTER_NAME, + ...(process.env.JAMBONES_REDIS_SENTINEL_PASSWORD && { + password: process.env.JAMBONES_REDIS_SENTINEL_PASSWORD + }), + ...(process.env.JAMBONES_REDIS_SENTINEL_USERNAME && { + username: process.env.JAMBONES_REDIS_SENTINEL_USERNAME + }) +} : null; + const logger = require('pino')({ level: process.env.JAMBONES_LOGLEVEL || 'info' }); const Srf = require('drachtio-srf'); const srf = new Srf(); @@ -54,7 +80,7 @@ const { removeFromSet, isMemberOfSet, retrieveSet -} = require('@jambonz/realtimedb-helpers')({ +} = require('@jambonz/realtimedb-helpers')(JAMBONES_REDIS_SENTINELS ?? { host: process.env.JAMBONES_REDIS_HOST, port: process.env.JAMBONES_REDIS_PORT || 6379 }, logger); From 8244288585a49e64e6cff2bd2e6c7a6457ffea96 Mon Sep 17 00:00:00 2001 From: Quan HL Date: Wed, 7 Jun 2023 16:03:37 +0700 Subject: [PATCH 2/6] feat: sentinel configuration --- app.js | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/app.js b/app.js index 7017026..fefc854 100644 --- a/app.js +++ b/app.js @@ -73,6 +73,7 @@ const { }); const { + client, addKey, addKeyNx, retrieveKey, @@ -92,10 +93,7 @@ srf.locals = { logger, stats, addToSet, removeFromSet, isMemberOfSet, retrieveSet, - registrar: new Registrar(logger, { - host: process.env.JAMBONES_REDIS_HOST, - port: process.env.JAMBONES_REDIS_PORT || 6379 - }), + registrar: new Registrar(logger, client), dbHelpers: { lookupAuthHook, lookupAllVoipCarriers, From 34575edf4c7ca1d2295efdd0ac3e79b4387e48df Mon Sep 17 00:00:00 2001 From: Quan HL Date: Wed, 7 Jun 2023 16:06:05 +0700 Subject: [PATCH 3/6] feat: sentinel configuration --- app.js | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/app.js b/app.js index fefc854..211b037 100644 --- a/app.js +++ b/app.js @@ -93,7 +93,10 @@ srf.locals = { logger, stats, addToSet, removeFromSet, isMemberOfSet, retrieveSet, - registrar: new Registrar(logger, client), + registrar: new Registrar(logger, JAMBONES_REDIS_SENTINELS ?? { + host: process.env.JAMBONES_REDIS_HOST, + port: process.env.JAMBONES_REDIS_PORT || 6379 + }), dbHelpers: { lookupAuthHook, lookupAllVoipCarriers, From d1e46a805a54ec63d091df2a8fb9e84a62d1bf8c Mon Sep 17 00:00:00 2001 From: Quan HL Date: Wed, 7 Jun 2023 16:39:40 +0700 Subject: [PATCH 4/6] feat: sentinel configuration --- app.js | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/app.js b/app.js index 211b037..fefc854 100644 --- a/app.js +++ b/app.js @@ -93,10 +93,7 @@ srf.locals = { logger, stats, addToSet, removeFromSet, isMemberOfSet, retrieveSet, - registrar: new Registrar(logger, JAMBONES_REDIS_SENTINELS ?? { - host: process.env.JAMBONES_REDIS_HOST, - port: process.env.JAMBONES_REDIS_PORT || 6379 - }), + registrar: new Registrar(logger, client), dbHelpers: { lookupAuthHook, lookupAllVoipCarriers, From 01783deca18816e79a4ce37bcd06f98e2111fc73 Mon Sep 17 00:00:00 2001 From: Quan HL Date: Wed, 7 Jun 2023 20:29:58 +0700 Subject: [PATCH 5/6] update mw-registra --- package-lock.json | 54 +++++------------------------------------------ package.json | 2 +- 2 files changed, 6 insertions(+), 50 deletions(-) diff --git a/package-lock.json b/package-lock.json index 2571bf7..ef4d91f 100644 --- a/package-lock.json +++ b/package-lock.json @@ -11,7 +11,7 @@ "dependencies": { "@jambonz/db-helpers": "^0.9.0", "@jambonz/http-authenticator": "^0.2.2", - "@jambonz/mw-registrar": "^0.2.3", + "@jambonz/mw-registrar": "^0.2.4", "@jambonz/realtimedb-helpers": "^0.8.1", "@jambonz/stats-collector": "^0.1.8", "@jambonz/time-series": "^0.2.5", @@ -653,24 +653,11 @@ } }, "node_modules/@jambonz/mw-registrar": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/@jambonz/mw-registrar/-/mw-registrar-0.2.3.tgz", - "integrity": "sha512-M8jwV1uVrzumrmcHz0s82B6mrRnh4ODN66nT7wcgFk3EKRJTEsylMG7KmtnurHP1eWkeBbnVUDg6qC6iJqctuw==", + "version": "0.2.4", + "resolved": "https://registry.npmjs.org/@jambonz/mw-registrar/-/mw-registrar-0.2.4.tgz", + "integrity": "sha512-GHRlvHsDvwfQfqOUKh4Emt+CvoiODQ+Tny5zg8ZT5q5yz77qy3XIfOF072xO9gDSPrXjn0rH13W3iIKtNzcOIA==", "dependencies": { - "@jambonz/promisify-redis": "^0.0.6", - "debug": "^4.3.1", - "redis": "^3.1.1" - } - }, - "node_modules/@jambonz/promisify-redis": { - "version": "0.0.6", - "resolved": "https://registry.npmjs.org/@jambonz/promisify-redis/-/promisify-redis-0.0.6.tgz", - "integrity": "sha512-9KmWV+ODDOPwdqijhgXOXkloGNm7nmCf3ch4D1vN46lh9FQLmnlQmEmBHIFaKB3vAgIgcMzNzcNmY23JGCGguA==", - "dependencies": { - "redis-commands": "^1.6.0" - }, - "peerDependencies": { - "redis": "^3.0.0" + "debug": "^4.3.1" } }, "node_modules/@jambonz/realtimedb-helpers": { @@ -3615,29 +3602,6 @@ "resolved": "https://registry.npmjs.org/quick-format-unescaped/-/quick-format-unescaped-4.0.4.tgz", "integrity": "sha512-tYC1Q1hgyRuHgloV/YXs2w15unPVh8qfu/qCTfhTYamaw7fyhumKa2yGpdSo87vY32rIclj+4fWYQXUMs9EHvg==" }, - "node_modules/redis": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/redis/-/redis-3.1.2.tgz", - "integrity": "sha512-grn5KoZLr/qrRQVwoSkmzdbw6pwF+/rwODtrOr6vuBRiR/f3rjSTGupbF90Zpqm2oenix8Do6RV7pYEkGwlKkw==", - "dependencies": { - "denque": "^1.5.0", - "redis-commands": "^1.7.0", - "redis-errors": "^1.2.0", - "redis-parser": "^3.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/node-redis" - } - }, - "node_modules/redis-commands": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/redis-commands/-/redis-commands-1.7.0.tgz", - "integrity": "sha512-nJWqw3bTFy21hX/CPKHth6sfhZbdiHP6bTawSgQBlKOVRG7EZkfHbbHwQJnrE4vsQf0CMNE+3gJ4Fmm16vdVlQ==" - }, "node_modules/redis-errors": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/redis-errors/-/redis-errors-1.2.0.tgz", @@ -3657,14 +3621,6 @@ "node": ">=4" } }, - "node_modules/redis/node_modules/denque": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/denque/-/denque-1.5.1.tgz", - "integrity": "sha512-XwE+iZ4D6ZUB7mfYRMb5wByE8L74HCn30FBN7sWnXksWc1LO1bPDl67pBR9o/kC4z/xSNAwkMYcGgqDV3BE3Hw==", - "engines": { - "node": ">=0.10" - } - }, "node_modules/regexp.prototype.flags": { "version": "1.4.3", "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.4.3.tgz", diff --git a/package.json b/package.json index 25d45d2..bd40988 100644 --- a/package.json +++ b/package.json @@ -29,7 +29,7 @@ "dependencies": { "@jambonz/db-helpers": "^0.9.0", "@jambonz/http-authenticator": "^0.2.2", - "@jambonz/mw-registrar": "^0.2.3", + "@jambonz/mw-registrar": "^0.2.4", "@jambonz/realtimedb-helpers": "^0.8.1", "@jambonz/stats-collector": "^0.1.8", "@jambonz/time-series": "^0.2.5", From 2e84efb6ad311839b8d26e1e50f70f47007e2e3e Mon Sep 17 00:00:00 2001 From: Quan HL Date: Wed, 7 Jun 2023 21:16:29 +0700 Subject: [PATCH 6/6] update review comment --- app.js | 2 +- package-lock.json | 8 ++++---- package.json | 2 +- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/app.js b/app.js index fefc854..d075f80 100644 --- a/app.js +++ b/app.js @@ -81,7 +81,7 @@ const { removeFromSet, isMemberOfSet, retrieveSet -} = require('@jambonz/realtimedb-helpers')(JAMBONES_REDIS_SENTINELS ?? { +} = require('@jambonz/realtimedb-helpers')(JAMBONES_REDIS_SENTINELS || { host: process.env.JAMBONES_REDIS_HOST, port: process.env.JAMBONES_REDIS_PORT || 6379 }, logger); diff --git a/package-lock.json b/package-lock.json index ef4d91f..a75daf0 100644 --- a/package-lock.json +++ b/package-lock.json @@ -12,7 +12,7 @@ "@jambonz/db-helpers": "^0.9.0", "@jambonz/http-authenticator": "^0.2.2", "@jambonz/mw-registrar": "^0.2.4", - "@jambonz/realtimedb-helpers": "^0.8.1", + "@jambonz/realtimedb-helpers": "^0.8.6", "@jambonz/stats-collector": "^0.1.8", "@jambonz/time-series": "^0.2.5", "debug": "^4.3.4", @@ -661,9 +661,9 @@ } }, "node_modules/@jambonz/realtimedb-helpers": { - "version": "0.8.1", - "resolved": "https://registry.npmjs.org/@jambonz/realtimedb-helpers/-/realtimedb-helpers-0.8.1.tgz", - "integrity": "sha512-SkF5+raJdSfzAdg82jvbQp11ioXrt1Dn456Urf/01y/Zp8jbAZKbiztxoh13lZ5Dvo6XjOuWNJVZQIIYVy0+aA==", + "version": "0.8.6", + "resolved": "https://registry.npmjs.org/@jambonz/realtimedb-helpers/-/realtimedb-helpers-0.8.6.tgz", + "integrity": "sha512-ODKVVat2VAQheY13DjiAxiBBOmffMoeu3xviTjsTODr3ySZkqQZvSWU7N80pAIZvoiWG1UUEy9yI8D8mE4Jgiw==", "dependencies": { "debug": "^4.3.4", "ioredis": "^5.3.2" diff --git a/package.json b/package.json index bd40988..447238d 100644 --- a/package.json +++ b/package.json @@ -30,7 +30,7 @@ "@jambonz/db-helpers": "^0.9.0", "@jambonz/http-authenticator": "^0.2.2", "@jambonz/mw-registrar": "^0.2.4", - "@jambonz/realtimedb-helpers": "^0.8.1", + "@jambonz/realtimedb-helpers": "^0.8.6", "@jambonz/stats-collector": "^0.1.8", "@jambonz/time-series": "^0.2.5", "debug": "^4.3.4",