Skip to content

Commit 553d373

Browse files
committed
Migrate to new backend
Still need to migrate plugins and auth
1 parent a27e10b commit 553d373

File tree

2 files changed

+16
-107
lines changed

2 files changed

+16
-107
lines changed

backstage/app-config.yaml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,9 @@ backend:
3030
- host: raw.githubusercontent.com
3131
paths:
3232
- /DiamondLightSource
33+
# Disable new default auth to work with legacy plugins
34+
auth:
35+
dangerouslyDisableDefaultAuthPolicy: true
3336

3437
integrations:
3538
github:
Lines changed: 13 additions & 107 deletions
Original file line numberDiff line numberDiff line change
@@ -1,107 +1,13 @@
1-
import {
2-
CacheManager,
3-
createServiceBuilder,
4-
DatabaseManager,
5-
getRootLogger,
6-
loadBackendConfig,
7-
notFoundHandler,
8-
ServerTokenManager,
9-
SingleHostDiscovery,
10-
useHotMemoize,
11-
} from '@backstage/backend-common';
12-
import { UrlReaders } from '@backstage/backend-defaults/urlReader';
13-
import { TaskScheduler } from '@backstage/backend-tasks';
14-
import { Config } from '@backstage/config';
15-
import { DefaultIdentityClient } from '@backstage/plugin-auth-node';
16-
import { ServerPermissionClient } from '@backstage/plugin-permission-node';
17-
import Router from 'express-promise-router';
18-
import auth from './plugins/auth';
19-
import catalog from './plugins/catalog';
20-
import gitlab from './plugins/gitlab';
21-
import proxy from './plugins/proxy';
22-
import scaffolder from './plugins/scaffolder';
23-
import search from './plugins/search';
24-
import techdocs from './plugins/techdocs';
25-
import { PluginEnvironment } from './types';
26-
27-
function makeCreateEnv(config: Config) {
28-
const root = getRootLogger();
29-
const reader = UrlReaders.default({ logger: root, config });
30-
const discovery = SingleHostDiscovery.fromConfig(config);
31-
const cacheManager = CacheManager.fromConfig(config);
32-
const databaseManager = DatabaseManager.fromConfig(config, { logger: root });
33-
const tokenManager = ServerTokenManager.noop();
34-
const taskScheduler = TaskScheduler.fromConfig(config);
35-
36-
const identity = DefaultIdentityClient.create({
37-
discovery,
38-
});
39-
const permissions = ServerPermissionClient.fromConfig(config, {
40-
discovery,
41-
tokenManager,
42-
});
43-
44-
root.info(`Created UrlReader ${reader}`);
45-
46-
return (plugin: string): PluginEnvironment => {
47-
const logger = root.child({ type: 'plugin', plugin });
48-
const database = databaseManager.forPlugin(plugin);
49-
const cache = cacheManager.forPlugin(plugin);
50-
const scheduler = taskScheduler.forPlugin(plugin);
51-
return {
52-
logger,
53-
database,
54-
cache,
55-
config,
56-
reader,
57-
discovery,
58-
tokenManager,
59-
scheduler,
60-
permissions,
61-
identity,
62-
};
63-
};
64-
}
65-
66-
async function main() {
67-
const config = await loadBackendConfig({
68-
argv: process.argv,
69-
logger: getRootLogger(),
70-
});
71-
const createEnv = makeCreateEnv(config);
72-
73-
const catalogEnv = useHotMemoize(module, () => createEnv('catalog'));
74-
const scaffolderEnv = useHotMemoize(module, () => createEnv('scaffolder'));
75-
const authEnv = useHotMemoize(module, () => createEnv('auth'));
76-
const proxyEnv = useHotMemoize(module, () => createEnv('proxy'));
77-
const techdocsEnv = useHotMemoize(module, () => createEnv('techdocs'));
78-
const searchEnv = useHotMemoize(module, () => createEnv('search'));
79-
const gitlabEnv = useHotMemoize(module, () => createEnv('gitlab'));
80-
81-
const apiRouter = Router();
82-
apiRouter.use('/catalog', await catalog(catalogEnv));
83-
apiRouter.use('/scaffolder', await scaffolder(scaffolderEnv));
84-
apiRouter.use('/auth', await auth(authEnv));
85-
apiRouter.use('/techdocs', await techdocs(techdocsEnv));
86-
apiRouter.use('/proxy', await proxy(proxyEnv));
87-
apiRouter.use('/search', await search(searchEnv));
88-
apiRouter.use('/gitlab', await gitlab(gitlabEnv));
89-
90-
// Add backends ABOVE this line; this 404 handler is the catch-all fallback
91-
apiRouter.use(notFoundHandler());
92-
93-
const service = createServiceBuilder(module)
94-
.loadConfig(config)
95-
.addRouter('/api', apiRouter);
96-
97-
await service.start().catch(err => {
98-
console.log(err);
99-
process.exit(1);
100-
});
101-
}
102-
103-
module.hot?.accept();
104-
main().catch(error => {
105-
console.error('Backend failed to start up', error);
106-
process.exit(1);
107-
});
1+
import { legacyPlugin } from '@backstage/backend-common';
2+
import { createBackend } from '@backstage/backend-defaults';
3+
4+
const backend = createBackend();
5+
backend.add(legacyPlugin('auth', import('./plugins/auth')));
6+
backend.add(legacyPlugin('catalog', import('./plugins/catalog')));
7+
backend.add(legacyPlugin('gitlab', import('./plugins/gitlab')));
8+
backend.add(legacyPlugin('proxy', import('./plugins/proxy')));
9+
backend.add(legacyPlugin('scaffolder', import('./plugins/scaffolder')));
10+
backend.add(legacyPlugin('search', import('./plugins/search')));
11+
backend.add(legacyPlugin('techdocs', import('./plugins/techdocs')));
12+
13+
backend.start();

0 commit comments

Comments
 (0)