From 4a2d633aae18fcdb73c0aca1aff226aead535d93 Mon Sep 17 00:00:00 2001 From: zcason Date: Mon, 18 Sep 2023 15:26:57 -0500 Subject: [PATCH] migrate playlist-backend plugin to the new backend system Signed-off-by: zcason --- packages/backend-next/package.json | 1 + packages/backend-next/src/index.ts | 1 + plugins/playlist-backend/api-report.md | 4 +++ plugins/playlist-backend/package.json | 1 + plugins/playlist-backend/src/index.ts | 1 + plugins/playlist-backend/src/plugin.ts | 48 ++++++++++++++++++++++++++ yarn.lock | 2 ++ 7 files changed, 58 insertions(+) create mode 100644 plugins/playlist-backend/src/plugin.ts diff --git a/packages/backend-next/package.json b/packages/backend-next/package.json index 6952fdcc7a..e7b52f7ad0 100644 --- a/packages/backend-next/package.json +++ b/packages/backend-next/package.json @@ -46,6 +46,7 @@ "@backstage/plugin-permission-backend-module-allow-all-policy": "workspace:^", "@backstage/plugin-permission-common": "workspace:^", "@backstage/plugin-permission-node": "workspace:^", + "@backstage/plugin-playlist-backend": "workspace:^", "@backstage/plugin-proxy-backend": "workspace:^", "@backstage/plugin-scaffolder-backend": "workspace:^", "@backstage/plugin-search-backend": "workspace:^", diff --git a/packages/backend-next/src/index.ts b/packages/backend-next/src/index.ts index b6ffa11a21..68e33f4be3 100644 --- a/packages/backend-next/src/index.ts +++ b/packages/backend-next/src/index.ts @@ -33,6 +33,7 @@ backend.add(import('@backstage/plugin-graphql-backend')); backend.add(import('@backstage/plugin-kubernetes-backend/alpha')); backend.add(import('@backstage/plugin-lighthouse-backend')); backend.add(import('@backstage/plugin-linguist-backend')); +backend.add(import('@backstage/plugin-playlist-backend')); backend.add( import('@backstage/plugin-permission-backend-module-allow-all-policy'), ); diff --git a/plugins/playlist-backend/api-report.md b/plugins/playlist-backend/api-report.md index 6b51f316c4..cc7d478481 100644 --- a/plugins/playlist-backend/api-report.md +++ b/plugins/playlist-backend/api-report.md @@ -3,6 +3,7 @@ > Do not edit this file. It is a report generated by [API Extractor](https://api-extractor.com/). ```ts +import { BackendFeature } from '@backstage/backend-plugin-api'; import { BackstageIdentityResponse } from '@backstage/plugin-auth-node'; import { ConditionalPolicyDecision } from '@backstage/plugin-permission-common'; import { Conditions } from '@backstage/plugin-permission-node'; @@ -34,6 +35,9 @@ export const createPlaylistConditionalDecision: ( // @public (undocumented) export function createRouter(options: RouterOptions): Promise; +// @public +export const playlistPlugin: () => BackendFeature; + // @public export class DefaultPlaylistPermissionPolicy implements PermissionPolicy { // (undocumented) diff --git a/plugins/playlist-backend/package.json b/plugins/playlist-backend/package.json index 53a3bff88a..7189a14b86 100644 --- a/plugins/playlist-backend/package.json +++ b/plugins/playlist-backend/package.json @@ -29,6 +29,7 @@ }, "dependencies": { "@backstage/backend-common": "workspace:^", + "@backstage/backend-plugin-api": "workspace:^", "@backstage/catalog-client": "workspace:^", "@backstage/catalog-model": "workspace:^", "@backstage/config": "workspace:^", diff --git a/plugins/playlist-backend/src/index.ts b/plugins/playlist-backend/src/index.ts index eeccd8913f..9081552e00 100644 --- a/plugins/playlist-backend/src/index.ts +++ b/plugins/playlist-backend/src/index.ts @@ -26,3 +26,4 @@ export { isPlaylistPermission, playlistConditions, } from './permissions'; +export { playlistPlugin as default } from './plugin'; diff --git a/plugins/playlist-backend/src/plugin.ts b/plugins/playlist-backend/src/plugin.ts new file mode 100644 index 0000000000..12fe94b01a --- /dev/null +++ b/plugins/playlist-backend/src/plugin.ts @@ -0,0 +1,48 @@ +/* + * Copyright 2023 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 { + coreServices, + createBackendPlugin, +} from '@backstage/backend-plugin-api'; +import { createRouter } from './service'; +import { loggerToWinstonLogger } from '@backstage/backend-common'; + +export const playlistPlugin = createBackendPlugin({ + pluginId: 'playlist', + register(env) { + env.registerInit({ + deps: { + http: coreServices.httpRouter, + logger: coreServices.logger, + database: coreServices.database, + identity: coreServices.identity, + discovery: coreServices.discovery, + permissions: coreServices.permissions, + }, + async init({ http, logger, database, identity, discovery, permissions }) { + http.use( + await createRouter({ + logger: loggerToWinstonLogger(logger), + database, + identity, + discovery, + permissions, + }), + ); + }, + }); + }, +}); diff --git a/yarn.lock b/yarn.lock index 53f1c4052a..d600d02811 100644 --- a/yarn.lock +++ b/yarn.lock @@ -8362,6 +8362,7 @@ __metadata: resolution: "@backstage/plugin-playlist-backend@workspace:plugins/playlist-backend" dependencies: "@backstage/backend-common": "workspace:^" + "@backstage/backend-plugin-api": "workspace:^" "@backstage/backend-test-utils": "workspace:^" "@backstage/catalog-client": "workspace:^" "@backstage/catalog-model": "workspace:^" @@ -25969,6 +25970,7 @@ __metadata: "@backstage/plugin-permission-backend-module-allow-all-policy": "workspace:^" "@backstage/plugin-permission-common": "workspace:^" "@backstage/plugin-permission-node": "workspace:^" + "@backstage/plugin-playlist-backend": "workspace:^" "@backstage/plugin-proxy-backend": "workspace:^" "@backstage/plugin-scaffolder-backend": "workspace:^" "@backstage/plugin-search-backend": "workspace:^"