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>
This commit is contained in:
RedlineTriad
2024-10-18 19:16:15 +02:00
parent b05e6f1f86
commit e02a02bb20
7 changed files with 20 additions and 10 deletions
+6
View File
@@ -0,0 +1,6 @@
---
'@backstage/plugin-events-backend': patch
'@backstage/plugin-events-node': patch
---
Fix `events.useEventBus` by propagating config to `DefaultEventsService`
+2 -1
View File
@@ -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({
+2 -2
View File
@@ -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<void>;
// (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<EventPublisher | Array<EventPublisher>>
@@ -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<void> {
@@ -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 {
+1 -1
View File
@@ -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 => {
// ...
+3 -2
View File
@@ -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 },