diff --git a/.changeset/curly-steaks-mate.md b/.changeset/curly-steaks-mate.md index 6f32f27a6d..1b41633659 100644 --- a/.changeset/curly-steaks-mate.md +++ b/.changeset/curly-steaks-mate.md @@ -1,7 +1,6 @@ --- '@backstage/backend-app-api': minor '@backstage/backend-common': minor -'@backstage/config-loader': minor --- Allow an additionalConfig to be provided to loadBackendConfig that fetches config values during runtime. diff --git a/packages/backend-app-api/src/config/config.ts b/packages/backend-app-api/src/config/config.ts index a2a6f8de9e..7367767870 100644 --- a/packages/backend-app-api/src/config/config.ts +++ b/packages/backend-app-api/src/config/config.ts @@ -94,8 +94,11 @@ export async function loadBackendConfig(options: { console.info( `Reloaded config from ${newConfigs.map(c => c.context).join(', ')}`, ); - - config.setConfig(ConfigReader.fromConfigs(newConfigs)); + const configsToMerge = [...newConfigs]; + if (options.additionalConfigs) { + configsToMerge.push(...options.additionalConfigs); + } + config.setConfig(ConfigReader.fromConfigs(configsToMerge)); }, stopSignal: new Promise(resolve => { if (currentCancelFunc) { @@ -115,10 +118,11 @@ export async function loadBackendConfig(options: { `Loaded config from ${appConfigs.map(c => c.context).join(', ')}`, ); + const finalAppConfigs = [...appConfigs]; if (options.additionalConfigs) { - appConfigs.push(...options.additionalConfigs); + finalAppConfigs.push(...options.additionalConfigs); } - config.setConfig(ConfigReader.fromConfigs(appConfigs)); + config.setConfig(ConfigReader.fromConfigs(finalAppConfigs)); return { config }; }