From d1d258331dd0113857decf5eb8ec486bd1a5ff64 Mon Sep 17 00:00:00 2001 From: Taras Date: Tue, 24 Jan 2023 12:34:52 -0500 Subject: [PATCH 1/3] Return event subscriber from addIncrementalEntityProvider Signed-off-by: Taras Signed-off-by: Paul Cowan --- .../src/service/IncrementalCatalogBuilder.ts | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/plugins/catalog-backend-module-incremental-ingestion/src/service/IncrementalCatalogBuilder.ts b/plugins/catalog-backend-module-incremental-ingestion/src/service/IncrementalCatalogBuilder.ts index 6d2b3e2be5..aa2d4fe6d2 100644 --- a/plugins/catalog-backend-module-incremental-ingestion/src/service/IncrementalCatalogBuilder.ts +++ b/plugins/catalog-backend-module-incremental-ingestion/src/service/IncrementalCatalogBuilder.ts @@ -26,6 +26,7 @@ import { applyDatabaseMigrations } from '../database/migrations'; import { IncrementalIngestionDatabaseManager } from '../database/IncrementalIngestionDatabaseManager'; import { IncrementalProviderRouter } from '../router/routes'; import { Deferred } from '../util'; +import { EventParams, EventSubscriber } from '@backstage/plugin-events-node'; /** @public */ export class IncrementalCatalogBuilder { @@ -71,13 +72,15 @@ export class IncrementalCatalogBuilder { addIncrementalEntityProvider( provider: IncrementalEntityProvider, options: IncrementalEntityProviderOptions, - ) { + ): EventSubscriber { const { burstInterval, burstLength, restLength } = options; const { logger: catalogLogger, scheduler } = this.env; const ready = this.ready; const manager = this.manager; + let engine: IncrementalIngestionEngine; + this.builder.addEntityProvider({ getProviderName: provider.getProviderName.bind(provider), async connect(connection) { @@ -87,7 +90,7 @@ export class IncrementalCatalogBuilder { logger.info(`Connecting`); - const engine = new IncrementalIngestionEngine({ + engine = new IncrementalIngestionEngine({ ...options, ready, manager, @@ -112,5 +115,12 @@ export class IncrementalCatalogBuilder { }); }, }); + + return { + onEvent: (params: EventParams) => engine.onEvent(params), + get supportsEventTopics() { + return engine.supportsEventTopics; + }, + }; } } From b7e36660d5a6d1c01e2a20ab1894798ae686a810 Mon Sep 17 00:00:00 2001 From: Taras Date: Tue, 24 Jan 2023 12:51:33 -0500 Subject: [PATCH 2/3] Added changeset Signed-off-by: Taras Signed-off-by: Paul Cowan --- .changeset/poor-moons-confess.md | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 .changeset/poor-moons-confess.md diff --git a/.changeset/poor-moons-confess.md b/.changeset/poor-moons-confess.md new file mode 100644 index 0000000000..7fbdc292ed --- /dev/null +++ b/.changeset/poor-moons-confess.md @@ -0,0 +1,5 @@ +--- +'@backstage/plugin-catalog-backend-module-incremental-ingestion': minor +--- + +Return EventSubscriber from addIncrementalEntityProvider to hook up to EventsBackend From 6d7dea6ab1165e11718b317954b361a5d1d6c230 Mon Sep 17 00:00:00 2001 From: Paul Cowan Date: Tue, 24 Jan 2023 21:13:17 +0000 Subject: [PATCH 3/3] remove getter from supportsEventTopics Signed-off-by: Paul Cowan --- .../api-report.md | 3 ++- .../src/service/IncrementalCatalogBuilder.ts | 4 ++-- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/plugins/catalog-backend-module-incremental-ingestion/api-report.md b/plugins/catalog-backend-module-incremental-ingestion/api-report.md index 4bf6bb9456..fe9ef24777 100644 --- a/plugins/catalog-backend-module-incremental-ingestion/api-report.md +++ b/plugins/catalog-backend-module-incremental-ingestion/api-report.md @@ -11,6 +11,7 @@ import type { Config } from '@backstage/config'; import type { DeferredEntity } from '@backstage/plugin-catalog-backend'; import type { DurationObjectUnits } from 'luxon'; import { EventParams } from '@backstage/plugin-events-node'; +import { EventSubscriber } from '@backstage/plugin-events-node'; import type { Logger } from 'winston'; import type { PermissionEvaluator } from '@backstage/plugin-permission-common'; import type { PluginDatabaseManager } from '@backstage/backend-common'; @@ -37,7 +38,7 @@ export class IncrementalCatalogBuilder { addIncrementalEntityProvider( provider: IncrementalEntityProvider, options: IncrementalEntityProviderOptions, - ): void; + ): EventSubscriber; // (undocumented) build(): Promise<{ incrementalAdminRouter: Router; diff --git a/plugins/catalog-backend-module-incremental-ingestion/src/service/IncrementalCatalogBuilder.ts b/plugins/catalog-backend-module-incremental-ingestion/src/service/IncrementalCatalogBuilder.ts index aa2d4fe6d2..c8458be09b 100644 --- a/plugins/catalog-backend-module-incremental-ingestion/src/service/IncrementalCatalogBuilder.ts +++ b/plugins/catalog-backend-module-incremental-ingestion/src/service/IncrementalCatalogBuilder.ts @@ -118,8 +118,8 @@ export class IncrementalCatalogBuilder { return { onEvent: (params: EventParams) => engine.onEvent(params), - get supportsEventTopics() { - return engine.supportsEventTopics; + supportsEventTopics() { + return engine.supportsEventTopics(); }, }; }