From 651d1e7696f13ccba3178b2a6fb811acfdc6c116 Mon Sep 17 00:00:00 2001 From: Iain Billett Date: Wed, 15 Dec 2021 11:50:44 +0000 Subject: [PATCH] Don't use discovery API Signed-off-by: Iain Billett --- packages/backend/src/plugins/search.ts | 1 - .../packages/backend/src/plugins/search.ts | 1 - plugins/search-backend/api-report.md | 3 --- .../search-backend/src/service/router.test.ts | 18 +----------------- plugins/search-backend/src/service/router.ts | 16 ++++------------ .../src/service/standaloneServer.ts | 9 +-------- 6 files changed, 6 insertions(+), 42 deletions(-) diff --git a/packages/backend/src/plugins/search.ts b/packages/backend/src/plugins/search.ts index 5659968e1d..9a8db0f0f9 100644 --- a/packages/backend/src/plugins/search.ts +++ b/packages/backend/src/plugins/search.ts @@ -96,6 +96,5 @@ export default async function createPlugin({ return await createRouter({ engine: indexBuilder.getSearchEngine(), logger, - discovery, }); } diff --git a/packages/create-app/templates/default-app/packages/backend/src/plugins/search.ts b/packages/create-app/templates/default-app/packages/backend/src/plugins/search.ts index 74ea8f032c..f23b0c7bcf 100644 --- a/packages/create-app/templates/default-app/packages/backend/src/plugins/search.ts +++ b/packages/create-app/templates/default-app/packages/backend/src/plugins/search.ts @@ -50,6 +50,5 @@ export default async function createPlugin({ return await createRouter({ engine: indexBuilder.getSearchEngine(), logger, - discovery, }); } diff --git a/plugins/search-backend/api-report.md b/plugins/search-backend/api-report.md index c4558f1b59..cac97bd725 100644 --- a/plugins/search-backend/api-report.md +++ b/plugins/search-backend/api-report.md @@ -5,7 +5,6 @@ ```ts import express from 'express'; import { Logger as Logger_2 } from 'winston'; -import { PluginEndpointDiscovery } from '@backstage/backend-common'; import { SearchEngine } from '@backstage/plugin-search-backend-node'; // Warning: (ae-missing-release-tag) "createRouter" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) @@ -19,7 +18,5 @@ export function createRouter(options: RouterOptions): Promise; export type RouterOptions = { engine: SearchEngine; logger: Logger_2; - discovery: PluginEndpointDiscovery; - allowedLocationProtocols?: string[]; }; ``` diff --git a/plugins/search-backend/src/service/router.test.ts b/plugins/search-backend/src/service/router.test.ts index aeb5709379..77a1be1eb4 100644 --- a/plugins/search-backend/src/service/router.test.ts +++ b/plugins/search-backend/src/service/router.test.ts @@ -14,10 +14,7 @@ * limitations under the License. */ -import { - getVoidLogger, - PluginEndpointDiscovery, -} from '@backstage/backend-common'; +import { getVoidLogger } from '@backstage/backend-common'; import { IndexBuilder, LunrSearchEngine, @@ -30,22 +27,16 @@ import { createRouter } from './router'; describe('createRouter', () => { let app: express.Express; - let mockDiscoveryApi: jest.Mocked; let mockSearchEngine: jest.Mocked; beforeAll(async () => { const logger = getVoidLogger(); const searchEngine = new LunrSearchEngine({ logger }); const indexBuilder = new IndexBuilder({ logger, searchEngine }); - mockDiscoveryApi = { - getBaseUrl: jest.fn(), - getExternalBaseUrl: jest.fn().mockResolvedValue('http://localhost:3000/'), - }; const router = await createRouter({ engine: indexBuilder.getSearchEngine(), logger, - discovery: mockDiscoveryApi, }); app = express().use(router); }); @@ -65,12 +56,6 @@ describe('createRouter', () => { describe('search result filtering', () => { beforeAll(async () => { const logger = getVoidLogger(); - mockDiscoveryApi = { - getBaseUrl: jest.fn(), - getExternalBaseUrl: jest - .fn() - .mockResolvedValue('http://localhost:3000/'), - }; mockSearchEngine = { index: jest.fn(), setTranslator: jest.fn(), @@ -84,7 +69,6 @@ describe('createRouter', () => { const router = await createRouter({ engine: indexBuilder.getSearchEngine(), logger, - discovery: mockDiscoveryApi, }); app = express().use(router); }); diff --git a/plugins/search-backend/src/service/router.ts b/plugins/search-backend/src/service/router.ts index e13e0cc3bf..aae1914fc1 100644 --- a/plugins/search-backend/src/service/router.ts +++ b/plugins/search-backend/src/service/router.ts @@ -19,32 +19,24 @@ import Router from 'express-promise-router'; import { Logger } from 'winston'; import { SearchQuery, SearchResultSet } from '@backstage/search-common'; import { SearchEngine } from '@backstage/plugin-search-backend-node'; -import { PluginEndpointDiscovery } from '@backstage/backend-common'; export type RouterOptions = { engine: SearchEngine; logger: Logger; - discovery: PluginEndpointDiscovery; - allowedLocationProtocols?: string[]; }; -const defaultAllowedLocationProtocols = ['http:', 'https:']; +const allowedLocationProtocols = ['http:', 'https:']; export async function createRouter( options: RouterOptions, ): Promise { - const { - engine, - logger, - discovery, - allowedLocationProtocols = defaultAllowedLocationProtocols, - } = options; - const baseUrl = await discovery.getExternalBaseUrl(''); + const { engine, logger } = options; const filterResultSet = ({ results, ...resultSet }: SearchResultSet) => ({ ...resultSet, results: results.filter(result => { - const protocol = new URL(result.document.location, baseUrl).protocol; + const protocol = new URL(result.document.location, 'https://example.com') + .protocol; const isAllowed = allowedLocationProtocols.includes(protocol); if (!isAllowed) { logger.info( diff --git a/plugins/search-backend/src/service/standaloneServer.ts b/plugins/search-backend/src/service/standaloneServer.ts index ce775c205a..9ba9dbd5f7 100644 --- a/plugins/search-backend/src/service/standaloneServer.ts +++ b/plugins/search-backend/src/service/standaloneServer.ts @@ -14,11 +14,7 @@ * limitations under the License. */ -import { - createServiceBuilder, - loadBackendConfig, - SingleHostDiscovery, -} from '@backstage/backend-common'; +import { createServiceBuilder } from '@backstage/backend-common'; import { Server } from 'http'; import { Logger } from 'winston'; import { createRouter } from './router'; @@ -37,8 +33,6 @@ export async function startStandaloneServer( options: ServerOptions, ): Promise { const logger = options.logger.child({ service: 'search-backend' }); - const config = await loadBackendConfig({ logger, argv: process.argv }); - const discovery = SingleHostDiscovery.fromConfig(config); const searchEngine = new LunrSearchEngine({ logger }); const indexBuilder = new IndexBuilder({ logger, searchEngine }); logger.debug('Starting application server...'); @@ -48,7 +42,6 @@ export async function startStandaloneServer( const router = await createRouter({ engine: indexBuilder.getSearchEngine(), logger, - discovery, }); let service = createServiceBuilder(module)