1- /*
2- * Hi!
3- *
4- * Note that this is an EXAMPLE Backstage backend. Please check the README.
5- *
6- * Happy hacking!
7- */
1+ import { createBackend } from '@backstage/backend-defaults' ;
2+ // import { customGoogleAuth } from './plugins/plugins_helper/googleCustomAuth';
83
9- import Router from 'express-promise-router' ;
10- import {
11- createServiceBuilder ,
12- loadBackendConfig ,
13- getRootLogger ,
14- useHotMemoize ,
15- notFoundHandler ,
16- CacheManager ,
17- DatabaseManager ,
18- HostDiscovery ,
19- UrlReaders ,
20- ServerTokenManager ,
21- } from '@backstage/backend-common' ;
22- import { TaskScheduler } from '@backstage/backend-tasks' ;
23- import { Config } from '@backstage/config' ;
24- import app from './plugins/app' ;
25- import auth from './plugins/auth' ;
26- import catalog from './plugins/catalog' ;
27- import scaffolder from './plugins/scaffolder' ;
28- import proxy from './plugins/proxy' ;
29- import techdocs from './plugins/techdocs' ;
30- import search from './plugins/search' ;
31- import { PluginEnvironment } from './types' ;
32- import { ServerPermissionClient } from '@backstage/plugin-permission-node' ;
33- import { DefaultIdentityClient } from '@backstage/plugin-auth-node' ;
4+ const backend = createBackend ( ) ;
345
35- function makeCreateEnv ( config : Config ) {
36- const root = getRootLogger ( ) ;
37- const reader = UrlReaders . default ( { logger : root , config } ) ;
38- const discovery = HostDiscovery . fromConfig ( config ) ;
39- const cacheManager = CacheManager . fromConfig ( config ) ;
40- const databaseManager = DatabaseManager . fromConfig ( config , { logger : root } ) ;
41- const tokenManager = ServerTokenManager . noop ( ) ;
42- const taskScheduler = TaskScheduler . fromConfig ( config , { databaseManager } ) ;
6+ backend . add ( import ( '@backstage/plugin-app-backend' ) ) ;
7+ // backend.add(import('@spotify/backstage-plugin-soundcheck-backend'));
8+ backend . add ( import ( '@backstage/plugin-proxy-backend' ) )
9+ backend . add ( import ( '@backstage/plugin-scaffolder-backend' ) ) ;
10+ backend . add ( import ( '@backstage/plugin-techdocs-backend' ) ) ;
4311
44- const identity = DefaultIdentityClient . create ( {
45- discovery,
46- } ) ;
47- const permissions = ServerPermissionClient . fromConfig ( config , {
48- discovery,
49- tokenManager,
50- } ) ;
12+ // Add the auth backend
13+ backend . add ( import ( '@backstage/plugin-auth-backend' ) ) ;
14+ backend . add ( import ( '@backstage/plugin-auth-backend-module-google-provider' ) ) ;
15+ // backend.add(customGoogleAuth);
5116
52- root . info ( `Created UrlReader ${ reader } ` ) ;
17+ // Add the catalog backend and the catalog entities
18+ backend . add ( import ( '@backstage/plugin-catalog-backend' ) ) ;
19+ backend . add ( import ( '@backstage/plugin-catalog-backend-module-scaffolder-entity-model' ) ,
20+ ) ;
5321
54- return ( plugin : string ) : PluginEnvironment => {
55- const logger = root . child ( { type : 'plugin' , plugin } ) ;
56- const database = databaseManager . forPlugin ( plugin ) ;
57- const cache = cacheManager . forPlugin ( plugin ) ;
58- const scheduler = taskScheduler . forPlugin ( plugin ) ;
59- return {
60- logger,
61- database,
62- cache,
63- config,
64- reader,
65- discovery,
66- tokenManager,
67- scheduler,
68- permissions,
69- identity,
70- } ;
71- } ;
72- }
22+ backend . add ( import ( '@backstage/plugin-permission-backend' ) ) ;
23+ backend . add (
24+ import ( '@backstage/plugin-permission-backend-module-allow-all-policy' ) ,
25+ ) ;
7326
74- async function main ( ) {
75- const config = await loadBackendConfig ( {
76- argv : process . argv ,
77- logger : getRootLogger ( ) ,
78- } ) ;
79- const createEnv = makeCreateEnv ( config ) ;
27+ backend . add ( import ( '@backstage/plugin-search-backend' ) ) ;
28+ backend . add ( import ( '@backstage/plugin-search-backend-module-pg' ) ) ;
8029
81- const catalogEnv = useHotMemoize ( module , ( ) => createEnv ( 'catalog' ) ) ;
82- const scaffolderEnv = useHotMemoize ( module , ( ) => createEnv ( 'scaffolder' ) ) ;
83- const authEnv = useHotMemoize ( module , ( ) => createEnv ( 'auth' ) ) ;
84- const proxyEnv = useHotMemoize ( module , ( ) => createEnv ( 'proxy' ) ) ;
85- const techdocsEnv = useHotMemoize ( module , ( ) => createEnv ( 'techdocs' ) ) ;
86- const searchEnv = useHotMemoize ( module , ( ) => createEnv ( 'search' ) ) ;
87- const appEnv = useHotMemoize ( module , ( ) => createEnv ( 'app' ) ) ;
30+ backend . add ( import ( '@backstage/plugin-search-backend-module-catalog' ) ) ;
31+ backend . add ( import ( '@backstage/plugin-search-backend-module-techdocs' ) ) ;
8832
33+ backend . add ( import ( '@backstage/plugin-kubernetes-backend' ) ) ;
8934
90- const apiRouter = Router ( ) ;
91- apiRouter . use ( '/catalog' , await catalog ( catalogEnv ) ) ;
92- apiRouter . use ( '/scaffolder' , await scaffolder ( scaffolderEnv ) ) ;
93- apiRouter . use ( '/auth' , await auth ( authEnv ) ) ;
94- apiRouter . use ( '/techdocs' , await techdocs ( techdocsEnv ) ) ;
95- apiRouter . use ( '/proxy' , await proxy ( proxyEnv ) ) ;
96- apiRouter . use ( '/search' , await search ( searchEnv ) ) ;
9735
98-
99- // Add backends ABOVE this line; this 404 handler is the catch-all fallback
100- apiRouter . use ( notFoundHandler ( ) ) ;
101-
102- const service = createServiceBuilder ( module )
103- . loadConfig ( config )
104- . addRouter ( '/api' , apiRouter )
105- . addRouter ( '' , await app ( appEnv ) ) ;
106-
107- await service . start ( ) . catch ( err => {
108- console . log ( err ) ;
109- process . exit ( 1 ) ;
110- } ) ;
111- }
112-
113- module . hot ?. accept ( ) ;
114- main ( ) . catch ( error => {
115- console . error ( 'Backend failed to start up' , error ) ;
116- process . exit ( 1 ) ;
117- } ) ;
36+ backend . start ( ) ;
0 commit comments