From c781a9aefe0e1fc52a9fa01df7743c34868b252b Mon Sep 17 00:00:00 2001 From: Andre Wanlin Date: Thu, 31 Oct 2024 19:33:33 -0500 Subject: [PATCH] DevTools - Removed Deprecated Code Signed-off-by: Andre Wanlin --- .changeset/orange-coins-confess.md | 5 ++++ packages/backend-legacy/package.json | 1 - packages/backend-legacy/src/index.ts | 3 -- .../backend-legacy/src/plugins/devtools.ts | 30 ------------------- plugins/devtools-backend/package.json | 2 +- plugins/devtools-backend/report.api.md | 24 --------------- plugins/devtools-backend/src/index.ts | 1 - .../src/service/router.test.ts | 1 + .../devtools-backend/src/service/router.ts | 21 +++++-------- yarn.lock | 2 -- 10 files changed, 15 insertions(+), 75 deletions(-) create mode 100644 .changeset/orange-coins-confess.md delete mode 100644 packages/backend-legacy/src/plugins/devtools.ts diff --git a/.changeset/orange-coins-confess.md b/.changeset/orange-coins-confess.md new file mode 100644 index 0000000000..8e8aefb096 --- /dev/null +++ b/.changeset/orange-coins-confess.md @@ -0,0 +1,5 @@ +--- +'@backstage/plugin-devtools-backend': minor +--- + +**BREAKING** Removed support for what is known as the legacy backend, please use the New Backend System. diff --git a/packages/backend-legacy/package.json b/packages/backend-legacy/package.json index 3b93ce6aeb..50ca6c8aee 100644 --- a/packages/backend-legacy/package.json +++ b/packages/backend-legacy/package.json @@ -42,7 +42,6 @@ "@backstage/plugin-catalog-backend-module-scaffolder-entity-model": "workspace:^", "@backstage/plugin-catalog-backend-module-unprocessed": "workspace:^", "@backstage/plugin-catalog-node": "workspace:^", - "@backstage/plugin-devtools-backend": "workspace:^", "@backstage/plugin-events-backend": "workspace:^", "@backstage/plugin-events-node": "workspace:^", "@backstage/plugin-kubernetes-backend": "workspace:^", diff --git a/packages/backend-legacy/src/index.ts b/packages/backend-legacy/src/index.ts index 23f71baba5..8ef969ff2b 100644 --- a/packages/backend-legacy/src/index.ts +++ b/packages/backend-legacy/src/index.ts @@ -48,7 +48,6 @@ import techdocs from './plugins/techdocs'; import app from './plugins/app'; import permission from './plugins/permission'; import signals from './plugins/signals'; -import devtools from './plugins/devtools'; import { PluginEnvironment } from './types'; import { ServerPermissionClient } from '@backstage/plugin-permission-node'; import { DefaultIdentityClient } from '@backstage/plugin-auth-node'; @@ -138,7 +137,6 @@ async function main() { const appEnv = useHotMemoize(module, () => createEnv('app')); const permissionEnv = useHotMemoize(module, () => createEnv('permission')); const eventsEnv = useHotMemoize(module, () => createEnv('events')); - const devToolsEnv = useHotMemoize(module, () => createEnv('devtools')); const signalsEnv = useHotMemoize(module, () => createEnv('signals')); const apiRouter = Router(); @@ -151,7 +149,6 @@ async function main() { apiRouter.use('/kubernetes', await kubernetes(kubernetesEnv)); apiRouter.use('/proxy', await proxy(proxyEnv)); apiRouter.use('/permission', await permission(permissionEnv)); - apiRouter.use('/devtools', await devtools(devToolsEnv)); apiRouter.use('/signals', await signals(signalsEnv)); apiRouter.use(notFoundHandler()); diff --git a/packages/backend-legacy/src/plugins/devtools.ts b/packages/backend-legacy/src/plugins/devtools.ts deleted file mode 100644 index bfa29cd72e..0000000000 --- a/packages/backend-legacy/src/plugins/devtools.ts +++ /dev/null @@ -1,30 +0,0 @@ -/* - * Copyright 2022 The Backstage Authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -import { createRouter } from '@backstage/plugin-devtools-backend'; -import { Router } from 'express'; -import type { PluginEnvironment } from '../types'; - -export default async function createPlugin( - env: PluginEnvironment, -): Promise { - return createRouter({ - logger: env.logger, - config: env.config, - permissions: env.permissions, - discovery: env.discovery, - }); -} diff --git a/plugins/devtools-backend/package.json b/plugins/devtools-backend/package.json index 18cf330e58..feefa79fbc 100644 --- a/plugins/devtools-backend/package.json +++ b/plugins/devtools-backend/package.json @@ -38,7 +38,7 @@ "test": "backstage-cli package test" }, "dependencies": { - "@backstage/backend-common": "^0.25.0", + "@backstage/backend-defaults": "workspace:^", "@backstage/backend-plugin-api": "workspace:^", "@backstage/cli-common": "workspace:^", "@backstage/config": "workspace:^", diff --git a/plugins/devtools-backend/report.api.md b/plugins/devtools-backend/report.api.md index 5fceda3d46..d4830e7a7b 100644 --- a/plugins/devtools-backend/report.api.md +++ b/plugins/devtools-backend/report.api.md @@ -7,16 +7,8 @@ import { BackendFeature } from '@backstage/backend-plugin-api'; import { Config } from '@backstage/config'; import { ConfigInfo } from '@backstage/plugin-devtools-common'; import { DevToolsInfo } from '@backstage/plugin-devtools-common'; -import { DiscoveryService } from '@backstage/backend-plugin-api'; -import express from 'express'; import { ExternalDependency } from '@backstage/plugin-devtools-common'; -import { HttpAuthService } from '@backstage/backend-plugin-api'; import { LoggerService } from '@backstage/backend-plugin-api'; -import { PermissionsService } from '@backstage/backend-plugin-api'; -import { RootConfigService } from '@backstage/backend-plugin-api'; - -// @public @deprecated (undocumented) -export function createRouter(options: RouterOptions): Promise; // @public (undocumented) export class DevToolsBackendApi { @@ -32,20 +24,4 @@ export class DevToolsBackendApi { // @public const devtoolsPlugin: BackendFeature; export default devtoolsPlugin; - -// @public @deprecated (undocumented) -export interface RouterOptions { - // (undocumented) - config: RootConfigService; - // (undocumented) - devToolsBackendApi?: DevToolsBackendApi; - // (undocumented) - discovery: DiscoveryService; - // (undocumented) - httpAuth?: HttpAuthService; - // (undocumented) - logger: LoggerService; - // (undocumented) - permissions: PermissionsService; -} ``` diff --git a/plugins/devtools-backend/src/index.ts b/plugins/devtools-backend/src/index.ts index 58d4570163..3c73ef0e19 100644 --- a/plugins/devtools-backend/src/index.ts +++ b/plugins/devtools-backend/src/index.ts @@ -21,5 +21,4 @@ */ export { DevToolsBackendApi } from './api'; -export * from './service/router'; export { devtoolsPlugin as default } from './plugin'; diff --git a/plugins/devtools-backend/src/service/router.test.ts b/plugins/devtools-backend/src/service/router.test.ts index 9f9db0a8d4..a530f82adc 100644 --- a/plugins/devtools-backend/src/service/router.test.ts +++ b/plugins/devtools-backend/src/service/router.test.ts @@ -51,6 +51,7 @@ describe('createRouter', () => { }), discovery: mockServices.discovery(), permissions: permissionEvaluator, + httpAuth: mockServices.httpAuth(), }); app = express().use(router); }); diff --git a/plugins/devtools-backend/src/service/router.ts b/plugins/devtools-backend/src/service/router.ts index e3eb72c293..adcb79c4cd 100644 --- a/plugins/devtools-backend/src/service/router.ts +++ b/plugins/devtools-backend/src/service/router.ts @@ -24,10 +24,6 @@ import { import { DevToolsBackendApi } from '../api'; import { NotAllowedError } from '@backstage/errors'; import Router from 'express-promise-router'; -import { - createLegacyAuthAdapters, - errorHandler, -} from '@backstage/backend-common'; import express from 'express'; import { createPermissionIntegrationRouter } from '@backstage/plugin-permission-node'; import { @@ -37,10 +33,10 @@ import { PermissionsService, RootConfigService, } from '@backstage/backend-plugin-api'; +import { MiddlewareFactory } from '@backstage/backend-defaults/rootHttpRouter'; /** - * @public - * @deprecated Please migrate to the new backend system as this will be removed in the future. + * @internal */ export interface RouterOptions { devToolsBackendApi?: DevToolsBackendApi; @@ -48,19 +44,16 @@ export interface RouterOptions { config: RootConfigService; permissions: PermissionsService; discovery: DiscoveryService; - httpAuth?: HttpAuthService; + httpAuth: HttpAuthService; } /** - * @deprecated Please migrate to the new backend system as this will be removed in the future. - * @public + * @internal * */ export async function createRouter( options: RouterOptions, ): Promise { - const { logger, config, permissions } = options; - - const { httpAuth } = createLegacyAuthAdapters(options); + const { logger, config, permissions, httpAuth } = options; const devToolsBackendApi = options.devToolsBackendApi || new DevToolsBackendApi(logger, config); @@ -128,6 +121,8 @@ export async function createRouter( response.status(200).json(health); }); - router.use(errorHandler()); + const middleware = MiddlewareFactory.create({ logger, config }); + + router.use(middleware.error()); return router; } diff --git a/yarn.lock b/yarn.lock index 6e73a22735..fe2fce7e13 100644 --- a/yarn.lock +++ b/yarn.lock @@ -6510,7 +6510,6 @@ __metadata: version: 0.0.0-use.local resolution: "@backstage/plugin-devtools-backend@workspace:plugins/devtools-backend" dependencies: - "@backstage/backend-common": ^0.25.0 "@backstage/backend-defaults": "workspace:^" "@backstage/backend-plugin-api": "workspace:^" "@backstage/backend-test-utils": "workspace:^" @@ -27494,7 +27493,6 @@ __metadata: "@backstage/plugin-catalog-backend-module-scaffolder-entity-model": "workspace:^" "@backstage/plugin-catalog-backend-module-unprocessed": "workspace:^" "@backstage/plugin-catalog-node": "workspace:^" - "@backstage/plugin-devtools-backend": "workspace:^" "@backstage/plugin-events-backend": "workspace:^" "@backstage/plugin-events-node": "workspace:^" "@backstage/plugin-kubernetes-backend": "workspace:^"