diff --git a/.changeset/brave-impalas-switch.md b/.changeset/brave-impalas-switch.md
index 058e2dbf8d..de7e2ee528 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 0000000000..d39844e7a9
--- /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 afd86955fa..a4da1e3df0 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`
+`--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
- },
-});
-```
+**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 e3c15b95b6..7a79c278ff 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 388017318f..e7aa3d4c10 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`,
);
}