Merge pull request #14422 from kvmw/kvmw/inject-catalog-api

Inject optional CatalogApi in auth-backend createRouter function.
This commit is contained in:
Fredrik Adelöw
2022-11-08 21:41:05 +01:00
committed by GitHub
3 changed files with 12 additions and 3 deletions
+5
View File
@@ -0,0 +1,5 @@
---
'@backstage/plugin-auth-backend': patch
---
Inject optional `CatalogApi` into auth-backend `createRouter` function. This will enable developers to use customized `CatalogApi` when creating the router.
+2
View File
@@ -669,6 +669,8 @@ export const readState: (stateString: string) => OAuthState;
// @public (undocumented)
export interface RouterOptions {
// (undocumented)
catalogApi?: CatalogApi;
// (undocumented)
config: Config;
// (undocumented)
+5 -3
View File
@@ -28,7 +28,7 @@ import {
TokenManager,
} from '@backstage/backend-common';
import { assertError, NotFoundError } from '@backstage/errors';
import { CatalogClient } from '@backstage/catalog-client';
import { CatalogApi, CatalogClient } from '@backstage/catalog-client';
import { Config } from '@backstage/config';
import { createOidcRouter, TokenFactory, KeyStores } from '../identity';
import session from 'express-session';
@@ -48,6 +48,7 @@ export interface RouterOptions {
tokenManager: TokenManager;
tokenFactoryAlgorithm?: string;
providerFactories?: ProviderFactories;
catalogApi?: CatalogApi;
}
/** @public */
@@ -62,6 +63,7 @@ export async function createRouter(
tokenManager,
tokenFactoryAlgorithm,
providerFactories,
catalogApi,
} = options;
const router = Router();
@@ -78,7 +80,6 @@ export async function createRouter(
logger: logger.child({ component: 'token-factory' }),
algorithm: tokenFactoryAlgorithm,
});
const catalogApi = new CatalogClient({ discoveryApi: discovery });
const secret = config.getOptionalString('auth.session.secret');
if (secret) {
@@ -127,7 +128,8 @@ export async function createRouter(
logger,
resolverContext: CatalogAuthResolverContext.create({
logger,
catalogApi,
catalogApi:
catalogApi ?? new CatalogClient({ discoveryApi: discovery }),
tokenIssuer,
tokenManager,
}),