From 635850a1c1bec771f10b2a0d1308189b84630c80 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9mi=20DOREAU?= Date: Sun, 9 Aug 2020 12:35:27 +0200 Subject: [PATCH 01/12] feat(create-app): add catalog and scaffolder plugins --- .../templates/default-app/package.json.hbs | 4 ++ .../default-app/packages/app/src/App.tsx | 2 + .../default-app/packages/app/src/apis.ts | 48 +++++++++++++++++++ .../default-app/packages/app/src/plugins.ts | 2 + 4 files changed, 56 insertions(+) create mode 100644 packages/create-app/templates/default-app/packages/app/src/apis.ts diff --git a/packages/create-app/templates/default-app/package.json.hbs b/packages/create-app/templates/default-app/package.json.hbs index b59ca63fa3..71e4d50f6f 100644 --- a/packages/create-app/templates/default-app/package.json.hbs +++ b/packages/create-app/templates/default-app/package.json.hbs @@ -24,6 +24,10 @@ "plugins/*" ] }, + "dependencies": { + "@backstage/plugin-catalog": "^{{version}}", + "@backstage/plugin-scaffolder": "^{{version}}" + }, "devDependencies": { "@backstage/cli": "^{{version}}", "@spotify/prettier-config": "^7.0.0", diff --git a/packages/create-app/templates/default-app/packages/app/src/App.tsx b/packages/create-app/templates/default-app/packages/app/src/App.tsx index 8a0aedca2e..724b83d41b 100644 --- a/packages/create-app/templates/default-app/packages/app/src/App.tsx +++ b/packages/create-app/templates/default-app/packages/app/src/App.tsx @@ -1,8 +1,10 @@ import { createApp } from '@backstage/core'; import React, { FC } from 'react'; +import { apis } from './apis'; import * as plugins from './plugins'; const app = createApp({ + apis, plugins: Object.values(plugins), }); 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 new file mode 100644 index 0000000000..e881c128af --- /dev/null +++ b/packages/create-app/templates/default-app/packages/app/src/apis.ts @@ -0,0 +1,48 @@ +/* + * 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 { ApiRegistry, ConfigApi } from '@backstage/core'; + +import { catalogApiRef, CatalogClient } from '@backstage/plugin-catalog'; + +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')}`); + + const backendUrl = config.getString('backend.baseUrl'); + + const builder = ApiRegistry.builder(); + + builder.add( + catalogApiRef, + new CatalogClient({ + apiOrigin: backendUrl, + basePath: '/catalog', + }), + ); + + builder.add( + scaffolderApiRef, + new ScaffolderApi({ + apiOrigin: backendUrl, + basePath: '/scaffolder/v1', + }), + ); + + return builder.build(); +}; 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 000bd79f3e..b6c8ad083e 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 @@ -1 +1,3 @@ export { plugin as WelcomePlugin } from 'plugin-welcome'; +export { plugin as CatalogPlugin } from '@backstage/plugin-catalog'; +export { plugin as ScaffolderPlugin } from '@backstage/plugin-scaffolder'; From 75decc011dfbc12972acca44b6a992e4bed3178c Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Thu, 13 Aug 2020 11:52:23 +0200 Subject: [PATCH 02/12] create-app: add Sidebar and other app-wide components to app template --- .../default-app/packages/app/package.json.hbs | 1 - .../default-app/packages/app/src/App.tsx | 15 ++++++++-- .../default-app/packages/app/src/sidebar.tsx | 28 +++++++++++++++++++ 3 files changed, 41 insertions(+), 3 deletions(-) create mode 100644 packages/create-app/templates/default-app/packages/app/src/sidebar.tsx 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 c3de7ada80..2f3adcc5ca 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 @@ -5,7 +5,6 @@ "dependencies": { "@material-ui/core": "^4.9.1", "@material-ui/icons": "^4.9.1", - "@material-ui/lab": "4.0.0-alpha.45", "@backstage/cli": "^{{version}}", "@backstage/core": "^{{version}}", "@backstage/test-utils": "^{{version}}", diff --git a/packages/create-app/templates/default-app/packages/app/src/App.tsx b/packages/create-app/templates/default-app/packages/app/src/App.tsx index 724b83d41b..c96bd9d05e 100644 --- a/packages/create-app/templates/default-app/packages/app/src/App.tsx +++ b/packages/create-app/templates/default-app/packages/app/src/App.tsx @@ -1,7 +1,13 @@ -import { createApp } from '@backstage/core'; import React, { FC } from 'react'; +import { + createApp, + AlertDisplay, + OAuthRequestDialog, + SidebarPage, +} from '@backstage/core'; import { apis } from './apis'; import * as plugins from './plugins'; +import { AppSidebar } from './sidebar'; const app = createApp({ apis, @@ -14,8 +20,13 @@ const AppRoutes = app.getRoutes(); const App: FC<{}> = () => ( + + - + + + + ); 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 new file mode 100644 index 0000000000..1ced85cff2 --- /dev/null +++ b/packages/create-app/templates/default-app/packages/app/src/sidebar.tsx @@ -0,0 +1,28 @@ +import React from 'react'; +import HomeIcon from '@material-ui/icons/Home'; +import CreateComponentIcon from '@material-ui/icons/AddCircleOutline'; +import { + Sidebar, + SidebarItem, + SidebarDivider, + SidebarSpace, + SidebarUserSettings, + SidebarThemeToggle, + SidebarPinButton, +} from '@backstage/core'; + +export const AppSidebar = () => ( + + + {/* Global nav, not org-specific */} + + + {/* End global nav */} + + + + + + + +); From 68cd1cae8f6582d39ba80505d76351e986b08f38 Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Thu, 13 Aug 2020 12:33:15 +0200 Subject: [PATCH 03/12] create-app: add missing APIs to app template --- .../default-app/packages/app/src/apis.ts | 23 ++++++++++++++++++- 1 file changed, 22 insertions(+), 1 deletion(-) 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 e881c128af..32af5b7185 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,7 +14,19 @@ * limitations under the License. */ -import { ApiRegistry, ConfigApi } from '@backstage/core'; +import { + ApiRegistry, + alertApiRef, + errorApiRef, + AlertApiForwarder, + ConfigApi, + ErrorApiForwarder, + ErrorAlerter, + oauthRequestApiRef, + OAuthRequestManager, + storageApiRef, + WebStorage, +} from '@backstage/core'; import { catalogApiRef, CatalogClient } from '@backstage/plugin-catalog'; @@ -28,6 +40,15 @@ export const apis = (config: ConfigApi) => { const builder = ApiRegistry.builder(); + const alertApi = builder.add(alertApiRef, new AlertApiForwarder()); + const errorApi = builder.add( + errorApiRef, + new ErrorAlerter(alertApi, new ErrorApiForwarder()), + ); + + builder.add(storageApiRef, WebStorage.create({ errorApi })); + builder.add(oauthRequestApiRef, new OAuthRequestManager()); + builder.add( catalogApiRef, new CatalogClient({ From dddc0e15babdfac6c3063e4b4acfafba6023ad3b Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Thu, 13 Aug 2020 12:34:45 +0200 Subject: [PATCH 04/12] create-app: remove copyright header from template --- .../default-app/packages/app/src/apis.ts | 16 ---------------- 1 file changed, 16 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 32af5b7185..35f3e076d6 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 @@ -1,19 +1,3 @@ -/* - * 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 { ApiRegistry, alertApiRef, From 953e55330b135c80db12e09800986cf4a48251df Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Thu, 13 Aug 2020 12:35:57 +0200 Subject: [PATCH 05/12] create-app: remove welcome plugin --- .../default-app/packages/app/package.json.hbs | 1 - .../default-app/packages/app/src/plugins.ts | 1 - .../default-app/plugins/welcome/.eslintrc.js | 3 - .../default-app/plugins/welcome/README.md | 3 - .../default-app/plugins/welcome/dev/index.tsx | 4 - .../plugins/welcome/package.json.hbs | 41 ------- .../welcome/src/components/Timer/Timer.tsx | 58 ---------- .../welcome/src/components/Timer/index.ts | 1 - .../WelcomePage/WelcomePage.test.tsx | 16 --- .../components/WelcomePage/WelcomePage.tsx | 106 ------------------ .../src/components/WelcomePage/index.ts | 1 - .../default-app/plugins/welcome/src/index.ts | 1 - .../plugins/welcome/src/plugin.test.ts | 7 -- .../default-app/plugins/welcome/src/plugin.ts | 9 -- .../plugins/welcome/src/setupTests.ts | 1 - 15 files changed, 253 deletions(-) delete mode 100644 packages/create-app/templates/default-app/plugins/welcome/.eslintrc.js delete mode 100644 packages/create-app/templates/default-app/plugins/welcome/README.md delete mode 100644 packages/create-app/templates/default-app/plugins/welcome/dev/index.tsx delete mode 100644 packages/create-app/templates/default-app/plugins/welcome/package.json.hbs delete mode 100644 packages/create-app/templates/default-app/plugins/welcome/src/components/Timer/Timer.tsx delete mode 100644 packages/create-app/templates/default-app/plugins/welcome/src/components/Timer/index.ts delete mode 100644 packages/create-app/templates/default-app/plugins/welcome/src/components/WelcomePage/WelcomePage.test.tsx delete mode 100644 packages/create-app/templates/default-app/plugins/welcome/src/components/WelcomePage/WelcomePage.tsx delete mode 100644 packages/create-app/templates/default-app/plugins/welcome/src/components/WelcomePage/index.ts delete mode 100644 packages/create-app/templates/default-app/plugins/welcome/src/index.ts delete mode 100644 packages/create-app/templates/default-app/plugins/welcome/src/plugin.test.ts delete mode 100644 packages/create-app/templates/default-app/plugins/welcome/src/plugin.ts delete mode 100644 packages/create-app/templates/default-app/plugins/welcome/src/setupTests.ts 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 2f3adcc5ca..ae49c251e2 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 @@ -10,7 +10,6 @@ "@backstage/test-utils": "^{{version}}", "@backstage/theme": "^{{version}}", "history": "^5.0.0", - "plugin-welcome": "0.0.0", "react": "^16.13.1", "react-dom": "^16.13.1", "react-router": "6.0.0-beta.0", 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 b6c8ad083e..b35d7aeac4 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 @@ -1,3 +1,2 @@ -export { plugin as WelcomePlugin } from 'plugin-welcome'; export { plugin as CatalogPlugin } from '@backstage/plugin-catalog'; export { plugin as ScaffolderPlugin } from '@backstage/plugin-scaffolder'; diff --git a/packages/create-app/templates/default-app/plugins/welcome/.eslintrc.js b/packages/create-app/templates/default-app/plugins/welcome/.eslintrc.js deleted file mode 100644 index 13573efa9c..0000000000 --- a/packages/create-app/templates/default-app/plugins/welcome/.eslintrc.js +++ /dev/null @@ -1,3 +0,0 @@ -module.exports = { - extends: [require.resolve('@backstage/cli/config/eslint')], -}; diff --git a/packages/create-app/templates/default-app/plugins/welcome/README.md b/packages/create-app/templates/default-app/plugins/welcome/README.md deleted file mode 100644 index e9b9dd0edf..0000000000 --- a/packages/create-app/templates/default-app/plugins/welcome/README.md +++ /dev/null @@ -1,3 +0,0 @@ -# Title - -Welcome to the welcome plugin! diff --git a/packages/create-app/templates/default-app/plugins/welcome/dev/index.tsx b/packages/create-app/templates/default-app/plugins/welcome/dev/index.tsx deleted file mode 100644 index 6fce113093..0000000000 --- a/packages/create-app/templates/default-app/plugins/welcome/dev/index.tsx +++ /dev/null @@ -1,4 +0,0 @@ -import { createDevApp } from '@backstage/dev-utils'; -import { plugin } from '../src/plugin'; - -createDevApp().registerPlugin(plugin).render(); diff --git a/packages/create-app/templates/default-app/plugins/welcome/package.json.hbs b/packages/create-app/templates/default-app/plugins/welcome/package.json.hbs deleted file mode 100644 index 77e57c1a7c..0000000000 --- a/packages/create-app/templates/default-app/plugins/welcome/package.json.hbs +++ /dev/null @@ -1,41 +0,0 @@ -{ - "name": "plugin-welcome", - "version": "0.0.0", - "main": "src/index.ts", - "types": "src/index.ts", - "private": true, - "publishConfig": { - "main": "dist/index.esm.js", - "types": "dist/index.d.ts" - }, - "scripts": { - "build": "backstage-cli plugin:build", - "start": "backstage-cli plugin:serve", - "lint": "backstage-cli lint", - "test": "backstage-cli test", - "diff": "backstage-cli plugin:diff", - "prepack": "backstage-cli prepack", - "postpack": "backstage-cli postpack", - "clean": "backstage-cli clean" - }, - "dependencies": { - "@backstage/core": "^{{version}}", - "@backstage/theme": "^{{version}}", - "@material-ui/core": "^4.9.1", - "@material-ui/icons": "^4.9.1", - "react": "^16.13.1", - "react-dom": "^16.13.1", - "react-use": "^15.3.3", - "react-router-dom": "6.0.0-beta.0" - }, - "devDependencies": { - "@backstage/cli": "^{{version}}", - "@backstage/dev-utils": "^{{version}}", - "@testing-library/jest-dom": "^5.10.1", - "@testing-library/react": "^10.4.1", - "jest-fetch-mock": "^3.0.3" - }, - "files": [ - "dist" - ] -} diff --git a/packages/create-app/templates/default-app/plugins/welcome/src/components/Timer/Timer.tsx b/packages/create-app/templates/default-app/plugins/welcome/src/components/Timer/Timer.tsx deleted file mode 100644 index 24c79f91ee..0000000000 --- a/packages/create-app/templates/default-app/plugins/welcome/src/components/Timer/Timer.tsx +++ /dev/null @@ -1,58 +0,0 @@ -import React, { FC } from 'react'; -import { HeaderLabel } from '@backstage/core'; - -const timeFormat = { hour: '2-digit', minute: '2-digit' }; -const utcOptions = { timeZone: 'UTC', ...timeFormat }; -const nycOptions = { timeZone: 'America/New_York', ...timeFormat }; -const tyoOptions = { timeZone: 'Asia/Tokyo', ...timeFormat }; -const stoOptions = { timeZone: 'Europe/Stockholm', ...timeFormat }; - -const defaultTimes = { - timeNY: '', - timeUTC: '', - timeTYO: '', - timeSTO: '', -}; - -function getTimes() { - const d = new Date(); - const lang = window.navigator.language; - - // Using the browser native toLocaleTimeString instead of huge moment-tz - // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toLocaleTimeString - const timeNY = d.toLocaleTimeString(lang, nycOptions); - const timeUTC = d.toLocaleTimeString(lang, utcOptions); - const timeTYO = d.toLocaleTimeString(lang, tyoOptions); - const timeSTO = d.toLocaleTimeString(lang, stoOptions); - - return { timeNY, timeUTC, timeTYO, timeSTO }; -} - -const HomePageTimer: FC<{}> = () => { - const [{ timeNY, timeUTC, timeTYO, timeSTO }, setTimes] = React.useState( - defaultTimes, - ); - - React.useEffect(() => { - setTimes(getTimes()); - - const intervalId = setInterval(() => { - setTimes(getTimes()); - }, 1000); - - return () => { - clearInterval(intervalId); - }; - }, []); - - return ( - <> - - - - - - ); -}; - -export default HomePageTimer; diff --git a/packages/create-app/templates/default-app/plugins/welcome/src/components/Timer/index.ts b/packages/create-app/templates/default-app/plugins/welcome/src/components/Timer/index.ts deleted file mode 100644 index f1fc55bfe9..0000000000 --- a/packages/create-app/templates/default-app/plugins/welcome/src/components/Timer/index.ts +++ /dev/null @@ -1 +0,0 @@ -export { default } from './Timer'; diff --git a/packages/create-app/templates/default-app/plugins/welcome/src/components/WelcomePage/WelcomePage.test.tsx b/packages/create-app/templates/default-app/plugins/welcome/src/components/WelcomePage/WelcomePage.test.tsx deleted file mode 100644 index 27e44a3f75..0000000000 --- a/packages/create-app/templates/default-app/plugins/welcome/src/components/WelcomePage/WelcomePage.test.tsx +++ /dev/null @@ -1,16 +0,0 @@ -import React from 'react'; -import { render } from '@testing-library/react'; -import WelcomePage from './WelcomePage'; -import { ThemeProvider } from '@material-ui/core'; -import { lightTheme } from '@backstage/theme'; - -describe('WelcomePage', () => { - it('should render', () => { - const rendered = render( - - - , - ); - expect(rendered.baseElement).toBeInTheDocument(); - }); -}); diff --git a/packages/create-app/templates/default-app/plugins/welcome/src/components/WelcomePage/WelcomePage.tsx b/packages/create-app/templates/default-app/plugins/welcome/src/components/WelcomePage/WelcomePage.tsx deleted file mode 100644 index 31c1c0f3e2..0000000000 --- a/packages/create-app/templates/default-app/plugins/welcome/src/components/WelcomePage/WelcomePage.tsx +++ /dev/null @@ -1,106 +0,0 @@ -import React, { FC } from 'react'; -import { Link as RouterLink } from 'react-router-dom'; -import { - Typography, - Grid, - List, - ListItem, - ListItemText, - Link, -} from '@material-ui/core'; -import Timer from '../Timer'; -import { - Content, - InfoCard, - Header, - Page, - pageTheme, - ContentHeader, - SupportButton, -} from '@backstage/core'; - -const WelcomePage: FC<{}> = () => { - const profile = { givenName: '' }; - - return ( - -
- -
- - - - - - - - - You now have a running instance of Backstage! - - 🎉 - - Let's make sure you get the most out of this platform by walking - you through the basics. - - - The Setup - - - Backstage is put together from three base concepts: the core, - the app and the plugins. - - - - - - - - - - - - - - Try It Out - - - We suggest you either check out the documentation for{' '} - - creating a plugin - {' '} - or have a look in the code for the{' '} - - Home Page - {' '} - in the directory "plugins/home-page/src". - - - - - - Quick Links - - - backstage.io - - - - Create a plugin - - - - - - - -
- ); -}; - -export default WelcomePage; diff --git a/packages/create-app/templates/default-app/plugins/welcome/src/components/WelcomePage/index.ts b/packages/create-app/templates/default-app/plugins/welcome/src/components/WelcomePage/index.ts deleted file mode 100644 index b031301e7e..0000000000 --- a/packages/create-app/templates/default-app/plugins/welcome/src/components/WelcomePage/index.ts +++ /dev/null @@ -1 +0,0 @@ -export { default } from './WelcomePage'; diff --git a/packages/create-app/templates/default-app/plugins/welcome/src/index.ts b/packages/create-app/templates/default-app/plugins/welcome/src/index.ts deleted file mode 100644 index 99edba26c3..0000000000 --- a/packages/create-app/templates/default-app/plugins/welcome/src/index.ts +++ /dev/null @@ -1 +0,0 @@ -export { plugin } from './plugin'; diff --git a/packages/create-app/templates/default-app/plugins/welcome/src/plugin.test.ts b/packages/create-app/templates/default-app/plugins/welcome/src/plugin.test.ts deleted file mode 100644 index f5bf8e68c3..0000000000 --- a/packages/create-app/templates/default-app/plugins/welcome/src/plugin.test.ts +++ /dev/null @@ -1,7 +0,0 @@ -import { plugin } from './plugin'; - -describe('welcome', () => { - it('should export plugin', () => { - expect(plugin).toBeDefined(); - }); -}); diff --git a/packages/create-app/templates/default-app/plugins/welcome/src/plugin.ts b/packages/create-app/templates/default-app/plugins/welcome/src/plugin.ts deleted file mode 100644 index a65fad5348..0000000000 --- a/packages/create-app/templates/default-app/plugins/welcome/src/plugin.ts +++ /dev/null @@ -1,9 +0,0 @@ -import { createPlugin } from '@backstage/core'; -import WelcomePage from './components/WelcomePage'; - -export const plugin = createPlugin({ - id: 'welcome', - register({ router }) { - router.registerRoute('/', WelcomePage); - }, -}); diff --git a/packages/create-app/templates/default-app/plugins/welcome/src/setupTests.ts b/packages/create-app/templates/default-app/plugins/welcome/src/setupTests.ts deleted file mode 100644 index 7b0828bfa8..0000000000 --- a/packages/create-app/templates/default-app/plugins/welcome/src/setupTests.ts +++ /dev/null @@ -1 +0,0 @@ -import '@testing-library/jest-dom'; From b9dcd46c09a420cbc2eeff0be8a2f2d42fd9d1be Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Thu, 13 Aug 2020 13:05:16 +0200 Subject: [PATCH 06/12] create-app: add locations for example entites and templates --- .../templates/default-app/app-config.yaml | 30 +++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/packages/create-app/templates/default-app/app-config.yaml b/packages/create-app/templates/default-app/app-config.yaml index 04a7913286..c5dc00c266 100644 --- a/packages/create-app/templates/default-app/app-config.yaml +++ b/packages/create-app/templates/default-app/app-config.yaml @@ -23,3 +23,33 @@ techdocs: auth: providers: {} + +catalog: + locations: + # Backstage Example Component + - type: github + target: https://github.com/spotify/backstage/blob/master/packages/catalog-model/examples/artist-lookup-component.yaml + - type: github + target: https://github.com/spotify/backstage/blob/master/packages/catalog-model/examples/playback-order-component.yaml + - type: github + target: https://github.com/spotify/backstage/blob/master/packages/catalog-model/examples/podcast-api-component.yaml + - type: github + target: https://github.com/spotify/backstage/blob/master/packages/catalog-model/examples/queue-proxy-component.yaml + - type: github + target: https://github.com/spotify/backstage/blob/master/packages/catalog-model/examples/searcher-component.yaml + - type: github + target: https://github.com/spotify/backstage/blob/master/packages/catalog-model/examples/playback-lib-component.yaml + - type: github + target: https://github.com/spotify/backstage/blob/master/packages/catalog-model/examples/www-artist-component.yaml + - type: github + target: https://github.com/spotify/backstage/blob/master/packages/catalog-model/examples/shuffle-api-component.yaml + + # Backstage Example Templates + - type: github + target: https://github.com/spotify/backstage/blob/master/plugins/scaffolder-backend/sample-templates/react-ssr-template/template.yaml + - type: github + target: https://github.com/spotify/backstage/blob/master/plugins/scaffolder-backend/sample-templates/springboot-grpc-template/template.yaml + - type: github + target: https://github.com/spotify/backstage/blob/master/plugins/scaffolder-backend/sample-templates/create-react-app/template.yaml + - type: github + target: https://github.com/spotify/cookiecutter-golang/blob/master/template.yaml From 2fd38ad228e92c36eac5a7820a93b588e517922d Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Thu, 13 Aug 2020 13:46:19 +0200 Subject: [PATCH 07/12] create-app: add register component plugin and move plugin deps to app --- packages/create-app/templates/default-app/package.json.hbs | 4 ---- .../templates/default-app/packages/app/package.json.hbs | 3 +++ .../templates/default-app/packages/app/src/plugins.ts | 1 + 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/packages/create-app/templates/default-app/package.json.hbs b/packages/create-app/templates/default-app/package.json.hbs index 71e4d50f6f..b59ca63fa3 100644 --- a/packages/create-app/templates/default-app/package.json.hbs +++ b/packages/create-app/templates/default-app/package.json.hbs @@ -24,10 +24,6 @@ "plugins/*" ] }, - "dependencies": { - "@backstage/plugin-catalog": "^{{version}}", - "@backstage/plugin-scaffolder": "^{{version}}" - }, "devDependencies": { "@backstage/cli": "^{{version}}", "@spotify/prettier-config": "^7.0.0", 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 ae49c251e2..57e705d4fc 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 @@ -7,6 +7,9 @@ "@material-ui/icons": "^4.9.1", "@backstage/cli": "^{{version}}", "@backstage/core": "^{{version}}", + "@backstage/plugin-catalog": "^{{version}}", + "@backstage/plugin-register-component": "^{{version}}", + "@backstage/plugin-scaffolder": "^{{version}}", "@backstage/test-utils": "^{{version}}", "@backstage/theme": "^{{version}}", "history": "^5.0.0", 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 b35d7aeac4..4063fb509b 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 @@ -1,2 +1,3 @@ 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'; From 20d83e7d5b8167bf16b0c31879d87c9e9d01a143 Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Thu, 13 Aug 2020 14:12:24 +0200 Subject: [PATCH 08/12] create-app: add minimal gitignore to template --- .../templates/default-app/.gitignore | 33 +++++++++++++++++++ 1 file changed, 33 insertions(+) create mode 100644 packages/create-app/templates/default-app/.gitignore diff --git a/packages/create-app/templates/default-app/.gitignore b/packages/create-app/templates/default-app/.gitignore new file mode 100644 index 0000000000..3e786d566e --- /dev/null +++ b/packages/create-app/templates/default-app/.gitignore @@ -0,0 +1,33 @@ + +# Logs +logs +*.log +npm-debug.log* +yarn-debug.log* +yarn-error.log* +lerna-debug.log* + +# Coverage directory generated when running tests with coverage +coverage + +# Dependencies +node_modules/ + +# Node version directives +.nvmrc + +# dotenv environment variables file +.env +.env.test + +# Build output +dist + +# Temporary change files created by Vim +*.swp + +# MkDocs build output +site + +# Local configuration files +*.local.yaml From af9d127644eaa013106f8e485a2145bedafc3d54 Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Thu, 13 Aug 2020 14:31:23 +0200 Subject: [PATCH 09/12] tsconfig: set rootDir to ensure output structure of tsc --- packages/create-app/templates/default-app/tsconfig.json | 1 + tsconfig.json | 3 ++- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/packages/create-app/templates/default-app/tsconfig.json b/packages/create-app/templates/default-app/tsconfig.json index 9dbc3bbe27..cccc375f63 100644 --- a/packages/create-app/templates/default-app/tsconfig.json +++ b/packages/create-app/templates/default-app/tsconfig.json @@ -9,6 +9,7 @@ "exclude": ["node_modules"], "compilerOptions": { "outDir": "dist", + "rootDir": ".", "skipLibCheck": true } } diff --git a/tsconfig.json b/tsconfig.json index 1a6128b5c9..7ea674798c 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -7,6 +7,7 @@ "plugins/*/migrations" ], "compilerOptions": { - "outDir": "dist" + "outDir": "dist", + "rootDir": "." } } From be0847501708f2f9a4f5e5ea8314e8470511bb62 Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Thu, 13 Aug 2020 14:46:43 +0200 Subject: [PATCH 10/12] create-app: fix App test in template --- .../templates/default-app/packages/app/src/App.test.tsx | 1 + 1 file changed, 1 insertion(+) diff --git a/packages/create-app/templates/default-app/packages/app/src/App.test.tsx b/packages/create-app/templates/default-app/packages/app/src/App.test.tsx index b94eab587f..a05924ee00 100644 --- a/packages/create-app/templates/default-app/packages/app/src/App.test.tsx +++ b/packages/create-app/templates/default-app/packages/app/src/App.test.tsx @@ -10,6 +10,7 @@ describe('App', () => { { data: { app: { title: 'Test' }, + backend: { baseUrl: 'http://localhost:7000' }, }, context: 'test', }, From da5fb05a3fe686f17100e95a7b71785ae253f2b4 Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Thu, 13 Aug 2020 15:30:25 +0200 Subject: [PATCH 11/12] create-app: update e2e test in app template --- .../default-app/packages/app/cypress/integration/app.js | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/packages/create-app/templates/default-app/packages/app/cypress/integration/app.js b/packages/create-app/templates/default-app/packages/app/cypress/integration/app.js index 6c561a734c..dde26b7b39 100644 --- a/packages/create-app/templates/default-app/packages/app/cypress/integration/app.js +++ b/packages/create-app/templates/default-app/packages/app/cypress/integration/app.js @@ -1,8 +1,6 @@ describe('App', () => { - it('should render the welcome page', () => { + it('should render the catalog', () => { cy.visit('/'); - cy.contains('Welcome to Backstage'); - cy.contains('Getting Started'); - cy.contains('Quick Links'); + cy.contains('Backstage Service Catalog'); }); }); From e2e50025a5cc59af2fb1f40901d15795fced13ba Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Thu, 13 Aug 2020 19:08:32 +0200 Subject: [PATCH 12/12] cli: update e2e test to work with new create-app --- packages/cli/e2e-test/cli-e2e-test.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/cli/e2e-test/cli-e2e-test.js b/packages/cli/e2e-test/cli-e2e-test.js index 8f518762cd..8a3285c544 100644 --- a/packages/cli/e2e-test/cli-e2e-test.js +++ b/packages/cli/e2e-test/cli-e2e-test.js @@ -246,7 +246,7 @@ async function testAppServe(pluginName, appDir) { try { const browser = new Browser(); - await waitForPageWithText(browser, '/', 'Welcome to Backstage'); + await waitForPageWithText(browser, '/', 'Backstage Service Catalog'); await waitForPageWithText( browser, `/${pluginName}`,