From 1e7070443decf3004eaec10c8ba30e8fa15fd591 Mon Sep 17 00:00:00 2001 From: Praveen Ranjan Keshri Date: Wed, 8 Dec 2021 00:21:53 +0530 Subject: [PATCH] Fixes post review by Rugvip: 1. Ensuring that reloadIntervals, if present, is a valid positive number 2. Remote config error message fix 3. Removed remote config from example backend 4. Lessened the writing.md 5. Multiple changesets Signed-off-by: Praveen Ranjan Keshri --- .changeset/brave-impalas-switch.md | 2 -- .changeset/cuddly-cooks-enjoy.md | 5 +++++ docs/conf/writing.md | 23 ++++------------------- packages/backend/src/index.ts | 3 --- packages/config-loader/src/loader.ts | 6 +++--- 5 files changed, 12 insertions(+), 27 deletions(-) create mode 100644 .changeset/cuddly-cooks-enjoy.md diff --git a/.changeset/brave-impalas-switch.md b/.changeset/brave-impalas-switch.md index 058e2dbf8d389..de7e2ee528b65 100644 --- a/.changeset/brave-impalas-switch.md +++ b/.changeset/brave-impalas-switch.md @@ -1,7 +1,5 @@ --- -'example-backend': patch '@backstage/backend-common': patch -'@backstage/config-loader': patch --- Fixed bug in backend-common to allow passing of remote option in order to enable passing remote url in --config option. The remote option should be passed along with reloadIntervalSeconds from packages/backend/src/index.ts (Updated the file as well) diff --git a/.changeset/cuddly-cooks-enjoy.md b/.changeset/cuddly-cooks-enjoy.md new file mode 100644 index 0000000000000..d39844e7a9fe1 --- /dev/null +++ b/.changeset/cuddly-cooks-enjoy.md @@ -0,0 +1,5 @@ +--- +'@backstage/config-loader': patch +--- + +In case remote.reloadIntervalSeconds is passed, it must be a valid positive value diff --git a/docs/conf/writing.md b/docs/conf/writing.md index afd86955fa7b7..a4da1e3df0fcc 100644 --- a/docs/conf/writing.md +++ b/docs/conf/writing.md @@ -75,25 +75,10 @@ files. Paths are relative to the working directory of the executed process, for example `package/backend`. This means that to select a config file in the repo root when running the backend, you would use `--config ../../my-config.yaml`, and for config file on a config server you would use -`--config https://some.domain.io/app-config.yaml`
- -**\*Note**: In order to use remote urls, ensure that the option 'remote' is -passed in `loadBackendConfig(...)` call (See below) inside -`packages/backend/src/index.ts`, with the option of -reloadIntervalSeconds(required) as given below. This will allow the usage of -remote configs and also, will ensure that this config is checked for any changes -every 12 hours. (This can be any desired value in seconds, here 60 _ 60 _ 12 = -12 hours!): - -```ts -const config = await loadBackendConfig({ - argv: process.argv, - logger, - remote: { - reloadIntervalSeconds: 60 * 60 * 12, // Check remote config changes every 12 hours. Change to your desired interval in seconds - }, -}); -``` +`--config https://some.domain.io/app-config.yaml` + +**Note**: In case URLs are passed, it is also needed to set the remote option in +the loadBackendConfig call. If no `config` flags are specified, the default behavior is to load `app-config.yaml` and, if it exists, `app-config.local.yaml` from the repo root. diff --git a/packages/backend/src/index.ts b/packages/backend/src/index.ts index e3c15b95b601d..7a79c278ff33b 100644 --- a/packages/backend/src/index.ts +++ b/packages/backend/src/index.ts @@ -88,9 +88,6 @@ async function main() { const config = await loadBackendConfig({ argv: process.argv, logger, - remote: { - reloadIntervalSeconds: 60 * 60 * 12, // Check remote config changes every 12 hours. Change to your desired interval in seconds - }, }); const createEnv = makeCreateEnv(config); diff --git a/packages/config-loader/src/loader.ts b/packages/config-loader/src/loader.ts index 388017318fe24..e7aa3d4c10156 100644 --- a/packages/config-loader/src/loader.ts +++ b/packages/config-loader/src/loader.ts @@ -129,12 +129,12 @@ export async function loadConfig( if (remote === undefined) { if (configUrls.length > 0) { throw new Error( - `Remote config detected but this feature is turned off. Please enable by passing remote option in loadBackendConfig() call inside packages/backend/src/index.ts. See https://backstage.io/docs/conf/writing#configuration-files for detailed info.`, + `Please make sure you are passing the remote option when loading the configuration. See https://backstage.io/docs/conf/writing#configuration-files for detailed info.`, ); } - } else if (remote.reloadIntervalSeconds === undefined) { + } else if (remote.reloadIntervalSeconds <= 0) { throw new Error( - `Remote config must be contain reloadIntervalSeconds: value`, + `Remote config must be contain a non zero reloadIntervalSeconds: value`, ); }