From c953d486c7754238ce0f210b874797d198b9b814 Mon Sep 17 00:00:00 2001 From: blam Date: Mon, 18 Mar 2024 17:32:37 +0100 Subject: [PATCH] chore: fix changese and updating things Signed-off-by: blam --- .changeset/warm-buses-do.md | 20 +++++++++++++++---- packages/backend/src/plugins/catalog.ts | 10 ++++++---- .../src/UnprocessedEntitiesModule.ts | 18 ++++++++++++++++- .../src/module.ts | 6 +++--- 4 files changed, 42 insertions(+), 12 deletions(-) diff --git a/.changeset/warm-buses-do.md b/.changeset/warm-buses-do.md index 8290679e51..b1755b0d0c 100644 --- a/.changeset/warm-buses-do.md +++ b/.changeset/warm-buses-do.md @@ -4,13 +4,25 @@ '@backstage/plugin-catalog-unprocessed-entities-common': patch --- -**BREAKING**- the `@backstage/plugin-catalog-backend-module-unprocessed` now requires the `permissionsApi`. -If you're using this module in the old backend system you'll need to pass the `permissions` object to the `registerRoutes` method in `packages/backend/src/plugins/catalog.ts`. +**BREAKING**- the `@backstage/plugin-catalog-backend-module-unprocessed` constructor is now private, and have been moved to using the static `.create` method instead which now requires a `PermissionService` and `DiscoveryService`. + +If you're using this module in the old backend system you'll need to migrate to using the `.create` method and pass in the new required parameters in `packages/backend/src/plugins/catalog.ts`. + No changes should be required if you're using the new backend system. ```diff -- unprocessed.registerRoutes(); -+ unprocessed.registerRoutes({ permissions: env.permissions }); +- const unprocessed = new UnprocessedEntitiesModule( +- await env.database.getClient(), +- router, +- ); ++ const unprocessed = UnprocessedEntitiesModule.create({ ++ database: await env.database.getClient(), ++ router, ++ permissions: env.permissions, ++ discovery: env.discovery, ++ }); + + unprocessed.registerRoutes(); ``` Adds the ability to delete an unprocessed entity from the `refresh_state` table. This change requires enabling permissions for your Backstage instance. diff --git a/packages/backend/src/plugins/catalog.ts b/packages/backend/src/plugins/catalog.ts index 95e86ddd23..c83d5844d1 100644 --- a/packages/backend/src/plugins/catalog.ts +++ b/packages/backend/src/plugins/catalog.ts @@ -37,12 +37,14 @@ export default async function createPlugin( const { processingEngine, router } = await builder.build(); - const unprocessed = new UnprocessedEntitiesModule( - await env.database.getClient(), + const unprocessed = UnprocessedEntitiesModule.create({ + database: await env.database.getClient(), router, - ); + permissions: env.permissions, + discovery: env.discovery, + }); - unprocessed.registerRoutes({ permissions: env.permissions }); + unprocessed.registerRoutes(); await processingEngine.start(); return router; diff --git a/plugins/catalog-backend-module-unprocessed/src/UnprocessedEntitiesModule.ts b/plugins/catalog-backend-module-unprocessed/src/UnprocessedEntitiesModule.ts index 48f4ea58cf..f177818b28 100644 --- a/plugins/catalog-backend-module-unprocessed/src/UnprocessedEntitiesModule.ts +++ b/plugins/catalog-backend-module-unprocessed/src/UnprocessedEntitiesModule.ts @@ -49,7 +49,7 @@ export class UnprocessedEntitiesModule { private readonly httpAuth: HttpAuthService; - constructor( + private constructor( private readonly database: Knex, private readonly router: Pick, private readonly permissions: PermissionsService, @@ -65,6 +65,22 @@ export class UnprocessedEntitiesModule { }).httpAuth; } + static create(options: { + router: Pick; + database: Knex; + discovery: DiscoveryService; + permissions: PermissionsService; + httpAuth?: HttpAuthService; + }) { + return new UnprocessedEntitiesModule( + options.database, + options.router, + options.permissions, + options.discovery, + options.httpAuth, + ); + } + private async unprocessed( request: UnprocessedEntitiesRequest, ): Promise { diff --git a/plugins/catalog-backend-module-unprocessed/src/module.ts b/plugins/catalog-backend-module-unprocessed/src/module.ts index 2420c75cbd..852b8fb432 100644 --- a/plugins/catalog-backend-module-unprocessed/src/module.ts +++ b/plugins/catalog-backend-module-unprocessed/src/module.ts @@ -46,13 +46,13 @@ export const catalogModuleUnprocessedEntities = createBackendModule({ httpAuth, discovery, }) { - const module = new UnprocessedEntitiesModule( - await database.getClient(), + const module = UnprocessedEntitiesModule.create({ + database: await database.getClient(), router, permissions, discovery, httpAuth, - ); + }); module.registerRoutes();