Files
backstage/plugins/signals-backend/README.md
T
Heikki Hellgren 447d21045b fix: signal disconnect loop on server start
this fixes the disconnect loop when the server has just started by
waiting for the connection to open before subsribing to events.

also includes other improvements:
- rename types to interfaces
- allow to input single receiver for signal
- use discovery api to check for upgrade path instead hard coded one

Signed-off-by: Heikki Hellgren <heikki.hellgren@op.fi>
2024-01-26 13:19:31 +02:00

1.1 KiB

signals

Welcome to the signals backend plugin!

Signals plugin allows backend plugins to publish messages to frontend plugins.

Getting started

First install the @backstage/plugin-signals-node plugin to get the SignalService set up.

Next, add Signals router to your backend in packages/backend/src/plugins/signals.ts:

import { Router } from 'express';
import { createRouter } from '@backstage/plugin-signals-backend';
import { PluginEnvironment } from '../types';

export default async function createPlugin(
  env: PluginEnvironment,
): Promise<Router> {
  return await createRouter({
    logger: env.logger,
    eventBroker: env.eventBroker,
    identity: env.identity,
    discovery: env.discovery,
  });
}

Now add the signals to packages/backend/src/index.ts:

// ...
import signals from './plugins/signals';

async function main() {
  // ...
  const signalsEnv = useHotMemoize(module, () => createEnv('signals'));

  const apiRouter = Router();
  // ...
  apiRouter.use('/signals', await signals(signalsEnv));
  apiRouter.use(notFoundHandler());
  // ...
}