From e02a02bb20f760fd92ebfcfa6430a0cfa9043e20 Mon Sep 17 00:00:00 2001 From: RedlineTriad <39059512+RedlineTriad@users.noreply.github.com> Date: Fri, 18 Oct 2024 19:16:15 +0200 Subject: [PATCH] fix: `useEventBus` by propagating config to `DefaultEventsService` This setting was added by reading from an optional `config` argument. This was never passed, so `auto` was always assumed. https://github.com/backstage/backstage/pull/27227/files#diff-cffd40a187b4fc584f03c968517fbacc110bde6a467f2384bbd92b803d3db47eR374-R379 Signed-off-by: RedlineTriad <39059512+RedlineTriad@users.noreply.github.com> --- .changeset/itchy-elephants-trade.md | 6 ++++++ packages/backend-legacy/src/index.ts | 3 ++- plugins/events-backend/report.api.md | 4 ++-- plugins/events-backend/src/service/DefaultEventBroker.ts | 5 +++-- plugins/events-backend/src/service/EventsBackend.ts | 5 +++-- plugins/events-node/README.md | 2 +- plugins/events-node/src/service.ts | 5 +++-- 7 files changed, 20 insertions(+), 10 deletions(-) create mode 100644 .changeset/itchy-elephants-trade.md diff --git a/.changeset/itchy-elephants-trade.md b/.changeset/itchy-elephants-trade.md new file mode 100644 index 0000000000..8ac6aaeeb9 --- /dev/null +++ b/.changeset/itchy-elephants-trade.md @@ -0,0 +1,6 @@ +--- +'@backstage/plugin-events-backend': patch +'@backstage/plugin-events-node': patch +--- + +Fix `events.useEventBus` by propagating config to `DefaultEventsService` diff --git a/packages/backend-legacy/src/index.ts b/packages/backend-legacy/src/index.ts index 9a581e7d26..0b566910d1 100644 --- a/packages/backend-legacy/src/index.ts +++ b/packages/backend-legacy/src/index.ts @@ -73,9 +73,10 @@ function makeCreateEnv(config: Config) { discovery, }); - const eventsService = DefaultEventsService.create({ logger: root }); + const eventsService = DefaultEventsService.create({ logger: root, config }); const eventBroker = new DefaultEventBroker( root.child({ type: 'plugin' }), + config, eventsService, ); const signalsService = DefaultSignalsService.create({ diff --git a/plugins/events-backend/report.api.md b/plugins/events-backend/report.api.md index fb9f5fb237..0923db1921 100644 --- a/plugins/events-backend/report.api.md +++ b/plugins/events-backend/report.api.md @@ -18,7 +18,7 @@ import { LoggerService } from '@backstage/backend-plugin-api'; // @public @deprecated export class DefaultEventBroker implements EventBroker { // @deprecated - constructor(logger: LoggerService, events?: EventsService); + constructor(logger: LoggerService, config?: Config, events?: EventsService); // (undocumented) publish(params: EventParams): Promise; // (undocumented) @@ -29,7 +29,7 @@ export class DefaultEventBroker implements EventBroker { // @public @deprecated export class EventsBackend { - constructor(logger: Logger); + constructor(logger: Logger, config?: Config); // (undocumented) addPublishers( ...publishers: Array> diff --git a/plugins/events-backend/src/service/DefaultEventBroker.ts b/plugins/events-backend/src/service/DefaultEventBroker.ts index 27523f3118..a092782d96 100644 --- a/plugins/events-backend/src/service/DefaultEventBroker.ts +++ b/plugins/events-backend/src/service/DefaultEventBroker.ts @@ -15,6 +15,7 @@ */ import { LoggerService } from '@backstage/backend-plugin-api'; +import { Config } from '@backstage/config'; import { DefaultEventsService, EventBroker, @@ -41,8 +42,8 @@ export class DefaultEventBroker implements EventBroker { * An instance can be passed (required for a mixed mode), otherwise a new instance gets created internally. * @deprecated use `DefaultEventsService` directly instead */ - constructor(logger: LoggerService, events?: EventsService) { - this.events = events ?? DefaultEventsService.create({ logger }); + constructor(logger: LoggerService, config?: Config, events?: EventsService) { + this.events = events ?? DefaultEventsService.create({ logger, config }); } async publish(params: EventParams): Promise { diff --git a/plugins/events-backend/src/service/EventsBackend.ts b/plugins/events-backend/src/service/EventsBackend.ts index 2c93663b46..8ef9007e1e 100644 --- a/plugins/events-backend/src/service/EventsBackend.ts +++ b/plugins/events-backend/src/service/EventsBackend.ts @@ -21,6 +21,7 @@ import { } from '@backstage/plugin-events-node'; import { Logger } from 'winston'; import { DefaultEventBroker } from './DefaultEventBroker'; +import { Config } from '@backstage/config'; /** * A builder that helps wire up all component parts of the event management. @@ -33,8 +34,8 @@ export class EventsBackend { private publishers: EventPublisher[] = []; private subscribers: EventSubscriber[] = []; - constructor(logger: Logger) { - this.eventBroker = new DefaultEventBroker(logger); + constructor(logger: Logger, config?: Config) { + this.eventBroker = new DefaultEventBroker(logger, config); } setEventBroker(eventBroker: EventBroker): EventsBackend { diff --git a/plugins/events-node/README.md b/plugins/events-node/README.md index b07303ff72..0811bde72c 100644 --- a/plugins/events-node/README.md +++ b/plugins/events-node/README.md @@ -27,7 +27,7 @@ import { DefaultEventsService } from '@backstage/plugin-events-node'; function makeCreateEnv(config: Config) { // ... - const eventsService = DefaultEventsService.create({ logger: root }); + const eventsService = DefaultEventsService.create({ logger: root, config }); // ... return (plugin: string): PluginEnvironment => { // ... diff --git a/plugins/events-node/src/service.ts b/plugins/events-node/src/service.ts index 4f758f44e6..a70eb38d97 100644 --- a/plugins/events-node/src/service.ts +++ b/plugins/events-node/src/service.ts @@ -42,9 +42,10 @@ export const eventsServiceFactory = createServiceFactory({ logger: coreServices.logger, lifecycle: coreServices.lifecycle, auth: coreServices.auth, + config: coreServices.rootConfig, }, - async createRootContext({ rootLogger }) { - return DefaultEventsService.create({ logger: rootLogger }); + async createRootContext({ rootLogger, config }) { + return DefaultEventsService.create({ logger: rootLogger, config }); }, async factory( { pluginMetadata, discovery, logger, lifecycle, auth },