Merge remote-tracking branch 'origin/master' into task-action-idempotency

This commit is contained in:
bnechyporenko
2024-02-06 20:16:25 +01:00
827 changed files with 14449 additions and 897 deletions
+5
View File
@@ -0,0 +1,5 @@
---
'@backstage/plugin-azure-devops': patch
---
Added alpha support for the New Frontend System (Declarative Integration)
+5
View File
@@ -0,0 +1,5 @@
---
'@backstage/repo-tools': patch
---
Resolved an issue with generate-catalog-info where it was replacing upper case characters with -.
+12
View File
@@ -0,0 +1,12 @@
---
'@backstage/plugin-scaffolder-backend-module-bitbucket-server': minor
'@backstage/plugin-scaffolder-backend': patch
---
New scaffolder module `@backstage/plugin-scaffolder-backend-module-bitbucket-server`.
Extracted from `@backstage/plugin-scaffolder-backend-module-bitbucket`
and replaces its actions related to Bitbucket Server.
- `publish:bitbucketServer`
- `publish:bitbucketServer:pull-request`
+5
View File
@@ -0,0 +1,5 @@
---
'@backstage/plugin-azure-sites': patch
---
Updated README
+5
View File
@@ -0,0 +1,5 @@
---
'@backstage/plugin-auth-backend': patch
---
Support additional algorithms in the `/.well-known/openid-configuration` endpoint.
+5
View File
@@ -0,0 +1,5 @@
---
'@backstage/backend-common': patch
---
`FetchUrlReader#readUrl()` now supports passing an optional `token` to authenticate requests.
+17
View File
@@ -0,0 +1,17 @@
---
'@backstage/plugin-scaffolder-backend-module-bitbucket': minor
---
Split `@backstage/plugin-scaffolder-backend-module-bitbucket` into
`@backstage/plugin-scaffolder-backend-module-bitbucket-cloud` and
`@backstage/plugin-scaffolder-backend-module-bitbucket-server`.
`@backstage/plugin-scaffolder-backend-module-bitbucket` was **deprecated** in favor of these two replacements.
Please use any of the two replacements depending on your needs.
```diff
- backend.add(import('@backstage/plugin-scaffolder-backend-module-bitbucket'));
+ backend.add(import('@backstage/plugin-scaffolder-backend-module-bitbucket-cloud'));
+ backend.add(import('@backstage/plugin-scaffolder-backend-module-bitbucket-server'));
```
+22
View File
@@ -0,0 +1,22 @@
---
'@backstage/core-components': patch
'@backstage/plugin-catalog-graph': patch
---
Added possibility to show arrow heads for graph edges for better understandability.
In order to show arrow heads in the catalog graph page, add `showArrowHeads` attribute to `CatalogGraphPage` component
(typically in `packages/app/src/App.tsx`):
```diff
- <CatalogGraphPage />
+ <CatalogGraphPage showArrowHeads />
```
In order to show arrow heads in entity graphs, add `showArrowHeads` attribute to `EntityCatalogGraphCard` components
(typically multiple occurrences in `packages/app/src/components/catalog/EntityPage.tsx`):
```diff
- <EntityCatalogGraphCard variant="gridItem" height={400} />
+ <EntityCatalogGraphCard variant="gridItem" height={400} showArrowHeads />
```
+5
View File
@@ -0,0 +1,5 @@
---
'@backstage/plugin-auth-backend': patch
---
The auth backend will now refuse to issue user tokens are excessively large.
+108
View File
@@ -0,0 +1,108 @@
---
'@backstage/plugin-scaffolder-backend-module-confluence-to-markdown': patch
'@backstage/plugin-search-backend-module-stack-overflow-collator': patch
'@backstage/plugin-catalog-backend-module-incremental-ingestion': patch
'@backstage/plugin-scaffolder-backend-module-cookiecutter': patch
'@backstage/plugin-events-backend-module-bitbucket-cloud': patch
'@backstage/plugin-tech-insights-backend-module-jsonfc': patch
'@backstage/plugin-catalog-backend-module-unprocessed': patch
'@backstage/plugin-analytics-module-newrelic-browser': patch
'@backstage/plugin-scaffolder-backend-module-gitlab': patch
'@backstage/plugin-scaffolder-backend-module-sentry': patch
'@backstage/plugin-scaffolder-backend-module-yeoman': patch
'@backstage/plugin-catalog-backend-module-puppetdb': patch
'@backstage/plugin-scaffolder-backend-module-rails': patch
'@backstage/plugin-api-docs-module-protoc-gen-doc': patch
'@backstage/plugin-catalog-backend-module-msgraph': patch
'@backstage/plugin-catalog-backend-module-openapi': patch
'@backstage/plugin-search-backend-module-techdocs': patch
'@backstage/plugin-events-backend-module-aws-sqs': patch
'@backstage/plugin-search-backend-module-catalog': patch
'@backstage/plugin-search-backend-module-explore': patch
'@backstage/plugin-catalog-unprocessed-entities': patch
'@backstage/plugin-events-backend-module-gerrit': patch
'@backstage/plugin-events-backend-module-github': patch
'@backstage/plugin-events-backend-module-gitlab': patch
'@backstage/plugin-events-backend-module-azure': patch
'@backstage/plugin-entity-feedback-backend': patch
'@backstage/plugin-code-coverage-backend': patch
'@backstage/plugin-tech-insights-backend': patch
'@backstage/plugin-analytics-module-ga4': patch
'@backstage/plugin-azure-devops-backend': patch
'@backstage/backend-plugin-api': patch
'@backstage/plugin-analytics-module-ga': patch
'@backstage/plugin-azure-sites-backend': patch
'@backstage/backend-dev-utils': patch
'@backstage/plugin-github-deployments': patch
'@backstage/plugin-lighthouse-backend': patch
'@backstage/plugin-microsoft-calendar': patch
'@backstage/plugin-scaffolder-backend': patch
'@backstage/backend-defaults': patch
'@backstage/plugin-entity-validation': patch
'@backstage/plugin-sonarqube-backend': patch
'@backstage/backend-app-api': patch
'@backstage/plugin-devtools-backend': patch
'@backstage/plugin-linguist-backend': patch
'@backstage/plugin-playlist-backend': patch
'@backstage/backend-common': patch
'@backstage/plugin-catalog-backend': patch
'@backstage/plugin-explore-backend': patch
'@backstage/plugin-graphql-voyager': patch
'@backstage/plugin-jenkins-backend': patch
'@backstage/plugin-rollbar-backend': patch
'@backstage/backend-tasks': patch
'@backstage/plugin-badges-backend': patch
'@backstage/plugin-bazaar-backend': patch
'@backstage/plugin-catalog-import': patch
'@backstage/plugin-events-backend': patch
'@backstage/plugin-github-actions': patch
'@backstage/plugin-octopus-deploy': patch
'@backstage/plugin-splunk-on-call': patch
'@backstage/plugin-techdocs-react': patch
'@backstage/app-defaults': patch
'@backstage/core-app-api': patch
'@backstage/plugin-catalog-graph': patch
'@backstage/plugin-code-coverage': patch
'@backstage/plugin-cost-insights': patch
'@backstage/plugin-nomad-backend': patch
'@backstage/plugin-tech-insights': patch
'@backstage/plugin-vault-backend': patch
'@backstage/plugin-azure-devops': patch
'@backstage/plugin-code-climate': patch
'@backstage/plugin-adr-backend': patch
'@backstage/plugin-app-backend': patch
'@backstage/plugin-azure-sites': patch
'@backstage/plugin-firehydrant': patch
'@backstage/plugin-lighthouse': patch
'@backstage/plugin-scaffolder': patch
'@backstage/plugin-tech-radar': patch
'@backstage/plugin-codescene': patch
'@backstage/plugin-dynatrace': patch
'@backstage/plugin-shortcuts': patch
'@backstage/plugin-sonarqube': patch
'@backstage/plugin-xcmetrics': patch
'@backstage/plugin-airbrake': patch
'@backstage/plugin-api-docs': patch
'@backstage/plugin-circleci': patch
'@backstage/plugin-devtools': patch
'@backstage/plugin-graphiql': patch
'@backstage/plugin-linguist': patch
'@backstage/plugin-newrelic': patch
'@backstage/plugin-opencost': patch
'@backstage/plugin-periskop': patch
'@backstage/plugin-bitrise': patch
'@backstage/plugin-catalog': patch
'@backstage/plugin-jenkins': patch
'@backstage/plugin-rollbar': patch
'@backstage/plugin-allure': patch
'@backstage/plugin-badges': patch
'@backstage/plugin-bazaar': patch
'@backstage/plugin-sentry': patch
'@backstage/plugin-fossa': patch
'@backstage/plugin-ilert': patch
'@backstage/plugin-nomad': patch
'@backstage/plugin-vault': patch
'@backstage/plugin-home': patch
---
Use `--cwd` as the first `yarn` argument
+11
View File
@@ -0,0 +1,11 @@
---
'@backstage/core-plugin-api': minor
'@backstage/app-defaults': minor
'@backstage/core-app-api': minor
'@backstage/frontend-plugin-api': patch
---
Added a utility API for VMware Cloud auth; the API ref is available in the
`@backstage/core-plugin-api` and `@backstage/frontend-plugin-api` packages, the
implementation is in `@backstage/core-app-api` and a factory has been added to
`@backstage/app-defaults`.
+19
View File
@@ -0,0 +1,19 @@
---
'@backstage/repo-tools': minor
---
**BREAKING**: The `schema openapi *` commands are now renamed into `package schema openapi *` and `repo schema openapi *`. The aim is to make it more clear what the command is operating on, the entire repo or just a single package.
The following commands now live under the `package` namespace,
- `schema openapi generate` is now `package schema openapi generate --server`
- `schema openapi generate-client` is now `package schema openapi generate --client-package`
- `schema openapi init` is now `package schema openapi init`
And these commands live under the new `repo` namespace,
- `schema openapi lint` is now `repo schema openapi lint`
- `schema openapi test` is now `repo schema openapi test`
- `schema openapi verify` is now `repo schema openapi verify`
The `package schema openapi generate` now supports defining both `--server` and `--client-package` to generate both at once.This update also reworks the `--client-package` flag to accept only an output directory as the input directory can now be inferred.
+5
View File
@@ -0,0 +1,5 @@
---
'@backstage/plugin-catalog-react': minor
---
Add support to `configSchema` option on the `createEntityCardExtension` factory function.
+5
View File
@@ -0,0 +1,5 @@
---
'@backstage/plugin-home': patch
---
Use EntityDisplayName JSX element entity information directly for FeaturedDocsCard.
+5
View File
@@ -0,0 +1,5 @@
---
'@backstage/plugin-catalog-graph': minor
---
Migrate plugin to the new frontend system, it is experimental and available via alpha subpath.
+53 -1
View File
@@ -268,25 +268,37 @@
"@backstage/plugin-signals-backend": "0.0.0",
"@backstage/plugin-signals-node": "0.0.0",
"@backstage/plugin-signals-react": "0.0.0",
"@backstage/plugin-auth-backend-module-aws-alb-provider": "0.0.0"
"@backstage/plugin-auth-backend-module-aws-alb-provider": "0.0.0",
"@backstage/plugin-notifications": "0.0.0",
"@backstage/plugin-notifications-backend": "0.0.0",
"@backstage/plugin-notifications-common": "0.0.0",
"@backstage/plugin-notifications-node": "0.0.0",
"@backstage/plugin-scaffolder-backend-module-bitbucket-cloud": "0.0.0",
"@backstage/plugin-scaffolder-backend-module-bitbucket-server": "0.0.0"
},
"changesets": [
"afraid-numbers-invite",
"angry-phones-arrive",
"beige-apples-press",
"blue-keys-do",
"breezy-cobras-sin",
"brown-items-hammer",
"calm-cups-rule",
"calm-items-double",
"calm-onions-exercise",
"chilled-chefs-notice",
"chilled-ways-wave",
"chilly-seahorses-bake",
"cold-cheetahs-pull",
"cold-cooks-care",
"cool-islands-impress",
"create-app-1706621803",
"curvy-ladybugs-impress",
"cyan-bats-lick",
"cyan-icons-rest",
"dirty-cheetahs-shave",
"dirty-mirrors-retire",
"dirty-plums-fix",
"dry-lizards-taste",
"dry-lobsters-flash",
"dry-vans-kiss",
@@ -297,35 +309,53 @@
"fair-mirrors-hammer",
"famous-houses-thank",
"fast-jeans-walk",
"fast-onions-own",
"fifty-adults-watch",
"fifty-files-argue",
"flat-roses-happen",
"flat-wasps-fold",
"forty-beers-sniff",
"forty-cars-scream",
"four-mugs-try",
"four-walls-perform",
"fresh-gifts-smile",
"friendly-cheetahs-rescue",
"funny-buttons-sip",
"funny-timers-visit",
"fuzzy-comics-collect",
"giant-suits-switch",
"good-lemons-lick",
"gorgeous-bobcats-press",
"gorgeous-pumas-draw",
"gorgeous-ways-applaud",
"great-rats-collect",
"green-dogs-fold",
"green-flies-draw",
"grumpy-poets-study",
"hip-ears-add",
"hot-horses-matter",
"hot-paws-tap",
"hot-pillows-poke",
"hot-tips-doubt",
"kind-clouds-fly",
"kind-wombats-draw",
"large-frogs-grab",
"large-moons-speak",
"large-tables-wonder",
"lemon-cameras-remember",
"long-suns-bow",
"loud-walls-compare",
"lovely-bugs-prove",
"lovely-starfishes-remain",
"lucky-bugs-bow",
"many-pugs-change",
"metal-elephants-sit",
"metal-students-drive",
"mighty-steaks-shave",
"mighty-toys-laugh",
"nasty-days-jog",
"nasty-shirts-look",
"neat-eels-greet",
"neat-hotels-wink",
"nice-carrots-dream",
"nine-bulldogs-camp",
@@ -333,8 +363,10 @@
"ninety-rules-sneeze",
"old-papayas-shave",
"old-students-smoke",
"olive-boats-agree",
"olive-experts-fold",
"olive-singers-accept",
"orange-gorillas-clean",
"orange-walls-complain",
"polite-meals-hug",
"quick-penguins-refuse",
@@ -342,10 +374,15 @@
"quiet-donkeys-punch",
"rare-seals-thank",
"real-eggs-sip",
"real-grapes-sing",
"red-bottles-swim",
"red-eggs-serve",
"renovate-47c1714",
"renovate-4b698fb",
"renovate-5f8d1ca",
"renovate-95b717a",
"renovate-97e6aa5",
"renovate-f4b1d70",
"renovate-f58dd5c",
"renovate-fb2e0b9",
"rotten-lemons-cry",
@@ -356,7 +393,10 @@
"shaggy-trainers-rule",
"shaggy-windows-cross",
"sharp-pandas-hunt",
"shiny-apes-glow",
"shiny-clocks-greet",
"shiny-poets-tease",
"short-cherries-mix",
"shy-carrots-decide",
"silent-hotels-knock",
"silent-poets-grab",
@@ -364,16 +404,23 @@
"six-jobs-sin",
"six-melons-end",
"sixty-shoes-prove",
"slimy-rats-fly",
"smart-numbers-call",
"soft-balloons-relax",
"soft-beans-tease",
"sour-rivers-fry",
"spotty-jokes-unite",
"spotty-kids-pay",
"strange-parents-hammer",
"strong-lobsters-hide",
"strong-news-develop",
"sweet-ravens-glow",
"tall-frogs-clap",
"tall-tools-compare",
"tame-numbers-smile",
"tame-rockets-sin",
"tasty-feet-cheat",
"tasty-oranges-rescue",
"ten-numbers-happen",
"ten-planets-guess",
"ten-trainers-cough",
@@ -381,6 +428,7 @@
"thirty-dolls-admire",
"tidy-cooks-mix",
"tidy-cooks-mixed",
"tiny-donuts-drive",
"tiny-kiwis-know",
"tough-drinks-scream",
"twelve-hounds-know",
@@ -393,10 +441,14 @@
"unlucky-pens-search",
"unlucky-wasps-tan",
"warm-maps-scream",
"weak-news-jam",
"wet-emus-work",
"wet-lions-crash",
"wicked-ants-reflect",
"wicked-elephants-scream",
"wild-owls-doubt",
"wise-flies-laugh",
"wise-papayas-cough",
"young-ladybugs-decide",
"young-rules-repeat"
]
+8
View File
@@ -0,0 +1,8 @@
---
'@backstage/core-components': patch
'@backstage/app-defaults': minor
'@backstage/plugin-playlist': patch
'@backstage/plugin-scaffolder': minor
---
Added stack trace display to `ErrorPage` and updated existing refs
+5
View File
@@ -0,0 +1,5 @@
---
'@backstage/plugin-opencost': patch
---
Updated dependency `date-fns` to `^3.0.0`.
+12
View File
@@ -0,0 +1,12 @@
---
'@backstage/plugin-scaffolder-backend-module-bitbucket-cloud': minor
'@backstage/plugin-scaffolder-backend': patch
---
New scaffolder module `@backstage/plugin-scaffolder-backend-module-bitbucket-cloud`.
Extracted from `@backstage/plugin-scaffolder-backend-module-bitbucket`
and replaces its actions related to Bitbucket Cloud.
- `publish:bitbucketCloud`
- `bitbucket:pipelines:run`
+5
View File
@@ -0,0 +1,5 @@
---
'@backstage/plugin-user-settings': patch
---
conditionally rendering the user name and email in user settings page
+5
View File
@@ -0,0 +1,5 @@
---
'@backstage/plugin-org': patch
---
Added basic support for the new frontend system, exported from the `/alpha` subpath.
+5
View File
@@ -0,0 +1,5 @@
---
'@backstage/plugin-explore': patch
---
Use the EntityDisplayName component for rendering Group nodes
+5
View File
@@ -0,0 +1,5 @@
---
'@backstage/plugin-azure-sites-backend': patch
---
Added `permissionIntegrationRouter` for azure-sites-backend routes
+11
View File
@@ -0,0 +1,11 @@
---
'@backstage/plugin-auth-backend': minor
---
**BREAKING**: The `saml` provider has been migrated from `passport-saml` to `@node-saml/passport-saml`.
This comes with breaking changes to config options:
- `audience` is now mandatory
- `wantAuthnResponseSigned` is now exposed and defaults to `true`
- `wantAssertionsSigned` is now exposed and defaults to `true`
+5
View File
@@ -0,0 +1,5 @@
---
'@backstage/plugin-catalog-backend-module-puppetdb': patch
---
Added `latest_report_status` parameter from the PuppetDB node api and added it as a tag to the nodes. The status is valuable information as it displays which nodes are compliant to your configuration and which ones are failing are making changes.
+8
View File
@@ -0,0 +1,8 @@
---
'@backstage/plugin-notifications-backend': patch
'@backstage/plugin-notifications-common': patch
'@backstage/plugin-notifications-node': patch
'@backstage/plugin-notifications': patch
---
Initial notifications system for backstage
+5
View File
@@ -0,0 +1,5 @@
---
'@backstage/backend-common': patch
---
Add a config declaration for `workingDirectory`
+3 -3
View File
@@ -113,10 +113,10 @@ jobs:
run: yarn backstage-repo-tools generate-catalog-info --ci
- name: lint openapi yaml files
run: yarn backstage-repo-tools schema openapi lint
run: yarn backstage-repo-tools repo schema openapi lint
- name: verify openapi yaml file matches generated ts file
run: yarn backstage-repo-tools schema openapi verify
run: yarn backstage-repo-tools repo schema openapi verify
- name: verify doc links
run: node scripts/verify-links.js
@@ -225,7 +225,7 @@ jobs:
# We run the test cases before verifying the specs to prevent any failing tests from causing errors.
- name: verify openapi specs against test cases
run: yarn backstage-repo-tools schema openapi test
run: yarn backstage-repo-tools repo schema openapi test
- name: ensure clean working directory
run: |
+1 -1
View File
@@ -196,7 +196,7 @@ jobs:
GITHUB_TOKEN: ${{ secrets.GH_SERVICE_ACCOUNT_TOKEN }}
- name: Dispatch repository event
uses: peter-evans/repository-dispatch@bf47d102fdb849e755b0b0023ea3e81a44b6f570 # v2.1.2
uses: peter-evans/repository-dispatch@ff45666b9427631e3450c54a1bcbee4d9ff4d7c0 # v3.0.0
with:
token: ${{ secrets.GH_SERVICE_ACCOUNT_TOKEN }}
event-type: release-published
+1 -1
View File
@@ -61,7 +61,7 @@ jobs:
python-version: '3.10'
- name: Add msbuild to PATH
uses: microsoft/setup-msbuild@ede762b26a2de8d110bb5a3db4d7e0e080c0e917 # v1.3.3
uses: microsoft/setup-msbuild@6fb02220983dee41ce7ae257b6f4d8f9bf5ed4ce # v2.0.0
- name: Setup gyp env
run: |
-3
View File
@@ -1,4 +1 @@
#!/bin/sh
. "$(dirname "$0")/_/husky.sh"
yarn lint-staged
@@ -88,7 +88,7 @@ Install cookie-parser:
```bash
# From your Backstage root directory
yarn add --cwd packages/backend cookie-parser
yarn --cwd packages/backend add cookie-parser
```
Update routes in `packages/backend/src/index.ts`:
@@ -223,7 +223,7 @@ Install cookie-parser:
```bash
# From your Backstage root directory
yarn add --cwd packages/backend cookie-parser @types/cookie-parser
yarn --cwd packages/backend add cookie-parser @types/cookie-parser
```
Create a custom configured `rootHttpRouterService` in `packages/backend/src/customRootHttpRouterService.ts`:
@@ -1,66 +1,65 @@
# Running the backend behind a Corporate Proxy
Let's admit it, we've all been there. Sometimes you've gotta run stuff with no way out to the public internet, only the smallest of corporate proxy tunnels.
This article helps you get your backend installation up and running making calls through corporate proxies.
Whilst this isn't supported natively by Backstage, this might help you get your installation up and running making calls through the said proxy tunnel.
## Background
## backend
Let's admit it, we've all been there. Sometimes you have to run stuff with no way out to the public internet, except via the smallest of corporate proxy tunnels. It's most likely that you're going to run into these issues from the backend part of Backstage as that's the part that isn't helped by your browser or OS settings for the corporate proxy.
Unfortunately, `nodejs` does not respect `HTTP(S)_PROXY` environment variables by default, and the library that we use to provide `fetch` functionality `node-fetch` (provided by `cross-fetch`) does not also respect these environment variables.
Unfortunately, neither the Node.js native `fetch` nor the other frequently used library `node-fetch` (see [ADR013](https://backstage.io/docs/architecture-decisions/adrs-adr013)) respect `HTTP(S)_PROXY` environment variables by default. As an additional complication, there is no single solution for configuring both native `fetch` and `node-fetch` at once, uniformly.
There are however some ways to get this to work without too much effort. It's most likely that you're going to run into these issues from the `backend` part of `backstage` as that's the part that isn't helped by your browser or OS's settings for the corporate proxy.
There are however some ways to get this to work without too much effort.
**Note:** You're gonna want to be in your backend working directory for these solutions as that's where the requests come from that don't go through this proxy.
## Installation
### Using `global-agent`
**Note:** You're going to want to be in your backend working directory for these solutions as that's where the requests come from that don't go through this proxy.
1. Install `global-agent` using `yarn add global-agent`
2. Go to the entry file for the backend (`src/index.ts`)
3. At the top of the file paste the following:
1. Install the required packages in your backend, by running the following command inside your backend directory (typically `packages/backend` under your repository root).
```ts
import 'global-agent/bootstrap';
```
```bash
yarn add undici global-agent
```
4. Start the backend with the `global-agent` variables
`undici` exposes the settings for native `fetch`, and `global-agent` can set things up for `node-fetch`.
```sh
export GLOBAL_AGENT_HTTP_PROXY=$HTTP_PROXY
export GLOBAL_AGENT_NO_PROXY=$NO_PROXY
yarn start
```
1. Go to the entry file for the backend (typically `packages/backend/src/index.ts`), and add the following at the top:
More information and more options for configuring `global-agent` including just using the default environment variables can be found here: https://github.com/gajus/global-agent
```ts
import 'global-agent/bootstrap';
import { setGlobalDispatcher, ProxyAgent } from 'undici';
### Using `proxy-agent`
const proxyEnv =
process.env.GLOBAL_AGENT_HTTP_PROXY ||
process.env.GLOBAL_AGENT_HTTPS_PROXY;
`proxy-agent` is a library that you can use to override the `globalAgents` of `node` land with a tunnel to use for each request.
if (proxyEnv) {
const proxyUrl = new URL(proxyEnv);
setGlobalDispatcher(
new ProxyAgent({
uri: proxyUrl.protocol + proxyUrl.host,
token:
proxyUrl.username && proxyUrl.password
? `Basic ${Buffer.from(
`${proxyUrl.username}:${proxyUrl.password}`,
).toString('base64')}`
: undefined,
}),
);
}
```
1. Install `proxy-agent` using `yarn add proxy-agent`
2. Go to the entry file for the backend (`src/index.ts`)
3. At the top of the file paste the following:
The first import automatically bootstraps `global-agent`, which addresses `node-fetch` proxying. The lines of code below that peeks into the same environment variables as `global-agent` uses, and also leverages them to set up the `undici` package which affects native `fetch`. Does that seem weird? Yes, we think so too. But in the current state of the Node.js ecosystem, that's how it works.
```ts
import ProxyAgent from 'proxy-agent';
import http from 'http';
import https from 'https';
This code is kept brief for illustrative purposes. You may want to adjust it slightly if you need support for [no-proxy excludes](https://gist.github.com/zicklag/1bb50db6c5138de347c224fda14286da) or only do proxying in local development etc. Also see [the `global-agent` docs](https://github.com/gajus/global-agent) for information about its configuration options.
/*
Something to note here, this might need different configuration depending on your own setup.
If you only have an http_proxy then you'll need to set that as both the http and https globalAgent instead.
*/
if (process.env.HTTP_PROXY) {
http.globalAgent = new ProxyAgent(process.env.HTTP_PROXY);
}
1. Start the backend with the correct environment variables set. For example:
if (process.env.HTTPS_PROXY) {
https.globalAgent = new ProxyAgent(process.env.HTTPS_PROXY);
}
```
```sh
export GLOBAL_AGENT_HTTP_PROXY=http://username:password@proxy.example.net:8888
yarn start
```
4. Start the backend with `yarn start`
## config
## Configuration
If your development environment is in the cloud (like with [AWS Cloud9](https://aws.amazon.com/cloud9/) or an instance of [Theia](https://theia-ide.org/)), you will need to update your configuration.
@@ -82,3 +81,33 @@ backend:
```
The app port must proxy web socket connections in order to make hot reloading work.
## Alternatives to `global-agent`
The `proxy-agent` package can be used as an alternative to `global-agent` (do not install both!), and also ensures that the `node-fetch` library correctly respects proxy settings, but [does NOT work](https://github.com/TooTallNate/proxy-agents/issues/239) for modern `undici` based native Node.js `fetch`, so you'll still have to also do the `undici` steps in the section above in addition to this.
`proxy-agent` is a library that you can use to override the `globalAgents` of `node` land with a tunnel to use for each request.
1. Install `proxy-agent` using `yarn add proxy-agent`
2. Go to the entry file for the backend (`src/index.ts`)
3. At the top of the file paste the following:
```ts
import ProxyAgent from 'proxy-agent';
import http from 'http';
import https from 'https';
/*
Something to note here, this might need different configuration depending on your own setup.
If you only have an http_proxy then you'll need to set that as both the http and https globalAgent instead.
*/
if (process.env.HTTP_PROXY) {
http.globalAgent = new ProxyAgent(process.env.HTTP_PROXY);
}
if (process.env.HTTPS_PROXY) {
https.globalAgent = new ProxyAgent(process.env.HTTPS_PROXY);
}
```
4. Start the backend with `yarn start`
+1
View File
@@ -35,6 +35,7 @@ Backstage comes with many common authentication providers in the core library:
- [Okta](okta/provider.md)
- [OAuth 2 Custom Proxy](oauth2-proxy/provider.md)
- [OneLogin](onelogin/provider.md)
- [VMware Cloud](vmware-cloud/provider.md)
These built-in providers handle the authentication flow for a particular service
including required scopes, callbacks, etc. These providers are each added to a
+171
View File
@@ -0,0 +1,171 @@
---
id: provider
title: VMware Cloud Authentication Provider
sidebar_label: VMware Cloud
description: Adding VMware Cloud as an authentication provider in Backstage
---
Backstage comes with an auth provider module to allow users to sign-in with
their VMware Cloud account. This page describes some actions within the VMware
Cloud Console and within a Backstage app required to enable this capability.
## Create an OAuth App in the VMware Cloud Console
1. Log in to the [VMware Cloud Console](https://console.cloud.vmware.com).
1. Navigate to [Identity & Access Management > OAuth
Apps](https://console.cloud.vmware.com/csp/gateway/portal/#/consumer/usermgmt/oauth-apps)
and click the [Owned
Apps](https://console.cloud.vmware.com/csp/gateway/portal/#/consumer/usermgmt/oauth-apps/owned-apps/view)
tab -- if you are not an Organization Owner or Administrator but only a
Member, you will not see this nav entry unless the **Developer** check box is
selected for your role (see the [Organization roles and
permissions](https://docs.vmware.com/en/VMware-Cloud-services/services/Using-VMware-Cloud-Services/GUID-C11D3AAC-267C-4F16-A0E3-3EDF286EBE53.html#organization-roles-and-permissions-0)
docs for details).
1. Click **Create App**, choose 'Web/Mobile app' and click **Continue**.
1. Use default settings except:
- `App Name` and `App Description` of your choosing.
- `Redirect URIs`: `${baseUrl}/api/auth/vmwareCloudServices/handler/frame`
where `baseUrl` is the URL where your Backstage backend can be reached;
note that VMware Cloud does not support the combination of an `http://`
scheme and a `localhost` hostname, so when testing locally it may help to
set your backend base URL to `http://127.0.0.1:7007`.
- `Refresh Token`: check `Issue refresh token`; refresh tokens are required
to prevent forcing users to re-login when they refresh their browser.
- `Define Scopes`: check `OpenID` at the bottom.
1. Click **Create**.
1. Take note of the `App ID` in the resulting modal; this is the client ID to be
used by Backstage.
## Install the provider in the backend
### New backend system
Apps using the [new backend system](../../backend-system/index.md),
can enable the VMware Cloud provider with a small modification like:
```ts title="packages/backend-next/src/index.ts"
import { createBackend } from '@backstage/backend-defaults';
const backend = createBackend();
backend.add(import('@backstage/plugin-auth-backend'));
/* highlight-add-start */
backend.add(
import('@backstage/plugin-auth-backend-module-vmware-cloud-provider'),
);
/* highlight-add-end */
backend.start();
```
### Old backend system
This provider was added after the migration of the auth-backend plugin to the
new backend system, so no default provider factory was added. Because of this,
the installation procedure for old-style backends is slightly more involved:
```ts title="packages/backend/src/plugins/auth.ts"
import {
DEFAULT_NAMESPACE,
stringifyEntityRef,
} from '@backstage/catalog-model';
import {
createRouter,
providers,
defaultAuthProviderFactories,
} from '@backstage/plugin-auth-backend';
import { Router } from 'express';
import { PluginEnvironment } from '../types';
/* highlight-add-start */
import {
commonSignInResolvers,
createOAuthProviderFactory,
} from '@backstage/plugin-auth-node';
import {
vmwareCloudAuthenticator,
} from '@backstage/plugin-auth-backend-module-vmware-cloud-provider';
/* highlight-add-end */
export default async function createPlugin(
env: PluginEnvironment,
): Promise<Router> {
return await createRouter({
logger: env.logger,
config: env.config,
database: env.database,
discovery: env.discovery,
tokenManager: env.tokenManager,
providerFactories: {
...defaultAuthProviderFactories,
/* highlight-add-start */
vmwareCloudServices: createOAuthProviderFactory({
authenticator: vmwareCloudAuthenticator,
signInResolver:
commonSignInResolvers.emailLocalPartMatchingUserEntityName(),
}),
/* highlight-add-end */
```
In the above, `commonSignInResolvers.emailLocalPartMatchingUserEntityName()`
can be replaced with a more suitable resolver for the app in question.
## Configure Sign-in Resolution
See [Sign-in Identities and Resolvers](../identity-resolver.md) for details.
## Add to Sign-in Page
See the [Sign-In Configuration](../index.md#sign-in-configuration) docs for
general guidance, but as an example:
```tsx title="packages/app/src/App.tsx"
/* highlight-add-start */
import { vmwareCloudAuthApiRef } from '@backstage/core-plugin-api';
import { SignInPage } from '@backstage/core-components';
/* highlight-add-end */
const app = createApp({
/* highlight-add-start */
components: {
SignInPage: props => (
<SignInPage
{...props}
provider={{
id: 'vmware-cloud-auth-provider',
title: 'VMware Cloud',
message: 'Sign in using VMware Cloud',
apiRef: vmwareCloudAuthApiRef,
}}
/>
),
},
/* highlight-add-end */
// ..
});
```
## Configuration
Add the following to your `app-config.yaml` under the root `auth` configuration:
```yaml
auth:
session:
secret: your session secret
environment: development
providers:
vmwareCloudServices:
development:
clientId: ${APP_ID}
organizationId: ${ORG_ID}
```
where `APP_ID` refers to the ID retrieved when creating the OAuth App, and
`ORG_ID` is the [long ID of the
Organization](https://docs.vmware.com/en/VMware-Cloud-services/services/Using-VMware-Cloud-Services/GUID-CF9E9318-B811-48CF-8499-9419997DC1F8.html#view-the-organization-id-1)
in VMware Cloud for which you wish to enable sign-in.
Note that VMware Cloud requires OAuth Apps to use
[PKCE](https://oauth.net/2/pkce/) when performing authorization code flows; the
library used by this provider requires the use of Express session middleware to
do this. Therefore the value `your session secret` under `auth.session.secret`
should be replaced with a long, complex and unique string which will act as a
key for signing session cookies set by Backstage.
@@ -83,7 +83,7 @@ following command:
```bash
# from the repository root
yarn add --cwd packages/backend @backstage/backend-defaults @backstage/backend-plugin-api
yarn --cwd packages/backend add @backstage/backend-defaults @backstage/backend-plugin-api
```
You should now be able to start this up with the familiar `yarn workspace
@@ -616,7 +616,7 @@ if you didn't already have one.
```bash
# from the repository root
yarn add --cwd packages/backend @backstage/plugin-catalog-node
yarn --cwd packages/backend add @backstage/plugin-catalog-node
```
Here we've placed the module directly in the backend index file just to get
@@ -681,7 +681,7 @@ if you didn't already have one.
```bash
# from the repository root
yarn add --cwd packages/backend @backstage/plugin-events-node
yarn --cwd packages/backend add @backstage/plugin-events-node
```
Here we've placed the module directly in the backend index file just to get
@@ -715,7 +715,7 @@ And of course you'll need to install those separately as well.
```bash
# from the repository root
yarn add --cwd packages/backend @backstage/plugin-scaffolder-backend-module-github
yarn --cwd packages/backend add @backstage/plugin-scaffolder-backend-module-github
```
You can find a list of the available modules under the [plugins directory](https://github.com/backstage/backstage/tree/master/plugins) in the monorepo.
@@ -766,7 +766,7 @@ if you didn't already have one.
```bash
# from the repository root
yarn add --cwd packages/backend @backstage/plugin-scaffolder-node
yarn --cwd packages/backend add @backstage/plugin-scaffolder-node
```
Here we've placed the module directly in the backend index file just to get
+2 -2
View File
@@ -17,7 +17,7 @@ application.
```bash
# From your Backstage root directory
yarn add --cwd packages/app @backstage/plugin-kubernetes
yarn --cwd packages/app add @backstage/plugin-kubernetes
```
Once the package has been installed, you need to import the plugin in your app
@@ -55,7 +55,7 @@ Navigate to `packages/backend` of your Backstage app, and install the
```bash
# From your Backstage root directory
yarn add --cwd packages/backend @backstage/plugin-kubernetes-backend
yarn --cwd packages/backend add @backstage/plugin-kubernetes-backend
```
Create a file called `kubernetes.ts` inside `packages/backend/src/plugins/` and
+2 -2
View File
@@ -18,7 +18,7 @@ If you haven't setup Backstage already, start
```bash
# From your Backstage root directory
yarn add --cwd packages/app @backstage/plugin-search @backstage/plugin-search-react
yarn --cwd packages/app add @backstage/plugin-search @backstage/plugin-search-react
```
Create a new `packages/app/src/components/search/SearchPage.tsx` file in your
@@ -135,7 +135,7 @@ Add the following plugins into your backend app:
```bash
# From your Backstage root directory
yarn add --cwd packages/backend @backstage/plugin-search-backend @backstage/plugin-search-backend-node
yarn --cwd packages/backend add @backstage/plugin-search-backend @backstage/plugin-search-backend-node
```
Create a `packages/backend/src/plugins/search.ts` file containing the following
+1 -1
View File
@@ -54,7 +54,7 @@ Addons are rendered in the order in which they are registered.
## Installing and using Addons
To start using Addons you need to add the `@backstage/plugin-techdocs-module-addons-contrib` package to your app. You can do that by running this command from the root of your project: `yarn add --cwd packages/app @backstage/plugin-techdocs-module-addons-contrib`
To start using Addons you need to add the `@backstage/plugin-techdocs-module-addons-contrib` package to your app. You can do that by running this command from the root of your project: `yarn --cwd packages/app add @backstage/plugin-techdocs-module-addons-contrib`
Addons can be installed and configured in much the same way as extensions for
other Backstage plugins: by adding them underneath an extension registry
+2 -2
View File
@@ -23,7 +23,7 @@ Navigate to your new Backstage application directory. And then to your
```bash
# From your Backstage root directory
yarn add --cwd packages/app @backstage/plugin-techdocs
yarn --cwd packages/app add @backstage/plugin-techdocs
```
Once the package has been installed, you need to import the plugin in your app.
@@ -108,7 +108,7 @@ Navigate to `packages/backend` of your Backstage app, and install the
```bash
# From your Backstage root directory
yarn add --cwd packages/backend @backstage/plugin-techdocs-backend
yarn --cwd packages/backend add @backstage/plugin-techdocs-backend
```
Create a file called `techdocs.ts` inside `packages/backend/src/plugins/` and
+1 -1
View File
@@ -67,7 +67,7 @@ App. Use the following commands to start the PostgreSQL client installation:
```bash
# From your Backstage root directory
yarn add --cwd packages/backend pg
yarn --cwd packages/backend add pg
```
Use your favorite editor to open `app-config.yaml` and add your PostgreSQL
@@ -23,7 +23,7 @@ to an entity in the software catalog.
```bash
# From your Backstage root directory
yarn add --cwd packages/app @circleci/backstage-plugin
yarn --cwd packages/app add @circleci/backstage-plugin
```
Note the plugin is added to the `app` package, rather than the root
+1 -1
View File
@@ -30,7 +30,7 @@ Now, let's get started by installing the home plugin and creating a simple homep
```bash
# From your Backstage root directory
yarn add --cwd packages/app @backstage/plugin-home
yarn --cwd packages/app add @backstage/plugin-home
```
#### 2. Create a new HomePage component
+1 -1
View File
@@ -64,7 +64,7 @@ the AWS catalog plugin:
```bash
# From your Backstage root directory
yarn add --cwd packages/backend @backstage/plugin-catalog-backend-module-aws
yarn --cwd packages/backend add @backstage/plugin-catalog-backend-module-aws
```
Once you've done that, you'll also need to add the segment below to `packages/backend/src/plugins/catalog.ts`:
+1 -1
View File
@@ -98,7 +98,7 @@ the Azure catalog plugin:
```bash
# From your Backstage root directory
yarn add --cwd packages/backend @backstage/plugin-catalog-backend-module-azure
yarn --cwd packages/backend add @backstage/plugin-catalog-backend-module-azure
```
Once you've done that, you'll also need to add the segment below to `packages/backend/src/plugins/catalog.ts`:
+1 -1
View File
@@ -16,7 +16,7 @@ The package is not installed by default, therefore you have to add `@backstage/p
```bash
# From your Backstage root directory
yarn add --cwd packages/backend @backstage/plugin-catalog-backend-module-msgraph
yarn --cwd packages/backend add @backstage/plugin-catalog-backend-module-msgraph
```
Next add the basic configuration to `app-config.yaml`
@@ -21,7 +21,7 @@ package.
```bash
# From your Backstage root directory
yarn add --cwd packages/backend @backstage/plugin-catalog-backend-module-bitbucket-cloud
yarn --cwd packages/backend add @backstage/plugin-catalog-backend-module-bitbucket-cloud
```
### Installation without Events Support
@@ -21,7 +21,7 @@ package.
```bash
# From your Backstage root directory
yarn add --cwd packages/backend @backstage/plugin-catalog-backend-module-bitbucket-server
yarn --cwd packages/backend add @backstage/plugin-catalog-backend-module-bitbucket-server
```
And then add the entity provider to your catalog builder:
+1 -1
View File
@@ -18,7 +18,7 @@ the Gerrit provider plugin:
```bash
# From your Backstage root directory
yarn add --cwd packages/backend @backstage/plugin-catalog-backend-module-gerrit
yarn --cwd packages/backend add @backstage/plugin-catalog-backend-module-gerrit
```
Then add the plugin to the plugin catalog `packages/backend/src/plugins/catalog.ts`:
+2 -2
View File
@@ -23,7 +23,7 @@ package.
```bash
# From your Backstage root directory
yarn add --cwd packages/backend @backstage/plugin-catalog-backend-module-github
yarn --cwd packages/backend add @backstage/plugin-catalog-backend-module-github
```
And then add the entity provider to your catalog builder:
@@ -250,7 +250,7 @@ package, plus `@backstage/integration` for the basic credentials management:
```bash
# From your Backstage root directory
yarn add --cwd packages/backend @backstage/integration @backstage/plugin-catalog-backend-module-github
yarn --cwd packages/backend add @backstage/integration @backstage/plugin-catalog-backend-module-github
```
And then add the processors to your catalog builder:
+2 -2
View File
@@ -27,7 +27,7 @@ to `@backstage/plugin-catalog-backend-module-github` to your backend package.
```bash
# From your Backstage root directory
yarn add --cwd packages/backend @backstage/plugin-catalog-backend-module-github
yarn --cwd packages/backend add @backstage/plugin-catalog-backend-module-github
```
> Note: When configuring to use a Provider instead of a Processor you do not
@@ -308,7 +308,7 @@ install and register it in the catalog plugin:
```bash
# From your Backstage root directory
yarn add --cwd packages/backend @backstage/plugin-catalog-backend-module-github
yarn --cwd packages/backend add @backstage/plugin-catalog-backend-module-github
```
```typescript title="packages/backend/src/plugins/catalog.ts"
+1 -1
View File
@@ -39,7 +39,7 @@ the gitlab catalog plugin:
```bash
# From your Backstage root directory
yarn add --cwd packages/backend @backstage/plugin-catalog-backend-module-gitlab
yarn --cwd packages/backend add @backstage/plugin-catalog-backend-module-gitlab
```
Once you've done that, you'll also need to add the segment below to `packages/backend/src/plugins/catalog.ts`:
+1 -1
View File
@@ -15,7 +15,7 @@ As this provider is not one of the default providers, you will first need to ins
```bash
# From your Backstage root directory
yarn add --cwd packages/backend @backstage/plugin-catalog-backend-module-gitlab
yarn --cwd packages/backend add @backstage/plugin-catalog-backend-module-gitlab
```
Then add the plugin to the plugin catalog `packages/backend/src/plugins/catalog.ts`:
+1 -1
View File
@@ -26,7 +26,7 @@ to `@backstage/plugin-catalog-backend-module-ldap` to your backend package.
```bash
# From your Backstage root directory
yarn add --cwd packages/backend @backstage/plugin-catalog-backend-module-ldap
yarn --cwd packages/backend add @backstage/plugin-catalog-backend-module-ldap
```
> Note: When configuring to use a Provider instead of a Processor you do not
+3 -3
View File
@@ -45,7 +45,7 @@ You should create a new folder, `src/schema` in your backend plugin to store you
## Generating a typed express router from a spec
Run `yarn backstage-repo-tools schema openapi generate <plugin-directory>`. This will create an `openapi.generated.ts` file in the `src/schema` directory that contains the OpenAPI schema as well as a generated express router with types.
Run `yarn backstage-repo-tools package schema openapi generate --server` from the directory with your plugin. This will create an `openapi.generated.ts` file in the `src/schema` directory that contains the OpenAPI schema as well as a generated express router with types. You should add this command to your `package.json` for future use and you can combine both the server generation and the client generation below like so, `yarn backstage-repo-tools package schema openapi generate --server --client-package <clientPackageDirectory>`
Use it like so, update your `router.ts` or `createRouter.ts` file with the following content,
@@ -63,7 +63,7 @@ export async function createRouter(
## Generating a typed client from a spec
Run `yarn backstage-repo-tools schema openapi generate-client --input-spec <plugin-directory>/src/schema/openapi.yaml --output-directory <plugin-client-directory>`. `<plugin-directory>` should match the same backend plugin we've been using so far. `<plugin-client-directory>` is a new directory and npm package that you should create. The general pattern is `plugins/<plugin-name>-client`.
From your current backend plugin directory, run `yarn backstage-repo-tools package schema openapi generate --client-package <plugin-client-directory>`. `<plugin-client-directory>` is a new directory and npm package that you should create. The general pattern is `plugins/<plugin-name>-client` or if you want to co-locate this with your other shared types, use `plugins/<plugin-name>-common`. You should add this command to your `package.json` for future use.
The generated client will have a directory `src/generated` that exports a `DefaultApiClient` class and all generated types. You can use the client like so,
@@ -108,7 +108,7 @@ describe('createRouter', () => {
+ app = wrapInOpenApiTestServer(express().use(router));
```
This adds a wrapper around the express server that allows it to reroute traffic for `supertest`. Run `yarn backstage-repo-tools schema openapi init` to create some required config files. Now, when you run `yarn backstage-repo-tools schema openapi test` your schema will now be tested against your test data. Any errors will be reported.
This adds a wrapper around the express server that allows it to reroute traffic for `supertest`. Run `yarn backstage-repo-tools package schema openapi init` to create some required files. Now, when you run `yarn backstage-repo-tools repo schema openapi test` your schema will now be tested against your test data. Any errors will be reported.
Our command is a small wrapper over [`Optic`](https://github.com/opticdev/optic) which does all of the heavy lifting.
+2 -2
View File
@@ -4,7 +4,7 @@ title: Generate a client from your OpenAPI spec
description: Documentation on how to create a client for a given OpenAPI spec
---
## How to generate a client with `repo-tools schema openapi generate-client`?
## How to generate a client with `repo-tools package schema openapi generate client`?
### Prerequisites
@@ -20,7 +20,7 @@ info:
### Generating your client
1. Run `yarn backstage-repo-tools schema openapi generate-client --input-spec <file> --output-directory <directory>`. This will create a new folder in `<directory>/src/generated` to house the generated content.
1. Run `yarn backstage-repo-tools schema openapi generate client --output-package <directory>`. This will create a new folder in `<directory>/src/generated` to house the generated content.
2. You should use the generated files as follows,
- `apis/DefaultApi.client.ts` - this is the client that you should use. It has types for all of the various operations on your API.
+3 -3
View File
@@ -1,15 +1,15 @@
---
id: test-case-validation
title: Validate your OpenAPI spec against test data
description: Documentation on how to use the `schema openapi test` command.
description: Documentation on how to use the `repo schema openapi test` command.
---
## OpenAPI Validation using Test Cases
This is primarily performed by `backstage-repo-tools schema openapi test`. Any errors found in the generated specs can be either
This is primarily performed by `backstage-repo-tools repo schema openapi test`. Any errors found in the generated specs can be either
1. Fixed manually, this is usually relevant for request body or response body changes.
2. Fixed automatically with `backstage-repo-tools schema openapi test --update`.
2. Fixed automatically with `backstage-repo-tools repo schema openapi test --update`.
3. Fixing the test case. This can happen where a response is mocked as
```ts
+1 -1
View File
@@ -48,7 +48,7 @@ The permissions framework uses a new `permission-backend` plugin to accept autho
```bash
# From your Backstage root directory
yarn add --cwd packages/backend @backstage/plugin-permission-backend
yarn --cwd packages/backend add @backstage/plugin-permission-backend
```
2. Add the following to a new file, `packages/backend/src/plugins/permission.ts`. This adds the permission-backend router, and configures it with a policy which allows everything.
+2 -2
View File
@@ -41,8 +41,8 @@ The source code is available here:
```sh
# From your Backstage root directory
yarn add --cwd packages/backend @internal/plugin-todo-list-backend @internal/plugin-todo-list-common
yarn add --cwd packages/app @internal/plugin-todo-list
yarn --cwd packages/backend add @internal/plugin-todo-list-backend @internal/plugin-todo-list-common
yarn --cwd packages/app add @internal/plugin-todo-list
```
3. Include the backend and frontend plugin in your application:
+1 -1
View File
@@ -69,7 +69,7 @@ to your backend.
```bash
# From your Backstage root directory
yarn add --cwd packages/backend @internal/plugin-carmen-backend@^0.1.0 # Change this to match the plugin's package.json
yarn --cwd packages/backend add @internal/plugin-carmen-backend@^0.1.0 # Change this to match the plugin's package.json
```
Create a new file named `packages/backend/src/plugins/carmen.ts`, and add the
File diff suppressed because it is too large Load Diff
@@ -39,10 +39,10 @@ both of them.
```bash
# From your Backstage root directory
# install pg if you need PostgreSQL
yarn add --cwd packages/backend pg
yarn --cwd packages/backend add pg
# install SQLite 3 if you intend to set it as the client
yarn add --cwd packages/backend better-sqlite3
yarn --cwd packages/backend add better-sqlite3
```
From an operational perspective, you only need to install drivers for clients
+1 -1
View File
@@ -21,7 +21,7 @@ First, add PostgreSQL to your `backend` package:
```bash
# From your Backstage root directory
yarn add --cwd packages/backend pg
yarn --cwd packages/backend add pg
```
## Add PostgreSQL configuration
@@ -102,7 +102,7 @@ Install in your apps package folder (`<root>/packages/app`) with:
```bash
# From your Backstage root directory
yarn add --cwd packages/app @backstage/plugin-<plugin-name>
yarn --cwd packages/app add @backstage/plugin-<plugin-name>
```
After that, you inject the plugin into the application where you want it to be exposed. Please read the documentation for the specific plugin you are installing for more information.
+10
View File
@@ -0,0 +1,10 @@
---
title: Umami Analytics
author: AxisCommunications
authorUrl: https://github.com/AxisCommunications
category: Monitoring
description: Track usage of your Backstage instance using Umami Analytics.
documentation: https://github.com/AxisCommunications/backstage-plugins/blob/main/plugins/analytics-module-umami/README.md
iconUrl: /img/umami-logo.svg
npmPackageName: '@axis-backstage/plugin-analytics-module-umami'
addedDate: '2024-02-05'
+2 -1
View File
@@ -308,7 +308,8 @@
"auth/google/gcp-iap-auth",
"auth/okta/provider",
"auth/oauth2-proxy/provider",
"auth/onelogin/provider"
"auth/onelogin/provider",
"auth/vmware-cloud/provider"
]
},
"auth/identity-resolver",
Binary file not shown.

Before

Width:  |  Height:  |  Size: 16 KiB

After

Width:  |  Height:  |  Size: 19 KiB

+1
View File
@@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 428 389.11"><circle cx="214.15" cy="181" r="171" fill="none" stroke="currentColor" stroke-miterlimit="10" stroke-width="20"/><path d="M413 134.11H15.29a15 15 0 0 0-15 15v15.3C.12 168 0 171.52 0 175.11c0 118.19 95.81 214 214 214 116.4 0 211.1-92.94 213.93-208.67 0-.44.07-.88.07-1.33v-30a15 15 0 0 0-15-15Z"/></svg>

After

Width:  |  Height:  |  Size: 390 B

+5 -4
View File
@@ -40,8 +40,8 @@
"build-storybook": "yarn ./storybook run build-storybook",
"techdocs-cli": "node scripts/techdocs-cli.js",
"techdocs-cli:dev": "cross-env TECHDOCS_CLI_DEV_MODE=true node scripts/techdocs-cli.js",
"prepare": "husky install",
"postinstall": "husky install || true"
"prepare": "husky",
"postinstall": "husky || true"
},
"workspaces": {
"packages": [
@@ -56,7 +56,7 @@
"@material-ui/pickers@^3.3.10": "patch:@material-ui/pickers@npm%3A3.3.11#./.yarn/patches/@material-ui-pickers-npm-3.3.11-1c8f68ea20.patch",
"@material-ui/pickers@^3.2.10": "patch:@material-ui/pickers@npm%3A3.3.11#./.yarn/patches/@material-ui-pickers-npm-3.3.11-1c8f68ea20.patch"
},
"version": "1.23.0-next.1",
"version": "1.23.0-next.2",
"dependencies": {
"@backstage/errors": "workspace:^",
"@manypkg/get-packages": "^1.1.3",
@@ -85,13 +85,14 @@
"eslint-plugin-react": "^7.28.0",
"eslint-plugin-testing-library": "^6.0.0",
"fs-extra": "10.1.0",
"husky": "^8.0.0",
"husky": "^9.0.0",
"lint-staged": "^15.0.0",
"minimist": "^1.2.5",
"node-gyp": "^10.0.0",
"prettier": "^2.2.1",
"semver": "^7.5.3",
"shx": "^0.3.2",
"sloc": "^0.3.1",
"ts-node": "^10.4.0",
"typescript": "~5.1.0"
},
+21
View File
@@ -1,5 +1,26 @@
# @backstage/app-defaults
## 1.5.0-next.2
### Minor Changes
- f919be9: Added a utility API for VMware Cloud auth; the API ref is available in the
`@backstage/core-plugin-api` and `@backstage/frontend-plugin-api` packages, the
implementation is in `@backstage/core-app-api` and a factory has been added to
`@backstage/app-defaults`.
- 7f11009: Added stack trace display to `ErrorPage` and updated existing refs
### Patch Changes
- 9aac2b0: Use `--cwd` as the first `yarn` argument
- 214f2da: Fix invalid HTTP status code 501 in Error Page
- Updated dependencies
- @backstage/core-components@0.14.0-next.1
- @backstage/core-app-api@1.12.0-next.1
- @backstage/core-plugin-api@1.9.0-next.1
- @backstage/plugin-permission-react@0.4.20-next.1
- @backstage/theme@0.5.1-next.0
## 1.4.8-next.1
### Patch Changes
+1 -1
View File
@@ -8,7 +8,7 @@ Install the package via Yarn:
```bash
# From your Backstage root directory
yarn add --cwd packages/app @backstage/app-defaults
yarn --cwd packages/app add @backstage/app-defaults
```
## Documentation
+1 -1
View File
@@ -1,7 +1,7 @@
{
"name": "@backstage/app-defaults",
"description": "Provides the default wiring of a Backstage App",
"version": "1.4.8-next.1",
"version": "1.5.0-next.2",
"publishConfig": {
"access": "public",
"main": "dist/index.esm.js",
@@ -34,6 +34,7 @@ import {
AtlassianAuth,
createFetchApi,
FetchMiddlewares,
VMwareCloudAuth,
} from '@backstage/core-app-api';
import {
@@ -56,6 +57,7 @@ import {
bitbucketAuthApiRef,
bitbucketServerAuthApiRef,
atlassianAuthApiRef,
vmwareCloudAuthApiRef,
} from '@backstage/core-plugin-api';
import {
permissionApiRef,
@@ -259,6 +261,22 @@ export const apis = [
});
},
}),
createApiFactory({
api: vmwareCloudAuthApiRef,
deps: {
discoveryApi: discoveryApiRef,
oauthRequestApi: oauthRequestApiRef,
configApi: configApiRef,
},
factory: ({ discoveryApi, oauthRequestApi, configApi }) => {
return VMwareCloudAuth.create({
configApi,
discoveryApi,
oauthRequestApi,
environment: configApi.getOptionalString('auth.environment'),
});
},
}),
createApiFactory({
api: permissionApiRef,
deps: {
@@ -49,7 +49,7 @@ const DefaultBootErrorPage = ({ step, error }: BootErrorPageProps) => {
// TODO: figure out a nicer way to handle routing on the error page, when it can be done.
return (
<OptionallyWrapInRouter>
<ErrorPage statusMessage={message} />
<ErrorPage statusMessage={message} stack={error.stack} />
</OptionallyWrapInRouter>
);
};
@@ -1,5 +1,13 @@
# app-next-example-plugin
## 0.0.6-next.2
### Patch Changes
- Updated dependencies
- @backstage/core-components@0.14.0-next.1
- @backstage/frontend-plugin-api@0.6.0-next.2
## 0.0.6-next.1
### Patch Changes
@@ -1,7 +1,7 @@
{
"name": "app-next-example-plugin",
"description": "Backstage internal example plugin",
"version": "0.0.6-next.1",
"version": "0.0.6-next.2",
"publishConfig": {
"access": "public",
"main": "dist/index.esm.js",
+76
View File
@@ -1,5 +1,81 @@
# example-app-next
## 0.0.6-next.2
### Patch Changes
- Updated dependencies
- @backstage/plugin-azure-devops@0.3.12-next.2
- @backstage/plugin-azure-sites@0.1.19-next.2
- @backstage/core-components@0.14.0-next.1
- @backstage/plugin-catalog-graph@0.4.0-next.2
- @backstage/plugin-techdocs-module-addons-contrib@1.1.5-next.2
- @backstage/plugin-catalog-unprocessed-entities@0.1.8-next.1
- @backstage/plugin-microsoft-calendar@0.1.12-next.1
- @backstage/plugin-catalog-import@0.10.6-next.2
- @backstage/plugin-github-actions@0.6.11-next.2
- @backstage/plugin-octopus-deploy@0.2.12-next.2
- @backstage/plugin-techdocs-react@1.1.16-next.1
- @backstage/app-defaults@1.5.0-next.2
- @backstage/core-app-api@1.12.0-next.1
- @backstage/plugin-code-coverage@0.2.23-next.2
- @backstage/plugin-cost-insights@0.12.19-next.2
- @backstage/plugin-tech-insights@0.3.22-next.2
- @backstage/plugin-lighthouse@0.4.15-next.2
- @backstage/plugin-scaffolder@1.18.0-next.2
- @backstage/plugin-tech-radar@0.6.13-next.2
- @backstage/plugin-dynatrace@9.0.0-next.2
- @backstage/plugin-shortcuts@0.3.19-next.1
- @backstage/plugin-airbrake@0.3.30-next.2
- @backstage/plugin-api-docs@0.10.4-next.2
- @backstage/plugin-devtools@0.1.9-next.2
- @backstage/plugin-graphiql@0.3.3-next.2
- @backstage/plugin-linguist@0.1.15-next.2
- @backstage/plugin-newrelic@0.3.45-next.1
- @backstage/plugin-catalog@1.17.0-next.2
- @backstage/plugin-jenkins@0.9.5-next.2
- @backstage/plugin-rollbar@0.4.30-next.2
- @backstage/plugin-badges@0.2.54-next.2
- @backstage/plugin-sentry@0.5.15-next.2
- @backstage/plugin-home@0.6.2-next.2
- @backstage/core-plugin-api@1.9.0-next.1
- @backstage/frontend-plugin-api@0.6.0-next.2
- @backstage/plugin-catalog-react@1.10.0-next.2
- @backstage/frontend-app-api@0.6.0-next.2
- @backstage/plugin-adr@0.6.13-next.2
- @backstage/plugin-apache-airflow@0.2.20-next.1
- @backstage/plugin-cloudbuild@0.4.0-next.2
- @backstage/plugin-entity-feedback@0.2.13-next.2
- @backstage/plugin-explore@0.4.16-next.2
- @backstage/plugin-gcalendar@0.3.23-next.1
- @backstage/plugin-kafka@0.3.30-next.2
- @backstage/plugin-kubernetes@0.11.5-next.2
- @backstage/plugin-newrelic-dashboard@0.3.5-next.2
- @backstage/plugin-org@0.6.20-next.2
- @backstage/plugin-pagerduty@0.7.2-next.2
- @backstage/plugin-permission-react@0.4.20-next.1
- @backstage/plugin-playlist@0.2.4-next.2
- @backstage/plugin-puppetdb@0.1.13-next.2
- @backstage/plugin-scaffolder-react@1.8.0-next.2
- @backstage/plugin-search-react@1.7.6-next.2
- @backstage/plugin-search@1.4.6-next.2
- @backstage/plugin-stackstorm@0.1.11-next.1
- @backstage/plugin-techdocs@1.10.0-next.2
- @backstage/plugin-user-settings@0.8.1-next.2
- @backstage/theme@0.5.1-next.0
- @backstage/cli@0.25.2-next.2
- app-next-example-plugin@0.0.6-next.2
- @backstage/integration-react@1.1.24-next.1
- @backstage/plugin-app-visualizer@0.1.1-next.2
- @backstage/plugin-gcp-projects@0.3.46-next.1
- @backstage/plugin-gocd@0.1.36-next.2
- @backstage/plugin-todo@0.2.34-next.2
- @backstage/core-compat-api@0.2.0-next.2
- @backstage/catalog-model@1.4.4-next.0
- @backstage/plugin-catalog-common@1.0.21-next.0
- @backstage/plugin-linguist-common@0.1.2
- @backstage/plugin-search-common@1.2.10
## 0.0.6-next.1
### Patch Changes
+14
View File
@@ -5,6 +5,7 @@ app:
bindings:
catalog.viewTechDoc: techdocs.docRoot
catalog.createComponent: catalog-import.importPage
org.catalogIndex: catalog.catalogIndex
extensions:
# - apis.plugin.graphiql.browse.gitlab: true
@@ -16,8 +17,21 @@ app:
config:
filter: kind:component has:links
- entity-card:linguist/languages
- entity-card:catalog-graph/relations:
config:
height: 300
- entity-card:azure-devops/readme
# Entity page content
- entity-content:techdocs
- entity-content:azure-devops/pipelines
- entity-content:azure-devops/pull-requests
- entity-content:azure-devops/git-tags
# Org Plugin
- entity-card:org/group-profile
- entity-card:org/members-list
- entity-card:org/ownership
- entity-card:org/user-profile
# scmAuthExtension: >-
# createScmAuthExtension({
+1 -1
View File
@@ -1,6 +1,6 @@
{
"name": "example-app-next",
"version": "0.0.6-next.1",
"version": "0.0.6-next.2",
"private": true,
"backstage": {
"role": "frontend"
+78
View File
@@ -1,5 +1,83 @@
# example-app
## 0.2.92-next.2
### Patch Changes
- Updated dependencies
- @backstage/plugin-azure-devops@0.3.12-next.2
- @backstage/plugin-azure-sites@0.1.19-next.2
- @backstage/core-components@0.14.0-next.1
- @backstage/plugin-catalog-graph@0.4.0-next.2
- @backstage/plugin-techdocs-module-addons-contrib@1.1.5-next.2
- @backstage/plugin-signals@0.0.1-next.2
- @backstage/plugin-catalog-unprocessed-entities@0.1.8-next.1
- @backstage/plugin-microsoft-calendar@0.1.12-next.1
- @backstage/plugin-catalog-import@0.10.6-next.2
- @backstage/plugin-github-actions@0.6.11-next.2
- @backstage/plugin-octopus-deploy@0.2.12-next.2
- @backstage/plugin-techdocs-react@1.1.16-next.1
- @backstage/app-defaults@1.5.0-next.2
- @backstage/core-app-api@1.12.0-next.1
- @backstage/plugin-code-coverage@0.2.23-next.2
- @backstage/plugin-cost-insights@0.12.19-next.2
- @backstage/plugin-tech-insights@0.3.22-next.2
- @backstage/plugin-lighthouse@0.4.15-next.2
- @backstage/plugin-scaffolder@1.18.0-next.2
- @backstage/plugin-tech-radar@0.6.13-next.2
- @backstage/plugin-dynatrace@9.0.0-next.2
- @backstage/plugin-shortcuts@0.3.19-next.1
- @backstage/plugin-airbrake@0.3.30-next.2
- @backstage/plugin-api-docs@0.10.4-next.2
- @backstage/plugin-devtools@0.1.9-next.2
- @backstage/plugin-graphiql@0.3.3-next.2
- @backstage/plugin-linguist@0.1.15-next.2
- @backstage/plugin-newrelic@0.3.45-next.1
- @backstage/plugin-catalog@1.17.0-next.2
- @backstage/plugin-jenkins@0.9.5-next.2
- @backstage/plugin-rollbar@0.4.30-next.2
- @backstage/plugin-badges@0.2.54-next.2
- @backstage/plugin-sentry@0.5.15-next.2
- @backstage/plugin-nomad@0.1.11-next.2
- @backstage/plugin-home@0.6.2-next.2
- @backstage/core-plugin-api@1.9.0-next.1
- @backstage/plugin-catalog-react@1.10.0-next.2
- @backstage/frontend-app-api@0.6.0-next.2
- @backstage/plugin-adr@0.6.13-next.2
- @backstage/plugin-apache-airflow@0.2.20-next.1
- @backstage/plugin-cloudbuild@0.4.0-next.2
- @backstage/plugin-entity-feedback@0.2.13-next.2
- @backstage/plugin-explore@0.4.16-next.2
- @backstage/plugin-gcalendar@0.3.23-next.1
- @backstage/plugin-kafka@0.3.30-next.2
- @backstage/plugin-kubernetes-cluster@0.0.6-next.2
- @backstage/plugin-kubernetes@0.11.5-next.2
- @backstage/plugin-newrelic-dashboard@0.3.5-next.2
- @backstage/plugin-org@0.6.20-next.2
- @backstage/plugin-pagerduty@0.7.2-next.2
- @backstage/plugin-permission-react@0.4.20-next.1
- @backstage/plugin-playlist@0.2.4-next.2
- @backstage/plugin-puppetdb@0.1.13-next.2
- @backstage/plugin-scaffolder-react@1.8.0-next.2
- @backstage/plugin-search-react@1.7.6-next.2
- @backstage/plugin-search@1.4.6-next.2
- @backstage/plugin-stack-overflow@0.1.25-next.2
- @backstage/plugin-stackstorm@0.1.11-next.1
- @backstage/plugin-techdocs@1.10.0-next.2
- @backstage/plugin-user-settings@0.8.1-next.2
- @backstage/theme@0.5.1-next.0
- @backstage/cli@0.25.2-next.2
- @backstage/plugin-notifications@0.0.1-next.0
- @backstage/integration-react@1.1.24-next.1
- @backstage/plugin-gcp-projects@0.3.46-next.1
- @backstage/plugin-gocd@0.1.36-next.2
- @backstage/plugin-todo@0.2.34-next.2
- @backstage/config@1.1.1
- @backstage/catalog-model@1.4.4-next.0
- @backstage/plugin-catalog-common@1.0.21-next.0
- @backstage/plugin-linguist-common@0.1.2
- @backstage/plugin-search-common@1.2.10
## 0.2.92-next.1
### Patch Changes
+2 -1
View File
@@ -1,6 +1,6 @@
{
"name": "example-app",
"version": "0.2.92-next.1",
"version": "0.2.92-next.2",
"private": true,
"backstage": {
"role": "frontend"
@@ -59,6 +59,7 @@
"@backstage/plugin-newrelic": "workspace:^",
"@backstage/plugin-newrelic-dashboard": "workspace:^",
"@backstage/plugin-nomad": "workspace:^",
"@backstage/plugin-notifications": "workspace:^",
"@backstage/plugin-octopus-deploy": "workspace:^",
"@backstage/plugin-org": "workspace:^",
"@backstage/plugin-pagerduty": "workspace:^",
+4 -2
View File
@@ -67,15 +67,15 @@ import { SearchPage } from '@backstage/plugin-search';
import { TechRadarPage } from '@backstage/plugin-tech-radar';
import {
TechDocsIndexPage,
TechDocsReaderPage,
techdocsPlugin,
TechDocsReaderPage,
} from '@backstage/plugin-techdocs';
import { TechDocsAddons } from '@backstage/plugin-techdocs-react';
import {
ExpandableNavigation,
LightBox,
ReportIssue,
TextSize,
LightBox,
} from '@backstage/plugin-techdocs-module-addons-contrib';
import {
SettingsLayout,
@@ -107,6 +107,7 @@ import { PuppetDbPage } from '@backstage/plugin-puppetdb';
import { DevToolsPage } from '@backstage/plugin-devtools';
import { customDevToolsPage } from './components/devtools/CustomDevToolsPage';
import { CatalogUnprocessedEntitiesPage } from '@backstage/plugin-catalog-unprocessed-entities';
import { NotificationsPage } from '@backstage/plugin-notifications';
const app = createApp({
apis,
@@ -272,6 +273,7 @@ const routes = (
<Route path="/devtools" element={<DevToolsPage />}>
{customDevToolsPage}
</Route>
<Route path="/notifications" element={<NotificationsPage />} />
</FlatRoutes>
);
+5 -2
View File
@@ -34,6 +34,7 @@ import {
import { SidebarSearchModal } from '@backstage/plugin-search';
import { Shortcuts } from '@backstage/plugin-shortcuts';
import {
Link,
Sidebar,
sidebarConfig,
SidebarDivider,
@@ -42,16 +43,16 @@ import {
SidebarPage,
SidebarScrollWrapper,
SidebarSpace,
Link,
useSidebarOpenState,
SidebarSubmenu,
SidebarSubmenuItem,
useSidebarOpenState,
} from '@backstage/core-components';
import { MyGroupsSidebarItem } from '@backstage/plugin-org';
import { SearchModal } from '../search/SearchModal';
import Score from '@material-ui/icons/Score';
import { useApp } from '@backstage/core-plugin-api';
import BuildIcon from '@material-ui/icons/Build';
import { NotificationsSidebarItem } from '@backstage/plugin-notifications';
const useSidebarLogoStyles = makeStyles({
root: {
@@ -166,6 +167,8 @@ export const Root = ({ children }: PropsWithChildren<{}>) => (
</SidebarScrollWrapper>
<SidebarDivider />
<Shortcuts allowExternalLinks />
<SidebarDivider />
<NotificationsSidebarItem />
</SidebarGroup>
<SidebarSpace />
<SidebarDivider />
+18
View File
@@ -1,5 +1,23 @@
# @backstage/backend-app-api
## 0.5.11-next.2
### Patch Changes
- 9aac2b0: Use `--cwd` as the first `yarn` argument
- Updated dependencies
- @backstage/backend-common@0.21.0-next.2
- @backstage/backend-plugin-api@0.6.10-next.2
- @backstage/backend-tasks@0.5.15-next.2
- @backstage/plugin-auth-node@0.4.4-next.2
- @backstage/plugin-permission-node@0.7.21-next.2
- @backstage/config@1.1.1
- @backstage/cli-common@0.1.13
- @backstage/cli-node@0.2.2
- @backstage/config-loader@1.6.1
- @backstage/errors@1.2.3
- @backstage/types@1.1.1
## 0.5.11-next.1
### Patch Changes
+1 -1
View File
@@ -8,7 +8,7 @@ Add the library to your backend app package:
```bash
# From your Backstage root directory
yarn add --cwd packages/backend @backstage/backend-app-api
yarn --cwd packages/backend add @backstage/backend-app-api
```
## Documentation
+1 -1
View File
@@ -1,7 +1,7 @@
{
"name": "@backstage/backend-app-api",
"description": "Core API used by Backstage backend apps",
"version": "0.5.11-next.1",
"version": "0.5.11-next.2",
"main": "src/index.ts",
"types": "src/index.ts",
"publishConfig": {
+19
View File
@@ -1,5 +1,24 @@
# @backstage/backend-common
## 0.21.0-next.2
### Patch Changes
- 3489d05: `FetchUrlReader#readUrl()` now supports passing an optional `token` to authenticate requests.
- 9aac2b0: Use `--cwd` as the first `yarn` argument
- 7fb7a79: Add a config declaration for `workingDirectory`
- Updated dependencies
- @backstage/backend-plugin-api@0.6.10-next.2
- @backstage/backend-dev-utils@0.1.4-next.0
- @backstage/backend-app-api@0.5.11-next.2
- @backstage/config@1.1.1
- @backstage/integration-aws-node@0.1.8
- @backstage/cli-common@0.1.13
- @backstage/config-loader@1.6.1
- @backstage/errors@1.2.3
- @backstage/integration@1.9.0-next.0
- @backstage/types@1.1.1
## 0.21.0-next.1
### Patch Changes
+1 -1
View File
@@ -9,7 +9,7 @@ Add the library to your backend package:
```bash
# From your Backstage root directory
yarn add --cwd packages/backend @backstage/backend-common
yarn --cwd packages/backend add @backstage/backend-common
```
then make use of the handlers and logger as necessary:
+16
View File
@@ -67,6 +67,22 @@ export interface Config {
};
};
/**
* An absolute path to a directory that can be used as a working dir, for
* example as scratch space for large operations.
*
* @remarks
*
* Note that this must be an absolute path.
*
* If not set, the operating system's designated temporary directory is
* commonly used, but that is implementation defined per plugin.
*
* Plugins are encouraged to heed this config setting if present, to allow
* deployment in severely locked-down or limited environments.
*/
workingDirectory?: string;
/** Database connection configuration, select base database type using the `client` field */
database: {
/** Default database client to use */
+1 -1
View File
@@ -1,7 +1,7 @@
{
"name": "@backstage/backend-common",
"description": "Common functionality library for Backstage backends",
"version": "0.21.0-next.1",
"version": "0.21.0-next.2",
"main": "src/index.ts",
"types": "src/index.ts",
"publishConfig": {
@@ -223,6 +223,27 @@ describe('FetchUrlReader', () => {
).rejects.toThrow(NotModifiedError);
});
it('should send Authorization header if token is provided', async () => {
expect.assertions(1);
worker.use(
rest.get(
'https://backstage.io/requires-authentication',
(req, res, ctx) => {
expect(req.headers.get('authorization')).toBe('Bearer mytoken');
return res(ctx.status(200));
},
),
);
await fetchUrlReader.readUrl(
'https://backstage.io/requires-authentication',
{
token: 'mytoken',
},
);
});
it('should return etag from the response', async () => {
const response = await fetchUrlReader.readUrl(
'https://backstage.io/some-resource',
@@ -131,6 +131,7 @@ export class FetchUrlReader implements UrlReader {
...(options?.lastModifiedAfter && {
'If-Modified-Since': options.lastModifiedAfter.toUTCString(),
}),
...(options?.token && { Authorization: `Bearer ${options.token}` }),
},
// TODO(freben): The signal cast is there because pre-3.x versions of
// node-fetch have a very slightly deviating AbortSignal type signature.
+10
View File
@@ -1,5 +1,15 @@
# @backstage/backend-defaults
## 0.2.10-next.2
### Patch Changes
- 9aac2b0: Use `--cwd` as the first `yarn` argument
- Updated dependencies
- @backstage/backend-common@0.21.0-next.2
- @backstage/backend-plugin-api@0.6.10-next.2
- @backstage/backend-app-api@0.5.11-next.2
## 0.2.10-next.1
### Patch Changes
+1 -1
View File
@@ -8,7 +8,7 @@ Add the library to your backend app package:
```bash
# From your Backstage root directory
yarn add --cwd packages/backend @backstage/backend-defaults
yarn --cwd packages/backend add @backstage/backend-defaults
```
## Documentation
+1 -1
View File
@@ -1,7 +1,7 @@
{
"name": "@backstage/backend-defaults",
"description": "Backend defaults used by Backstage backend apps",
"version": "0.2.10-next.1",
"version": "0.2.10-next.2",
"main": "src/index.ts",
"types": "src/index.ts",
"publishConfig": {
+6
View File
@@ -1,5 +1,11 @@
# @backstage/backend-dev-utils
## 0.1.4-next.0
### Patch Changes
- 9aac2b0: Use `--cwd` as the first `yarn` argument
## 0.1.3
### Patch Changes
+1 -1
View File
@@ -8,7 +8,7 @@ Add the library to your backend plugin or module package:
```bash
# From your Backstage root directory
yarn add --cwd plugins/<plugin>-backend @backstage/backend-dev-utils
yarn --cwd plugins/<plugin>-backend add @backstage/backend-dev-utils
```
## Documentation
+1 -1
View File
@@ -1,6 +1,6 @@
{
"name": "@backstage/backend-dev-utils",
"version": "0.1.3",
"version": "0.1.4-next.0",
"main": "src/index.ts",
"types": "src/index.ts",
"license": "Apache-2.0",
@@ -1,5 +1,28 @@
# @backstage/backend-dynamic-feature-service
## 0.1.1-next.2
### Patch Changes
- Updated dependencies
- @backstage/backend-common@0.21.0-next.2
- @backstage/backend-plugin-api@0.6.10-next.2
- @backstage/plugin-catalog-backend@1.17.0-next.2
- @backstage/backend-tasks@0.5.15-next.2
- @backstage/plugin-events-backend@0.2.19-next.2
- @backstage/plugin-auth-node@0.4.4-next.2
- @backstage/plugin-permission-node@0.7.21-next.2
- @backstage/plugin-scaffolder-node@0.3.0-next.2
- @backstage/plugin-search-backend-node@1.2.14-next.2
- @backstage/plugin-events-node@0.2.19-next.2
- @backstage/config@1.1.1
- @backstage/cli-common@0.1.13
- @backstage/cli-node@0.2.2
- @backstage/errors@1.2.3
- @backstage/types@1.1.1
- @backstage/plugin-permission-common@0.7.12
- @backstage/plugin-search-common@1.2.10
## 0.1.1-next.1
### Patch Changes
@@ -1,7 +1,7 @@
{
"name": "@backstage/backend-dynamic-feature-service",
"description": "Backstage dynamic feature service",
"version": "0.1.1-next.1",
"version": "0.1.1-next.2",
"main": "src/index.ts",
"types": "src/index.ts",
"publishConfig": {

Some files were not shown because too many files have changed in this diff Show More