Welcome to the blameless backstage backend plugin!
Backstage Backend Sync Plugin is a backend plugin designed specifically for Blameless clients who need to synchronize their entities effortlessly. With this plugin, clients can seamlessly sync their entities with blameless on a periodic interval, ensuring consistency and accuracy.
To install the Blameless backstage plugin. run the following command in the root of your backstage app You can install MyNpmPackage via yarn:
yarn --cwd packages/backend add @blamelesshq/blameless-backstage app
To utilize the Blameless plugin, please ensure that the following config are added to you config yaml file:
blameless:
authKey: your blameless-key # xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
baseUrl: your blameless base url # https://example.blameless.com
interval: 30 # in minutes
kinds:
- Component
To use the plugin add the following code to your
packages/backend/src/index.ts
// packages/backend/src/index.ts
import { createBackend } from '@backstage/backend-defaults';
const backend = createBackend();
backend.add(import('@backstage/plugin-app-backend/alpha'));
backend.add(import('@backstage/plugin-catalog-backend/alpha'));
backend.add(import('@backstage/plugin-scaffolder-backend/alpha'));
backend.add(
import('@backstage/plugin-catalog-backend-module-scaffolder-entity-model'),
);
...
backend.add(import('@blamelesshq/blameless-backstage')); //<<-- Add the blameless plugin
....
Create new file under the plugins call it blameless
// packages/backend/src/plugins/blameless.ts
import {createRouter} from '@blamelesshq/blameless-backstage';
import { Router } from 'express';
import { PluginEnvironment } from '../types';
export default async function createPlugin(
env: PluginEnvironment,
): Promise<Router> {
// Here is where you will add all of the required initialization code that
// your backend plugin needs to be able to start!
// The env contains a lot of goodies, but our router currently only
// needs a logger
return await createRouter({
logger: env.logger,
});
}
Add the following the index file
// packages/backend/src/index.ts
import blameless from './plugins/blameless';
...
const blamelessEnv = useHotMemoize(module, () => createEnv('blameless'));
....
apiRouter.use('/blameless', await blameless(blamelessEnv));