From b3a705f3cd1749b6b7e80397a79c2155976834a4 Mon Sep 17 00:00:00 2001 From: aramissennyeydd Date: Tue, 10 Jun 2025 11:53:15 -0400 Subject: [PATCH] allow x-2 in config Signed-off-by: aramissennyeydd --- packages/config-loader/src/sources/EnvConfigSource.ts | 2 +- packages/config/src/reader.test.ts | 1 + packages/config/src/reader.ts | 2 +- 3 files changed, 3 insertions(+), 2 deletions(-) diff --git a/packages/config-loader/src/sources/EnvConfigSource.ts b/packages/config-loader/src/sources/EnvConfigSource.ts index 88d7d8e772..d724f00c6d 100644 --- a/packages/config-loader/src/sources/EnvConfigSource.ts +++ b/packages/config-loader/src/sources/EnvConfigSource.ts @@ -85,7 +85,7 @@ export class EnvConfigSource implements ConfigSource { const ENV_PREFIX = 'APP_CONFIG_'; // Update the same pattern in config package if this is changed -const CONFIG_KEY_PART_PATTERN = /^[\w-_]+$/i; +const CONFIG_KEY_PART_PATTERN = /^[a-z][a-z0-9]*(?:[-_][a-z0-9]+)*$/i; /** * Read runtime configuration from the environment. diff --git a/packages/config/src/reader.test.ts b/packages/config/src/reader.test.ts index 97982ac265..3f6b9ac40a 100644 --- a/packages/config/src/reader.test.ts +++ b/packages/config/src/reader.test.ts @@ -171,6 +171,7 @@ describe('ConfigReader', () => { expect(config.getOptionalString('x_x')).toBeUndefined(); expect(config.getOptionalString('x-X')).toBeUndefined(); expect(config.getOptionalString('x0')).toBeUndefined(); + expect(config.getOptionalString('x-2')).toBeUndefined(); expect(config.getOptionalString('X-x2')).toBeUndefined(); expect(config.getOptionalString('x0_x0')).toBeUndefined(); expect(config.getOptionalString('x_x-x_x')).toBeUndefined(); diff --git a/packages/config/src/reader.ts b/packages/config/src/reader.ts index d865ba8172..2e83de9bf2 100644 --- a/packages/config/src/reader.ts +++ b/packages/config/src/reader.ts @@ -18,7 +18,7 @@ import { JsonValue, JsonObject } from '@backstage/types'; import { AppConfig, Config } from './types'; // Update the same pattern in config-loader package if this is changed -const CONFIG_KEY_PART_PATTERN = /^[\w-_]+$/i; +const CONFIG_KEY_PART_PATTERN = /^[a-z][a-z0-9]*(?:[-_][a-z0-9]+)*$/i; function isObject(value: JsonValue | undefined): value is JsonObject { return typeof value === 'object' && value !== null && !Array.isArray(value);