From 6b1e63c2fc0a0f5b37a52b8edea8a41f4818e08c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9mi=20DOREAU?= Date: Sun, 23 Aug 2020 00:32:20 +0200 Subject: [PATCH 1/4] feat(create-app): add missing plugins --- .../default-app/packages/app/package.json.hbs | 6 +++ .../default-app/packages/app/src/apis.ts | 38 ++++++++++++++++++- .../default-app/packages/app/src/plugins.ts | 6 +++ .../default-app/packages/app/src/sidebar.tsx | 9 +++++ 4 files changed, 57 insertions(+), 2 deletions(-) diff --git a/packages/create-app/templates/default-app/packages/app/package.json.hbs b/packages/create-app/templates/default-app/packages/app/package.json.hbs index 7d34a94c7b..704b04ceca 100644 --- a/packages/create-app/templates/default-app/packages/app/package.json.hbs +++ b/packages/create-app/templates/default-app/packages/app/package.json.hbs @@ -11,6 +11,12 @@ "@backstage/plugin-register-component": "^{{version}}", "@backstage/plugin-scaffolder": "^{{version}}", "@backstage/plugin-techdocs": "^{{version}}", + "@backstage/plugin-circleci": "^{{version}}", + "@backstage/plugin-explore": "^{{version}}", + "@backstage/plugin-lighthouse": "^{{version}}", + "@backstage/plugin-tech-radar": "^{{version}}", + "@backstage/plugin-github-actions": "^{{version}}", + "@backstage/plugin-sentry": "^{{version}}", "@backstage/test-utils": "^{{version}}", "@backstage/theme": "^{{version}}", "history": "^5.0.0", diff --git a/packages/create-app/templates/default-app/packages/app/src/apis.ts b/packages/create-app/templates/default-app/packages/app/src/apis.ts index 7fc59cc9d7..02b5898884 100644 --- a/packages/create-app/templates/default-app/packages/app/src/apis.ts +++ b/packages/create-app/templates/default-app/packages/app/src/apis.ts @@ -14,15 +14,33 @@ import { WebStorage, } from '@backstage/core'; -import { catalogApiRef, CatalogClient } from '@backstage/plugin-catalog'; +import { + lighthouseApiRef, + LighthouseRestApi, +} from '@backstage/plugin-lighthouse'; -import { scaffolderApiRef, ScaffolderApi } from '@backstage/plugin-scaffolder'; +import { + GithubActionsClient, + githubActionsApiRef, +} from '@backstage/plugin-github-actions'; import { techdocsStorageApiRef, TechDocsStorageApi, + + techdocsStorageApiRef, + TechDocsStorageApi, } from '@backstage/plugin-techdocs'; +import { techRadarApiRef, TechRadar } from '@backstage/plugin-tech-radar'; + +import { catalogApiRef, CatalogClient } from '@backstage/plugin-catalog'; +import { CircleCIApi, circleCIApiRef } from '@backstage/plugin-circleci'; + +import { scaffolderApiRef, ScaffolderApi } from '@backstage/plugin-scaffolder'; + + + export const apis = (config: ConfigApi) => { // eslint-disable-next-line no-console console.log(`Creating APIs for ${config.getString('app.title')}`); @@ -46,9 +64,25 @@ export const apis = (config: ConfigApi) => { builder.add(oauthRequestApiRef, new OAuthRequestManager()); builder.add(catalogApiRef, new CatalogClient({ discoveryApi })); + builder.add(githubActionsApiRef, new GithubActionsClient()); + + builder.add(lighthouseApiRef, new LighthouseRestApi('http://localhost:3003')); + + builder.add( + circleCIApiRef, + new CircleCIApi(`${backendUrl}/proxy/circleci/api`), + ); builder.add(scaffolderApiRef, new ScaffolderApi({ discoveryApi })); + builder.add( + techRadarApiRef, + new TechRadar({ + width: 1500, + height: 800, + }), + ); + builder.add( techdocsStorageApiRef, new TechDocsStorageApi({ apiOrigin: techdocsStorageUrl }), diff --git a/packages/create-app/templates/default-app/packages/app/src/plugins.ts b/packages/create-app/templates/default-app/packages/app/src/plugins.ts index f6bef70188..0d54c55649 100644 --- a/packages/create-app/templates/default-app/packages/app/src/plugins.ts +++ b/packages/create-app/templates/default-app/packages/app/src/plugins.ts @@ -2,3 +2,9 @@ export { plugin as CatalogPlugin } from '@backstage/plugin-catalog'; export { plugin as RegisterComponent } from '@backstage/plugin-register-component'; export { plugin as ScaffolderPlugin } from '@backstage/plugin-scaffolder'; export { plugin as TechDocsPlugin } from '@backstage/plugin-techdocs'; +export { plugin as Explore } from '@backstage/plugin-explore'; +export { plugin as Circleci } from '@backstage/plugin-circleci'; +export { plugin as LighthousePlugin } from '@backstage/plugin-lighthouse'; +export { plugin as TechRadar } from '@backstage/plugin-tech-radar'; +export { plugin as GithubActions } from '@backstage/plugin-github-actions'; +export { plugin as Sentry } from '@backstage/plugin-sentry'; diff --git a/packages/create-app/templates/default-app/packages/app/src/sidebar.tsx b/packages/create-app/templates/default-app/packages/app/src/sidebar.tsx index 6520dfbe6e..28a43b2fb7 100644 --- a/packages/create-app/templates/default-app/packages/app/src/sidebar.tsx +++ b/packages/create-app/templates/default-app/packages/app/src/sidebar.tsx @@ -2,6 +2,10 @@ import React from 'react'; import HomeIcon from '@material-ui/icons/Home'; import LibraryBooks from '@material-ui/icons/LibraryBooks'; import CreateComponentIcon from '@material-ui/icons/AddCircleOutline'; +import ExploreIcon from '@material-ui/icons/Explore'; +import BuildIcon from '@material-ui/icons/BuildRounded'; +import RuleIcon from '@material-ui/icons/AssignmentTurnedIn'; +import MapIcon from '@material-ui/icons/MyLocation'; import { Sidebar, SidebarItem, @@ -20,6 +24,11 @@ export const AppSidebar = () => ( + + + + + {/* End global nav */} From 1637987b2a88e1b1e3c47cf83d097ed1a82f7d75 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9mi=20DOREAU?= Date: Sun, 23 Aug 2020 13:28:27 +0200 Subject: [PATCH 2/4] feat(create-app): add tech-docs plugin --- .../templates/default-app/packages/app/package.json.hbs | 1 + .../templates/default-app/packages/app/src/sidebar.tsx | 3 ++- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/packages/create-app/templates/default-app/packages/app/package.json.hbs b/packages/create-app/templates/default-app/packages/app/package.json.hbs index 704b04ceca..8ea7d44f76 100644 --- a/packages/create-app/templates/default-app/packages/app/package.json.hbs +++ b/packages/create-app/templates/default-app/packages/app/package.json.hbs @@ -16,6 +16,7 @@ "@backstage/plugin-lighthouse": "^{{version}}", "@backstage/plugin-tech-radar": "^{{version}}", "@backstage/plugin-github-actions": "^{{version}}", + "@backstage/plugin-techdocs": "^{{version}}", "@backstage/plugin-sentry": "^{{version}}", "@backstage/test-utils": "^{{version}}", "@backstage/theme": "^{{version}}", diff --git a/packages/create-app/templates/default-app/packages/app/src/sidebar.tsx b/packages/create-app/templates/default-app/packages/app/src/sidebar.tsx index 28a43b2fb7..fa9a397751 100644 --- a/packages/create-app/templates/default-app/packages/app/src/sidebar.tsx +++ b/packages/create-app/templates/default-app/packages/app/src/sidebar.tsx @@ -6,6 +6,7 @@ import ExploreIcon from '@material-ui/icons/Explore'; import BuildIcon from '@material-ui/icons/BuildRounded'; import RuleIcon from '@material-ui/icons/AssignmentTurnedIn'; import MapIcon from '@material-ui/icons/MyLocation'; + import { Sidebar, SidebarItem, @@ -22,9 +23,9 @@ export const AppSidebar = () => ( {/* Global nav, not org-specific */} + - From bb92d909ea70fde11f1cc72c91e1510fa91ac296 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9mi=20DOREAU?= Date: Tue, 1 Sep 2020 08:19:10 +0200 Subject: [PATCH 3/4] feat(create-app): sentry backend + lighthouse config --- .../templates/default-app/app-config.yaml.hbs | 6 +++++ .../default-app/packages/backend/src/index.ts | 3 +++ .../packages/backend/src/plugins/sentry.ts | 22 +++++++++++++++++++ 3 files changed, 31 insertions(+) create mode 100644 packages/create-app/templates/default-app/packages/backend/src/plugins/sentry.ts diff --git a/packages/create-app/templates/default-app/app-config.yaml.hbs b/packages/create-app/templates/default-app/app-config.yaml.hbs index aff375ad29..33f7f5dc60 100644 --- a/packages/create-app/templates/default-app/app-config.yaml.hbs +++ b/packages/create-app/templates/default-app/app-config.yaml.hbs @@ -44,6 +44,12 @@ proxy: techdocs: storageUrl: http://localhost:7000/techdocs/static/docs +sentry: + organization: spotify + +lighthouse: + baseUrl: http://localhost:3003 + auth: providers: {} diff --git a/packages/create-app/templates/default-app/packages/backend/src/index.ts b/packages/create-app/templates/default-app/packages/backend/src/index.ts index 6a014727e9..6ba6c4dc8e 100644 --- a/packages/create-app/templates/default-app/packages/backend/src/index.ts +++ b/packages/create-app/templates/default-app/packages/backend/src/index.ts @@ -20,6 +20,7 @@ import identity from './plugins/identity'; import scaffolder from './plugins/scaffolder'; import proxy from './plugins/proxy'; import techdocs from './plugins/techdocs'; +import sentry from './plugins/sentry'; import { PluginEnvironment } from './types'; function makeCreateEnv(loadedConfigs: AppConfig[]) { @@ -50,11 +51,13 @@ async function main() { const identityEnv = useHotMemoize(module, () => createEnv('identity')); const proxyEnv = useHotMemoize(module, () => createEnv('proxy')); const techdocsEnv = useHotMemoize(module, () => createEnv('techdocs')); + const sentryEnv = useHotMemoize(module, () => createEnv('sentry')); const service = createServiceBuilder(module) .loadConfig(configReader) .addRouter('/catalog', await catalog(catalogEnv)) .addRouter('/scaffolder', await scaffolder(scaffolderEnv)) + .addRouter('/sentry', await sentry(sentryEnv)) .addRouter('/auth', await auth(authEnv)) .addRouter('/identity', await identity(identityEnv)) .addRouter('/techdocs', await techdocs(techdocsEnv)) diff --git a/packages/create-app/templates/default-app/packages/backend/src/plugins/sentry.ts b/packages/create-app/templates/default-app/packages/backend/src/plugins/sentry.ts new file mode 100644 index 0000000000..5cd0e55761 --- /dev/null +++ b/packages/create-app/templates/default-app/packages/backend/src/plugins/sentry.ts @@ -0,0 +1,22 @@ +/* + * Copyright 2020 Spotify AB + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import { createRouter } from '@backstage/plugin-sentry-backend'; +import type { PluginEnvironment } from '../types'; + +export default async function createPlugin({ logger }: PluginEnvironment) { + return await createRouter(logger); +} From a549ad53cea7f0b1ee9c3e28b4741e50ee8adcef Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9mi=20DOREAU?= Date: Tue, 1 Sep 2020 10:37:04 +0200 Subject: [PATCH 4/4] fix(create-app): remove duplicate import --- .../create-app/templates/default-app/packages/app/src/apis.ts | 3 --- 1 file changed, 3 deletions(-) diff --git a/packages/create-app/templates/default-app/packages/app/src/apis.ts b/packages/create-app/templates/default-app/packages/app/src/apis.ts index 02b5898884..14351eaba7 100644 --- a/packages/create-app/templates/default-app/packages/app/src/apis.ts +++ b/packages/create-app/templates/default-app/packages/app/src/apis.ts @@ -27,9 +27,6 @@ import { import { techdocsStorageApiRef, TechDocsStorageApi, - - techdocsStorageApiRef, - TechDocsStorageApi, } from '@backstage/plugin-techdocs'; import { techRadarApiRef, TechRadar } from '@backstage/plugin-tech-radar';