From c8fdd8381083c9fda385b271251852ca03bee028 Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Thu, 15 Feb 2024 18:50:43 +0100 Subject: [PATCH] adr-backend: migrated to support new auth services MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Fredrik Adelöw Co-authored-by: Carl-Erik Bergström Co-authored-by: blam Signed-off-by: Patrik Oldsberg --- .changeset/tiny-bugs-enjoy.md | 5 +++++ plugins/adr-backend/api-report.md | 2 ++ .../src/search/DefaultAdrCollatorFactory.ts | 17 ++++++++++++++--- 3 files changed, 21 insertions(+), 3 deletions(-) create mode 100644 .changeset/tiny-bugs-enjoy.md diff --git a/.changeset/tiny-bugs-enjoy.md b/.changeset/tiny-bugs-enjoy.md new file mode 100644 index 0000000000..963ccc2a1f --- /dev/null +++ b/.changeset/tiny-bugs-enjoy.md @@ -0,0 +1,5 @@ +--- +'@backstage/plugin-adr-backend': patch +--- + +Migrated `DefaultAdrCollatorFactory` to support new auth services. diff --git a/plugins/adr-backend/api-report.md b/plugins/adr-backend/api-report.md index 1247a7aa8f..9b00888435 100644 --- a/plugins/adr-backend/api-report.md +++ b/plugins/adr-backend/api-report.md @@ -7,6 +7,7 @@ import { AdrDocument } from '@backstage/plugin-adr-common'; import { AdrFilePathFilterFn } from '@backstage/plugin-adr-common'; +import { AuthService } from '@backstage/backend-plugin-api'; import { BackendFeature } from '@backstage/backend-plugin-api'; import { CacheClient } from '@backstage/backend-common'; import { CatalogApi } from '@backstage/catalog-client'; @@ -32,6 +33,7 @@ export type AdrCollatorFactoryOptions = { parser?: AdrParser; reader: UrlReader; tokenManager: TokenManager; + auth?: AuthService; }; // @public diff --git a/plugins/adr-backend/src/search/DefaultAdrCollatorFactory.ts b/plugins/adr-backend/src/search/DefaultAdrCollatorFactory.ts index 78f6e0226e..21aa7f32a4 100644 --- a/plugins/adr-backend/src/search/DefaultAdrCollatorFactory.ts +++ b/plugins/adr-backend/src/search/DefaultAdrCollatorFactory.ts @@ -22,6 +22,7 @@ import { PluginEndpointDiscovery, TokenManager, UrlReader, + createLegacyAuthAdapters, } from '@backstage/backend-common'; import { CatalogApi, @@ -46,6 +47,7 @@ import { DocumentCollatorFactory } from '@backstage/plugin-search-common'; import { createMadrParser } from './createMadrParser'; import { AdrParser } from './types'; +import { AuthService } from '@backstage/backend-plugin-api'; /** * Options to configure the AdrCollatorFactory @@ -89,6 +91,10 @@ export type AdrCollatorFactoryOptions = { * Token Manager */ tokenManager: TokenManager; + /** + * Auth Service + */ + auth?: AuthService; }; /** @@ -103,8 +109,8 @@ export class DefaultAdrCollatorFactory implements DocumentCollatorFactory { private readonly logger: Logger; private readonly parser: AdrParser; private readonly reader: UrlReader; + private readonly auth: AuthService; private readonly scmIntegrations: ScmIntegrationRegistry; - private readonly tokenManager: TokenManager; private constructor(options: AdrCollatorFactoryOptions) { this.adrFilePathFilterFn = @@ -117,7 +123,8 @@ export class DefaultAdrCollatorFactory implements DocumentCollatorFactory { this.parser = options.parser ?? createMadrParser(); this.reader = options.reader; this.scmIntegrations = ScmIntegrations.fromConfig(options.config); - this.tokenManager = options.tokenManager; + + this.auth = createLegacyAuthAdapters(options).auth; } static fromConfig(options: AdrCollatorFactoryOptions) { @@ -129,7 +136,11 @@ export class DefaultAdrCollatorFactory implements DocumentCollatorFactory { } async *execute(): AsyncGenerator { - const { token } = await this.tokenManager.getToken(); + const { token } = await this.auth.getPluginRequestToken({ + onBehalfOf: await this.auth.getOwnServiceCredentials(), + targetPluginId: 'catalog', + }); + const entities = ( await this.catalogClient.getEntities( {