From 14323967e244868f31f43c471f22d3c966253f8c Mon Sep 17 00:00:00 2001 From: "dependabot-preview[bot]" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Wed, 26 Aug 2020 06:35:43 +0000 Subject: [PATCH 01/10] chore(deps): bump inquirer from 7.2.0 to 7.3.3 Bumps [inquirer](https://github.com/SBoudrias/Inquirer.js) from 7.2.0 to 7.3.3. - [Release notes](https://github.com/SBoudrias/Inquirer.js/releases) - [Commits](https://github.com/SBoudrias/Inquirer.js/compare/inquirer@7.2.0...inquirer@7.3.3) Signed-off-by: dependabot-preview[bot] --- yarn.lock | 27 ++++++++++++++++----------- 1 file changed, 16 insertions(+), 11 deletions(-) diff --git a/yarn.lock b/yarn.lock index 000bfa9fb9..8e24dba10d 100644 --- a/yarn.lock +++ b/yarn.lock @@ -7916,6 +7916,11 @@ cli-width@^2.0.0: resolved "https://registry.npmjs.org/cli-width/-/cli-width-2.2.0.tgz#ff19ede8a9a5e579324147b0c11f0fbcbabed639" integrity sha1-/xnt6Kml5XkyQUewwR8PvLq+1jk= +cli-width@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/cli-width/-/cli-width-3.0.0.tgz#a2f48437a2caa9a22436e794bf071ec9e61cedf6" + integrity sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw== + clipboard@^2.0.0: version "2.0.6" resolved "https://registry.npmjs.org/clipboard/-/clipboard-2.0.6.tgz#52921296eec0fdf77ead1749421b21c968647376" @@ -13081,20 +13086,20 @@ inquirer@^6.2.0: through "^2.3.6" inquirer@^7.0.0, inquirer@^7.0.4: - version "7.2.0" - resolved "https://registry.npmjs.org/inquirer/-/inquirer-7.2.0.tgz#63ce99d823090de7eb420e4bb05e6f3449aa389a" - integrity sha512-E0c4rPwr9ByePfNlTIB8z51kK1s2n6jrHuJeEHENl/sbq2G/S1auvibgEwNR4uSyiU+PiYHqSwsgGiXjG8p5ZQ== + version "7.3.3" + resolved "https://registry.npmjs.org/inquirer/-/inquirer-7.3.3.tgz#04d176b2af04afc157a83fd7c100e98ee0aad003" + integrity sha512-JG3eIAj5V9CwcGvuOmoo6LB9kbAYT8HXffUl6memuszlwDC/qvFAJw49XJ5NROSFNPxp3iQg1GqkFhaY/CR0IA== dependencies: ansi-escapes "^4.2.1" - chalk "^3.0.0" + chalk "^4.1.0" cli-cursor "^3.1.0" - cli-width "^2.0.0" + cli-width "^3.0.0" external-editor "^3.0.3" figures "^3.0.0" - lodash "^4.17.15" + lodash "^4.17.19" mute-stream "0.0.8" run-async "^2.4.0" - rxjs "^6.5.3" + rxjs "^6.6.0" string-width "^4.1.0" strip-ansi "^6.0.0" through "^2.3.6" @@ -20196,10 +20201,10 @@ run-queue@^1.0.0, run-queue@^1.0.3: dependencies: aproba "^1.1.1" -rxjs@^6.3.3, rxjs@^6.4.0, rxjs@^6.5.2, rxjs@^6.5.3, rxjs@^6.5.5: - version "6.6.0" - resolved "https://registry.npmjs.org/rxjs/-/rxjs-6.6.0.tgz#af2901eedf02e3a83ffa7f886240ff9018bbec84" - integrity sha512-3HMA8z/Oz61DUHe+SdOiQyzIf4tOx5oQHmMir7IZEu6TMqCLHT4LRcmNaUS0NwOz8VLvmmBduMsoaUvMaIiqzg== +rxjs@^6.3.3, rxjs@^6.4.0, rxjs@^6.5.2, rxjs@^6.5.3, rxjs@^6.5.5, rxjs@^6.6.0: + version "6.6.2" + resolved "https://registry.npmjs.org/rxjs/-/rxjs-6.6.2.tgz#8096a7ac03f2cc4fe5860ef6e572810d9e01c0d2" + integrity sha512-BHdBMVoWC2sL26w//BCu3YzKT4s2jip/WhwsGEDmeKYBhKDZeYezVUnHatYB7L85v5xs0BAQmg6BEYJEKxBabg== dependencies: tslib "^1.9.0" From 9a2e3b93de060e5ffb11c7a6b5550502a374ab6b Mon Sep 17 00:00:00 2001 From: ebarrios Date: Thu, 27 Aug 2020 17:39:22 +0200 Subject: [PATCH 02/10] Added Widget for listing workflows run --- .../src/components/Widget/Widget.tsx | 53 ++++++++++++++++++- .../src/components/Widget/index.ts | 2 +- 2 files changed, 53 insertions(+), 2 deletions(-) diff --git a/plugins/github-actions/src/components/Widget/Widget.tsx b/plugins/github-actions/src/components/Widget/Widget.tsx index 031364c8ce..201004f46e 100644 --- a/plugins/github-actions/src/components/Widget/Widget.tsx +++ b/plugins/github-actions/src/components/Widget/Widget.tsx @@ -15,7 +15,7 @@ */ import React, { useEffect } from 'react'; import { useWorkflowRuns } from '../useWorkflowRuns'; -import { WorkflowRun } from '../WorkflowRunsTable'; +import { WorkflowRun, WorkflowRunsTable } from '../WorkflowRunsTable'; import { Entity } from '@backstage/catalog-model'; import { WorkflowRunStatus } from '../WorkflowRunStatus'; import { @@ -108,3 +108,54 @@ export const Widget = ({ ); }; + +const WidgetListContent = ({ + error, + loading, + branch, +}: { + error?: Error; + loading?: boolean; + lastRun: WorkflowRun; + branch: string; +}) => { + if (error) return Couldn't fetch {branch} runs; + if (loading) return ; + return ; +}; + +export const WidgetList = ({ + entity, + branch = 'master', +}: { + entity: Entity; + branch: string; +}) => { + const errorApi = useApi(errorApiRef); + const [owner, repo] = ( + entity?.metadata.annotations?.['backstage.io/github-actions-id'] ?? '/' + ).split('/'); + const [{ runs, loading, error }] = useWorkflowRuns({ + owner, + repo, + branch, + }); + + const lastRun = runs?.[0] ?? ({} as WorkflowRun); + useEffect(() => { + if (error) { + errorApi.post(error); + } + }, [error, errorApi]); + + return ( + + + + ); +}; diff --git a/plugins/github-actions/src/components/Widget/index.ts b/plugins/github-actions/src/components/Widget/index.ts index 2b34671ab5..0efc84d952 100644 --- a/plugins/github-actions/src/components/Widget/index.ts +++ b/plugins/github-actions/src/components/Widget/index.ts @@ -13,4 +13,4 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -export { Widget } from './Widget'; +export { Widget, WidgetList } from './Widget'; From babfe5716b7940d7f5737fb8dca2b7ead9fc157b Mon Sep 17 00:00:00 2001 From: ebarrios Date: Thu, 27 Aug 2020 17:39:22 +0200 Subject: [PATCH 03/10] Added Widget for listing workflows run --- .../src/components/Widget/Widget.tsx | 53 ++++++++++++++++++- .../src/components/Widget/index.ts | 2 +- 2 files changed, 53 insertions(+), 2 deletions(-) diff --git a/plugins/github-actions/src/components/Widget/Widget.tsx b/plugins/github-actions/src/components/Widget/Widget.tsx index 031364c8ce..201004f46e 100644 --- a/plugins/github-actions/src/components/Widget/Widget.tsx +++ b/plugins/github-actions/src/components/Widget/Widget.tsx @@ -15,7 +15,7 @@ */ import React, { useEffect } from 'react'; import { useWorkflowRuns } from '../useWorkflowRuns'; -import { WorkflowRun } from '../WorkflowRunsTable'; +import { WorkflowRun, WorkflowRunsTable } from '../WorkflowRunsTable'; import { Entity } from '@backstage/catalog-model'; import { WorkflowRunStatus } from '../WorkflowRunStatus'; import { @@ -108,3 +108,54 @@ export const Widget = ({ ); }; + +const WidgetListContent = ({ + error, + loading, + branch, +}: { + error?: Error; + loading?: boolean; + lastRun: WorkflowRun; + branch: string; +}) => { + if (error) return Couldn't fetch {branch} runs; + if (loading) return ; + return ; +}; + +export const WidgetList = ({ + entity, + branch = 'master', +}: { + entity: Entity; + branch: string; +}) => { + const errorApi = useApi(errorApiRef); + const [owner, repo] = ( + entity?.metadata.annotations?.['backstage.io/github-actions-id'] ?? '/' + ).split('/'); + const [{ runs, loading, error }] = useWorkflowRuns({ + owner, + repo, + branch, + }); + + const lastRun = runs?.[0] ?? ({} as WorkflowRun); + useEffect(() => { + if (error) { + errorApi.post(error); + } + }, [error, errorApi]); + + return ( + + + + ); +}; diff --git a/plugins/github-actions/src/components/Widget/index.ts b/plugins/github-actions/src/components/Widget/index.ts index 2b34671ab5..0efc84d952 100644 --- a/plugins/github-actions/src/components/Widget/index.ts +++ b/plugins/github-actions/src/components/Widget/index.ts @@ -13,4 +13,4 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -export { Widget } from './Widget'; +export { Widget, WidgetList } from './Widget'; From e2473c6989da81f711fac75f174a6af0fe72c5bd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fredrik=20Adel=C3=B6w?= Date: Fri, 28 Aug 2020 11:22:20 +0200 Subject: [PATCH 04/10] fix(build): remove node_modules caching on windows --- .github/workflows/e2e-win.yml | 8 -------- .github/workflows/master-win.yml | 8 -------- 2 files changed, 16 deletions(-) diff --git a/.github/workflows/e2e-win.yml b/.github/workflows/e2e-win.yml index 37cb13ffbe..5ebf67bc9a 100644 --- a/.github/workflows/e2e-win.yml +++ b/.github/workflows/e2e-win.yml @@ -33,19 +33,11 @@ jobs: with: node-version: ${{ matrix.node-version }} registry-url: https://registry.npmjs.org/ # Needed for auth - - name: cache all node_modules - id: cache-modules - uses: actions/cache@v2 - with: - path: '**/node_modules' - key: ${{ runner.os }}-node_modules-${{ hashFiles('yarn.lock', '**/package.json') }} - name: find location of global yarn cache id: yarn-cache - if: steps.cache-modules.outputs.cache-hit != 'true' run: echo "::set-output name=dir::$(yarn cache dir)" - name: cache global yarn cache uses: actions/cache@v2 - if: steps.cache-modules.outputs.cache-hit != 'true' with: path: ${{ steps.yarn-cache.outputs.dir }} key: ${{ runner.os }}-yarn-${{ hashFiles('yarn.lock') }} diff --git a/.github/workflows/master-win.yml b/.github/workflows/master-win.yml index b5a042a236..296a7511bc 100644 --- a/.github/workflows/master-win.yml +++ b/.github/workflows/master-win.yml @@ -25,19 +25,11 @@ jobs: with: node-version: ${{ matrix.node-version }} registry-url: https://registry.npmjs.org/ # Needed for auth - - name: cache all node_modules - id: cache-modules - uses: actions/cache@v2 - with: - path: '**/node_modules' - key: ${{ runner.os }}-node_modules-${{ hashFiles('yarn.lock', '**/package.json') }} - name: find location of global yarn cache id: yarn-cache - if: steps.cache-modules.outputs.cache-hit != 'true' run: echo "::set-output name=dir::$(yarn cache dir)" - name: cache global yarn cache uses: actions/cache@v2 - if: steps.cache-modules.outputs.cache-hit != 'true' with: path: ${{ steps.yarn-cache.outputs.dir }} key: ${{ runner.os }}-yarn-${{ hashFiles('yarn.lock') }} From cd3dde5af6ae3792d297b95d5b450ea39ee9e9f9 Mon Sep 17 00:00:00 2001 From: Emma Indal Date: Fri, 28 Aug 2020 11:56:22 +0200 Subject: [PATCH 05/10] add techdocs big picture to docs (#2153) --- docs/assets/techdocs/techdocs_big_picture.png | Bin 0 -> 137076 bytes docs/features/techdocs/README.md | 4 ++++ 2 files changed, 4 insertions(+) create mode 100644 docs/assets/techdocs/techdocs_big_picture.png diff --git a/docs/assets/techdocs/techdocs_big_picture.png b/docs/assets/techdocs/techdocs_big_picture.png new file mode 100644 index 0000000000000000000000000000000000000000..ffe437180f2df0e8df7bfb8db162b38733f54622 GIT binary patch literal 137076 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

_X92zeSU`dW=JJL~nLKNk+YZU1+ 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 literal 0 HcmV?d00001 diff --git a/docs/features/techdocs/README.md b/docs/features/techdocs/README.md index c0e6ccfda9..8bdbd27d3c 100644 --- a/docs/features/techdocs/README.md +++ b/docs/features/techdocs/README.md @@ -101,3 +101,7 @@ more to come... https://github.com/spotify/backstage/blob/master/packages/techdocs-container [techdocs/cli]: https://github.com/spotify/backstage/blob/master/packages/techdocs-cli + +## TechDocs Big Picture + +![TechDocs Big Picture](../..//assets/techdocs/techdocs_big_picture.png) From a16499065864dc2c09fa8ea2b584e2f8fbaaebcb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fredrik=20Adel=C3=B6w?= Date: Thu, 27 Aug 2020 11:12:57 +0200 Subject: [PATCH 06/10] fix(create-app): updated the backend template to match new functionality --- app-config.yaml | 5 +++ .../{app-config.yaml => app-config.yaml.hbs} | 27 ++++++++++++++-- .../backend/src/{index.ts.hbs => index.ts} | 31 ++----------------- 3 files changed, 32 insertions(+), 31 deletions(-) rename packages/create-app/templates/default-app/{app-config.yaml => app-config.yaml.hbs} (83%) rename packages/create-app/templates/default-app/packages/backend/src/{index.ts.hbs => index.ts} (73%) diff --git a/app-config.yaml b/app-config.yaml index 38f16e1ac3..0a85198630 100644 --- a/app-config.yaml +++ b/app-config.yaml @@ -61,6 +61,11 @@ catalog: - https://github.com/spotify/backstage/blob/master/packages/catalog-model/examples/playback-lib-component.yaml - https://github.com/spotify/backstage/blob/master/packages/catalog-model/examples/www-artist-component.yaml - https://github.com/spotify/backstage/blob/master/packages/catalog-model/examples/shuffle-api-component.yaml + - https://github.com/spotify/backstage/blob/master/plugins/scaffolder-backend/sample-templates/react-ssr-template/template.yaml + - https://github.com/spotify/backstage/blob/master/plugins/scaffolder-backend/sample-templates/springboot-grpc-template/template.yaml + - https://github.com/spotify/backstage/blob/master/plugins/scaffolder-backend/sample-templates/create-react-app/template.yaml + - https://github.com/spotify/cookiecutter-golang/blob/master/template.yaml + - https://github.com/spotify/backstage/blob/master/plugins/scaffolder-backend/sample-templates/docs-template/template.yaml auth: providers: diff --git a/packages/create-app/templates/default-app/app-config.yaml b/packages/create-app/templates/default-app/app-config.yaml.hbs similarity index 83% rename from packages/create-app/templates/default-app/app-config.yaml rename to packages/create-app/templates/default-app/app-config.yaml.hbs index 0c3ec3ed80..a8e1e194a0 100644 --- a/packages/create-app/templates/default-app/app-config.yaml +++ b/packages/create-app/templates/default-app/app-config.yaml.hbs @@ -13,6 +13,28 @@ backend: origin: http://localhost:3000 methods: [GET, POST, PUT, DELETE] credentials: true + {{#if dbTypeSqlite}} + database: + client: sqlite3 + connection: ':memory:' + {{/if}} + {{#if dbTypePG}} + database: + client: pg + connection: + host: + $secret: + env: POSTGRES_HOST + port: + $secret: + env: POSTGRES_PORT + user: + $secret: + env: POSTGRES_USER + password: + $secret: + env: POSTGRES_PASSWORD + {{/if}} proxy: '/test': @@ -27,7 +49,7 @@ auth: catalog: locations: - # Backstage Example Component + # Backstage example components - type: github target: https://github.com/spotify/backstage/blob/master/packages/catalog-model/examples/artist-lookup-component.yaml - type: github @@ -44,8 +66,7 @@ catalog: 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 + # 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 diff --git a/packages/create-app/templates/default-app/packages/backend/src/index.ts.hbs b/packages/create-app/templates/default-app/packages/backend/src/index.ts similarity index 73% rename from packages/create-app/templates/default-app/packages/backend/src/index.ts.hbs rename to packages/create-app/templates/default-app/packages/backend/src/index.ts index 98f40ba4a4..0e1a85f0a3 100644 --- a/packages/create-app/templates/default-app/packages/backend/src/index.ts.hbs +++ b/packages/create-app/templates/default-app/packages/backend/src/index.ts @@ -7,18 +7,13 @@ */ import { + createDatabase, createServiceBuilder, loadBackendConfig, getRootLogger, useHotMemoize, } from '@backstage/backend-common'; import { ConfigReader, AppConfig } from '@backstage/config'; -{{#if dbTypePG}} -import knex, { PgConnectionConfig } from 'knex'; -{{/if}} -{{#if dbTypeSqlite}} -import knex from 'knex'; -{{/if}} import auth from './plugins/auth'; import catalog from './plugins/catalog'; import identity from './plugins/identity'; @@ -32,30 +27,10 @@ function makeCreateEnv(loadedConfigs: AppConfig[]) { return (plugin: string): PluginEnvironment => { const logger = getRootLogger().child({ type: 'plugin', plugin }); - - {{#if dbTypePG}} - const knexConfig = { - client: 'pg', - useNullAsDefault: true, + const database = createDatabase(config.getConfig('backend.database'), { connection: { - port: process.env.POSTGRES_PORT, - host: process.env.POSTGRES_HOST, - user: process.env.POSTGRES_USER, - password: process.env.POSTGRES_PASSWORD, database: `backstage_plugin_${plugin}`, - } as PgConnectionConfig, - }; - {{/if}} - {{#if dbTypeSqlite}} - const knexConfig = { - client: 'sqlite3', - connection: ':memory:', - useNullAsDefault: true, - }; - {{/if}} - const database = knex(knexConfig); - database.client.pool.on('createSuccess', (_eventId: any, resource: any) => { - resource.run('PRAGMA foreign_keys = ON', () => {}); + }, }); return { logger, database, config }; }; From 8f6038951f6a98b42e0828ccbd8c94c0c92eeae7 Mon Sep 17 00:00:00 2001 From: Oliver Sand Date: Thu, 27 Aug 2020 14:40:22 +0200 Subject: [PATCH 07/10] feat(backend-common): introduce metrics for the backend Add a /metrics endpoint that exposes metrics about the backend. It provides general runtime metrics (memory, gc, utilization) as well as request metrics. --- packages/backend-common/package.json | 2 + .../src/service/lib/ServiceBuilderImpl.ts | 2 + .../backend-common/src/service/lib/metrics.ts | 37 +++++++++++++++++++ yarn.lock | 34 ++++++++++++++++- 4 files changed, 74 insertions(+), 1 deletion(-) create mode 100644 packages/backend-common/src/service/lib/metrics.ts diff --git a/packages/backend-common/package.json b/packages/backend-common/package.json index 1a254d891f..92d301d7e3 100644 --- a/packages/backend-common/package.json +++ b/packages/backend-common/package.json @@ -37,11 +37,13 @@ "compression": "^1.7.4", "cors": "^2.8.5", "express": "^4.17.1", + "express-prom-bundle": "^6.1.0", "express-promise-router": "^3.0.3", "helmet": "^4.0.0", "knex": "^0.21.1", "lodash": "^4.17.15", "morgan": "^1.10.0", + "prom-client": "^12.0.0", "selfsigned": "^1.10.7", "stoppable": "^1.1.0", "winston": "^3.2.1" diff --git a/packages/backend-common/src/service/lib/ServiceBuilderImpl.ts b/packages/backend-common/src/service/lib/ServiceBuilderImpl.ts index 4669c00e68..e3d48bbabc 100644 --- a/packages/backend-common/src/service/lib/ServiceBuilderImpl.ts +++ b/packages/backend-common/src/service/lib/ServiceBuilderImpl.ts @@ -37,6 +37,7 @@ import { HttpsSettings, } from './config'; import { createHttpServer, createHttpsServer } from './hostFactory'; +import { metricsHandler } from './metrics'; const DEFAULT_PORT = 7000; // '' is express default, which listens to all interfaces @@ -131,6 +132,7 @@ export class ServiceBuilderImpl implements ServiceBuilder { } app.use(compression()); app.use(express.json()); + app.use(metricsHandler()); app.use(requestLoggingHandler()); for (const [root, route] of this.routers) { app.use(root, route); diff --git a/packages/backend-common/src/service/lib/metrics.ts b/packages/backend-common/src/service/lib/metrics.ts new file mode 100644 index 0000000000..d7b544765b --- /dev/null +++ b/packages/backend-common/src/service/lib/metrics.ts @@ -0,0 +1,37 @@ +/* + * 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 prom from 'prom-client'; +import promBundle from 'express-prom-bundle'; +import { RequestHandler } from 'express'; + +/** + * Adds a /metrics endpoint, register default runtime metrics and instrument the router. + */ +export function metricsHandler(): RequestHandler { + // We can only initialize the metrics once and have to clean them up between hot reloads + prom.register.clear(); + + return promBundle({ + includeMethod: true, + includePath: true, + // Using includePath alone is problematic, as it will include path labels with high + // cardinality (e.g. path params). Instead we would have to template them. However, this + // is difficult, as every backend plugin might use different routes. Instead we only take + // the first directory of the path, to have at least an idea how each plugin performs: + normalizePath: [['^/([^/]*)/.*', '/$1']], + promClient: { collectDefaultMetrics: {} }, + }); +} diff --git a/yarn.lock b/yarn.lock index d56a2cbd2c..59111a320e 100644 --- a/yarn.lock +++ b/yarn.lock @@ -6511,6 +6511,11 @@ bindings@^1.5.0: dependencies: file-uri-to-path "1.0.0" +bintrees@1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/bintrees/-/bintrees-1.0.1.tgz#0e655c9b9c2435eaab68bf4027226d2b55a34524" + integrity sha1-DmVcm5wkNeqraL9AJyJtK1WjRSQ= + bl@^1.0.0: version "1.2.2" resolved "https://registry.npmjs.org/bl/-/bl-1.2.2.tgz#a160911717103c07410cef63ef51b397c025af9c" @@ -10135,6 +10140,14 @@ expect@^26.0.1: jest-message-util "^26.0.1" jest-regex-util "^26.0.0" +express-prom-bundle@^6.1.0: + version "6.1.0" + resolved "https://registry.npmjs.org/express-prom-bundle/-/express-prom-bundle-6.1.0.tgz#8fd72e5bedbbd686b8e7c49e0aecbc1b14b28743" + integrity sha512-krlvp5r6sgJ1IwL6M6/coMrNbAlwtpk+uyivfeyRMCupTK4HzIEQHH0gwrNhLiKyPmSbtZcSmtO6s+PRumRp5g== + dependencies: + on-finished "^2.3.0" + url-value-parser "^2.0.0" + express-promise-router@^3.0.3: version "3.0.3" resolved "https://registry.npmjs.org/express-promise-router/-/express-promise-router-3.0.3.tgz#5e6d22a5a3f013d71833172fe8d7ab780c3f6b70" @@ -16227,7 +16240,7 @@ omggif@1.0.7: resolved "https://registry.npmjs.org/omggif/-/omggif-1.0.7.tgz#59d2eecb0263de84635b3feb887c0c9973f1e49d" integrity sha1-WdLuywJj3oRjWz/riHwMmXPx5J0= -on-finished@~2.3.0: +on-finished@^2.3.0, on-finished@~2.3.0: version "2.3.0" resolved "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz#20f1336481b083cd75337992a16971aa2d906947" integrity sha1-IPEzZIGwg811M3mSoWlxqi2QaUc= @@ -17809,6 +17822,13 @@ progress@^2.0.0: resolved "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz#7e8cf8d8f5b8f239c1bc68beb4eb78567d572ef8" integrity sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA== +prom-client@^12.0.0: + version "12.0.0" + resolved "https://registry.npmjs.org/prom-client/-/prom-client-12.0.0.tgz#9689379b19bd3f6ab88a9866124db9da3d76c6ed" + integrity sha512-JbzzHnw0VDwCvoqf8y1WDtq4wSBAbthMB1pcVI/0lzdqHGJI3KBJDXle70XK+c7Iv93Gihqo0a5LlOn+g8+DrQ== + dependencies: + tdigest "^0.1.1" + promise-inflight@^1.0.1: version "1.0.1" resolved "https://registry.npmjs.org/promise-inflight/-/promise-inflight-1.0.1.tgz#98472870bf228132fcbdd868129bad12c3c029e3" @@ -21142,6 +21162,13 @@ tcp-port-used@^1.0.1: debug "4.1.0" is2 "2.0.1" +tdigest@^0.1.1: + version "0.1.1" + resolved "https://registry.npmjs.org/tdigest/-/tdigest-0.1.1.tgz#2e3cb2c39ea449e55d1e6cd91117accca4588021" + integrity sha1-Ljyyw56kSeVdHmzZEReszKRYgCE= + dependencies: + bintrees "1.0.1" + telejson@^3.2.0: version "3.3.0" resolved "https://registry.npmjs.org/telejson/-/telejson-3.3.0.tgz#6d814f3c0d254d5c4770085aad063e266b56ad03" @@ -22131,6 +22158,11 @@ url-to-options@^1.0.1: resolved "https://registry.npmjs.org/url-to-options/-/url-to-options-1.0.1.tgz#1505a03a289a48cbd7a434efbaeec5055f5633a9" integrity sha1-FQWgOiiaSMvXpDTvuu7FBV9WM6k= +url-value-parser@^2.0.0: + version "2.0.1" + resolved "https://registry.npmjs.org/url-value-parser/-/url-value-parser-2.0.1.tgz#c8179a095ab9ec1f5aa17ca36af5af396b4e95ed" + integrity sha512-bexECeREBIueboLGM3Y1WaAzQkIn+Tca/Xjmjmfd0S/hFHSCEoFkNh0/D0l9G4K74MkEP/lLFRlYnxX3d68Qgw== + url@^0.11.0, url@~0.11.0: version "0.11.0" resolved "https://registry.npmjs.org/url/-/url-0.11.0.tgz#3838e97cfc60521eb73c525a8e55bfdd9e2e28f1" From f5c0aadbe4d10a905057cdfc90880b746c0d45d8 Mon Sep 17 00:00:00 2001 From: Oliver Sand Date: Thu, 27 Aug 2020 16:36:12 +0200 Subject: [PATCH 08/10] feat(backend-common): make metrics configurable --- .../backend-common/src/service/lib/ServiceBuilderImpl.ts | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/packages/backend-common/src/service/lib/ServiceBuilderImpl.ts b/packages/backend-common/src/service/lib/ServiceBuilderImpl.ts index e3d48bbabc..df69387e40 100644 --- a/packages/backend-common/src/service/lib/ServiceBuilderImpl.ts +++ b/packages/backend-common/src/service/lib/ServiceBuilderImpl.ts @@ -49,6 +49,7 @@ export class ServiceBuilderImpl implements ServiceBuilder { private logger: Logger | undefined; private corsOptions: cors.CorsOptions | undefined; private httpsSettings: HttpsSettings | undefined; + private enableMetrics: boolean = true; private routers: [string, Router][]; // Reference to the module where builder is created - needed for hot module // reloading @@ -83,6 +84,9 @@ export class ServiceBuilderImpl implements ServiceBuilder { this.httpsSettings = httpsSettings; } + // For now, configuration of metrics is a simple boolean and active by default + this.enableMetrics = backendConfig.getOptionalBoolean('metrics') !== false; + return this; } @@ -132,7 +136,9 @@ export class ServiceBuilderImpl implements ServiceBuilder { } app.use(compression()); app.use(express.json()); - app.use(metricsHandler()); + if (this.enableMetrics) { + app.use(metricsHandler()); + } app.use(requestLoggingHandler()); for (const [root, route] of this.routers) { app.use(root, route); From a7fdb17356fccde5f98e15bf144c3ad775cd249d Mon Sep 17 00:00:00 2001 From: Oliver Sand Date: Thu, 20 Aug 2020 15:53:28 +0200 Subject: [PATCH 09/10] refactor(core): change SidebarUserSettings to accept a list of providerSettings This allows to configure custom provider settings without the need to modify the core package. --- packages/app/src/components/Root/Root.tsx | 3 +- .../Sidebar/DefaultProviderSettings.tsx | 81 +++++++++++++++++++ .../src/layout/Sidebar/Sidebar.stories.tsx | 13 ++- .../core/src/layout/Sidebar/UserSettings.tsx | 72 +++-------------- packages/core/src/layout/Sidebar/index.ts | 1 + .../default-app/packages/app/src/sidebar.tsx | 3 +- 6 files changed, 107 insertions(+), 66 deletions(-) create mode 100644 packages/core/src/layout/Sidebar/DefaultProviderSettings.tsx diff --git a/packages/app/src/components/Root/Root.tsx b/packages/app/src/components/Root/Root.tsx index 1d32b6e16e..d0a0171207 100644 --- a/packages/app/src/components/Root/Root.tsx +++ b/packages/app/src/components/Root/Root.tsx @@ -39,6 +39,7 @@ import { SidebarUserSettings, SidebarThemeToggle, SidebarPinButton, + DefaultProviderSettings, } from '@backstage/core'; import { NavLink } from 'react-router-dom'; import { graphiQLRouteRef } from '@backstage/plugin-graphiql'; @@ -107,7 +108,7 @@ const Root: FC<{}> = ({ children }) => ( - + } /> {children} diff --git a/packages/core/src/layout/Sidebar/DefaultProviderSettings.tsx b/packages/core/src/layout/Sidebar/DefaultProviderSettings.tsx new file mode 100644 index 0000000000..293cefb19a --- /dev/null +++ b/packages/core/src/layout/Sidebar/DefaultProviderSettings.tsx @@ -0,0 +1,81 @@ +/* + * 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 { + configApiRef, + githubAuthApiRef, + gitlabAuthApiRef, + googleAuthApiRef, + oauth2ApiRef, + oktaAuthApiRef, + microsoftAuthApiRef, + useApi, +} from '@backstage/core-api'; +import Star from '@material-ui/icons/Star'; +import React from 'react'; +import { OAuthProviderSettings, OIDCProviderSettings } from './Settings'; + +export const DefaultProviderSettings = () => { + const configApi = useApi(configApiRef); + const providersConfig = configApi.getOptionalConfig('auth.providers'); + const providers = providersConfig?.keys() ?? []; + + return ( + <> + {providers.includes('google') && ( + + )} + {providers.includes('microsoft') && ( + + )} + {providers.includes('github') && ( + + )} + {providers.includes('gitlab') && ( + + )} + {providers.includes('okta') && ( + + )} + {providers.includes('oauth2') && ( + + )} + + ); +}; diff --git a/packages/core/src/layout/Sidebar/Sidebar.stories.tsx b/packages/core/src/layout/Sidebar/Sidebar.stories.tsx index 906317fe9c..b286071426 100644 --- a/packages/core/src/layout/Sidebar/Sidebar.stories.tsx +++ b/packages/core/src/layout/Sidebar/Sidebar.stories.tsx @@ -23,10 +23,15 @@ import { SidebarSearchField, SidebarSpace, SidebarUserSettings, + OAuthProviderSettings, } from '.'; import HomeOutlinedIcon from '@material-ui/icons/HomeOutlined'; import AddCircleOutlineIcon from '@material-ui/icons/AddCircleOutline'; +import Star from '@material-ui/icons/Star'; import { MemoryRouter } from 'react-router-dom'; +import { + githubAuthApiRef, +} from '@backstage/core-api'; export default { title: 'Sidebar', @@ -55,6 +60,12 @@ export const SampleSidebar = () => ( - + + } /> ); diff --git a/packages/core/src/layout/Sidebar/UserSettings.tsx b/packages/core/src/layout/Sidebar/UserSettings.tsx index 5ea7d2b359..f586f6d077 100644 --- a/packages/core/src/layout/Sidebar/UserSettings.tsx +++ b/packages/core/src/layout/Sidebar/UserSettings.tsx @@ -14,36 +14,22 @@ * limitations under the License. */ -import { - githubAuthApiRef, - gitlabAuthApiRef, - googleAuthApiRef, - identityApiRef, - oauth2ApiRef, - oktaAuthApiRef, - microsoftAuthApiRef, - useApi, - configApiRef, -} from '@backstage/core-api'; +import { identityApiRef, useApi } from '@backstage/core-api'; import Collapse from '@material-ui/core/Collapse'; import SignOutIcon from '@material-ui/icons/MeetingRoom'; -import Star from '@material-ui/icons/Star'; import React, { useContext, useEffect } from 'react'; import { SidebarContext } from './config'; import { SidebarItem } from './Items'; -import { - OAuthProviderSettings, - OIDCProviderSettings, - UserProfile as SidebarUserProfile, -} from './Settings'; +import { UserProfile as SidebarUserProfile } from './Settings'; -export function SidebarUserSettings() { +type SidebarUserSettingsProps = { providerSettings?: React.ReactNode }; + +export function SidebarUserSettings({ + providerSettings, +}: SidebarUserSettingsProps) { const { isOpen: sidebarOpen } = useContext(SidebarContext); const [open, setOpen] = React.useState(false); const identityApi = useApi(identityApiRef); - const configApi = useApi(configApiRef); - const providersConfig = configApi.getOptionalConfig('auth.providers'); - const providers = providersConfig?.keys() ?? []; // Close the provider list when sidebar collapse useEffect(() => { @@ -54,48 +40,8 @@ export function SidebarUserSettings() { <> - {providers.includes('google') && ( - - )} - {providers.includes('microsoft') && ( - - )} - {providers.includes('github') && ( - - )} - {providers.includes('gitlab') && ( - - )} - {providers.includes('okta') && ( - - )} - {providers.includes('oauth2') && ( - - )} + {providerSettings} + ( @@ -22,7 +23,7 @@ export const AppSidebar = () => ( - + } /> ); From 1cbc3c62693f8fee783e29283ef0ff50da6e284f Mon Sep 17 00:00:00 2001 From: ebarrios Date: Fri, 28 Aug 2020 13:58:05 +0200 Subject: [PATCH 10/10] Rename function WidgetList to RecentWorkflowRunsCard and WidgetListContet to RecentWorkflowRunsCardContent. Also remove lastrun parameter that was not beeing used on the RecentWorkflowRunsCardContent function --- .../github-actions/src/components/Widget/Widget.tsx | 11 ++++------- plugins/github-actions/src/components/Widget/index.ts | 2 +- 2 files changed, 5 insertions(+), 8 deletions(-) diff --git a/plugins/github-actions/src/components/Widget/Widget.tsx b/plugins/github-actions/src/components/Widget/Widget.tsx index 201004f46e..59e1cc5289 100644 --- a/plugins/github-actions/src/components/Widget/Widget.tsx +++ b/plugins/github-actions/src/components/Widget/Widget.tsx @@ -109,14 +109,13 @@ export const Widget = ({ ); }; -const WidgetListContent = ({ +const RecentWorkflowRunsCardContent = ({ error, loading, branch, }: { error?: Error; loading?: boolean; - lastRun: WorkflowRun; branch: string; }) => { if (error) return Couldn't fetch {branch} runs; @@ -124,7 +123,7 @@ const WidgetListContent = ({ return ; }; -export const WidgetList = ({ +export const RecentWorkflowRunsCard = ({ entity, branch = 'master', }: { @@ -135,13 +134,12 @@ export const WidgetList = ({ const [owner, repo] = ( entity?.metadata.annotations?.['backstage.io/github-actions-id'] ?? '/' ).split('/'); - const [{ runs, loading, error }] = useWorkflowRuns({ + const [{ loading, error }] = useWorkflowRuns({ owner, repo, branch, }); - const lastRun = runs?.[0] ?? ({} as WorkflowRun); useEffect(() => { if (error) { errorApi.post(error); @@ -150,11 +148,10 @@ export const WidgetList = ({ return ( - ); diff --git a/plugins/github-actions/src/components/Widget/index.ts b/plugins/github-actions/src/components/Widget/index.ts index 0efc84d952..0bd5dad98a 100644 --- a/plugins/github-actions/src/components/Widget/index.ts +++ b/plugins/github-actions/src/components/Widget/index.ts @@ -13,4 +13,4 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -export { Widget, WidgetList } from './Widget'; +export { Widget, RecentWorkflowRunsCard } from './Widget';