From 3108ff7bfd7d1db1d955f2748f3a00b509905481 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fredrik=20Adel=C3=B6w?= Date: Mon, 14 Jun 2021 09:54:46 +0200 Subject: [PATCH] Make yarn dev for backends respect the PLUGIN_PORT env var MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Fredrik Adelöw --- .changeset/fast-trees-arrive.md | 24 +++++++++++++++++++ .changeset/pink-llamas-sniff.md | 12 ++++++++++ .../src/service/standaloneServer.ts.hbs | 7 ++++-- .../src/service/standaloneServer.ts | 4 +++- .../src/service/standaloneServer.ts | 7 ++++-- .../src/service/standaloneServer.ts | 7 ++++-- .../src/service/standaloneServer.ts | 7 ++++-- .../src/service/standaloneServer.ts | 7 ++++-- .../src/service/standaloneServer.ts | 7 ++++-- .../src/service/standaloneServer.ts | 7 ++++-- .../src/service/standaloneServer.ts | 7 ++++-- 11 files changed, 79 insertions(+), 17 deletions(-) create mode 100644 .changeset/fast-trees-arrive.md create mode 100644 .changeset/pink-llamas-sniff.md diff --git a/.changeset/fast-trees-arrive.md b/.changeset/fast-trees-arrive.md new file mode 100644 index 0000000000..f74b6c1c9a --- /dev/null +++ b/.changeset/fast-trees-arrive.md @@ -0,0 +1,24 @@ +--- +'@backstage/cli': patch +--- + +Make `yarn dev` in newly created backend plugins respect the `PLUGIN_PORT` environment variable. + +You can achieve the same in your created backend plugins by making sure to properly call the port and CORS methods on your service builder. Typically in a file named `src/service/standaloneServer.ts` inside your backend plugin package, replace the following: + +```ts +const service = createServiceBuilder(module) + .enableCors({ origin: 'http://localhost:3000' }) + .addRouter('/my-plugin', router); +``` + +With something like the following: + +```ts +let service = createServiceBuilder(module) + .setPort(options.port) + .addRouter('/my-plugin', router); +if (options.enableCors) { + service = service.enableCors({ origin: 'http://localhost:3000' }); +} +``` diff --git a/.changeset/pink-llamas-sniff.md b/.changeset/pink-llamas-sniff.md new file mode 100644 index 0000000000..98addd691c --- /dev/null +++ b/.changeset/pink-llamas-sniff.md @@ -0,0 +1,12 @@ +--- +'@backstage/plugin-app-backend': patch +'@backstage/plugin-badges-backend': patch +'@backstage/plugin-catalog-backend': patch +'@backstage/plugin-code-coverage-backend': patch +'@backstage/plugin-proxy-backend': patch +'@backstage/plugin-rollbar-backend': patch +'@backstage/plugin-search-backend': patch +'@backstage/plugin-techdocs-backend': patch +--- + +Make `yarn dev` respect the `PLUGIN_PORT` environment variable. diff --git a/packages/cli/templates/default-backend-plugin/src/service/standaloneServer.ts.hbs b/packages/cli/templates/default-backend-plugin/src/service/standaloneServer.ts.hbs index 6e38965246..765b6aa0d0 100644 --- a/packages/cli/templates/default-backend-plugin/src/service/standaloneServer.ts.hbs +++ b/packages/cli/templates/default-backend-plugin/src/service/standaloneServer.ts.hbs @@ -34,9 +34,12 @@ export async function startStandaloneServer( logger, }); - const service = createServiceBuilder(module) - .enableCors({ origin: 'http://localhost:3000' }) + let service = createServiceBuilder(module) + .setPort(options.port) .addRouter('/{{id}}', router); + if (options.enableCors) { + service = service.enableCors({ origin: 'http://localhost:3000' }); + } return await service.start().catch(err => { logger.error(err); diff --git a/plugins/app-backend/src/service/standaloneServer.ts b/plugins/app-backend/src/service/standaloneServer.ts index 005d80027b..58267f227d 100644 --- a/plugins/app-backend/src/service/standaloneServer.ts +++ b/plugins/app-backend/src/service/standaloneServer.ts @@ -38,7 +38,9 @@ export async function startStandaloneServer( appPackageName: 'example-app', }); - const service = createServiceBuilder(module).addRouter('', router); + const service = createServiceBuilder(module) + .setPort(options.port) + .addRouter('', router); return await service.start().catch(err => { logger.error(err); diff --git a/plugins/badges-backend/src/service/standaloneServer.ts b/plugins/badges-backend/src/service/standaloneServer.ts index c210efa249..65a78d08e8 100644 --- a/plugins/badges-backend/src/service/standaloneServer.ts +++ b/plugins/badges-backend/src/service/standaloneServer.ts @@ -40,9 +40,12 @@ export async function startStandaloneServer( const router = await createRouter({ config, discovery }); - const service = createServiceBuilder(module) - .enableCors({ origin: 'http://localhost:3000' }) + let service = createServiceBuilder(module) + .setPort(options.port) .addRouter('/badges', router); + if (options.enableCors) { + service = service.enableCors({ origin: 'http://localhost:3000' }); + } return await service.start().catch(err => { logger.error(err); diff --git a/plugins/catalog-backend/src/service/standaloneServer.ts b/plugins/catalog-backend/src/service/standaloneServer.ts index 44a5c0f84d..24a1a9e4cd 100644 --- a/plugins/catalog-backend/src/service/standaloneServer.ts +++ b/plugins/catalog-backend/src/service/standaloneServer.ts @@ -63,9 +63,12 @@ export async function startStandaloneServer( logger, config, }); - const service = createServiceBuilder(module) - .enableCors({ origin: 'http://localhost:3000' }) + let service = createServiceBuilder(module) + .setPort(options.port) .addRouter('/catalog', router); + if (options.enableCors) { + service = service.enableCors({ origin: 'http://localhost:3000' }); + } return await service.start().catch(err => { logger.error(err); process.exit(1); diff --git a/plugins/code-coverage-backend/src/service/standaloneServer.ts b/plugins/code-coverage-backend/src/service/standaloneServer.ts index 2fb9627936..1e9e5131d1 100644 --- a/plugins/code-coverage-backend/src/service/standaloneServer.ts +++ b/plugins/code-coverage-backend/src/service/standaloneServer.ts @@ -61,9 +61,12 @@ export async function startStandaloneServer( logger, }); - const service = createServiceBuilder(module) - .enableCors({ origin: 'http://localhost:3000' }) + let service = createServiceBuilder(module) + .setPort(options.port) .addRouter('/code-coverage', router); + if (options.enableCors) { + service = service.enableCors({ origin: 'http://localhost:3000' }); + } return await service.start().catch(err => { logger.error(err); diff --git a/plugins/proxy-backend/src/service/standaloneServer.ts b/plugins/proxy-backend/src/service/standaloneServer.ts index c64d69e2a4..bd681948bc 100644 --- a/plugins/proxy-backend/src/service/standaloneServer.ts +++ b/plugins/proxy-backend/src/service/standaloneServer.ts @@ -43,9 +43,12 @@ export async function startStandaloneServer( logger, discovery, }); - const service = createServiceBuilder(module) - .enableCors({ origin: 'http://localhost:3000' }) + let service = createServiceBuilder(module) + .setPort(options.port) .addRouter('/proxy', router); + if (options.enableCors) { + service = service.enableCors({ origin: 'http://localhost:3000' }); + } logger.debug('Starting application server...'); diff --git a/plugins/rollbar-backend/src/service/standaloneServer.ts b/plugins/rollbar-backend/src/service/standaloneServer.ts index b30bf6fc6b..aef9741475 100644 --- a/plugins/rollbar-backend/src/service/standaloneServer.ts +++ b/plugins/rollbar-backend/src/service/standaloneServer.ts @@ -38,9 +38,12 @@ export async function startStandaloneServer( const router = await createRouter({ logger, config }); - const service = createServiceBuilder(module) - .enableCors({ origin: 'http://localhost:3000' }) + let service = createServiceBuilder(module) + .setPort(options.port) .addRouter('/catalog', router); + if (options.enableCors) { + service = service.enableCors({ origin: 'http://localhost:3000' }); + } return await service.start().catch(err => { logger.error(err); diff --git a/plugins/search-backend/src/service/standaloneServer.ts b/plugins/search-backend/src/service/standaloneServer.ts index df42e3dda2..19ea40ccf7 100644 --- a/plugins/search-backend/src/service/standaloneServer.ts +++ b/plugins/search-backend/src/service/standaloneServer.ts @@ -44,9 +44,12 @@ export async function startStandaloneServer( logger, }); - const service = createServiceBuilder(module) - .enableCors({ origin: 'http://localhost:3000' }) + let service = createServiceBuilder(module) + .setPort(options.port) .addRouter('/search', router); + if (options.enableCors) { + service = service.enableCors({ origin: 'http://localhost:3000' }); + } return await service.start().catch(err => { logger.error(err); diff --git a/plugins/techdocs-backend/src/service/standaloneServer.ts b/plugins/techdocs-backend/src/service/standaloneServer.ts index af03987870..09379f4296 100644 --- a/plugins/techdocs-backend/src/service/standaloneServer.ts +++ b/plugins/techdocs-backend/src/service/standaloneServer.ts @@ -88,9 +88,12 @@ export async function startStandaloneServer( config, discovery, }); - const service = createServiceBuilder(module) - .enableCors({ origin: 'http://localhost:3000' }) + let service = createServiceBuilder(module) + .setPort(options.port) .addRouter('/techdocs', router); + if (options.enableCors) { + service = service.enableCors({ origin: 'http://localhost:3000' }); + } return await service.start().catch(err => { logger.error(err); process.exit(1);