diff --git a/.github/workflows/techdocs.yml b/.github/workflows/techdocs.yml index 6d6a6e904e..505f63c879 100644 --- a/.github/workflows/techdocs.yml +++ b/.github/workflows/techdocs.yml @@ -6,6 +6,7 @@ on: - '.github/workflows/techdocs.yml' - 'packages/techdocs-cli/**' - 'plugins/techdocs/**' + - 'plugins/techdocs-backend/**' jobs: build: @@ -23,6 +24,18 @@ jobs: steps: - uses: actions/checkout@v2 + # Build Docker Image + - name: Build and push Docker images + uses: docker/build-push-action@v1.1.0 + with: + path: plugins/techdocs/mkdocs/container + registry: docker.pkg.github.com + repository: ${{ github.repository }}/mkdocs + username: ${{ github.actor }} + password: ${{ github.token }} + tag_with_ref: true + push: true + # Lint Python code for techdocs-core package - name: prepare python environment run: | diff --git a/lerna.json b/lerna.json index 9e00bb25a6..1b65340fec 100644 --- a/lerna.json +++ b/lerna.json @@ -2,5 +2,5 @@ "packages": ["packages/*", "plugins/*"], "npmClient": "yarn", "useWorkspaces": true, - "version": "0.1.1-alpha.12" + "version": "0.1.1-alpha.13" } diff --git a/packages/app/package.json b/packages/app/package.json index e6e8254cb4..35e78a8793 100644 --- a/packages/app/package.json +++ b/packages/app/package.json @@ -1,25 +1,25 @@ { "name": "example-app", - "version": "0.1.1-alpha.12", + "version": "0.1.1-alpha.13", "private": true, "dependencies": { - "@backstage/cli": "^0.1.1-alpha.12", - "@backstage/core": "^0.1.1-alpha.12", - "@backstage/plugin-catalog": "^0.1.1-alpha.12", - "@backstage/plugin-circleci": "^0.1.1-alpha.12", - "@backstage/plugin-explore": "^0.1.1-alpha.12", - "@backstage/plugin-github-actions": "^0.1.1-alpha.12", - "@backstage/plugin-gitops-profiles": "^0.1.1-alpha.12", - "@backstage/plugin-graphiql": "^0.1.1-alpha.12", - "@backstage/plugin-lighthouse": "^0.1.1-alpha.12", - "@backstage/plugin-register-component": "^0.1.1-alpha.12", - "@backstage/plugin-scaffolder": "^0.1.1-alpha.12", - "@backstage/plugin-sentry": "^0.1.1-alpha.12", - "@backstage/plugin-tech-radar": "^0.1.1-alpha.12", - "@backstage/plugin-techdocs": "^0.1.1-alpha.12", - "@backstage/plugin-welcome": "^0.1.1-alpha.12", - "@backstage/test-utils": "^0.1.1-alpha.12", - "@backstage/theme": "^0.1.1-alpha.12", + "@backstage/cli": "^0.1.1-alpha.13", + "@backstage/core": "^0.1.1-alpha.13", + "@backstage/plugin-catalog": "^0.1.1-alpha.13", + "@backstage/plugin-circleci": "^0.1.1-alpha.13", + "@backstage/plugin-explore": "^0.1.1-alpha.13", + "@backstage/plugin-github-actions": "^0.1.1-alpha.13", + "@backstage/plugin-gitops-profiles": "^0.1.1-alpha.13", + "@backstage/plugin-graphiql": "^0.1.1-alpha.13", + "@backstage/plugin-lighthouse": "^0.1.1-alpha.13", + "@backstage/plugin-register-component": "^0.1.1-alpha.13", + "@backstage/plugin-scaffolder": "^0.1.1-alpha.13", + "@backstage/plugin-sentry": "^0.1.1-alpha.13", + "@backstage/plugin-tech-radar": "^0.1.1-alpha.13", + "@backstage/plugin-techdocs": "^0.1.1-alpha.13", + "@backstage/plugin-welcome": "^0.1.1-alpha.13", + "@backstage/test-utils": "^0.1.1-alpha.13", + "@backstage/theme": "^0.1.1-alpha.13", "@material-ui/core": "^4.9.1", "@material-ui/icons": "^4.9.1", "history": "^5.0.0", diff --git a/packages/backend-common/package.json b/packages/backend-common/package.json index b0aef88fea..aa856526cc 100644 --- a/packages/backend-common/package.json +++ b/packages/backend-common/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/backend-common", "description": "Common functionality library for Backstage backends", - "version": "0.1.1-alpha.12", + "version": "0.1.1-alpha.13", "main": "src/index.ts", "types": "src/index.ts", "private": false, @@ -29,7 +29,7 @@ "clean": "backstage-cli clean" }, "dependencies": { - "@backstage/config": "^0.1.1-alpha.12", + "@backstage/config": "^0.1.1-alpha.13", "@types/cors": "^2.8.6", "@types/express": "^4.17.6", "compression": "^1.7.4", @@ -41,7 +41,7 @@ "winston": "^3.2.1" }, "devDependencies": { - "@backstage/cli": "^0.1.1-alpha.12", + "@backstage/cli": "^0.1.1-alpha.13", "@types/compression": "^1.7.0", "@types/http-errors": "^1.6.3", "@types/morgan": "^1.9.0", diff --git a/packages/backend/package.json b/packages/backend/package.json index 54cf1e7e1a..d99bc38ea9 100644 --- a/packages/backend/package.json +++ b/packages/backend/package.json @@ -1,6 +1,6 @@ { "name": "example-backend", - "version": "0.1.1-alpha.12", + "version": "0.1.1-alpha.13", "main": "dist/index.cjs.js", "types": "src/index.ts", "private": true, @@ -18,16 +18,17 @@ "migrate:create": "knex migrate:make -x ts" }, "dependencies": { - "@backstage/backend-common": "^0.1.1-alpha.12", - "@backstage/catalog-model": "^0.1.1-alpha.12", - "@backstage/config": "^0.1.1-alpha.12", - "@backstage/config-loader": "^0.1.1-alpha.12", - "@backstage/plugin-auth-backend": "^0.1.1-alpha.12", - "@backstage/plugin-catalog-backend": "^0.1.1-alpha.12", - "@backstage/plugin-identity-backend": "^0.1.1-alpha.12", - "@backstage/plugin-proxy-backend": "^0.1.1-alpha.12", - "@backstage/plugin-scaffolder-backend": "^0.1.1-alpha.12", - "@backstage/plugin-sentry-backend": "^0.1.1-alpha.12", + "@backstage/plugin-proxy-backend": "^0.1.1-alpha.13", + "@backstage/backend-common": "^0.1.1-alpha.13", + "@backstage/catalog-model": "^0.1.1-alpha.13", + "@backstage/config": "^0.1.1-alpha.13", + "@backstage/config-loader": "^0.1.1-alpha.13", + "@backstage/plugin-auth-backend": "^0.1.1-alpha.13", + "@backstage/plugin-catalog-backend": "^0.1.1-alpha.13", + "@backstage/plugin-identity-backend": "^0.1.1-alpha.13", + "@backstage/plugin-scaffolder-backend": "^0.1.1-alpha.13", + "@backstage/plugin-sentry-backend": "^0.1.1-alpha.13", + "@backstage/plugin-techdocs-backend": "^0.1.1-alpha.13", "dockerode": "^3.2.0", "express": "^4.17.1", "knex": "^0.21.1", @@ -35,10 +36,10 @@ "winston": "^3.2.1" }, "devDependencies": { - "@backstage/cli": "^0.1.1-alpha.12", + "@backstage/cli": "^0.1.1-alpha.13", + "@types/dockerode": "^2.5.32", "@types/express": "^4.17.6", "@types/express-serve-static-core": "^4.17.5", - "@types/helmet": "^0.0.47", - "@types/dockerode": "^2.5.32" + "@types/helmet": "^0.0.47" } } diff --git a/packages/backend/src/index.ts b/packages/backend/src/index.ts index a50b1e38be..f096159598 100644 --- a/packages/backend/src/index.ts +++ b/packages/backend/src/index.ts @@ -36,6 +36,7 @@ import identity from './plugins/identity'; import scaffolder from './plugins/scaffolder'; import sentry from './plugins/sentry'; import proxy from './plugins/proxy'; +import techdocs from './plugins/techdocs'; import { PluginEnvironment } from './types'; function makeCreateEnv(loadedConfigs: AppConfig[]) { @@ -65,6 +66,7 @@ async function main() { const authEnv = useHotMemoize(module, () => createEnv('auth')); const identityEnv = useHotMemoize(module, () => createEnv('identity')); const proxyEnv = useHotMemoize(module, () => createEnv('proxy')); + const techdocsEnv = useHotMemoize(module, () => createEnv('techdocs')); const service = createServiceBuilder(module) .loadConfig(configReader) @@ -76,6 +78,7 @@ async function main() { ) .addRouter('/auth', await auth(authEnv)) .addRouter('/identity', await identity(identityEnv)) + .addRouter('/techdocs', await techdocs(techdocsEnv)) .addRouter('/', await proxy(proxyEnv)); await service.start().catch(err => { diff --git a/packages/backend/src/plugins/techdocs.ts b/packages/backend/src/plugins/techdocs.ts new file mode 100644 index 0000000000..0d03bfabab --- /dev/null +++ b/packages/backend/src/plugins/techdocs.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-techdocs-backend'; +import { PluginEnvironment } from '../types'; + +export default async function createPlugin({ logger }: PluginEnvironment) { + return await createRouter({ logger }); +} diff --git a/packages/catalog-model/package.json b/packages/catalog-model/package.json index b51dacde84..760861f05a 100644 --- a/packages/catalog-model/package.json +++ b/packages/catalog-model/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/catalog-model", - "version": "0.1.1-alpha.12", + "version": "0.1.1-alpha.13", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -20,7 +20,7 @@ "clean": "backstage-cli clean" }, "dependencies": { - "@backstage/config": "^0.1.1-alpha.12", + "@backstage/config": "^0.1.1-alpha.13", "@types/json-schema": "^7.0.5", "@types/yup": "^0.28.2", "json-schema": "^0.2.5", @@ -29,7 +29,7 @@ "yup": "^0.29.1" }, "devDependencies": { - "@backstage/cli": "^0.1.1-alpha.12", + "@backstage/cli": "^0.1.1-alpha.13", "@types/express": "^4.17.6", "@types/jest": "^25.2.2", "@types/lodash": "^4.14.151", diff --git a/packages/cli/package.json b/packages/cli/package.json index 1959e9cc07..df0140f1ec 100644 --- a/packages/cli/package.json +++ b/packages/cli/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/cli", "description": "CLI for developing Backstage plugins and apps", - "version": "0.1.1-alpha.12", + "version": "0.1.1-alpha.13", "private": false, "publishConfig": { "access": "public" @@ -29,8 +29,8 @@ "backstage-cli": "bin/backstage-cli" }, "dependencies": { - "@backstage/config": "^0.1.1-alpha.12", - "@backstage/config-loader": "^0.1.1-alpha.12", + "@backstage/config": "^0.1.1-alpha.13", + "@backstage/config-loader": "^0.1.1-alpha.13", "@hot-loader/react-dom": "^16.13.0", "@lerna/package-graph": "^3.18.5", "@lerna/project": "^3.18.0", diff --git a/packages/cli/src/lib/bundler/config.ts b/packages/cli/src/lib/bundler/config.ts index aab244f7e9..0eaac9ad2d 100644 --- a/packages/cli/src/lib/bundler/config.ts +++ b/packages/cli/src/lib/bundler/config.ts @@ -34,7 +34,7 @@ import { BundlingOptions, BackendBundlingOptions } from './types'; export function resolveBaseUrl(config: Config): URL { const baseUrl = config.getString('app.baseUrl'); try { - return new URL(baseUrl, 'http://localhost:3000'); + return new URL(baseUrl); } catch (error) { throw new Error(`Invalid app.baseUrl, ${error}`); } @@ -49,7 +49,7 @@ export function createConfig( const { plugins, loaders } = transforms(options); const baseUrl = options.config.getString('app.baseUrl'); - const validBaseUrl = new URL(baseUrl, 'https://backstage-app.dev'); + const validBaseUrl = new URL(baseUrl); if (checksEnabled) { plugins.push( diff --git a/packages/config-loader/package.json b/packages/config-loader/package.json index c652351c0e..25512529b8 100644 --- a/packages/config-loader/package.json +++ b/packages/config-loader/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/config-loader", "description": "Config loading functionality used by Backstage backend, and CLI", - "version": "0.1.1-alpha.12", + "version": "0.1.1-alpha.13", "private": false, "publishConfig": { "access": "public", @@ -30,7 +30,7 @@ "clean": "backstage-cli clean" }, "dependencies": { - "@backstage/config": "^0.1.1-alpha.12", + "@backstage/config": "^0.1.1-alpha.13", "fs-extra": "^9.0.0", "yaml": "^1.9.2", "yup": "^0.29.1" diff --git a/packages/config/package.json b/packages/config/package.json index ad31611fac..aac52ab023 100644 --- a/packages/config/package.json +++ b/packages/config/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/config", "description": "Config API used by Backstage core, backend, and CLI", - "version": "0.1.1-alpha.12", + "version": "0.1.1-alpha.13", "private": false, "publishConfig": { "access": "public", diff --git a/packages/core-api/package.json b/packages/core-api/package.json index 4e488206f1..1faacf8062 100644 --- a/packages/core-api/package.json +++ b/packages/core-api/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/core-api", "description": "Internal Core API used by Backstage plugins and apps", - "version": "0.1.1-alpha.12", + "version": "0.1.1-alpha.13", "private": false, "publishConfig": { "access": "public", @@ -29,8 +29,8 @@ "clean": "backstage-cli clean" }, "dependencies": { - "@backstage/config": "^0.1.1-alpha.12", - "@backstage/theme": "^0.1.1-alpha.12", + "@backstage/config": "^0.1.1-alpha.13", + "@backstage/theme": "^0.1.1-alpha.13", "@material-ui/core": "^4.9.1", "@material-ui/icons": "^4.9.1", "@types/react": "^16.9", @@ -41,8 +41,8 @@ "zen-observable": "^0.8.15" }, "devDependencies": { - "@backstage/cli": "^0.1.1-alpha.12", - "@backstage/test-utils-core": "^0.1.1-alpha.12", + "@backstage/cli": "^0.1.1-alpha.13", + "@backstage/test-utils-core": "^0.1.1-alpha.13", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^10.4.1", "@testing-library/user-event": "^12.0.7", diff --git a/packages/core/package.json b/packages/core/package.json index 562f3894fa..685f4066e5 100644 --- a/packages/core/package.json +++ b/packages/core/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/core", "description": "Core API used by Backstage plugins and apps", - "version": "0.1.1-alpha.12", + "version": "0.1.1-alpha.13", "private": false, "publishConfig": { "access": "public", @@ -29,9 +29,9 @@ "clean": "backstage-cli clean" }, "dependencies": { - "@backstage/config": "^0.1.1-alpha.12", - "@backstage/core-api": "^0.1.1-alpha.12", - "@backstage/theme": "^0.1.1-alpha.12", + "@backstage/config": "^0.1.1-alpha.13", + "@backstage/core-api": "^0.1.1-alpha.13", + "@backstage/theme": "^0.1.1-alpha.13", "@material-ui/core": "^4.9.1", "@material-ui/icons": "^4.9.1", "@material-ui/lab": "4.0.0-alpha.45", @@ -54,8 +54,8 @@ "react-use": "^14.2.0" }, "devDependencies": { - "@backstage/cli": "^0.1.1-alpha.12", - "@backstage/test-utils": "^0.1.1-alpha.12", + "@backstage/cli": "^0.1.1-alpha.13", + "@backstage/test-utils": "^0.1.1-alpha.13", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^10.4.1", "@testing-library/user-event": "^12.0.7", diff --git a/packages/dev-utils/package.json b/packages/dev-utils/package.json index 1a08f0fb22..0ffffa620e 100644 --- a/packages/dev-utils/package.json +++ b/packages/dev-utils/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/dev-utils", "description": "Utilities for developing Backstage plugins.", - "version": "0.1.1-alpha.12", + "version": "0.1.1-alpha.13", "private": false, "publishConfig": { "access": "public", @@ -29,10 +29,10 @@ "clean": "backstage-cli clean" }, "dependencies": { - "@backstage/cli": "^0.1.1-alpha.12", - "@backstage/core": "^0.1.1-alpha.12", - "@backstage/test-utils": "^0.1.1-alpha.12", - "@backstage/theme": "^0.1.1-alpha.12", + "@backstage/cli": "^0.1.1-alpha.13", + "@backstage/core": "^0.1.1-alpha.13", + "@backstage/test-utils": "^0.1.1-alpha.13", + "@backstage/theme": "^0.1.1-alpha.13", "@material-ui/core": "^4.9.1", "@material-ui/icons": "^4.9.1", "@testing-library/jest-dom": "^5.10.1", diff --git a/packages/storybook/package.json b/packages/storybook/package.json index 060241d383..db34ee02a7 100644 --- a/packages/storybook/package.json +++ b/packages/storybook/package.json @@ -1,6 +1,6 @@ { "name": "storybook", - "version": "0.1.1-alpha.12", + "version": "0.1.1-alpha.13", "description": "Storybook build for core package", "private": true, "scripts": { @@ -14,7 +14,7 @@ ] }, "dependencies": { - "@backstage/theme": "^0.1.1-alpha.12" + "@backstage/theme": "^0.1.1-alpha.13" }, "devDependencies": { "@storybook/addon-actions": "^5.3.17", diff --git a/packages/techdocs-cli/package.json b/packages/techdocs-cli/package.json index 4258aee12e..9176d6012d 100644 --- a/packages/techdocs-cli/package.json +++ b/packages/techdocs-cli/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/techdocs-cli", "description": "CLI for running TechDocs locally.", - "version": "0.1.1-alpha.12", + "version": "0.1.1-alpha.13", "private": true, "publishConfig": { "access": "public" @@ -28,7 +28,7 @@ "techdocs": "bin/techdocs-cli" }, "devDependencies": { - "@backstage/cli": "^0.1.1-alpha.12" + "@backstage/cli": "^0.1.1-alpha.13" }, "files": [ "bin", diff --git a/packages/test-utils-core/package.json b/packages/test-utils-core/package.json index 8252d396ff..10e5b0ea6b 100644 --- a/packages/test-utils-core/package.json +++ b/packages/test-utils-core/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/test-utils-core", "description": "Utilities to test Backstage core", - "version": "0.1.1-alpha.12", + "version": "0.1.1-alpha.13", "private": false, "publishConfig": { "access": "public", diff --git a/packages/test-utils/package.json b/packages/test-utils/package.json index 08214b285a..7bb5017fb0 100644 --- a/packages/test-utils/package.json +++ b/packages/test-utils/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/test-utils", "description": "Utilities to test Backstage plugins and apps.", - "version": "0.1.1-alpha.12", + "version": "0.1.1-alpha.13", "private": false, "publishConfig": { "access": "public", @@ -29,10 +29,10 @@ "clean": "backstage-cli clean" }, "dependencies": { - "@backstage/cli": "^0.1.1-alpha.12", - "@backstage/core-api": "^0.1.1-alpha.12", - "@backstage/test-utils-core": "^0.1.1-alpha.12", - "@backstage/theme": "^0.1.1-alpha.12", + "@backstage/cli": "^0.1.1-alpha.13", + "@backstage/core-api": "^0.1.1-alpha.13", + "@backstage/test-utils-core": "^0.1.1-alpha.13", + "@backstage/theme": "^0.1.1-alpha.13", "@material-ui/core": "^4.9.1", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^10.4.1", diff --git a/packages/theme/package.json b/packages/theme/package.json index 61bd0443d0..c6611750e1 100644 --- a/packages/theme/package.json +++ b/packages/theme/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/theme", "description": "material-ui theme for use with Backstage.", - "version": "0.1.1-alpha.12", + "version": "0.1.1-alpha.13", "private": false, "publishConfig": { "access": "public", @@ -31,7 +31,7 @@ "@material-ui/core": "^4.9.1" }, "devDependencies": { - "@backstage/cli": "^0.1.1-alpha.12" + "@backstage/cli": "^0.1.1-alpha.13" }, "files": [ "dist" diff --git a/plugins/auth-backend/package.json b/plugins/auth-backend/package.json index d756704a62..45024ff4c0 100644 --- a/plugins/auth-backend/package.json +++ b/plugins/auth-backend/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-auth-backend", - "version": "0.1.1-alpha.12", + "version": "0.1.1-alpha.13", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -20,9 +20,9 @@ "clean": "backstage-cli clean" }, "dependencies": { - "@backstage/backend-common": "^0.1.1-alpha.12", - "@backstage/config": "^0.1.1-alpha.12", - "@backstage/config-loader": "^0.1.1-alpha.12", + "@backstage/backend-common": "^0.1.1-alpha.13", + "@backstage/config": "^0.1.1-alpha.13", + "@backstage/config-loader": "^0.1.1-alpha.13", "@types/express": "^4.17.6", "body-parser": "^1.19.0", "compression": "^1.7.4", @@ -49,7 +49,7 @@ "yn": "^4.0.0" }, "devDependencies": { - "@backstage/cli": "^0.1.1-alpha.12", + "@backstage/cli": "^0.1.1-alpha.13", "@types/body-parser": "^1.19.0", "@types/cookie-parser": "^1.4.2", "@types/jwt-decode": "2.2.1", diff --git a/plugins/auth-backend/src/service/router.ts b/plugins/auth-backend/src/service/router.ts index 973b78858f..6b296cba2d 100644 --- a/plugins/auth-backend/src/service/router.ts +++ b/plugins/auth-backend/src/service/router.ts @@ -36,14 +36,18 @@ export async function createRouter( const router = Router(); const logger = options.logger.child({ plugin: 'auth' }); - const baseUrl = `${options.config.getString('backend.baseUrl')}/auth`; + const appUrl = new URL(options.config.getString('app.baseUrl')); + const appOrigin = appUrl.origin; + const backendUrl = options.config.getString('backend.baseUrl'); + const authUrl = `${backendUrl}/auth`; + const keyDurationSeconds = 3600; const keyStore = await DatabaseKeyStore.create({ database: options.database, }); const tokenIssuer = new TokenFactory({ - issuer: baseUrl, + issuer: authUrl, keyStore, keyDurationSeconds, logger: logger.child({ component: 'token-factory' }), @@ -53,16 +57,15 @@ export async function createRouter( router.use(bodyParser.urlencoded({ extended: false })); router.use(bodyParser.json()); - // TODO: read from app config const config = { backend: { - baseUrl: options.config.getString('backend.baseUrl'), + baseUrl: backendUrl, }, auth: { providers: { google: { development: { - appOrigin: 'http://localhost:3000', + appOrigin, secure: false, clientId: process.env.AUTH_GOOGLE_CLIENT_ID!, clientSecret: process.env.AUTH_GOOGLE_CLIENT_SECRET!, @@ -70,7 +73,7 @@ export async function createRouter( }, github: { development: { - appOrigin: 'http://localhost:3000', + appOrigin, secure: false, clientId: process.env.AUTH_GITHUB_CLIENT_ID!, clientSecret: process.env.AUTH_GITHUB_CLIENT_SECRET!, @@ -78,7 +81,7 @@ export async function createRouter( }, gitlab: { development: { - appOrigin: 'http://localhost:3000', + appOrigin, secure: false, clientId: process.env.AUTH_GITLAB_CLIENT_ID!, clientSecret: process.env.AUTH_GITLAB_CLIENT_SECRET!, @@ -93,7 +96,7 @@ export async function createRouter( }, okta: { development: { - appOrigin: 'http://localhost:3000', + appOrigin, secure: false, clientId: process.env.AUTH_OKTA_CLIENT_ID!, clientSecret: process.env.AUTH_OKTA_CLIENT_SECRET!, @@ -102,7 +105,7 @@ export async function createRouter( }, oauth2: { development: { - appOrigin: 'http://localhost:3000', + appOrigin, secure: false, clientId: process.env.AUTH_OAUTH2_CLIENT_ID!, clientSecret: process.env.AUTH_OAUTH2_CLIENT_SECRET!, @@ -121,7 +124,7 @@ export async function createRouter( try { const providerRouter = createAuthProviderRouter( providerId, - { baseUrl }, + { baseUrl: authUrl }, providerConfig, logger, tokenIssuer, @@ -135,7 +138,7 @@ export async function createRouter( router.use( createOidcRouter({ tokenIssuer, - baseUrl, + baseUrl: authUrl, }), ); diff --git a/plugins/catalog-backend/package.json b/plugins/catalog-backend/package.json index 1bfd72bdee..631109db10 100644 --- a/plugins/catalog-backend/package.json +++ b/plugins/catalog-backend/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-catalog-backend", - "version": "0.1.1-alpha.12", + "version": "0.1.1-alpha.13", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -21,8 +21,8 @@ "mock-data": "./scripts/mock-data" }, "dependencies": { - "@backstage/backend-common": "^0.1.1-alpha.12", - "@backstage/catalog-model": "^0.1.1-alpha.12", + "@backstage/backend-common": "^0.1.1-alpha.13", + "@backstage/catalog-model": "^0.1.1-alpha.13", "@types/express": "^4.17.6", "express": "^4.17.1", "express-promise-router": "^3.0.3", @@ -39,7 +39,7 @@ "yup": "^0.29.1" }, "devDependencies": { - "@backstage/cli": "^0.1.1-alpha.12", + "@backstage/cli": "^0.1.1-alpha.13", "@types/lodash": "^4.14.151", "@types/node-fetch": "^2.5.7", "@types/supertest": "^2.0.8", diff --git a/plugins/catalog/package.json b/plugins/catalog/package.json index 06c83136f5..849a66295b 100644 --- a/plugins/catalog/package.json +++ b/plugins/catalog/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-catalog", - "version": "0.1.1-alpha.12", + "version": "0.1.1-alpha.13", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -21,11 +21,11 @@ "clean": "backstage-cli clean" }, "dependencies": { - "@backstage/catalog-model": "^0.1.1-alpha.12", - "@backstage/core": "^0.1.1-alpha.12", - "@backstage/plugin-scaffolder": "^0.1.1-alpha.12", - "@backstage/plugin-sentry": "^0.1.1-alpha.12", - "@backstage/theme": "^0.1.1-alpha.12", + "@backstage/catalog-model": "^0.1.1-alpha.13", + "@backstage/core": "^0.1.1-alpha.13", + "@backstage/plugin-scaffolder": "^0.1.1-alpha.13", + "@backstage/plugin-sentry": "^0.1.1-alpha.13", + "@backstage/theme": "^0.1.1-alpha.13", "@material-ui/core": "^4.9.1", "@material-ui/icons": "^4.9.1", "@material-ui/lab": "4.0.0-alpha.45", @@ -38,9 +38,9 @@ "swr": "^0.2.2" }, "devDependencies": { - "@backstage/cli": "^0.1.1-alpha.12", - "@backstage/dev-utils": "^0.1.1-alpha.12", - "@backstage/test-utils": "^0.1.1-alpha.12", + "@backstage/cli": "^0.1.1-alpha.13", + "@backstage/dev-utils": "^0.1.1-alpha.13", + "@backstage/test-utils": "^0.1.1-alpha.13", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^10.4.1", "@testing-library/react-hooks": "^3.3.0", diff --git a/plugins/catalog/src/components/CatalogPage/WelcomeBanner.tsx b/plugins/catalog/src/components/CatalogPage/WelcomeBanner.tsx index ab486081b1..c7a280d106 100644 --- a/plugins/catalog/src/components/CatalogPage/WelcomeBanner.tsx +++ b/plugins/catalog/src/components/CatalogPage/WelcomeBanner.tsx @@ -38,11 +38,10 @@ export const WelcomeBanner = () => { variant="info" message={ - - 👋🏼 + + 🎉 - Welcome to Backstage, we are happy to have you. Start by checking out - our{' '} + Welcome to Backstage! Take a look around and check out our{' '} getting started {' '} diff --git a/plugins/circleci/package.json b/plugins/circleci/package.json index a27cd6b81c..69c74da25e 100644 --- a/plugins/circleci/package.json +++ b/plugins/circleci/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-circleci", - "version": "0.1.1-alpha.12", + "version": "0.1.1-alpha.13", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -21,8 +21,8 @@ "postpack": "backstage-cli postpack" }, "dependencies": { - "@backstage/core": "^0.1.1-alpha.12", - "@backstage/theme": "^0.1.1-alpha.12", + "@backstage/core": "^0.1.1-alpha.13", + "@backstage/theme": "^0.1.1-alpha.13", "@material-ui/core": "^4.9.1", "@material-ui/icons": "^4.9.1", "@material-ui/lab": "4.0.0-alpha.45", @@ -36,8 +36,8 @@ "react-use": "^14.2.0" }, "devDependencies": { - "@backstage/cli": "^0.1.1-alpha.12", - "@backstage/dev-utils": "^0.1.1-alpha.12", + "@backstage/cli": "^0.1.1-alpha.13", + "@backstage/dev-utils": "^0.1.1-alpha.13", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^10.4.1", "@testing-library/user-event": "^12.0.7", diff --git a/plugins/explore/package.json b/plugins/explore/package.json index dea3ffe87b..57ca519d5d 100644 --- a/plugins/explore/package.json +++ b/plugins/explore/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-explore", - "version": "0.1.1-alpha.12", + "version": "0.1.1-alpha.13", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -21,8 +21,8 @@ "start": "backstage-cli plugin:serve" }, "dependencies": { - "@backstage/core": "^0.1.1-alpha.12", - "@backstage/theme": "^0.1.1-alpha.12", + "@backstage/core": "^0.1.1-alpha.13", + "@backstage/theme": "^0.1.1-alpha.13", "@material-ui/core": "^4.9.1", "@material-ui/icons": "^4.9.1", "@material-ui/lab": "4.0.0-alpha.45", @@ -32,9 +32,9 @@ "react-use": "^14.2.0" }, "devDependencies": { - "@backstage/cli": "^0.1.1-alpha.12", - "@backstage/dev-utils": "^0.1.1-alpha.12", - "@backstage/test-utils": "^0.1.1-alpha.12", + "@backstage/cli": "^0.1.1-alpha.13", + "@backstage/dev-utils": "^0.1.1-alpha.13", + "@backstage/test-utils": "^0.1.1-alpha.13", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^10.4.1", "@testing-library/user-event": "^12.0.7", diff --git a/plugins/github-actions/package.json b/plugins/github-actions/package.json index 13c2215dea..456bd826c0 100644 --- a/plugins/github-actions/package.json +++ b/plugins/github-actions/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-github-actions", - "version": "0.1.1-alpha.12", + "version": "0.1.1-alpha.13", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -21,8 +21,8 @@ "clean": "backstage-cli clean" }, "dependencies": { - "@backstage/core": "^0.1.1-alpha.12", - "@backstage/theme": "^0.1.1-alpha.12", + "@backstage/core": "^0.1.1-alpha.13", + "@backstage/theme": "^0.1.1-alpha.13", "@material-ui/core": "^4.9.1", "@material-ui/icons": "^4.9.1", "@material-ui/lab": "4.0.0-alpha.45", @@ -32,8 +32,8 @@ "react-use": "^14.2.0" }, "devDependencies": { - "@backstage/cli": "^0.1.1-alpha.12", - "@backstage/dev-utils": "^0.1.1-alpha.12", + "@backstage/cli": "^0.1.1-alpha.13", + "@backstage/dev-utils": "^0.1.1-alpha.13", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^10.4.1", "@testing-library/user-event": "^12.0.7", diff --git a/plugins/gitops-profiles/package.json b/plugins/gitops-profiles/package.json index b96843d412..108f37b381 100644 --- a/plugins/gitops-profiles/package.json +++ b/plugins/gitops-profiles/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-gitops-profiles", - "version": "0.1.1-alpha.12", + "version": "0.1.1-alpha.13", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -21,8 +21,8 @@ "clean": "backstage-cli clean" }, "dependencies": { - "@backstage/core": "^0.1.1-alpha.12", - "@backstage/theme": "^0.1.1-alpha.12", + "@backstage/core": "^0.1.1-alpha.13", + "@backstage/theme": "^0.1.1-alpha.13", "@material-ui/core": "^4.9.1", "@material-ui/icons": "^4.9.1", "@material-ui/lab": "4.0.0-alpha.45", @@ -32,8 +32,8 @@ "react-use": "^14.2.0" }, "devDependencies": { - "@backstage/cli": "^0.1.1-alpha.12", - "@backstage/dev-utils": "^0.1.1-alpha.12", + "@backstage/cli": "^0.1.1-alpha.13", + "@backstage/dev-utils": "^0.1.1-alpha.13", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^10.4.1", "@testing-library/user-event": "^12.0.7", diff --git a/plugins/graphiql/package.json b/plugins/graphiql/package.json index 45cad52ac8..b9bc339f22 100644 --- a/plugins/graphiql/package.json +++ b/plugins/graphiql/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-graphiql", "description": "Backstage plugin for browsing GraphQL APIs", - "version": "0.1.1-alpha.12", + "version": "0.1.1-alpha.13", "private": false, "publishConfig": { "access": "public", @@ -31,8 +31,8 @@ "clean": "backstage-cli clean" }, "dependencies": { - "@backstage/core": "^0.1.1-alpha.12", - "@backstage/theme": "^0.1.1-alpha.12", + "@backstage/core": "^0.1.1-alpha.13", + "@backstage/theme": "^0.1.1-alpha.13", "@material-ui/core": "^4.9.1", "@material-ui/icons": "^4.9.1", "@material-ui/lab": "4.0.0-alpha.45", @@ -43,9 +43,9 @@ "react-use": "^14.2.0" }, "devDependencies": { - "@backstage/cli": "^0.1.1-alpha.12", - "@backstage/dev-utils": "^0.1.1-alpha.12", - "@backstage/test-utils": "^0.1.1-alpha.12", + "@backstage/cli": "^0.1.1-alpha.13", + "@backstage/dev-utils": "^0.1.1-alpha.13", + "@backstage/test-utils": "^0.1.1-alpha.13", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^10.4.1", "@testing-library/user-event": "^12.0.7", diff --git a/plugins/identity-backend/package.json b/plugins/identity-backend/package.json index bc2e82bf94..4f3516120c 100644 --- a/plugins/identity-backend/package.json +++ b/plugins/identity-backend/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-identity-backend", - "version": "0.1.1-alpha.12", + "version": "0.1.1-alpha.13", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -20,7 +20,7 @@ "clean": "backstage-cli clean" }, "dependencies": { - "@backstage/backend-common": "^0.1.1-alpha.12", + "@backstage/backend-common": "^0.1.1-alpha.13", "@types/express": "^4.17.6", "compression": "^1.7.4", "cors": "^2.8.5", @@ -33,7 +33,7 @@ "yn": "^4.0.0" }, "devDependencies": { - "@backstage/cli": "^0.1.1-alpha.12", + "@backstage/cli": "^0.1.1-alpha.13", "jest-fetch-mock": "^3.0.3" }, "files": [ diff --git a/plugins/lighthouse/package.json b/plugins/lighthouse/package.json index 6f3a67ef64..c87d480c62 100644 --- a/plugins/lighthouse/package.json +++ b/plugins/lighthouse/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-lighthouse", - "version": "0.1.1-alpha.12", + "version": "0.1.1-alpha.13", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -21,8 +21,8 @@ "start": "backstage-cli plugin:serve" }, "dependencies": { - "@backstage/core": "^0.1.1-alpha.12", - "@backstage/theme": "^0.1.1-alpha.12", + "@backstage/core": "^0.1.1-alpha.13", + "@backstage/theme": "^0.1.1-alpha.13", "@material-ui/core": "^4.9.1", "@material-ui/icons": "^4.9.1", "@material-ui/lab": "4.0.0-alpha.45", @@ -33,9 +33,9 @@ "react-use": "^14.2.0" }, "devDependencies": { - "@backstage/cli": "^0.1.1-alpha.12", - "@backstage/dev-utils": "^0.1.1-alpha.12", - "@backstage/test-utils": "^0.1.1-alpha.12", + "@backstage/cli": "^0.1.1-alpha.13", + "@backstage/dev-utils": "^0.1.1-alpha.13", + "@backstage/test-utils": "^0.1.1-alpha.13", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^10.4.1", "@testing-library/user-event": "^12.0.7", diff --git a/plugins/register-component/package.json b/plugins/register-component/package.json index de57e8a233..dabd591bd0 100644 --- a/plugins/register-component/package.json +++ b/plugins/register-component/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-register-component", - "version": "0.1.1-alpha.12", + "version": "0.1.1-alpha.13", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -21,10 +21,10 @@ "clean": "backstage-cli clean" }, "dependencies": { - "@backstage/catalog-model": "^0.1.1-alpha.12", - "@backstage/core": "^0.1.1-alpha.12", - "@backstage/plugin-catalog": "^0.1.1-alpha.12", - "@backstage/theme": "^0.1.1-alpha.12", + "@backstage/catalog-model": "^0.1.1-alpha.13", + "@backstage/core": "^0.1.1-alpha.13", + "@backstage/plugin-catalog": "^0.1.1-alpha.13", + "@backstage/theme": "^0.1.1-alpha.13", "@material-ui/core": "^4.9.1", "@material-ui/icons": "^4.9.1", "@material-ui/lab": "4.0.0-alpha.45", @@ -36,8 +36,8 @@ "react-use": "^14.2.0" }, "devDependencies": { - "@backstage/cli": "^0.1.1-alpha.12", - "@backstage/dev-utils": "^0.1.1-alpha.12", + "@backstage/cli": "^0.1.1-alpha.13", + "@backstage/dev-utils": "^0.1.1-alpha.13", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^10.4.1", "@testing-library/user-event": "^12.0.7", diff --git a/plugins/scaffolder-backend/package.json b/plugins/scaffolder-backend/package.json index 30de3a8b6f..24cb88d980 100644 --- a/plugins/scaffolder-backend/package.json +++ b/plugins/scaffolder-backend/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-scaffolder-backend", - "version": "0.1.1-alpha.12", + "version": "0.1.1-alpha.13", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -21,9 +21,9 @@ "mock-data": "./scripts/mock-data" }, "dependencies": { - "@backstage/backend-common": "^0.1.1-alpha.12", - "@backstage/catalog-model": "^0.1.1-alpha.12", - "@backstage/config": "^0.1.1-alpha.12", + "@backstage/backend-common": "^0.1.1-alpha.13", + "@backstage/catalog-model": "^0.1.1-alpha.13", + "@backstage/config": "^0.1.1-alpha.13", "@octokit/rest": "^18.0.0", "@types/dockerode": "^2.5.32", "@types/express": "^4.17.6", @@ -42,7 +42,7 @@ "winston": "^3.2.1" }, "devDependencies": { - "@backstage/cli": "^0.1.1-alpha.12", + "@backstage/cli": "^0.1.1-alpha.13", "@octokit/types": "^5.0.1", "@types/fs-extra": "^9.0.1", "@types/git-url-parse": "^9.0.0", diff --git a/plugins/scaffolder/package.json b/plugins/scaffolder/package.json index 67f491b609..1b6c9ff94a 100644 --- a/plugins/scaffolder/package.json +++ b/plugins/scaffolder/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-scaffolder", - "version": "0.1.1-alpha.12", + "version": "0.1.1-alpha.13", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -21,10 +21,10 @@ "clean": "backstage-cli clean" }, "dependencies": { - "@backstage/catalog-model": "^0.1.1-alpha.12", - "@backstage/core": "^0.1.1-alpha.12", - "@backstage/plugin-catalog": "^0.1.1-alpha.12", - "@backstage/theme": "^0.1.1-alpha.12", + "@backstage/catalog-model": "^0.1.1-alpha.13", + "@backstage/core": "^0.1.1-alpha.13", + "@backstage/plugin-catalog": "^0.1.1-alpha.13", + "@backstage/theme": "^0.1.1-alpha.13", "@material-ui/core": "^4.9.1", "@material-ui/icons": "^4.9.1", "@material-ui/lab": "4.0.0-alpha.45", @@ -41,9 +41,9 @@ "swr": "^0.2.2" }, "devDependencies": { - "@backstage/cli": "^0.1.1-alpha.12", - "@backstage/dev-utils": "^0.1.1-alpha.12", - "@backstage/test-utils": "^0.1.1-alpha.12", + "@backstage/cli": "^0.1.1-alpha.13", + "@backstage/dev-utils": "^0.1.1-alpha.13", + "@backstage/test-utils": "^0.1.1-alpha.13", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^10.4.1", "@testing-library/user-event": "^12.0.7", diff --git a/plugins/sentry-backend/package.json b/plugins/sentry-backend/package.json index b897a80e9a..11144f888b 100644 --- a/plugins/sentry-backend/package.json +++ b/plugins/sentry-backend/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-sentry-backend", - "version": "0.1.1-alpha.12", + "version": "0.1.1-alpha.13", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -20,7 +20,7 @@ "clean": "backstage-cli clean" }, "dependencies": { - "@backstage/backend-common": "^0.1.1-alpha.12", + "@backstage/backend-common": "^0.1.1-alpha.13", "@types/express": "^4.17.6", "axios": "^0.19.2", "compression": "^1.7.4", @@ -34,7 +34,7 @@ "yn": "^4.0.0" }, "devDependencies": { - "@backstage/cli": "^0.1.1-alpha.12", + "@backstage/cli": "^0.1.1-alpha.13", "jest-fetch-mock": "^3.0.3" }, "files": [ diff --git a/plugins/sentry/package.json b/plugins/sentry/package.json index 2af4badc07..f1a1011893 100644 --- a/plugins/sentry/package.json +++ b/plugins/sentry/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-sentry", - "version": "0.1.1-alpha.12", + "version": "0.1.1-alpha.13", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -21,8 +21,8 @@ "clean": "backstage-cli clean" }, "dependencies": { - "@backstage/core": "^0.1.1-alpha.12", - "@backstage/theme": "^0.1.1-alpha.12", + "@backstage/core": "^0.1.1-alpha.13", + "@backstage/theme": "^0.1.1-alpha.13", "@material-ui/core": "^4.9.1", "@material-ui/icons": "^4.9.1", "@material-ui/lab": "4.0.0-alpha.45", @@ -34,8 +34,8 @@ "timeago.js": "^4.0.2" }, "devDependencies": { - "@backstage/cli": "^0.1.1-alpha.12", - "@backstage/dev-utils": "^0.1.1-alpha.12", + "@backstage/cli": "^0.1.1-alpha.13", + "@backstage/dev-utils": "^0.1.1-alpha.13", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^10.4.1", "@testing-library/user-event": "^12.0.7", diff --git a/plugins/tech-radar/package.json b/plugins/tech-radar/package.json index 0ea28e38a9..1bdc66903b 100644 --- a/plugins/tech-radar/package.json +++ b/plugins/tech-radar/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-tech-radar", - "version": "0.1.1-alpha.12", + "version": "0.1.1-alpha.13", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -21,9 +21,9 @@ "start": "backstage-cli plugin:serve" }, "dependencies": { - "@backstage/core": "^0.1.1-alpha.12", - "@backstage/test-utils-core": "^0.1.1-alpha.12", - "@backstage/theme": "^0.1.1-alpha.12", + "@backstage/core": "^0.1.1-alpha.13", + "@backstage/test-utils-core": "^0.1.1-alpha.13", + "@backstage/theme": "^0.1.1-alpha.13", "@material-ui/core": "^4.9.1", "@material-ui/icons": "^4.9.1", "@material-ui/lab": "4.0.0-alpha.45", @@ -35,16 +35,16 @@ "react-use": "^14.2.0" }, "devDependencies": { - "@backstage/cli": "^0.1.1-alpha.12", - "@backstage/dev-utils": "^0.1.1-alpha.12", + "@backstage/cli": "^0.1.1-alpha.13", + "@backstage/dev-utils": "^0.1.1-alpha.13", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^10.4.1", "@testing-library/user-event": "^12.0.7", "@types/color": "^3.0.1", "@types/d3-force": "^1.2.1", - "@types/react": "^16.9", "@types/jest": "^25.2.2", "@types/node": "^12.0.0", + "@types/react": "^16.9", "jest-fetch-mock": "^3.0.3" }, "files": [ diff --git a/plugins/techdocs-backend/.eslintrc.js b/plugins/techdocs-backend/.eslintrc.js new file mode 100644 index 0000000000..16a033dbc6 --- /dev/null +++ b/plugins/techdocs-backend/.eslintrc.js @@ -0,0 +1,3 @@ +module.exports = { + extends: [require.resolve('@backstage/cli/config/eslint.backend')], +}; diff --git a/plugins/techdocs-backend/README.md b/plugins/techdocs-backend/README.md new file mode 100644 index 0000000000..ad98d07f95 --- /dev/null +++ b/plugins/techdocs-backend/README.md @@ -0,0 +1,22 @@ +# techdocs-backend + +This is the backend part of the techdocs plugin. + +## Getting Started + +This backend plugin can be started in a standalone mode from directly in this package +with `yarn start`. However, it will have limited functionality and that process is +most convenient when developing the catalog backend plugin itself. + +To evaluate the catalog and have a greater amount of functionality available, instead do + +```bash +# in one terminal window, run this from from the very root of the Backstage project +cd packages/backend +yarn start +``` + +## Links + +- (Frontend part of the plugin)[https://github.com/spotify/backstage/tree/master/plugins/techdocs] +- (The Backstage homepage)[https://backstage.io] diff --git a/plugins/techdocs-backend/package.json b/plugins/techdocs-backend/package.json new file mode 100644 index 0000000000..0ccae9a6f7 --- /dev/null +++ b/plugins/techdocs-backend/package.json @@ -0,0 +1,37 @@ +{ + "name": "@backstage/plugin-techdocs-backend", + "version": "0.1.1-alpha.13", + "main": "src/index.ts", + "types": "src/index.ts", + "license": "Apache-2.0", + "private": false, + "publishConfig": { + "access": "public", + "main": "dist/index.cjs.js", + "types": "dist/index.d.ts" + }, + "scripts": { + "start": "backstage-cli backend:dev", + "build": "backstage-cli backend:build", + "lint": "backstage-cli lint", + "test": "backstage-cli test", + "prepack": "backstage-cli prepack", + "postpack": "backstage-cli postpack", + "clean": "backstage-cli clean" + }, + "dependencies": { + "@backstage/backend-common": "^0.1.1-alpha.12", + "@types/express": "^4.17.6", + "express": "^4.17.1", + "express-promise-router": "^3.0.3", + "knex": "^0.21.1", + "winston": "^3.2.1" + }, + "devDependencies": { + "@backstage/cli": "^0.1.1-alpha.12", + "supertest": "^4.0.2" + }, + "files": [ + "dist" + ] +} diff --git a/plugins/techdocs-backend/src/index.ts b/plugins/techdocs-backend/src/index.ts new file mode 100644 index 0000000000..7612c392a2 --- /dev/null +++ b/plugins/techdocs-backend/src/index.ts @@ -0,0 +1,17 @@ +/* + * 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. + */ + +export * from './service/router'; diff --git a/plugins/techdocs-backend/src/service/router.test.ts b/plugins/techdocs-backend/src/service/router.test.ts new file mode 100644 index 0000000000..f4dbb706fd --- /dev/null +++ b/plugins/techdocs-backend/src/service/router.test.ts @@ -0,0 +1,40 @@ +/* + * 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 { getVoidLogger } from '@backstage/backend-common'; +import express from 'express'; +import request from 'supertest'; +import { createRouter } from './router'; + +describe('createRouter', () => { + let app: express.Express; + + beforeAll(async () => { + const router = await createRouter({ + logger: getVoidLogger(), + }); + app = express().use(router); + }); + + describe('GET /', () => { + it('does not explode', async () => { + const response = await request(app).get('/'); + + expect(response.status).toEqual(200); + expect(response.text).toEqual('Hello TechDocs Backend'); + }); + }); +}); diff --git a/plugins/techdocs-backend/src/service/router.ts b/plugins/techdocs-backend/src/service/router.ts new file mode 100644 index 0000000000..7c91dd4ef7 --- /dev/null +++ b/plugins/techdocs-backend/src/service/router.ts @@ -0,0 +1,34 @@ +/* + * 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 { Logger } from 'winston'; +import Router from 'express-promise-router'; +import express from 'express'; +import Knex from 'knex'; + +type RouterOptions = { + logger: Logger; + database?: Knex; // TODO: Make database required when we're implementing database stuff. +}; + +export async function createRouter({}: RouterOptions): Promise { + const router = Router(); + + router.get('/', (_, res) => { + res.status(200).send('Hello TechDocs Backend'); + }); + + return router; +} diff --git a/plugins/techdocs-backend/src/service/standaloneServer.ts b/plugins/techdocs-backend/src/service/standaloneServer.ts new file mode 100644 index 0000000000..09acfc9e27 --- /dev/null +++ b/plugins/techdocs-backend/src/service/standaloneServer.ts @@ -0,0 +1,46 @@ +/* + * 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 { createServiceBuilder } from '@backstage/backend-common'; +import { Server } from 'http'; +import { Logger } from 'winston'; +import { createRouter } from './router'; + +export interface ServerOptions { + port: number; + enableCors: boolean; + logger: Logger; +} + +export async function startStandaloneServer( + options: ServerOptions, +): Promise { + const logger = options.logger.child({ service: 'techdocs-backend' }); + + logger.debug('Creating application...'); + + logger.debug('Starting application server...'); + const router = await createRouter({ logger }); + const service = createServiceBuilder(module) + .enableCors({ origin: 'http://localhost:3000' }) + .addRouter('/techdocs', router); + return await service.start().catch(err => { + logger.error(err); + process.exit(1); + }); +} + +module.hot?.accept(); diff --git a/plugins/techdocs/package.json b/plugins/techdocs/package.json index 65ea979607..d8ee613407 100644 --- a/plugins/techdocs/package.json +++ b/plugins/techdocs/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-techdocs", - "version": "0.1.1-alpha.12", + "version": "0.1.1-alpha.13", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -21,9 +21,9 @@ "clean": "backstage-cli clean" }, "dependencies": { - "@backstage/core": "^0.1.1-alpha.12", - "@backstage/test-utils": "^0.1.1-alpha.12", - "@backstage/theme": "^0.1.1-alpha.12", + "@backstage/core": "^0.1.1-alpha.13", + "@backstage/test-utils": "^0.1.1-alpha.13", + "@backstage/theme": "^0.1.1-alpha.13", "@material-ui/core": "^4.9.1", "@material-ui/icons": "^4.9.1", "@material-ui/lab": "4.0.0-alpha.45", @@ -35,8 +35,8 @@ "sanitize-html": "^1.27.0" }, "devDependencies": { - "@backstage/cli": "^0.1.1-alpha.12", - "@backstage/dev-utils": "^0.1.1-alpha.12", + "@backstage/cli": "^0.1.1-alpha.13", + "@backstage/dev-utils": "^0.1.1-alpha.13", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^10.4.1", "@testing-library/user-event": "^12.0.7", diff --git a/plugins/welcome/package.json b/plugins/welcome/package.json index df33c222f4..e826e899b0 100644 --- a/plugins/welcome/package.json +++ b/plugins/welcome/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-welcome", - "version": "0.1.1-alpha.12", + "version": "0.1.1-alpha.13", "main": "src/index.ts", "types": "src/index.ts", "private": false, @@ -21,8 +21,8 @@ "start": "backstage-cli plugin:serve" }, "dependencies": { - "@backstage/core": "^0.1.1-alpha.12", - "@backstage/theme": "^0.1.1-alpha.12", + "@backstage/core": "^0.1.1-alpha.13", + "@backstage/theme": "^0.1.1-alpha.13", "@material-ui/core": "^4.9.1", "@material-ui/icons": "^4.9.1", "@material-ui/lab": "4.0.0-alpha.45", @@ -32,8 +32,8 @@ "react-use": "^14.2.0" }, "devDependencies": { - "@backstage/cli": "^0.1.1-alpha.12", - "@backstage/dev-utils": "^0.1.1-alpha.12", + "@backstage/cli": "^0.1.1-alpha.13", + "@backstage/dev-utils": "^0.1.1-alpha.13", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^10.4.1", "@testing-library/user-event": "^12.0.7",