From 8d141c098788eb01f370552a6e37c861783d92a9 Mon Sep 17 00:00:00 2001 From: Carlos Antonio da Silva Date: Mon, 2 Feb 2026 15:46:25 -0300 Subject: [PATCH] Add support to JUDOSCALE_CONTAINER ENV var for custom containers With this, it will be possible to provide a `JUDOSCALE_CONTAINER` env var to setup the runtime container when using custom setups, or to override the default logic for a platform in case it's necessary. --- packages/node-core/src/config.js | 4 +++- packages/node-core/test/config.test.js | 13 +++++++++++++ 2 files changed, 16 insertions(+), 1 deletion(-) diff --git a/packages/node-core/src/config.js b/packages/node-core/src/config.js index c0b0b3a..f4c02d7 100644 --- a/packages/node-core/src/config.js +++ b/packages/node-core/src/config.js @@ -14,7 +14,9 @@ function getDefaultOptions() { let apiBaseUrl = process.env.JUDOSCALE_URL let containerID - if (process.env.DYNO) { + if (process.env.JUDOSCALE_CONTAINER) { + containerID = process.env.JUDOSCALE_CONTAINER + } else if (process.env.DYNO) { containerID = process.env.DYNO } else if (process.env.RENDER_INSTANCE_ID) { apiBaseUrl ||= `https://adapter.judoscale.com/api/${process.env.RENDER_SERVICE_ID}` diff --git a/packages/node-core/test/config.test.js b/packages/node-core/test/config.test.js index 8515e09..6f59553 100644 --- a/packages/node-core/test/config.test.js +++ b/packages/node-core/test/config.test.js @@ -6,6 +6,7 @@ describe('Config', () => { beforeEach(() => { delete process.env.JUDOSCALE_URL delete process.env.JUDOSCALE_LOG_LEVEL + delete process.env.JUDOSCALE_CONTAINER delete process.env.DYNO delete process.env.RENDER_INSTANCE_ID delete process.env.RENDER_SERVICE_ID @@ -67,6 +68,18 @@ describe('Config', () => { expect(new Config()).toHaveProperty('container', 'random-replica-uuid') }) + test('has container property via JUDOSCALE_CONTAINER', () => { + process.env.JUDOSCALE_CONTAINER = 'custom-container-id' + expect(new Config()).toHaveProperty('container', 'custom-container-id') + }) + + test('JUDOSCALE_CONTAINER takes priority over platform-specific env vars', () => { + process.env.JUDOSCALE_CONTAINER = 'custom-container-id' + process.env.DYNO = 'web.123' + process.env.FLY_MACHINE_ID = 'fly-machine-id' + expect(new Config()).toHaveProperty('container', 'custom-container-id') + }) + test('has version property', () => { expect(new Config().version).toMatch(/\d+\.\d+\.\d+/) })