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( {