Files
backstage/plugins/signals-backend
github-actions[bot] 0972164fbc Version Packages
2024-05-14 12:02:01 +00:00
..
2024-05-14 12:02:01 +00:00
2024-02-12 11:06:30 +01:00
2024-05-14 12:02:01 +00:00

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 SignalsService 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());
  // ...
}