@tduniec/backstage-plugin-time-saver-backend
Version:
This plugin provides an implementation of charts and statistics related to your time savings that are coming from usage of your templates. Plugins is built from frontend and backend part. Backend plugin is responsible for scheduled stats parsing process a
86 lines (80 loc) • 2.65 kB
JavaScript
'use strict';
var backendPluginApi = require('@backstage/backend-plugin-api');
var rootHttpRouter = require('@backstage/backend-defaults/rootHttpRouter');
var express = require('express');
var Router = require('express-promise-router');
var pluginInitializer = require('./pluginInitializer.cjs.js');
function _interopDefaultCompat (e) { return e && typeof e === 'object' && 'default' in e ? e : { default: e }; }
var express__default = /*#__PURE__*/_interopDefaultCompat(express);
var Router__default = /*#__PURE__*/_interopDefaultCompat(Router);
function registerRouter() {
const router = Router__default.default();
router.use(express__default.default.json());
return router;
}
async function createRouter(options) {
const { logger, config, database, scheduler, lifecycle, auth } = options;
const baseRouter = registerRouter();
const plugin = await pluginInitializer.PluginInitializer.builder(
baseRouter,
logger,
config,
auth,
database,
scheduler,
lifecycle
);
const router = plugin.timeSaverRouter;
router.use(rootHttpRouter.MiddlewareFactory.create({ config, logger }).error);
return router;
}
const timeSaverPlugin = backendPluginApi.createBackendPlugin({
pluginId: "time-saver",
register(env) {
env.registerInit({
deps: {
logger: backendPluginApi.coreServices.logger,
config: backendPluginApi.coreServices.rootConfig,
auth: backendPluginApi.coreServices.auth,
scheduler: backendPluginApi.coreServices.scheduler,
database: backendPluginApi.coreServices.database,
httpRouter: backendPluginApi.coreServices.httpRouter,
urlReader: backendPluginApi.coreServices.urlReader,
lifecycle: backendPluginApi.coreServices.lifecycle
},
async init({
auth,
config,
logger,
scheduler,
database,
httpRouter,
lifecycle
}) {
const baseRouter = registerRouter();
const plugin = await pluginInitializer.PluginInitializer.builder(
baseRouter,
logger,
config,
auth,
database,
scheduler,
lifecycle
);
const router = plugin.timeSaverRouter;
httpRouter.use(router);
httpRouter.addAuthPolicy({
path: "/migrate",
allow: "unauthenticated"
});
httpRouter.addAuthPolicy({
path: "/generate-sample-classification",
allow: "unauthenticated"
});
}
});
}
});
exports.createRouter = createRouter;
exports.timeSaverPlugin = timeSaverPlugin;
//# sourceMappingURL=router.cjs.js.map