From 441c399f585c2d2ade09774915afb6c977f9f5d1 Mon Sep 17 00:00:00 2001 From: Thomas Heartman Date: Mon, 1 Jul 2024 11:20:22 +0200 Subject: [PATCH] feat: add environments to resource limit schema (#7495) This PR adds limits for environments to the resource limit schema. The actual limiting will have to be done in Enterprise, however, so this is just laying the groundwork. --- src/lib/__snapshots__/create-config.test.ts.snap | 1 + src/lib/create-config.ts | 4 ++++ src/lib/openapi/spec/resource-limits-schema.ts | 7 +++++++ 3 files changed, 12 insertions(+) diff --git a/src/lib/__snapshots__/create-config.test.ts.snap b/src/lib/__snapshots__/create-config.test.ts.snap index ed50e35aa9..9f62e87359 100644 --- a/src/lib/__snapshots__/create-config.test.ts.snap +++ b/src/lib/__snapshots__/create-config.test.ts.snap @@ -196,6 +196,7 @@ exports[`should create default config 1`] = ` "actionSetFilterValues": 25, "actionSetFilters": 5, "actionSetsPerProject": 5, + "environments": 50, "featureEnvironmentStrategies": 30, "segmentValues": 1000, "signalEndpoints": 5, diff --git a/src/lib/create-config.ts b/src/lib/create-config.ts index c589442b33..fd6c4ef3dc 100644 --- a/src/lib/create-config.ts +++ b/src/lib/create-config.ts @@ -653,6 +653,10 @@ export function createConfig(options: IUnleashOptions): IUnleashConfig { process.env.UNLEASH_FEATURE_ENVIRONMENT_STRATEGIES_LIMIT, 30, ), + environments: parseEnvVarNumber( + process.env.UNLEASH_ENVIRONMENTS_LIMIT, + 50, + ), }; return { diff --git a/src/lib/openapi/spec/resource-limits-schema.ts b/src/lib/openapi/spec/resource-limits-schema.ts index cfdc90a406..7280bb153f 100644 --- a/src/lib/openapi/spec/resource-limits-schema.ts +++ b/src/lib/openapi/spec/resource-limits-schema.ts @@ -14,6 +14,7 @@ export const resourceLimitsSchema = { 'signalEndpoints', 'signalTokensPerEndpoint', 'featureEnvironmentStrategies', + 'environments', ], additionalProperties: false, properties: { @@ -68,6 +69,12 @@ export const resourceLimitsSchema = { description: 'The maximum number of feature environment strategies allowed.', }, + environments: { + type: 'integer', + minimum: 1, + example: 50, + description: 'The maximum number active environments allowed.', + }, }, components: {}, } as const;