|
1 | 1 | import { createBackend } from '@backstage/backend-defaults';
|
| 2 | +import { rootHttpRouterServiceFactory } from '@backstage/backend-defaults/rootHttpRouter'; |
2 | 3 | import { dynamicPluginsFeatureLoader } from '@backstage/backend-dynamic-feature-service';
|
3 | 4 | import { PackageRoles } from '@backstage/cli-node';
|
4 | 5 |
|
5 | 6 | import * as path from 'path';
|
6 | 7 |
|
7 | 8 | import { configureCorporateProxyAgent } from './corporate-proxy';
|
8 | 9 | import { CommonJSModuleLoader } from './loader';
|
9 |
| -import { transports } from './logger'; |
| 10 | +import { createStaticLogger, transports } from './logger'; |
10 | 11 | import {
|
11 | 12 | healthCheckPlugin,
|
12 | 13 | metricsPlugin,
|
13 | 14 | pluginIDProviderService,
|
14 | 15 | rbacDynamicPluginsProvider,
|
15 | 16 | } from './modules';
|
16 | 17 |
|
| 18 | +// Create a logger to cover logging static initialization tasks |
| 19 | +const staticLogger = createStaticLogger({ service: 'developer-hub-init' }); |
| 20 | +staticLogger.info('Starting Developer Hub backend'); |
| 21 | + |
17 | 22 | // RHIDP-2217: adds support for corporate proxy
|
18 | 23 | configureCorporateProxyAgent();
|
19 | 24 |
|
20 | 25 | const backend = createBackend();
|
21 | 26 |
|
| 27 | +// Install a static root HttpRouterServiceFactory configure function that can |
| 28 | +// be explicitly overridden by the user |
| 29 | +if ( |
| 30 | + (process.env.DISABLE_STATIC_ROOT_HTTP_ROUTER_CONFIG || '').toLowerCase() !== |
| 31 | + 'true' |
| 32 | +) { |
| 33 | + staticLogger.info('Using static root HttpRouterServiceFactory configuration'); |
| 34 | + backend.add( |
| 35 | + rootHttpRouterServiceFactory({ |
| 36 | + configure({ app, middleware, routes }) { |
| 37 | + if (process.env.NODE_ENV === 'development') { |
| 38 | + app.set('json spaces', 2); |
| 39 | + } |
| 40 | + app.use(middleware.helmet()); |
| 41 | + app.use(middleware.cors()); |
| 42 | + app.use(middleware.compression()); |
| 43 | + app.use(middleware.logging()); |
| 44 | + app.use(routes); |
| 45 | + app.use(middleware.notFound()); |
| 46 | + app.use(middleware.error()); |
| 47 | + }, |
| 48 | + }), |
| 49 | + ); |
| 50 | +} else { |
| 51 | + staticLogger.warn( |
| 52 | + 'Static HttpRouterServiceFactory configuration disabled, allowing custom HttpRouterServiceFactory configuration provided by a dynamic plugin', |
| 53 | + ); |
| 54 | +} |
| 55 | + |
22 | 56 | backend.add(
|
23 | 57 | dynamicPluginsFeatureLoader({
|
24 | 58 | schemaLocator(pluginPackage) {
|
|
0 commit comments