diff --git a/plugins/catalog-backend/api-report.md b/plugins/catalog-backend/api-report.md index 9d542c674d..44073d19e0 100644 --- a/plugins/catalog-backend/api-report.md +++ b/plugins/catalog-backend/api-report.md @@ -27,6 +27,7 @@ import { Organizations } from 'aws-sdk'; import { PluginDatabaseManager } from '@backstage/backend-common'; import { PluginEndpointDiscovery } from '@backstage/backend-common'; import { ResourceEntityV1alpha1 } from '@backstage/catalog-model'; +import { Router } from 'express'; import { ScmIntegrationRegistry } from '@backstage/integration'; import { ScmIntegrations } from '@backstage/integration'; import { UrlReader } from '@backstage/backend-common'; @@ -269,12 +270,19 @@ export type CatalogEnvironment = { // // @public (undocumented) export interface CatalogProcessingEngine { + // (undocumented) + refresh(options: CatalogProcessingEngineRefreshOptions): Promise; // (undocumented) start(): Promise; // (undocumented) stop(): Promise; } +// @public (undocumented) +export type CatalogProcessingEngineRefreshOptions = { + entityRef: string; +}; + // Warning: (ae-missing-release-tag) "CatalogProcessingOrchestrator" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) // // @public (undocumented) @@ -1194,6 +1202,7 @@ export class NextCatalogBuilder { locationAnalyzer: LocationAnalyzer; processingEngine: CatalogProcessingEngine; locationService: LocationService; + router: Router; }>; // Warning: (tsdoc-param-tag-missing-hyphen) The @param block should be followed by a parameter name and then a hyphen replaceEntityPolicies(policies: EntityPolicy[]): NextCatalogBuilder; @@ -1229,6 +1238,8 @@ export interface NextRouterOptions { locationService: LocationService; // (undocumented) logger: Logger_2; + // (undocumented) + processingEngine?: CatalogProcessingEngine; } // Warning: (ae-missing-release-tag) "notFoundError" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) @@ -1384,6 +1395,8 @@ export interface RouterOptions { locationService?: LocationService; // (undocumented) logger: Logger_2; + // (undocumented) + processingEngine?: CatalogProcessingEngine; } // Warning: (tsdoc-param-tag-missing-hyphen) The @param block should be followed by a parameter name and then a hyphen diff --git a/plugins/catalog-backend/src/next/DefaultCatalogProcessingEngine.ts b/plugins/catalog-backend/src/next/DefaultCatalogProcessingEngine.ts index 998acb230a..cb3a9c6e30 100644 --- a/plugins/catalog-backend/src/next/DefaultCatalogProcessingEngine.ts +++ b/plugins/catalog-backend/src/next/DefaultCatalogProcessingEngine.ts @@ -36,7 +36,7 @@ import { EntityProvider, EntityProviderConnection, EntityProviderMutation, - EntityRefreshOptions, + CatalogProcessingEngineRefreshOptions, } from './types'; class Connection implements EntityProviderConnection { @@ -240,7 +240,7 @@ export class DefaultCatalogProcessingEngine implements CatalogProcessingEngine { } } - async refresh(options: EntityRefreshOptions) { + async refresh(options: CatalogProcessingEngineRefreshOptions) { await this.processingDatabase.transaction(async tx => { const { entityRefs } = await this.processingDatabase.listAncestors(tx, { entityRef: options.entityRef, diff --git a/plugins/catalog-backend/src/next/NextRouter.ts b/plugins/catalog-backend/src/next/NextRouter.ts index 03d4005769..4c8a43b10b 100644 --- a/plugins/catalog-backend/src/next/NextRouter.ts +++ b/plugins/catalog-backend/src/next/NextRouter.ts @@ -37,7 +37,7 @@ import { disallowReadonlyMode, validateRequestBody } from '../service/util'; import { CatalogProcessingEngine, LocationService, - EntityRefreshOptions, + CatalogProcessingEngineRefreshOptions, } from './types'; export interface NextRouterOptions { @@ -72,7 +72,7 @@ export async function createNextRouter( if (processingEngine) { router.post('/refresh', async (req, res) => { - const refreshOptions: EntityRefreshOptions = req.body; + const refreshOptions: CatalogProcessingEngineRefreshOptions = req.body; await processingEngine.refresh(refreshOptions); res.status(200).send(); }); diff --git a/plugins/catalog-backend/src/next/index.ts b/plugins/catalog-backend/src/next/index.ts index cdd81d9f4d..b6c973c65d 100644 --- a/plugins/catalog-backend/src/next/index.ts +++ b/plugins/catalog-backend/src/next/index.ts @@ -28,4 +28,5 @@ export type { CatalogProcessingEngine, LocationService, LocationStore, + CatalogProcessingEngineRefreshOptions, } from './types'; diff --git a/plugins/catalog-backend/src/next/types.ts b/plugins/catalog-backend/src/next/types.ts index 91c8c47fe4..6c77dab90c 100644 --- a/plugins/catalog-backend/src/next/types.ts +++ b/plugins/catalog-backend/src/next/types.ts @@ -37,10 +37,11 @@ export interface LocationStore { export interface CatalogProcessingEngine { start(): Promise; stop(): Promise; - refresh(options: EntityRefreshOptions): Promise; + refresh(options: CatalogProcessingEngineRefreshOptions): Promise; } -export type EntityRefreshOptions = { entityRef: string }; +/** @public */ +export type CatalogProcessingEngineRefreshOptions = { entityRef: string }; export type EntityProviderMutation = | { type: 'full'; entities: DeferredEntity[] } diff --git a/plugins/catalog-backend/src/service/router.ts b/plugins/catalog-backend/src/service/router.ts index 6a521b4475..144dc459bb 100644 --- a/plugins/catalog-backend/src/service/router.ts +++ b/plugins/catalog-backend/src/service/router.ts @@ -31,7 +31,7 @@ import { HigherOrderOperation, LocationAnalyzer } from '../ingestion/types'; import { LocationService, CatalogProcessingEngine, - EntityRefreshOptions, + CatalogProcessingEngineRefreshOptions, } from '../next/types'; import { basicEntityFilter, @@ -81,7 +81,7 @@ export async function createRouter( if (processingEngine) { router.post('/refresh', async (req, res) => { - const refreshOptions: EntityRefreshOptions = req.body; + const refreshOptions: CatalogProcessingEngineRefreshOptions = req.body; await processingEngine.refresh(refreshOptions); res.status(200).send(); });