@backstage/backend-defaults
Version:
Backend defaults used by Backstage backend apps
76 lines (70 loc) • 2.94 kB
JavaScript
;
var Router = require('express-promise-router');
var backendPluginApi = require('@backstage/backend-plugin-api');
var createAuthIntegrationRouter = require('./http/createAuthIntegrationRouter.cjs.js');
var createCredentialsBarrier = require('./http/createCredentialsBarrier.cjs.js');
var createLifecycleMiddleware = require('./http/createLifecycleMiddleware.cjs.js');
var createCookieAuthRefreshMiddleware = require('./http/createCookieAuthRefreshMiddleware.cjs.js');
require('express');
require('lodash/trimEnd');
require('http');
require('https');
require('fs-extra');
require('path');
require('node-forge');
var MiddlewareFactory = require('../rootHttpRouter/http/MiddlewareFactory.cjs.js');
require('minimatch');
require('helmet');
require('lodash/kebabCase');
require('../rootHttpRouter/rootHttpRouterServiceFactory.cjs.js');
var createRateLimitMiddleware = require('./http/createRateLimitMiddleware.cjs.js');
function _interopDefaultCompat (e) { return e && typeof e === 'object' && 'default' in e ? e : { default: e }; }
var Router__default = /*#__PURE__*/_interopDefaultCompat(Router);
const httpRouterServiceFactory = backendPluginApi.createServiceFactory({
service: backendPluginApi.coreServices.httpRouter,
initialization: "always",
deps: {
plugin: backendPluginApi.coreServices.pluginMetadata,
config: backendPluginApi.coreServices.rootConfig,
lifecycle: backendPluginApi.coreServices.lifecycle,
rootHttpRouter: backendPluginApi.coreServices.rootHttpRouter,
auth: backendPluginApi.coreServices.auth,
httpAuth: backendPluginApi.coreServices.httpAuth,
logger: backendPluginApi.coreServices.logger
},
async factory({
auth,
httpAuth,
config,
plugin,
rootHttpRouter,
lifecycle,
logger
}) {
const router = Router__default.default();
router.use(createRateLimitMiddleware.createRateLimitMiddleware({ pluginId: plugin.getId(), config }));
rootHttpRouter.use(`/api/${plugin.getId()}`, router);
const credentialsBarrier = createCredentialsBarrier.createCredentialsBarrier({
httpAuth,
config
});
router.use(createAuthIntegrationRouter.createAuthIntegrationRouter({ auth }));
router.use(createLifecycleMiddleware.createLifecycleMiddleware({ config, lifecycle }));
router.use(credentialsBarrier.middleware);
router.use(createCookieAuthRefreshMiddleware.createCookieAuthRefreshMiddleware({ auth, httpAuth }));
const pluginRoutes = Router__default.default();
router.use(pluginRoutes);
const middleware = MiddlewareFactory.MiddlewareFactory.create({ config, logger });
router.use(middleware.error());
return {
use(handler) {
pluginRoutes.use(handler);
},
addAuthPolicy(policy) {
credentialsBarrier.addAuthPolicy(policy);
}
};
}
});
exports.httpRouterServiceFactory = httpRouterServiceFactory;
//# sourceMappingURL=httpRouterServiceFactory.cjs.js.map