Merge pull request #14422 from kvmw/kvmw/inject-catalog-api
Inject optional CatalogApi in auth-backend createRouter function.
This commit is contained in:
@@ -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.
|
||||
@@ -669,6 +669,8 @@ export const readState: (stateString: string) => OAuthState;
|
||||
|
||||
// @public (undocumented)
|
||||
export interface RouterOptions {
|
||||
// (undocumented)
|
||||
catalogApi?: CatalogApi;
|
||||
// (undocumented)
|
||||
config: Config;
|
||||
// (undocumented)
|
||||
|
||||
@@ -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,
|
||||
}),
|
||||
|
||||
Reference in New Issue
Block a user