1
0
mirror of https://github.com/Unleash/unleash.git synced 2025-01-25 00:07:47 +01:00

chore: allow you to use the options object to override *all* the new resource limits (#7938)

This allows us to use different limits for enterprise self-hosted and
hosted
This commit is contained in:
Thomas Heartman 2024-08-21 08:59:19 +02:00 committed by GitHub
parent 40b06dabb6
commit 3cd312f9a9
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 36 additions and 11 deletions

View File

@ -657,41 +657,56 @@ export function createConfig(options: IUnleashOptions): IUnleashConfig {
1, 1,
parseEnvVarNumber( parseEnvVarNumber(
process.env.UNLEASH_FEATURE_ENVIRONMENT_STRATEGIES_LIMIT, process.env.UNLEASH_FEATURE_ENVIRONMENT_STRATEGIES_LIMIT,
30, options?.resourceLimits?.featureEnvironmentStrategies ?? 30,
), ),
), ),
constraintValues: Math.max( constraintValues: Math.max(
1, 1,
parseEnvVarNumber( parseEnvVarNumber(
process.env.UNLEASH_CONSTRAINT_VALUES_LIMIT, process.env.UNLEASH_CONSTRAINT_VALUES_LIMIT,
options?.resourceLimits?.constraintValues || 250, options?.resourceLimits?.constraintValues ?? 250,
), ),
), ),
constraints: Math.max( constraints: Math.max(
0, 0,
parseEnvVarNumber(process.env.UNLEASH_CONSTRAINTS_LIMIT, 30), parseEnvVarNumber(
process.env.UNLEASH_CONSTRAINTS_LIMIT,
options?.resourceLimits?.constraints ?? 30,
),
), ),
environments: parseEnvVarNumber( environments: Math.max(
process.env.UNLEASH_ENVIRONMENTS_LIMIT, 1,
50, parseEnvVarNumber(
process.env.UNLEASH_ENVIRONMENTS_LIMIT,
options?.resourceLimits?.environments ?? 50,
),
), ),
projects: Math.max( projects: Math.max(
1, 1,
parseEnvVarNumber(process.env.UNLEASH_PROJECTS_LIMIT, 500), parseEnvVarNumber(
process.env.UNLEASH_PROJECTS_LIMIT,
options?.resourceLimits?.projects ?? 500,
),
), ),
apiTokens: Math.max( apiTokens: Math.max(
0, 0,
parseEnvVarNumber(process.env.UNLEASH_API_TOKENS_LIMIT, 2000), parseEnvVarNumber(
process.env.UNLEASH_API_TOKENS_LIMIT,
options?.resourceLimits?.apiTokens ?? 2000,
),
), ),
segments: Math.max( segments: Math.max(
0, 0,
parseEnvVarNumber(process.env.UNLEASH_SEGMENTS_LIMIT, 300), parseEnvVarNumber(
process.env.UNLEASH_SEGMENTS_LIMIT,
options?.resourceLimits?.segments ?? 300,
),
), ),
featureFlags: Math.max( featureFlags: Math.max(
1, 1,
parseEnvVarNumber( parseEnvVarNumber(
process.env.UNLEASH_FEATURE_FLAGS_LIMIT, process.env.UNLEASH_FEATURE_FLAGS_LIMIT,
options?.resourceLimits?.featureFlags || 5000, options?.resourceLimits?.featureFlags ?? 5000,
), ),
), ),
}; };

View File

@ -144,7 +144,17 @@ export interface IUnleashOptions {
dailyMetricsStorageDays?: number; dailyMetricsStorageDays?: number;
rateLimiting?: Partial<IRateLimiting>; rateLimiting?: Partial<IRateLimiting>;
resourceLimits?: Partial< resourceLimits?: Partial<
Pick<ResourceLimitsSchema, 'constraintValues' | 'featureFlags'> Pick<
ResourceLimitsSchema,
| 'apiTokens'
| 'constraintValues'
| 'constraints'
| 'environments'
| 'featureEnvironmentStrategies'
| 'featureFlags'
| 'projects'
| 'segments'
>
>; >;
} }