tags to avoid word break.
diff --git a/.changeset/tiny-donuts-drive.md b/.changeset/tiny-donuts-drive.md
new file mode 100644
index 0000000000..aadac7a276
--- /dev/null
+++ b/.changeset/tiny-donuts-drive.md
@@ -0,0 +1,6 @@
+---
+'@backstage/plugin-kubernetes-backend': patch
+---
+
+Backstage will log a warning whenever duplicate cluster names are detected --
+even if clusters sharing the same name come from separate locators.
diff --git a/.changeset/twelve-hounds-know.md b/.changeset/twelve-hounds-know.md
new file mode 100644
index 0000000000..3c95c71ddb
--- /dev/null
+++ b/.changeset/twelve-hounds-know.md
@@ -0,0 +1,5 @@
+---
+'@backstage/plugin-scaffolder-react': minor
+---
+
+Use more distinguishable icons for link (`Link`) and text output (`Description`).
diff --git a/.changeset/twelve-pens-rescue.md b/.changeset/twelve-pens-rescue.md
new file mode 100644
index 0000000000..9d40fb2851
--- /dev/null
+++ b/.changeset/twelve-pens-rescue.md
@@ -0,0 +1,7 @@
+---
+'@backstage/frontend-plugin-api': patch
+'@backstage/frontend-app-api': patch
+'@backstage/core-compat-api': patch
+---
+
+Allow external route refs in the new system to have a `defaultTarget` pointing to a route that it'll resolve to by default if no explicit bindings were made by the adopter.
diff --git a/.changeset/twelve-shirts-buy.md b/.changeset/twelve-shirts-buy.md
new file mode 100644
index 0000000000..6183c7dabd
--- /dev/null
+++ b/.changeset/twelve-shirts-buy.md
@@ -0,0 +1,15 @@
+---
+'@backstage/plugin-catalog-backend': patch
+'@backstage/plugin-catalog-node': patch
+---
+
+Add support for `onProcessingError` handler at the catalog plugin (new backend system).
+
+You can use `setOnProcessingErrorHandler` at the `catalogProcessingExtensionPoint`
+as replacement for
+
+```ts
+catalogBuilder.subscribe({
+ onProcessingError: hander,
+});
+```
diff --git a/.changeset/twelve-weeks-march.md b/.changeset/twelve-weeks-march.md
new file mode 100644
index 0000000000..4d9fff5b34
--- /dev/null
+++ b/.changeset/twelve-weeks-march.md
@@ -0,0 +1,5 @@
+---
+'@backstage/plugin-scaffolder-react': patch
+---
+
+Fix issue where `ui:schema` was replaced with an empty object if `dependencies` is defined
diff --git a/.changeset/weak-news-jam.md b/.changeset/weak-news-jam.md
new file mode 100644
index 0000000000..a1f44082da
--- /dev/null
+++ b/.changeset/weak-news-jam.md
@@ -0,0 +1,5 @@
+---
+'@backstage/plugin-scaffolder-react': patch
+---
+
+Fix bug that erroneously caused a separator or a 0 to render in the TemplateCard for Templates with empty links
diff --git a/.changeset/wet-lions-crash.md b/.changeset/wet-lions-crash.md
new file mode 100644
index 0000000000..795e60588d
--- /dev/null
+++ b/.changeset/wet-lions-crash.md
@@ -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.
diff --git a/.changeset/wicked-ants-reflect.md b/.changeset/wicked-ants-reflect.md
new file mode 100644
index 0000000000..4882d12a34
--- /dev/null
+++ b/.changeset/wicked-ants-reflect.md
@@ -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
diff --git a/.changeset/wicked-dolphins-wash.md b/.changeset/wicked-dolphins-wash.md
new file mode 100644
index 0000000000..9258913c41
--- /dev/null
+++ b/.changeset/wicked-dolphins-wash.md
@@ -0,0 +1,5 @@
+---
+'@backstage/plugin-kubernetes-backend': patch
+---
+
+On LocalKubectlProxyClusterLocator, when resolving localhost, IPv4 address is placed before IPv6 address, ignoring the order from the DNS resolver. This change is necessary since by default kubectl proxy listen on IPv4
diff --git a/.changeset/wise-flies-laugh.md b/.changeset/wise-flies-laugh.md
new file mode 100644
index 0000000000..4b31b4e9ba
--- /dev/null
+++ b/.changeset/wise-flies-laugh.md
@@ -0,0 +1,5 @@
+---
+'@backstage/plugin-home': patch
+---
+
+Added filter support for HomePageVisitedByType in order to enable filtering entities from the list
diff --git a/.changeset/wise-papayas-cough.md b/.changeset/wise-papayas-cough.md
new file mode 100644
index 0000000000..955e7fefcc
--- /dev/null
+++ b/.changeset/wise-papayas-cough.md
@@ -0,0 +1,5 @@
+---
+'@backstage/backend-common': patch
+---
+
+Add a config declaration for `workingDirectory`
diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS
index d10106e47f..75416ace16 100644
--- a/.github/CODEOWNERS
+++ b/.github/CODEOWNERS
@@ -86,3 +86,5 @@ yarn.lock @backstage/maintainers @backst
/plugins/tech-insights-backend-module-jsonfc @backstage/maintainers @backstage/reviewers @xantier
/plugins/tech-insights-tech-insights-common @backstage/maintainers @backstage/reviewers @xantier
/plugins/tech-insights-tech-insights-node @backstage/maintainers @backstage/reviewers @xantier
+
+knip-report.md
diff --git a/.github/labeler.yml b/.github/labeler.yml
index 5066ebaf05..6653c2d868 100644
--- a/.github/labeler.yml
+++ b/.github/labeler.yml
@@ -1,38 +1,62 @@
area:catalog:
- - plugins/catalog/**/*
- - plugins/catalog-*/**/*
- - packages/catalog-*/**/*
+ - changed-files:
+ - any-glob-to-any-file:
+ - plugins/catalog/**/*
+ - plugins/catalog-*/**/*
+ - packages/catalog-*/**/*
area:discoverability: # search + home
- - plugins/search/**/*
- - plugins/search-*/**/*
- - packages/search-*/**/*
- - plugins/home/**/*
+ - changed-files:
+ - any-glob-to-any-file:
+ - plugins/search/**/*
+ - plugins/search-*/**/*
+ - packages/search-*/**/*
+ - plugins/home/**/*
area:kubernetes:
- - plugins/kubernetes/**/*
- - plugins/kubernetes-*/**/*
+ - changed-files:
+ - any-glob-to-any-file:
+ - plugins/kubernetes/**/*
+ - plugins/kubernetes-*/**/*
area:permission:
- - plugins/permission-*/**/*
+ - changed-files:
+ - any-glob-to-any-file:
+ - plugins/permission-*/**/*
area:scaffolder:
- - plugins/scaffolder/**/*
- - plugins/scaffolder-*/**/*
+ - changed-files:
+ - any-glob-to-any-file:
+ - plugins/scaffolder/**/*
+ - plugins/scaffolder-*/**/*
area:techdocs:
- - plugins/techdocs/**/*
- - plugins/techdocs-*/**/*
- - packages/techdocs-*/**/*
+ - changed-files:
+ - any-glob-to-any-file:
+ - plugins/techdocs/**/*
+ - plugins/techdocs-*/**/*
+ - packages/techdocs-*/**/*
auth:
- - plugins/auth-*/**/*
- - packages/core-app-api/src/apis/implementations/auth/**/*
- - packages/core-app-api/src/lib/Auth*/**/*
- - packages/core-plugin-api/src/apis/definitions/auth.ts
+ - changed-files:
+ - any-glob-to-any-file:
+ - plugins/auth-*/**/*
+ - packages/core-app-api/src/apis/implementations/auth/**/*
+ - packages/core-app-api/src/lib/Auth*/**/*
+ - packages/core-plugin-api/src/apis/definitions/auth.ts
documentation:
- - docs/**/*
+ - changed-files:
+ - any-glob-to-any-file:
+ - docs/**/*
homepage:
- - plugins/home/**/*
+ - changed-files:
+ - any-glob-to-any-file:
+ - plugins/home/**/*
microsite:
- - microsite/**/*
+ - changed-files:
+ - any-glob-to-any-file:
+ - microsite/**/*
search:
- - plugins/search/**/*
- - plugins/search-*/**/*
- - packages/search-*/**/*
+ - changed-files:
+ - any-glob-to-any-file:
+ - plugins/search/**/*
+ - plugins/search-*/**/*
+ - packages/search-*/**/*
storybook:
- - storybook/**/*
+ - changed-files:
+ - any-glob-to-any-file:
+ - storybook/**/*
diff --git a/.github/renovate.json5 b/.github/renovate.json5
index b58c0beb05..828e5f5481 100644
--- a/.github/renovate.json5
+++ b/.github/renovate.json5
@@ -1,6 +1,15 @@
{
+ $schema: 'https://docs.renovatebot.com/renovate-schema.json',
+
labels: ['dependencies'],
- extends: ['config:base', ':disableDependencyDashboard', ':gitSignOff'],
+
+ extends: ['config:best-practices', ':gitSignOff'],
+ // do not pin dev dependencies, which are part of the best-practices preset
+ ignorePresets: [':pinDevDependencies'],
+
+ // the default limit are 10 PRs
+ prConcurrentLimit: 20,
+
postUpdateOptions: ['yarnDedupeHighest'],
rangeStrategy: 'update-lockfile',
// @elastic/elasticsearch is ignored due to licensing issues. See #10992
diff --git a/.github/vale/config/vocabularies/Backstage/accept.txt b/.github/vale/config/vocabularies/Backstage/accept.txt
index 940e855828..9bb4a52cf4 100644
--- a/.github/vale/config/vocabularies/Backstage/accept.txt
+++ b/.github/vale/config/vocabularies/Backstage/accept.txt
@@ -185,6 +185,7 @@ Kaswell
keepalive
Keyv
Knex
+knip
Koyeb
KPIs
Kuang
diff --git a/.github/workflows/automate_area-labels.yml b/.github/workflows/automate_area-labels.yml
index 5d12e4ca89..632624bd50 100644
--- a/.github/workflows/automate_area-labels.yml
+++ b/.github/workflows/automate_area-labels.yml
@@ -13,11 +13,11 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Harden Runner
- uses: step-security/harden-runner@eb238b55efaa70779f274895e782ed17c84f2895 # v2.6.1
+ uses: step-security/harden-runner@63c24ba6bd7ba022e95695ff85de572c04a18142 # v2.7.0
with:
egress-policy: audit
- - uses: actions/labeler@v4.3.0
+ - uses: actions/labeler@8558fd74291d67161a8a78ce36a881fa63b766a9 # v5.0.0
with:
repo-token: '${{ secrets.GITHUB_TOKEN }}'
sync-labels: true
diff --git a/.github/workflows/automate_changeset_feedback.yml b/.github/workflows/automate_changeset_feedback.yml
index bf58b4b49d..89b611f981 100644
--- a/.github/workflows/automate_changeset_feedback.yml
+++ b/.github/workflows/automate_changeset_feedback.yml
@@ -23,18 +23,18 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Harden Runner
- uses: step-security/harden-runner@eb238b55efaa70779f274895e782ed17c84f2895 # v2.6.1
+ uses: step-security/harden-runner@63c24ba6bd7ba022e95695ff85de572c04a18142 # v2.7.0
with:
egress-policy: audit
- - uses: actions/checkout@v4.1.1
+ - uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
with:
# Fetch the commit that's merged into the base rather than the target ref
# This will let us diff only the contents of the PR, without fetching more history
ref: 'refs/pull/${{ github.event.pull_request.number }}/merge'
- name: fetch base
run: git fetch --depth 1 origin ${{ github.base_ref }}
- - uses: backstage/actions/changeset-feedback@v0.6.5
+ - uses: backstage/actions/changeset-feedback@a674369920067381b450d398b27df7039b7ef635 # v0.6.5
name: Generate feedback
with:
diff-ref: 'origin/master'
diff --git a/.github/workflows/automate_merge_message.yml b/.github/workflows/automate_merge_message.yml
index 71e3450235..0c6dacde69 100644
--- a/.github/workflows/automate_merge_message.yml
+++ b/.github/workflows/automate_merge_message.yml
@@ -24,11 +24,11 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Harden Runner
- uses: step-security/harden-runner@eb238b55efaa70779f274895e782ed17c84f2895 # v2.6.1
+ uses: step-security/harden-runner@63c24ba6bd7ba022e95695ff85de572c04a18142 # v2.7.0
with:
egress-policy: audit
- - uses: actions/checkout@v4.1.1
+ - uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
with:
ref: '${{ github.event.pull_request.merge_commit_sha }}'
@@ -44,7 +44,7 @@ jobs:
node generate.js ${{ github.event.pull_request.base.sha }} ${{ github.event.pull_request.head.sha }} > message.txt
- name: Post Message
- uses: actions/github-script@v7.0.1
+ uses: actions/github-script@60a0d83039c74a4aee543508d2ffcb1c3799cdea # v7.0.1
env:
ISSUE_NUMBER: ${{ github.event.pull_request.number }}
with:
diff --git a/.github/workflows/automate_stale.yml b/.github/workflows/automate_stale.yml
index 48b329a7b7..b4a7271875 100644
--- a/.github/workflows/automate_stale.yml
+++ b/.github/workflows/automate_stale.yml
@@ -15,11 +15,11 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Harden Runner
- uses: step-security/harden-runner@eb238b55efaa70779f274895e782ed17c84f2895 # v2.6.1
+ uses: step-security/harden-runner@63c24ba6bd7ba022e95695ff85de572c04a18142 # v2.7.0
with:
egress-policy: audit
- - uses: actions/stale@v9.0.0
+ - uses: actions/stale@28ca1036281a5e5922ead5184a1bbf96e5fc984e # v9.0.0
id: stale
with:
stale-issue-message: >
diff --git a/.github/workflows/ci-noop.yml b/.github/workflows/ci-noop.yml
index f7c6c40832..2c66da768f 100644
--- a/.github/workflows/ci-noop.yml
+++ b/.github/workflows/ci-noop.yml
@@ -40,7 +40,7 @@ jobs:
name: Test ${{ matrix.node-version }}
steps:
- name: Harden Runner
- uses: step-security/harden-runner@eb238b55efaa70779f274895e782ed17c84f2895 # v2.6.1
+ uses: step-security/harden-runner@63c24ba6bd7ba022e95695ff85de572c04a18142 # v2.7.0
with:
egress-policy: audit
diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml
index 71d6b2e56a..1ed43f3964 100644
--- a/.github/workflows/ci.yml
+++ b/.github/workflows/ci.yml
@@ -28,20 +28,20 @@ jobs:
name: Install ${{ matrix.node-version }}
steps:
- name: Harden Runner
- uses: step-security/harden-runner@eb238b55efaa70779f274895e782ed17c84f2895 # v2.6.1
+ uses: step-security/harden-runner@63c24ba6bd7ba022e95695ff85de572c04a18142 # v2.7.0
with:
egress-policy: audit
- - uses: actions/checkout@v4.1.1
+ - uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
- name: use node.js ${{ matrix.node-version }}
- uses: actions/setup-node@v4.0.1
+ uses: actions/setup-node@60edb5dd545a775178f52524783378180af0d1f8 # v4.0.2
with:
node-version: ${{ matrix.node-version }}
registry-url: https://registry.npmjs.org/ # Needed for auth
- name: yarn install
- uses: backstage/actions/yarn-install@v0.6.5
+ uses: backstage/actions/yarn-install@a674369920067381b450d398b27df7039b7ef635 # v0.6.5
with:
cache-prefix: ${{ runner.os }}-v${{ matrix.node-version }}
@@ -64,20 +64,20 @@ jobs:
name: Verify ${{ matrix.node-version }}
steps:
- name: Harden Runner
- uses: step-security/harden-runner@eb238b55efaa70779f274895e782ed17c84f2895 # v2.6.1
+ uses: step-security/harden-runner@63c24ba6bd7ba022e95695ff85de572c04a18142 # v2.7.0
with:
egress-policy: audit
- - uses: actions/checkout@v4.1.1
+ - uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
- name: use node.js ${{ matrix.node-version }}
- uses: actions/setup-node@v4.0.1
+ uses: actions/setup-node@60edb5dd545a775178f52524783378180af0d1f8 # v4.0.2
with:
node-version: ${{ matrix.node-version }}
registry-url: https://registry.npmjs.org/ # Needed for auth
- name: yarn install
- uses: backstage/actions/yarn-install@v0.6.5
+ uses: backstage/actions/yarn-install@a674369920067381b450d398b27df7039b7ef635 # v0.6.5
with:
cache-prefix: ${{ runner.os }}-v${{ matrix.node-version }}
@@ -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
@@ -155,7 +155,7 @@ jobs:
name: Test ${{ matrix.node-version }}
services:
postgres16:
- image: postgres:16
+ image: postgres:16@sha256:09f23e02d76670d3b346a3c00aa33a27cf57aab8341eedfcdaed41459d14f5c4
env:
POSTGRES_PASSWORD: postgres
options: >-
@@ -166,7 +166,7 @@ jobs:
ports:
- 5432/tcp
postgres12:
- image: postgres:12
+ image: postgres:12@sha256:8ffdca6e9208aceb30653fa0cc1c38956303ace453944b54b4f71019cfe854c1
env:
POSTGRES_PASSWORD: postgres
options: >-
@@ -177,7 +177,7 @@ jobs:
ports:
- 5432/tcp
mysql8:
- image: mysql:8
+ image: mysql:8@sha256:2a9ef1075ff30c65bbcf4f96b25a03ea3b3f492c284e6c4a612c269ce4c5bb19
env:
MYSQL_ROOT_PASSWORD: root
options: >-
@@ -197,18 +197,18 @@ jobs:
INTEGRATION_TEST_AZURE_TOKEN: ${{ secrets.INTEGRATION_TEST_AZURE_TOKEN }}
steps:
- - uses: actions/checkout@v4.1.1
+ - uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
- name: fetch branch master
run: git fetch origin master
- name: use node.js ${{ matrix.node-version }}
- uses: actions/setup-node@v4.0.1
+ uses: actions/setup-node@60edb5dd545a775178f52524783378180af0d1f8 # v4.0.2
with:
node-version: ${{ matrix.node-version }}
registry-url: https://registry.npmjs.org/ # Needed for auth
- name: yarn install
- uses: backstage/actions/yarn-install@v0.6.5
+ uses: backstage/actions/yarn-install@a674369920067381b450d398b27df7039b7ef635 # v0.6.5
with:
cache-prefix: ${{ runner.os }}-v${{ matrix.node-version }}
@@ -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: |
diff --git a/.github/workflows/cron.yml b/.github/workflows/cron.yml
index 4a9e4522f4..6ae0310813 100644
--- a/.github/workflows/cron.yml
+++ b/.github/workflows/cron.yml
@@ -9,11 +9,11 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Harden Runner
- uses: step-security/harden-runner@eb238b55efaa70779f274895e782ed17c84f2895 # v2.6.1
+ uses: step-security/harden-runner@63c24ba6bd7ba022e95695ff85de572c04a18142 # v2.7.0
with:
egress-policy: audit
- - uses: backstage/actions/cron@v0.6.5
+ - uses: backstage/actions/cron@a674369920067381b450d398b27df7039b7ef635 # v0.6.5
with:
app-id: ${{ secrets.BACKSTAGE_GOALIE_APPLICATION_ID }}
private-key: ${{ secrets.BACKSTAGE_GOALIE_PRIVATE_KEY }}
diff --git a/.github/workflows/deploy_docker-image.yml b/.github/workflows/deploy_docker-image.yml
index 037d4a88d7..eef70ff02c 100644
--- a/.github/workflows/deploy_docker-image.yml
+++ b/.github/workflows/deploy_docker-image.yml
@@ -16,24 +16,24 @@ jobs:
steps:
- name: Harden Runner
- uses: step-security/harden-runner@eb238b55efaa70779f274895e782ed17c84f2895 # v2.6.1
+ uses: step-security/harden-runner@63c24ba6bd7ba022e95695ff85de572c04a18142 # v2.7.0
with:
egress-policy: audit
- name: checkout
- uses: actions/checkout@v4.1.1
+ uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
with:
path: backstage
ref: v${{ github.event.client_payload.version }}
- name: use node.js ${{ matrix.node-version }}
- uses: actions/setup-node@v4.0.1
+ uses: actions/setup-node@60edb5dd545a775178f52524783378180af0d1f8 # v4.0.2
with:
node-version: ${{ matrix.node-version }}
registry-url: https://registry.npmjs.org/ # Needed for auth
- name: yarn install
- uses: backstage/actions/yarn-install@v0.6.5
+ uses: backstage/actions/yarn-install@a674369920067381b450d398b27df7039b7ef635 # v0.6.5
with:
cache-prefix: ${{ runner.os }}-v${{ matrix.node-version }}
@@ -47,17 +47,17 @@ jobs:
working-directory: ./example-app
- name: Login to GitHub Container Registry
- uses: docker/login-action@v3.0.0
+ uses: docker/login-action@343f7c4344506bcbf9b4de18042ae17996df046d # v3.0.0
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Set up Docker Buildx
- uses: docker/setup-buildx-action@v3.0.0
+ uses: docker/setup-buildx-action@f95db51fddba0c2d1ec667646a06c2ce06100226 # v3.0.0
- name: Build and push
- uses: docker/build-push-action@v5.1.0
+ uses: docker/build-push-action@4a13e500e55cf31b7a5d59a38ab2040ab0f42f56 # v5.1.0
with:
context: './example-app'
file: ./example-app/packages/backend/Dockerfile
diff --git a/.github/workflows/deploy_microsite.yml b/.github/workflows/deploy_microsite.yml
index 8343b92a66..e9abba59a3 100644
--- a/.github/workflows/deploy_microsite.yml
+++ b/.github/workflows/deploy_microsite.yml
@@ -24,14 +24,14 @@ jobs:
steps:
- name: Harden Runner
- uses: step-security/harden-runner@eb238b55efaa70779f274895e782ed17c84f2895 # v2.6.1
+ uses: step-security/harden-runner@63c24ba6bd7ba022e95695ff85de572c04a18142 # v2.7.0
with:
egress-policy: audit
- - uses: actions/checkout@v4.1.1
+ - uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
- name: use node.js 18.x
- uses: actions/setup-node@v4.0.1
+ uses: actions/setup-node@60edb5dd545a775178f52524783378180af0d1f8 # v4.0.2
with:
node-version: 18.x
registry-url: https://registry.npmjs.org/ # Needed for auth
diff --git a/.github/workflows/deploy_nightly.yml b/.github/workflows/deploy_nightly.yml
index 33dc17f867..b74f1bfeed 100644
--- a/.github/workflows/deploy_nightly.yml
+++ b/.github/workflows/deploy_nightly.yml
@@ -15,19 +15,19 @@ jobs:
steps:
- name: Harden Runner
- uses: step-security/harden-runner@eb238b55efaa70779f274895e782ed17c84f2895 # v2.6.1
+ uses: step-security/harden-runner@63c24ba6bd7ba022e95695ff85de572c04a18142 # v2.7.0
with:
egress-policy: audit
- uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
- name: use node.js 18.x
- uses: actions/setup-node@b39b52d1213e96004bfcb1c61a8a6fa8ab84f3e8 # v4.0.1
+ uses: actions/setup-node@60edb5dd545a775178f52524783378180af0d1f8 # v4.0.2
with:
node-version: 18.x
registry-url: https://registry.npmjs.org/ # Needed for auth
- name: yarn install
- uses: backstage/actions/yarn-install@v0.6.5
+ uses: backstage/actions/yarn-install@a674369920067381b450d398b27df7039b7ef635 # v0.6.5
with:
cache-prefix: ${{ runner.os }}-v18.x
diff --git a/.github/workflows/deploy_packages.yml b/.github/workflows/deploy_packages.yml
index 6cd6caecf9..48396e88b7 100644
--- a/.github/workflows/deploy_packages.yml
+++ b/.github/workflows/deploy_packages.yml
@@ -1,6 +1,11 @@
name: Deploy Packages
on:
workflow_dispatch:
+ inputs:
+ force_release:
+ description: Unconditionally trigger the release job
+ required: false
+ type: boolean
push:
branches: [master, patch/*]
@@ -18,7 +23,7 @@ jobs:
services:
postgres16:
- image: postgres:16
+ image: postgres:16@sha256:09f23e02d76670d3b346a3c00aa33a27cf57aab8341eedfcdaed41459d14f5c4
env:
POSTGRES_PASSWORD: postgres
options: >-
@@ -29,7 +34,7 @@ jobs:
ports:
- 5432/tcp
postgres12:
- image: postgres:12
+ image: postgres:12@sha256:8ffdca6e9208aceb30653fa0cc1c38956303ace453944b54b4f71019cfe854c1
env:
POSTGRES_PASSWORD: postgres
options: >-
@@ -40,7 +45,7 @@ jobs:
ports:
- 5432/tcp
mysql8:
- image: mysql:8
+ image: mysql:8@sha256:2a9ef1075ff30c65bbcf4f96b25a03ea3b3f492c284e6c4a612c269ce4c5bb19
env:
MYSQL_ROOT_PASSWORD: root
options: >-
@@ -53,22 +58,22 @@ jobs:
env:
CI: true
- NODE_OPTIONS: --max-old-space-size=4096
+ NODE_OPTIONS: ${{ matrix.node-version == '20.x' && '--max-old-space-size=4096 --no-node-snapshot' || '--max-old-space-size=4096' }}
INTEGRATION_TEST_GITHUB_TOKEN: ${{ secrets.INTEGRATION_TEST_GITHUB_TOKEN }}
INTEGRATION_TEST_GITLAB_TOKEN: ${{ secrets.INTEGRATION_TEST_GITLAB_TOKEN }}
INTEGRATION_TEST_BITBUCKET_TOKEN: ${{ secrets.INTEGRATION_TEST_BITBUCKET_TOKEN }}
INTEGRATION_TEST_AZURE_TOKEN: ${{ secrets.INTEGRATION_TEST_AZURE_TOKEN }}
steps:
- - uses: actions/checkout@v4.1.1
+ - uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
- name: use node.js ${{ matrix.node-version }}
- uses: actions/setup-node@v4.0.1
+ uses: actions/setup-node@60edb5dd545a775178f52524783378180af0d1f8 # v4.0.2
with:
node-version: ${{ matrix.node-version }}
registry-url: https://registry.npmjs.org/ # Needed for auth
- name: yarn install
- uses: backstage/actions/yarn-install@v0.6.5
+ uses: backstage/actions/yarn-install@a674369920067381b450d398b27df7039b7ef635 # v0.6.5
with:
cache-prefix: ${{ runner.os }}-v${{ matrix.node-version }}
@@ -76,6 +81,7 @@ jobs:
run: git fetch origin '${{ github.event.before }}'
- name: Check if release
+ if: inputs.force_release != true
id: release_check
run: node scripts/check-if-release.js
env:
@@ -124,7 +130,7 @@ jobs:
release:
needs: build
- if: needs.build.outputs.needs_release == 'true'
+ if: needs.build.outputs.needs_release == 'true' || inputs.force_release == true
runs-on: ubuntu-latest
@@ -138,19 +144,19 @@ jobs:
steps:
- name: Harden Runner
- uses: step-security/harden-runner@eb238b55efaa70779f274895e782ed17c84f2895 # v2.6.1
+ uses: step-security/harden-runner@63c24ba6bd7ba022e95695ff85de572c04a18142 # v2.7.0
with:
egress-policy: audit
- - uses: actions/checkout@v4.1.1
+ - uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
- name: use node.js ${{ matrix.node-version }}
- uses: actions/setup-node@v4.0.1
+ uses: actions/setup-node@60edb5dd545a775178f52524783378180af0d1f8 # v4.0.2
with:
node-version: ${{ matrix.node-version }}
registry-url: https://registry.npmjs.org/ # Needed for auth
- name: yarn install
- uses: backstage/actions/yarn-install@v0.6.5
+ uses: backstage/actions/yarn-install@a674369920067381b450d398b27df7039b7ef635 # v0.6.5
with:
cache-prefix: ${{ runner.os }}-v${{ matrix.node-version }}
@@ -190,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
diff --git a/.github/workflows/issue.yaml b/.github/workflows/issue.yaml
index c81447e9c0..54bc8d8782 100644
--- a/.github/workflows/issue.yaml
+++ b/.github/workflows/issue.yaml
@@ -10,9 +10,9 @@ jobs:
if: github.repository == 'backstage/backstage'
steps:
- name: Harden Runner
- uses: step-security/harden-runner@eb238b55efaa70779f274895e782ed17c84f2895 # v2.6.1
+ uses: step-security/harden-runner@63c24ba6bd7ba022e95695ff85de572c04a18142 # v2.7.0
with:
egress-policy: audit
- name: Issue sync
- uses: backstage/actions/issue-sync@v0.6.5
+ uses: backstage/actions/issue-sync@a674369920067381b450d398b27df7039b7ef635 # v0.6.5
diff --git a/.github/workflows/pr-review-comment-trigger.yaml b/.github/workflows/pr-review-comment-trigger.yaml
index bfd1ffef3d..46f7dad8a3 100644
--- a/.github/workflows/pr-review-comment-trigger.yaml
+++ b/.github/workflows/pr-review-comment-trigger.yaml
@@ -20,7 +20,7 @@ jobs:
steps:
- name: Harden Runner
- uses: step-security/harden-runner@eb238b55efaa70779f274895e782ed17c84f2895 # v2.6.1
+ uses: step-security/harden-runner@63c24ba6bd7ba022e95695ff85de572c04a18142 # v2.7.0
with:
egress-policy: audit
@@ -30,7 +30,7 @@ jobs:
run: |
mkdir -p ./pr
echo $PR_NUMBER > ./pr/pr_number
- - uses: actions/upload-artifact@v3.1.3
+ - uses: actions/upload-artifact@a8a3f3ad30e3422c9c7b888a15615d19a852ae32 # v3.1.3
with:
name: pr_number-${{ github.event.pull_request.number }}
path: pr/
diff --git a/.github/workflows/pr-review-comment.yaml b/.github/workflows/pr-review-comment.yaml
index 7d9869d378..18300b074e 100644
--- a/.github/workflows/pr-review-comment.yaml
+++ b/.github/workflows/pr-review-comment.yaml
@@ -17,13 +17,13 @@ jobs:
steps:
# Inspired by https://docs.github.com/en/actions/using-workflows/events-that-trigger-workflows#using-data-from-the-triggering-workflow
- name: Harden Runner
- uses: step-security/harden-runner@eb238b55efaa70779f274895e782ed17c84f2895 # v2.6.1
+ uses: step-security/harden-runner@63c24ba6bd7ba022e95695ff85de572c04a18142 # v2.7.0
with:
egress-policy: audit
- name: Read PR Number
id: pr-number
- uses: actions/github-script@v7.0.1
+ uses: actions/github-script@60a0d83039c74a4aee543508d2ffcb1c3799cdea # v7.0.1
with:
github-token: ${{ secrets.GITHUB_TOKEN }}
script: |
@@ -40,7 +40,7 @@ jobs:
const prNumber = artifact.name.slice('pr_number-'.length)
core.setOutput('pr-number', prNumber);
- - uses: backstage/actions/re-review@v0.6.5
+ - uses: backstage/actions/re-review@a674369920067381b450d398b27df7039b7ef635 # v0.6.5
with:
app-id: ${{ secrets.BACKSTAGE_GOALIE_APPLICATION_ID }}
private-key: ${{ secrets.BACKSTAGE_GOALIE_PRIVATE_KEY }}
diff --git a/.github/workflows/pr.yaml b/.github/workflows/pr.yaml
index 6c2ffcfe77..89531bf70a 100644
--- a/.github/workflows/pr.yaml
+++ b/.github/workflows/pr.yaml
@@ -18,12 +18,12 @@ jobs:
if: github.repository == 'backstage/backstage' && ( github.event.pull_request || github.event.issue.pull_request )
steps:
- name: Harden Runner
- uses: step-security/harden-runner@eb238b55efaa70779f274895e782ed17c84f2895 # v2.6.1
+ uses: step-security/harden-runner@63c24ba6bd7ba022e95695ff85de572c04a18142 # v2.7.0
with:
egress-policy: audit
- name: PR sync
- uses: backstage/actions/pr-sync@v0.6.5
+ uses: backstage/actions/pr-sync@a674369920067381b450d398b27df7039b7ef635 # v0.6.5
with:
github-token: ${{ secrets.GH_SERVICE_ACCOUNT_TOKEN }}
app-id: ${{ secrets.BACKSTAGE_GOALIE_APPLICATION_ID }}
diff --git a/.github/workflows/scorecard.yml b/.github/workflows/scorecard.yml
index 73dd5f8c57..32db85a0de 100644
--- a/.github/workflows/scorecard.yml
+++ b/.github/workflows/scorecard.yml
@@ -29,12 +29,12 @@ jobs:
steps:
- name: Harden Runner
- uses: step-security/harden-runner@eb238b55efaa70779f274895e782ed17c84f2895 # v2.6.1
+ uses: step-security/harden-runner@63c24ba6bd7ba022e95695ff85de572c04a18142 # v2.7.0
with:
egress-policy: audit
- name: 'Checkout code'
- uses: actions/checkout@v4.1.1
+ uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
with:
persist-credentials: false
@@ -58,7 +58,7 @@ jobs:
# Upload the results as artifacts (optional). Commenting out will disable uploads of run results in SARIF
# format to the repository Actions tab.
- name: 'Upload artifact'
- uses: actions/upload-artifact@v3.1.3
+ uses: actions/upload-artifact@a8a3f3ad30e3422c9c7b888a15615d19a852ae32 # v3.1.3
with:
name: SARIF file
path: results.sarif
@@ -66,6 +66,6 @@ jobs:
# Upload the results to GitHub's code scanning dashboard.
- name: 'Upload to code-scanning'
- uses: github/codeql-action/upload-sarif@0b21cf2492b6b02c465a3e5d7c473717ad7721ba # v3.23.1
+ uses: github/codeql-action/upload-sarif@e8893c57a1f3a2b659b6b55564fdfdbbd2982911 # v3.24.0
with:
sarif_file: results.sarif
diff --git a/.github/workflows/sync_code-formatting.yml b/.github/workflows/sync_code-formatting.yml
index 9b5a04198a..f34011348c 100644
--- a/.github/workflows/sync_code-formatting.yml
+++ b/.github/workflows/sync_code-formatting.yml
@@ -10,7 +10,7 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Harden Runner
- uses: step-security/harden-runner@eb238b55efaa70779f274895e782ed17c84f2895 # v2.6.1
+ uses: step-security/harden-runner@63c24ba6bd7ba022e95695ff85de572c04a18142 # v2.7.0
with:
egress-policy: audit
@@ -20,12 +20,12 @@ jobs:
fetch-depth: 0
- name: use node.js ${{ matrix.node-version }}
- uses: actions/setup-node@v4.0.1
+ uses: actions/setup-node@60edb5dd545a775178f52524783378180af0d1f8 # v4.0.2
with:
node-version: ${{ matrix.node-version }}
registry-url: https://registry.npmjs.org/ # Needed for auth
- name: yarn install
- uses: backstage/actions/yarn-install@v0.6.5
+ uses: backstage/actions/yarn-install@a674369920067381b450d398b27df7039b7ef635 # v0.6.5
with:
cache-prefix: ${{ runner.os }}-v${{ matrix.node-version }}
diff --git a/.github/workflows/sync_dependabot-changesets.yml b/.github/workflows/sync_dependabot-changesets.yml
index f61d8709a5..c2a447e369 100644
--- a/.github/workflows/sync_dependabot-changesets.yml
+++ b/.github/workflows/sync_dependabot-changesets.yml
@@ -11,12 +11,12 @@ jobs:
if: github.actor == 'dependabot[bot]' && github.repository == 'backstage/backstage'
steps:
- name: Harden Runner
- uses: step-security/harden-runner@eb238b55efaa70779f274895e782ed17c84f2895 # v2.6.1
+ uses: step-security/harden-runner@63c24ba6bd7ba022e95695ff85de572c04a18142 # v2.7.0
with:
egress-policy: audit
- name: Checkout
- uses: actions/checkout@v4.1.1
+ uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
with:
fetch-depth: 2
ref: ${{ github.head_ref }}
@@ -26,7 +26,7 @@ jobs:
git config --global user.email noreply@backstage.io
git config --global user.name 'Github changeset workflow'
- name: Generate changeset
- uses: actions/github-script@v7.0.1
+ uses: actions/github-script@60a0d83039c74a4aee543508d2ffcb1c3799cdea # v7.0.1
with:
script: |
const { promises: fs } = require('fs');
diff --git a/.github/workflows/sync_release-manifest.yml b/.github/workflows/sync_release-manifest.yml
index 1cab7797e6..64dec1905a 100644
--- a/.github/workflows/sync_release-manifest.yml
+++ b/.github/workflows/sync_release-manifest.yml
@@ -8,12 +8,12 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Harden Runner
- uses: step-security/harden-runner@eb238b55efaa70779f274895e782ed17c84f2895 # v2.6.1
+ uses: step-security/harden-runner@63c24ba6bd7ba022e95695ff85de572c04a18142 # v2.7.0
with:
egress-policy: audit
# Setup node & install deps before checkout, keeping install quick
- - uses: actions/setup-node@v4.0.1
+ - uses: actions/setup-node@60edb5dd545a775178f52524783378180af0d1f8 # v4.0.2
with:
node-version: 18.x
- name: Install dependencies
@@ -21,7 +21,7 @@ jobs:
run: npm install semver@7.3.5 fs-extra@10.0.0 @manypkg/get-packages@1.1.1
- name: Checkout
- uses: actions/checkout@v4.1.1
+ uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
with:
path: backstage
# 'v' prefix is added here for the tag, we keep it out of the manifest logic
@@ -29,7 +29,7 @@ jobs:
# Checkout backstage/versions into /backstage/versions, which is where store the output
- name: Checkout versions
- uses: actions/checkout@v4.1.1
+ uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
with:
repository: backstage/versions
path: backstage/versions
@@ -53,7 +53,7 @@ jobs:
git push
- name: Dispatch update-helper update
- uses: actions/github-script@v7.0.1
+ uses: actions/github-script@60a0d83039c74a4aee543508d2ffcb1c3799cdea # v7.0.1
with:
github-token: ${{ secrets.GH_SERVICE_ACCOUNT_TOKEN }}
# TODO(Rugvip): Remove the create-app dispatch once we've been on the release version for a while
diff --git a/.github/workflows/sync_renovate-changesets.yml b/.github/workflows/sync_renovate-changesets.yml
index 1e93a12f85..83b9f8f574 100644
--- a/.github/workflows/sync_renovate-changesets.yml
+++ b/.github/workflows/sync_renovate-changesets.yml
@@ -11,12 +11,12 @@ jobs:
if: github.actor == 'renovate[bot]' && github.repository == 'backstage/backstage'
steps:
- name: Harden Runner
- uses: step-security/harden-runner@eb238b55efaa70779f274895e782ed17c84f2895 # v2.6.1
+ uses: step-security/harden-runner@63c24ba6bd7ba022e95695ff85de572c04a18142 # v2.7.0
with:
egress-policy: audit
- name: Checkout
- uses: actions/checkout@v4.1.1
+ uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
with:
fetch-depth: 2
ref: ${{ github.head_ref }}
@@ -26,7 +26,7 @@ jobs:
git config --global user.email noreply@backstage.io
git config --global user.name 'Github changeset workflow'
- name: Generate changeset
- uses: actions/github-script@v7.0.1
+ uses: actions/github-script@60a0d83039c74a4aee543508d2ffcb1c3799cdea # v7.0.1
with:
script: |
const { promises: fs } = require("fs");
diff --git a/.github/workflows/sync_snyk-github-issues.yml b/.github/workflows/sync_snyk-github-issues.yml
index ec7c00111d..02d4d55301 100644
--- a/.github/workflows/sync_snyk-github-issues.yml
+++ b/.github/workflows/sync_snyk-github-issues.yml
@@ -12,19 +12,19 @@ jobs:
steps:
- name: Harden Runner
- uses: step-security/harden-runner@eb238b55efaa70779f274895e782ed17c84f2895 # v2.6.1
+ uses: step-security/harden-runner@63c24ba6bd7ba022e95695ff85de572c04a18142 # v2.7.0
with:
egress-policy: audit
- - uses: actions/checkout@v4.1.1
+ - uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
- name: use node.js 18.x
- uses: actions/setup-node@v4.0.1
+ uses: actions/setup-node@60edb5dd545a775178f52524783378180af0d1f8 # v4.0.2
with:
node-version: 18.x
registry-url: https://registry.npmjs.org/ # Needed for auth
- name: yarn install
- uses: backstage/actions/yarn-install@v0.6.5
+ uses: backstage/actions/yarn-install@a674369920067381b450d398b27df7039b7ef635 # v0.6.5
with:
cache-prefix: ${{ runner.os }}-v18.x
diff --git a/.github/workflows/sync_snyk-monitor.yml b/.github/workflows/sync_snyk-monitor.yml
index 245ef401fa..45410bdca7 100644
--- a/.github/workflows/sync_snyk-monitor.yml
+++ b/.github/workflows/sync_snyk-monitor.yml
@@ -25,11 +25,11 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Harden Runner
- uses: step-security/harden-runner@eb238b55efaa70779f274895e782ed17c84f2895 # v2.6.1
+ uses: step-security/harden-runner@63c24ba6bd7ba022e95695ff85de572c04a18142 # v2.7.0
with:
egress-policy: audit
- - uses: actions/checkout@v4.1.1
+ - uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
- name: Monitor and Synchronize Snyk Policies
uses: snyk/actions/node@1d672a455ab3339ef0a0021e1ec809165ee12fad # master
with:
@@ -58,6 +58,6 @@ jobs:
SNYK_TOKEN: ${{ secrets.SNYK_TOKEN }}
NODE_OPTIONS: --max-old-space-size=7168
- name: Upload Snyk report
- uses: github/codeql-action/upload-sarif@v3.23.1
+ uses: github/codeql-action/upload-sarif@e8893c57a1f3a2b659b6b55564fdfdbbd2982911 # v3.24.0
with:
sarif_file: snyk.sarif
diff --git a/.github/workflows/sync_version-packages.yml b/.github/workflows/sync_version-packages.yml
index fc1d7a68f1..3164e471d2 100644
--- a/.github/workflows/sync_version-packages.yml
+++ b/.github/workflows/sync_version-packages.yml
@@ -14,11 +14,11 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Harden Runner
- uses: step-security/harden-runner@eb238b55efaa70779f274895e782ed17c84f2895 # v2.6.1
+ uses: step-security/harden-runner@63c24ba6bd7ba022e95695ff85de572c04a18142 # v2.7.0
with:
egress-policy: audit
- - uses: actions/checkout@v4.1.1
+ - uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
with:
fetch-depth: 20000
fetch-tags: true
@@ -26,7 +26,7 @@ jobs:
- name: Install Dependencies
run: yarn --immutable
- name: Create Release Pull Request
- uses: backstage/changesets-action@v2.1.0
+ uses: backstage/changesets-action@99063c276a7f12e024cb310e7a05a3a5b89449f8 # v2.1.0
with:
# Calls out to `changeset version`, but also runs prettier
version: yarn release
diff --git a/.github/workflows/uffizzi-build.yml b/.github/workflows/uffizzi-build.yml
index 6eac098448..b4e7d4b904 100644
--- a/.github/workflows/uffizzi-build.yml
+++ b/.github/workflows/uffizzi-build.yml
@@ -26,21 +26,21 @@ jobs:
tags: ${{ steps.meta.outputs.tags }}
steps:
- name: Harden Runner
- uses: step-security/harden-runner@eb238b55efaa70779f274895e782ed17c84f2895 # v2.6.1
+ uses: step-security/harden-runner@63c24ba6bd7ba022e95695ff85de572c04a18142 # v2.7.0
with:
egress-policy: audit
- name: checkout
- uses: actions/checkout@v4.1.1
+ uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
- name: setup-node
- uses: actions/setup-node@v4.0.1
+ uses: actions/setup-node@60edb5dd545a775178f52524783378180af0d1f8 # v4.0.2
with:
node-version: 18.x
registry-url: https://registry.npmjs.org/
- name: yarn install
- uses: backstage/actions/yarn-install@v0.6.5
+ uses: backstage/actions/yarn-install@a674369920067381b450d398b27df7039b7ef635 # v0.6.5
with:
cache-prefix: linux-v18
@@ -61,7 +61,7 @@ jobs:
- name: Docker metadata
id: meta
- uses: docker/metadata-action@dbef88086f6cef02e264edb7dbf63250c17cef6c # v5.5.0
+ uses: docker/metadata-action@8e5442c4ef9f78752691e2d8f8d19755c6f78e81 # v5.5.1
with:
images: registry.uffizzi.com/${{ env.UUID_TAG_APP }}
tags: type=raw,value=60d
@@ -84,12 +84,12 @@ jobs:
- build-backstage
steps:
- name: Harden Runner
- uses: step-security/harden-runner@eb238b55efaa70779f274895e782ed17c84f2895 # v2.6.1
+ uses: step-security/harden-runner@63c24ba6bd7ba022e95695ff85de572c04a18142 # v2.7.0
with:
egress-policy: audit
- name: Checkout git repo
- uses: actions/checkout@v4.1.1
+ uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
- name: Render Compose File
run: |
# update image after the build above
@@ -98,13 +98,13 @@ jobs:
kustomize build . > manifests.rendered.yml
cat manifests.rendered.yml
- name: Upload Rendered Manifests File as Artifact
- uses: actions/upload-artifact@v3
+ uses: actions/upload-artifact@a8a3f3ad30e3422c9c7b888a15615d19a852ae32 # v3
with:
name: preview-spec
path: ./.github/uffizzi/k8s/manifests/manifests.rendered.yml
retention-days: 2
- name: Upload PR Event as Artifact
- uses: actions/upload-artifact@v3.1.3
+ uses: actions/upload-artifact@a8a3f3ad30e3422c9c7b888a15615d19a852ae32 # v3.1.3
with:
name: preview-spec
path: ${{ github.event_path }}
@@ -116,13 +116,13 @@ jobs:
if: ${{ github.event.action == 'closed' }}
steps:
- name: Harden Runner
- uses: step-security/harden-runner@eb238b55efaa70779f274895e782ed17c84f2895 # v2.6.1
+ uses: step-security/harden-runner@63c24ba6bd7ba022e95695ff85de572c04a18142 # v2.7.0
with:
egress-policy: audit
# If this PR is closing, we will not render a compose file nor pass it to the next workflow.
- name: Upload PR Event as Artifact
- uses: actions/upload-artifact@v3.1.3
+ uses: actions/upload-artifact@a8a3f3ad30e3422c9c7b888a15615d19a852ae32 # v3.1.3
with:
name: preview-spec
path: ${{ github.event_path }}
diff --git a/.github/workflows/uffizzi-preview.yaml b/.github/workflows/uffizzi-preview.yaml
index 47029df5e0..d898209e56 100644
--- a/.github/workflows/uffizzi-preview.yaml
+++ b/.github/workflows/uffizzi-preview.yaml
@@ -23,7 +23,7 @@ jobs:
action: ${{ steps.event.outputs.ACTION }}
steps:
- name: Harden Runner
- uses: step-security/harden-runner@eb238b55efaa70779f274895e782ed17c84f2895 # v2.6.1
+ uses: step-security/harden-runner@63c24ba6bd7ba022e95695ff85de572c04a18142 # v2.7.0
with:
disable-sudo: true
egress-policy: block
@@ -32,7 +32,7 @@ jobs:
- name: 'Download artifacts'
# Fetch output (zip archive) from the workflow run that triggered this workflow.
- uses: actions/github-script@v7.0.1
+ uses: actions/github-script@60a0d83039c74a4aee543508d2ffcb1c3799cdea # v7.0.1
with:
script: |
let allArtifacts = await github.rest.actions.listWorkflowRunArtifacts({
@@ -76,7 +76,7 @@ jobs:
- name: Cache Manifests File
if: ${{ steps.event.outputs.ACTION != 'closed' }}
- uses: actions/cache@v4.0.0
+ uses: actions/cache@13aacd865c20de90d75de3b17ebe84f7a17d57d2 # v4.0.0
with:
path: manifests.rendered.yml
key: ${{ steps.hash.outputs.MANIFESTS_FILE_HASH }}
@@ -102,11 +102,11 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Checkout
- uses: actions/checkout@v4
+ uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4
# Identify comment to be updated
- name: Find comment for Ephemeral Environment
- uses: peter-evans/find-comment@v2
+ uses: peter-evans/find-comment@a54c31d7fa095754bfef525c0c8e5e5674c4b4b1 # v2
id: find-comment
with:
issue-number: ${{ needs.cache-manifests-file.outputs.pr-number }}
@@ -117,7 +117,7 @@ jobs:
# Create/Update comment with action deployment status
- name: Create or Update Comment with Deployment Notification
id: notification
- uses: peter-evans/create-or-update-comment@v3
+ uses: peter-evans/create-or-update-comment@71345be0265236311c031f5c7866368bd1eff043 # v4
with:
comment-id: ${{ steps.find-comment.outputs.comment-id }}
issue-number: ${{ needs.cache-manifests-file.outputs.pr-number }}
@@ -140,7 +140,7 @@ jobs:
- name: Fetch cached Manifests File
id: cache
- uses: actions/cache@v4
+ uses: actions/cache@13aacd865c20de90d75de3b17ebe84f7a17d57d2 # v4
with:
path: manifests.rendered.yml
key: ${{ needs.cache-manifests-file.outputs.manifests-cache-key }}
@@ -165,7 +165,7 @@ jobs:
echo "Access the \`backstage\` endpoint at [\`${BACKSTAGE_HOST}\`](http://${BACKSTAGE_HOST})" >> $GITHUB_STEP_SUMMARY
- name: Create or Update Comment with Deployment URL
- uses: peter-evans/create-or-update-comment@v3
+ uses: peter-evans/create-or-update-comment@71345be0265236311c031f5c7866368bd1eff043 # v4
with:
comment-id: ${{ steps.notification.outputs.comment-id }}
issue-number: ${{ github.event.pull_request.number }}
@@ -209,7 +209,7 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Checkout
- uses: actions/checkout@v4
+ uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4
- name: Delete Virtual Cluster
uses: UffizziCloud/cluster-action@main
@@ -220,7 +220,7 @@ jobs:
# Identify comment to be updated
- name: Find comment for Ephemeral Environment
- uses: peter-evans/find-comment@v2
+ uses: peter-evans/find-comment@a54c31d7fa095754bfef525c0c8e5e5674c4b4b1 # v2
id: find-comment
with:
issue-number: ${{ needs.cache-manifests-file.outputs.pr-number }}
@@ -229,7 +229,7 @@ jobs:
direction: last
- name: Update Comment with Deletion
- uses: peter-evans/create-or-update-comment@v3
+ uses: peter-evans/create-or-update-comment@71345be0265236311c031f5c7866368bd1eff043 # v4
with:
comment-id: ${{ steps.find-comment.outputs.comment-id }}
issue-number: ${{ needs.cache-manifests-file.outputs.pr-number }}
diff --git a/.github/workflows/verify_accessibility-noop.yml b/.github/workflows/verify_accessibility-noop.yml
index 79c9962fce..07c92b5b5d 100644
--- a/.github/workflows/verify_accessibility-noop.yml
+++ b/.github/workflows/verify_accessibility-noop.yml
@@ -7,7 +7,7 @@ on:
branches: [master]
paths-ignore:
- 'lighthouserc.js'
- - '.github/workflows/verify_accessibility_core.yml'
+ - '.github/workflows/verify_accessibility.yml'
- 'plugins/catalog/src/**'
- 'plugins/catalog-react/src/**'
- 'plugins/techdocs/src/**'
@@ -26,7 +26,7 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Harden Runner
- uses: step-security/harden-runner@eb238b55efaa70779f274895e782ed17c84f2895 # v2.6.1
+ uses: step-security/harden-runner@63c24ba6bd7ba022e95695ff85de572c04a18142 # v2.7.0
with:
egress-policy: audit
diff --git a/.github/workflows/verify_accessibility.yml b/.github/workflows/verify_accessibility.yml
index 1310fc15f4..cbce7ce6ab 100644
--- a/.github/workflows/verify_accessibility.yml
+++ b/.github/workflows/verify_accessibility.yml
@@ -1,11 +1,11 @@
name: Accessibility
on:
- # NOTE: If you change these you must update verify_accessibility_core-noop.yml as well
+ # NOTE: If you change these you must update verify_accessibility-noop.yml as well
pull_request:
branches: [master]
paths:
- 'lighthouserc.js'
- - '.github/workflows/verify_accessibility_core.yml'
+ - '.github/workflows/verify_accessibility.yml'
- 'plugins/catalog/src/**'
- 'plugins/catalog-react/src/**'
- 'plugins/techdocs/src/**'
@@ -20,17 +20,17 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Harden Runner
- uses: step-security/harden-runner@eb238b55efaa70779f274895e782ed17c84f2895 # v2.6.1
+ uses: step-security/harden-runner@63c24ba6bd7ba022e95695ff85de572c04a18142 # v2.7.0
with:
egress-policy: audit
- - uses: actions/checkout@v4.1.1
+ - uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
- name: Use Node.js 18.x
- uses: actions/setup-node@v4.0.1
+ uses: actions/setup-node@60edb5dd545a775178f52524783378180af0d1f8 # v4.0.2
with:
node-version: 18.x
- name: yarn install
- uses: backstage/actions/yarn-install@v0.6.5
+ uses: backstage/actions/yarn-install@a674369920067381b450d398b27df7039b7ef635 # v0.6.5
with:
cache-prefix: ${{ runner.os }}-v18.x
- name: run Lighthouse CI
diff --git a/.github/workflows/verify_codeql.yml b/.github/workflows/verify_codeql.yml
index 6fbf516c08..4d54a73f85 100644
--- a/.github/workflows/verify_codeql.yml
+++ b/.github/workflows/verify_codeql.yml
@@ -42,12 +42,12 @@ jobs:
steps:
- name: Harden Runner
- uses: step-security/harden-runner@eb238b55efaa70779f274895e782ed17c84f2895 # v2.6.1
+ uses: step-security/harden-runner@63c24ba6bd7ba022e95695ff85de572c04a18142 # v2.7.0
with:
egress-policy: audit
- name: Checkout repository
- uses: actions/checkout@v4.1.1
+ uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
with:
# We must fetch at least the immediate parents so that if this is
# a pull request then we can checkout the head.
@@ -55,7 +55,7 @@ jobs:
# Initializes the CodeQL tools for scanning.
- name: Initialize CodeQL
- uses: github/codeql-action/init@v3.23.1
+ uses: github/codeql-action/init@e8893c57a1f3a2b659b6b55564fdfdbbd2982911 # v3.24.0
with:
languages: ${{ matrix.language }}
# If you wish to specify custom queries, you can do so here or in a config file.
@@ -66,7 +66,7 @@ jobs:
# Autobuild attempts to build any compiled languages (C/C++, C#, or Java).
# If this step fails, then you should remove it and run the build manually (see below)
- name: Autobuild
- uses: github/codeql-action/autobuild@v3.23.1
+ uses: github/codeql-action/autobuild@e8893c57a1f3a2b659b6b55564fdfdbbd2982911 # v3.24.0
# ℹ️ Command-line programs to run using the OS shell.
# 📚 https://git.io/JvXDl
@@ -80,4 +80,4 @@ jobs:
# make release
- name: Perform CodeQL Analysis
- uses: github/codeql-action/analyze@v3.23.1
+ uses: github/codeql-action/analyze@e8893c57a1f3a2b659b6b55564fdfdbbd2982911 # v3.24.0
diff --git a/.github/workflows/verify_docs-quality.yml b/.github/workflows/verify_docs-quality.yml
index d4b83ccefc..2065af00fb 100644
--- a/.github/workflows/verify_docs-quality.yml
+++ b/.github/workflows/verify_docs-quality.yml
@@ -12,11 +12,11 @@ jobs:
steps:
- name: Harden Runner
- uses: step-security/harden-runner@eb238b55efaa70779f274895e782ed17c84f2895 # v2.6.1
+ uses: step-security/harden-runner@63c24ba6bd7ba022e95695ff85de572c04a18142 # v2.7.0
with:
egress-policy: audit
- - uses: actions/checkout@v4.1.1
+ - uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
# Vale does not support file excludes, so we use the script to generate a list of files instead
# The action also does not allow args or a local config file to be passed in, so the files array
@@ -26,7 +26,7 @@ jobs:
run: echo "args=$(node scripts/check-docs-quality.js --ci-args)" >> $GITHUB_OUTPUT
- name: documentation quality check
- uses: errata-ai/vale-action@c4213d4de3d5f718b8497bd86161531c78992084 # v2.0.1
+ uses: errata-ai/vale-action@38bf078c328061f59879b347ca344a718a736018 # v2.1.0
with:
# This also contains --config=.github/vale/config.ini ... :/
files: '${{ steps.generate.outputs.args }}'
diff --git a/.github/workflows/verify_e2e-kubernetes-noop.yml b/.github/workflows/verify_e2e-kubernetes-noop.yml
index 7606f78f07..8d8b14d5ba 100644
--- a/.github/workflows/verify_e2e-kubernetes-noop.yml
+++ b/.github/workflows/verify_e2e-kubernetes-noop.yml
@@ -23,7 +23,7 @@ jobs:
name: Kubernetes ${{ matrix.node-version }}
steps:
- name: Harden Runner
- uses: step-security/harden-runner@eb238b55efaa70779f274895e782ed17c84f2895 # v2.6.1
+ uses: step-security/harden-runner@63c24ba6bd7ba022e95695ff85de572c04a18142 # v2.7.0
with:
egress-policy: audit
diff --git a/.github/workflows/verify_e2e-kubernetes.yml b/.github/workflows/verify_e2e-kubernetes.yml
index db3651cfe1..ea3146f874 100644
--- a/.github/workflows/verify_e2e-kubernetes.yml
+++ b/.github/workflows/verify_e2e-kubernetes.yml
@@ -22,20 +22,20 @@ jobs:
name: Kubernetes ${{ matrix.node-version }}
steps:
- name: Harden Runner
- uses: step-security/harden-runner@eb238b55efaa70779f274895e782ed17c84f2895 # v2.6.1
+ uses: step-security/harden-runner@63c24ba6bd7ba022e95695ff85de572c04a18142 # v2.7.0
with:
egress-policy: audit
- - uses: actions/checkout@v4.1.1
+ - uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
- name: use node.js ${{ matrix.node-version }}
- uses: actions/setup-node@v4.0.1
+ uses: actions/setup-node@60edb5dd545a775178f52524783378180af0d1f8 # v4.0.2
with:
node-version: ${{ matrix.node-version }}
registry-url: https://registry.npmjs.org/ # Needed for auth
- name: yarn install
- uses: backstage/actions/yarn-install@v0.6.5
+ uses: backstage/actions/yarn-install@a674369920067381b450d398b27df7039b7ef635 # v0.6.5
with:
cache-prefix: ${{ runner.os }}-v${{ matrix.node-version }}
diff --git a/.github/workflows/verify_e2e-linux-noop.yml b/.github/workflows/verify_e2e-linux-noop.yml
index 19b2508d27..93d48caf22 100644
--- a/.github/workflows/verify_e2e-linux-noop.yml
+++ b/.github/workflows/verify_e2e-linux-noop.yml
@@ -29,7 +29,7 @@ jobs:
name: E2E Linux ${{ matrix.node-version }}
steps:
- name: Harden Runner
- uses: step-security/harden-runner@eb238b55efaa70779f274895e782ed17c84f2895 # v2.6.1
+ uses: step-security/harden-runner@63c24ba6bd7ba022e95695ff85de572c04a18142 # v2.7.0
with:
egress-policy: audit
diff --git a/.github/workflows/verify_e2e-linux.yml b/.github/workflows/verify_e2e-linux.yml
index 0fe258b740..83efdaa38e 100644
--- a/.github/workflows/verify_e2e-linux.yml
+++ b/.github/workflows/verify_e2e-linux.yml
@@ -19,7 +19,7 @@ jobs:
services:
postgres:
- image: postgres:12
+ image: postgres:12@sha256:8ffdca6e9208aceb30653fa0cc1c38956303ace453944b54b4f71019cfe854c1
env:
POSTGRES_USER: postgres
POSTGRES_PASSWORD: postgres
@@ -41,11 +41,11 @@ jobs:
name: E2E Linux ${{ matrix.node-version }}
steps:
- name: Harden Runner
- uses: step-security/harden-runner@eb238b55efaa70779f274895e782ed17c84f2895 # v2.6.1
+ uses: step-security/harden-runner@63c24ba6bd7ba022e95695ff85de572c04a18142 # v2.7.0
with:
egress-policy: audit
- - uses: actions/checkout@v4.1.1
+ - uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
- name: Configure Git
run: |
@@ -53,12 +53,12 @@ jobs:
git config --global user.name 'GitHub e2e user'
- name: use node.js ${{ matrix.node-version }}
- uses: actions/setup-node@v4.0.1
+ uses: actions/setup-node@60edb5dd545a775178f52524783378180af0d1f8 # v4.0.2
with:
node-version: ${{ matrix.node-version }}
registry-url: https://registry.npmjs.org/ # Needed for auth
- name: yarn install
- uses: backstage/actions/yarn-install@v0.6.5
+ uses: backstage/actions/yarn-install@a674369920067381b450d398b27df7039b7ef635 # v0.6.5
with:
cache-prefix: ${{ runner.os }}-v${{ matrix.node-version }}
diff --git a/.github/workflows/verify_e2e-techdocs.yml b/.github/workflows/verify_e2e-techdocs.yml
index 6fd912d67d..0bce75f720 100644
--- a/.github/workflows/verify_e2e-techdocs.yml
+++ b/.github/workflows/verify_e2e-techdocs.yml
@@ -30,12 +30,12 @@ jobs:
name: Techdocs
steps:
- name: Harden Runner
- uses: step-security/harden-runner@eb238b55efaa70779f274895e782ed17c84f2895 # v2.6.1
+ uses: step-security/harden-runner@63c24ba6bd7ba022e95695ff85de572c04a18142 # v2.7.0
with:
egress-policy: audit
- - uses: actions/checkout@v4.1.1
- - uses: actions/setup-python@v5.0.0
+ - uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
+ - uses: actions/setup-python@0a5c61591373683505ea898e09a3ea4f39ef2b9c # v5.0.0
with:
python-version: '3.9'
diff --git a/.github/workflows/verify_e2e-windows-noop.yml b/.github/workflows/verify_e2e-windows-noop.yml
index e24f7820fe..a7ebdba4b5 100644
--- a/.github/workflows/verify_e2e-windows-noop.yml
+++ b/.github/workflows/verify_e2e-windows-noop.yml
@@ -25,7 +25,7 @@ jobs:
name: E2E Windows ${{ matrix.node-version }}
steps:
- name: Harden Runner
- uses: step-security/harden-runner@eb238b55efaa70779f274895e782ed17c84f2895 # v2.6.1
+ uses: step-security/harden-runner@63c24ba6bd7ba022e95695ff85de572c04a18142 # v2.7.0
with:
egress-policy: audit
diff --git a/.github/workflows/verify_e2e-windows.yml b/.github/workflows/verify_e2e-windows.yml
index 395dbe0b7f..ae2e7c7e99 100644
--- a/.github/workflows/verify_e2e-windows.yml
+++ b/.github/workflows/verify_e2e-windows.yml
@@ -31,7 +31,7 @@ jobs:
name: E2E Windows ${{ matrix.node-version }}
steps:
- name: Harden Runner
- uses: step-security/harden-runner@eb238b55efaa70779f274895e782ed17c84f2895 # v2.6.1
+ uses: step-security/harden-runner@63c24ba6bd7ba022e95695ff85de572c04a18142 # v2.7.0
with:
egress-policy: audit
@@ -42,7 +42,7 @@ jobs:
git config --global core.autocrlf false
git config --global core.eol lf
- - uses: actions/checkout@v4.1.1
+ - uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
- name: Configure Git
run: |
@@ -50,18 +50,18 @@ jobs:
git config --global user.name 'GitHub e2e user'
- name: use node.js ${{ matrix.node-version }}
- uses: actions/setup-node@v4.0.1
+ uses: actions/setup-node@60edb5dd545a775178f52524783378180af0d1f8 # v4.0.2
with:
node-version: ${{ matrix.node-version }}
registry-url: https://registry.npmjs.org/ # Needed for auth
- name: setup python
- uses: actions/setup-python@v5.0.0
+ uses: actions/setup-python@0a5c61591373683505ea898e09a3ea4f39ef2b9c # v5.0.0
with:
python-version: '3.10'
- name: Add msbuild to PATH
- uses: microsoft/setup-msbuild@v1.3.1
+ uses: microsoft/setup-msbuild@6fb02220983dee41ce7ae257b6f4d8f9bf5ed4ce # v2.0.0
- name: Setup gyp env
run: |
@@ -78,7 +78,7 @@ jobs:
uses: browser-actions/setup-chrome@803ef6dfb4fdf22089c9563225d95e4a515820a0 # latest
- name: yarn install
- uses: backstage/actions/yarn-install@v0.6.5
+ uses: backstage/actions/yarn-install@a674369920067381b450d398b27df7039b7ef635 # v0.6.5
with:
cache-prefix: ${{ runner.os }}-v${{ matrix.node-version }}
diff --git a/.github/workflows/verify_fossa.yml b/.github/workflows/verify_fossa.yml
index e91a04d6ed..fd555159b1 100644
--- a/.github/workflows/verify_fossa.yml
+++ b/.github/workflows/verify_fossa.yml
@@ -14,12 +14,12 @@ jobs:
steps:
- name: Harden Runner
- uses: step-security/harden-runner@eb238b55efaa70779f274895e782ed17c84f2895 # v2.6.1
+ uses: step-security/harden-runner@63c24ba6bd7ba022e95695ff85de572c04a18142 # v2.7.0
with:
egress-policy: audit
- name: Checkout
- uses: actions/checkout@v4.1.1
+ uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
- name: Install Fossa
run: "curl -H 'Cache-Control: no-cache' https://raw.githubusercontent.com/fossas/fossa-cli/master/install.sh | bash"
diff --git a/.github/workflows/verify_microsite-noop.yml b/.github/workflows/verify_microsite-noop.yml
index d730c7aba6..ad3e67ba70 100644
--- a/.github/workflows/verify_microsite-noop.yml
+++ b/.github/workflows/verify_microsite-noop.yml
@@ -21,7 +21,7 @@ jobs:
name: Microsite
steps:
- name: Harden Runner
- uses: step-security/harden-runner@eb238b55efaa70779f274895e782ed17c84f2895 # v2.6.1
+ uses: step-security/harden-runner@63c24ba6bd7ba022e95695ff85de572c04a18142 # v2.7.0
with:
egress-policy: audit
diff --git a/.github/workflows/verify_microsite.yml b/.github/workflows/verify_microsite.yml
index 5c76148b92..cee89a8ba2 100644
--- a/.github/workflows/verify_microsite.yml
+++ b/.github/workflows/verify_microsite.yml
@@ -24,14 +24,14 @@ jobs:
name: Microsite
steps:
- name: Harden Runner
- uses: step-security/harden-runner@eb238b55efaa70779f274895e782ed17c84f2895 # v2.6.1
+ uses: step-security/harden-runner@63c24ba6bd7ba022e95695ff85de572c04a18142 # v2.7.0
with:
egress-policy: audit
- - uses: actions/checkout@v4.1.1
+ - uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
- name: use node.js 18.x
- uses: actions/setup-node@v4.0.1
+ uses: actions/setup-node@60edb5dd545a775178f52524783378180af0d1f8 # v4.0.2
with:
node-version: 18.x
diff --git a/.github/workflows/verify_microsite_accessibility-noop.yml b/.github/workflows/verify_microsite_accessibility-noop.yml
new file mode 100644
index 0000000000..4b63dc41cc
--- /dev/null
+++ b/.github/workflows/verify_microsite_accessibility-noop.yml
@@ -0,0 +1,31 @@
+# NO-OP placeholder that always passes for other paths
+# This is here so that we're able to set the status check as required
+
+name: Microsite Accessibility
+on:
+ pull_request:
+ branches: [master]
+ paths-ignore:
+ - '.github/workflows/verify_microsite_accessibility.yml'
+ - 'microsite/scripts/**'
+ - 'microsite/src/**'
+ - 'microsite/data/**'
+ - 'microsite/blog/**'
+ - 'microsite/static/**'
+ - 'beps/**'
+ - 'mkdocs.yml'
+ - 'docs/**'
+permissions:
+ contents: read
+
+jobs:
+ noop:
+ name: Microsite Accessibility
+ runs-on: ubuntu-latest
+ steps:
+ - name: Harden Runner
+ uses: step-security/harden-runner@63c24ba6bd7ba022e95695ff85de572c04a18142 # v2.7.0
+ with:
+ egress-policy: audit
+
+ - run: echo NOOP
diff --git a/.github/workflows/verify_microsite_accessibility.yml b/.github/workflows/verify_microsite_accessibility.yml
new file mode 100644
index 0000000000..fa5e54905f
--- /dev/null
+++ b/.github/workflows/verify_microsite_accessibility.yml
@@ -0,0 +1,40 @@
+name: Microsite Accessibility
+on:
+ # NOTE: If you change these you must update verify_microsite_accessibility-noop.yml as well
+ pull_request:
+ branches: [master]
+ paths:
+ - '.github/workflows/verify_microsite_accessibility.yml'
+ - 'microsite/**'
+ - 'beps/**'
+ - 'mkdocs.yml'
+ - 'docs/**'
+jobs:
+ lhci:
+ name: Microsite Accessibility
+ runs-on: ubuntu-latest
+ steps:
+ - name: Harden Runner
+ uses: step-security/harden-runner@63c24ba6bd7ba022e95695ff85de572c04a18142 # v2.7.0
+ with:
+ egress-policy: audit
+
+ - uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
+
+ - name: Use Node.js 18.x
+ uses: actions/setup-node@60edb5dd545a775178f52524783378180af0d1f8 # v4.0.2
+ with:
+ node-version: 18.x
+
+ - name: top-level install
+ run: yarn install --immutable
+
+ - name: yarn install
+ run: yarn install --immutable
+ working-directory: microsite
+
+ - name: run Lighthouse CI
+ run: |
+ yarn dlx @lhci/cli@0.11.x --config=microsite/lighthouserc.js autorun
+ env:
+ GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
diff --git a/.github/workflows/verify_storybook-noop.yml b/.github/workflows/verify_storybook-noop.yml
index 3c92f0eaa2..74aed57f5c 100644
--- a/.github/workflows/verify_storybook-noop.yml
+++ b/.github/workflows/verify_storybook-noop.yml
@@ -28,7 +28,7 @@ jobs:
name: Storybook
steps:
- name: Harden Runner
- uses: step-security/harden-runner@eb238b55efaa70779f274895e782ed17c84f2895 # v2.6.1
+ uses: step-security/harden-runner@63c24ba6bd7ba022e95695ff85de572c04a18142 # v2.7.0
with:
egress-policy: audit
diff --git a/.github/workflows/verify_storybook.yml b/.github/workflows/verify_storybook.yml
index 1c3a5fd619..f8ce0b61fb 100644
--- a/.github/workflows/verify_storybook.yml
+++ b/.github/workflows/verify_storybook.yml
@@ -28,21 +28,21 @@ jobs:
name: Storybook
steps:
- name: Harden Runner
- uses: step-security/harden-runner@eb238b55efaa70779f274895e782ed17c84f2895 # v2.6.1
+ uses: step-security/harden-runner@63c24ba6bd7ba022e95695ff85de572c04a18142 # v2.7.0
with:
egress-policy: audit
- - uses: actions/checkout@v4.1.1
+ - uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
with:
fetch-depth: 0 # Required to retrieve git history
- name: use node.js ${{ matrix.node-version }}
- uses: actions/setup-node@v4.0.1
+ uses: actions/setup-node@60edb5dd545a775178f52524783378180af0d1f8 # v4.0.2
with:
node-version: ${{ matrix.node-version }}
registry-url: https://registry.npmjs.org/ # Needed for auth
- name: yarn install
- uses: backstage/actions/yarn-install@v0.6.5
+ uses: backstage/actions/yarn-install@a674369920067381b450d398b27df7039b7ef635 # v0.6.5
with:
cache-prefix: ${{ runner.os }}-v${{ matrix.node-version }}
- name: storybook yarn install
@@ -51,7 +51,7 @@ jobs:
- run: yarn build-storybook
- - uses: chromaui/action@5f2cdb26c04c0364f5c8ca3fc41627a83d6ffc8a # v10
+ - uses: chromaui/action@76bda3648003815314bd50adaa553ee612a7f36c # v10
with:
token: ${{ secrets.GITHUB_TOKEN }}
# projectToken intentionally shared to allow collaborators to run Chromatic on forks
diff --git a/.github/workflows/verify_windows.yml b/.github/workflows/verify_windows.yml
index 143b22c8b6..b035688f36 100644
--- a/.github/workflows/verify_windows.yml
+++ b/.github/workflows/verify_windows.yml
@@ -21,7 +21,7 @@ jobs:
env:
CI: true
- NODE_OPTIONS: --max-old-space-size=4096
+ NODE_OPTIONS: ${{ matrix.node-version == '20.x' && '--max-old-space-size=4096 --no-node-snapshot' || '--max-old-space-size=4096' }}
INTEGRATION_TEST_GITHUB_TOKEN: ${{ secrets.INTEGRATION_TEST_GITHUB_TOKEN }}
INTEGRATION_TEST_GITLAB_TOKEN: ${{ secrets.INTEGRATION_TEST_GITLAB_TOKEN }}
INTEGRATION_TEST_BITBUCKET_TOKEN: ${{ secrets.INTEGRATION_TEST_BITBUCKET_TOKEN }}
@@ -29,14 +29,14 @@ jobs:
steps:
- name: Harden Runner
- uses: step-security/harden-runner@eb238b55efaa70779f274895e782ed17c84f2895 # v2.6.1
+ uses: step-security/harden-runner@63c24ba6bd7ba022e95695ff85de572c04a18142 # v2.7.0
with:
egress-policy: audit
- - uses: actions/checkout@v4.1.1
+ - uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
- name: use node.js ${{ matrix.node-version }}
- uses: actions/setup-node@v4.0.1
+ uses: actions/setup-node@60edb5dd545a775178f52524783378180af0d1f8 # v4.0.2
with:
node-version: ${{ matrix.node-version }}
registry-url: https://registry.npmjs.org/ # Needed for auth
diff --git a/.gitignore b/.gitignore
index c0ef0d2001..e499faf29e 100644
--- a/.gitignore
+++ b/.gitignore
@@ -162,4 +162,7 @@ e2e-test-report/
*svg.dtmp
# Scripts
-plugins-report.csv
\ No newline at end of file
+plugins-report.csv
+
+# Temporary knip configs
+knip.json
diff --git a/.husky/pre-commit b/.husky/pre-commit
index d2ae35e84b..3723623171 100755
--- a/.husky/pre-commit
+++ b/.husky/pre-commit
@@ -1,4 +1 @@
-#!/bin/sh
-. "$(dirname "$0")/_/husky.sh"
-
yarn lint-staged
diff --git a/.prettierignore b/.prettierignore
index c54ee5d821..c561036ebb 100644
--- a/.prettierignore
+++ b/.prettierignore
@@ -6,6 +6,7 @@ coverage
templates
api-report.md
api-report-*.md
+knip-report.md
cli-report.md
plugins/scaffolder-backend/sample-templates
.vscode
diff --git a/OWNERS.md b/OWNERS.md
index 4d6fb21a80..1e92e68c40 100644
--- a/OWNERS.md
+++ b/OWNERS.md
@@ -37,14 +37,13 @@ Team: @backstage/discoverability-maintainers
Scope: Discoverability within Backstage, including the home page, information architecture, and search
-| Name | Organization | Team | GitHub | Discord |
-| ------------------------ | ------------ | ---- | ---------------------------------------- | ------------------ |
-| Avantika Iyer | Spotify | BUX | [tikabom](http://github.com/tikabom) | - |
-| Camila Belo | Spotify | BUX | [camilaibs](http://github.com/camilaibs) | Camila Loiola#0226 |
-| Emma Indal | Spotify | BUX | [emmaindal](http://github.com/emmaindal) | emmaindal#7503 |
-| Raghunandan Balachandran | Spotify | BUX | [soapraj](http://github.com/soapraj) | raghunandanb#1114 |
-| Renan Mendes Carvalho | Spotify | BUX | [aitherios](http://github.com/aitherios) | aitherios#0593 |
-| Bailey Brooks | Spotify | BUX | [bailey](http://github.com/bailey) | \_bailey4 |
+| Name | Organization | Team | GitHub | Discord |
+| ------------------------ | ------------ | -------------- | ---------------------------------------- | ----------------- |
+| Avantika Iyer | Spotify | Infinite Buck$ | [tikabom](http://github.com/tikabom) | - |
+| Emma Indal | Spotify | Infinite Buck$ | [emmaindal](http://github.com/emmaindal) | emmaindal#7503 |
+| Djamaile Rahamat | Spotify | Infinite Buck$ | [djamaile](http://github.com/djamaile) | dyoqi |
+| Raghunandan Balachandran | Spotify | Infinite Buck$ | [soapraj](http://github.com/soapraj) | raghunandanb#1114 |
+| Bailey Brooks | Spotify | Infinite Buck$ | [bailey](http://github.com/bailey) | \_bailey4 |
### Helm Charts
@@ -149,6 +148,7 @@ Scope: The Scaffolder frontend and backend plugins, and related tooling.
| Brian Fletcher | Roadie.io | [punkle](https://github.com/punkle) | `Brian Fletcher#7051` |
| Carlos Esteban Lopez Jaramillo | VMWare | [luchillo17](https://github.com/luchillo17) | `luchillo17#8777` |
| David Tuite | Roadie.io | [dtuite](https://github.com/dtuite) | `David Tuite (roadie.io)#1010` |
+| Deepankumar Loganathan | | [deepan10](https://github.com/deepan10) | `deepan10` |
| Himanshu Mishra | Harness.io | [OrkoHunter](https://github.com/OrkoHunter) | `OrkoHunter#1520` |
| Irma Solakovic | Roadie.io | [Irma12](https://github.com/Irma12) | `Irma#7629` |
| Jamie Klassen | VMware | [jamieklassen](https://github.com/jamieklassen) | `jamieklassen#3047` |
diff --git a/README-ko_kr.md b/README-ko_kr.md
index 0544304cea..e5f50bd2b8 100644
--- a/README-ko_kr.md
+++ b/README-ko_kr.md
@@ -66,7 +66,7 @@ Backstage의 문서는 다음을 포함합니다:
## License
-Copyright 2020-2023 © The Backstage Authors. All rights reserved. The Linux Foundation has registered trademarks and uses trademarks. For a list of trademarks of The Linux Foundation, please see our Trademark Usage page: https://www.linuxfoundation.org/trademark-usage
+Copyright 2020-2024 © The Backstage Authors. All rights reserved. The Linux Foundation has registered trademarks and uses trademarks. For a list of trademarks of The Linux Foundation, please see our Trademark Usage page: https://www.linuxfoundation.org/trademark-usage
Licensed under the Apache License, Version 2.0: http://www.apache.org/licenses/LICENSE-2.0
diff --git a/README-zh_Hans.md b/README-zh_Hans.md
index b1e5a16add..3e6cea4e95 100644
--- a/README-zh_Hans.md
+++ b/README-zh_Hans.md
@@ -66,7 +66,7 @@ Backstage 的文档包括:
## 许可
-版权所有 2020-2023 © Backstage 作者。版权所有。Linux 基金会已注册商标并使用商标。有关 Linux 基金会的商标列表,请参阅我们的商标使用页面:https://www.linuxfoundation.org/trademark-usage
+版权所有 2020-2024 © Backstage 作者。版权所有。Linux 基金会已注册商标并使用商标。有关 Linux 基金会的商标列表,请参阅我们的商标使用页面:https://www.linuxfoundation.org/trademark-usage
采用 Apache v2.0 许可:http://www.apache.org/licenses/LICENSE-2.0
diff --git a/README.md b/README.md
index a1c53e4c8d..f7b74adee4 100644
--- a/README.md
+++ b/README.md
@@ -66,7 +66,7 @@ To engage with our community, you can use the following resources:
## License
-Copyright 2020-2023 © The Backstage Authors. All rights reserved. The Linux Foundation has registered trademarks and uses trademarks. For a list of trademarks of The Linux Foundation, please see our Trademark Usage page: https://www.linuxfoundation.org/trademark-usage
+Copyright 2020-2024 © The Backstage Authors. All rights reserved. The Linux Foundation has registered trademarks and uses trademarks. For a list of trademarks of The Linux Foundation, please see our Trademark Usage page: https://www.linuxfoundation.org/trademark-usage
Licensed under the Apache License, Version 2.0: http://www.apache.org/licenses/LICENSE-2.0
diff --git a/beps/0001-notifications-system/README.md b/beps/0001-notifications-system/README.md
index c7b0ffff64..5b37016a10 100644
--- a/beps/0001-notifications-system/README.md
+++ b/beps/0001-notifications-system/README.md
@@ -2,7 +2,9 @@
title: Backstage Notifications System
status: provisional
authors:
- - Rugvip
+ - '@Rugvip'
+ - '@drodil'
+ - '@mareklibra'
project-areas:
- core
creation-date: 2023-01-12
@@ -76,7 +78,15 @@ In the backend the signal plugin implements a general purpose message bus for se
In the frontend the signal plugin has a persistent connection to the signal backend. This is initially implemented as a WebSocket connection, but could in the future also receive fallback mechanisms such as Server Sent Events or long polling. It is important that this connection is authenticated as we will be routing signals to specific users. The exact implementation of the authentication is not part of this proposal, but it should use whatever the outcome of the discussion in issue [#19581](https://github.com/backstage/backstage/issues/19581) is.
-In order to route signals from the sender to the intended receiver the signal plugin uses the concept of signaling channels. They are just like the topics on the message bus, but we use separate terminology in order to avoid confusion. They also sit one layer beneath the even topic in the protocol stack, where the signal channel is communicated as part of the event payload. In the frontend, the signal plugin exposes an API to subscribe to a signal channel. Each time the user receives a signal on the specified channel, a listener is called with the signal payload.
+In order to route signals from the sender to the intended recipient the signal plugin uses the concept of signaling channels. They are just like the topics on the message bus, but we use separate terminology in order to avoid confusion. They also sit one layer beneath the even topic in the protocol stack, where the signal channel is communicated as part of the event payload. In the frontend, the signal plugin exposes an API to subscribe to a signal channel. Each time the user receives a signal on the specified channel, a listener is called with the signal payload.
+
+Upon creating a new notification, a signal will be emitted by the `notification-backend`.
+
+The channel for notifications will be named `notifications` and the message will contain necessary information about the notification for rendering as well as action telling to refresh the notifications using the REST API.
+
+The notification payload must be in the signal to be able to show notification in the UI immediately after receiving the signal.
+
+If the notification status is updated, the signal service shall emit a signal without the notification payload and only with the action.
### Notifications Plugin
@@ -85,13 +95,57 @@ The role of the notifications plugin is to manage the lifecycle of notifications
The notification backend stores notification using the [database service](https://backstage.io/docs/backend-system/core-services/index#database). In particular it needs to store the following information for each notification:
- ID
-- Payload
-- Receivers
-- Read status by user
+- Read date
+- Done date
+- Saved status
+- Creation date
+- Updated date (optional, for scoped notifications)
+- Payload:
+ - Title
+ - Description (optional)
+ - Origin
+ - Link
+ - Recipients
+ - Severity (optional, default normal)
+ - Topic (optional)
+ - Scope (optional)
+ - Icon (optional)
-The receivers is **not** a list of users, but rather a filter that describes who should receive the notification. It must be possible to evaluate this filter in a database query, so that we can efficiently fetch all notifications for a given user. The same filter will also be used by the signal backend to determine which users should receive a signal.
+The recipients is **not** a list of users, but rather a filter that describes who should receive the notification. It must be possible to evaluate this filter in a database query, so that we can efficiently fetch all notifications for a given user. The same filter will also be used by the signal backend to determine which users should receive a signal.
-The notification backend does not provide any new permissions, since creating notifications can only be done by other backend plugins, while reading notifications can only be done by the authenticated user. It is possible that we want to add a permissions for reading notifications, in particular for admin and impersonation use cases, but that is not part of this proposal or the initial implementation.
+The title is mandatory human-readable text shortly describing the notifications.
+
+The description is an optional human-readable text providing more details to the user.
+
+The severity is one of the predefined values to help with presentation of the notifications or their filtering. Allowed values are: `critical`, `high`, `normal` (default), and `low`.
+
+The origin is a string identifying the creator of the notification, i.e. the BE plugin or external system.
+
+The topic is an optional string helping to group notifications of particular context. Its use cases include:
+
+- Several notifications emitted by an asynchronous external task can be grouped by a single topic
+- A backend plugin can group several related messages to a particular processing, i.e. asynchronous progress monitoring
+
+If a scope is provided for a notification, it will either:
+
+- Create a new notification if user doesn't have existing notification in that scope and origin
+- Update existing notification in that scope and origin so that it's unread considered as a new notification
+
+The idea of scope is to be able to reuse notifications about same information for example specific failing CI build.
+
+The timestamp of notification creation is auto-generated by the notifications backend at the time of receiving a request to create the notification.
+
+The icon is optional and is meant to improve UX. A string referencing an icon name from MUI icon library of a defined version. If missing, it will be determined from the severity.
+
+The link is a relative or absolute URL. As an example, it can be used:
+
+- by an external system to provide more details related to the notification
+- by an external system to request an action within an asynchronous task
+- by a BE plugin to provide link to other part of the Backstage UI (i.e. to the Catalog)
+
+The `notification-backend` does not provide any new permissions, since creating notifications can only be done by other backend plugins, while reading notifications can only be done by the authenticated user. It is possible that we want to add a permissions for reading notifications, in particular for admin and impersonation use cases, but that is not part of this proposal or the initial implementation.
+
+The `notification-backend` shall provide necessary parameters for paging and filtering notifications from the frontend.
The notification frontend plugin provides a UI for viewing notifications, which in the initial implementation can be as simple as needed. The only requirement is that a user is able to view recent notifications and distinguish between read and unread notifications. A notification as marked as read once it has been interacted with. The frontend plugin also subscribes to the notifications signal channel and alerts the user when a new notification is received.
@@ -129,89 +183,182 @@ The following backend service interfaces are added as part of this proposal.
```ts
// TODO - We may want to add an additional wrapping here with interfaces for Notification and NotificationParameters
-interface SendNotificationRequest {
- receivers: SignalReceivers;
-
- /* TODO - please contribute :) */
-}
-
-interface SendNotificationResponse {
- id: string;
- receivers: SignalReceivers;
-
- /* TODO - please contribute :) */
-}
-
-interface NotificationService {
- sendNotification(
- request: SendNotificationRequest,
- ): Promise;
-}
-```
-
-#### `SignalService`
-
-```ts
-type SignalReceivers =
+export type NotificationRecipients =
| {
type: 'entity';
- entityRef: string; // typically a user or group entity
+ entityRef: string | string[]; // typically a user or group entity, otherwise `spec.owner` of the entity/entities
}
| {
type: 'broadcast'; // all users
};
-interface Signal {
- channel: string;
- receivers: SignalReceivers;
- payload: JsonObject;
+export type NotificationSeverity = 'critical' | 'high' | 'normal' | 'low';
+
+export type NotificationPayload = {
+ title: string;
+ description?: string;
+ link: string;
+ additionalLinks?: string[];
+ severity: NotificationSeverity;
+ topic?: string;
+ scope?: string;
+ icon?: string;
+};
+
+export type Notification = {
+ id: string;
+ userRef: string;
+ created: Date;
+ saved?: Date;
+ read?: Date;
+ updated?: Date;
+ origin: string;
+ payload: NotificationPayload;
+};
+
+interface SendNotificationRequest {
+ recipients: NotificationRecipients;
+ payload: NotificationPayload;
}
-interface SignalService {
- signal(signal: Signal): Promise;
+interface NotificationService {
+ sendNotification(request: SendNotificationRequest): Promise;
}
```
+Each notification is always routed to individual users unless it's a broadcast. The `notification-backend` will figure out which users will receive a notification based on the `recipients` parameter, resolving it to the concrete list of users at the time of sending the notification.
+
+Each notification contains a `title` and a `link` for user to see further information. The `created`, `id`, `read` and `saved` properties are handled by the backend based and cannot be changed during the notification creation.
+
+Calling `sendNotification` should never throw an error so that it doesn't block the current processing. Notifications should be considered as second-level citizens that are not critical if not delivered.
+
+#### `SignalService`
+
+```ts
+export type SignalPayload = {
+ recipients: string[] | string | null;
+ channel: string;
+ message: SignalType;
+};
+
+interface SignalService {
+ publish(
+ signal: SignalPayload,
+ ): Promise;
+}
+```
+
+Example signal payload for a new notification:
+
+```json
+{
+ "action": "new_notification",
+ "notification": {
+ "title": "New notification",
+ "description": "This is the longer description of the notification",
+ "link": "/catalog"
+ }
+}
+```
+
+#### Future considerations
+
+- Add icon for the notification request (for UX purposes)
+- Broadcast messages are to be saved to a separate table for performance reasons
+- OpenAPI tooling is taken into use for the notification router and client
+
### Frontend API
+Notification frontend shows users their own notifications in its own page and the number of unread notifications in the main menu item.
+
+By default, notifications that are `undone` will be shown in the notifications view. The notification `read` status is indicated by the UI.
+
+Notifications are set to `read` when the notification link is opened or the notification is set as `done` by the user.
+
+Notifications can be set to `done` by the user, and they are filtered out of the main view.
+
+Notifications can be saved for later use by the user.
+
+Notifications can be filtered by their `read`, `done` and `saved` statuses.
+
+Notifications are displayed in pages.
+
+User can search for notifications based on their title and description.
+
The following frontend API is added as part of this proposal.
+#### `NotificationsApi`
+
+```ts
+export type NotificationType = 'undone' | 'done' | 'saved';
+
+export type GetNotificationsOptions = {
+ type?: NotificationType;
+ offset?: number;
+ limit?: number;
+ search?: string;
+};
+
+export type NotificationUpdateOptions = {
+ ids: string[];
+ done?: boolean;
+ read?: boolean;
+ saved?: boolean;
+};
+
+export type NotificationStatus = {
+ unread: number;
+ read: number;
+};
+
+interface NotificationsApi {
+ getNotifications(options?: GetNotificationsOptions): Promise;
+
+ getStatus(): Promise;
+
+ updateNotifications(
+ options: UpdateNotificationsOptions,
+ ): Promise;
+}
+```
+
#### `SignalApi`
> TODO - we likely need a slightly different approach here, since APIs are lazy loaded.
+> TODO - signal typing in https://github.com/backstage/backstage/pull/22656
+
+```ts
+export type NotificationSignal = {
+ action: string;
+ notification?: NotificationPayload;
+};
+
+const { lastSignal, isSignalsAvailable } =
+ useSignal('notifications');
+// isSignalsAvailable can be used to fallback to long-polling if wanted
+```
+
```ts
interface SignalSubscriber {
unsubscribe(): void;
}
interface SignalApi {
- subscribe(
+ subscribe(
channel: string,
- listener: (payload: JsonObject) => void,
+ onMessage: (message: SignalType) => void,
): SignalSubscriber;
}
```
-> TODO: Add payload formats and API details
+#### Future considerations
-
+- Notification frontend utilizes [Web Notification API](https://developer.mozilla.org/en-US/docs/Web/API/Notification) to notify user for new notifications
+- Unread notifications count is displayed in the title of the page
+- Configuration can be used to enable or disable features in the notification system (Web Notification API, title change, etc.)
+- Replace absent signal service with long polling. This requires changes to the `signals` plugin as well.
+- Notifications can have severity that is used to determine how notifications are shown to the user
## Release Plan
@@ -220,12 +367,12 @@ The notification and signal plugins are released as two new plugins in the Backs
For the notification plugin to reach a stable release we much reach the following:
- A stable notifications payload format.
-- A stable notifications receiver filter format.
+- A stable notifications recipient filter format.
- The event broker must have at least one implementation that supports scaled deployments.
For the signal plugin to reach a stable release we much reach the following:
-- A stable signal receiver filter format.
+- A stable signal recipient filter format.
- A stable signal channel API in the frontend.
If any changes are required to the frontend framework to facilitate the implementation of notifications or signals, these will be released as experimental alpha features. They will stay in alpha until they are deemed stable enough, which must happen before a stable release of the notifications system.
@@ -234,6 +381,8 @@ If any changes are required to the frontend framework to facilitate the implemen
Since the signal plugin relies on the event broker for communication, it is a dependency for the notifications system as a whole. The event broker does not currently implement any transport for scaled deployments, which is a requirement for scaled deployments of the notification system.
+Alternatively the notifications can work without the signals, but in this case the notifications are updated only during page refresh.
+
## Alternatives
### Signal Plugin Separation
diff --git a/beps/0002-dynamic-frontend-plugins/README.md b/beps/0002-dynamic-frontend-plugins/README.md
index fc56e74c83..6581457e06 100644
--- a/beps/0002-dynamic-frontend-plugins/README.md
+++ b/beps/0002-dynamic-frontend-plugins/README.md
@@ -37,11 +37,11 @@ When editing BEPs, aim for tightly-scoped, single-topic PRs to keep discussions
The summary of the BEP is a few paragraphs long and give a high-level overview of the features to be implemented. It should be possible to read *only* the summary and understand what the BEP is proposing to accomplish and what impact it has for users.
-->
-The dynamic frontend plugins feature is a way of loading additional frontend plugins at runtime, without the requirement of rebuilding and restarting a running backstage instance.
+The dynamic frontend plugins feature is a way of loading additional frontend plugins at runtime, without the requirement of rebuilding and restarting a running Backstage instance. It also provides a method for packaging and distributing plugins as standalone artifacts, which can be installed directly into Backstage.
-This system should significantly improve frontend plugin management for backstage instances.
+This system should significantly improve frontend plugin management for Backstage instances, and makes it possible to deploy changes to the app without rebuilding the app itself.
-The dynamic plugins leverage the declarative UI system to define what a plugin is and how it should be represented in the browser.
+The dynamic plugins leverage the declarative nature of the new frontend system to define what a plugin is and how it is integrated into the rest of the app.
## Motivation
@@ -50,6 +50,10 @@ This section is for explicitly listing the motivation, goals, and non-goals of
this BEP. Describe why the change is important and the benefits to users.
-->
+Being able to dynamically install plugins unlocks new ways of deploying and managing Backstage, and has the potential to hugely improve adoption by lowering the barrier of entry. A Backstage installation currently requires quite a lot of care to maintain, meaning it may not be worth the investment for smaller organizations. By making it possible to set up and maintain a Backstage instance without the need to manage a codebase, we can make Backstage more accessible to a wider audience.
+
+The ability to dynamically install plugins also allows for more isolated development and deployment of plugins. This can benefit organizations with large Backstage projects, where splitting the codebase into multiple smaller projects can improve development experience and autonomy.
+
### Goals
-- discover and choose tooling to enable dynamic frontend plugins
-- easy way of converting existing frontend plugins to be dynamic
-- turning on and off UI plugins at runtime without the requirement of rebuilding or restarting backstage
-- manage dynamic plugins declaratively
+The overarching goal of this proposal is to outline the full path of how frontend plugin code in a repository makes it way into an existing Backstage app. As part of this, we define the following:
-An additional goal might be exploring the scope of a "on demand" rending and loading. Currently all plugins, or at least some portion of them must be loaded at UI bootstrap. This approach is not fully dynamic and might be considered a waste of resources. Fully optimizing dynamic plugins loading would require additional changes to the new UI system.
+- **Bundling**: How plugin code is packaged into a portable artifact.
+- **Distribution**: How these artifacts are deployed or published and made available for apps to load.
+- **Loading**: How an app is able to load these artifacts from remote or local sources at runtime.
+
+Each of these may have multiple possible solutions, in particular the loading and distribution steps. This proposal should aim to provide the minimum solutions that avoids the need for each adopter to have to re-bundle open source plugins, while still making it simple to use dynamic installation for their own internal plugins.
+
+There are a couple of sub-goals that are important for this to work:
+
+- Discover and choose the underlying tooling to enable dynamic frontend plugins.
+- An easy way to package existing frontend plugins for dynamic installation.
+- Reconfiguring the installed plugins at runtime without rebuilding the app, either declaratively or through code.
### Non-Goals
@@ -71,6 +82,12 @@ What is out of scope for this BEP? Listing non-goals helps to focus discussion
and make progress.
-->
+The **integration** of installed plugins and features is not in scope for this proposal, that is the responsibility of the new frontend system.
+
+This proposal does not contain any form of visual interface for managing dynamically installed plugins. The scope of this proposal only includes configuration of dynamic plugins through static configuration and TypeScript interfaces.
+
+This proposal does not aim to make it possible to add or remove plugins into an already running frontend app instance as created by `createApp` from the Backstage core APIs. The page must be reloaded for any updates to take effect.
+
## Proposal
+
+[**Discussion Issue**](https://github.com/backstage/backstage/issues/NNNNN)
+
+- [Summary](#summary)
+- [Motivation](#motivation)
+ - [Goals](#goals)
+ - [Non-Goals](#non-goals)
+- [Proposal](#proposal)
+- [Design Details](#design-details)
+- [Release Plan](#release-plan)
+- [Dependencies](#dependencies)
+- [Alternatives](#alternatives)
+
+## Summary
+
+This proposal outlines a new architecture for authenticating users and services in Backstage. It adds built-in access restriction to Backstage instances that protects them from outside access, and enables more granular access control for inter-plugin communication and access from external services.
+
+It proposes a new `AuthService` interface that handles all user and service authentication and token management available to plugins, as well as a new `HttpAuthService` interface that is a higher level service used to protect endpoints of plugin routers. The `auth-backend` will also be extended to support issuing of user tokens with a reduced scope for cookie-based authentication of requests.
+
+The changes to the service-to-service auth are aimed to be the minimum needed to get the necessary interfaces in place, and will rely on the existing symmetrical keys for now.
+
+## Motivation
+
+This proposal aims to address several of the points in the [Auth Meta issue](https://github.com/backstage/backstage/issues/15999), with the overarching goal being to replace the existing [API request authentication](https://github.com/backstage/backstage/blob/master/contrib/docs/tutorials/authenticate-api-requests.md) tutorial in `contrib/` with a more robust and secure built-in solution. The tutorial exists for two purposes: to add authentication of API requests as part of using the permission system in Backstage, and to protect a Backstage instance from external access. It does a fairly good job of the former, although we want to avoid placing user tokens in cookies, but it does a quite poor job of the latter, which we want to fix.
+
+A secondary goal is to do this work before stabilizing the APIs in the new Backend system, as it will have some impact on how plugin backends are built. This will inevitably also lead to the need to improve the way that service-to-service auth is handled in Backstage, although that is not the primary goal of this work.
+
+By providing protection of Backstage instances out of the box we drastically reduce both the barrier of entry as well as security risks for Backstage adopters. It will no longer be a requirement to either set up protection of your Backstage instance or not do so and risk exposing your instance to malicious actors. It also drastically reduces the complexity of enabling the permission system of Backstage, since access restrictions are already built-in.
+
+### Goals
+
+The following goals are the primary focus of this BEP:
+
+- Built-in protection of Backstage instances such that it is safe to deploy Backstage directly towards the internet.
+ - Protection of the frontend app bundle from being accessed by unauthenticated users.
+ - Basic rate limiting of non-authenticated requests.
+ - Cookie-based authentication of requests for static assets that protects against CSRF attacks and does not unnecessarily expose user tokens.
+ - A solution where plugin builders need to opt-out of endpoint protection, for example allowing cookie or unauthenticated access.
+- Basic improvements to the service-to-service auth service interfaces such that we are confident that we do not need to break them in the near future.
+ - If possible we will keep using the existing symmetrical keys that are used today, but it is likely that we will need to break compatibility of existing tokens.
+ - Encapsulation of user credentials in upstream service requests, avoiding the pattern where backend plugins re-use the user token directly for their outgoing requests.
+- Separate out the ownership information out of the Backstage user tokens, since user tokens have been growing large enough to have an impact on performance and reliability.
+
+### Non-Goals
+
+- No advanced rate limiting or other protection against DDoS attacks. If this is a concern then adopters should still use other external technologies to protect access to their Backstage instance.
+- As part of the immediate work we will only add as much support for service-to-service auth as is needed for a stable API, and not necessarily make it very capable from the start.
+
+## Proposal
+
+Two new backend service interfaces are introduced to support these new features. The new `AuthService` is a low-level service that encapsulates authentication and creation of bearer tokens for all types of Backstage identities, including user, service, and services making requests on behalf of users. The new `HttpAuthService` is a higher level service that lets you access the credentials and identity of incoming requests, and issue credentials for outgoing requests. These new services replace the existing `IdentityService` and `TokenManagerService`
+
+The proposed design leaves the decision for how different endpoints are protected to the implementation of the plugin backends themselves. This includes whether particular routes should allow anonymous access, access from users authenticated via a cookie, or perhaps only allow access from other plugin backends and external services. This means that integrators do not need to - and do not have the ability to - configure access controls of individual endpoints, except for what the permission system already provides, and what is made available through static configuration or extension points.
+
+In order to allow for cookie-based authentication of incoming user requests, the `auth` plugin backend is extended to be able to issue user tokens with reduced scope, which in turn integrate with the new `AuthService` and `HttpAuthService`. The ability to use cookie auth for requests is an opt-in per route and is only be permitted for read methods (`GET`, `HEAD`, `OPTIONS`). The actual implementation of cookie-based flows will be up to each plugin, but with significant help from the new auth service interfaces.
+
+In order to allow either unauthenticated access or cookie-based access, a plugin must explicitly opt-in the specific path prefixes that these should be available at. This is done through a new method that is added to the `HttpRouterService` interface.
+
+For service-to-service communication we will move away from reusing user tokens in upstream requests. We will instead implement an "On-Behalf-Of" flow where incoming user credentials are encapsulated in a service token for the upstream request. In line with this the new auth service interfaces will aim to make it difficult to directly forward credentials from incoming requests, and instead encourage that plugin backends issue new service credentials for upstream requests.
+
+An issue that has been identified in the current auth implementation is that the user information embedded in the Backstage user tokens can grow fairly large. In order to avoid that this becomes a widespread problem, especially as we implement cookie auth with a 4kb size limit, we will remove the ownership entity refs (`ent` claim) from the user tokens. There were already very few consumers of this information in practice - only the `permission-backend` and `signal-backend` plugin packages currently rely on this information. The ownership data will instead be available via a new `UserInfoService`, owned by the `auth-backend`. The implementation of this new service will keep relying on the `ent` claim of the user token initially, but we will also implement a new `/v1/userinfo` endpoint in the `auth-backend` that will migrate to transparently in the future.
+
+## Design Details
+
+### `AuthService` Interface
+
+The new `AuthService` interface is defined as follows:
+
+```ts
+// These credential types are opaque and will also store some internal information, for example bearer tokens
+
+export type BackstageUserCredentials = {
+ $$type: '@backstage/BackstageCredentials';
+
+ type: 'user';
+
+ userEntityRef: string;
+};
+
+export type BackstageServiceCredentials = {
+ $$type: '@backstage/BackstageCredentials';
+
+ type: 'service';
+
+ // Exact format TBD, possibly 'plugin:' or 'external:'
+ subject: string;
+
+ // Not implemented in the first iteration, but this is how we might extend this in the future
+ permissions?: string[];
+};
+
+type BackstageCredentials =
+ | BackstageUserCredentials
+ | BackstageServiceCredentials;
+
+export interface AuthService {
+ authenticate(token: string): Promise;
+
+ // TODO: should the caller provide the target plugin ID?
+ // TODO: how can we make it very difficult to forget to forward credentials
+ issueToken(options: {
+ forward?: BackstageCredentials;
+ }): Promise<{ token: string }>;
+}
+```
+
+### `UserInfoService` Interface
+
+The new `UserInfoService` interface is defined as follows:
+
+```ts
+export interface UserInfoService {
+ getUserInfo(
+ credentials: BackstageUserCredentials,
+ ): Promise<{ ownershipEntityRefs: string[] /* profile info too? */ }>;
+}
+```
+
+The `UserInfoService` is exported by `@backstage/auth-node`, and the initial implementation will simply read the ownership refs from the `ent` claim of the underlying token of the user credentials. The next iteration will instead call the `/v1/userinfo` endpoint of the `auth-backend`, once that has been implemented.
+
+### `HttpRouterService` Interface
+
+> Open question: Should this instead be added to the `HttpAuthService`? It may fit a bit better there, but on the other hand it might make sense to add additional policies unrelated to authentication too, such as rate limiting.
+
+The `HttpRouterService` interface will be extended with the ability to opt-out of the default protection of endpoints, enabling either cookie auth or unauthenticated access.
+
+```ts
+export interface HttpRouterServiceAuthPolicy {
+ // The path matches in the same way as if it was passed to `express.Router.use(path, ...)`
+ path: string;
+ allow: 'unauthenticated' | 'user-cookie';
+}
+
+export interface HttpRouterService {
+ // All routes only allow authenticated users and services by default.
+ use(handler: Handler): void;
+
+ // These are additive and the most relaxed access level takes precedence
+ addAuthPolicy(policy: HttpRouterServiceAuthPolicy): void;
+}
+```
+
+### `HttpRouterService` Usage Patterns
+
+All of these usages patterns are from the perspective of a plugin backend.
+
+#### Standard plugin that only allows access from authenticated users and services
+
+```ts
+export default createBackendPlugin({
+ pluginId: 'todo',
+ register(env) {
+ env.registerInit({
+ deps: {
+ http: coreServices.httpRouter,
+ },
+ async init({ http }) {
+ http.use(await createRouter(/* ... */));
+ },
+ });
+ },
+});
+```
+
+This is expected to be the pattern for the vast majority of plugins.
+
+#### A plugin with an endpoint that only allows cookie auth
+
+```ts
+export default createBackendPlugin({
+ pluginId: 'techdocs',
+ register(env) {
+ env.registerInit({
+ deps: {
+ http: coreServices.httpRouter,
+ },
+ async init({ http }) {
+ // The order of these two calls does not matter
+ http.use(await createRouter(/* ... */));
+ http.addAuthPolicy({
+ path: '/static',
+ allow: 'user-cookie',
+ });
+ },
+ });
+ },
+});
+```
+
+#### A plugin that allows both public access and cookie auth
+
+```ts
+export default createBackendPlugin({
+ pluginId: 'app',
+ register(env) {
+ env.registerInit({
+ deps: {
+ http: coreServices.httpRouter,
+ },
+ async init({ http }) {
+ http.use(await createRouter(/* ... */));
+
+ http.addAuthPolicy({
+ path: '/',
+ allow: 'user-cookie',
+ });
+
+ // Unauthenticated access takes precedence, the /public endpoint does not require cookie auth
+ http.addAuthPolicy({
+ path: '/public',
+ allow: 'unauthenticated',
+ });
+ },
+ });
+ },
+});
+```
+
+### `HttpAuthService` Interface
+
+The new `HttpAuthService` interface is defined as follows:
+
+```ts
+export type BackstageUnauthorizedCredentials = {
+ $$type: '@backstage/BackstageCredentials';
+
+ type: 'unauthorized';
+};
+
+type BackstageCredentialTypes = {
+ user: BackstageUserCredentials;
+ 'user-cookie': BackstageUserCredentials;
+ service: BackstageServiceCredentials;
+ unauthorized: BackstageUnauthorizedCredentials;
+};
+
+export interface HttpAuthService {
+ // Implementations should cache resolved credentials on the request object
+ credentials(
+ req: Request,
+ options?: HttpAuthServiceMiddlewareOptions,
+ ): Promise;
+
+ requestHeaders(options?: {
+ forward?: BackstageCredentials;
+ }): Promise>;
+
+ issueUserCookie(res: Response): Promise;
+}
+```
+
+### `AuthService`, `HttpAuthService` and `UserInfoService` Usage Patterns
+
+All of these usages patterns are from the perspective of a plugin backend.
+
+#### Authenticate incoming request that requires user authentication
+
+```ts
+// All routes only allow authenticated users and services by default.
+router.get('/read-data', (req, res) => {
+ const credentials = await httpAuth.credentials(req, { allow: ['user'] }); // throws if not: user (or obo), user-cookie
+ const { ownershipEntityRefs } = await userInfo.getUserInfo(credentials);
+ console.log(
+ `User ref=${credentials.userEntityRef} ownership=${ownershipEntityRefs} claims=${credentials.extraClaims}`,
+ );
+ // ...
+});
+```
+
+#### Forward the user credentials from an incoming requests to upstream plugin backend
+
+```ts
+class CatalogIntegration {
+ async getEntity(
+ res: string,
+ options: {
+ credentials: BackstageUserCredentials | BackstageServiceCredentials;
+ },
+ ) {
+ return catalogClient.getEntityByRef(req.params.entityRef, {
+ token: await auth.issueToken({
+ forward: options.credentials,
+ }),
+ });
+ }
+}
+
+// Earlier in the router setup
+const catalogIntegration = new CatalogIntegration();
+
+router.get('/read-data', (req, res) => {
+ // The catalogClient will have a reference to the (plugin scoped) HttpAuthService,
+ // which it uses to create the credential headers for the upstream request.
+ const entity = await catalogClient.getEntityByRef(req.params.entityRef, {
+ credentials: httpAuth.forwardCredentials(req, {
+ dangerouslyAllowUnauthenticated: true,
+ }),
+ });
+
+ // TODO: try this out in more places in plugins
+ const entity = await catalogIntegration.getEntity(req.params.entityRef, {
+ credentials: await httpAuth.credentials(req),
+ });
+ // ...
+});
+```
+
+#### Allow both user and service request
+
+```ts
+router.get('/read-data', (req, res) => {
+ const credentials = await httpAuth.credentials(req, {
+ allow: ['user', 'service'],
+ });
+ if (credentials.type === 'user') {
+ res.json(todoStore.listOwnedTodos({ owner: credentials.userEntityRef }));
+ } else {
+ res.json(
+ todoStore.listTodos({
+ serviceId: credentials.subject,
+ }),
+ );
+ }
+});
+```
+
+#### Issuing a cookie and allowing user cookie auth on a separate endpoint
+
+```ts
+router.get('/cookie', async (req, res) => {
+ await httpAuth.issueUserCookie(res); // If this is a service call it'll throw
+ res.json({ ok: true });
+});
+
+// Allowing cookie auth is a separate step where you call the addAuthPolicy method
+// of the httpRouter API in your plugin setup code.
+httpRouter.addAuthPolicy({
+ path: '/static',
+ allow: 'user-cookie',
+});
+
+// Separate endpoint that serves static content, allowing user cookie auth as
+// well as the default user and service auth methods
+router.use('/static', express.static(staticContentDir));
+```
+
+#### Passing along user identity from a cookie in an upstream request
+
+```ts
+router.get(
+ '/read-data',
+ httpAuth.middleware({ allow: ['user-cookie'] }),
+ (req, res) => {
+ // These credentials don't actually contain an underlying user token for cookie-authed requests
+ // If you try to pass them to the AuthService, it'll throw.
+ const credentials = await httpAuth.credentials(req, { allow: ['user'] });
+ const { ownershipEntityRefs } = await userInfo.getUserInfo(credentials);
+ console.log(
+ `User ref=${credentials.userEntityRef} ownership=${ownershipEntityRefs}`,
+ );
+ // ...
+ },
+);
+```
+
+## Release Plan
+
+The existing `IdentityService` and `TokenManagerService` will be deprecated and instead implemented in terms of the new `AuthService`.
+
+The release plan for the `HttpAuthService` is TBD, but is likely to be shipped as a no-op for plugins using the old backend system. The goal is for all plugins using the new backend system to have endpoint security be opt-out, which will be a breaking change.
+
+### Implementation Tasks
+
+- [ ] Implement `AuthService`
+- [ ] Implement `HttpAuthService` - leave cookie auth as unimplemented for now
+- [ ] Add `addAuthPolicy()` for `HttpRouterService`, using `HttpAuthService`
+- [ ] Implement a compatibility wrapper in `backend-common` that accepts `AuthService`, `HttpAuthService`, `IdentityService`, and `TokenManagerService` (all optional), and returns implementations for `AuthService` and `HttpAuthService`, such hat existing plugins can use a single `createRouter` implementation for both the old and new backend systems.
+- [ ] Implement `UserInfoService` in `@backstage/auth-node` - for now it will just extract the ownership entity refs from the token stored in the credentials
+- [ ] Implement cookie auth in `HttpAuthService` - just put the user token in the cookie for now
+- [ ] Deprecate `IdentityService` and `TokenManagerService`, switch to using default factories that depend on the `AuthService` and `HttpAuthService`. Stop supplying implementations for these in `backend-defaults` and `backend-test-utils`
+- [ ] Migrate plugins:
+ - [ ] Permission backend
+ - [ ] TechDocs backend
+ - [ ] App backend
+
+## Dependencies
+
+No significant dependencies have been identified for this work, although any future security audits of Backstage are considered dependent on this work.
+
+## Alternatives
+
+An alternative to built-in protection from external access would be to keep relying on external mechanisms to protect access to Backstage. We feel that this is a suboptimal solution since it adds complexity to the adoption of Backstage, and increases the risk of misconfiguration and security breaches. Regardless of whether we add built-in protection or not the ability to protect API endpoints needs to be addressed in some way, since it is a requirement for the permission system to work. This means that the extra steps to ensure protection out of the box are fairly minimal when looking at just the delta for protecting API access.
+
+### Access Control Patterns
+
+These are the different patterns that we've considered for how plugins should control access to their endpoints.
+
+#### Separate methods / configuration for `use`
+
+This approach extends the `HttpRouterService` with separate methods or options for specifying the access control for different handlers.
+
+Pros:
+
+- We can make strict access control the default, making relaxed controls an opt-in
+- The routing setup is quite explicit in what handlers allow for what access levels
+
+Cons:
+
+- Forces separation of the router, splitting it into separate handlers for different levels of access.
+- Can be extremely confusing because the top-level middleware for more lax access will also apply to the more strict access levels. For example
+
+ ```ts
+ const cookieRouter = Router();
+ cookieRouter.use(rateLimit());
+ http.useWithCookieAuthentication(cookieRouter);
+
+ const mainRouter = Router();
+ // rateLimit() will apply here too
+ http.use(mainRouter);
+ ```
+
+This applied to any similar way of structuring this API, such as a single `.use()` method with additional options:
+
+```ts
+http.use(cookieRouter, { allow: ['user-cookie'] });
+```
+
+#### Separate configuration on different paths for `use`
+
+Similar to the previous approach, but also require that a path is provided. This removes much of the confusion around what middleware are applied.
+
+The downside of this approach is that it still has the drawback of forcing a separation of the router, but at the same it provides very little benefit over a top-level path configuration approach like `http.addAuthPolicy()`. The `'/static'` path in the below example essentially has the exact same logic as `.addAuthPolicy({ path: '/static', allow: 'user-cookie' })` since it'd be implemented in the same way. The `.addAuthPolicy()` approach has the benefit of allowing plugin authors to decide whether they want to keep the routes separate or not.
+
+This does have the benefit of letting the framework know which exact routes are protected, which can be useful for introspection, although that benefit also applies to the `.addAuthPolicy()` approach.
+
+```ts
+// This isn't too bad, but it's extremely similar to the addAuthPolicy() method since
+// we're just matching on the path. The benefit of addAuthPolicy is that it allows you
+// to keep everything in a singe router if desired.
+http.use('/static', cookieRouter, { allow: ['user-cookie'] });
+```
+
+#### Complete opt-out
+
+This approach simply enabled plugins to opt-out of the default access control, and instead require that they implement the necessary endpoint protection using `httpAuth.middleware()`.
+
+This approach makes it a bit easier to make mistakes compared to the `.configure()` approach, but at the same time it has the benefit of collection all access control login in a single place (the plugin router). It also doesn't allow the framework to see which endpoints have relaxed protection, which is a downside.
+
+Still, this is a pattern that is currently second in line if we don't go with the `.configure()` approach.
+
+```ts
+http.dangerouslyDisableAuthentication();
+```
+
+#### Leave access control to the plugin router
+
+Having strict access control be the default with explicit opt-out is an explicit goal of this work, so this is not an option that we are considering.
diff --git a/contrib/.devcontainer/Dockerfile b/contrib/.devcontainer/Dockerfile
index 6407aa26dd..5c21c73acc 100644
--- a/contrib/.devcontainer/Dockerfile
+++ b/contrib/.devcontainer/Dockerfile
@@ -1,4 +1,4 @@
-FROM mcr.microsoft.com/devcontainers/typescript-node:20
+FROM mcr.microsoft.com/devcontainers/typescript-node:20@sha256:381a1fde32704f229b439ade94816d5619f710e35698982ec35afcd9384ae6cf
RUN apt-get update && export DEBIAN_FRONTEND=noninteractive \
&& apt-get -y install chromium \
diff --git a/contrib/docker/frontend-with-nginx/Dockerfile.dockerbuild b/contrib/docker/frontend-with-nginx/Dockerfile.dockerbuild
index 053b4fb492..96edc80a77 100644
--- a/contrib/docker/frontend-with-nginx/Dockerfile.dockerbuild
+++ b/contrib/docker/frontend-with-nginx/Dockerfile.dockerbuild
@@ -46,7 +46,7 @@ RUN yarn workspace app build
-FROM nginx:mainline
+FROM nginx:mainline@sha256:84c52dfd55c467e12ef85cad6a252c0990564f03c4850799bf41dd738738691f
RUN apt-get update && apt-get -y install jq && rm -rf /var/lib/apt/lists/*
diff --git a/contrib/docker/frontend-with-nginx/Dockerfile.hostbuild b/contrib/docker/frontend-with-nginx/Dockerfile.hostbuild
index f0fa4a034b..c29b0c1516 100644
--- a/contrib/docker/frontend-with-nginx/Dockerfile.hostbuild
+++ b/contrib/docker/frontend-with-nginx/Dockerfile.hostbuild
@@ -27,7 +27,7 @@
-FROM nginx:mainline
+FROM nginx:mainline@sha256:84c52dfd55c467e12ef85cad6a252c0990564f03c4850799bf41dd738738691f
RUN apt-get update && apt-get -y install jq && rm -rf /var/lib/apt/lists/*
diff --git a/contrib/docs/tutorials/authenticate-api-requests.md b/contrib/docs/tutorials/authenticate-api-requests.md
index 4c44c8ae65..8b71151ee9 100644
--- a/contrib/docs/tutorials/authenticate-api-requests.md
+++ b/contrib/docs/tutorials/authenticate-api-requests.md
@@ -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`:
diff --git a/contrib/docs/tutorials/help-im-behind-a-corporate-proxy.md b/contrib/docs/tutorials/help-im-behind-a-corporate-proxy.md
index 9ec3f1ca64..deef356d84 100644
--- a/contrib/docs/tutorials/help-im-behind-a-corporate-proxy.md
+++ b/contrib/docs/tutorials/help-im-behind-a-corporate-proxy.md
@@ -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`
diff --git a/docs/auth/glossary.md b/docs/auth/glossary.md
deleted file mode 100644
index ad7ae78d19..0000000000
--- a/docs/auth/glossary.md
+++ /dev/null
@@ -1,30 +0,0 @@
----
-id: glossary
-title: Glossary
-description: All Glossaries related to auth
----
-
-- **Popup** - A separate browser window opened on top of the previous one.
-- **OAuth** - More specifically OAuth 2.0, a standard protocol for
- authorization. See [oauth.net/2/](https://oauth.net/2/).
-- **OpenID Connect** - A layer on top of OAuth which standardises
- authentication. See
- [en.wikipedia.org/wiki/OpenID_Connect](https://en.wikipedia.org/wiki/OpenID_Connect).
-- **JWT** - JSON Web Token, a popular JSON based token format that is commonly
- encrypted and/or signed, see
- [en.wikipedia.org/wiki/JSON_Web_Token](https://en.wikipedia.org/wiki/JSON_Web_Token)
-- **Scope** - A string that describes a certain type of access that can be
- granted to a user using OAuth.
-- **Access token** - A token that gives access to perform actions on behalf of a
- user. It will commonly have a short expiry time, and be limited to a set of
- scopes. Part of the OAuth protocol.
-- **ID token** - A JWT used to prove a user's identity, containing for example
- the user's email. Part of OpenID Connect.
-- **Offline access** - OAuth flow that results in both a refresh and access
- token, where the refresh token has a long expiration or never expires, and can
- be used to request more access tokens in the future. This lets the user go
- "offline" with respect to the token issuer, but still be able to request more
- tokens at a later time without further direct interaction for the user.
-- **Code grant** - OAuth flow where the client receives an authorization code
- that is passed to the backend to be exchanged for an access token and possibly
- refresh token.
diff --git a/docs/auth/index.md b/docs/auth/index.md
index 806cda0ff7..f6282264e4 100644
--- a/docs/auth/index.md
+++ b/docs/auth/index.md
@@ -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
diff --git a/docs/auth/vmware-cloud/provider.md b/docs/auth/vmware-cloud/provider.md
new file mode 100644
index 0000000000..20115f9e75
--- /dev/null
+++ b/docs/auth/vmware-cloud/provider.md
@@ -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 {
+ 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 => (
+
+ ),
+ },
+ /* 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.
diff --git a/docs/backend-system/building-backends/08-migrating.md b/docs/backend-system/building-backends/08-migrating.md
index fc1a6f1859..9eada30ef6 100644
--- a/docs/backend-system/building-backends/08-migrating.md
+++ b/docs/backend-system/building-backends/08-migrating.md
@@ -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
diff --git a/docs/conf/writing.md b/docs/conf/writing.md
index aef9620373..e0eb72f828 100644
--- a/docs/conf/writing.md
+++ b/docs/conf/writing.md
@@ -220,6 +220,8 @@ clientSecret: someGithubAppClientSecret
webhookSecret: someWebhookSecret
privateKey: |
-----BEGIN RSA PRIVATE KEY-----
- SomeRsaPrivateKey
+ SomeRsaPrivateKeySecurelyStored
-----END RSA PRIVATE KEY-----
```
+
+**Warning: Sensitive information, such as private keys, should not be hard coded**. We recommend that this entire file should be a secret and stored as such in a secure storage solution like Vault, to ensure they are neither exposed nor misused. This example key part only shows the format on how to use the yaml | syntax to make sure that the key is valid.
diff --git a/docs/features/kubernetes/installation.md b/docs/features/kubernetes/installation.md
index 5111b5ad2e..bdd14098ff 100644
--- a/docs/features/kubernetes/installation.md
+++ b/docs/features/kubernetes/installation.md
@@ -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
diff --git a/docs/features/search/getting-started.md b/docs/features/search/getting-started.md
index 1787189e91..7989b60ae2 100644
--- a/docs/features/search/getting-started.md
+++ b/docs/features/search/getting-started.md
@@ -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
diff --git a/docs/features/software-catalog/api.md b/docs/features/software-catalog/api.md
index 3ab3c0df96..46f32e9064 100644
--- a/docs/features/software-catalog/api.md
+++ b/docs/features/software-catalog/api.md
@@ -474,6 +474,34 @@ Response type is JSON, on the form
]
```
+### `GET /locations/{id}`
+
+Gets a location by it's location ID.
+
+Response type is JSON, on the form
+
+```json
+{
+ "id": "b9784c38-7118-472f-9e22-5638fc73bab0",
+ "target": "https://git.example.com/example-project/example-repository/blob/main/catalog-info.yaml",
+ "type": "url"
+}
+```
+
+### `GET /locations/by-entity/{kind}/{namespace}/{name}`
+
+Gets a location referring to a given entity.
+
+Response type is JSON, on the form
+
+```json
+{
+ "id": "b9784c38-7118-472f-9e22-5638fc73bab0",
+ "target": "https://git.example.com/example-project/example-repository/blob/main/catalog-info.yaml",
+ "type": "url"
+}
+```
+
### `POST /locations`
Adds a location to be ingested by the catalog.
diff --git a/docs/features/software-catalog/index.md b/docs/features/software-catalog/index.md
index 0596d64ee4..ae3a4ef4c2 100644
--- a/docs/features/software-catalog/index.md
+++ b/docs/features/software-catalog/index.md
@@ -36,7 +36,7 @@ The Software Catalog is available to browse at `/catalog`. If you've followed
[Getting Started with Backstage](../../getting-started), you should be able to
browse the catalog at `http://localhost:3000`.
-
+
## Adding components to the catalog
@@ -55,7 +55,7 @@ There are 3 ways to add components to the catalog:
Users can register new components by going to `/create` and clicking the
**REGISTER EXISTING COMPONENT** button:
-
+
Backstage expects the full URL to the YAML in your source control. Example:
@@ -66,7 +66,7 @@ https://github.com/backstage/backstage/blob/master/packages/catalog-model/exampl
_More examples can be found
[here](https://github.com/backstage/backstage/tree/master/packages/catalog-model/examples)._
-
+
It is important to note that any kind of software can be registered in
Backstage. Even if the software is not maintained by your company (SaaS
@@ -100,7 +100,7 @@ More information about catalog configuration can be found
Teams owning the components are responsible for maintaining the metadata about
them, and do so using their normal Git workflow.
-
+
Once the change has been merged, Backstage will automatically show the updated
metadata in the software catalog after a short while.
@@ -112,14 +112,14 @@ in user. But you can also switch to _All_ to see all the components across your
company's software ecosystem. Basic inline _search_ and _column filtering_ makes
it easy to browse a big set of components.
-
+
## Starring components
For easy and quick access to components you visit frequently, Backstage supports
_starring_ of components:
-
+
## Integrated tooling through plugins
@@ -130,7 +130,7 @@ infrastructure UIs (and incurring additional cognitive overhead each time they
make a context switch), most of these tools can be organized around the entities
in the catalog.
-
+
The Backstage platform can be customized by incorporating
[existing open source plugins](https://github.com/backstage/backstage/tree/master/plugins),
diff --git a/docs/features/software-templates/writing-custom-step-layouts.md b/docs/features/software-templates/writing-custom-step-layouts.md
index b965f60f6b..d3c7c8fe82 100644
--- a/docs/features/software-templates/writing-custom-step-layouts.md
+++ b/docs/features/software-templates/writing-custom-step-layouts.md
@@ -20,11 +20,11 @@ The [createScaffolderLayout](https://backstage.io/docs/reference/plugin-scaffold
```ts
import React from 'react';
+import { scaffolderPlugin } from '@backstage/plugin-scaffolder';
import {
createScaffolderLayout,
LayoutTemplate,
- scaffolderPlugin,
-} from '@backstage/plugin-scaffolder';
+} from '@backstage/plugin-scaffolder-react';
import { Grid } from '@material-ui/core';
const TwoColumn: LayoutTemplate = ({ properties, description, title }) => {
diff --git a/docs/features/software-templates/writing-templates.md b/docs/features/software-templates/writing-templates.md
index 35458446c2..ad542ba4a3 100644
--- a/docs/features/software-templates/writing-templates.md
+++ b/docs/features/software-templates/writing-templates.md
@@ -274,35 +274,6 @@ spec:
password: ${{ secrets.password }}
```
-### Hide or mask sensitive data on Review step
-
-> Note: this approach is soon to be deprecated, please mark things as secret by using the `Secret` field extension instead as mentioned above.
-
-Sometimes, specially in custom fields, you collect some data on Create form that
-must not be shown to the user on Review step. To hide or mask this data, you can
-use `ui:widget: password` or set some properties of `ui:backstage`:
-
-```yaml
-- title: Hide or mask values
- properties:
- password:
- title: Password
- type: string
- ui:widget: password # will print '******' as value for property 'password' on Review Step
- masked:
- title: Masked
- type: string
- ui:backstage:
- review:
- mask: '' # will print '' as value for property 'Masked' on Review Step
- hidden:
- title: Hidden
- type: string
- ui:backstage:
- review:
- show: false # won't print any info about 'hidden' property on Review Step
-```
-
### Custom step layouts
If you find that the default layout of the form used in a particular step does not meet your needs then you can supply your own [custom step layout](./writing-custom-step-layouts.md).
diff --git a/docs/features/techdocs/addons.md b/docs/features/techdocs/addons.md
index 2e17891917..471e62a57f 100644
--- a/docs/features/techdocs/addons.md
+++ b/docs/features/techdocs/addons.md
@@ -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
diff --git a/docs/features/techdocs/getting-started.md b/docs/features/techdocs/getting-started.md
index f798384697..eaa6c2de72 100644
--- a/docs/features/techdocs/getting-started.md
+++ b/docs/features/techdocs/getting-started.md
@@ -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
diff --git a/docs/frontend-system/architecture/03-extensions.md b/docs/frontend-system/architecture/03-extensions.md
index 6d86415817..061c695abb 100644
--- a/docs/frontend-system/architecture/03-extensions.md
+++ b/docs/frontend-system/architecture/03-extensions.md
@@ -81,8 +81,6 @@ const extension = createExtension({
Note that while the `createExtension` is public API and used in many places, it is not typically what you use when building plugins and features. Instead there are many extension creator functions exported by both the core APIs and plugins that make it easier to create extensions for more specific usages.
-... TODO ...
-
## Extension Data
Communication between extensions happens in one direction, from one child extension through the attachment point to its parent. The child extension outputs data which is then passed as inputs to the parent extension. This data is called Extension Data, where the shape of each individual piece of data is described by an Extension Data Reference. These references are created separately from the extensions themselves, and can be shared across multiple different kinds of extensions. Each reference consists of an ID and a TypeScript type that the data needs to conform to, and represents one type of data that can be shared between extensions.
@@ -114,7 +112,7 @@ const extension = createExtension({
### Extension Data Uniqueness
-Note that the key used in the output map, in this case `element`, is only used internally within the definition of the extension itself. That actual identifier for the data when consumed by other extensions is the ID of the reference, in this case `core.reactElement`. This means that you can not output multiple different values for the same extension data reference, as they would conflict with each other. That in turn makes overly generic extension data references a bad idea, for example a generic "string" type. Instead create separate references for each type of data that you want to share.
+Note that the key used in the output map, in this case `element`, is only used internally within the definition of the extension itself. That actual identifier for the data when consumed by other extensions is the ID of the reference, in this case [`core.reactElement`](https://github.com/backstage/backstage/blob/916da47e8abdb880877daa18881eb8fdbb33e70a/packages/frontend-plugin-api/src/wiring/coreExtensionData.ts#L23). This means that you can not output multiple different values for the same extension data reference, as they would conflict with each other. That in turn makes overly generic extension data references a bad idea, for example a generic "string" type. Instead create separate references for each type of data that you want to share.
```tsx
const extension = createExtension({
@@ -137,7 +135,7 @@ const extension = createExtension({
We provide default `coreExtensionData`, which provides commonly used `ExtensionDataRef`s - e.g. for `React.JSX.Element` and `RouteRef`. They can be used when creating your own extension. For example, the React Element extension data that we defined above is already provided as `coreExtensionData.reactElement`.
-
+For a full list and explanations of all types of core extension data, see the [core extension data reference](../building-plugins/04-built-in-data-refs.md).
### Optional Extension Data
@@ -160,7 +158,7 @@ const extension = createExtension({
## Extension Inputs
-The Extension Data can be passed up to other extensions through their extension inputs. Similar to the outputs seen before, let's create an example an extension with a extension input:
+The Extension Data can be passed up to other extensions through their extension inputs. Similar to the outputs seen before, let's create an example of an extension with a extension input:
```tsx
const navigationExtension = createExtension({
@@ -254,7 +252,7 @@ With the `inputs` not only the `output` of an extensions item is passed to the e
## Extension Configuration
-With the `app-config.yaml` there is already the option to pass configuration to plugins or the app to e.g. define the `baseURL` of your app. For extensions this concept would be limiting as an extension can be independent of the plugin & initiated several times. Therefor we created a possibility to configure each extension individually through config. The extension config schema is created using the [`zod`](https://zod.dev/) library, which in addition to TypeScript type checking also provides runtime validation and coercion. If we continue with the example of the `navigationExtension` and now want it to contain a configurable title, we could make it available like the following:
+With the `app-config.yaml` there is already the option to pass configuration to plugins or the app to e.g. define the `baseURL` of your app. For extensions this concept would be limiting as an extension can be independent of the plugin & initiated several times. Therefore we created a possibility to configure each extension individually through config. The extension config schema is created using the [`zod`](https://zod.dev/) library, which in addition to TypeScript type checking also provides runtime validation and coercion. If we continue with the example of the `navigationExtension` and now want it to contain a configurable title, we could make it available like the following:
```tsx
const navigationExtension = createExtension({
@@ -297,7 +295,7 @@ app:
With creating an extension by using `createExtension(...)` you have the advantage that the extension can be anything in your Backstage application. We realised that this comes with the trade-off of having to repeat boilerplate code for similar building blocks. Here extension creators come into play for covering common building blocks in Backstage like pages using `createPageExtension`, themes using the `createThemeExtension` or items for the navigation using `createNavItemExtension`.
-If we follow the example from above all items of the navigation have similarities, like they all want to be attached to the same extension with the same input as well as rendering the same navigation item component. Therefor `createExtension` can be abstracted for this use case to `createNavItemExtension` and if we add the extension to the app it will end up in the right place & looks like we expect a navigation item to look.
+If we follow the example from above all items of the navigation have similarities, like they all want to be attached to the same extension with the same input as well as rendering the same navigation item component. Therefore `createExtension` can be abstracted for this use case to `createNavItemExtension` and if we add the extension to the app it will end up in the right place & looks like we expect a navigation item to look.
```tsx
export const HomeNavIcon = createNavItemExtension({
diff --git a/docs/frontend-system/architecture/06-utility-apis.md b/docs/frontend-system/architecture/06-utility-apis.md
index fe714793d7..49e5854b65 100644
--- a/docs/frontend-system/architecture/06-utility-apis.md
+++ b/docs/frontend-system/architecture/06-utility-apis.md
@@ -14,7 +14,7 @@ Utility APIs are pieces of standalone functionality, interfaces that can be requ
A common example of a utility API is a client interface to interact with the backend part of a plugin, such as the catalog client. Any frontend plugin can then request an implementation of that interface to make requests through.
-The following diagram shows a hypothetical application, which depends on two plugins and also provides some extra overrides. Note that both the plugins and the core framework provide utility APIs, and that they depended on each other. The app also chooses to use its overrides mechanism to supply a replacement implementation of one API, which takes precedence over the default one. Thus, all consumers of that API will be sure to get that new implementation provided to them.
+The following diagram shows a hypothetical application, which depends on two plugins and also provides some extra overrides. Note that both the plugins and the core framework provide utility APIs, and that they depend on each other. The app also chooses to use its overrides mechanism to supply a replacement implementation of one API, which takes precedence over the default one. Thus, all consumers of that API will be sure to get that new implementation provided to them.

diff --git a/docs/frontend-system/architecture/07-routes.md b/docs/frontend-system/architecture/07-routes.md
index 11586573be..7fb053aa56 100644
--- a/docs/frontend-system/architecture/07-routes.md
+++ b/docs/frontend-system/architecture/07-routes.md
@@ -66,7 +66,7 @@ export default createPlugin({
});
```
-In the example above we associated the `indexRouteRef` with the `catalogIndexPage` extension and provided both the route ref and page via the Catalog plugin. So, When this plugin is installed in the app, the index page will become associated with the newly created `RouteRef`, making it possible to use the route ref to navigate the page extension.
+In the example above we associated the `indexRouteRef` with the `catalogIndexPage` extension and provided both the route ref and page via the Catalog plugin. So, when this plugin is installed in the app, the index page will become associated with the newly created `RouteRef`, making it possible to use the route ref to navigate the page extension.
It may seem unclear why we configure the `routes` option when creating a plugin as the route has already been passed to the extension. We do that to make it possible for other plugins to route to our page, which is explained in detail in the [binding routes](#binding-external-route-references) section.
diff --git a/docs/frontend-system/building-apps/01-index.md b/docs/frontend-system/building-apps/01-index.md
new file mode 100644
index 0000000000..e23f628fb6
--- /dev/null
+++ b/docs/frontend-system/building-apps/01-index.md
@@ -0,0 +1,148 @@
+---
+id: index
+title: Building Frontend Apps
+sidebar_label: Overview
+# prettier-ignore
+description: Building frontend apps using the new frontend system
+---
+
+> **NOTE: The new frontend system is in alpha and is only supported by a small number of plugins.**
+
+To get set up quickly with your own Backstage project you can create a Backstage App.
+
+A Backstage App is a monorepo setup that includes everything you need to run Backstage in your own environment.
+
+## Creating a new app
+
+To create a new Backstage app we recommend using the `@backstage/create-app` command line, and the easiest way to run this package is with `npx`:
+
+:::note
+The create-app CLI requires Node.js Active LTS Release.
+:::
+
+```sh
+# The command bellow creates a Backstage App inside the current folder.
+# The name of the app-folder is the name that was provided when prompted.
+npx @backstage/create-app@latest
+```
+
+The created-app is currently templated for legacy frontend system applications, so the app wiring code it creates needs to be migrated, see [the app instance](#the-app-instance) section for an example.
+
+## The app instance
+
+The starting point of a frontend app is the `createApp` function, which accepts a single options object as its only parameter. It is imported from `@backstage/frontend-app-api`, which is where you will find most of the common APIs for building apps.
+
+This is how to create a minimal app:
+
+```tsx title="in src/index.ts"
+import ReactDOM from 'react-dom/client';
+import { createApp } from '@backstage/frontend-app-api';
+import catalogPlugin from '@backstage/plugin-catalog/alpha';
+
+// Create your app instance
+const app = createApp({
+ // Features such as plugins can be installed explicitly, but we will explore other options later on
+ features: [catalogPlugin],
+});
+
+// This creates a React element that renders the entire app
+const root = app.createRoot();
+
+// Just like any other React we need a root element. No server side rendering is used.
+const rootEl = document.getElementById('root')!;
+
+ReactDOM.createRoot(rootEl).render(root);
+```
+
+Note that `createRoot` returns the root element that is rendered by React. The above example is installing a catalog plugin and using default settings for the app, as no options other than the `features` array are passed to the `createApp` function.
+
+Visit the [built-in extensions](#customize-or-override-built-in-extensions) section to see what is installed by default in a Backstage application.
+
+## Configure your app
+
+### Bind external routes
+
+Linking routes from different plugins requires this configuration. You can do this either through a configuration file or by coding, visit [this](https://backstage.io/docs/frontend-system/architecture/routes#binding-external-route-references) page for instructions.
+
+### Enable feature discovery
+
+Use this setting to enable experimental feature discovery when building your app with `@backstage/cli`. With this configuration your application tries to discover and install package extensions automatically, check [here](../architecture/02-app.md#feature-discovery) for more details.
+
+:::warning
+Remember that package extensions that are not auto-discovered must be manually added to the application when creating an app. See [features](#install-features-manually) for more details.
+:::
+
+### Configure extensions individually
+
+It is possible to enable, disable and configure extensions individually in the `app-config.yaml` config file. To get familiar with what is available for app extensions personalization, go to the [built-in extensions](./02-built-in-extensions.md) documentation. For plugin customizations, we recommend that you read the instructions in each plugin's README file.
+
+### Customize or override built-in extensions
+
+Previously you would customize the application route, components, apis, sidebar, etc. through the code in `App.tsx`. Now we want you to write less code and install more extensions to customize your Backstage instance. See [here](../building-plugins/03-extension-types.md) which types of extensions are available for you to customize your application.
+
+## Use code to customize the app at a more granular level
+
+### Install features manually
+
+A manual installation is required if your packages are not discovered automatically, either because you are not using `@backstage/cli` to build your application or because the features are defined in local modules in the app package. In order to manually install a feature, you must import it and pass it to the `createApp` function:
+
+```tsx title="packages/app/src/App.tsx"
+import { createApp } from '@backstage/frontend-app-api';
+// This plugin was create as a local module in the app
+import { somePlugin } from './plugins';
+
+const app = createApp({
+ features: [somePlugin],
+});
+
+export default app.createRoot();
+```
+
+:::info
+You can also pass overrides to the features array, for more details, please read the [extension overrides](../architecture/05-extension-overrides.md) documentation.
+:::
+
+### Using an async features loader
+
+In case you need to perform asynchronous operations before passing features to the `createApp` function, define a [feature loader](https://backstage.io/docs/reference/frontend-app-api.createappfeatureloader/) object and pass it to the `features` option:
+
+```tsx title="packages/app/src/App.tsx"
+import { createApp } from '@backstage/frontend-app-api';
+
+const app = createApp({
+ features: {
+ getLoaderName: () => '',
+ // there is a reference to the config api in the options param
+ load: async _options => {
+ // returning a lazy loaded plugins and overrides array
+ // could be util for module federation
+ return import('./features').then(m => m.default);
+ },
+ },
+});
+
+export default app.createRoot();
+```
+
+### Lazy load your configuration file
+
+In some cases we want to load our configuration from a backend server and to do so, you can pass an callback to the `configLoader` option when calling the `createApp` function, the callback should return a promise of an object with the config object:
+
+```tsx title="packages/app/src/App.tsx"
+import { createApp } from '@backstage/frontend-app-api';
+import { getConfigFromServer } from './utils';
+
+// Example lazy loading the app configuration
+const app = createApp({
+ // Returns Promise<{ config: ConfigApi }>
+ configLoader: async () => {
+ // Calls an async utility method that fetches the config object from the server
+ const config = await getConfigFromServer();
+ // Feel free to manipulate the config object before returning it
+ // A common example is conditionally modify the config based on the running enviroment
+ return { config };
+ },
+});
+
+export default app.createRoot();
+```
diff --git a/docs/frontend-system/building-apps/02-built-in-extensions.md b/docs/frontend-system/building-apps/02-built-in-extensions.md
new file mode 100644
index 0000000000..4f8417f74f
--- /dev/null
+++ b/docs/frontend-system/building-apps/02-built-in-extensions.md
@@ -0,0 +1,190 @@
+---
+id: built-in-extensions
+title: App Built-in Extensions
+sidebar_label: Built-in extensions
+# prettier-ignore
+description: Configuring or overriding built-in extensions
+---
+
+Built-in extensions are default app extensions that are always installed when you create a Backstage app.
+
+## Disable built-in extensions
+
+All built-in extensions can be disabled in the same way as you disable any other extension:
+
+```yaml title="app-config.yaml"
+extensions:
+ # Disabling the built-in app root alert element
+ - app-root-element:app/alert-display: false
+```
+
+:::warning
+Be careful when disabling built-in extensions, as there may be other extensions depending on their existence. For example, the built-in "alert display" extension displays messages retrieved via [AlertApi](https://backstage.io/docs/reference/core-plugin-api.alertapi) and disabling this extension will cause the application to no longer display these messages unless you install another extension that displays messages from `AlertApi`.
+:::
+
+## Override built-in extensions
+
+You can override any built-in extension whenever their customizations, whether through configuration or input, do not meet a use case for your Backstage instance. Check out [this](../architecture/05-extension-overrides.md) documentation on how to override application extensions.
+
+:::warning
+Be aware there could be some implementation requirements to properly override an built-in extension, such as using same apis and do not remove inputs or configurations otherwise you can cause a side effect in other parts of the system that expects same minimal behavior.
+:::
+
+## Default built-in extensions
+
+### App
+
+This extension is the first extension attached to the extension tree. It is responsible for receiving the application's root element and other Frontend framework inputs.
+
+#### Inputs
+
+| Name | Description | Type | Optional | Default | Extension creator |
+| ------------ | -------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------ | -------- | --------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------- |
+| root | The app root element. | [coreExtensionData.reactElement](https://backstage.io/docs/reference/frontend-plugin-api.coreextensiondata) | false | The [`App/Root`](#app-root) extension output. | No creator available, configure or override the [`App/Root`](#app-root) extension. |
+| apis | The app apis factories. | [createApiExtension.factoryDataRef](https://backstage.io/docs/reference/frontend-plugin-api.createapiextension.factorydataref) | false | See [default apis](#default-apis-extensions). | [createApiExtension](https://backstage.io/docs/reference/frontend-plugin-api.createapiextension) |
+| themes | The app themes list. | [createThemeExtension.themeDataRef](https://backstage.io/docs/reference/frontend-plugin-api.createthemeextension.themedataref) | false | See [default themes](#default-theme-extensions). | [createThemeExtension](https://backstage.io/docs/reference/frontend-plugin-api.createthemeextension) |
+| components | The app components list. | [createComponentExtension.componentDataRef](https://backstage.io/docs/reference/frontend-plugin-api.createcomponentextension.componentdataref) | false | See [default components](#default-components-extensions). | [createComponentExtension](https://backstage.io/docs/reference/frontend-plugin-api.createcomponentextension) |
+| translations | The app translations list. | [createTranslationExtension.translationDataRef](https://backstage.io/docs/reference/frontend-plugin-api.createtranslationextension.translationdataref) | false | - | [createTranslationExtension](https://backstage.io/docs/reference/frontend-plugin-api.createtranslationextension) |
+
+#### Default theme extensions
+
+Extensions that provides default theme inputs for the `App` extension.
+
+| kind | namespace | name | id |
+| :---: | :-------: | :---: | :---------------: |
+| theme | app | light | `theme:app/light` |
+| theme | app | dark | `theme:app/dark` |
+
+#### Default components extensions
+
+Extensions that provides default components inputs for the `App` extension.
+
+| kind | namespace | name | id |
+| :--------: | :-------: | :-----------------------------------: | :----------------------------------------------------: |
+| components | app | core.components.progress | `components:app/core.components.progress` |
+| components | app | core.components.notFoundErrorPage | `components:app/core.components.notFoundErrorPage` |
+| components | app | core.components.errorBoundaryFallback | `components:app/core.components.errorBoundaryFallback` |
+
+#### Default apis extensions
+
+Extensions that provides default apis inputs for the `App` extension.
+
+| kind | namespace | name | id |
+| :--: | :------------------------: | :--: | :------------------------------: |
+| api | core.discovery | - | `api:core.discovery` |
+| api | core.alert | - | `api:core.alert` |
+| api | core.analytics | - | `api:core.analytics` |
+| api | core.error | - | `api:core.error` |
+| api | core.storage | - | `api:core.storage` |
+| api | core.fetch | - | `api:core.fetch` |
+| api | core.oauthrequest | - | `api:core.oauthrequest` |
+| api | core.auth.google | - | `api:core.auth.google` |
+| api | core.auth.microsoft | - | `api:core.auth.microsoft` |
+| api | core.auth.github | - | `api:core.auth.github` |
+| api | core.auth.okta | - | `api:core.auth.okta` |
+| api | core.auth.gitlab | - | `api:core.auth.gitlab` |
+| api | core.auth.onelogin | - | `api:core.auth.onelogin` |
+| api | core.auth.bitbucket | - | `api:core.auth.bitbucket` |
+| api | core.auth.bitbucket-server | - | `api:core.auth.bitbucket-server` |
+| api | core.auth.atlassian | - | `api:core.auth.atlassian` |
+| api | plugin.permission.api | - | `api:plugin.permission.api` |
+
+### App root
+
+This is the extension that creates the app root element, so it renders root level components such as app router and layout.
+
+#### Inputs
+
+| Name | Description | Requirements | Optional | Default | Extension creator |
+| ---------- | --------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------- |
+| router | A React component that should manager the app routes context. | It must be one [router](https://reactrouter.com/en/main/routers/picking-a-router#web-projects) component or a custom component compatible with the 'react-router' library. | true | [BrowserRouter](https://reactrouter.com/en/main/router-components/browser-router) | [createRouterExtension](https://backstage.io/docs/reference/frontend-plugin-api.createrouterextension) |
+| signInPage | A React component that should render the app sign-in page. | Should call the `onSignInSuccess` prop when the user has been successfully authorized, otherwise the user will not be correctly redirected to the application home page. | true | The default `AppRoot` extension does not use a default component for this input, it bypasses the user authentication check and always renders all routes when a login page is not installed. | [createSignInPageExtension](https://backstage.io/docs/reference/frontend-plugin-api.createsigninpageextension/) |
+| children | A React component that renders the app sidebar and main content in a particular layout. | - | false | The [`App/Layout`](#app-layout) extension output. | No creator available, configure or override the [`App/Layout`](#app-layout) extension. |
+| elements | React elements to be rendered outside of the app layout, such as shared popups. | - | false | See [default elements](#default-app-root-elements-extensions). | [createAppRootElementExtension](https://backstage.io/docs/reference/frontend-plugin-api.createapprootelementextension/) |
+| wrappers | React components that should wrap the root element. | - | true | - | [createAppRootWrapperExtension](https://backstage.io/docs/reference/frontend-plugin-api.createapprootwrapperextension/) |
+
+#### Default app root elements extensions
+
+##### Alert Display
+
+An app root element extension that displays messages posted via the [`AlertApi`](https://backstage.io/docs/reference/core-plugin-api.alertapi).
+
+| kind | namespace | name | id |
+| :--------------: | :-------: | :-----------: | :----------------------------------: |
+| app-root-element | app | alert-display | `app-root-element:app/alert-display` |
+
+###### Configurations
+
+| Key | Type | Default value | Description |
+| -------------------- | -------------------------------------------------------------------------- | ----------------------------------------- | ----------------------------------------------------------------- |
+| `transientTimeoutMs` | number | 5000 | Time in milliseconds to wait before displaying messages. |
+| `anchorOrigin` | { vertical: 'top' \| 'bottom', horizontal: 'left' \| 'center' \| 'right' } | { vertical: 'top', horizontal: 'center' } | Position on the screen where the message alert will be displayed. |
+
+###### Override or disable the extension
+
+If you do not want to display alerts, disable this extension or if the available settings do not meet your needs, override this extension.
+
+:::warning
+The built-in "alert display" extension displays messages retrieved via [AlertApi](https://backstage.io/docs/reference/core-plugin-api.alertapi) and disabling this extension will cause the application to no longer display these messages unless you install another extension that displays messages from `AlertApi`.
+:::
+
+##### OAuth Request Dialog
+
+An app root element extension that renders the oauth request dialog, it is based on the [oauthRequestApi](https://backstage.io/docs/reference/core-plugin-api.oauthrequestapi/).
+
+| kind | namespace | name | id |
+| :--------------: | :-------: | :------------------: | :-----------------------------------------: |
+| app-root-element | app | oauth-request-dialog | `app-root-element:app/oauth-request-dialog` |
+
+### App layout
+
+Renders the app's sidebar and content in a specific layout.
+
+| kind | namespace | name | id |
+| :--: | :-------: | :----: | :----------: |
+| - | app | layout | `app/layout` |
+
+#### Inputs
+
+| Name | Description | Type | Optional | Default | Extension creator |
+| ------- | --------------------------------------------- | ----------------------------------------------------------------------------------------------------------- | -------- | ------- | ------------------------------------ |
+| nav | A React element that renders the app sidebar. | [coreExtensionData.reactElement](https://backstage.io/docs/reference/frontend-plugin-api.coreextensiondata) | false | - | Override the `App/Nav` extension. |
+| content | A React element that renders the app content. | [coreExtensionData.reactElement](https://backstage.io/docs/reference/frontend-plugin-api.coreextensiondata) | false | - | Override the `App/Routes` extension. |
+
+### App nav
+
+Extension responsible for rendering the logo and items in the app's sidebar.
+
+| kind | namespace | name | id |
+| :--: | :-------: | :--: | :-------: |
+| - | app | nav | `app/nav` |
+
+#### Inputs
+
+| Name | Description | Type | Optional | Default | Extension creator |
+| ----- | ------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------ | -------- | ------- | -------------------------------------------------------------------------------------------------------- |
+| logos | A nav logos object. | [createNavLogoExtension.logoElementsDataRef](https://backstage.io/docs/reference/frontend-plugin-api.createnavlogoextension.logoelementsdataref) | true | - | [createNavLogoExtension](https://backstage.io/docs/reference/frontend-plugin-api.createnavlogoextension) |
+| items | Nav items target objects. | [createNavItemExtension.targetDataRef](https://backstage.io/docs/reference/frontend-plugin-api.createnavitemextension.targetdataref) | true | - | [createNavItemExtension](https://backstage.io/docs/reference/frontend-plugin-api.createnavitemextension) |
+
+### App routes
+
+Renders a route element for each route received as input and a `NotFoundErrorPage` component.
+
+| kind | namespace | name | id |
+| :--: | :-------: | :----: | :----------: |
+| - | app | routes | `app/routes` |
+
+#### Caveats
+
+Be careful when overriding this extension, as to do so correctly you must consider these implementation requirements:
+
+- The routing system is managed by more than one extension, and they all use `react-router` behind the scenes. There are also some utilities that are based on the same `routing` library like `useRouteRefParams`. Therefore, you cannot use a different library without causing side effects in these other extensions and helper utilities;
+- Don't remove configs or inputs, just extend these things yourself with optional new options, otherwise it will cause breaking changes for extensions like `createPageExtension` that depend on this type of inputs;
+- Remember to user the route refs for getting paths dynamically, otherwise if an adopter modifies a path through configuration, the route is not going to point to the configured path;
+- Adopters expect to be able to customize the `NotFoundErrorPage` component via Components API, you should render this component for routes not configured.
+
+#### Inputs
+
+| Name | Description | Type | Optional | Default | Extension creator |
+| ------ | ----------------------- | ---------------------------------------------------------------------------------------------------------------------------- | -------- | ------- | -------------------------------------------------------------------------------------------------- |
+| routes | The route objects list. | `{ path: coreExtensionData.routePath, ref: coreExtensionData.routeRef.optional(), element: coreExtensionData.reactElement }` | false | - | [createPageExtension](https://backstage.io/docs/reference/frontend-plugin-api.createpageextension) |
diff --git a/docs/frontend-system/building-plugins/02-testing.md b/docs/frontend-system/building-plugins/02-testing.md
index c6621d6584..fa29918311 100644
--- a/docs/frontend-system/building-plugins/02-testing.md
+++ b/docs/frontend-system/building-plugins/02-testing.md
@@ -70,7 +70,7 @@ describe('Entity details component', () => {
await renderInTestApp(
-
+
,
);
diff --git a/docs/frontend-system/building-plugins/04-built-in-data-refs.md b/docs/frontend-system/building-plugins/04-built-in-data-refs.md
new file mode 100644
index 0000000000..dacbbf30f1
--- /dev/null
+++ b/docs/frontend-system/building-plugins/04-built-in-data-refs.md
@@ -0,0 +1,61 @@
+---
+id: built-in-data-refs
+title: Built-in data refs
+sidebar_label: Built-in data refs
+# prettier-ignore
+description: Configuring or overriding built-in extension data references
+---
+
+> **NOTE: The new frontend system is in alpha and is only supported by a small number of plugins.**
+
+To have a better understanding of extension data references please read [the corresponding architecture section](../architecture/03-extensions.md#extension-data) first.
+
+## Built-in extension data references
+
+Data references help to define the inputs and outputs of an extension. A data ref is uniquely identified through its `id`. Through the data ref, strong typing is enforced for the input/output of the extension.
+
+### `reactElement`
+
+| id | type |
+| :-----------------: | :-----------: |
+| `core.reactElement` | `JSX.Element` |
+
+The `reactElement` data reference can be used for defining the extension input/output of React elements. Example usage could be something like this:
+
+```tsx
+import {
+ coreExtensionData,
+ createExtensionInput,
+ createPageExtension,
+} from '@backstage/frontend-plugin-api';
+
+const homePage = createPageExtension({
+ defaultPath: '/home',
+ routeRef: rootRouteRef,
+ inputs: {
+ props: createExtensionInput({
+ children: coreExtensionData.reactElement.optional(),
+ }),
+ },
+});
+```
+
+### `routePath`
+
+| id | type |
+| :-----------------: | :------: |
+| `core.routing.path` | `string` |
+
+The `routePath` data reference can be used for defining the extension input/output of string paths.
+
+### `routeRef`
+
+| id | type |
+| :----------------: | :--------: |
+| `core.routing.ref` | `RouteRef` |
+
+The `routeRef` data reference can be used for defining the extension input/output of route references.
+
+### Other data references
+
+There are other data refs in the frontend system you might stumble upon while building your plugin. Most of them were created for use cases inside the core of the system, but they can be used also in your plugin.
diff --git a/docs/getting-started/configuration.md b/docs/getting-started/configuration.md
index 5d797ecb4b..0c813b1aee 100644
--- a/docs/getting-started/configuration.md
+++ b/docs/getting-started/configuration.md
@@ -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
diff --git a/docs/getting-started/configure-app-with-plugins.md b/docs/getting-started/configure-app-with-plugins.md
index 5611117636..724746ca16 100644
--- a/docs/getting-started/configure-app-with-plugins.md
+++ b/docs/getting-started/configure-app-with-plugins.md
@@ -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
diff --git a/docs/getting-started/homepage.md b/docs/getting-started/homepage.md
index 04dfb13d6a..18f23f6607 100644
--- a/docs/getting-started/homepage.md
+++ b/docs/getting-started/homepage.md
@@ -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
diff --git a/docs/integrations/aws-s3/discovery.md b/docs/integrations/aws-s3/discovery.md
index ceb780141f..d664466a16 100644
--- a/docs/integrations/aws-s3/discovery.md
+++ b/docs/integrations/aws-s3/discovery.md
@@ -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`:
diff --git a/docs/integrations/azure/discovery.md b/docs/integrations/azure/discovery.md
index 3b25a9ac75..742fbb6076 100644
--- a/docs/integrations/azure/discovery.md
+++ b/docs/integrations/azure/discovery.md
@@ -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`:
diff --git a/docs/integrations/azure/org.md b/docs/integrations/azure/org.md
index 061baf7301..38c2e7618a 100644
--- a/docs/integrations/azure/org.md
+++ b/docs/integrations/azure/org.md
@@ -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`
diff --git a/docs/integrations/bitbucketCloud/discovery.md b/docs/integrations/bitbucketCloud/discovery.md
index 53315a4c48..a7477a2a61 100644
--- a/docs/integrations/bitbucketCloud/discovery.md
+++ b/docs/integrations/bitbucketCloud/discovery.md
@@ -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
diff --git a/docs/integrations/bitbucketServer/discovery.md b/docs/integrations/bitbucketServer/discovery.md
index ad59006ff1..f37732b600 100644
--- a/docs/integrations/bitbucketServer/discovery.md
+++ b/docs/integrations/bitbucketServer/discovery.md
@@ -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:
diff --git a/docs/integrations/gerrit/discovery.md b/docs/integrations/gerrit/discovery.md
index ee843d2454..e2922c1f76 100644
--- a/docs/integrations/gerrit/discovery.md
+++ b/docs/integrations/gerrit/discovery.md
@@ -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`:
diff --git a/docs/integrations/github/discovery.md b/docs/integrations/github/discovery.md
index 3c3d90d6e9..461fab8af8 100644
--- a/docs/integrations/github/discovery.md
+++ b/docs/integrations/github/discovery.md
@@ -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:
diff --git a/docs/integrations/github/org.md b/docs/integrations/github/org.md
index 1404b20559..263ceda6c6 100644
--- a/docs/integrations/github/org.md
+++ b/docs/integrations/github/org.md
@@ -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"
diff --git a/docs/integrations/gitlab/discovery.md b/docs/integrations/gitlab/discovery.md
index 235d93ab03..d41f4f8de5 100644
--- a/docs/integrations/gitlab/discovery.md
+++ b/docs/integrations/gitlab/discovery.md
@@ -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`:
diff --git a/docs/integrations/gitlab/org.md b/docs/integrations/gitlab/org.md
index ca40cefa9e..f2a483c9d1 100644
--- a/docs/integrations/gitlab/org.md
+++ b/docs/integrations/gitlab/org.md
@@ -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`:
diff --git a/docs/integrations/ldap/org.md b/docs/integrations/ldap/org.md
index 7306ab4105..9bc2667aa7 100644
--- a/docs/integrations/ldap/org.md
+++ b/docs/integrations/ldap/org.md
@@ -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
diff --git a/docs/local-dev/cli-build-system.md b/docs/local-dev/cli-build-system.md
index 51c328c871..ddcfa44cf5 100644
--- a/docs/local-dev/cli-build-system.md
+++ b/docs/local-dev/cli-build-system.md
@@ -258,7 +258,7 @@ When building CommonJS or ESM output, the build commands will always use
`src/index.ts` as the entrypoint. All non-relative modules imports are considered
external, meaning the Rollup build will only compile the source code of the package
itself. All import statements of external dependencies, even within the same
-monorepo, will stay intact.
+[monorepo](../references/glossary.md#monorepo), will stay intact.
The build of the type definitions works quite differently. The entrypoint of the
type definition build is the relative location of the package within the
@@ -307,11 +307,12 @@ support for them instead.
### Frontend Production
-The frontend production bundling creates your typical web content bundle, all
-contained within a single folder, ready for static serving. It is used when building
-packages with the `'frontend'` role, and unlike the development bundling there is no way to
-build a production bundle of an individual plugin. The output of the bundling
-process is written to the `dist` folder in the package.
+The frontend production bundling creates your typical web content
+[bundle](../references/glossary.md#bundle), all contained within a single
+folder, ready for static serving. It is used when building packages with the
+`'frontend'` role, and unlike the development bundling there is no way to
+build a production bundle of an individual plugin.
+The output of the bundling process is written to the `dist` folder in the package.
Just like the development bundling, the production bundling is based on
[Webpack](https://webpack.js.org/). It uses the
diff --git a/docs/local-dev/cli-overview.md b/docs/local-dev/cli-overview.md
index 74c09d2865..4ab8bb21ac 100644
--- a/docs/local-dev/cli-overview.md
+++ b/docs/local-dev/cli-overview.md
@@ -7,11 +7,12 @@ description: Overview of the Backstage CLI
## Introduction
A goal of Backstage is to provide a delightful developer experience in and
-around the project. Creating new apps and plugins should be simple, iteration
+around the project. Creating new [apps](../references/glossary.md#app) and
+[plugins](../references/glossary.md#plugin) should be simple, iteration
speed should be fast, and the overhead of maintaining custom tooling should be
minimal. As a part of accomplishing this goal, Backstage provides its own build
system and tooling, delivered primarily through the
-[`@backstage/cli`](https://www.npmjs.com/package/@backstage/cli) package. When
+[`@backstage/cli`](https://www.npmjs.com/package/@backstage/cli) [package](../references/glossary.md#package). When
creating an app using
[`@backstage/create-app`](https://www.npmjs.com/package/@backstage/create-app),
you receive a project that's already prepared with a typical setup and package
@@ -36,18 +37,3 @@ The Backstage CLI intentionally does not provide many hooks for overriding or
customizing the build process. This is to allow for evolution of the CLI without
having to take a wide API surface into account. This allows us to iterate and
improve the tooling, as well as to more easily keep the system up to date.
-
-## Glossary
-
-- **Package** - A package in the Node.js ecosystem, often published to a package
- registry such as [NPM](https://www.npmjs.com/).
-- **Monorepo** - A project layout that consists of multiple packages within a
- single project, where packages are able to have local dependencies on each
- other. Often enabled through tooling such as [lerna](https://lerna.js.org/)
- and [yarn workspaces](https://classic.yarnpkg.com/en/docs/workspaces/)
-- **Local Package** - One of the packages within a monorepo. These package may
- or may not also be published to a package registry.
-- **Bundle** - A collection of the deployment artifacts. The output of the
- bundling process, which brings a collection of packages into a single
- collection of deployment artifacts.
-- **Package Role** - The declared role of a package, see [package roles](./cli-build-system.md#package-roles).
diff --git a/docs/openapi/01-getting-started.md b/docs/openapi/01-getting-started.md
index eb3b1c1209..5b9908756f 100644
--- a/docs/openapi/01-getting-started.md
+++ b/docs/openapi/01-getting-started.md
@@ -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 `. 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 `
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 /src/schema/openapi.yaml --output-directory `. `` should match the same backend plugin we've been using so far. `` is a new directory and npm package that you should create. The general pattern is `plugins/-client`.
+From your current backend plugin directory, run `yarn backstage-repo-tools package schema openapi generate --client-package `. `` is a new directory and npm package that you should create. The general pattern is `plugins/-client` or if you want to co-locate this with your other shared types, use `plugins/-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.
diff --git a/docs/openapi/generate-client.md b/docs/openapi/generate-client.md
index f2c7c64574..640036960e 100644
--- a/docs/openapi/generate-client.md
+++ b/docs/openapi/generate-client.md
@@ -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 --output-directory `. This will create a new folder in `/src/generated` to house the generated content.
+1. Run `yarn backstage-repo-tools schema openapi generate client --output-package `. This will create a new folder in `/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.
diff --git a/docs/openapi/test-case-validation.md b/docs/openapi/test-case-validation.md
index 0d93b6d5b5..28d0eb5470 100644
--- a/docs/openapi/test-case-validation.md
+++ b/docs/openapi/test-case-validation.md
@@ -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
diff --git a/docs/overview/background.md b/docs/overview/background.md
index b74a2e0272..5e59967b21 100644
--- a/docs/overview/background.md
+++ b/docs/overview/background.md
@@ -35,4 +35,4 @@ Backstage was originally built by Spotify and then donated to the CNCF.
Backstage is currently in the Incubation phase. Read the announcement
[here](https://backstage.io/blog/2022/03/16/backstage-turns-two#out-of-the-sandbox-and-into-incubation).
-
+
diff --git a/docs/overview/glossary.md b/docs/overview/glossary.md
deleted file mode 100644
index ab7d224f4d..0000000000
--- a/docs/overview/glossary.md
+++ /dev/null
@@ -1,26 +0,0 @@
----
-id: glossary
-title: Backstage Glossary
-# prettier-ignore
-description: List of terms, abbreviations, and phrases used in Backstage, together with their explanations.
----
-
-The Backstage Glossary lists terms, abbreviations, and phrases used in
-Backstage, together with their explanations. We encourage you to use the
-terminology below for clarity and consistency when discussing Backstage.
-
-See also [Authentication Glossary](../auth/glossary.md), a separate glossary of terms and phrases
-specifically related to the authentication and identity section of Backstage.
-
-### Backstage User Profiles
-
-There are three main user profiles for Backstage: the integrator, the
-contributor, and the end user (typically a software engineer).
-
-| Term | Explanation |
-| ----------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
-| Integrator | The **integrator** hosts the Backstage app and configures which plugins are available to use in the app. |
-| Contributor | The **contributor** adds functionality to the app by writing plugins. |
-| End user | The **end user** uses the app's functionality and interacts with its plugins. This profile covers the various roles that help deliver software. The typical end user is a **software engineer**, but users might also consider themselves _designers_, _data scientists_, _product owners_, _engineering managers_, _technical writers_, and so on. |
-| Software engineer | The **software engineer** is an **end user** who uses the app's functionality and interacts with its plugins in the course of writing and documenting code. This user is more likely to embed documentation in the code files they produce, and create rough drafts of conceptual pages in collaboration with a **technical writer** or _technical editor_. |
-| Technical writer | The **technical writer** is an **end user** who uses the app's functionality and interacts with its plugins in the course of writing and editing documentation. This user is more likely to produce and customize templates and produce conceptual pages to supplement documentation embedded in code files. |
diff --git a/docs/overview/logos.md b/docs/overview/logos.md
index ac54640e33..fe993cc378 100644
--- a/docs/overview/logos.md
+++ b/docs/overview/logos.md
@@ -12,31 +12,31 @@ The assets below are all in `.svg` format. Other formats are available in the
## Backstage logo
-
-
+
+
-
-
+
+
-
-
+
+
## Backstage icon
diff --git a/docs/overview/support.md b/docs/overview/support.md
index 38bb60784f..0433683406 100644
--- a/docs/overview/support.md
+++ b/docs/overview/support.md
@@ -6,11 +6,11 @@ description: Support and Community Details and Links
- [Discord chatroom](https://discord.gg/backstage-687207715902193673) - Get support or discuss the
project.
-- [Stack Overflow](https://stackoverflow.com/questions/tagged/backstage) - Browse or ask questions on Stack Overflow.
- [Good First Issues](https://github.com/backstage/backstage/contribute) - Start
here if you want to contribute.
- [RFCs](https://github.com/backstage/backstage/labels/rfc) - Help shape the
technical direction by reviewing _Request for Comments_ issues.
+- [BEPs](https://github.com/backstage/backstage/tree/master/beps#backstage-enhancement-proposals-beps) - A Backstage Enhancement Proposal (BEP) is a way to propose, communicate and coordinate on new efforts for the Backstage project.
- [FAQ](../faq/index.md) - Frequently Asked Questions.
- [Code of Conduct](https://github.com/backstage/backstage/blob/master/CODE_OF_CONDUCT.md) -
This is how we roll.
@@ -23,41 +23,3 @@ description: Support and Community Details and Links
## Community Hub
Check out the Backstage.io [Backstage Community Hub](https://backstage.io/community) for the Community Sessions, recordings, and community resources.
-
-### Adding a recording to the meetup page
-
-To add a new recording to the [meetup page](https://backstage.io/on-demand)
-create a file in
-[`microsite/data/on-demand`](https://github.com/backstage/backstage/tree/master/microsite/data/on-demand)
-with your recording's information. Filenames should be in the format `yyyymmdd-xx.yaml`. The page will sort using the filename. Example file content:
-
-```yaml
----
-title: # name of the meetup
-date: February 23, 2022 # date, format: Month day, year.
-category: Meetup # Can be Event, Meetup, Webinar
-description: # description, summary
-youtubeUrl: # Url to youtube video
-youtubeImgUrl: # Url to the preview image, for Youtube this is the format: https://i1.ytimg.com/vi//mqdefault.jpg
-```
-
-### Adding an upcoming meetup to the meetup page
-
-To add an upcoming meetup to the [meetup page](https://backstage.io/on-demand)
-create a file in
-[`microsite/data/on-demand`](https://github.com/backstage/backstage/tree/master/microsite/data/on-demand)
-with your meetup's information. Filenames should be in the format `yyyymmdd-xx.yaml`, the page will sort using the filename. Example file content:
-
-```yaml
----
-title: # name of the meetup
-date: February 23, 2022 # date, format: Month day, year.
-category: Upcoming # Should be "Upcoming"
-description: # description, summary
-youtubeUrl: # Url to youtube video
-youtubeImgUrl: # Url to the preview image, for Youtube this is the format: https://i1.ytimg.com/vi//mqdefault.jpg
-rsvpUrl: # Link to registration, calendar item, etc
-eventUrl: # Link to event landing page
-```
-
-After the meetup is done, and the recording is ready you can change it to a meetup recording.
diff --git a/docs/overview/threat-model.md b/docs/overview/threat-model.md
index a5adf8025d..442d51985c 100644
--- a/docs/overview/threat-model.md
+++ b/docs/overview/threat-model.md
@@ -52,7 +52,7 @@ As part of signing in with an identity resolver, a Backstage Token is issued con
The token is used to prove the identity of the user within the Backstage system, and is used throughout Backstage plugins to control access. It is important that the ownership resolution logic is consistent across the entire Backstage ecosystem, with no possibility of misinterpreting the ownership information.
-For cross backend communication the Backstage Token is typically forwarded or in strict backend to backend communication without a user party the backend itself issues a service token based on a pre-shared secret which is then validated on the receiving end. There are no unique service identities tied to these tokens at this point, meaning the tokens can be used across all services in a Backstage installation, this is something that we aim to improve in the future.
+For cross-backend communication, the Backstage Token is typically forwarded or, in strict backend-to-backend communication without a user party, the backend itself issues a service token based on a pre-shared secret which is then validated on the receiving end. There are no unique service identities tied to these tokens at this point, meaning the tokens can be used across all services in a Backstage installation. This is something that we aim to improve in the future.
Backstage also supports authentication through a proxy where the user identity is read from the incoming request from the proxy, which has been decorated by an authenticating reverse proxy such as [AWS ALB](https://aws.amazon.com/elasticloadbalancing/application-load-balancer/). The following proxy auth providers verify the signature of incoming requests, and are therefore safe to deploy with direct access by users: `awsAlb`, `cfAccess`, and `gcpIap`. Providers like `oauth2Proxy` does not verify the incoming request and can therefore be spoofed by a malicious internal user to supply the `auth` backend with forged identity information. It’s therefore highly recommended to restrict access to the `oauth2Proxy` endpoints, or use a different provider.
diff --git a/docs/overview/what-is-backstage.md b/docs/overview/what-is-backstage.md
index f18993770a..e91b9774d7 100644
--- a/docs/overview/what-is-backstage.md
+++ b/docs/overview/what-is-backstage.md
@@ -40,7 +40,7 @@ Out of the box, Backstage includes:
Backstage is a CNCF Incubation project after graduating from Sandbox. Read the announcement
[here](https://backstage.io/blog/2022/03/16/backstage-turns-two#out-of-the-sandbox-and-into-incubation).
-
+
## Benefits
diff --git a/docs/permissions/concepts.md b/docs/permissions/concepts.md
index e7d65b3583..7c8b9e9f69 100644
--- a/docs/permissions/concepts.md
+++ b/docs/permissions/concepts.md
@@ -6,11 +6,11 @@ description: A list of important permission framework concepts
### Permission
-Any action that a user performs within Backstage may be represented as a permission. More complex actions, like executing a software template, may require authorization for multiple permissions throughout the flow. Permissions are identified by a unique name and optionally include a set of attributes that describe the corresponding action. Plugins are responsible for defining and exposing the permissions they enforce.
+Any action that a user performs within Backstage may be represented as a permission. More complex actions, like executing a [software template](../references/glossary.md#software-templates), may require [authorization](../references/glossary.md#authorization) for multiple permissions throughout the flow. Permissions are identified by a unique name and optionally include a set of attributes that describe the corresponding action. [Plugins](../references/glossary.md#plugin) are responsible for defining and exposing the permissions they enforce as well as enforcing restrictions from the permission framework.
### Policy
-User permissions are authorized by a central, user-defined permission policy. At a high level, a policy is a function that receives a Backstage user and permission, and returns a decision to allow or deny. Policies are expressed as code, which decouples the framework from any particular authorization model, like role-based access control (RBAC) or attribute-based access control (ABAC).
+User [permissions](../references/glossary.md#permission-permission-plugin) are authorized by a central, user-defined permission policy. At a high level, a policy is a function that receives a Backstage user and permission, and returns a decision to allow or deny. Policies are expressed as code, which decouples the framework from any particular [authorization](../references/glossary.md#authorization) model, like role-based access control (RBAC) or attribute-based access control (ABAC).
### Policy decision versus enforcement
@@ -18,8 +18,10 @@ Two important responsibilities of any authorization system are to decide if a us
### Resources and rules
-In many cases, a permission represents a user's interaction with another object. This object likely has information that policy authors can use to define more granular access. The permission framework introduces two abstractions to account for this: resources and rules. Resources represent the objects that users interact with. Rules are predicate-based controls that tap into a resource's data. For example, the catalog plugin defines a resource for catalog entities and a rule to check if an entity has a given annotation.
+In many cases, a permission represents a user's interaction with another object. This object likely has information that policy authors can use to define more granular access. The permission framework introduces two abstractions to account for this: [resources](../references/glossary.md#resource-permission-plugin) and [rules](../references/glossary.md#rule-permission-plugin). For example, the catalog plugin defines a resource for catalog entities and a rule to check if an entity has a given annotation.
### Conditional decisions
-Rules need additional data before they can be used in a decision. For example, the catalog plugin's "has annotation" rule needs to know what annotation to look for on a given entity. Once a rule is bound to relevant information it forms a condition. Conditions are then used to return a conditional decision from a policy. Conditional decisions tell the permission framework to delegate evaluation to the plugin that owns the corresponding resource. Permission requests that result in a conditional decision are allowed if all of the provided conditions evaluate to be true. This conditional behavior avoids coupling between policies and resource schemas, and allows plugins to evaluate complex rules in an efficient way. For example, a plugin may convert a conditional decision to a database query instead of loading and filtering objects in memory.
+[Rules](../references/glossary.md#rule-permission-plugin) need additional data before they can be used in a decision. Once a [rule](../references/glossary.md#rule-permission-plugin) is bound to relevant information it forms a [condition](../references/glossary.md#condition-permission-plugin). Conditional decisions tell the [permission framework](#permission) to delegate evaluation to the [plugin](#plugin) that owns the corresponding [resource](#resource-permission-plugin). Permission requests that result in a conditional decision are allowed if all of the provided conditions evaluate to be true.
+
+A good example would be the catalog plugin's "has annotation" rule which needs to know what annotation to look for on a given entity. The permission framework would respond to a request by the catalog plugin in this case with a condition decision. The catalog plugin would then need to correctly filter for entities matching the "has annotations" condition. This conditional behavior avoids coupling between policies and resource schemas, and allows plugins to evaluate complex rules in an efficient way. For example, a plugin may convert a conditional decision to a database query instead of loading and filtering objects in memory.
diff --git a/docs/permissions/custom-rules.md b/docs/permissions/custom-rules.md
index c0f4e3e156..9063ed7257 100644
--- a/docs/permissions/custom-rules.md
+++ b/docs/permissions/custom-rules.md
@@ -4,7 +4,7 @@ title: Defining custom permission rules
description: How to define custom permission rules for existing resources
---
-For some use cases, you may want to define custom [rules](./concepts.md#resources-and-rules) in addition to the ones provided by a plugin. In the [previous section](./writing-a-policy.md) we used the `isEntityOwner` rule to control access for catalog entities. Let's extend this policy with a custom rule that checks what [system](https://backstage.io/docs/features/software-catalog/system-model#system) an entity is part of.
+For some use cases, you may want to define custom [rules](../references/glossary.md#rule-permission-plugin) in addition to the ones provided by a plugin. In the [previous section](./writing-a-policy.md) we used the `isEntityOwner` rule to control access for catalog entities. Let's extend this policy with a custom rule that checks what [system](https://backstage.io/docs/features/software-catalog/system-model#system) an entity is part of.
## Define a custom rule
diff --git a/docs/permissions/getting-started.md b/docs/permissions/getting-started.md
index 01a268f7ef..e241f0e38e 100644
--- a/docs/permissions/getting-started.md
+++ b/docs/permissions/getting-started.md
@@ -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.
diff --git a/docs/permissions/overview.md b/docs/permissions/overview.md
index 693f848c82..8630b85e23 100644
--- a/docs/permissions/overview.md
+++ b/docs/permissions/overview.md
@@ -22,7 +22,7 @@ The permission framework was designed with a few key properties in mind:
- **Integrators** can author or configure policies that define which users can take certain actions upon which resources.
-
+
1. The user triggers a request to perform some action. The request specifies the authorization details using the permission specified by the plugin (in this case, a resource read action).
diff --git a/docs/permissions/plugin-authors/01-setup.md b/docs/permissions/plugin-authors/01-setup.md
index 8134fc0c39..a674d82e25 100644
--- a/docs/permissions/plugin-authors/01-setup.md
+++ b/docs/permissions/plugin-authors/01-setup.md
@@ -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:
diff --git a/docs/permissions/plugin-authors/02-adding-a-basic-permission-check.md b/docs/permissions/plugin-authors/02-adding-a-basic-permission-check.md
index 23bc4e84f1..f3380bdb6f 100644
--- a/docs/permissions/plugin-authors/02-adding-a-basic-permission-check.md
+++ b/docs/permissions/plugin-authors/02-adding-a-basic-permission-check.md
@@ -4,9 +4,9 @@ title: 2. Adding a basic permission check
description: Explains how to add a basic permission check to a Backstage plugin
---
-If the outcome of a permission check doesn't need to change for different [resources](../concepts.md#resources-and-rules), you can use a _basic permission check_. For this kind of check, we simply need to define a [permission](../concepts.md#resources-and-rules), and call `authorize` with it.
+If the outcome of a permission check doesn't need to change for different [resources](../../references/glossary.md#resource-permission-plugin), you can use a _basic permission check_. For this kind of check, we simply need to define a permission, and call `authorize` with it.
-For this tutorial, we'll use a basic permission check to authorize the `create` endpoint in our todo-backend. This will allow Backstage integrators to control whether each of their users is authorized to create todos by adjusting their [permission policy](../concepts.md#policy).
+For this tutorial, we'll use a basic permission check to authorize the `create` endpoint in our todo-backend. This will allow Backstage integrators to control whether each of their users is authorized to create todos by adjusting their [permission policy](../../references/glossary.md#policy-permission-plugin).
We'll start by creating a new permission, and then we'll use the permission api to call `authorize` with it during todo creation.
diff --git a/docs/permissions/plugin-authors/03-adding-a-resource-permission-check.md b/docs/permissions/plugin-authors/03-adding-a-resource-permission-check.md
index a4d51b64d0..76c1a85e24 100644
--- a/docs/permissions/plugin-authors/03-adding-a-resource-permission-check.md
+++ b/docs/permissions/plugin-authors/03-adding-a-resource-permission-check.md
@@ -4,7 +4,7 @@ title: 3. Adding a resource permission check
description: Explains how to add a resource permission check to a Backstage plugin
---
-When performing updates (or other operations) on specific [resources](../concepts.md#resources-and-rules), the permissions framework allows for the decision to be based on characteristics of the resource itself. This means that it's possible to write policies that (for example) allow the operation for users that own a resource, and deny the operation otherwise.
+When performing updates (or other operations) on specific [resources](../../references/glossary.md#resource-permission-plugin), the permissions framework allows for the decision to be based on characteristics of the resource itself. This means that it's possible to write policies that (for example) allow the operation for users that own a resource, and deny the operation otherwise.
## Creating the update permission
diff --git a/docs/plugins/backend-plugin.md b/docs/plugins/backend-plugin.md
index d2e93bb08c..22d4bae371 100644
--- a/docs/plugins/backend-plugin.md
+++ b/docs/plugins/backend-plugin.md
@@ -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
diff --git a/docs/publishing.md b/docs/publishing.md
index 15813275de..29853955f1 100644
--- a/docs/publishing.md
+++ b/docs/publishing.md
@@ -140,4 +140,26 @@ process is used to release an emergency fix as version `6.5.1` in the patch rele
### When the release workflow is not triggered for some reason, such as a GitHub incident
-Ask one of the maintainers to force push master back to a previous commit and then push the release merge commit again.
+Ask one of the maintainers to trigger [the Deploy packages](https://github.com/backstage/backstage/actions/workflows/deploy_packages.yml) workflow with the "Unconditionally trigger the release job to run" checkbox set, on the `master` branch. Please validate first that nothing substantial has been pushed to master since the original failed release attempt! For this reason, it is wise to have the master branch locked until each release has gone through.
+
+### The release successfully published packages but failed when finalizing the release
+
+If it's an intermittent failure then it is safe to re-trigger the release workflow again.
+
+If re-triggering doesn't or won't help, the following steps can be taken to complete the release:
+
+- Manually create a git tag for the release if it doesn't already exist
+- Manually create a [new GitHub release](https://github.com/backstage/backstage/releases/new).
+- Trigger the repository dispatch workflow using the following request, replace `` with the release version **without** the `v` prefix:
+
+ ```shell
+ curl -L \
+ -X POST \
+ -H "Accept: application/vnd.github+json" \
+ -H "Authorization: Bearer $(gh auth token)" \
+ -H "X-GitHub-Api-Version: 2022-11-28" \
+ https://api.github.com/repos/backstage/backstage/dispatches \
+ -d '{"event_type":"release-published","client_payload":{"version":""}}'
+ ```
+
+- Manually post a message on Discord in the #announcements channel
diff --git a/docs/references/glossary.md b/docs/references/glossary.md
new file mode 100644
index 0000000000..8266dd02f7
--- /dev/null
+++ b/docs/references/glossary.md
@@ -0,0 +1,314 @@
+---
+id: glossary
+title: Glossary
+# prettier-ignore
+description: List of terms, abbreviations, and phrases used in Backstage, together with their explanations.
+---
+
+## Access Token
+
+A [token](#token) that gives access to perform actions on behalf of a user. It will commonly have a short expiry time, and be limited to a set of [scopes](#scope). Part of the [OAuth](#oauth) protocol, see [their docs](https://oauth.net/2/access-tokens/) for more information.
+
+## Administrator
+
+Someone responsible for installing and maintaining a Backstage [app](#app) for an organization. A [user role](#user-role).
+
+## API (catalog plugin)
+
+An [entity](#entity) representing a schema that two [components](#component) use to communicate. See [the catalog docs](https://backstage.io/docs/features/software-catalog/system-model) for more information.
+
+## App
+
+An installed instance of Backstage. An app can be local, intended for a single development group or individual developer, or organizational, for use by an entire enterprise.
+
+## Authorization Code
+
+A type of [OAuth flow](#oauth) used by confidential and public clients to get an [access token](#access-token). See [the OAuth docs](https://oauth.net/2/grant-types/authorization-code/) for more details.
+
+## Backstage
+
+1. A platform for creating and deploying [developer portals](#developer-portal), originally created at Spotify. Backstage is an incubation-stage open source project of the [Cloud Native Computing Foundation](#cloud-native-computing-foundation).
+
+2. [The Backstage Framework](#backstage-framework).
+
+## Backstage Framework
+
+The actual framework that Backstage [plugins](#plugin) sit on. This spans both the frontend and the backend, and includes core functionality such as declarative integration, config reading, database management, and many more.
+
+## Bundle
+
+1. A collection of [deployment artifacts](#deployment-artifacts).
+
+2. The output of the bundling process, which brings a collection of [packages](#package) into a single collection of [deployment artifacts](#deployment-artifacts).
+
+## Catalog
+
+1. The core Backstage plugin that handle ingestion and display of your organizations software products.
+
+2. An organization's portfolio of software products managed in Backstage.
+
+## Cloud Native Computing
+
+A set of technologies that "empower organizations to build and run scalable applications in modern, dynamic environments such as public, private, and hybrid clouds. Containers, service meshes, microservices, immutable infrastructure, and declarative APIs exemplify this approach." ([CNCF Cloud Native Definition v1.0](https://github.com/cncf/toc/blob/main/DEFINITION.md)).
+
+## Cloud Native Computing Foundation
+
+A foundation dedicated to the promotion and advancement of [Cloud Native Computing](#Cloud-Native-Computing). The mission of the Cloud Native Computing Foundation (CNCF) is "to make cloud native computing ubiquitous" ([CNCF Charter](https://github.com/cncf/foundation/blob/main/charter.md)).
+
+CNCF is part of the [Linux Foundation](https://www.linuxfoundation.org/).
+
+## CNCF
+
+Cloud Native Computing Foundation.
+
+## Code Grant
+
+[OAuth](#oauth) flow where the client receives an [authorization code](#code) that is passed to the backend to be exchanged for an [access token](#access-token) and possibly a [refresh token](#refresh-token).
+
+## Collator (search plugin)
+
+A transformer that takes streams of [documents](#documents) and outputs searchable texts. They're usually responsible for the data transformation and definition and collection process for specific [documents](#documents).
+
+## Component (catalog plugin)
+
+A software product that is managed in the Backstage [Software Catalog](#software-catalog). A component can be a service, website, library, data pipeline, or any other piece of software managed as a single project. See [the catalog docs](https://backstage.io/docs/features/software-catalog/system-model) for more information.
+
+## Condition (permission plugin)
+
+A mapping from a given entity to criteria a user must fulfill to perform an action on that entity. Examples include `isOwner`, `hasRole`, etc.
+
+## Conditional Decision (permission plugin)
+
+A type of [decision](#policy-decision-permission-plugin) that allows for per-user evaluation of [conditions](#condition-permission-plugin) against a [resource](#resource-permission-plugin). See [Conditional Decisions](../permissions/concepts.md#conditional-decisions)
+
+## Contributor
+
+A volunteer who helps to improve an OSS product such as Backstage. This volunteer effort includes coding, testing, technical writing, user support, and other work. A [user role](#user-role).
+
+## Declarative Integration
+
+A new paradigm for Backstage frontend plugins, allowing definition in config files instead of hosting complete React pages. See [the Frontend System](https://backstage.io/docs/frontend-system).
+
+## Decorator (search plugin)
+
+A transform stream that allows you to add additional information to [documents](#document-search-plugin).
+
+## Deployment Artifacts
+
+An executable or package file with all of the necessary information required to deploy the application at runtime. Deployment artifacts can be hosted on [package registries](#package-registry).
+
+## Developer
+
+1. Someone who writes code and develops software.
+
+2. A [user role](#user-role) defined as someone who uses a Backstage [app](#app). Might or might not actually be a software developer.
+
+## Developer Portal
+
+A centralized system comprising a user interface and database used to facilitate and document all the software projects within an organization. Backstage is both a developer portal and (by virtue of being based on plugins) a platform for creating developer portals.
+
+## Document (search plugin)
+
+An abstract concept representing something that can be found by searching for it. A document can represent a software entity, a TechDocs page, etc. Documents are made up of metadata fields, at a minimum -- a title, text, and location (as in a URL).
+
+## Domain
+
+An area that relates systems or entities to a business unit. See [the catalog docs](https://backstage.io/docs/features/software-catalog/system-model) for more information.
+
+## Entity
+
+What is cataloged in the Backstage Software Catalog. An entity is identified by a unique combination of [kind](#Kind), [namespace](#Namespace), and name. See [the catalog docs](https://backstage.io/docs/features/software-catalog/system-model) for more information.
+
+## Evaluator
+
+Someone who assesses whether Backstage is a suitable solution for their organization. The only [user role](#user-role) with a pre-deployment [use case](#use-case).
+
+## ID Token
+
+A [JWT](#jwt) used to prove a user's identity, containing for example the user's email. Part of [OpenID Connect](#openid-connect).
+
+## Index (search plugin)
+
+An index is a collection of [documents](#documents) of a given type.
+
+## Indexer (search plugin)
+
+A write stream of [documents](#documents).
+
+## Integrator
+
+Someone who develops one or more plugins that enable Backstage to interoperate with another software system. A [user role](#user-role).
+
+## JWT
+
+JSON Web Token.
+
+A popular JSON based token format that is commonly encrypted and/or signed, see [the Wikipedia article](https://en.wikipedia.org/wiki/JSON_Web_Token) for more details.
+
+## Kind
+
+Classification of an [entity](#Entity) in the Backstage Software Catalog, for example _service_, _database_, and _team_.
+
+## Kubernetes (CNCF Project)
+
+An open-source system for automating deployment, scaling, and management of containerized applications.
+
+## Kubernetes (Backstage plugin)
+
+A core Backstage plugin enabling a service owner-focused view of Kubernetes resources.
+
+## Local Package
+
+One of the [packages](#package) within a [monorepo](#monorepo). These package may or may not also be published to a [package registry](#package-registry).
+
+## Monorepo
+
+1. A single repository for a collection of related software projects, such as all projects belonging to an organization.
+
+2. A project layout that consists of multiple [packages](#package) within a single project, where packages are able to have local dependencies on each other. Often enabled through tooling such as [lerna](https://lerna.js.org/) and [yarn workspaces](https://classic.yarnpkg.com/en/docs/workspaces/)
+
+## Namespace (catalog plugin)
+
+An optional attribute that can be used to organize [entities](#entity).
+
+## Objective
+
+A high level goal of a [user role](#User-Role) interacting with Backstage. Some goals of the _administrator_ user role, for example, are to maintain an instance ("app") of Backstage; to add and update functionality via plugins; and to troubleshoot issues.
+
+## OAuth
+
+Refers to: OAuth 2.0, a standard protocol for authorization. See [oauth.net/2/](https://oauth.net/2/).
+
+## Offline Access
+
+[OAuth](#oauth) flow that results in both a refresh token and [access token](#access-token), where the refresh token has a long expiration or never expires, and can be used to request more access tokens in the future. This lets the user go "offline" with respect to the token issuer, but still be able to request more tokens at a later time without further direct interaction for the user.
+
+## OpenID Connect
+
+A layer on top of [OAuth](#oauth) which standardises authentication. See [the Wikipedia article](https://en.wikipedia.org/wiki/OpenID_Connect) for more details.
+
+## OSS
+
+Open source software.
+
+## Package
+
+A package in the Node.js ecosystem, often published to a [package registry](#package-registry).
+
+## Package Registry
+
+A service that hosts [packages](#package). The most prominent example is [NPM](https://www.npmjs.com/).
+
+## Package Role
+
+The declared role of a package, see [package roles](../local-dev/cli-build-system.md#package-roles).
+
+## Permission (core Backstage plugin)
+
+A core Backstage plugin and framework that allows restriction of actions to specific users. See [their docs](https://backstage.io/docs/permissions/overview) for more information.
+
+## Permission (permission plugin)
+
+A restriction on any action that a user can perform against a specific [resource](#resource-permission-plugin) or set of resources. See [the permission framework docs](../permissions/concepts.md#permission) for more details.
+
+## Persona (use cases)
+
+Alternative term for a [User Role](#user-role).
+
+## Plugin
+
+A module in Backstage that adds a feature. All functionality outside of [the Backstage framework](#backstage-framework), even the core features, are implemented as plugins.
+
+## Policy (permission plugin)
+
+A construct that takes in a Backstage user and a [permission](#permission-permission-plugin) and returns a [policy decision](#policy-decision-permission-plugin).
+
+## Policy Decision (permission plugin)
+
+A specific response to a user's request to perform an action on a list of [resources](#resource-permission-plugin). Can be either `Approve`, `Deny` or [`Conditional`](#conditional-decision-permission-plugin).
+
+## Popup
+
+A separate browser window opened on top of the previous one.
+
+## Procedure (use cases)
+
+A set of actions that accomplish a goal, usually as part of a [use case](#Use-Case). A procedure can be high-level, containing other procedures, or can be as simple as a single [task](#Task).
+
+## Query Translators (search plugin)
+
+An abstraction layer between a search engine and the [Backstage Search](#search) backend. Allows for translation into queries against your search engine.
+
+## Refresh token
+
+A special token that an [OAuth](#oauth) client can use to get a new [access token](#access-token) when the latter expires.
+
+https://oauth.net/2/refresh-tokens/
+
+## Resource (catalog plugin)
+
+An [entity](#entity) that represents a piece of physical or virtual infrastructure, for example a database, required by a component. See [the catalog docs](https://backstage.io/docs/features/software-catalog/system-model) for more information.
+
+## Resource (permission plugin)
+
+A representation of an object that a user interacts with and that can be permissioned. Not to be confused with [Software Catalog resources](#resource-catalog-plugin).
+
+## Rule (permission plugin)
+
+A predicate-based control that taps into a [resource](#resource-permission-plugin)'s data.
+
+## Role
+
+See [User Role](#User-Role).
+
+## Scaffolder
+
+Known as [Software Templates](#software-templates).
+
+## Scope
+
+A string that describes a certain type of access that can be granted to a user using OAuth, usually in conjunction with [access tokens](#access-token).
+
+## Search
+
+A Backstage plugin that provides a framework for searching a Backstage [app](#app), including the [Software Catalog](#Software-Catalog) and [TechDocs](#TechDocs). A core feature of Backstage.
+
+## Search Engine (Backstage search)
+
+Existing search technology that [Backstage Search](#search) can take advantage of through its modular design. Lunr is the default search in Backstage Search.
+
+## Software Catalog
+
+A Backstage plugin that provides a framework to keep track of ownership and metadata for any number and type of software [components](#component). A core feature of Backstage.
+
+## Software Templates
+
+A Backstage plugin with which to create [components](#component) in Backstage. A core feature of Backstage. Also known as the scaffolder.
+
+## Software Template
+
+A "skeleton" software project created and managed in the Backstage Software Templates tool.
+
+## System (catalog plugin)
+
+A system is a collection of [entities](#entity) that cooperate to perform a function. A system generally provides one or a few public APIs and consists of a handful of components, resources and private APIs. See [the catalog docs](https://backstage.io/docs/features/software-catalog/system-model) for more information.
+
+## Task (use cases)
+
+A low-level step-by-step [Procedure](#Procedure).
+
+## TechDocs
+
+A documentation solution that manages and generates a technical documentation from Markdown files stored with software component code. A core feature of Backstage.
+
+## Token
+
+A string containing information.
+
+## Use Case
+
+A purpose for which a [user role](#User-Role) interacts with Backstage. Related to [Objective](#objective): An objective is _what_ the user wants to do; a use case is _how_ the user does it.
+
+## User Role
+
+A class of Backstage user for purposes of analyzing [use cases](#use-case). One of: evaluator; administrator; developer; integrator; and contributor.
diff --git a/docs/references/writing-a-glossary-entry.md b/docs/references/writing-a-glossary-entry.md
new file mode 100644
index 0000000000..90a13e9675
--- /dev/null
+++ b/docs/references/writing-a-glossary-entry.md
@@ -0,0 +1,89 @@
+
+
+## Entry format
+
+A glossary entry should consist of two required things and two optional things,
+
+1. a header,
+2. a sentence defining what the thing is, and
+3. an optional additional sentence or two giving more context into what the thing is and possible pointers on where to find more information, and possibly
+4. links out to additional information.
+
+### The header
+
+The header (and first sentence) are the way users will discover your entry. The header has two parts,
+
+1. The actual term, this should be as minimal as possible. You can fit more information into the body of the entry.
+2. A disambiguator, this allows users to understand when certain entries are context specific or may have different meanings in different contexts.
+
+### The term
+
+Think of this as a dictionary. Single words are the base units and most definitions refer to a single word. Acronyms are acceptable. An adjective and a noun are also useful, `conditional decision`, `backstage framework`, etc. After 3 or _maybe_ 4 words, you should be trying to simplify and place more content in your entry instead.
+
+In the title, your term should be in Title Case. It should also be in the singular.
+
+### The disambiguator
+
+The goal of a disambiguator is to differentiate terms that may have context specific meanings. This can have two interpretations, either
+
+1. There are multiple terms and we need to create clear boundaries between their contexts, or
+2. There are single terms that have meanings that are specific to a single context.
+
+A good example for the first would be resources. Both the catalog plugin and permission plugin have the idea of resources, but they do not refer to the same thing.
+
+A good example for the second would be `Query translators`. In our case, this refers to _search_ query translators, but it may refer to database query translators or the latter. By disambiguating early, we avoid confusion.
+
+Beyond the above advice, there are no strong rules for when or when not to use a disambiguator. It is up to the entry writer and the reviewer.
+
+Your disambiguator should be short, but need not be a single word -- examples include "use cases", "search plugin", "catalog plugin". When used the disambiguator should have the following form, `({disambiguator})` (a parenthesis enclosed term) and will sit to the right of the title. Your disambiguator should use lower case.
+
+### Putting it together
+
+Your title should look like `{word} ({disambiguator})`. Entries are not nested besides the disambiguator and should sit at `##`.
+
+## The first sentence
+
+Your first sentence should include the what for your word. Your goal should be to answer the question, "What is x?". Do _not_ use the word in your first sentence. If you are using other words in the glossary in your definition, you should reference them following [the Referencing section](#referencing).
+
+If you have a term that could mean multiple things in the same context or the context is difficult to add boundaries for, you should separate each meaning into a separate section of the entry using an ordered list. For example,
+
+```md
+## Bundle
+
+1. A deployment artifact.
+2. A collection of packages.
+```
+
+## Additional sentences
+
+You may not be able to fully define what you want in a single sentence. Use more sentences to flush out the meaning; however, if you start to get into the weeds, you should reconsider rehousing that information into a plugin specific "concepts" section. It's okay for words to be duplicated across both if the concepts section adds meaningful technical or architectural discussion.
+
+## Linking out to additional resources
+
+If the term you're defining has a better or more in depth source for that information, link to it. This can include plugin specific concept documents, external documentation, or core framework documentation.
+
+You should format these links as
+
+```md
+See [the glossary](./glossary.md) for more details.
+```
+
+. Additional links beyond the first one should be appended with `and` or `or` as necessary.
+
+## Putting it all together
+
+```md
+## Component (catalog plugin)
+
+A software product that is managed in the Backstage [Software Catalog](#software-catalog). A component can be a service, website, library, data pipeline, or any other piece of software managed as a single project. See [the catalog docs](https://backstage.io/docs/features/software-catalog/system-model) for more information.
+```
+
+## Referencing
+
+### In the glossary
+
+You should reference often. Words are defined recursively, especially in tech and un-nesting some terms requires additional glossary items. It's okay if your terms require multiple other terms to build on. Your goal with referencing is to provide small reusable words that you can trust users know the definition of.
+
+### In the text
+
+You should reference (and create a new entry if it doesn't exist) whenever you see a new word that a reasonable reader may not know. If you've already added a reference in your current passage -- in the glossary this will be your entry -- don't add a new reference. References should point initially to the glossary and if there is additional information (like a concepts page), the glossary should have a link to that page.
diff --git a/docs/releases/v1.22.0.md b/docs/releases/v1.22.0.md
index e5ce345ccc..9f9295fb96 100644
--- a/docs/releases/v1.22.0.md
+++ b/docs/releases/v1.22.0.md
@@ -39,7 +39,7 @@ Contributed by [@davidfestal](https://github.com/davidfestal) in [#18862](https:
### New Scaffolder action `gitlab:issues:create`
-You can now create GitHub issues in your scaffolder flows! Contributed by [@elaine-mattos](https://github.com/elaine-mattos) in [#21929](https://github.com/backstage/backstage/pull/21929)
+You can now create GitLab issues in your scaffolder flows! Contributed by [@elaine-mattos](https://github.com/elaine-mattos) in [#21929](https://github.com/backstage/backstage/pull/21929)
### New Scaffolder action `gitlab:repo:push`
diff --git a/docs/releases/v1.23.0-next.1-changelog.md b/docs/releases/v1.23.0-next.1-changelog.md
new file mode 100644
index 0000000000..19bdba21dc
--- /dev/null
+++ b/docs/releases/v1.23.0-next.1-changelog.md
@@ -0,0 +1,3250 @@
+# Release v1.23.0-next.1
+
+## @backstage/catalog-client@1.6.0-next.1
+
+### Minor Changes
+
+- 43dad25: Add API to get location by entity
+
+### Patch Changes
+
+- c04c42b: Internal updates to auto-generated files.
+- Updated dependencies
+ - @backstage/catalog-model@1.4.4-next.0
+ - @backstage/errors@1.2.3
+
+## @backstage/core-compat-api@0.2.0-next.1
+
+### Minor Changes
+
+- e586f79: Add support to the new analytics api.
+
+### Patch Changes
+
+- edfd3a5: Updated dependency `@oriflame/backstage-plugin-score-card` to `^0.8.0`.
+- bc621aa: Updates to use the new `RouteResolutionsApi`.
+- 46b63de: Allow external route refs in the new system to have a `defaultTarget` pointing to a route that it'll resolve to by default if no explicit bindings were made by the adopter.
+- Updated dependencies
+ - @backstage/frontend-plugin-api@0.6.0-next.1
+ - @backstage/core-plugin-api@1.8.3-next.0
+ - @backstage/core-app-api@1.11.4-next.0
+ - @backstage/version-bridge@1.0.7
+
+## @backstage/core-components@0.14.0-next.0
+
+### Minor Changes
+
+- 281e8c6: **BREAKING**: Removed the `SidebarIntro` component as it was providing instructions for features that do not exist, along with `IntroCard`. If you were relying on this component and want to keep using it you can refer to the original implementations of [`SidebarIntro`](https://github.com/backstage/backstage/blob/80f2413334ed9b221ec3c2b7c22fa737ad8d8885/packages/core-components/src/layout/Sidebar/Intro.tsx#L149) and [`IntroCard`](https://github.com/backstage/backstage/blob/80f2413334ed9b221ec3c2b7c22fa737ad8d8885/packages/core-components/src/layout/Sidebar/Intro.tsx#L100).
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/core-plugin-api@1.8.3-next.0
+ - @backstage/config@1.1.1
+ - @backstage/errors@1.2.3
+ - @backstage/theme@0.5.0
+ - @backstage/version-bridge@1.0.7
+
+## @backstage/frontend-app-api@0.6.0-next.1
+
+### Minor Changes
+
+- bdf4a8e: **BREAKING**: Removed the experimental `createExtensionTree` API.
+
+### Patch Changes
+
+- bc621aa: Updates to use the new `RouteResolutionsApi`.
+- e586f79: Wrap the root element with the analytics context to ensure it always exists for all extensions.
+- fb9b5e7: The default `ComponentsApi` implementation now uses the `ComponentRef` ID as the component key, rather than the reference instance. This fixes a bug where duplicate installations of `@backstage/frontend-plugin-api` would break the app.
+- 46b63de: Allow external route refs in the new system to have a `defaultTarget` pointing to a route that it'll resolve to by default if no explicit bindings were made by the adopter.
+- Updated dependencies
+ - @backstage/frontend-plugin-api@0.6.0-next.1
+ - @backstage/core-components@0.14.0-next.0
+ - @backstage/core-plugin-api@1.8.3-next.0
+ - @backstage/core-app-api@1.11.4-next.0
+ - @backstage/config@1.1.1
+ - @backstage/errors@1.2.3
+ - @backstage/theme@0.5.0
+ - @backstage/types@1.1.1
+ - @backstage/version-bridge@1.0.7
+
+## @backstage/frontend-plugin-api@0.6.0-next.1
+
+### Minor Changes
+
+- e586f79: **BREAKING**: Replace default plugin extension and plugin ids to be `app` instead of `root`.
+
+### Patch Changes
+
+- bc621aa: Added `RouteResolutionsApi` as a replacement for the routing context.
+- 1e61ad3: App component extensions are no longer wrapped in an `ExtensionBoundary`, allowing them to inherit the outer context instead.
+- 46b63de: Allow external route refs in the new system to have a `defaultTarget` pointing to a route that it'll resolve to by default if no explicit bindings were made by the adopter.
+- Updated dependencies
+ - @backstage/core-components@0.14.0-next.0
+ - @backstage/core-plugin-api@1.8.3-next.0
+ - @backstage/types@1.1.1
+ - @backstage/version-bridge@1.0.7
+
+## @backstage/integration@1.9.0-next.0
+
+### Minor Changes
+
+- e27b7f3: Fix rate limit detection by looking for HTTP status code 429 and updating the header `x-ratelimit-remaining` to look for in case of a 403 code is returned
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/config@1.1.1
+ - @backstage/errors@1.2.3
+
+## @backstage/plugin-analytics-module-ga@0.2.0-next.0
+
+### Minor Changes
+
+- e586f79: Add support to the new analytics api.
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/frontend-plugin-api@0.6.0-next.1
+ - @backstage/core-components@0.14.0-next.0
+ - @backstage/core-plugin-api@1.8.3-next.0
+ - @backstage/config@1.1.1
+
+## @backstage/plugin-analytics-module-ga4@0.2.0-next.0
+
+### Minor Changes
+
+- e586f79: Add support to the new analytics api.
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/frontend-plugin-api@0.6.0-next.1
+ - @backstage/core-components@0.14.0-next.0
+ - @backstage/core-plugin-api@1.8.3-next.0
+ - @backstage/config@1.1.1
+
+## @backstage/plugin-analytics-module-newrelic-browser@0.1.0-next.0
+
+### Minor Changes
+
+- e586f79: Add support to the new analytics api.
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/frontend-plugin-api@0.6.0-next.1
+ - @backstage/core-components@0.14.0-next.0
+ - @backstage/core-plugin-api@1.8.3-next.0
+ - @backstage/config@1.1.1
+
+## @backstage/plugin-auth-backend-module-aws-alb-provider@0.1.0-next.0
+
+### Minor Changes
+
+- 23a98f8: Migrated the AWS ALB auth provider to new `@backstage/plugin-auth-backend-module-aws-alb-provider` module package.
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/backend-plugin-api@0.6.10-next.1
+ - @backstage/backend-common@0.21.0-next.1
+ - @backstage/plugin-auth-backend@0.20.4-next.1
+ - @backstage/errors@1.2.3
+ - @backstage/plugin-auth-node@0.4.4-next.1
+
+## @backstage/plugin-azure-sites-backend@0.2.0-next.1
+
+### Minor Changes
+
+- 28610f4: **BREAKING**: `catalogApi` and `permissionsApi` are now a requirement to be passed through to the `createRouter` function.
+
+ You can fix the typescript issues by passing through the required dependencies like the below `diff` shows:
+
+ ```diff
+ import {
+ createRouter,
+ AzureSitesApi,
+ } from '@backstage/plugin-azure-sites-backend';
+ import { Router } from 'express';
+ import { PluginEnvironment } from '../types';
+
+ export default async function createPlugin(
+ env: PluginEnvironment,
+ ): Promise {
+ + const catalogClient = new CatalogClient({
+ + discoveryApi: env.discovery,
+ + });
+
+ return await createRouter({
+ logger: env.logger,
+ azureSitesApi: AzureSitesApi.fromConfig(env.config),
+ + catalogApi: catalogClient,
+ + permissionsApi: env.permissions,
+ });
+ }
+ ```
+
+### Patch Changes
+
+- 5a409bb: Azure Sites `start` and `stop` action is now protected with the Permissions framework.
+
+ The below example describes an action that forbids anyone but the owner of the catalog entity to trigger actions towards a site tied to an entity.
+
+ ```typescript
+ // packages/backend/src/plugins/permission.ts
+ import { azureSitesActionPermission } from '@backstage/plugin-azure-sites-common';
+ ...
+ class TestPermissionPolicy implements PermissionPolicy {
+ async handle(request: PolicyQuery, user?: BackstageIdentityResponse): Promise {
+ if (isPermission(request.permission, azureSitesActionPermission)) {
+ return createCatalogConditionalDecision(
+ request.permission,
+ catalogConditions.isEntityOwner({
+ claims: user?.identity.ownershipEntityRefs ?? [],
+ }),
+ );
+ }
+ ...
+ return {
+ result: AuthorizeResult.ALLOW,
+ };
+ }
+ ...
+ }
+ ```
+
+- Updated dependencies
+ - @backstage/catalog-model@1.4.4-next.0
+ - @backstage/catalog-client@1.6.0-next.1
+ - @backstage/backend-common@0.21.0-next.1
+ - @backstage/plugin-azure-sites-common@0.1.2-next.0
+ - @backstage/config@1.1.1
+ - @backstage/errors@1.2.3
+ - @backstage/plugin-auth-node@0.4.4-next.1
+ - @backstage/plugin-permission-common@0.7.12
+ - @backstage/plugin-permission-node@0.7.21-next.1
+
+## @backstage/plugin-catalog-backend@1.17.0-next.1
+
+### Minor Changes
+
+- 43dad25: Add API to get location by entity
+
+### Patch Changes
+
+- 89b674c: Minor performance improvement for `queryEntities` when the limit is 0.
+- efa8160: Rollback the change for wildcard discovery, this fixes a bug with the `AzureUrlReader` not working with wildcard paths
+- Updated dependencies
+ - @backstage/catalog-model@1.4.4-next.0
+ - @backstage/catalog-client@1.6.0-next.1
+ - @backstage/backend-plugin-api@0.6.10-next.1
+ - @backstage/backend-common@0.21.0-next.1
+ - @backstage/integration@1.9.0-next.0
+ - @backstage/backend-openapi-utils@0.1.3-next.1
+ - @backstage/backend-tasks@0.5.15-next.1
+ - @backstage/config@1.1.1
+ - @backstage/errors@1.2.3
+ - @backstage/types@1.1.1
+ - @backstage/plugin-auth-node@0.4.4-next.1
+ - @backstage/plugin-catalog-common@1.0.21-next.0
+ - @backstage/plugin-catalog-node@1.6.2-next.1
+ - @backstage/plugin-events-node@0.2.19-next.1
+ - @backstage/plugin-permission-common@0.7.12
+ - @backstage/plugin-permission-node@0.7.21-next.1
+ - @backstage/plugin-search-backend-module-catalog@0.1.14-next.1
+
+## @backstage/plugin-catalog-backend-module-github@0.5.0-next.1
+
+### Minor Changes
+
+- a950ed0: Prevent Entity Providers from eliminating Users and Groups from the DB when the synchronisation fails
+
+### Patch Changes
+
+- 9477133: Decreased number of teams fetched by GraphQL Query responsible for fetching Teams and Members in organization, due to timeouts when running against big organizations
+- Updated dependencies
+ - @backstage/catalog-model@1.4.4-next.0
+ - @backstage/catalog-client@1.6.0-next.1
+ - @backstage/plugin-catalog-backend@1.17.0-next.1
+ - @backstage/backend-plugin-api@0.6.10-next.1
+ - @backstage/backend-common@0.21.0-next.1
+ - @backstage/integration@1.9.0-next.0
+ - @backstage/backend-tasks@0.5.15-next.1
+ - @backstage/config@1.1.1
+ - @backstage/plugin-catalog-common@1.0.21-next.0
+ - @backstage/plugin-catalog-node@1.6.2-next.1
+ - @backstage/plugin-events-node@0.2.19-next.1
+
+## @backstage/plugin-scaffolder@1.18.0-next.1
+
+### Minor Changes
+
+- 9b9c05c: Updating the `EntityPicker` to only select `kind` `metadata.name` and `metadata.namespace` by default to improve performance on larger datasets.
+
+### Patch Changes
+
+- 31f0a0a: Added `ScaffolderPageContextMenu` to `ActionsPage`, `ListTaskPage`, and `TemplateEditorPage` so that you can more easily navigate between these pages
+- Updated dependencies
+ - @backstage/frontend-plugin-api@0.6.0-next.1
+ - @backstage/plugin-scaffolder-react@1.8.0-next.1
+ - @backstage/core-compat-api@0.2.0-next.1
+ - @backstage/core-components@0.14.0-next.0
+ - @backstage/catalog-model@1.4.4-next.0
+ - @backstage/catalog-client@1.6.0-next.1
+ - @backstage/core-plugin-api@1.8.3-next.0
+ - @backstage/integration@1.9.0-next.0
+ - @backstage/plugin-catalog-react@1.9.4-next.1
+ - @backstage/integration-react@1.1.24-next.0
+ - @backstage/errors@1.2.3
+ - @backstage/types@1.1.1
+ - @backstage/plugin-catalog-common@1.0.21-next.0
+ - @backstage/plugin-permission-react@0.4.20-next.0
+ - @backstage/plugin-scaffolder-common@1.5.0-next.1
+
+## @backstage/plugin-scaffolder-backend@1.21.0-next.1
+
+### Minor Changes
+
+- 78c100b: Support providing an overriding token for `fetch:template`, `fetch:plain` and `fetch:file` when interacting with upstream integrations
+
+### Patch Changes
+
+- 09f8b31: Simple typo fix in the fetch:template action example on the word 'skeleton'.
+- f6792c6: Move the `NODE_OPTIONS` messaging for `--no-node-snapshot` to the `SecureTemplater` in order to get better messaging at runtime
+- e1c479d: When using node 20+ the `scaffolder-backend` will now throw an error at startup if the `--no-node-snapshot` option was
+ not provided to node.
+- e0e5afe: Add option to configure nunjucks with the `trimBlocks` and `lstripBlocks` options in the fetch:template action
+- Updated dependencies
+ - @backstage/plugin-scaffolder-backend-module-github@0.2.0-next.1
+ - @backstage/catalog-model@1.4.4-next.0
+ - @backstage/catalog-client@1.6.0-next.1
+ - @backstage/backend-plugin-api@0.6.10-next.1
+ - @backstage/backend-common@0.21.0-next.1
+ - @backstage/integration@1.9.0-next.0
+ - @backstage/plugin-scaffolder-node@0.3.0-next.1
+ - @backstage/backend-tasks@0.5.15-next.1
+ - @backstage/config@1.1.1
+ - @backstage/errors@1.2.3
+ - @backstage/types@1.1.1
+ - @backstage/plugin-auth-node@0.4.4-next.1
+ - @backstage/plugin-catalog-backend-module-scaffolder-entity-model@0.1.7-next.1
+ - @backstage/plugin-catalog-node@1.6.2-next.1
+ - @backstage/plugin-permission-common@0.7.12
+ - @backstage/plugin-permission-node@0.7.21-next.1
+ - @backstage/plugin-scaffolder-backend-module-azure@0.1.2-next.1
+ - @backstage/plugin-scaffolder-backend-module-bitbucket@0.1.2-next.1
+ - @backstage/plugin-scaffolder-backend-module-gerrit@0.1.2-next.1
+ - @backstage/plugin-scaffolder-backend-module-gitlab@0.2.13-next.1
+ - @backstage/plugin-scaffolder-common@1.5.0-next.1
+
+## @backstage/plugin-scaffolder-backend-module-github@0.2.0-next.1
+
+### Minor Changes
+
+- fd5eb1c: Allow to force the creation of a pull request from a forked repository
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/backend-plugin-api@0.6.10-next.1
+ - @backstage/backend-common@0.21.0-next.1
+ - @backstage/integration@1.9.0-next.0
+ - @backstage/plugin-scaffolder-node@0.3.0-next.1
+ - @backstage/config@1.1.1
+ - @backstage/errors@1.2.3
+
+## @backstage/plugin-scaffolder-node@0.3.0-next.1
+
+### Minor Changes
+
+- 78c100b: Support providing an overriding token for `fetch:template`, `fetch:plain` and `fetch:file` when interacting with upstream integrations
+
+### Patch Changes
+
+- e0e5afe: Add option to configure nunjucks with the `trimBlocks` and `lstripBlocks` options in the fetch:template action
+- Updated dependencies
+ - @backstage/catalog-model@1.4.4-next.0
+ - @backstage/backend-plugin-api@0.6.10-next.1
+ - @backstage/backend-common@0.21.0-next.1
+ - @backstage/integration@1.9.0-next.0
+ - @backstage/errors@1.2.3
+ - @backstage/types@1.1.1
+ - @backstage/plugin-scaffolder-common@1.5.0-next.1
+
+## @backstage/plugin-scaffolder-react@1.8.0-next.1
+
+### Minor Changes
+
+- b07ec70: Use more distinguishable icons for link (`Link`) and text output (`Description`).
+
+### Patch Changes
+
+- 3f60ad5: fix for: converting circular structure to JSON error
+- 31f0a0a: Added `ScaffolderPageContextMenu` to `ActionsPage`, `ListTaskPage`, and `TemplateEditorPage` so that you can more easily navigate between these pages
+- 82affc7: Fix issue where `ui:schema` was replaced with an empty object if `dependencies` is defined
+- Updated dependencies
+ - @backstage/core-components@0.14.0-next.0
+ - @backstage/catalog-model@1.4.4-next.0
+ - @backstage/catalog-client@1.6.0-next.1
+ - @backstage/core-plugin-api@1.8.3-next.0
+ - @backstage/plugin-catalog-react@1.9.4-next.1
+ - @backstage/theme@0.5.0
+ - @backstage/types@1.1.1
+ - @backstage/version-bridge@1.0.7
+ - @backstage/plugin-scaffolder-common@1.5.0-next.1
+
+## @backstage/plugin-techdocs@1.10.0-next.1
+
+### Minor Changes
+
+- af4d147: Updated the styling for code tags to avoid word break.
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/frontend-plugin-api@0.6.0-next.1
+ - @backstage/core-compat-api@0.2.0-next.1
+ - @backstage/core-components@0.14.0-next.0
+ - @backstage/catalog-model@1.4.4-next.0
+ - @backstage/core-plugin-api@1.8.3-next.0
+ - @backstage/integration@1.9.0-next.0
+ - @backstage/plugin-catalog-react@1.9.4-next.1
+ - @backstage/plugin-search-react@1.7.6-next.1
+ - @backstage/integration-react@1.1.24-next.0
+ - @backstage/plugin-techdocs-react@1.1.16-next.0
+ - @backstage/config@1.1.1
+ - @backstage/errors@1.2.3
+ - @backstage/theme@0.5.0
+ - @backstage/plugin-search-common@1.2.10
+
+## @backstage/app-defaults@1.4.8-next.1
+
+### Patch Changes
+
+- 7da67ce: Change `defaultScopes` for Bitbucket auth from invalid `team` to `account`.
+- Updated dependencies
+ - @backstage/core-components@0.14.0-next.0
+ - @backstage/core-plugin-api@1.8.3-next.0
+ - @backstage/core-app-api@1.11.4-next.0
+ - @backstage/theme@0.5.0
+ - @backstage/plugin-permission-react@0.4.20-next.0
+
+## @backstage/backend-app-api@0.5.11-next.1
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/backend-plugin-api@0.6.10-next.1
+ - @backstage/backend-common@0.21.0-next.1
+ - @backstage/backend-tasks@0.5.15-next.1
+ - @backstage/cli-common@0.1.13
+ - @backstage/cli-node@0.2.2
+ - @backstage/config@1.1.1
+ - @backstage/config-loader@1.6.1
+ - @backstage/errors@1.2.3
+ - @backstage/types@1.1.1
+ - @backstage/plugin-auth-node@0.4.4-next.1
+ - @backstage/plugin-permission-node@0.7.21-next.1
+
+## @backstage/backend-common@0.21.0-next.1
+
+### Patch Changes
+
+- 1f020fe: Support `token` in `readTree`, `readUrl` and `search`
+- e27b7f3: Fix rate limit detection by looking for HTTP status code 429 and updating the header `x-ratelimit-remaining` to look for in case of a 403 code is returned
+- Updated dependencies
+ - @backstage/backend-plugin-api@0.6.10-next.1
+ - @backstage/integration@1.9.0-next.0
+ - @backstage/backend-app-api@0.5.11-next.1
+ - @backstage/backend-dev-utils@0.1.3
+ - @backstage/cli-common@0.1.13
+ - @backstage/config@1.1.1
+ - @backstage/config-loader@1.6.1
+ - @backstage/errors@1.2.3
+ - @backstage/integration-aws-node@0.1.8
+ - @backstage/types@1.1.1
+
+## @backstage/backend-defaults@0.2.10-next.1
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/backend-plugin-api@0.6.10-next.1
+ - @backstage/backend-common@0.21.0-next.1
+ - @backstage/backend-app-api@0.5.11-next.1
+
+## @backstage/backend-dynamic-feature-service@0.1.1-next.1
+
+### Patch Changes
+
+- 8723c5a: Fix wrong `alpha` support in dynamic plugins support: the `alpha` sub-package should not be required for the dynamic plugins to be loaded under the new backend system.
+- Updated dependencies
+ - @backstage/plugin-catalog-backend@1.17.0-next.1
+ - @backstage/backend-plugin-api@0.6.10-next.1
+ - @backstage/backend-common@0.21.0-next.1
+ - @backstage/plugin-scaffolder-node@0.3.0-next.1
+ - @backstage/backend-tasks@0.5.15-next.1
+ - @backstage/cli-common@0.1.13
+ - @backstage/cli-node@0.2.2
+ - @backstage/config@1.1.1
+ - @backstage/errors@1.2.3
+ - @backstage/types@1.1.1
+ - @backstage/plugin-auth-node@0.4.4-next.1
+ - @backstage/plugin-events-backend@0.2.19-next.1
+ - @backstage/plugin-events-node@0.2.19-next.1
+ - @backstage/plugin-permission-common@0.7.12
+ - @backstage/plugin-permission-node@0.7.21-next.1
+ - @backstage/plugin-search-backend-node@1.2.14-next.1
+ - @backstage/plugin-search-common@1.2.10
+
+## @backstage/backend-openapi-utils@0.1.3-next.1
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/backend-plugin-api@0.6.10-next.1
+ - @backstage/errors@1.2.3
+
+## @backstage/backend-plugin-api@0.6.10-next.1
+
+### Patch Changes
+
+- 1f020fe: Support `token` in `readTree`, `readUrl` and `search`
+- Updated dependencies
+ - @backstage/backend-tasks@0.5.15-next.1
+ - @backstage/config@1.1.1
+ - @backstage/types@1.1.1
+ - @backstage/plugin-auth-node@0.4.4-next.1
+ - @backstage/plugin-permission-common@0.7.12
+
+## @backstage/backend-tasks@0.5.15-next.1
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/backend-common@0.21.0-next.1
+ - @backstage/config@1.1.1
+ - @backstage/errors@1.2.3
+ - @backstage/types@1.1.1
+
+## @backstage/backend-test-utils@0.3.0-next.1
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/backend-plugin-api@0.6.10-next.1
+ - @backstage/backend-common@0.21.0-next.1
+ - @backstage/backend-app-api@0.5.11-next.1
+ - @backstage/config@1.1.1
+ - @backstage/errors@1.2.3
+ - @backstage/types@1.1.1
+ - @backstage/plugin-auth-node@0.4.4-next.1
+
+## @backstage/catalog-model@1.4.4-next.0
+
+### Patch Changes
+
+- 07e7d12: Fix wording in API reference
+- Updated dependencies
+ - @backstage/errors@1.2.3
+ - @backstage/types@1.1.1
+
+## @backstage/cli@0.25.2-next.1
+
+### Patch Changes
+
+- b58673e: Upgrade jest
+- 08804c3: Fixed an issue that would cause an invalid `__backstage-autodetected-plugins__.js` to be written when using experimental module discovery.
+- Updated dependencies
+ - @backstage/catalog-model@1.4.4-next.0
+ - @backstage/integration@1.9.0-next.0
+ - @backstage/cli-common@0.1.13
+ - @backstage/cli-node@0.2.2
+ - @backstage/config@1.1.1
+ - @backstage/config-loader@1.6.1
+ - @backstage/errors@1.2.3
+ - @backstage/eslint-plugin@0.1.5-next.0
+ - @backstage/release-manifests@0.0.11
+ - @backstage/types@1.1.1
+
+## @backstage/core-app-api@1.11.4-next.0
+
+### Patch Changes
+
+- 7da67ce: Change `defaultScopes` for Bitbucket auth from invalid `team` to `account`.
+- Updated dependencies
+ - @backstage/core-plugin-api@1.8.3-next.0
+ - @backstage/config@1.1.1
+ - @backstage/types@1.1.1
+ - @backstage/version-bridge@1.0.7
+
+## @backstage/core-plugin-api@1.8.3-next.0
+
+### Patch Changes
+
+- e586f79: Throw a more specific exception `NotImplementedError` when an API implementation cannot be found.
+- Updated dependencies
+ - @backstage/config@1.1.1
+ - @backstage/errors@1.2.3
+ - @backstage/types@1.1.1
+ - @backstage/version-bridge@1.0.7
+
+## @backstage/create-app@0.5.11-next.1
+
+### Patch Changes
+
+- Bumped create-app version.
+- Updated dependencies
+ - @backstage/cli-common@0.1.13
+
+## @backstage/dev-utils@1.0.27-next.1
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/core-components@0.14.0-next.0
+ - @backstage/catalog-model@1.4.4-next.0
+ - @backstage/core-plugin-api@1.8.3-next.0
+ - @backstage/app-defaults@1.4.8-next.1
+ - @backstage/core-app-api@1.11.4-next.0
+ - @backstage/plugin-catalog-react@1.9.4-next.1
+ - @backstage/integration-react@1.1.24-next.0
+ - @backstage/theme@0.5.0
+
+## @backstage/frontend-test-utils@0.1.2-next.1
+
+### Patch Changes
+
+- bc621aa: Updates to use the new `RouteResolutionsApi`.
+- Updated dependencies
+ - @backstage/frontend-plugin-api@0.6.0-next.1
+ - @backstage/frontend-app-api@0.6.0-next.1
+ - @backstage/test-utils@1.5.0-next.1
+ - @backstage/types@1.1.1
+
+## @backstage/integration-react@1.1.24-next.0
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/core-plugin-api@1.8.3-next.0
+ - @backstage/integration@1.9.0-next.0
+ - @backstage/config@1.1.1
+
+## @backstage/repo-tools@0.6.0-next.1
+
+### Patch Changes
+
+- c04c42b: Fixes an issue where comments would be duplicated in the template. Also, removes a header with the title and version of the OpenAPI spec from generated code.
+- Updated dependencies
+ - @backstage/catalog-model@1.4.4-next.0
+ - @backstage/backend-common@0.21.0-next.1
+ - @backstage/cli-common@0.1.13
+ - @backstage/cli-node@0.2.2
+ - @backstage/errors@1.2.3
+
+## @techdocs/cli@1.8.2-next.1
+
+### Patch Changes
+
+- d8d243c: fix: mkdocs parameter casing
+- Updated dependencies
+ - @backstage/catalog-model@1.4.4-next.0
+ - @backstage/backend-common@0.21.0-next.1
+ - @backstage/plugin-techdocs-node@1.11.2-next.1
+ - @backstage/cli-common@0.1.13
+ - @backstage/config@1.1.1
+
+## @backstage/test-utils@1.5.0-next.1
+
+### Patch Changes
+
+- 07e7d12: Fix wording in API reference
+- 7da67ce: Change `defaultScopes` for Bitbucket auth from invalid `team` to `account`.
+- Updated dependencies
+ - @backstage/core-plugin-api@1.8.3-next.0
+ - @backstage/core-app-api@1.11.4-next.0
+ - @backstage/config@1.1.1
+ - @backstage/theme@0.5.0
+ - @backstage/types@1.1.1
+ - @backstage/plugin-permission-common@0.7.12
+ - @backstage/plugin-permission-react@0.4.20-next.0
+
+## @backstage/plugin-adr@0.6.13-next.1
+
+### Patch Changes
+
+- 987f565: Fix alignment of text in `AdrSearchResultListItem`. Update size and font to match other `SearchResultListItem`.
+- Updated dependencies
+ - @backstage/frontend-plugin-api@0.6.0-next.1
+ - @backstage/core-components@0.14.0-next.0
+ - @backstage/catalog-model@1.4.4-next.0
+ - @backstage/core-plugin-api@1.8.3-next.0
+ - @backstage/plugin-catalog-react@1.9.4-next.1
+ - @backstage/plugin-search-react@1.7.6-next.1
+ - @backstage/integration-react@1.1.24-next.0
+ - @backstage/plugin-adr-common@0.2.20-next.0
+ - @backstage/plugin-search-common@1.2.10
+
+## @backstage/plugin-adr-backend@0.4.7-next.1
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/catalog-model@1.4.4-next.0
+ - @backstage/catalog-client@1.6.0-next.1
+ - @backstage/backend-plugin-api@0.6.10-next.1
+ - @backstage/backend-common@0.21.0-next.1
+ - @backstage/integration@1.9.0-next.0
+ - @backstage/config@1.1.1
+ - @backstage/errors@1.2.3
+ - @backstage/plugin-adr-common@0.2.20-next.0
+ - @backstage/plugin-search-common@1.2.10
+
+## @backstage/plugin-adr-common@0.2.20-next.0
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/catalog-model@1.4.4-next.0
+ - @backstage/integration@1.9.0-next.0
+ - @backstage/plugin-search-common@1.2.10
+
+## @backstage/plugin-airbrake@0.3.30-next.1
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/core-components@0.14.0-next.0
+ - @backstage/catalog-model@1.4.4-next.0
+ - @backstage/test-utils@1.5.0-next.1
+ - @backstage/core-plugin-api@1.8.3-next.0
+ - @backstage/plugin-catalog-react@1.9.4-next.1
+ - @backstage/dev-utils@1.0.27-next.1
+
+## @backstage/plugin-airbrake-backend@0.3.7-next.1
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/backend-plugin-api@0.6.10-next.1
+ - @backstage/backend-common@0.21.0-next.1
+ - @backstage/config@1.1.1
+
+## @backstage/plugin-allure@0.1.46-next.1
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/core-components@0.14.0-next.0
+ - @backstage/catalog-model@1.4.4-next.0
+ - @backstage/core-plugin-api@1.8.3-next.0
+ - @backstage/plugin-catalog-react@1.9.4-next.1
+
+## @backstage/plugin-apache-airflow@0.2.20-next.0
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/core-components@0.14.0-next.0
+ - @backstage/core-plugin-api@1.8.3-next.0
+
+## @backstage/plugin-api-docs@0.10.4-next.1
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/core-components@0.14.0-next.0
+ - @backstage/catalog-model@1.4.4-next.0
+ - @backstage/plugin-catalog@1.17.0-next.1
+ - @backstage/core-plugin-api@1.8.3-next.0
+ - @backstage/plugin-catalog-react@1.9.4-next.1
+ - @backstage/plugin-catalog-common@1.0.21-next.0
+ - @backstage/plugin-permission-react@0.4.20-next.0
+
+## @backstage/plugin-apollo-explorer@0.1.20-next.0
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/core-components@0.14.0-next.0
+ - @backstage/core-plugin-api@1.8.3-next.0
+
+## @backstage/plugin-app-backend@0.3.58-next.1
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/backend-plugin-api@0.6.10-next.1
+ - @backstage/backend-common@0.21.0-next.1
+ - @backstage/config@1.1.1
+ - @backstage/config-loader@1.6.1
+ - @backstage/types@1.1.1
+ - @backstage/plugin-app-node@0.1.10-next.1
+
+## @backstage/plugin-app-node@0.1.10-next.1
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/backend-plugin-api@0.6.10-next.1
+
+## @backstage/plugin-app-visualizer@0.1.1-next.1
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/frontend-plugin-api@0.6.0-next.1
+ - @backstage/core-components@0.14.0-next.0
+ - @backstage/core-plugin-api@1.8.3-next.0
+
+## @backstage/plugin-auth-backend@0.20.4-next.1
+
+### Patch Changes
+
+- 23a98f8: Migrated the AWS ALB auth provider to new `@backstage/plugin-auth-backend-module-aws-alb-provider` module package.
+- Updated dependencies
+ - @backstage/catalog-model@1.4.4-next.0
+ - @backstage/catalog-client@1.6.0-next.1
+ - @backstage/backend-plugin-api@0.6.10-next.1
+ - @backstage/backend-common@0.21.0-next.1
+ - @backstage/plugin-auth-backend-module-aws-alb-provider@0.1.0-next.0
+ - @backstage/config@1.1.1
+ - @backstage/errors@1.2.3
+ - @backstage/plugin-auth-backend-module-atlassian-provider@0.1.2-next.1
+ - @backstage/plugin-auth-backend-module-gcp-iap-provider@0.2.4-next.1
+ - @backstage/plugin-auth-backend-module-github-provider@0.1.7-next.1
+ - @backstage/plugin-auth-backend-module-gitlab-provider@0.1.7-next.1
+ - @backstage/plugin-auth-backend-module-google-provider@0.1.7-next.1
+ - @backstage/plugin-auth-backend-module-microsoft-provider@0.1.5-next.1
+ - @backstage/plugin-auth-backend-module-oauth2-provider@0.1.7-next.1
+ - @backstage/plugin-auth-backend-module-oauth2-proxy-provider@0.1.2-next.1
+ - @backstage/plugin-auth-backend-module-oidc-provider@0.1.0-next.1
+ - @backstage/plugin-auth-backend-module-okta-provider@0.0.3-next.1
+ - @backstage/plugin-auth-node@0.4.4-next.1
+ - @backstage/plugin-catalog-node@1.6.2-next.1
+
+## @backstage/plugin-auth-backend-module-atlassian-provider@0.1.2-next.1
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/backend-plugin-api@0.6.10-next.1
+ - @backstage/plugin-auth-node@0.4.4-next.1
+
+## @backstage/plugin-auth-backend-module-gcp-iap-provider@0.2.4-next.1
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/backend-plugin-api@0.6.10-next.1
+ - @backstage/errors@1.2.3
+ - @backstage/types@1.1.1
+ - @backstage/plugin-auth-node@0.4.4-next.1
+
+## @backstage/plugin-auth-backend-module-github-provider@0.1.7-next.1
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/backend-plugin-api@0.6.10-next.1
+ - @backstage/plugin-auth-node@0.4.4-next.1
+
+## @backstage/plugin-auth-backend-module-gitlab-provider@0.1.7-next.1
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/backend-plugin-api@0.6.10-next.1
+ - @backstage/plugin-auth-node@0.4.4-next.1
+
+## @backstage/plugin-auth-backend-module-google-provider@0.1.7-next.1
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/backend-plugin-api@0.6.10-next.1
+ - @backstage/plugin-auth-node@0.4.4-next.1
+
+## @backstage/plugin-auth-backend-module-microsoft-provider@0.1.5-next.1
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/backend-plugin-api@0.6.10-next.1
+ - @backstage/plugin-auth-node@0.4.4-next.1
+
+## @backstage/plugin-auth-backend-module-oauth2-provider@0.1.7-next.1
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/backend-plugin-api@0.6.10-next.1
+ - @backstage/plugin-auth-node@0.4.4-next.1
+
+## @backstage/plugin-auth-backend-module-oauth2-proxy-provider@0.1.2-next.1
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/backend-plugin-api@0.6.10-next.1
+ - @backstage/errors@1.2.3
+ - @backstage/plugin-auth-node@0.4.4-next.1
+
+## @backstage/plugin-auth-backend-module-oidc-provider@0.1.0-next.1
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/backend-plugin-api@0.6.10-next.1
+ - @backstage/backend-common@0.21.0-next.1
+ - @backstage/plugin-auth-backend@0.20.4-next.1
+ - @backstage/plugin-auth-node@0.4.4-next.1
+
+## @backstage/plugin-auth-backend-module-okta-provider@0.0.3-next.1
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/backend-plugin-api@0.6.10-next.1
+ - @backstage/plugin-auth-node@0.4.4-next.1
+
+## @backstage/plugin-auth-backend-module-pinniped-provider@0.1.4-next.1
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/backend-plugin-api@0.6.10-next.1
+ - @backstage/config@1.1.1
+ - @backstage/plugin-auth-node@0.4.4-next.1
+
+## @backstage/plugin-auth-backend-module-vmware-cloud-provider@0.1.2-next.1
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/catalog-model@1.4.4-next.0
+ - @backstage/backend-plugin-api@0.6.10-next.1
+ - @backstage/plugin-auth-node@0.4.4-next.1
+
+## @backstage/plugin-auth-node@0.4.4-next.1
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/catalog-model@1.4.4-next.0
+ - @backstage/catalog-client@1.6.0-next.1
+ - @backstage/backend-plugin-api@0.6.10-next.1
+ - @backstage/backend-common@0.21.0-next.1
+ - @backstage/config@1.1.1
+ - @backstage/errors@1.2.3
+ - @backstage/types@1.1.1
+
+## @backstage/plugin-azure-devops@0.3.12-next.1
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/core-components@0.14.0-next.0
+ - @backstage/catalog-model@1.4.4-next.0
+ - @backstage/core-plugin-api@1.8.3-next.0
+ - @backstage/plugin-catalog-react@1.9.4-next.1
+ - @backstage/errors@1.2.3
+ - @backstage/plugin-azure-devops-common@0.3.2
+
+## @backstage/plugin-azure-devops-backend@0.5.2-next.1
+
+### Patch Changes
+
+- 25bda45: Fixed bug with `extractPartsFromAsset` that resulted in a leading `.` being removed from the path in an otherwise valid path (ex. `.assets/image.png`). The leading `.` will now only be moved for paths beginning with `./`.
+- Updated dependencies
+ - @backstage/catalog-model@1.4.4-next.0
+ - @backstage/backend-plugin-api@0.6.10-next.1
+ - @backstage/backend-common@0.21.0-next.1
+ - @backstage/integration@1.9.0-next.0
+ - @backstage/config@1.1.1
+ - @backstage/plugin-azure-devops-common@0.3.2
+ - @backstage/plugin-catalog-common@1.0.21-next.0
+ - @backstage/plugin-catalog-node@1.6.2-next.1
+
+## @backstage/plugin-azure-sites@0.1.19-next.1
+
+### Patch Changes
+
+- 5a409bb: Azure Sites `start` and `stop` action is now protected with the Permissions framework.
+
+ The below example describes an action that forbids anyone but the owner of the catalog entity to trigger actions towards a site tied to an entity.
+
+ ```typescript
+ // packages/backend/src/plugins/permission.ts
+ import { azureSitesActionPermission } from '@backstage/plugin-azure-sites-common';
+ ...
+ class TestPermissionPolicy implements PermissionPolicy {
+ async handle(request: PolicyQuery, user?: BackstageIdentityResponse): Promise {
+ if (isPermission(request.permission, azureSitesActionPermission)) {
+ return createCatalogConditionalDecision(
+ request.permission,
+ catalogConditions.isEntityOwner({
+ claims: user?.identity.ownershipEntityRefs ?? [],
+ }),
+ );
+ }
+ ...
+ return {
+ result: AuthorizeResult.ALLOW,
+ };
+ }
+ ...
+ }
+ ```
+
+- Updated dependencies
+ - @backstage/core-components@0.14.0-next.0
+ - @backstage/catalog-model@1.4.4-next.0
+ - @backstage/core-plugin-api@1.8.3-next.0
+ - @backstage/plugin-azure-sites-common@0.1.2-next.0
+ - @backstage/plugin-catalog-react@1.9.4-next.1
+ - @backstage/theme@0.5.0
+ - @backstage/plugin-permission-common@0.7.12
+ - @backstage/plugin-permission-react@0.4.20-next.0
+
+## @backstage/plugin-azure-sites-common@0.1.2-next.0
+
+### Patch Changes
+
+- 5a409bb: Azure Sites `start` and `stop` action is now protected with the Permissions framework.
+
+ The below example describes an action that forbids anyone but the owner of the catalog entity to trigger actions towards a site tied to an entity.
+
+ ```typescript
+ // packages/backend/src/plugins/permission.ts
+ import { azureSitesActionPermission } from '@backstage/plugin-azure-sites-common';
+ ...
+ class TestPermissionPolicy implements PermissionPolicy {
+ async handle(request: PolicyQuery, user?: BackstageIdentityResponse): Promise {
+ if (isPermission(request.permission, azureSitesActionPermission)) {
+ return createCatalogConditionalDecision(
+ request.permission,
+ catalogConditions.isEntityOwner({
+ claims: user?.identity.ownershipEntityRefs ?? [],
+ }),
+ );
+ }
+ ...
+ return {
+ result: AuthorizeResult.ALLOW,
+ };
+ }
+ ...
+ }
+ ```
+
+- Updated dependencies
+ - @backstage/catalog-model@1.4.4-next.0
+ - @backstage/plugin-catalog-common@1.0.21-next.0
+ - @backstage/plugin-permission-common@0.7.12
+
+## @backstage/plugin-badges@0.2.54-next.1
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/core-components@0.14.0-next.0
+ - @backstage/catalog-model@1.4.4-next.0
+ - @backstage/core-plugin-api@1.8.3-next.0
+ - @backstage/plugin-catalog-react@1.9.4-next.1
+ - @backstage/errors@1.2.3
+
+## @backstage/plugin-badges-backend@0.3.7-next.1
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/catalog-model@1.4.4-next.0
+ - @backstage/catalog-client@1.6.0-next.1
+ - @backstage/backend-plugin-api@0.6.10-next.1
+ - @backstage/backend-common@0.21.0-next.1
+ - @backstage/config@1.1.1
+ - @backstage/errors@1.2.3
+ - @backstage/plugin-auth-node@0.4.4-next.1
+
+## @backstage/plugin-bazaar@0.2.22-next.1
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/core-components@0.14.0-next.0
+ - @backstage/catalog-model@1.4.4-next.0
+ - @backstage/catalog-client@1.6.0-next.1
+ - @backstage/core-plugin-api@1.8.3-next.0
+ - @backstage/plugin-catalog-react@1.9.4-next.1
+ - @backstage/errors@1.2.3
+
+## @backstage/plugin-bazaar-backend@0.3.8-next.1
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/backend-plugin-api@0.6.10-next.1
+ - @backstage/backend-common@0.21.0-next.1
+ - @backstage/config@1.1.1
+ - @backstage/plugin-auth-node@0.4.4-next.1
+
+## @backstage/plugin-bitbucket-cloud-common@0.2.16-next.1
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/integration@1.9.0-next.0
+
+## @backstage/plugin-bitrise@0.1.57-next.1
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/core-components@0.14.0-next.0
+ - @backstage/catalog-model@1.4.4-next.0
+ - @backstage/core-plugin-api@1.8.3-next.0
+ - @backstage/plugin-catalog-react@1.9.4-next.1
+
+## @backstage/plugin-catalog@1.17.0-next.1
+
+### Patch Changes
+
+- 987f565: Add line clamping to `CatalogSearchResultListItem`
+- Updated dependencies
+ - @backstage/frontend-plugin-api@0.6.0-next.1
+ - @backstage/core-compat-api@0.2.0-next.1
+ - @backstage/core-components@0.14.0-next.0
+ - @backstage/catalog-model@1.4.4-next.0
+ - @backstage/catalog-client@1.6.0-next.1
+ - @backstage/core-plugin-api@1.8.3-next.0
+ - @backstage/plugin-catalog-react@1.9.4-next.1
+ - @backstage/plugin-search-react@1.7.6-next.1
+ - @backstage/integration-react@1.1.24-next.0
+ - @backstage/errors@1.2.3
+ - @backstage/types@1.1.1
+ - @backstage/plugin-catalog-common@1.0.21-next.0
+ - @backstage/plugin-permission-react@0.4.20-next.0
+ - @backstage/plugin-scaffolder-common@1.5.0-next.1
+ - @backstage/plugin-search-common@1.2.10
+
+## @backstage/plugin-catalog-backend-module-aws@0.3.4-next.1
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/catalog-model@1.4.4-next.0
+ - @backstage/backend-plugin-api@0.6.10-next.1
+ - @backstage/backend-common@0.21.0-next.1
+ - @backstage/integration@1.9.0-next.0
+ - @backstage/backend-tasks@0.5.15-next.1
+ - @backstage/config@1.1.1
+ - @backstage/errors@1.2.3
+ - @backstage/integration-aws-node@0.1.8
+ - @backstage/plugin-catalog-common@1.0.21-next.0
+ - @backstage/plugin-catalog-node@1.6.2-next.1
+ - @backstage/plugin-kubernetes-common@0.7.4-next.1
+
+## @backstage/plugin-catalog-backend-module-azure@0.1.29-next.1
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/backend-plugin-api@0.6.10-next.1
+ - @backstage/backend-common@0.21.0-next.1
+ - @backstage/integration@1.9.0-next.0
+ - @backstage/backend-tasks@0.5.15-next.1
+ - @backstage/config@1.1.1
+ - @backstage/plugin-catalog-common@1.0.21-next.0
+ - @backstage/plugin-catalog-node@1.6.2-next.1
+
+## @backstage/plugin-catalog-backend-module-backstage-openapi@0.1.3-next.1
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/catalog-model@1.4.4-next.0
+ - @backstage/backend-plugin-api@0.6.10-next.1
+ - @backstage/backend-common@0.21.0-next.1
+ - @backstage/backend-openapi-utils@0.1.3-next.1
+ - @backstage/backend-tasks@0.5.15-next.1
+ - @backstage/config@1.1.1
+ - @backstage/errors@1.2.3
+ - @backstage/plugin-catalog-node@1.6.2-next.1
+
+## @backstage/plugin-catalog-backend-module-bitbucket@0.2.25-next.1
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/backend-common@0.21.0-next.1
+ - @backstage/integration@1.9.0-next.0
+ - @backstage/config@1.1.1
+ - @backstage/plugin-bitbucket-cloud-common@0.2.16-next.1
+ - @backstage/plugin-catalog-node@1.6.2-next.1
+
+## @backstage/plugin-catalog-backend-module-bitbucket-cloud@0.1.25-next.1
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/catalog-model@1.4.4-next.0
+ - @backstage/catalog-client@1.6.0-next.1
+ - @backstage/backend-plugin-api@0.6.10-next.1
+ - @backstage/backend-common@0.21.0-next.1
+ - @backstage/integration@1.9.0-next.0
+ - @backstage/backend-tasks@0.5.15-next.1
+ - @backstage/config@1.1.1
+ - @backstage/plugin-bitbucket-cloud-common@0.2.16-next.1
+ - @backstage/plugin-catalog-common@1.0.21-next.0
+ - @backstage/plugin-catalog-node@1.6.2-next.1
+ - @backstage/plugin-events-node@0.2.19-next.1
+
+## @backstage/plugin-catalog-backend-module-bitbucket-server@0.1.23-next.1
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/catalog-model@1.4.4-next.0
+ - @backstage/backend-plugin-api@0.6.10-next.1
+ - @backstage/backend-common@0.21.0-next.1
+ - @backstage/integration@1.9.0-next.0
+ - @backstage/backend-tasks@0.5.15-next.1
+ - @backstage/config@1.1.1
+ - @backstage/errors@1.2.3
+ - @backstage/plugin-catalog-node@1.6.2-next.1
+
+## @backstage/plugin-catalog-backend-module-gcp@0.1.10-next.1
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/catalog-model@1.4.4-next.0
+ - @backstage/backend-plugin-api@0.6.10-next.1
+ - @backstage/backend-common@0.21.0-next.1
+ - @backstage/backend-tasks@0.5.15-next.1
+ - @backstage/config@1.1.1
+ - @backstage/plugin-catalog-node@1.6.2-next.1
+ - @backstage/plugin-kubernetes-common@0.7.4-next.1
+
+## @backstage/plugin-catalog-backend-module-gerrit@0.1.26-next.1
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/backend-plugin-api@0.6.10-next.1
+ - @backstage/backend-common@0.21.0-next.1
+ - @backstage/integration@1.9.0-next.0
+ - @backstage/backend-tasks@0.5.15-next.1
+ - @backstage/config@1.1.1
+ - @backstage/errors@1.2.3
+ - @backstage/plugin-catalog-node@1.6.2-next.1
+
+## @backstage/plugin-catalog-backend-module-github-org@0.1.4-next.1
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/plugin-catalog-backend-module-github@0.5.0-next.1
+ - @backstage/backend-plugin-api@0.6.10-next.1
+ - @backstage/backend-common@0.21.0-next.1
+ - @backstage/backend-tasks@0.5.15-next.1
+ - @backstage/config@1.1.1
+ - @backstage/plugin-catalog-node@1.6.2-next.1
+
+## @backstage/plugin-catalog-backend-module-gitlab@0.3.7-next.1
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/catalog-model@1.4.4-next.0
+ - @backstage/backend-plugin-api@0.6.10-next.1
+ - @backstage/backend-common@0.21.0-next.1
+ - @backstage/integration@1.9.0-next.0
+ - @backstage/backend-tasks@0.5.15-next.1
+ - @backstage/config@1.1.1
+ - @backstage/plugin-catalog-node@1.6.2-next.1
+
+## @backstage/plugin-catalog-backend-module-incremental-ingestion@0.4.14-next.1
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/catalog-model@1.4.4-next.0
+ - @backstage/plugin-catalog-backend@1.17.0-next.1
+ - @backstage/backend-plugin-api@0.6.10-next.1
+ - @backstage/backend-common@0.21.0-next.1
+ - @backstage/backend-tasks@0.5.15-next.1
+ - @backstage/config@1.1.1
+ - @backstage/errors@1.2.3
+ - @backstage/plugin-catalog-node@1.6.2-next.1
+ - @backstage/plugin-events-node@0.2.19-next.1
+ - @backstage/plugin-permission-common@0.7.12
+
+## @backstage/plugin-catalog-backend-module-ldap@0.5.25-next.1
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/catalog-model@1.4.4-next.0
+ - @backstage/backend-tasks@0.5.15-next.1
+ - @backstage/config@1.1.1
+ - @backstage/errors@1.2.3
+ - @backstage/types@1.1.1
+ - @backstage/plugin-catalog-common@1.0.21-next.0
+ - @backstage/plugin-catalog-node@1.6.2-next.1
+
+## @backstage/plugin-catalog-backend-module-msgraph@0.5.17-next.1
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/catalog-model@1.4.4-next.0
+ - @backstage/backend-plugin-api@0.6.10-next.1
+ - @backstage/backend-common@0.21.0-next.1
+ - @backstage/backend-tasks@0.5.15-next.1
+ - @backstage/config@1.1.1
+ - @backstage/plugin-catalog-common@1.0.21-next.0
+ - @backstage/plugin-catalog-node@1.6.2-next.1
+
+## @backstage/plugin-catalog-backend-module-openapi@0.1.27-next.1
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/catalog-model@1.4.4-next.0
+ - @backstage/plugin-catalog-backend@1.17.0-next.1
+ - @backstage/backend-plugin-api@0.6.10-next.1
+ - @backstage/backend-common@0.21.0-next.1
+ - @backstage/integration@1.9.0-next.0
+ - @backstage/config@1.1.1
+ - @backstage/types@1.1.1
+ - @backstage/plugin-catalog-common@1.0.21-next.0
+ - @backstage/plugin-catalog-node@1.6.2-next.1
+
+## @backstage/plugin-catalog-backend-module-puppetdb@0.1.15-next.1
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/catalog-model@1.4.4-next.0
+ - @backstage/backend-plugin-api@0.6.10-next.1
+ - @backstage/backend-common@0.21.0-next.1
+ - @backstage/backend-tasks@0.5.15-next.1
+ - @backstage/config@1.1.1
+ - @backstage/errors@1.2.3
+ - @backstage/types@1.1.1
+ - @backstage/plugin-catalog-node@1.6.2-next.1
+
+## @backstage/plugin-catalog-backend-module-scaffolder-entity-model@0.1.7-next.1
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/catalog-model@1.4.4-next.0
+ - @backstage/backend-plugin-api@0.6.10-next.1
+ - @backstage/plugin-catalog-common@1.0.21-next.0
+ - @backstage/plugin-catalog-node@1.6.2-next.1
+ - @backstage/plugin-scaffolder-common@1.5.0-next.1
+
+## @backstage/plugin-catalog-backend-module-unprocessed@0.3.7-next.1
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/catalog-model@1.4.4-next.0
+ - @backstage/backend-plugin-api@0.6.10-next.1
+ - @backstage/plugin-auth-node@0.4.4-next.1
+
+## @backstage/plugin-catalog-common@1.0.21-next.0
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/catalog-model@1.4.4-next.0
+ - @backstage/plugin-permission-common@0.7.12
+ - @backstage/plugin-search-common@1.2.10
+
+## @backstage/plugin-catalog-graph@0.3.4-next.1
+
+### Patch Changes
+
+- f937aae: use `CatalogClient.getEntitiesByRefs()` to reduce the number of backend requests from plugin `catalog-graph`
+- Updated dependencies
+ - @backstage/core-components@0.14.0-next.0
+ - @backstage/catalog-model@1.4.4-next.0
+ - @backstage/catalog-client@1.6.0-next.1
+ - @backstage/core-plugin-api@1.8.3-next.0
+ - @backstage/plugin-catalog-react@1.9.4-next.1
+ - @backstage/types@1.1.1
+
+## @backstage/plugin-catalog-import@0.10.6-next.1
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/frontend-plugin-api@0.6.0-next.1
+ - @backstage/core-compat-api@0.2.0-next.1
+ - @backstage/core-components@0.14.0-next.0
+ - @backstage/catalog-model@1.4.4-next.0
+ - @backstage/catalog-client@1.6.0-next.1
+ - @backstage/core-plugin-api@1.8.3-next.0
+ - @backstage/integration@1.9.0-next.0
+ - @backstage/plugin-catalog-react@1.9.4-next.1
+ - @backstage/integration-react@1.1.24-next.0
+ - @backstage/config@1.1.1
+ - @backstage/errors@1.2.3
+ - @backstage/plugin-catalog-common@1.0.21-next.0
+
+## @backstage/plugin-catalog-node@1.6.2-next.1
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/catalog-model@1.4.4-next.0
+ - @backstage/catalog-client@1.6.0-next.1
+ - @backstage/backend-plugin-api@0.6.10-next.1
+ - @backstage/errors@1.2.3
+ - @backstage/types@1.1.1
+ - @backstage/plugin-catalog-common@1.0.21-next.0
+ - @backstage/plugin-permission-common@0.7.12
+ - @backstage/plugin-permission-node@0.7.21-next.1
+
+## @backstage/plugin-catalog-react@1.9.4-next.1
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/frontend-plugin-api@0.6.0-next.1
+ - @backstage/core-components@0.14.0-next.0
+ - @backstage/catalog-model@1.4.4-next.0
+ - @backstage/catalog-client@1.6.0-next.1
+ - @backstage/core-plugin-api@1.8.3-next.0
+ - @backstage/integration-react@1.1.24-next.0
+ - @backstage/errors@1.2.3
+ - @backstage/types@1.1.1
+ - @backstage/version-bridge@1.0.7
+ - @backstage/plugin-catalog-common@1.0.21-next.0
+ - @backstage/plugin-permission-common@0.7.12
+ - @backstage/plugin-permission-react@0.4.20-next.0
+
+## @backstage/plugin-catalog-unprocessed-entities@0.1.8-next.0
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/core-components@0.14.0-next.0
+ - @backstage/catalog-model@1.4.4-next.0
+ - @backstage/core-plugin-api@1.8.3-next.0
+ - @backstage/errors@1.2.3
+
+## @backstage/plugin-cicd-statistics@0.1.32-next.1
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/catalog-model@1.4.4-next.0
+ - @backstage/core-plugin-api@1.8.3-next.0
+ - @backstage/plugin-catalog-react@1.9.4-next.1
+
+## @backstage/plugin-cicd-statistics-module-gitlab@0.1.26-next.1
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/catalog-model@1.4.4-next.0
+ - @backstage/core-plugin-api@1.8.3-next.0
+ - @backstage/plugin-cicd-statistics@0.1.32-next.1
+
+## @backstage/plugin-circleci@0.3.30-next.1
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/core-components@0.14.0-next.0
+ - @backstage/catalog-model@1.4.4-next.0
+ - @backstage/core-plugin-api@1.8.3-next.0
+ - @backstage/plugin-catalog-react@1.9.4-next.1
+
+## @backstage/plugin-cloudbuild@0.4.0-next.1
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/core-components@0.14.0-next.0
+ - @backstage/catalog-model@1.4.4-next.0
+ - @backstage/core-plugin-api@1.8.3-next.0
+ - @backstage/plugin-catalog-react@1.9.4-next.1
+
+## @backstage/plugin-code-climate@0.1.30-next.1
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/core-components@0.14.0-next.0
+ - @backstage/catalog-model@1.4.4-next.0
+ - @backstage/core-plugin-api@1.8.3-next.0
+ - @backstage/plugin-catalog-react@1.9.4-next.1
+
+## @backstage/plugin-code-coverage@0.2.23-next.1
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/core-components@0.14.0-next.0
+ - @backstage/catalog-model@1.4.4-next.0
+ - @backstage/core-plugin-api@1.8.3-next.0
+ - @backstage/plugin-catalog-react@1.9.4-next.1
+ - @backstage/errors@1.2.3
+
+## @backstage/plugin-code-coverage-backend@0.2.24-next.1
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/catalog-model@1.4.4-next.0
+ - @backstage/catalog-client@1.6.0-next.1
+ - @backstage/backend-plugin-api@0.6.10-next.1
+ - @backstage/backend-common@0.21.0-next.1
+ - @backstage/integration@1.9.0-next.0
+ - @backstage/config@1.1.1
+ - @backstage/errors@1.2.3
+ - @backstage/plugin-auth-node@0.4.4-next.1
+
+## @backstage/plugin-codescene@0.1.22-next.0
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/core-components@0.14.0-next.0
+ - @backstage/core-plugin-api@1.8.3-next.0
+ - @backstage/config@1.1.1
+ - @backstage/errors@1.2.3
+
+## @backstage/plugin-config-schema@0.1.50-next.0
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/core-components@0.14.0-next.0
+ - @backstage/core-plugin-api@1.8.3-next.0
+ - @backstage/errors@1.2.3
+ - @backstage/types@1.1.1
+
+## @backstage/plugin-cost-insights@0.12.19-next.1
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/core-components@0.14.0-next.0
+ - @backstage/catalog-model@1.4.4-next.0
+ - @backstage/core-plugin-api@1.8.3-next.0
+ - @backstage/plugin-catalog-react@1.9.4-next.1
+ - @backstage/config@1.1.1
+ - @backstage/theme@0.5.0
+ - @backstage/plugin-cost-insights-common@0.1.2
+
+## @backstage/plugin-devtools@0.1.9-next.1
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/frontend-plugin-api@0.6.0-next.1
+ - @backstage/core-compat-api@0.2.0-next.1
+ - @backstage/core-components@0.14.0-next.0
+ - @backstage/core-plugin-api@1.8.3-next.0
+ - @backstage/errors@1.2.3
+ - @backstage/plugin-devtools-common@0.1.8
+ - @backstage/plugin-permission-react@0.4.20-next.0
+
+## @backstage/plugin-devtools-backend@0.2.7-next.1
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/backend-plugin-api@0.6.10-next.1
+ - @backstage/backend-common@0.21.0-next.1
+ - @backstage/cli-common@0.1.13
+ - @backstage/config@1.1.1
+ - @backstage/config-loader@1.6.1
+ - @backstage/errors@1.2.3
+ - @backstage/types@1.1.1
+ - @backstage/plugin-auth-node@0.4.4-next.1
+ - @backstage/plugin-devtools-common@0.1.8
+ - @backstage/plugin-permission-common@0.7.12
+ - @backstage/plugin-permission-node@0.7.21-next.1
+
+## @backstage/plugin-dynatrace@8.0.4-next.1
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/core-components@0.14.0-next.0
+ - @backstage/catalog-model@1.4.4-next.0
+ - @backstage/core-plugin-api@1.8.3-next.0
+ - @backstage/plugin-catalog-react@1.9.4-next.1
+
+## @backstage/plugin-entity-feedback@0.2.13-next.1
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/core-components@0.14.0-next.0
+ - @backstage/catalog-model@1.4.4-next.0
+ - @backstage/core-plugin-api@1.8.3-next.0
+ - @backstage/plugin-catalog-react@1.9.4-next.1
+ - @backstage/errors@1.2.3
+ - @backstage/plugin-entity-feedback-common@0.1.3
+
+## @backstage/plugin-entity-feedback-backend@0.2.7-next.1
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/catalog-model@1.4.4-next.0
+ - @backstage/catalog-client@1.6.0-next.1
+ - @backstage/backend-plugin-api@0.6.10-next.1
+ - @backstage/backend-common@0.21.0-next.1
+ - @backstage/config@1.1.1
+ - @backstage/plugin-auth-node@0.4.4-next.1
+ - @backstage/plugin-entity-feedback-common@0.1.3
+
+## @backstage/plugin-entity-validation@0.1.15-next.1
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/core-components@0.14.0-next.0
+ - @backstage/catalog-model@1.4.4-next.0
+ - @backstage/catalog-client@1.6.0-next.1
+ - @backstage/core-plugin-api@1.8.3-next.0
+ - @backstage/plugin-catalog-react@1.9.4-next.1
+ - @backstage/errors@1.2.3
+ - @backstage/plugin-catalog-common@1.0.21-next.0
+
+## @backstage/plugin-events-backend@0.2.19-next.1
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/backend-plugin-api@0.6.10-next.1
+ - @backstage/backend-common@0.21.0-next.1
+ - @backstage/config@1.1.1
+ - @backstage/plugin-events-node@0.2.19-next.1
+
+## @backstage/plugin-events-backend-module-aws-sqs@0.2.13-next.1
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/backend-plugin-api@0.6.10-next.1
+ - @backstage/backend-common@0.21.0-next.1
+ - @backstage/backend-tasks@0.5.15-next.1
+ - @backstage/config@1.1.1
+ - @backstage/types@1.1.1
+ - @backstage/plugin-events-node@0.2.19-next.1
+
+## @backstage/plugin-events-backend-module-azure@0.1.20-next.1
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/backend-plugin-api@0.6.10-next.1
+ - @backstage/plugin-events-node@0.2.19-next.1
+
+## @backstage/plugin-events-backend-module-bitbucket-cloud@0.1.20-next.1
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/backend-plugin-api@0.6.10-next.1
+ - @backstage/plugin-events-node@0.2.19-next.1
+
+## @backstage/plugin-events-backend-module-gerrit@0.1.20-next.1
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/backend-plugin-api@0.6.10-next.1
+ - @backstage/plugin-events-node@0.2.19-next.1
+
+## @backstage/plugin-events-backend-module-github@0.1.20-next.1
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/backend-plugin-api@0.6.10-next.1
+ - @backstage/config@1.1.1
+ - @backstage/plugin-events-node@0.2.19-next.1
+
+## @backstage/plugin-events-backend-module-gitlab@0.1.20-next.1
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/backend-plugin-api@0.6.10-next.1
+ - @backstage/config@1.1.1
+ - @backstage/plugin-events-node@0.2.19-next.1
+
+## @backstage/plugin-events-backend-test-utils@0.1.20-next.1
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/plugin-events-node@0.2.19-next.1
+
+## @backstage/plugin-events-node@0.2.19-next.1
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/backend-plugin-api@0.6.10-next.1
+
+## @backstage/plugin-explore@0.4.16-next.1
+
+### Patch Changes
+
+- 07e7d12: Fix wording in API reference
+- Updated dependencies
+ - @backstage/frontend-plugin-api@0.6.0-next.1
+ - @backstage/core-components@0.14.0-next.0
+ - @backstage/catalog-model@1.4.4-next.0
+ - @backstage/core-plugin-api@1.8.3-next.0
+ - @backstage/plugin-catalog-react@1.9.4-next.1
+ - @backstage/plugin-search-react@1.7.6-next.1
+ - @backstage/errors@1.2.3
+ - @backstage/plugin-explore-common@0.0.2
+ - @backstage/plugin-explore-react@0.0.36-next.0
+ - @backstage/plugin-search-common@1.2.10
+
+## @backstage/plugin-explore-backend@0.0.20-next.1
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/backend-plugin-api@0.6.10-next.1
+ - @backstage/backend-common@0.21.0-next.1
+ - @backstage/config@1.1.1
+ - @backstage/types@1.1.1
+ - @backstage/plugin-explore-common@0.0.2
+ - @backstage/plugin-search-backend-module-explore@0.1.14-next.1
+
+## @backstage/plugin-explore-react@0.0.36-next.0
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/core-plugin-api@1.8.3-next.0
+ - @backstage/plugin-explore-common@0.0.2
+
+## @backstage/plugin-firehydrant@0.2.14-next.1
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/core-components@0.14.0-next.0
+ - @backstage/catalog-model@1.4.4-next.0
+ - @backstage/core-plugin-api@1.8.3-next.0
+ - @backstage/plugin-catalog-react@1.9.4-next.1
+
+## @backstage/plugin-fossa@0.2.62-next.1
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/core-components@0.14.0-next.0
+ - @backstage/catalog-model@1.4.4-next.0
+ - @backstage/core-plugin-api@1.8.3-next.0
+ - @backstage/plugin-catalog-react@1.9.4-next.1
+ - @backstage/errors@1.2.3
+
+## @backstage/plugin-gcalendar@0.3.23-next.0
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/core-components@0.14.0-next.0
+ - @backstage/core-plugin-api@1.8.3-next.0
+ - @backstage/errors@1.2.3
+
+## @backstage/plugin-gcp-projects@0.3.46-next.0
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/core-components@0.14.0-next.0
+ - @backstage/core-plugin-api@1.8.3-next.0
+
+## @backstage/plugin-git-release-manager@0.3.42-next.0
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/core-components@0.14.0-next.0
+ - @backstage/core-plugin-api@1.8.3-next.0
+ - @backstage/integration@1.9.0-next.0
+
+## @backstage/plugin-github-actions@0.6.11-next.1
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/core-components@0.14.0-next.0
+ - @backstage/catalog-model@1.4.4-next.0
+ - @backstage/core-plugin-api@1.8.3-next.0
+ - @backstage/integration@1.9.0-next.0
+ - @backstage/plugin-catalog-react@1.9.4-next.1
+ - @backstage/integration-react@1.1.24-next.0
+
+## @backstage/plugin-github-deployments@0.1.61-next.1
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/core-components@0.14.0-next.0
+ - @backstage/catalog-model@1.4.4-next.0
+ - @backstage/core-plugin-api@1.8.3-next.0
+ - @backstage/integration@1.9.0-next.0
+ - @backstage/plugin-catalog-react@1.9.4-next.1
+ - @backstage/integration-react@1.1.24-next.0
+ - @backstage/errors@1.2.3
+
+## @backstage/plugin-github-issues@0.2.19-next.1
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/core-components@0.14.0-next.0
+ - @backstage/catalog-model@1.4.4-next.0
+ - @backstage/core-plugin-api@1.8.3-next.0
+ - @backstage/integration@1.9.0-next.0
+ - @backstage/plugin-catalog-react@1.9.4-next.1
+ - @backstage/errors@1.2.3
+
+## @backstage/plugin-github-pull-requests-board@0.1.24-next.1
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/core-components@0.14.0-next.0
+ - @backstage/catalog-model@1.4.4-next.0
+ - @backstage/core-plugin-api@1.8.3-next.0
+ - @backstage/integration@1.9.0-next.0
+ - @backstage/plugin-catalog-react@1.9.4-next.1
+
+## @backstage/plugin-gitops-profiles@0.3.45-next.0
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/core-components@0.14.0-next.0
+ - @backstage/core-plugin-api@1.8.3-next.0
+
+## @backstage/plugin-gocd@0.1.36-next.1
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/core-components@0.14.0-next.0
+ - @backstage/catalog-model@1.4.4-next.0
+ - @backstage/core-plugin-api@1.8.3-next.0
+ - @backstage/plugin-catalog-react@1.9.4-next.1
+ - @backstage/errors@1.2.3
+
+## @backstage/plugin-graphiql@0.3.3-next.1
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/frontend-plugin-api@0.6.0-next.1
+ - @backstage/core-compat-api@0.2.0-next.1
+ - @backstage/core-components@0.14.0-next.0
+ - @backstage/core-plugin-api@1.8.3-next.0
+
+## @backstage/plugin-graphql-voyager@0.1.12-next.0
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/core-components@0.14.0-next.0
+ - @backstage/core-plugin-api@1.8.3-next.0
+
+## @backstage/plugin-home@0.6.2-next.1
+
+### Patch Changes
+
+- 384c132: Added filter support for HomePageVisitedByType in order to enable filtering entities from the list
+- Updated dependencies
+ - @backstage/frontend-plugin-api@0.6.0-next.1
+ - @backstage/core-compat-api@0.2.0-next.1
+ - @backstage/core-components@0.14.0-next.0
+ - @backstage/catalog-model@1.4.4-next.0
+ - @backstage/catalog-client@1.6.0-next.1
+ - @backstage/core-plugin-api@1.8.3-next.0
+ - @backstage/core-app-api@1.11.4-next.0
+ - @backstage/plugin-catalog-react@1.9.4-next.1
+ - @backstage/plugin-home-react@0.1.8-next.1
+ - @backstage/config@1.1.1
+ - @backstage/theme@0.5.0
+
+## @backstage/plugin-home-react@0.1.8-next.1
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/core-components@0.14.0-next.0
+ - @backstage/core-plugin-api@1.8.3-next.0
+
+## @backstage/plugin-ilert@0.2.19-next.1
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/core-components@0.14.0-next.0
+ - @backstage/catalog-model@1.4.4-next.0
+ - @backstage/core-plugin-api@1.8.3-next.0
+ - @backstage/plugin-catalog-react@1.9.4-next.1
+ - @backstage/errors@1.2.3
+
+## @backstage/plugin-jenkins@0.9.5-next.1
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/core-components@0.14.0-next.0
+ - @backstage/catalog-model@1.4.4-next.0
+ - @backstage/core-plugin-api@1.8.3-next.0
+ - @backstage/plugin-catalog-react@1.9.4-next.1
+ - @backstage/errors@1.2.3
+ - @backstage/plugin-jenkins-common@0.1.24-next.0
+
+## @backstage/plugin-jenkins-backend@0.3.4-next.1
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/catalog-model@1.4.4-next.0
+ - @backstage/catalog-client@1.6.0-next.1
+ - @backstage/backend-plugin-api@0.6.10-next.1
+ - @backstage/backend-common@0.21.0-next.1
+ - @backstage/config@1.1.1
+ - @backstage/errors@1.2.3
+ - @backstage/plugin-auth-node@0.4.4-next.1
+ - @backstage/plugin-catalog-node@1.6.2-next.1
+ - @backstage/plugin-jenkins-common@0.1.24-next.0
+ - @backstage/plugin-permission-common@0.7.12
+ - @backstage/plugin-permission-node@0.7.21-next.1
+
+## @backstage/plugin-jenkins-common@0.1.24-next.0
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/plugin-catalog-common@1.0.21-next.0
+ - @backstage/plugin-permission-common@0.7.12
+
+## @backstage/plugin-kafka@0.3.30-next.1
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/core-components@0.14.0-next.0
+ - @backstage/catalog-model@1.4.4-next.0
+ - @backstage/core-plugin-api@1.8.3-next.0
+ - @backstage/plugin-catalog-react@1.9.4-next.1
+
+## @backstage/plugin-kafka-backend@0.3.8-next.1
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/backend-plugin-api@0.6.10-next.1
+ - @backstage/backend-common@0.21.0-next.1
+ - @backstage/config@1.1.1
+ - @backstage/errors@1.2.3
+
+## @backstage/plugin-kubernetes@0.11.5-next.1
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/core-components@0.14.0-next.0
+ - @backstage/catalog-model@1.4.4-next.0
+ - @backstage/plugin-kubernetes-react@0.3.0-next.1
+ - @backstage/core-plugin-api@1.8.3-next.0
+ - @backstage/plugin-catalog-react@1.9.4-next.1
+ - @backstage/plugin-kubernetes-common@0.7.4-next.1
+
+## @backstage/plugin-kubernetes-backend@0.14.2-next.1
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/catalog-model@1.4.4-next.0
+ - @backstage/catalog-client@1.6.0-next.1
+ - @backstage/backend-plugin-api@0.6.10-next.1
+ - @backstage/backend-common@0.21.0-next.1
+ - @backstage/plugin-kubernetes-node@0.1.4-next.1
+ - @backstage/config@1.1.1
+ - @backstage/errors@1.2.3
+ - @backstage/integration-aws-node@0.1.8
+ - @backstage/types@1.1.1
+ - @backstage/plugin-auth-node@0.4.4-next.1
+ - @backstage/plugin-catalog-node@1.6.2-next.1
+ - @backstage/plugin-kubernetes-common@0.7.4-next.1
+ - @backstage/plugin-permission-common@0.7.12
+ - @backstage/plugin-permission-node@0.7.21-next.1
+
+## @backstage/plugin-kubernetes-cluster@0.0.6-next.1
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/core-components@0.14.0-next.0
+ - @backstage/catalog-model@1.4.4-next.0
+ - @backstage/plugin-kubernetes-react@0.3.0-next.1
+ - @backstage/core-plugin-api@1.8.3-next.0
+ - @backstage/plugin-catalog-react@1.9.4-next.1
+ - @backstage/plugin-kubernetes-common@0.7.4-next.1
+
+## @backstage/plugin-kubernetes-common@0.7.4-next.1
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/catalog-model@1.4.4-next.0
+ - @backstage/types@1.1.1
+ - @backstage/plugin-permission-common@0.7.12
+
+## @backstage/plugin-kubernetes-node@0.1.4-next.1
+
+### Patch Changes
+
+- cceed8a: Introduced `PinnipedHelper` class to enable authentication to Kubernetes clusters through Pinniped
+- Updated dependencies
+ - @backstage/catalog-model@1.4.4-next.0
+ - @backstage/backend-plugin-api@0.6.10-next.1
+ - @backstage/types@1.1.1
+ - @backstage/plugin-kubernetes-common@0.7.4-next.1
+
+## @backstage/plugin-kubernetes-react@0.3.0-next.1
+
+### Patch Changes
+
+- 3c184af: Extracted common dialog component.
+- Updated dependencies
+ - @backstage/core-components@0.14.0-next.0
+ - @backstage/catalog-model@1.4.4-next.0
+ - @backstage/core-plugin-api@1.8.3-next.0
+ - @backstage/errors@1.2.3
+ - @backstage/types@1.1.1
+ - @backstage/plugin-kubernetes-common@0.7.4-next.1
+
+## @backstage/plugin-lighthouse@0.4.15-next.1
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/core-components@0.14.0-next.0
+ - @backstage/catalog-model@1.4.4-next.0
+ - @backstage/core-plugin-api@1.8.3-next.0
+ - @backstage/plugin-catalog-react@1.9.4-next.1
+ - @backstage/plugin-lighthouse-common@0.1.4
+
+## @backstage/plugin-lighthouse-backend@0.4.2-next.1
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/catalog-model@1.4.4-next.0
+ - @backstage/catalog-client@1.6.0-next.1
+ - @backstage/backend-plugin-api@0.6.10-next.1
+ - @backstage/backend-common@0.21.0-next.1
+ - @backstage/backend-tasks@0.5.15-next.1
+ - @backstage/config@1.1.1
+ - @backstage/types@1.1.1
+ - @backstage/plugin-catalog-node@1.6.2-next.1
+ - @backstage/plugin-lighthouse-common@0.1.4
+
+## @backstage/plugin-linguist@0.1.15-next.1
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/frontend-plugin-api@0.6.0-next.1
+ - @backstage/core-compat-api@0.2.0-next.1
+ - @backstage/core-components@0.14.0-next.0
+ - @backstage/catalog-model@1.4.4-next.0
+ - @backstage/core-plugin-api@1.8.3-next.0
+ - @backstage/plugin-catalog-react@1.9.4-next.1
+ - @backstage/errors@1.2.3
+ - @backstage/plugin-linguist-common@0.1.2
+
+## @backstage/plugin-linguist-backend@0.5.7-next.1
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/catalog-model@1.4.4-next.0
+ - @backstage/catalog-client@1.6.0-next.1
+ - @backstage/backend-plugin-api@0.6.10-next.1
+ - @backstage/backend-common@0.21.0-next.1
+ - @backstage/backend-tasks@0.5.15-next.1
+ - @backstage/config@1.1.1
+ - @backstage/errors@1.2.3
+ - @backstage/types@1.1.1
+ - @backstage/plugin-auth-node@0.4.4-next.1
+ - @backstage/plugin-catalog-node@1.6.2-next.1
+ - @backstage/plugin-linguist-common@0.1.2
+
+## @backstage/plugin-microsoft-calendar@0.1.12-next.0
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/core-components@0.14.0-next.0
+ - @backstage/core-plugin-api@1.8.3-next.0
+ - @backstage/errors@1.2.3
+
+## @backstage/plugin-newrelic@0.3.45-next.0
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/core-components@0.14.0-next.0
+ - @backstage/core-plugin-api@1.8.3-next.0
+
+## @backstage/plugin-newrelic-dashboard@0.3.5-next.1
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/core-components@0.14.0-next.0
+ - @backstage/catalog-model@1.4.4-next.0
+ - @backstage/core-plugin-api@1.8.3-next.0
+ - @backstage/plugin-catalog-react@1.9.4-next.1
+ - @backstage/errors@1.2.3
+
+## @backstage/plugin-nomad@0.1.11-next.1
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/core-components@0.14.0-next.0
+ - @backstage/catalog-model@1.4.4-next.0
+ - @backstage/core-plugin-api@1.8.3-next.0
+ - @backstage/plugin-catalog-react@1.9.4-next.1
+
+## @backstage/plugin-nomad-backend@0.1.12-next.1
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/backend-plugin-api@0.6.10-next.1
+ - @backstage/backend-common@0.21.0-next.1
+ - @backstage/config@1.1.1
+ - @backstage/errors@1.2.3
+
+## @backstage/plugin-octopus-deploy@0.2.12-next.1
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/core-components@0.14.0-next.0
+ - @backstage/catalog-model@1.4.4-next.0
+ - @backstage/core-plugin-api@1.8.3-next.0
+ - @backstage/plugin-catalog-react@1.9.4-next.1
+
+## @backstage/plugin-opencost@0.2.5-next.0
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/core-components@0.14.0-next.0
+ - @backstage/core-plugin-api@1.8.3-next.0
+
+## @backstage/plugin-org@0.6.20-next.1
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/core-components@0.14.0-next.0
+ - @backstage/catalog-model@1.4.4-next.0
+ - @backstage/core-plugin-api@1.8.3-next.0
+ - @backstage/plugin-catalog-react@1.9.4-next.1
+ - @backstage/plugin-catalog-common@1.0.21-next.0
+
+## @backstage/plugin-org-react@0.1.19-next.1
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/core-components@0.14.0-next.0
+ - @backstage/catalog-model@1.4.4-next.0
+ - @backstage/catalog-client@1.6.0-next.1
+ - @backstage/core-plugin-api@1.8.3-next.0
+ - @backstage/plugin-catalog-react@1.9.4-next.1
+
+## @backstage/plugin-pagerduty@0.7.2-next.1
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/core-components@0.14.0-next.0
+ - @backstage/catalog-model@1.4.4-next.0
+ - @backstage/core-plugin-api@1.8.3-next.0
+ - @backstage/plugin-catalog-react@1.9.4-next.1
+ - @backstage/plugin-home-react@0.1.8-next.1
+ - @backstage/errors@1.2.3
+
+## @backstage/plugin-periskop@0.1.28-next.1
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/core-components@0.14.0-next.0
+ - @backstage/catalog-model@1.4.4-next.0
+ - @backstage/core-plugin-api@1.8.3-next.0
+ - @backstage/plugin-catalog-react@1.9.4-next.1
+ - @backstage/errors@1.2.3
+
+## @backstage/plugin-periskop-backend@0.2.8-next.1
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/backend-plugin-api@0.6.10-next.1
+ - @backstage/backend-common@0.21.0-next.1
+ - @backstage/config@1.1.1
+
+## @backstage/plugin-permission-backend@0.5.33-next.1
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/backend-plugin-api@0.6.10-next.1
+ - @backstage/backend-common@0.21.0-next.1
+ - @backstage/config@1.1.1
+ - @backstage/errors@1.2.3
+ - @backstage/plugin-auth-node@0.4.4-next.1
+ - @backstage/plugin-permission-common@0.7.12
+ - @backstage/plugin-permission-node@0.7.21-next.1
+
+## @backstage/plugin-permission-backend-module-allow-all-policy@0.1.7-next.1
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/backend-plugin-api@0.6.10-next.1
+ - @backstage/plugin-auth-node@0.4.4-next.1
+ - @backstage/plugin-permission-common@0.7.12
+ - @backstage/plugin-permission-node@0.7.21-next.1
+
+## @backstage/plugin-permission-node@0.7.21-next.1
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/backend-plugin-api@0.6.10-next.1
+ - @backstage/backend-common@0.21.0-next.1
+ - @backstage/config@1.1.1
+ - @backstage/errors@1.2.3
+ - @backstage/plugin-auth-node@0.4.4-next.1
+ - @backstage/plugin-permission-common@0.7.12
+
+## @backstage/plugin-permission-react@0.4.20-next.0
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/core-plugin-api@1.8.3-next.0
+ - @backstage/config@1.1.1
+ - @backstage/plugin-permission-common@0.7.12
+
+## @backstage/plugin-playlist@0.2.4-next.1
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/core-components@0.14.0-next.0
+ - @backstage/catalog-model@1.4.4-next.0
+ - @backstage/core-plugin-api@1.8.3-next.0
+ - @backstage/plugin-catalog-react@1.9.4-next.1
+ - @backstage/plugin-search-react@1.7.6-next.1
+ - @backstage/errors@1.2.3
+ - @backstage/plugin-catalog-common@1.0.21-next.0
+ - @backstage/plugin-permission-common@0.7.12
+ - @backstage/plugin-permission-react@0.4.20-next.0
+ - @backstage/plugin-playlist-common@0.1.14
+
+## @backstage/plugin-playlist-backend@0.3.14-next.1
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/catalog-model@1.4.4-next.0
+ - @backstage/catalog-client@1.6.0-next.1
+ - @backstage/backend-plugin-api@0.6.10-next.1
+ - @backstage/backend-common@0.21.0-next.1
+ - @backstage/config@1.1.1
+ - @backstage/errors@1.2.3
+ - @backstage/plugin-auth-node@0.4.4-next.1
+ - @backstage/plugin-permission-common@0.7.12
+ - @backstage/plugin-permission-node@0.7.21-next.1
+ - @backstage/plugin-playlist-common@0.1.14
+
+## @backstage/plugin-proxy-backend@0.4.8-next.1
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/backend-plugin-api@0.6.10-next.1
+ - @backstage/backend-common@0.21.0-next.1
+ - @backstage/config@1.1.1
+
+## @backstage/plugin-puppetdb@0.1.13-next.1
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/core-components@0.14.0-next.0
+ - @backstage/catalog-model@1.4.4-next.0
+ - @backstage/core-plugin-api@1.8.3-next.0
+ - @backstage/plugin-catalog-react@1.9.4-next.1
+ - @backstage/errors@1.2.3
+
+## @backstage/plugin-rollbar@0.4.30-next.1
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/core-components@0.14.0-next.0
+ - @backstage/catalog-model@1.4.4-next.0
+ - @backstage/core-plugin-api@1.8.3-next.0
+ - @backstage/plugin-catalog-react@1.9.4-next.1
+
+## @backstage/plugin-rollbar-backend@0.1.55-next.1
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/backend-common@0.21.0-next.1
+ - @backstage/config@1.1.1
+
+## @backstage/plugin-scaffolder-backend-module-azure@0.1.2-next.1
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/backend-plugin-api@0.6.10-next.1
+ - @backstage/backend-common@0.21.0-next.1
+ - @backstage/integration@1.9.0-next.0
+ - @backstage/plugin-scaffolder-node@0.3.0-next.1
+ - @backstage/config@1.1.1
+ - @backstage/errors@1.2.3
+
+## @backstage/plugin-scaffolder-backend-module-bitbucket@0.1.2-next.1
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/backend-plugin-api@0.6.10-next.1
+ - @backstage/backend-common@0.21.0-next.1
+ - @backstage/integration@1.9.0-next.0
+ - @backstage/plugin-scaffolder-node@0.3.0-next.1
+ - @backstage/config@1.1.1
+ - @backstage/errors@1.2.3
+
+## @backstage/plugin-scaffolder-backend-module-confluence-to-markdown@0.2.11-next.1
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/backend-plugin-api@0.6.10-next.1
+ - @backstage/backend-common@0.21.0-next.1
+ - @backstage/integration@1.9.0-next.0
+ - @backstage/plugin-scaffolder-node@0.3.0-next.1
+ - @backstage/config@1.1.1
+ - @backstage/errors@1.2.3
+
+## @backstage/plugin-scaffolder-backend-module-cookiecutter@0.2.34-next.1
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/backend-plugin-api@0.6.10-next.1
+ - @backstage/backend-common@0.21.0-next.1
+ - @backstage/integration@1.9.0-next.0
+ - @backstage/plugin-scaffolder-node@0.3.0-next.1
+ - @backstage/config@1.1.1
+ - @backstage/errors@1.2.3
+ - @backstage/types@1.1.1
+
+## @backstage/plugin-scaffolder-backend-module-gerrit@0.1.2-next.1
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/backend-plugin-api@0.6.10-next.1
+ - @backstage/integration@1.9.0-next.0
+ - @backstage/plugin-scaffolder-node@0.3.0-next.1
+ - @backstage/config@1.1.1
+ - @backstage/errors@1.2.3
+
+## @backstage/plugin-scaffolder-backend-module-gitlab@0.2.13-next.1
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/backend-plugin-api@0.6.10-next.1
+ - @backstage/backend-common@0.21.0-next.1
+ - @backstage/integration@1.9.0-next.0
+ - @backstage/plugin-scaffolder-node@0.3.0-next.1
+ - @backstage/config@1.1.1
+ - @backstage/errors@1.2.3
+
+## @backstage/plugin-scaffolder-backend-module-rails@0.4.27-next.1
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/backend-plugin-api@0.6.10-next.1
+ - @backstage/backend-common@0.21.0-next.1
+ - @backstage/integration@1.9.0-next.0
+ - @backstage/plugin-scaffolder-node@0.3.0-next.1
+ - @backstage/config@1.1.1
+ - @backstage/errors@1.2.3
+ - @backstage/types@1.1.1
+
+## @backstage/plugin-scaffolder-backend-module-sentry@0.1.18-next.1
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/backend-plugin-api@0.6.10-next.1
+ - @backstage/plugin-scaffolder-node@0.3.0-next.1
+ - @backstage/config@1.1.1
+ - @backstage/errors@1.2.3
+
+## @backstage/plugin-scaffolder-backend-module-yeoman@0.2.31-next.1
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/backend-plugin-api@0.6.10-next.1
+ - @backstage/plugin-scaffolder-node@0.3.0-next.1
+ - @backstage/types@1.1.1
+
+## @backstage/plugin-scaffolder-common@1.5.0-next.1
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/catalog-model@1.4.4-next.0
+ - @backstage/types@1.1.1
+ - @backstage/plugin-permission-common@0.7.12
+
+## @backstage/plugin-search@1.4.6-next.1
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/frontend-plugin-api@0.6.0-next.1
+ - @backstage/core-compat-api@0.2.0-next.1
+ - @backstage/core-components@0.14.0-next.0
+ - @backstage/core-plugin-api@1.8.3-next.0
+ - @backstage/plugin-catalog-react@1.9.4-next.1
+ - @backstage/plugin-search-react@1.7.6-next.1
+ - @backstage/errors@1.2.3
+ - @backstage/types@1.1.1
+ - @backstage/version-bridge@1.0.7
+ - @backstage/plugin-search-common@1.2.10
+
+## @backstage/plugin-search-backend@1.5.0-next.1
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/backend-plugin-api@0.6.10-next.1
+ - @backstage/backend-common@0.21.0-next.1
+ - @backstage/backend-openapi-utils@0.1.3-next.1
+ - @backstage/config@1.1.1
+ - @backstage/errors@1.2.3
+ - @backstage/types@1.1.1
+ - @backstage/plugin-auth-node@0.4.4-next.1
+ - @backstage/plugin-permission-common@0.7.12
+ - @backstage/plugin-permission-node@0.7.21-next.1
+ - @backstage/plugin-search-backend-node@1.2.14-next.1
+ - @backstage/plugin-search-common@1.2.10
+
+## @backstage/plugin-search-backend-module-catalog@0.1.14-next.1
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/catalog-model@1.4.4-next.0
+ - @backstage/catalog-client@1.6.0-next.1
+ - @backstage/backend-plugin-api@0.6.10-next.1
+ - @backstage/backend-common@0.21.0-next.1
+ - @backstage/backend-tasks@0.5.15-next.1
+ - @backstage/config@1.1.1
+ - @backstage/errors@1.2.3
+ - @backstage/plugin-catalog-common@1.0.21-next.0
+ - @backstage/plugin-catalog-node@1.6.2-next.1
+ - @backstage/plugin-permission-common@0.7.12
+ - @backstage/plugin-search-backend-node@1.2.14-next.1
+ - @backstage/plugin-search-common@1.2.10
+
+## @backstage/plugin-search-backend-module-elasticsearch@1.3.13-next.1
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/backend-plugin-api@0.6.10-next.1
+ - @backstage/backend-common@0.21.0-next.1
+ - @backstage/config@1.1.1
+ - @backstage/integration-aws-node@0.1.8
+ - @backstage/plugin-search-backend-node@1.2.14-next.1
+ - @backstage/plugin-search-common@1.2.10
+
+## @backstage/plugin-search-backend-module-explore@0.1.14-next.1
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/backend-plugin-api@0.6.10-next.1
+ - @backstage/backend-common@0.21.0-next.1
+ - @backstage/backend-tasks@0.5.15-next.1
+ - @backstage/config@1.1.1
+ - @backstage/plugin-explore-common@0.0.2
+ - @backstage/plugin-search-backend-node@1.2.14-next.1
+ - @backstage/plugin-search-common@1.2.10
+
+## @backstage/plugin-search-backend-module-pg@0.5.19-next.1
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/backend-plugin-api@0.6.10-next.1
+ - @backstage/backend-common@0.21.0-next.1
+ - @backstage/config@1.1.1
+ - @backstage/plugin-search-backend-node@1.2.14-next.1
+ - @backstage/plugin-search-common@1.2.10
+
+## @backstage/plugin-search-backend-module-stack-overflow-collator@0.1.3-next.1
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/backend-plugin-api@0.6.10-next.1
+ - @backstage/backend-common@0.21.0-next.1
+ - @backstage/backend-tasks@0.5.15-next.1
+ - @backstage/config@1.1.1
+ - @backstage/plugin-search-backend-node@1.2.14-next.1
+ - @backstage/plugin-search-common@1.2.10
+
+## @backstage/plugin-search-backend-module-techdocs@0.1.14-next.1
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/catalog-model@1.4.4-next.0
+ - @backstage/catalog-client@1.6.0-next.1
+ - @backstage/backend-plugin-api@0.6.10-next.1
+ - @backstage/backend-common@0.21.0-next.1
+ - @backstage/plugin-techdocs-node@1.11.2-next.1
+ - @backstage/backend-tasks@0.5.15-next.1
+ - @backstage/config@1.1.1
+ - @backstage/plugin-catalog-common@1.0.21-next.0
+ - @backstage/plugin-catalog-node@1.6.2-next.1
+ - @backstage/plugin-permission-common@0.7.12
+ - @backstage/plugin-search-backend-node@1.2.14-next.1
+ - @backstage/plugin-search-common@1.2.10
+
+## @backstage/plugin-search-backend-node@1.2.14-next.1
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/backend-plugin-api@0.6.10-next.1
+ - @backstage/backend-common@0.21.0-next.1
+ - @backstage/backend-tasks@0.5.15-next.1
+ - @backstage/config@1.1.1
+ - @backstage/errors@1.2.3
+ - @backstage/plugin-permission-common@0.7.12
+ - @backstage/plugin-search-common@1.2.10
+
+## @backstage/plugin-search-react@1.7.6-next.1
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/frontend-plugin-api@0.6.0-next.1
+ - @backstage/core-components@0.14.0-next.0
+ - @backstage/core-plugin-api@1.8.3-next.0
+ - @backstage/theme@0.5.0
+ - @backstage/types@1.1.1
+ - @backstage/version-bridge@1.0.7
+ - @backstage/plugin-search-common@1.2.10
+
+## @backstage/plugin-sentry@0.5.15-next.1
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/core-components@0.14.0-next.0
+ - @backstage/catalog-model@1.4.4-next.0
+ - @backstage/core-plugin-api@1.8.3-next.0
+ - @backstage/plugin-catalog-react@1.9.4-next.1
+
+## @backstage/plugin-shortcuts@0.3.19-next.0
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/core-components@0.14.0-next.0
+ - @backstage/core-plugin-api@1.8.3-next.0
+ - @backstage/theme@0.5.0
+ - @backstage/types@1.1.1
+
+## @backstage/plugin-signals@0.0.1-next.1
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/core-components@0.14.0-next.0
+ - @backstage/core-plugin-api@1.8.3-next.0
+ - @backstage/theme@0.5.0
+ - @backstage/types@1.1.1
+ - @backstage/plugin-signals-react@0.0.1-next.1
+
+## @backstage/plugin-signals-backend@0.0.1-next.1
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/backend-plugin-api@0.6.10-next.1
+ - @backstage/backend-common@0.21.0-next.1
+ - @backstage/config@1.1.1
+ - @backstage/types@1.1.1
+ - @backstage/plugin-auth-node@0.4.4-next.1
+ - @backstage/plugin-events-node@0.2.19-next.1
+ - @backstage/plugin-signals-node@0.0.1-next.1
+
+## @backstage/plugin-signals-node@0.0.1-next.1
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/backend-plugin-api@0.6.10-next.1
+ - @backstage/backend-common@0.21.0-next.1
+ - @backstage/config@1.1.1
+ - @backstage/types@1.1.1
+ - @backstage/plugin-auth-node@0.4.4-next.1
+ - @backstage/plugin-events-node@0.2.19-next.1
+
+## @backstage/plugin-signals-react@0.0.1-next.1
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/core-plugin-api@1.8.3-next.0
+ - @backstage/types@1.1.1
+
+## @backstage/plugin-sonarqube@0.7.12-next.1
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/core-components@0.14.0-next.0
+ - @backstage/catalog-model@1.4.4-next.0
+ - @backstage/core-plugin-api@1.8.3-next.0
+ - @backstage/plugin-catalog-react@1.9.4-next.1
+ - @backstage/plugin-sonarqube-react@0.1.13-next.0
+
+## @backstage/plugin-sonarqube-backend@0.2.12-next.1
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/backend-plugin-api@0.6.10-next.1
+ - @backstage/backend-common@0.21.0-next.1
+ - @backstage/config@1.1.1
+ - @backstage/errors@1.2.3
+
+## @backstage/plugin-sonarqube-react@0.1.13-next.0
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/catalog-model@1.4.4-next.0
+ - @backstage/core-plugin-api@1.8.3-next.0
+
+## @backstage/plugin-splunk-on-call@0.4.19-next.1
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/core-components@0.14.0-next.0
+ - @backstage/catalog-model@1.4.4-next.0
+ - @backstage/core-plugin-api@1.8.3-next.0
+ - @backstage/plugin-catalog-react@1.9.4-next.1
+
+## @backstage/plugin-stack-overflow@0.1.25-next.1
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/frontend-plugin-api@0.6.0-next.1
+ - @backstage/core-components@0.14.0-next.0
+ - @backstage/core-plugin-api@1.8.3-next.0
+ - @backstage/plugin-search-react@1.7.6-next.1
+ - @backstage/plugin-home-react@0.1.8-next.1
+ - @backstage/config@1.1.1
+ - @backstage/plugin-search-common@1.2.10
+
+## @backstage/plugin-stack-overflow-backend@0.2.14-next.1
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/plugin-search-backend-module-stack-overflow-collator@0.1.3-next.1
+
+## @backstage/plugin-stackstorm@0.1.11-next.0
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/core-components@0.14.0-next.0
+ - @backstage/core-plugin-api@1.8.3-next.0
+ - @backstage/errors@1.2.3
+
+## @backstage/plugin-tech-insights@0.3.22-next.1
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/core-components@0.14.0-next.0
+ - @backstage/catalog-model@1.4.4-next.0
+ - @backstage/core-plugin-api@1.8.3-next.0
+ - @backstage/plugin-catalog-react@1.9.4-next.1
+ - @backstage/errors@1.2.3
+ - @backstage/types@1.1.1
+ - @backstage/plugin-tech-insights-common@0.2.12
+
+## @backstage/plugin-tech-insights-backend@0.5.24-next.1
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/catalog-model@1.4.4-next.0
+ - @backstage/catalog-client@1.6.0-next.1
+ - @backstage/backend-common@0.21.0-next.1
+ - @backstage/backend-tasks@0.5.15-next.1
+ - @backstage/config@1.1.1
+ - @backstage/errors@1.2.3
+ - @backstage/types@1.1.1
+ - @backstage/plugin-tech-insights-common@0.2.12
+ - @backstage/plugin-tech-insights-node@0.4.16-next.1
+
+## @backstage/plugin-tech-insights-backend-module-jsonfc@0.1.42-next.1
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/backend-common@0.21.0-next.1
+ - @backstage/errors@1.2.3
+ - @backstage/plugin-tech-insights-common@0.2.12
+ - @backstage/plugin-tech-insights-node@0.4.16-next.1
+
+## @backstage/plugin-tech-insights-node@0.4.16-next.1
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/backend-common@0.21.0-next.1
+ - @backstage/config@1.1.1
+ - @backstage/types@1.1.1
+ - @backstage/plugin-tech-insights-common@0.2.12
+
+## @backstage/plugin-tech-radar@0.6.13-next.1
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/frontend-plugin-api@0.6.0-next.1
+ - @backstage/core-compat-api@0.2.0-next.1
+ - @backstage/core-components@0.14.0-next.0
+ - @backstage/core-plugin-api@1.8.3-next.0
+
+## @backstage/plugin-techdocs-addons-test-utils@1.0.27-next.1
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/test-utils@1.5.0-next.1
+ - @backstage/plugin-catalog@1.17.0-next.1
+ - @backstage/core-plugin-api@1.8.3-next.0
+ - @backstage/core-app-api@1.11.4-next.0
+ - @backstage/plugin-techdocs@1.10.0-next.1
+ - @backstage/plugin-catalog-react@1.9.4-next.1
+ - @backstage/plugin-search-react@1.7.6-next.1
+ - @backstage/integration-react@1.1.24-next.0
+ - @backstage/plugin-techdocs-react@1.1.16-next.0
+
+## @backstage/plugin-techdocs-backend@1.9.3-next.1
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/catalog-model@1.4.4-next.0
+ - @backstage/catalog-client@1.6.0-next.1
+ - @backstage/backend-plugin-api@0.6.10-next.1
+ - @backstage/backend-common@0.21.0-next.1
+ - @backstage/plugin-techdocs-node@1.11.2-next.1
+ - @backstage/integration@1.9.0-next.0
+ - @backstage/config@1.1.1
+ - @backstage/errors@1.2.3
+ - @backstage/plugin-catalog-common@1.0.21-next.0
+ - @backstage/plugin-permission-common@0.7.12
+ - @backstage/plugin-search-backend-module-techdocs@0.1.14-next.1
+
+## @backstage/plugin-techdocs-module-addons-contrib@1.1.5-next.1
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/core-components@0.14.0-next.0
+ - @backstage/core-plugin-api@1.8.3-next.0
+ - @backstage/integration@1.9.0-next.0
+ - @backstage/integration-react@1.1.24-next.0
+ - @backstage/plugin-techdocs-react@1.1.16-next.0
+
+## @backstage/plugin-techdocs-node@1.11.2-next.1
+
+### Patch Changes
+
+- 77e3050: Update to a newer version of `@trendyol-js/openstack-swift-sdk`
+- Updated dependencies
+ - @backstage/catalog-model@1.4.4-next.0
+ - @backstage/backend-plugin-api@0.6.10-next.1
+ - @backstage/backend-common@0.21.0-next.1
+ - @backstage/integration@1.9.0-next.0
+ - @backstage/config@1.1.1
+ - @backstage/errors@1.2.3
+ - @backstage/integration-aws-node@0.1.8
+ - @backstage/plugin-search-common@1.2.10
+
+## @backstage/plugin-techdocs-react@1.1.16-next.0
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/core-components@0.14.0-next.0
+ - @backstage/catalog-model@1.4.4-next.0
+ - @backstage/core-plugin-api@1.8.3-next.0
+ - @backstage/config@1.1.1
+ - @backstage/version-bridge@1.0.7
+
+## @backstage/plugin-todo@0.2.34-next.1
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/core-components@0.14.0-next.0
+ - @backstage/catalog-model@1.4.4-next.0
+ - @backstage/core-plugin-api@1.8.3-next.0
+ - @backstage/plugin-catalog-react@1.9.4-next.1
+ - @backstage/errors@1.2.3
+
+## @backstage/plugin-todo-backend@0.3.8-next.1
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/catalog-model@1.4.4-next.0
+ - @backstage/catalog-client@1.6.0-next.1
+ - @backstage/backend-plugin-api@0.6.10-next.1
+ - @backstage/backend-common@0.21.0-next.1
+ - @backstage/integration@1.9.0-next.0
+ - @backstage/backend-openapi-utils@0.1.3-next.1
+ - @backstage/config@1.1.1
+ - @backstage/errors@1.2.3
+ - @backstage/plugin-catalog-node@1.6.2-next.1
+
+## @backstage/plugin-user-settings@0.8.1-next.1
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/frontend-plugin-api@0.6.0-next.1
+ - @backstage/core-compat-api@0.2.0-next.1
+ - @backstage/core-components@0.14.0-next.0
+ - @backstage/core-plugin-api@1.8.3-next.0
+ - @backstage/core-app-api@1.11.4-next.0
+ - @backstage/plugin-catalog-react@1.9.4-next.1
+ - @backstage/errors@1.2.3
+ - @backstage/theme@0.5.0
+ - @backstage/types@1.1.1
+
+## @backstage/plugin-user-settings-backend@0.2.9-next.1
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/backend-plugin-api@0.6.10-next.1
+ - @backstage/backend-common@0.21.0-next.1
+ - @backstage/config@1.1.1
+ - @backstage/errors@1.2.3
+ - @backstage/types@1.1.1
+ - @backstage/plugin-auth-node@0.4.4-next.1
+
+## @backstage/plugin-vault@0.1.25-next.1
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/core-components@0.14.0-next.0
+ - @backstage/catalog-model@1.4.4-next.0
+ - @backstage/core-plugin-api@1.8.3-next.0
+ - @backstage/plugin-catalog-react@1.9.4-next.1
+ - @backstage/errors@1.2.3
+
+## @backstage/plugin-vault-backend@0.4.3-next.1
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/backend-plugin-api@0.6.10-next.1
+ - @backstage/backend-common@0.21.0-next.1
+ - @backstage/backend-tasks@0.5.15-next.1
+ - @backstage/config@1.1.1
+ - @backstage/errors@1.2.3
+ - @backstage/plugin-vault-node@0.1.3-next.1
+
+## @backstage/plugin-vault-node@0.1.3-next.1
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/backend-plugin-api@0.6.10-next.1
+
+## @backstage/plugin-xcmetrics@0.2.48-next.0
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/core-components@0.14.0-next.0
+ - @backstage/core-plugin-api@1.8.3-next.0
+ - @backstage/errors@1.2.3
+
+## example-app@0.2.92-next.1
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/frontend-app-api@0.6.0-next.1
+ - @backstage/plugin-scaffolder-react@1.8.0-next.1
+ - @backstage/plugin-adr@0.6.13-next.1
+ - @backstage/plugin-catalog-graph@0.3.4-next.1
+ - @backstage/core-components@0.14.0-next.0
+ - @backstage/plugin-scaffolder@1.18.0-next.1
+ - @backstage/cli@0.25.2-next.1
+ - @backstage/catalog-model@1.4.4-next.0
+ - @backstage/plugin-explore@0.4.16-next.1
+ - @backstage/plugin-catalog@1.17.0-next.1
+ - @backstage/core-plugin-api@1.8.3-next.0
+ - @backstage/app-defaults@1.4.8-next.1
+ - @backstage/core-app-api@1.11.4-next.0
+ - @backstage/plugin-techdocs@1.10.0-next.1
+ - @backstage/plugin-azure-sites@0.1.19-next.1
+ - @backstage/plugin-home@0.6.2-next.1
+ - @backstage/plugin-catalog-import@0.10.6-next.1
+ - @backstage/plugin-catalog-react@1.9.4-next.1
+ - @backstage/plugin-devtools@0.1.9-next.1
+ - @backstage/plugin-graphiql@0.3.3-next.1
+ - @backstage/plugin-linguist@0.1.15-next.1
+ - @backstage/plugin-search@1.4.6-next.1
+ - @backstage/plugin-search-react@1.7.6-next.1
+ - @backstage/plugin-stack-overflow@0.1.25-next.1
+ - @backstage/plugin-tech-radar@0.6.13-next.1
+ - @backstage/plugin-user-settings@0.8.1-next.1
+ - @backstage/integration-react@1.1.24-next.0
+ - @backstage/plugin-airbrake@0.3.30-next.1
+ - @backstage/plugin-apache-airflow@0.2.20-next.0
+ - @backstage/plugin-api-docs@0.10.4-next.1
+ - @backstage/plugin-azure-devops@0.3.12-next.1
+ - @backstage/plugin-badges@0.2.54-next.1
+ - @backstage/plugin-catalog-unprocessed-entities@0.1.8-next.0
+ - @backstage/plugin-cloudbuild@0.4.0-next.1
+ - @backstage/plugin-code-coverage@0.2.23-next.1
+ - @backstage/plugin-cost-insights@0.12.19-next.1
+ - @backstage/plugin-dynatrace@8.0.4-next.1
+ - @backstage/plugin-entity-feedback@0.2.13-next.1
+ - @backstage/plugin-gcalendar@0.3.23-next.0
+ - @backstage/plugin-gcp-projects@0.3.46-next.0
+ - @backstage/plugin-github-actions@0.6.11-next.1
+ - @backstage/plugin-gocd@0.1.36-next.1
+ - @backstage/plugin-jenkins@0.9.5-next.1
+ - @backstage/plugin-kafka@0.3.30-next.1
+ - @backstage/plugin-kubernetes@0.11.5-next.1
+ - @backstage/plugin-kubernetes-cluster@0.0.6-next.1
+ - @backstage/plugin-lighthouse@0.4.15-next.1
+ - @backstage/plugin-microsoft-calendar@0.1.12-next.0
+ - @backstage/plugin-newrelic@0.3.45-next.0
+ - @backstage/plugin-newrelic-dashboard@0.3.5-next.1
+ - @backstage/plugin-nomad@0.1.11-next.1
+ - @backstage/plugin-octopus-deploy@0.2.12-next.1
+ - @backstage/plugin-org@0.6.20-next.1
+ - @backstage/plugin-pagerduty@0.7.2-next.1
+ - @backstage/plugin-playlist@0.2.4-next.1
+ - @backstage/plugin-puppetdb@0.1.13-next.1
+ - @backstage/plugin-rollbar@0.4.30-next.1
+ - @backstage/plugin-sentry@0.5.15-next.1
+ - @backstage/plugin-shortcuts@0.3.19-next.0
+ - @backstage/plugin-signals@0.0.1-next.1
+ - @backstage/plugin-stackstorm@0.1.11-next.0
+ - @backstage/plugin-tech-insights@0.3.22-next.1
+ - @backstage/plugin-techdocs-module-addons-contrib@1.1.5-next.1
+ - @backstage/plugin-techdocs-react@1.1.16-next.0
+ - @backstage/plugin-todo@0.2.34-next.1
+ - @backstage/config@1.1.1
+ - @backstage/theme@0.5.0
+ - @backstage/plugin-catalog-common@1.0.21-next.0
+ - @backstage/plugin-linguist-common@0.1.2
+ - @backstage/plugin-permission-react@0.4.20-next.0
+ - @backstage/plugin-search-common@1.2.10
+
+## example-app-next@0.0.6-next.1
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/frontend-plugin-api@0.6.0-next.1
+ - @backstage/frontend-app-api@0.6.0-next.1
+ - @backstage/plugin-scaffolder-react@1.8.0-next.1
+ - @backstage/core-compat-api@0.2.0-next.1
+ - @backstage/plugin-adr@0.6.13-next.1
+ - @backstage/plugin-catalog-graph@0.3.4-next.1
+ - @backstage/core-components@0.14.0-next.0
+ - @backstage/plugin-scaffolder@1.18.0-next.1
+ - @backstage/cli@0.25.2-next.1
+ - @backstage/catalog-model@1.4.4-next.0
+ - @backstage/plugin-explore@0.4.16-next.1
+ - @backstage/plugin-catalog@1.17.0-next.1
+ - @backstage/core-plugin-api@1.8.3-next.0
+ - @backstage/app-defaults@1.4.8-next.1
+ - @backstage/core-app-api@1.11.4-next.0
+ - @backstage/plugin-techdocs@1.10.0-next.1
+ - @backstage/plugin-azure-sites@0.1.19-next.1
+ - @backstage/plugin-home@0.6.2-next.1
+ - app-next-example-plugin@0.0.6-next.1
+ - @backstage/plugin-app-visualizer@0.1.1-next.1
+ - @backstage/plugin-catalog-import@0.10.6-next.1
+ - @backstage/plugin-catalog-react@1.9.4-next.1
+ - @backstage/plugin-devtools@0.1.9-next.1
+ - @backstage/plugin-graphiql@0.3.3-next.1
+ - @backstage/plugin-linguist@0.1.15-next.1
+ - @backstage/plugin-search@1.4.6-next.1
+ - @backstage/plugin-search-react@1.7.6-next.1
+ - @backstage/plugin-tech-radar@0.6.13-next.1
+ - @backstage/plugin-user-settings@0.8.1-next.1
+ - @backstage/integration-react@1.1.24-next.0
+ - @backstage/plugin-airbrake@0.3.30-next.1
+ - @backstage/plugin-apache-airflow@0.2.20-next.0
+ - @backstage/plugin-api-docs@0.10.4-next.1
+ - @backstage/plugin-azure-devops@0.3.12-next.1
+ - @backstage/plugin-badges@0.2.54-next.1
+ - @backstage/plugin-catalog-unprocessed-entities@0.1.8-next.0
+ - @backstage/plugin-cloudbuild@0.4.0-next.1
+ - @backstage/plugin-code-coverage@0.2.23-next.1
+ - @backstage/plugin-cost-insights@0.12.19-next.1
+ - @backstage/plugin-dynatrace@8.0.4-next.1
+ - @backstage/plugin-entity-feedback@0.2.13-next.1
+ - @backstage/plugin-gcalendar@0.3.23-next.0
+ - @backstage/plugin-gcp-projects@0.3.46-next.0
+ - @backstage/plugin-github-actions@0.6.11-next.1
+ - @backstage/plugin-gocd@0.1.36-next.1
+ - @backstage/plugin-jenkins@0.9.5-next.1
+ - @backstage/plugin-kafka@0.3.30-next.1
+ - @backstage/plugin-kubernetes@0.11.5-next.1
+ - @backstage/plugin-lighthouse@0.4.15-next.1
+ - @backstage/plugin-microsoft-calendar@0.1.12-next.0
+ - @backstage/plugin-newrelic@0.3.45-next.0
+ - @backstage/plugin-newrelic-dashboard@0.3.5-next.1
+ - @backstage/plugin-octopus-deploy@0.2.12-next.1
+ - @backstage/plugin-org@0.6.20-next.1
+ - @backstage/plugin-pagerduty@0.7.2-next.1
+ - @backstage/plugin-playlist@0.2.4-next.1
+ - @backstage/plugin-puppetdb@0.1.13-next.1
+ - @backstage/plugin-rollbar@0.4.30-next.1
+ - @backstage/plugin-sentry@0.5.15-next.1
+ - @backstage/plugin-shortcuts@0.3.19-next.0
+ - @backstage/plugin-stackstorm@0.1.11-next.0
+ - @backstage/plugin-tech-insights@0.3.22-next.1
+ - @backstage/plugin-techdocs-module-addons-contrib@1.1.5-next.1
+ - @backstage/plugin-techdocs-react@1.1.16-next.0
+ - @backstage/plugin-todo@0.2.34-next.1
+ - @backstage/theme@0.5.0
+ - @backstage/plugin-catalog-common@1.0.21-next.0
+ - @backstage/plugin-linguist-common@0.1.2
+ - @backstage/plugin-permission-react@0.4.20-next.0
+ - @backstage/plugin-search-common@1.2.10
+
+## app-next-example-plugin@0.0.6-next.1
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/frontend-plugin-api@0.6.0-next.1
+ - @backstage/core-components@0.14.0-next.0
+
+## example-backend@0.2.92-next.1
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/plugin-scaffolder-backend@1.21.0-next.1
+ - @backstage/plugin-azure-devops-backend@0.5.2-next.1
+ - @backstage/catalog-model@1.4.4-next.0
+ - @backstage/catalog-client@1.6.0-next.1
+ - @backstage/plugin-catalog-backend@1.17.0-next.1
+ - @backstage/backend-common@0.21.0-next.1
+ - @backstage/plugin-auth-backend@0.20.4-next.1
+ - @backstage/integration@1.9.0-next.0
+ - @backstage/plugin-azure-sites-common@0.1.2-next.0
+ - example-app@0.2.92-next.1
+ - @backstage/backend-tasks@0.5.15-next.1
+ - @backstage/config@1.1.1
+ - @backstage/plugin-adr-backend@0.4.7-next.1
+ - @backstage/plugin-app-backend@0.3.58-next.1
+ - @backstage/plugin-auth-node@0.4.4-next.1
+ - @backstage/plugin-badges-backend@0.3.7-next.1
+ - @backstage/plugin-catalog-backend-module-scaffolder-entity-model@0.1.7-next.1
+ - @backstage/plugin-catalog-backend-module-unprocessed@0.3.7-next.1
+ - @backstage/plugin-catalog-node@1.6.2-next.1
+ - @backstage/plugin-code-coverage-backend@0.2.24-next.1
+ - @backstage/plugin-devtools-backend@0.2.7-next.1
+ - @backstage/plugin-entity-feedback-backend@0.2.7-next.1
+ - @backstage/plugin-events-backend@0.2.19-next.1
+ - @backstage/plugin-events-node@0.2.19-next.1
+ - @backstage/plugin-explore-backend@0.0.20-next.1
+ - @backstage/plugin-jenkins-backend@0.3.4-next.1
+ - @backstage/plugin-kafka-backend@0.3.8-next.1
+ - @backstage/plugin-kubernetes-backend@0.14.2-next.1
+ - @backstage/plugin-lighthouse-backend@0.4.2-next.1
+ - @backstage/plugin-linguist-backend@0.5.7-next.1
+ - @backstage/plugin-nomad-backend@0.1.12-next.1
+ - @backstage/plugin-permission-backend@0.5.33-next.1
+ - @backstage/plugin-permission-common@0.7.12
+ - @backstage/plugin-permission-node@0.7.21-next.1
+ - @backstage/plugin-playlist-backend@0.3.14-next.1
+ - @backstage/plugin-proxy-backend@0.4.8-next.1
+ - @backstage/plugin-rollbar-backend@0.1.55-next.1
+ - @backstage/plugin-scaffolder-backend-module-confluence-to-markdown@0.2.11-next.1
+ - @backstage/plugin-scaffolder-backend-module-rails@0.4.27-next.1
+ - @backstage/plugin-search-backend@1.5.0-next.1
+ - @backstage/plugin-search-backend-module-catalog@0.1.14-next.1
+ - @backstage/plugin-search-backend-module-elasticsearch@1.3.13-next.1
+ - @backstage/plugin-search-backend-module-explore@0.1.14-next.1
+ - @backstage/plugin-search-backend-module-pg@0.5.19-next.1
+ - @backstage/plugin-search-backend-module-techdocs@0.1.14-next.1
+ - @backstage/plugin-search-backend-node@1.2.14-next.1
+ - @backstage/plugin-search-common@1.2.10
+ - @backstage/plugin-signals-backend@0.0.1-next.1
+ - @backstage/plugin-signals-node@0.0.1-next.1
+ - @backstage/plugin-tech-insights-backend@0.5.24-next.1
+ - @backstage/plugin-tech-insights-backend-module-jsonfc@0.1.42-next.1
+ - @backstage/plugin-tech-insights-node@0.4.16-next.1
+ - @backstage/plugin-techdocs-backend@1.9.3-next.1
+ - @backstage/plugin-todo-backend@0.3.8-next.1
+
+## example-backend-next@0.0.20-next.1
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/plugin-scaffolder-backend@1.21.0-next.1
+ - @backstage/plugin-azure-devops-backend@0.5.2-next.1
+ - @backstage/plugin-catalog-backend@1.17.0-next.1
+ - @backstage/backend-plugin-api@0.6.10-next.1
+ - @backstage/backend-defaults@0.2.10-next.1
+ - @backstage/backend-tasks@0.5.15-next.1
+ - @backstage/plugin-adr-backend@0.4.7-next.1
+ - @backstage/plugin-app-backend@0.3.58-next.1
+ - @backstage/plugin-auth-node@0.4.4-next.1
+ - @backstage/plugin-badges-backend@0.3.7-next.1
+ - @backstage/plugin-catalog-backend-module-backstage-openapi@0.1.3-next.1
+ - @backstage/plugin-catalog-backend-module-openapi@0.1.27-next.1
+ - @backstage/plugin-catalog-backend-module-scaffolder-entity-model@0.1.7-next.1
+ - @backstage/plugin-catalog-backend-module-unprocessed@0.3.7-next.1
+ - @backstage/plugin-devtools-backend@0.2.7-next.1
+ - @backstage/plugin-entity-feedback-backend@0.2.7-next.1
+ - @backstage/plugin-jenkins-backend@0.3.4-next.1
+ - @backstage/plugin-kubernetes-backend@0.14.2-next.1
+ - @backstage/plugin-lighthouse-backend@0.4.2-next.1
+ - @backstage/plugin-linguist-backend@0.5.7-next.1
+ - @backstage/plugin-nomad-backend@0.1.12-next.1
+ - @backstage/plugin-permission-backend@0.5.33-next.1
+ - @backstage/plugin-permission-backend-module-allow-all-policy@0.1.7-next.1
+ - @backstage/plugin-permission-common@0.7.12
+ - @backstage/plugin-permission-node@0.7.21-next.1
+ - @backstage/plugin-playlist-backend@0.3.14-next.1
+ - @backstage/plugin-proxy-backend@0.4.8-next.1
+ - @backstage/plugin-search-backend@1.5.0-next.1
+ - @backstage/plugin-search-backend-module-catalog@0.1.14-next.1
+ - @backstage/plugin-search-backend-module-explore@0.1.14-next.1
+ - @backstage/plugin-search-backend-module-techdocs@0.1.14-next.1
+ - @backstage/plugin-search-backend-node@1.2.14-next.1
+ - @backstage/plugin-sonarqube-backend@0.2.12-next.1
+ - @backstage/plugin-techdocs-backend@1.9.3-next.1
+ - @backstage/plugin-todo-backend@0.3.8-next.1
+
+## e2e-test@0.2.12-next.1
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/create-app@0.5.11-next.1
+ - @backstage/cli-common@0.1.13
+ - @backstage/errors@1.2.3
+
+## techdocs-cli-embedded-app@0.2.91-next.1
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/core-components@0.14.0-next.0
+ - @backstage/cli@0.25.2-next.1
+ - @backstage/catalog-model@1.4.4-next.0
+ - @backstage/test-utils@1.5.0-next.1
+ - @backstage/plugin-catalog@1.17.0-next.1
+ - @backstage/core-plugin-api@1.8.3-next.0
+ - @backstage/app-defaults@1.4.8-next.1
+ - @backstage/core-app-api@1.11.4-next.0
+ - @backstage/plugin-techdocs@1.10.0-next.1
+ - @backstage/integration-react@1.1.24-next.0
+ - @backstage/plugin-techdocs-react@1.1.16-next.0
+ - @backstage/config@1.1.1
+ - @backstage/theme@0.5.0
+
+## @internal/plugin-todo-list@1.0.22-next.0
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/core-components@0.14.0-next.0
+ - @backstage/core-plugin-api@1.8.3-next.0
+
+## @internal/plugin-todo-list-backend@1.0.22-next.1
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/backend-plugin-api@0.6.10-next.1
+ - @backstage/backend-common@0.21.0-next.1
+ - @backstage/errors@1.2.3
+ - @backstage/plugin-auth-node@0.4.4-next.1
diff --git a/docs/releases/v1.23.0-next.2-changelog.md b/docs/releases/v1.23.0-next.2-changelog.md
new file mode 100644
index 0000000000..2830217e39
--- /dev/null
+++ b/docs/releases/v1.23.0-next.2-changelog.md
@@ -0,0 +1,3549 @@
+# Release v1.23.0-next.2
+
+## @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
+
+## @backstage/core-app-api@1.12.0-next.1
+
+### 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`.
+
+### Patch Changes
+
+- 9aac2b0: Use `--cwd` as the first `yarn` argument
+- 8fe56a8: Widen `@types/react` dependency range to include version 18.
+- Updated dependencies
+ - @backstage/core-plugin-api@1.9.0-next.1
+ - @backstage/config@1.1.1
+ - @backstage/types@1.1.1
+ - @backstage/version-bridge@1.0.7
+
+## @backstage/core-plugin-api@1.9.0-next.1
+
+### 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`.
+
+### Patch Changes
+
+- 8fe56a8: Widen `@types/react` dependency range to include version 18.
+- Updated dependencies
+ - @backstage/config@1.1.1
+ - @backstage/errors@1.2.3
+ - @backstage/types@1.1.1
+ - @backstage/version-bridge@1.0.7
+
+## @backstage/repo-tools@0.6.0-next.2
+
+### Minor Changes
+
+- 4c62935: **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.
+
+### Patch Changes
+
+- aa91cd6: Resolved an issue with generate-catalog-info where it was replacing upper case characters with -.
+- Updated dependencies
+ - @backstage/backend-common@0.21.0-next.2
+ - @backstage/catalog-model@1.4.4-next.0
+ - @backstage/cli-common@0.1.13
+ - @backstage/cli-node@0.2.2
+ - @backstage/errors@1.2.3
+
+## @backstage/plugin-auth-backend@0.21.0-next.2
+
+### Minor Changes
+
+- 7dd8463: **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`
+
+### Patch Changes
+
+- 97f8724: Support additional algorithms in the `/.well-known/openid-configuration` endpoint.
+- a9e0107: The auth backend will now refuse to issue user tokens are excessively large.
+- d4cc552: The helper function `makeProfileInfo` and `PassportHelpers.transformProfile`
+ were refactored to use the `jose` library.
+- 8e8a25d: Ability for user to configure backstage token expiration
+- Updated dependencies
+ - @backstage/backend-common@0.21.0-next.2
+ - @backstage/backend-plugin-api@0.6.10-next.2
+ - @backstage/plugin-auth-backend-module-aws-alb-provider@0.1.0-next.1
+ - @backstage/plugin-auth-node@0.4.4-next.2
+ - @backstage/plugin-auth-backend-module-atlassian-provider@0.1.2-next.2
+ - @backstage/plugin-auth-backend-module-github-provider@0.1.7-next.2
+ - @backstage/plugin-auth-backend-module-gitlab-provider@0.1.7-next.2
+ - @backstage/plugin-auth-backend-module-google-provider@0.1.7-next.2
+ - @backstage/plugin-auth-backend-module-microsoft-provider@0.1.5-next.2
+ - @backstage/plugin-auth-backend-module-oauth2-provider@0.1.7-next.2
+ - @backstage/plugin-auth-backend-module-oidc-provider@0.1.0-next.2
+ - @backstage/plugin-auth-backend-module-okta-provider@0.0.3-next.2
+ - @backstage/plugin-auth-backend-module-gcp-iap-provider@0.2.4-next.2
+ - @backstage/plugin-auth-backend-module-oauth2-proxy-provider@0.1.2-next.2
+ - @backstage/plugin-catalog-node@1.6.2-next.2
+ - @backstage/config@1.1.1
+ - @backstage/catalog-client@1.6.0-next.1
+ - @backstage/catalog-model@1.4.4-next.0
+ - @backstage/errors@1.2.3
+ - @backstage/types@1.1.1
+
+## @backstage/plugin-catalog-graph@0.4.0-next.2
+
+### Minor Changes
+
+- 3dc64e9: Migrate plugin to the new frontend system, it is experimental and available via alpha subpath.
+
+### Patch Changes
+
+- 3e1c6e2: 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
+ -
+ +
+ ```
+
+ 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
+ -
+ +
+ ```
+
+- 9aac2b0: Use `--cwd` as the first `yarn` argument
+
+- 8fe56a8: Widen `@types/react` dependency range to include version 18.
+
+- Updated dependencies
+ - @backstage/core-components@0.14.0-next.1
+ - @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/core-compat-api@0.2.0-next.2
+ - @backstage/catalog-client@1.6.0-next.1
+ - @backstage/catalog-model@1.4.4-next.0
+ - @backstage/types@1.1.1
+
+## @backstage/plugin-catalog-react@1.10.0-next.2
+
+### Minor Changes
+
+- 3dc64e9: Add support to `configSchema` option on the `createEntityCardExtension` factory function.
+
+### Patch Changes
+
+- 8fe56a8: Widen `@types/react` dependency range to include version 18.
+- Updated dependencies
+ - @backstage/core-components@0.14.0-next.1
+ - @backstage/core-plugin-api@1.9.0-next.1
+ - @backstage/frontend-plugin-api@0.6.0-next.2
+ - @backstage/plugin-permission-react@0.4.20-next.1
+ - @backstage/integration-react@1.1.24-next.1
+ - @backstage/catalog-client@1.6.0-next.1
+ - @backstage/catalog-model@1.4.4-next.0
+ - @backstage/errors@1.2.3
+ - @backstage/types@1.1.1
+ - @backstage/version-bridge@1.0.7
+ - @backstage/plugin-catalog-common@1.0.21-next.0
+ - @backstage/plugin-permission-common@0.7.12
+
+## @backstage/plugin-kubernetes-backend@0.15.0-next.2
+
+### Minor Changes
+
+- 666eff5: **BREAKING** The backend will fail to start if two clusters in the app-config
+ have the same name. The requirement for unique names has been declared in the
+ docs for some time, but is now enforced.
+
+### Patch Changes
+
+- 1c3cb3b: Backstage will log a warning whenever duplicate cluster names are detected --
+ even if clusters sharing the same name come from separate locators.
+- Updated dependencies
+ - @backstage/backend-common@0.21.0-next.2
+ - @backstage/backend-plugin-api@0.6.10-next.2
+ - @backstage/plugin-auth-node@0.4.4-next.2
+ - @backstage/plugin-kubernetes-node@0.1.4-next.2
+ - @backstage/plugin-permission-node@0.7.21-next.2
+ - @backstage/plugin-catalog-node@1.6.2-next.2
+ - @backstage/config@1.1.1
+ - @backstage/integration-aws-node@0.1.8
+ - @backstage/catalog-client@1.6.0-next.1
+ - @backstage/catalog-model@1.4.4-next.0
+ - @backstage/errors@1.2.3
+ - @backstage/types@1.1.1
+ - @backstage/plugin-kubernetes-common@0.7.4-next.1
+ - @backstage/plugin-permission-common@0.7.12
+
+## @backstage/plugin-scaffolder@1.18.0-next.2
+
+### Minor Changes
+
+- 7f11009: Added stack trace display to `ErrorPage` and updated existing refs
+
+### Patch Changes
+
+- 9aac2b0: Use `--cwd` as the first `yarn` argument
+- 8fe56a8: Widen `@types/react` dependency range to include version 18.
+- Updated dependencies
+ - @backstage/core-components@0.14.0-next.1
+ - @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/plugin-permission-react@0.4.20-next.1
+ - @backstage/plugin-scaffolder-react@1.8.0-next.2
+ - @backstage/integration-react@1.1.24-next.1
+ - @backstage/core-compat-api@0.2.0-next.2
+ - @backstage/catalog-client@1.6.0-next.1
+ - @backstage/catalog-model@1.4.4-next.0
+ - @backstage/errors@1.2.3
+ - @backstage/integration@1.9.0-next.0
+ - @backstage/types@1.1.1
+ - @backstage/plugin-catalog-common@1.0.21-next.0
+ - @backstage/plugin-scaffolder-common@1.5.0-next.1
+
+## @backstage/plugin-scaffolder-backend-module-bitbucket@0.2.0-next.2
+
+### Minor Changes
+
+- 5eb6882: 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'));
+ ```
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/plugin-scaffolder-backend-module-bitbucket-server@0.1.0-next.0
+ - @backstage/backend-common@0.21.0-next.2
+ - @backstage/backend-plugin-api@0.6.10-next.2
+ - @backstage/plugin-scaffolder-backend-module-bitbucket-cloud@0.1.0-next.0
+ - @backstage/plugin-scaffolder-node@0.3.0-next.2
+ - @backstage/config@1.1.1
+ - @backstage/errors@1.2.3
+ - @backstage/integration@1.9.0-next.0
+
+## @backstage/plugin-scaffolder-backend-module-bitbucket-cloud@0.1.0-next.0
+
+### Minor Changes
+
+- 5eb6882: 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`
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/backend-common@0.21.0-next.2
+ - @backstage/backend-plugin-api@0.6.10-next.2
+ - @backstage/plugin-scaffolder-node@0.3.0-next.2
+ - @backstage/config@1.1.1
+ - @backstage/errors@1.2.3
+ - @backstage/integration@1.9.0-next.0
+
+## @backstage/plugin-scaffolder-backend-module-bitbucket-server@0.1.0-next.0
+
+### Minor Changes
+
+- 5eb6882: 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`
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/backend-common@0.21.0-next.2
+ - @backstage/backend-plugin-api@0.6.10-next.2
+ - @backstage/plugin-scaffolder-node@0.3.0-next.2
+ - @backstage/config@1.1.1
+ - @backstage/errors@1.2.3
+ - @backstage/integration@1.9.0-next.0
+
+## @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
+
+## @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
+
+## @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
+
+## @backstage/backend-dev-utils@0.1.4-next.0
+
+### Patch Changes
+
+- 9aac2b0: Use `--cwd` as the first `yarn` argument
+
+## @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
+
+## @backstage/backend-openapi-utils@0.1.3-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/backend-plugin-api@0.6.10-next.2
+ - @backstage/errors@1.2.3
+
+## @backstage/backend-plugin-api@0.6.10-next.2
+
+### Patch Changes
+
+- 9aac2b0: Use `--cwd` as the first `yarn` argument
+- Updated dependencies
+ - @backstage/backend-tasks@0.5.15-next.2
+ - @backstage/plugin-auth-node@0.4.4-next.2
+ - @backstage/config@1.1.1
+ - @backstage/types@1.1.1
+ - @backstage/plugin-permission-common@0.7.12
+
+## @backstage/backend-tasks@0.5.15-next.2
+
+### Patch Changes
+
+- 9aac2b0: Use `--cwd` as the first `yarn` argument
+- Updated dependencies
+ - @backstage/backend-common@0.21.0-next.2
+ - @backstage/config@1.1.1
+ - @backstage/errors@1.2.3
+ - @backstage/types@1.1.1
+
+## @backstage/backend-test-utils@0.3.0-next.2
+
+### Patch Changes
+
+- 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
+ - @backstage/plugin-auth-node@0.4.4-next.2
+ - @backstage/config@1.1.1
+ - @backstage/errors@1.2.3
+ - @backstage/types@1.1.1
+
+## @backstage/cli@0.25.2-next.2
+
+### Patch Changes
+
+- 52ae6b9: Updated dependency `esbuild` to `^0.20.0`.
+- 5c05f8a: Harmonize the package naming and allow custom prefix
+- Updated dependencies
+ - @backstage/config@1.1.1
+ - @backstage/release-manifests@0.0.11
+ - @backstage/catalog-model@1.4.4-next.0
+ - @backstage/cli-common@0.1.13
+ - @backstage/cli-node@0.2.2
+ - @backstage/config-loader@1.6.1
+ - @backstage/errors@1.2.3
+ - @backstage/eslint-plugin@0.1.5-next.0
+ - @backstage/integration@1.9.0-next.0
+ - @backstage/types@1.1.1
+
+## @backstage/core-compat-api@0.2.0-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/core-app-api@1.12.0-next.1
+ - @backstage/core-plugin-api@1.9.0-next.1
+ - @backstage/frontend-plugin-api@0.6.0-next.2
+ - @backstage/version-bridge@1.0.7
+
+## @backstage/core-components@0.14.0-next.1
+
+### Patch Changes
+
+- 3e1c6e2: 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
+ -
+ +
+ ```
+
+ 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
+ -
+ +
+ ```
+
+- 8fe56a8: Widen `@types/react` dependency range to include version 18.
+
+- 7f11009: Added stack trace display to `ErrorPage` and updated existing refs
+
+- 214f2da: Fix invalid HTTP status code 501 in Error Page
+
+- Updated dependencies
+ - @backstage/core-plugin-api@1.9.0-next.1
+ - @backstage/theme@0.5.1-next.0
+ - @backstage/config@1.1.1
+ - @backstage/errors@1.2.3
+ - @backstage/version-bridge@1.0.7
+
+## @backstage/create-app@0.5.11-next.2
+
+### Patch Changes
+
+- c420081: Add a seed file for `yarn.lock` in newly created apps. This file is downloaded directly from `https://github.com/backstage/backstage` at the time of creating a new project, ensuring that users always receive the latest version. The purpose of the seed file is to initialize the lock file with known good versions of individual dependencies that have had bad new releases published. The seed file will have no effect if the dependency is not present, it can not be used to install additional packages.
+- f71352c: Bumped TypeScript to version `5.3`.
+- Updated dependencies
+ - @backstage/cli-common@0.1.13
+
+## @backstage/dev-utils@1.0.27-next.2
+
+### Patch Changes
+
+- 8fe56a8: Widen `@types/react` dependency range to include version 18.
+- Updated dependencies
+ - @backstage/core-components@0.14.0-next.1
+ - @backstage/app-defaults@1.5.0-next.2
+ - @backstage/core-app-api@1.12.0-next.1
+ - @backstage/core-plugin-api@1.9.0-next.1
+ - @backstage/plugin-catalog-react@1.10.0-next.2
+ - @backstage/theme@0.5.1-next.0
+ - @backstage/integration-react@1.1.24-next.1
+ - @backstage/catalog-model@1.4.4-next.0
+
+## @backstage/frontend-app-api@0.6.0-next.2
+
+### Patch Changes
+
+- 8fe56a8: Widen `@types/react` dependency range to include version 18.
+- 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/frontend-plugin-api@0.6.0-next.2
+ - @backstage/theme@0.5.1-next.0
+ - @backstage/config@1.1.1
+ - @backstage/errors@1.2.3
+ - @backstage/types@1.1.1
+ - @backstage/version-bridge@1.0.7
+
+## @backstage/frontend-plugin-api@0.6.0-next.2
+
+### Patch 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`.
+- 8fe56a8: Widen `@types/react` dependency range to include version 18.
+- Updated dependencies
+ - @backstage/core-components@0.14.0-next.1
+ - @backstage/core-plugin-api@1.9.0-next.1
+ - @backstage/types@1.1.1
+ - @backstage/version-bridge@1.0.7
+
+## @backstage/frontend-test-utils@0.1.2-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/frontend-plugin-api@0.6.0-next.2
+ - @backstage/frontend-app-api@0.6.0-next.2
+ - @backstage/test-utils@1.5.0-next.2
+ - @backstage/types@1.1.1
+
+## @backstage/integration-react@1.1.24-next.1
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/core-plugin-api@1.9.0-next.1
+ - @backstage/config@1.1.1
+ - @backstage/integration@1.9.0-next.0
+
+## @techdocs/cli@1.8.2-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/backend-common@0.21.0-next.2
+ - @backstage/plugin-techdocs-node@1.11.2-next.2
+ - @backstage/config@1.1.1
+ - @backstage/catalog-model@1.4.4-next.0
+ - @backstage/cli-common@0.1.13
+
+## @backstage/test-utils@1.5.0-next.2
+
+### Patch Changes
+
+- 8fe56a8: Widen `@types/react` dependency range to include version 18.
+- Updated dependencies
+ - @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
+ - @backstage/config@1.1.1
+ - @backstage/types@1.1.1
+ - @backstage/plugin-permission-common@0.7.12
+
+## @backstage/theme@0.5.1-next.0
+
+### Patch Changes
+
+- 8fe56a8: Widen `@types/react` dependency range to include version 18.
+
+## @backstage/plugin-adr@0.6.13-next.2
+
+### Patch Changes
+
+- 8fe56a8: Widen `@types/react` dependency range to include version 18.
+- Updated dependencies
+ - @backstage/core-components@0.14.0-next.1
+ - @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/plugin-search-react@1.7.6-next.2
+ - @backstage/integration-react@1.1.24-next.1
+ - @backstage/catalog-model@1.4.4-next.0
+ - @backstage/plugin-adr-common@0.2.20-next.0
+ - @backstage/plugin-search-common@1.2.10
+
+## @backstage/plugin-adr-backend@0.4.7-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/config@1.1.1
+ - @backstage/catalog-client@1.6.0-next.1
+ - @backstage/catalog-model@1.4.4-next.0
+ - @backstage/errors@1.2.3
+ - @backstage/integration@1.9.0-next.0
+ - @backstage/plugin-adr-common@0.2.20-next.0
+ - @backstage/plugin-search-common@1.2.10
+
+## @backstage/plugin-airbrake@0.3.30-next.2
+
+### Patch Changes
+
+- 9aac2b0: Use `--cwd` as the first `yarn` argument
+- 8fe56a8: Widen `@types/react` dependency range to include version 18.
+- Updated dependencies
+ - @backstage/core-components@0.14.0-next.1
+ - @backstage/core-plugin-api@1.9.0-next.1
+ - @backstage/plugin-catalog-react@1.10.0-next.2
+ - @backstage/dev-utils@1.0.27-next.2
+ - @backstage/test-utils@1.5.0-next.2
+ - @backstage/catalog-model@1.4.4-next.0
+
+## @backstage/plugin-airbrake-backend@0.3.7-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/backend-common@0.21.0-next.2
+ - @backstage/backend-plugin-api@0.6.10-next.2
+ - @backstage/config@1.1.1
+
+## @backstage/plugin-allure@0.1.46-next.2
+
+### Patch Changes
+
+- 9aac2b0: Use `--cwd` as the first `yarn` argument
+- 8fe56a8: Widen `@types/react` dependency range to include version 18.
+- Updated dependencies
+ - @backstage/core-components@0.14.0-next.1
+ - @backstage/core-plugin-api@1.9.0-next.1
+ - @backstage/plugin-catalog-react@1.10.0-next.2
+ - @backstage/catalog-model@1.4.4-next.0
+
+## @backstage/plugin-analytics-module-ga@0.2.0-next.1
+
+### Patch Changes
+
+- 9aac2b0: Use `--cwd` as the first `yarn` argument
+- Updated dependencies
+ - @backstage/core-components@0.14.0-next.1
+ - @backstage/core-plugin-api@1.9.0-next.1
+ - @backstage/frontend-plugin-api@0.6.0-next.2
+ - @backstage/config@1.1.1
+
+## @backstage/plugin-analytics-module-ga4@0.2.0-next.1
+
+### Patch Changes
+
+- 9aac2b0: Use `--cwd` as the first `yarn` argument
+- Updated dependencies
+ - @backstage/core-components@0.14.0-next.1
+ - @backstage/core-plugin-api@1.9.0-next.1
+ - @backstage/frontend-plugin-api@0.6.0-next.2
+ - @backstage/config@1.1.1
+
+## @backstage/plugin-analytics-module-newrelic-browser@0.1.0-next.1
+
+### Patch Changes
+
+- 9aac2b0: Use `--cwd` as the first `yarn` argument
+- Updated dependencies
+ - @backstage/core-components@0.14.0-next.1
+ - @backstage/core-plugin-api@1.9.0-next.1
+ - @backstage/frontend-plugin-api@0.6.0-next.2
+ - @backstage/config@1.1.1
+
+## @backstage/plugin-apache-airflow@0.2.20-next.1
+
+### Patch Changes
+
+- 8fe56a8: Widen `@types/react` dependency range to include version 18.
+- Updated dependencies
+ - @backstage/core-components@0.14.0-next.1
+ - @backstage/core-plugin-api@1.9.0-next.1
+
+## @backstage/plugin-api-docs@0.10.4-next.2
+
+### Patch Changes
+
+- 9aac2b0: Use `--cwd` as the first `yarn` argument
+- 8fe56a8: Widen `@types/react` dependency range to include version 18.
+- Updated dependencies
+ - @backstage/core-components@0.14.0-next.1
+ - @backstage/plugin-catalog@1.17.0-next.2
+ - @backstage/core-plugin-api@1.9.0-next.1
+ - @backstage/plugin-catalog-react@1.10.0-next.2
+ - @backstage/plugin-permission-react@0.4.20-next.1
+ - @backstage/catalog-model@1.4.4-next.0
+ - @backstage/plugin-catalog-common@1.0.21-next.0
+
+## @backstage/plugin-api-docs-module-protoc-gen-doc@0.1.6-next.0
+
+### Patch Changes
+
+- 9aac2b0: Use `--cwd` as the first `yarn` argument
+- 8fe56a8: Widen `@types/react` dependency range to include version 18.
+
+## @backstage/plugin-apollo-explorer@0.1.20-next.1
+
+### Patch Changes
+
+- 8fe56a8: Widen `@types/react` dependency range to include version 18.
+- Updated dependencies
+ - @backstage/core-components@0.14.0-next.1
+ - @backstage/core-plugin-api@1.9.0-next.1
+
+## @backstage/plugin-app-backend@0.3.58-next.2
+
+### Patch Changes
+
+- 9aac2b0: Use `--cwd` as the first `yarn` argument
+- 998ccf6: Support injecting config multiple times in a single bundle
+- Updated dependencies
+ - @backstage/backend-common@0.21.0-next.2
+ - @backstage/backend-plugin-api@0.6.10-next.2
+ - @backstage/plugin-app-node@0.1.10-next.2
+ - @backstage/config@1.1.1
+ - @backstage/config-loader@1.6.1
+ - @backstage/types@1.1.1
+
+## @backstage/plugin-app-node@0.1.10-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/backend-plugin-api@0.6.10-next.2
+
+## @backstage/plugin-app-visualizer@0.1.1-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/core-components@0.14.0-next.1
+ - @backstage/core-plugin-api@1.9.0-next.1
+ - @backstage/frontend-plugin-api@0.6.0-next.2
+
+## @backstage/plugin-auth-backend-module-atlassian-provider@0.1.2-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/backend-plugin-api@0.6.10-next.2
+ - @backstage/plugin-auth-node@0.4.4-next.2
+
+## @backstage/plugin-auth-backend-module-aws-alb-provider@0.1.0-next.1
+
+### Patch Changes
+
+- d309cad: Refactored to use the `jose` library for JWT handling.
+- Updated dependencies
+ - @backstage/plugin-auth-backend@0.21.0-next.2
+ - @backstage/backend-common@0.21.0-next.2
+ - @backstage/backend-plugin-api@0.6.10-next.2
+ - @backstage/plugin-auth-node@0.4.4-next.2
+ - @backstage/errors@1.2.3
+
+## @backstage/plugin-auth-backend-module-gcp-iap-provider@0.2.4-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/backend-plugin-api@0.6.10-next.2
+ - @backstage/plugin-auth-node@0.4.4-next.2
+ - @backstage/errors@1.2.3
+ - @backstage/types@1.1.1
+
+## @backstage/plugin-auth-backend-module-github-provider@0.1.7-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/backend-plugin-api@0.6.10-next.2
+ - @backstage/plugin-auth-node@0.4.4-next.2
+
+## @backstage/plugin-auth-backend-module-gitlab-provider@0.1.7-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/backend-plugin-api@0.6.10-next.2
+ - @backstage/plugin-auth-node@0.4.4-next.2
+
+## @backstage/plugin-auth-backend-module-google-provider@0.1.7-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/backend-plugin-api@0.6.10-next.2
+ - @backstage/plugin-auth-node@0.4.4-next.2
+
+## @backstage/plugin-auth-backend-module-microsoft-provider@0.1.5-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/backend-plugin-api@0.6.10-next.2
+ - @backstage/plugin-auth-node@0.4.4-next.2
+
+## @backstage/plugin-auth-backend-module-oauth2-provider@0.1.7-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/backend-plugin-api@0.6.10-next.2
+ - @backstage/plugin-auth-node@0.4.4-next.2
+
+## @backstage/plugin-auth-backend-module-oauth2-proxy-provider@0.1.2-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/backend-plugin-api@0.6.10-next.2
+ - @backstage/plugin-auth-node@0.4.4-next.2
+ - @backstage/errors@1.2.3
+
+## @backstage/plugin-auth-backend-module-oidc-provider@0.1.0-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/plugin-auth-backend@0.21.0-next.2
+ - @backstage/backend-common@0.21.0-next.2
+ - @backstage/backend-plugin-api@0.6.10-next.2
+ - @backstage/plugin-auth-node@0.4.4-next.2
+
+## @backstage/plugin-auth-backend-module-okta-provider@0.0.3-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/backend-plugin-api@0.6.10-next.2
+ - @backstage/plugin-auth-node@0.4.4-next.2
+
+## @backstage/plugin-auth-backend-module-pinniped-provider@0.1.4-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/backend-plugin-api@0.6.10-next.2
+ - @backstage/plugin-auth-node@0.4.4-next.2
+ - @backstage/config@1.1.1
+
+## @backstage/plugin-auth-backend-module-vmware-cloud-provider@0.1.2-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/backend-plugin-api@0.6.10-next.2
+ - @backstage/plugin-auth-node@0.4.4-next.2
+ - @backstage/catalog-model@1.4.4-next.0
+
+## @backstage/plugin-auth-node@0.4.4-next.2
+
+### Patch Changes
+
+- d4cc552: The helper function `makeProfileInfo` and `PassportHelpers.transformProfile`
+ were refactored to use the `jose` library.
+- Updated dependencies
+ - @backstage/backend-common@0.21.0-next.2
+ - @backstage/backend-plugin-api@0.6.10-next.2
+ - @backstage/config@1.1.1
+ - @backstage/catalog-client@1.6.0-next.1
+ - @backstage/catalog-model@1.4.4-next.0
+ - @backstage/errors@1.2.3
+ - @backstage/types@1.1.1
+
+## @backstage/plugin-azure-devops@0.3.12-next.2
+
+### Patch Changes
+
+- e2083df: Added alpha support for the New Frontend System (Declarative Integration)
+- 9aac2b0: Use `--cwd` as the first `yarn` argument
+- 8fe56a8: Widen `@types/react` dependency range to include version 18.
+- Updated dependencies
+ - @backstage/core-components@0.14.0-next.1
+ - @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/core-compat-api@0.2.0-next.2
+ - @backstage/catalog-model@1.4.4-next.0
+ - @backstage/errors@1.2.3
+ - @backstage/plugin-azure-devops-common@0.3.2
+
+## @backstage/plugin-azure-devops-backend@0.5.2-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/plugin-catalog-node@1.6.2-next.2
+ - @backstage/config@1.1.1
+ - @backstage/catalog-model@1.4.4-next.0
+ - @backstage/integration@1.9.0-next.0
+ - @backstage/plugin-azure-devops-common@0.3.2
+ - @backstage/plugin-catalog-common@1.0.21-next.0
+
+## @backstage/plugin-azure-sites@0.1.19-next.2
+
+### Patch Changes
+
+- 09a9c95: Updated README
+- 9aac2b0: Use `--cwd` as the first `yarn` argument
+- 8fe56a8: Widen `@types/react` dependency range to include version 18.
+- Updated dependencies
+ - @backstage/core-components@0.14.0-next.1
+ - @backstage/core-plugin-api@1.9.0-next.1
+ - @backstage/plugin-catalog-react@1.10.0-next.2
+ - @backstage/plugin-permission-react@0.4.20-next.1
+ - @backstage/theme@0.5.1-next.0
+ - @backstage/catalog-model@1.4.4-next.0
+ - @backstage/plugin-azure-sites-common@0.1.2-next.0
+ - @backstage/plugin-permission-common@0.7.12
+
+## @backstage/plugin-azure-sites-backend@0.2.0-next.2
+
+### Patch Changes
+
+- 9aac2b0: Use `--cwd` as the first `yarn` argument
+- 4376655: Added `permissionIntegrationRouter` for azure-sites-backend routes
+- Updated dependencies
+ - @backstage/backend-common@0.21.0-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/catalog-client@1.6.0-next.1
+ - @backstage/catalog-model@1.4.4-next.0
+ - @backstage/errors@1.2.3
+ - @backstage/plugin-azure-sites-common@0.1.2-next.0
+ - @backstage/plugin-permission-common@0.7.12
+
+## @backstage/plugin-badges@0.2.54-next.2
+
+### Patch Changes
+
+- 9aac2b0: Use `--cwd` as the first `yarn` argument
+- 8fe56a8: Widen `@types/react` dependency range to include version 18.
+- Updated dependencies
+ - @backstage/core-components@0.14.0-next.1
+ - @backstage/core-plugin-api@1.9.0-next.1
+ - @backstage/plugin-catalog-react@1.10.0-next.2
+ - @backstage/catalog-model@1.4.4-next.0
+ - @backstage/errors@1.2.3
+
+## @backstage/plugin-badges-backend@0.3.7-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/plugin-auth-node@0.4.4-next.2
+ - @backstage/config@1.1.1
+ - @backstage/catalog-client@1.6.0-next.1
+ - @backstage/catalog-model@1.4.4-next.0
+ - @backstage/errors@1.2.3
+
+## @backstage/plugin-bazaar@0.2.22-next.2
+
+### Patch Changes
+
+- 9aac2b0: Use `--cwd` as the first `yarn` argument
+- 8fe56a8: Widen `@types/react` dependency range to include version 18.
+- Updated dependencies
+ - @backstage/core-components@0.14.0-next.1
+ - @backstage/core-plugin-api@1.9.0-next.1
+ - @backstage/plugin-catalog-react@1.10.0-next.2
+ - @backstage/catalog-client@1.6.0-next.1
+ - @backstage/catalog-model@1.4.4-next.0
+ - @backstage/errors@1.2.3
+
+## @backstage/plugin-bazaar-backend@0.3.8-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/plugin-auth-node@0.4.4-next.2
+ - @backstage/config@1.1.1
+
+## @backstage/plugin-bitrise@0.1.57-next.2
+
+### Patch Changes
+
+- 9aac2b0: Use `--cwd` as the first `yarn` argument
+- 8fe56a8: Widen `@types/react` dependency range to include version 18.
+- Updated dependencies
+ - @backstage/core-components@0.14.0-next.1
+ - @backstage/core-plugin-api@1.9.0-next.1
+ - @backstage/plugin-catalog-react@1.10.0-next.2
+ - @backstage/catalog-model@1.4.4-next.0
+
+## @backstage/plugin-catalog@1.17.0-next.2
+
+### Patch Changes
+
+- 9aac2b0: Use `--cwd` as the first `yarn` argument
+- 8fe56a8: Widen `@types/react` dependency range to include version 18.
+- Updated dependencies
+ - @backstage/core-components@0.14.0-next.1
+ - @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/plugin-permission-react@0.4.20-next.1
+ - @backstage/plugin-search-react@1.7.6-next.2
+ - @backstage/integration-react@1.1.24-next.1
+ - @backstage/core-compat-api@0.2.0-next.2
+ - @backstage/catalog-client@1.6.0-next.1
+ - @backstage/catalog-model@1.4.4-next.0
+ - @backstage/errors@1.2.3
+ - @backstage/types@1.1.1
+ - @backstage/plugin-catalog-common@1.0.21-next.0
+ - @backstage/plugin-scaffolder-common@1.5.0-next.1
+ - @backstage/plugin-search-common@1.2.10
+
+## @backstage/plugin-catalog-backend@1.17.0-next.2
+
+### Patch Changes
+
+- 9aac2b0: Use `--cwd` as the first `yarn` argument
+- Updated dependencies
+ - @backstage/repo-tools@0.6.0-next.2
+ - @backstage/backend-common@0.21.0-next.2
+ - @backstage/plugin-search-backend-module-catalog@0.1.14-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/backend-openapi-utils@0.1.3-next.2
+ - @backstage/plugin-catalog-node@1.6.2-next.2
+ - @backstage/plugin-events-node@0.2.19-next.2
+ - @backstage/config@1.1.1
+ - @backstage/catalog-client@1.6.0-next.1
+ - @backstage/catalog-model@1.4.4-next.0
+ - @backstage/errors@1.2.3
+ - @backstage/integration@1.9.0-next.0
+ - @backstage/types@1.1.1
+ - @backstage/plugin-catalog-common@1.0.21-next.0
+ - @backstage/plugin-permission-common@0.7.12
+
+## @backstage/plugin-catalog-backend-module-aws@0.3.4-next.2
+
+### Patch Changes
+
+- 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-catalog-node@1.6.2-next.2
+ - @backstage/config@1.1.1
+ - @backstage/integration-aws-node@0.1.8
+ - @backstage/catalog-model@1.4.4-next.0
+ - @backstage/errors@1.2.3
+ - @backstage/integration@1.9.0-next.0
+ - @backstage/plugin-catalog-common@1.0.21-next.0
+ - @backstage/plugin-kubernetes-common@0.7.4-next.1
+
+## @backstage/plugin-catalog-backend-module-azure@0.1.29-next.2
+
+### Patch Changes
+
+- 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-catalog-node@1.6.2-next.2
+ - @backstage/config@1.1.1
+ - @backstage/integration@1.9.0-next.0
+ - @backstage/plugin-catalog-common@1.0.21-next.0
+
+## @backstage/plugin-catalog-backend-module-backstage-openapi@0.1.3-next.2
+
+### Patch Changes
+
+- 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/backend-openapi-utils@0.1.3-next.2
+ - @backstage/plugin-catalog-node@1.6.2-next.2
+ - @backstage/config@1.1.1
+ - @backstage/catalog-model@1.4.4-next.0
+ - @backstage/errors@1.2.3
+
+## @backstage/plugin-catalog-backend-module-bitbucket@0.2.25-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/backend-common@0.21.0-next.2
+ - @backstage/plugin-catalog-node@1.6.2-next.2
+ - @backstage/config@1.1.1
+ - @backstage/integration@1.9.0-next.0
+ - @backstage/plugin-bitbucket-cloud-common@0.2.16-next.1
+
+## @backstage/plugin-catalog-backend-module-bitbucket-cloud@0.1.25-next.2
+
+### Patch Changes
+
+- 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-catalog-node@1.6.2-next.2
+ - @backstage/plugin-events-node@0.2.19-next.2
+ - @backstage/config@1.1.1
+ - @backstage/catalog-client@1.6.0-next.1
+ - @backstage/catalog-model@1.4.4-next.0
+ - @backstage/integration@1.9.0-next.0
+ - @backstage/plugin-bitbucket-cloud-common@0.2.16-next.1
+ - @backstage/plugin-catalog-common@1.0.21-next.0
+
+## @backstage/plugin-catalog-backend-module-bitbucket-server@0.1.23-next.2
+
+### Patch Changes
+
+- 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-catalog-node@1.6.2-next.2
+ - @backstage/config@1.1.1
+ - @backstage/catalog-model@1.4.4-next.0
+ - @backstage/errors@1.2.3
+ - @backstage/integration@1.9.0-next.0
+
+## @backstage/plugin-catalog-backend-module-gcp@0.1.10-next.2
+
+### Patch Changes
+
+- 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-catalog-node@1.6.2-next.2
+ - @backstage/config@1.1.1
+ - @backstage/catalog-model@1.4.4-next.0
+ - @backstage/plugin-kubernetes-common@0.7.4-next.1
+
+## @backstage/plugin-catalog-backend-module-gerrit@0.1.26-next.2
+
+### Patch Changes
+
+- 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-catalog-node@1.6.2-next.2
+ - @backstage/config@1.1.1
+ - @backstage/errors@1.2.3
+ - @backstage/integration@1.9.0-next.0
+
+## @backstage/plugin-catalog-backend-module-github@0.5.0-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-catalog-node@1.6.2-next.2
+ - @backstage/plugin-events-node@0.2.19-next.2
+ - @backstage/config@1.1.1
+ - @backstage/catalog-client@1.6.0-next.1
+ - @backstage/catalog-model@1.4.4-next.0
+ - @backstage/integration@1.9.0-next.0
+ - @backstage/plugin-catalog-common@1.0.21-next.0
+
+## @backstage/plugin-catalog-backend-module-github-org@0.1.4-next.2
+
+### Patch Changes
+
+- 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-catalog-backend-module-github@0.5.0-next.2
+ - @backstage/plugin-catalog-node@1.6.2-next.2
+ - @backstage/config@1.1.1
+
+## @backstage/plugin-catalog-backend-module-gitlab@0.3.7-next.2
+
+### Patch Changes
+
+- 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-catalog-node@1.6.2-next.2
+ - @backstage/config@1.1.1
+ - @backstage/catalog-model@1.4.4-next.0
+ - @backstage/integration@1.9.0-next.0
+
+## @backstage/plugin-catalog-backend-module-incremental-ingestion@0.4.14-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/plugin-catalog-backend@1.17.0-next.2
+ - @backstage/backend-tasks@0.5.15-next.2
+ - @backstage/plugin-catalog-node@1.6.2-next.2
+ - @backstage/plugin-events-node@0.2.19-next.2
+ - @backstage/config@1.1.1
+ - @backstage/catalog-model@1.4.4-next.0
+ - @backstage/errors@1.2.3
+ - @backstage/plugin-permission-common@0.7.12
+
+## @backstage/plugin-catalog-backend-module-ldap@0.5.25-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/backend-tasks@0.5.15-next.2
+ - @backstage/plugin-catalog-node@1.6.2-next.2
+ - @backstage/config@1.1.1
+ - @backstage/catalog-model@1.4.4-next.0
+ - @backstage/errors@1.2.3
+ - @backstage/types@1.1.1
+ - @backstage/plugin-catalog-common@1.0.21-next.0
+
+## @backstage/plugin-catalog-backend-module-msgraph@0.5.17-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-catalog-node@1.6.2-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-catalog-backend-module-openapi@0.1.27-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/plugin-catalog-backend@1.17.0-next.2
+ - @backstage/plugin-catalog-node@1.6.2-next.2
+ - @backstage/config@1.1.1
+ - @backstage/catalog-model@1.4.4-next.0
+ - @backstage/integration@1.9.0-next.0
+ - @backstage/types@1.1.1
+ - @backstage/plugin-catalog-common@1.0.21-next.0
+
+## @backstage/plugin-catalog-backend-module-puppetdb@0.1.15-next.2
+
+### Patch Changes
+
+- 9aac2b0: Use `--cwd` as the first `yarn` argument
+- bc644fb: 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.
+- 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-catalog-node@1.6.2-next.2
+ - @backstage/config@1.1.1
+ - @backstage/catalog-model@1.4.4-next.0
+ - @backstage/errors@1.2.3
+ - @backstage/types@1.1.1
+
+## @backstage/plugin-catalog-backend-module-scaffolder-entity-model@0.1.7-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/backend-plugin-api@0.6.10-next.2
+ - @backstage/plugin-catalog-node@1.6.2-next.2
+ - @backstage/catalog-model@1.4.4-next.0
+ - @backstage/plugin-catalog-common@1.0.21-next.0
+ - @backstage/plugin-scaffolder-common@1.5.0-next.1
+
+## @backstage/plugin-catalog-backend-module-unprocessed@0.3.7-next.2
+
+### Patch Changes
+
+- 9aac2b0: Use `--cwd` as the first `yarn` argument
+- Updated dependencies
+ - @backstage/backend-plugin-api@0.6.10-next.2
+ - @backstage/plugin-auth-node@0.4.4-next.2
+ - @backstage/catalog-model@1.4.4-next.0
+
+## @backstage/plugin-catalog-import@0.10.6-next.2
+
+### Patch Changes
+
+- 9aac2b0: Use `--cwd` as the first `yarn` argument
+- 8fe56a8: Widen `@types/react` dependency range to include version 18.
+- Updated dependencies
+ - @backstage/core-components@0.14.0-next.1
+ - @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/integration-react@1.1.24-next.1
+ - @backstage/core-compat-api@0.2.0-next.2
+ - @backstage/config@1.1.1
+ - @backstage/catalog-client@1.6.0-next.1
+ - @backstage/catalog-model@1.4.4-next.0
+ - @backstage/errors@1.2.3
+ - @backstage/integration@1.9.0-next.0
+ - @backstage/plugin-catalog-common@1.0.21-next.0
+
+## @backstage/plugin-catalog-node@1.6.2-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/backend-plugin-api@0.6.10-next.2
+ - @backstage/plugin-permission-node@0.7.21-next.2
+ - @backstage/catalog-client@1.6.0-next.1
+ - @backstage/catalog-model@1.4.4-next.0
+ - @backstage/errors@1.2.3
+ - @backstage/types@1.1.1
+ - @backstage/plugin-catalog-common@1.0.21-next.0
+ - @backstage/plugin-permission-common@0.7.12
+
+## @backstage/plugin-catalog-unprocessed-entities@0.1.8-next.1
+
+### Patch Changes
+
+- 9aac2b0: Use `--cwd` as the first `yarn` argument
+- 8fe56a8: Widen `@types/react` dependency range to include version 18.
+- Updated dependencies
+ - @backstage/core-components@0.14.0-next.1
+ - @backstage/core-plugin-api@1.9.0-next.1
+ - @backstage/catalog-model@1.4.4-next.0
+ - @backstage/errors@1.2.3
+
+## @backstage/plugin-cicd-statistics@0.1.32-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/core-plugin-api@1.9.0-next.1
+ - @backstage/plugin-catalog-react@1.10.0-next.2
+ - @backstage/catalog-model@1.4.4-next.0
+
+## @backstage/plugin-cicd-statistics-module-gitlab@0.1.26-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/core-plugin-api@1.9.0-next.1
+ - @backstage/plugin-cicd-statistics@0.1.32-next.2
+ - @backstage/catalog-model@1.4.4-next.0
+
+## @backstage/plugin-circleci@0.3.30-next.2
+
+### Patch Changes
+
+- 9aac2b0: Use `--cwd` as the first `yarn` argument
+- 8fe56a8: Widen `@types/react` dependency range to include version 18.
+- Updated dependencies
+ - @backstage/core-components@0.14.0-next.1
+ - @backstage/core-plugin-api@1.9.0-next.1
+ - @backstage/plugin-catalog-react@1.10.0-next.2
+ - @backstage/catalog-model@1.4.4-next.0
+
+## @backstage/plugin-cloudbuild@0.4.0-next.2
+
+### Patch Changes
+
+- 8fe56a8: Widen `@types/react` dependency range to include version 18.
+- Updated dependencies
+ - @backstage/core-components@0.14.0-next.1
+ - @backstage/core-plugin-api@1.9.0-next.1
+ - @backstage/plugin-catalog-react@1.10.0-next.2
+ - @backstage/catalog-model@1.4.4-next.0
+
+## @backstage/plugin-code-climate@0.1.30-next.2
+
+### Patch Changes
+
+- 9aac2b0: Use `--cwd` as the first `yarn` argument
+- 8fe56a8: Widen `@types/react` dependency range to include version 18.
+- Updated dependencies
+ - @backstage/core-components@0.14.0-next.1
+ - @backstage/core-plugin-api@1.9.0-next.1
+ - @backstage/plugin-catalog-react@1.10.0-next.2
+ - @backstage/catalog-model@1.4.4-next.0
+
+## @backstage/plugin-code-coverage@0.2.23-next.2
+
+### Patch Changes
+
+- 9aac2b0: Use `--cwd` as the first `yarn` argument
+- 8fe56a8: Widen `@types/react` dependency range to include version 18.
+- Updated dependencies
+ - @backstage/core-components@0.14.0-next.1
+ - @backstage/core-plugin-api@1.9.0-next.1
+ - @backstage/plugin-catalog-react@1.10.0-next.2
+ - @backstage/catalog-model@1.4.4-next.0
+ - @backstage/errors@1.2.3
+
+## @backstage/plugin-code-coverage-backend@0.2.24-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/plugin-auth-node@0.4.4-next.2
+ - @backstage/config@1.1.1
+ - @backstage/catalog-client@1.6.0-next.1
+ - @backstage/catalog-model@1.4.4-next.0
+ - @backstage/errors@1.2.3
+ - @backstage/integration@1.9.0-next.0
+
+## @backstage/plugin-codescene@0.1.22-next.1
+
+### Patch Changes
+
+- 9aac2b0: Use `--cwd` as the first `yarn` argument
+- 8fe56a8: Widen `@types/react` dependency range to include version 18.
+- Updated dependencies
+ - @backstage/core-components@0.14.0-next.1
+ - @backstage/core-plugin-api@1.9.0-next.1
+ - @backstage/config@1.1.1
+ - @backstage/errors@1.2.3
+
+## @backstage/plugin-config-schema@0.1.50-next.1
+
+### Patch Changes
+
+- 8fe56a8: Widen `@types/react` dependency range to include version 18.
+- Updated dependencies
+ - @backstage/core-components@0.14.0-next.1
+ - @backstage/core-plugin-api@1.9.0-next.1
+ - @backstage/errors@1.2.3
+ - @backstage/types@1.1.1
+
+## @backstage/plugin-cost-insights@0.12.19-next.2
+
+### Patch Changes
+
+- 9aac2b0: Use `--cwd` as the first `yarn` argument
+- 8fe56a8: Widen `@types/react` dependency range to include version 18.
+- Updated dependencies
+ - @backstage/core-components@0.14.0-next.1
+ - @backstage/core-plugin-api@1.9.0-next.1
+ - @backstage/plugin-catalog-react@1.10.0-next.2
+ - @backstage/theme@0.5.1-next.0
+ - @backstage/config@1.1.1
+ - @backstage/catalog-model@1.4.4-next.0
+ - @backstage/plugin-cost-insights-common@0.1.2
+
+## @backstage/plugin-devtools@0.1.9-next.2
+
+### Patch Changes
+
+- 9aac2b0: Use `--cwd` as the first `yarn` argument
+- 8fe56a8: Widen `@types/react` dependency range to include version 18.
+- Updated dependencies
+ - @backstage/core-components@0.14.0-next.1
+ - @backstage/core-plugin-api@1.9.0-next.1
+ - @backstage/frontend-plugin-api@0.6.0-next.2
+ - @backstage/plugin-permission-react@0.4.20-next.1
+ - @backstage/core-compat-api@0.2.0-next.2
+ - @backstage/errors@1.2.3
+ - @backstage/plugin-devtools-common@0.1.8
+
+## @backstage/plugin-devtools-backend@0.2.7-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/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/config-loader@1.6.1
+ - @backstage/errors@1.2.3
+ - @backstage/types@1.1.1
+ - @backstage/plugin-devtools-common@0.1.8
+ - @backstage/plugin-permission-common@0.7.12
+
+## @backstage/plugin-dynatrace@9.0.0-next.2
+
+### Patch Changes
+
+- 9aac2b0: Use `--cwd` as the first `yarn` argument
+- 8fe56a8: Widen `@types/react` dependency range to include version 18.
+- Updated dependencies
+ - @backstage/core-components@0.14.0-next.1
+ - @backstage/core-plugin-api@1.9.0-next.1
+ - @backstage/plugin-catalog-react@1.10.0-next.2
+ - @backstage/catalog-model@1.4.4-next.0
+
+## @backstage/plugin-entity-feedback@0.2.13-next.2
+
+### Patch Changes
+
+- 8fe56a8: Widen `@types/react` dependency range to include version 18.
+- Updated dependencies
+ - @backstage/core-components@0.14.0-next.1
+ - @backstage/core-plugin-api@1.9.0-next.1
+ - @backstage/plugin-catalog-react@1.10.0-next.2
+ - @backstage/catalog-model@1.4.4-next.0
+ - @backstage/errors@1.2.3
+ - @backstage/plugin-entity-feedback-common@0.1.3
+
+## @backstage/plugin-entity-feedback-backend@0.2.7-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/plugin-auth-node@0.4.4-next.2
+ - @backstage/config@1.1.1
+ - @backstage/catalog-client@1.6.0-next.1
+ - @backstage/catalog-model@1.4.4-next.0
+ - @backstage/plugin-entity-feedback-common@0.1.3
+
+## @backstage/plugin-entity-validation@0.1.15-next.2
+
+### Patch Changes
+
+- 9aac2b0: Use `--cwd` as the first `yarn` argument
+- 8fe56a8: Widen `@types/react` dependency range to include version 18.
+- Updated dependencies
+ - @backstage/core-components@0.14.0-next.1
+ - @backstage/core-plugin-api@1.9.0-next.1
+ - @backstage/plugin-catalog-react@1.10.0-next.2
+ - @backstage/catalog-client@1.6.0-next.1
+ - @backstage/catalog-model@1.4.4-next.0
+ - @backstage/errors@1.2.3
+ - @backstage/plugin-catalog-common@1.0.21-next.0
+
+## @backstage/plugin-events-backend@0.2.19-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/plugin-events-node@0.2.19-next.2
+ - @backstage/config@1.1.1
+
+## @backstage/plugin-events-backend-module-aws-sqs@0.2.13-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-events-node@0.2.19-next.2
+ - @backstage/config@1.1.1
+ - @backstage/types@1.1.1
+
+## @backstage/plugin-events-backend-module-azure@0.1.20-next.2
+
+### Patch Changes
+
+- 9aac2b0: Use `--cwd` as the first `yarn` argument
+- Updated dependencies
+ - @backstage/backend-plugin-api@0.6.10-next.2
+ - @backstage/plugin-events-node@0.2.19-next.2
+
+## @backstage/plugin-events-backend-module-bitbucket-cloud@0.1.20-next.2
+
+### Patch Changes
+
+- 9aac2b0: Use `--cwd` as the first `yarn` argument
+- Updated dependencies
+ - @backstage/backend-plugin-api@0.6.10-next.2
+ - @backstage/plugin-events-node@0.2.19-next.2
+
+## @backstage/plugin-events-backend-module-gerrit@0.1.20-next.2
+
+### Patch Changes
+
+- 9aac2b0: Use `--cwd` as the first `yarn` argument
+- Updated dependencies
+ - @backstage/backend-plugin-api@0.6.10-next.2
+ - @backstage/plugin-events-node@0.2.19-next.2
+
+## @backstage/plugin-events-backend-module-github@0.1.20-next.2
+
+### Patch Changes
+
+- 9aac2b0: Use `--cwd` as the first `yarn` argument
+- Updated dependencies
+ - @backstage/backend-plugin-api@0.6.10-next.2
+ - @backstage/plugin-events-node@0.2.19-next.2
+ - @backstage/config@1.1.1
+
+## @backstage/plugin-events-backend-module-gitlab@0.1.20-next.2
+
+### Patch Changes
+
+- 9aac2b0: Use `--cwd` as the first `yarn` argument
+- Updated dependencies
+ - @backstage/backend-plugin-api@0.6.10-next.2
+ - @backstage/plugin-events-node@0.2.19-next.2
+ - @backstage/config@1.1.1
+
+## @backstage/plugin-events-backend-test-utils@0.1.20-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/plugin-events-node@0.2.19-next.2
+
+## @backstage/plugin-events-node@0.2.19-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/backend-plugin-api@0.6.10-next.2
+
+## @backstage/plugin-explore@0.4.16-next.2
+
+### Patch Changes
+
+- 8fe56a8: Widen `@types/react` dependency range to include version 18.
+- 796d427: Use the EntityDisplayName component for rendering Group nodes
+- Updated dependencies
+ - @backstage/core-components@0.14.0-next.1
+ - @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/plugin-search-react@1.7.6-next.2
+ - @backstage/plugin-explore-react@0.0.36-next.1
+ - @backstage/catalog-model@1.4.4-next.0
+ - @backstage/errors@1.2.3
+ - @backstage/plugin-explore-common@0.0.2
+ - @backstage/plugin-search-common@1.2.10
+
+## @backstage/plugin-explore-backend@0.0.20-next.2
+
+### Patch Changes
+
+- 9aac2b0: Use `--cwd` as the first `yarn` argument
+- Updated dependencies
+ - @backstage/backend-common@0.21.0-next.2
+ - @backstage/plugin-search-backend-module-explore@0.1.14-next.2
+ - @backstage/backend-plugin-api@0.6.10-next.2
+ - @backstage/config@1.1.1
+ - @backstage/types@1.1.1
+ - @backstage/plugin-explore-common@0.0.2
+
+## @backstage/plugin-explore-react@0.0.36-next.1
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/core-plugin-api@1.9.0-next.1
+ - @backstage/plugin-explore-common@0.0.2
+
+## @backstage/plugin-firehydrant@0.2.14-next.2
+
+### Patch Changes
+
+- 9aac2b0: Use `--cwd` as the first `yarn` argument
+- 8fe56a8: Widen `@types/react` dependency range to include version 18.
+- Updated dependencies
+ - @backstage/core-components@0.14.0-next.1
+ - @backstage/core-plugin-api@1.9.0-next.1
+ - @backstage/plugin-catalog-react@1.10.0-next.2
+ - @backstage/catalog-model@1.4.4-next.0
+
+## @backstage/plugin-fossa@0.2.62-next.2
+
+### Patch Changes
+
+- 9aac2b0: Use `--cwd` as the first `yarn` argument
+- 8fe56a8: Widen `@types/react` dependency range to include version 18.
+- Updated dependencies
+ - @backstage/core-components@0.14.0-next.1
+ - @backstage/core-plugin-api@1.9.0-next.1
+ - @backstage/plugin-catalog-react@1.10.0-next.2
+ - @backstage/catalog-model@1.4.4-next.0
+ - @backstage/errors@1.2.3
+
+## @backstage/plugin-gcalendar@0.3.23-next.1
+
+### Patch Changes
+
+- 8fe56a8: Widen `@types/react` dependency range to include version 18.
+- Updated dependencies
+ - @backstage/core-components@0.14.0-next.1
+ - @backstage/core-plugin-api@1.9.0-next.1
+ - @backstage/errors@1.2.3
+
+## @backstage/plugin-gcp-projects@0.3.46-next.1
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/core-components@0.14.0-next.1
+ - @backstage/core-plugin-api@1.9.0-next.1
+
+## @backstage/plugin-git-release-manager@0.3.42-next.1
+
+### Patch Changes
+
+- 8fe56a8: Widen `@types/react` dependency range to include version 18.
+- Updated dependencies
+ - @backstage/core-components@0.14.0-next.1
+ - @backstage/core-plugin-api@1.9.0-next.1
+ - @backstage/integration@1.9.0-next.0
+
+## @backstage/plugin-github-actions@0.6.11-next.2
+
+### Patch Changes
+
+- 9aac2b0: Use `--cwd` as the first `yarn` argument
+- 8fe56a8: Widen `@types/react` dependency range to include version 18.
+- Updated dependencies
+ - @backstage/core-components@0.14.0-next.1
+ - @backstage/core-plugin-api@1.9.0-next.1
+ - @backstage/plugin-catalog-react@1.10.0-next.2
+ - @backstage/integration-react@1.1.24-next.1
+ - @backstage/catalog-model@1.4.4-next.0
+ - @backstage/integration@1.9.0-next.0
+
+## @backstage/plugin-github-deployments@0.1.61-next.2
+
+### Patch Changes
+
+- 9aac2b0: Use `--cwd` as the first `yarn` argument
+- 8fe56a8: Widen `@types/react` dependency range to include version 18.
+- Updated dependencies
+ - @backstage/core-components@0.14.0-next.1
+ - @backstage/core-plugin-api@1.9.0-next.1
+ - @backstage/plugin-catalog-react@1.10.0-next.2
+ - @backstage/integration-react@1.1.24-next.1
+ - @backstage/catalog-model@1.4.4-next.0
+ - @backstage/errors@1.2.3
+ - @backstage/integration@1.9.0-next.0
+
+## @backstage/plugin-github-issues@0.2.19-next.2
+
+### Patch Changes
+
+- 8fe56a8: Widen `@types/react` dependency range to include version 18.
+- Updated dependencies
+ - @backstage/core-components@0.14.0-next.1
+ - @backstage/core-plugin-api@1.9.0-next.1
+ - @backstage/plugin-catalog-react@1.10.0-next.2
+ - @backstage/catalog-model@1.4.4-next.0
+ - @backstage/errors@1.2.3
+ - @backstage/integration@1.9.0-next.0
+
+## @backstage/plugin-github-pull-requests-board@0.1.24-next.2
+
+### Patch Changes
+
+- 8fe56a8: Widen `@types/react` dependency range to include version 18.
+- Updated dependencies
+ - @backstage/core-components@0.14.0-next.1
+ - @backstage/core-plugin-api@1.9.0-next.1
+ - @backstage/plugin-catalog-react@1.10.0-next.2
+ - @backstage/catalog-model@1.4.4-next.0
+ - @backstage/integration@1.9.0-next.0
+
+## @backstage/plugin-gitops-profiles@0.3.45-next.1
+
+### Patch Changes
+
+- 8fe56a8: Widen `@types/react` dependency range to include version 18.
+- Updated dependencies
+ - @backstage/core-components@0.14.0-next.1
+ - @backstage/core-plugin-api@1.9.0-next.1
+
+## @backstage/plugin-gocd@0.1.36-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/core-components@0.14.0-next.1
+ - @backstage/core-plugin-api@1.9.0-next.1
+ - @backstage/plugin-catalog-react@1.10.0-next.2
+ - @backstage/catalog-model@1.4.4-next.0
+ - @backstage/errors@1.2.3
+
+## @backstage/plugin-graphiql@0.3.3-next.2
+
+### Patch Changes
+
+- 9aac2b0: Use `--cwd` as the first `yarn` argument
+- 8fe56a8: Widen `@types/react` dependency range to include version 18.
+- Updated dependencies
+ - @backstage/core-components@0.14.0-next.1
+ - @backstage/core-plugin-api@1.9.0-next.1
+ - @backstage/frontend-plugin-api@0.6.0-next.2
+ - @backstage/core-compat-api@0.2.0-next.2
+
+## @backstage/plugin-graphql-voyager@0.1.12-next.1
+
+### Patch Changes
+
+- 9aac2b0: Use `--cwd` as the first `yarn` argument
+- 8fe56a8: Widen `@types/react` dependency range to include version 18.
+- Updated dependencies
+ - @backstage/core-components@0.14.0-next.1
+ - @backstage/core-plugin-api@1.9.0-next.1
+
+## @backstage/plugin-home@0.6.2-next.2
+
+### Patch Changes
+
+- 9aac2b0: Use `--cwd` as the first `yarn` argument
+- dc7ae8b: Use EntityDisplayName JSX element entity information directly for FeaturedDocsCard.
+- 8fe56a8: Widen `@types/react` dependency range to include version 18.
+- 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/frontend-plugin-api@0.6.0-next.2
+ - @backstage/plugin-catalog-react@1.10.0-next.2
+ - @backstage/theme@0.5.1-next.0
+ - @backstage/plugin-home-react@0.1.8-next.2
+ - @backstage/core-compat-api@0.2.0-next.2
+ - @backstage/config@1.1.1
+ - @backstage/catalog-client@1.6.0-next.1
+ - @backstage/catalog-model@1.4.4-next.0
+
+## @backstage/plugin-home-react@0.1.8-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/core-components@0.14.0-next.1
+ - @backstage/core-plugin-api@1.9.0-next.1
+
+## @backstage/plugin-ilert@0.2.19-next.2
+
+### Patch Changes
+
+- 9aac2b0: Use `--cwd` as the first `yarn` argument
+- 8fe56a8: Widen `@types/react` dependency range to include version 18.
+- Updated dependencies
+ - @backstage/core-components@0.14.0-next.1
+ - @backstage/core-plugin-api@1.9.0-next.1
+ - @backstage/plugin-catalog-react@1.10.0-next.2
+ - @backstage/catalog-model@1.4.4-next.0
+ - @backstage/errors@1.2.3
+
+## @backstage/plugin-jenkins@0.9.5-next.2
+
+### Patch Changes
+
+- 9aac2b0: Use `--cwd` as the first `yarn` argument
+- 8fe56a8: Widen `@types/react` dependency range to include version 18.
+- Updated dependencies
+ - @backstage/core-components@0.14.0-next.1
+ - @backstage/core-plugin-api@1.9.0-next.1
+ - @backstage/plugin-catalog-react@1.10.0-next.2
+ - @backstage/catalog-model@1.4.4-next.0
+ - @backstage/errors@1.2.3
+ - @backstage/plugin-jenkins-common@0.1.24-next.0
+
+## @backstage/plugin-jenkins-backend@0.3.4-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/plugin-auth-node@0.4.4-next.2
+ - @backstage/plugin-permission-node@0.7.21-next.2
+ - @backstage/plugin-catalog-node@1.6.2-next.2
+ - @backstage/config@1.1.1
+ - @backstage/catalog-client@1.6.0-next.1
+ - @backstage/catalog-model@1.4.4-next.0
+ - @backstage/errors@1.2.3
+ - @backstage/plugin-jenkins-common@0.1.24-next.0
+ - @backstage/plugin-permission-common@0.7.12
+
+## @backstage/plugin-kafka@0.3.30-next.2
+
+### Patch Changes
+
+- 8fe56a8: Widen `@types/react` dependency range to include version 18.
+- Updated dependencies
+ - @backstage/core-components@0.14.0-next.1
+ - @backstage/core-plugin-api@1.9.0-next.1
+ - @backstage/plugin-catalog-react@1.10.0-next.2
+ - @backstage/catalog-model@1.4.4-next.0
+
+## @backstage/plugin-kafka-backend@0.3.8-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/backend-common@0.21.0-next.2
+ - @backstage/backend-plugin-api@0.6.10-next.2
+ - @backstage/config@1.1.1
+ - @backstage/errors@1.2.3
+
+## @backstage/plugin-kubernetes@0.11.5-next.2
+
+### Patch Changes
+
+- 8fe56a8: Widen `@types/react` dependency range to include version 18.
+- Updated dependencies
+ - @backstage/core-components@0.14.0-next.1
+ - @backstage/core-plugin-api@1.9.0-next.1
+ - @backstage/plugin-catalog-react@1.10.0-next.2
+ - @backstage/plugin-kubernetes-react@0.3.0-next.2
+ - @backstage/catalog-model@1.4.4-next.0
+ - @backstage/plugin-kubernetes-common@0.7.4-next.1
+
+## @backstage/plugin-kubernetes-cluster@0.0.6-next.2
+
+### Patch Changes
+
+- 8fe56a8: Widen `@types/react` dependency range to include version 18.
+- Updated dependencies
+ - @backstage/core-components@0.14.0-next.1
+ - @backstage/core-plugin-api@1.9.0-next.1
+ - @backstage/plugin-catalog-react@1.10.0-next.2
+ - @backstage/plugin-kubernetes-react@0.3.0-next.2
+ - @backstage/catalog-model@1.4.4-next.0
+ - @backstage/plugin-kubernetes-common@0.7.4-next.1
+
+## @backstage/plugin-kubernetes-node@0.1.4-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/backend-plugin-api@0.6.10-next.2
+ - @backstage/catalog-model@1.4.4-next.0
+ - @backstage/types@1.1.1
+ - @backstage/plugin-kubernetes-common@0.7.4-next.1
+
+## @backstage/plugin-kubernetes-react@0.3.0-next.2
+
+### Patch Changes
+
+- 8fe56a8: Widen `@types/react` dependency range to include version 18.
+- Updated dependencies
+ - @backstage/core-components@0.14.0-next.1
+ - @backstage/core-plugin-api@1.9.0-next.1
+ - @backstage/catalog-model@1.4.4-next.0
+ - @backstage/errors@1.2.3
+ - @backstage/types@1.1.1
+ - @backstage/plugin-kubernetes-common@0.7.4-next.1
+
+## @backstage/plugin-lighthouse@0.4.15-next.2
+
+### Patch Changes
+
+- 9aac2b0: Use `--cwd` as the first `yarn` argument
+- 8fe56a8: Widen `@types/react` dependency range to include version 18.
+- Updated dependencies
+ - @backstage/core-components@0.14.0-next.1
+ - @backstage/core-plugin-api@1.9.0-next.1
+ - @backstage/plugin-catalog-react@1.10.0-next.2
+ - @backstage/catalog-model@1.4.4-next.0
+ - @backstage/plugin-lighthouse-common@0.1.4
+
+## @backstage/plugin-lighthouse-backend@0.4.2-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-catalog-node@1.6.2-next.2
+ - @backstage/config@1.1.1
+ - @backstage/catalog-client@1.6.0-next.1
+ - @backstage/catalog-model@1.4.4-next.0
+ - @backstage/types@1.1.1
+ - @backstage/plugin-lighthouse-common@0.1.4
+
+## @backstage/plugin-linguist@0.1.15-next.2
+
+### Patch Changes
+
+- 9aac2b0: Use `--cwd` as the first `yarn` argument
+- 8fe56a8: Widen `@types/react` dependency range to include version 18.
+- Updated dependencies
+ - @backstage/core-components@0.14.0-next.1
+ - @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/core-compat-api@0.2.0-next.2
+ - @backstage/catalog-model@1.4.4-next.0
+ - @backstage/errors@1.2.3
+ - @backstage/plugin-linguist-common@0.1.2
+
+## @backstage/plugin-linguist-backend@0.5.7-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-catalog-node@1.6.2-next.2
+ - @backstage/config@1.1.1
+ - @backstage/catalog-client@1.6.0-next.1
+ - @backstage/catalog-model@1.4.4-next.0
+ - @backstage/errors@1.2.3
+ - @backstage/types@1.1.1
+ - @backstage/plugin-linguist-common@0.1.2
+
+## @backstage/plugin-microsoft-calendar@0.1.12-next.1
+
+### Patch Changes
+
+- 9aac2b0: Use `--cwd` as the first `yarn` argument
+- 8fe56a8: Widen `@types/react` dependency range to include version 18.
+- Updated dependencies
+ - @backstage/core-components@0.14.0-next.1
+ - @backstage/core-plugin-api@1.9.0-next.1
+ - @backstage/errors@1.2.3
+
+## @backstage/plugin-newrelic@0.3.45-next.1
+
+### Patch Changes
+
+- 9aac2b0: Use `--cwd` as the first `yarn` argument
+- 8fe56a8: Widen `@types/react` dependency range to include version 18.
+- Updated dependencies
+ - @backstage/core-components@0.14.0-next.1
+ - @backstage/core-plugin-api@1.9.0-next.1
+
+## @backstage/plugin-newrelic-dashboard@0.3.5-next.2
+
+### Patch Changes
+
+- 8fe56a8: Widen `@types/react` dependency range to include version 18.
+- Updated dependencies
+ - @backstage/core-components@0.14.0-next.1
+ - @backstage/core-plugin-api@1.9.0-next.1
+ - @backstage/plugin-catalog-react@1.10.0-next.2
+ - @backstage/catalog-model@1.4.4-next.0
+ - @backstage/errors@1.2.3
+
+## @backstage/plugin-nomad@0.1.11-next.2
+
+### Patch Changes
+
+- 9aac2b0: Use `--cwd` as the first `yarn` argument
+- 8fe56a8: Widen `@types/react` dependency range to include version 18.
+- Updated dependencies
+ - @backstage/core-components@0.14.0-next.1
+ - @backstage/core-plugin-api@1.9.0-next.1
+ - @backstage/plugin-catalog-react@1.10.0-next.2
+ - @backstage/catalog-model@1.4.4-next.0
+
+## @backstage/plugin-nomad-backend@0.1.12-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/config@1.1.1
+ - @backstage/errors@1.2.3
+
+## @backstage/plugin-notifications@0.0.1-next.0
+
+### Patch Changes
+
+- fb8fc24: Initial notifications system for backstage
+- Updated dependencies
+ - @backstage/core-components@0.14.0-next.1
+ - @backstage/plugin-signals-react@0.0.1-next.2
+ - @backstage/core-plugin-api@1.9.0-next.1
+ - @backstage/theme@0.5.1-next.0
+ - @backstage/plugin-notifications-common@0.0.1-next.0
+ - @backstage/errors@1.2.3
+ - @backstage/types@1.1.1
+
+## @backstage/plugin-notifications-backend@0.0.1-next.0
+
+### Patch Changes
+
+- fb8fc24: Initial notifications system for backstage
+- Updated dependencies
+ - @backstage/backend-common@0.21.0-next.2
+ - @backstage/plugin-signals-node@0.0.1-next.2
+ - @backstage/backend-plugin-api@0.6.10-next.2
+ - @backstage/plugin-auth-node@0.4.4-next.2
+ - @backstage/plugin-notifications-common@0.0.1-next.0
+ - @backstage/plugin-notifications-node@0.0.1-next.0
+ - @backstage/plugin-events-node@0.2.19-next.2
+ - @backstage/config@1.1.1
+ - @backstage/catalog-client@1.6.0-next.1
+ - @backstage/catalog-model@1.4.4-next.0
+ - @backstage/errors@1.2.3
+
+## @backstage/plugin-notifications-common@0.0.1-next.0
+
+### Patch Changes
+
+- fb8fc24: Initial notifications system for backstage
+
+## @backstage/plugin-notifications-node@0.0.1-next.0
+
+### Patch Changes
+
+- fb8fc24: Initial notifications system for backstage
+- Updated dependencies
+ - @backstage/backend-common@0.21.0-next.2
+ - @backstage/plugin-signals-node@0.0.1-next.2
+ - @backstage/backend-plugin-api@0.6.10-next.2
+ - @backstage/plugin-notifications-common@0.0.1-next.0
+ - @backstage/catalog-client@1.6.0-next.1
+ - @backstage/catalog-model@1.4.4-next.0
+
+## @backstage/plugin-octopus-deploy@0.2.12-next.2
+
+### Patch Changes
+
+- 9aac2b0: Use `--cwd` as the first `yarn` argument
+- 8fe56a8: Widen `@types/react` dependency range to include version 18.
+- Updated dependencies
+ - @backstage/core-components@0.14.0-next.1
+ - @backstage/core-plugin-api@1.9.0-next.1
+ - @backstage/plugin-catalog-react@1.10.0-next.2
+ - @backstage/catalog-model@1.4.4-next.0
+
+## @backstage/plugin-opencost@0.2.5-next.1
+
+### Patch Changes
+
+- 9aac2b0: Use `--cwd` as the first `yarn` argument
+- 8fe56a8: Widen `@types/react` dependency range to include version 18.
+- 03c5bbe: Updated dependency `date-fns` to `^3.0.0`.
+- Updated dependencies
+ - @backstage/core-components@0.14.0-next.1
+ - @backstage/core-plugin-api@1.9.0-next.1
+
+## @backstage/plugin-org@0.6.20-next.2
+
+### Patch Changes
+
+- 8fe56a8: Widen `@types/react` dependency range to include version 18.
+- 6e1bf50: Added basic support for the new frontend system, exported from the `/alpha` subpath.
+- Updated dependencies
+ - @backstage/core-components@0.14.0-next.1
+ - @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/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-org-react@0.1.19-next.2
+
+### Patch Changes
+
+- 8fe56a8: Widen `@types/react` dependency range to include version 18.
+- Updated dependencies
+ - @backstage/core-components@0.14.0-next.1
+ - @backstage/core-plugin-api@1.9.0-next.1
+ - @backstage/plugin-catalog-react@1.10.0-next.2
+ - @backstage/catalog-client@1.6.0-next.1
+ - @backstage/catalog-model@1.4.4-next.0
+
+## @backstage/plugin-pagerduty@0.7.2-next.2
+
+### Patch Changes
+
+- 8fe56a8: Widen `@types/react` dependency range to include version 18.
+- Updated dependencies
+ - @backstage/core-components@0.14.0-next.1
+ - @backstage/core-plugin-api@1.9.0-next.1
+ - @backstage/plugin-catalog-react@1.10.0-next.2
+ - @backstage/plugin-home-react@0.1.8-next.2
+ - @backstage/catalog-model@1.4.4-next.0
+ - @backstage/errors@1.2.3
+
+## @backstage/plugin-periskop@0.1.28-next.2
+
+### Patch Changes
+
+- 9aac2b0: Use `--cwd` as the first `yarn` argument
+- 8fe56a8: Widen `@types/react` dependency range to include version 18.
+- Updated dependencies
+ - @backstage/core-components@0.14.0-next.1
+ - @backstage/core-plugin-api@1.9.0-next.1
+ - @backstage/plugin-catalog-react@1.10.0-next.2
+ - @backstage/catalog-model@1.4.4-next.0
+ - @backstage/errors@1.2.3
+
+## @backstage/plugin-periskop-backend@0.2.8-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/backend-common@0.21.0-next.2
+ - @backstage/backend-plugin-api@0.6.10-next.2
+ - @backstage/config@1.1.1
+
+## @backstage/plugin-permission-backend@0.5.33-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-auth-node@0.4.4-next.2
+ - @backstage/plugin-permission-node@0.7.21-next.2
+ - @backstage/config@1.1.1
+ - @backstage/errors@1.2.3
+ - @backstage/plugin-permission-common@0.7.12
+
+## @backstage/plugin-permission-backend-module-allow-all-policy@0.1.7-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/backend-plugin-api@0.6.10-next.2
+ - @backstage/plugin-auth-node@0.4.4-next.2
+ - @backstage/plugin-permission-node@0.7.21-next.2
+ - @backstage/plugin-permission-common@0.7.12
+
+## @backstage/plugin-permission-node@0.7.21-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-auth-node@0.4.4-next.2
+ - @backstage/config@1.1.1
+ - @backstage/errors@1.2.3
+ - @backstage/plugin-permission-common@0.7.12
+
+## @backstage/plugin-permission-react@0.4.20-next.1
+
+### Patch Changes
+
+- 8fe56a8: Widen `@types/react` dependency range to include version 18.
+- Updated dependencies
+ - @backstage/core-plugin-api@1.9.0-next.1
+ - @backstage/config@1.1.1
+ - @backstage/plugin-permission-common@0.7.12
+
+## @backstage/plugin-playlist@0.2.4-next.2
+
+### Patch Changes
+
+- 8fe56a8: Widen `@types/react` dependency range to include version 18.
+- 7f11009: Added stack trace display to `ErrorPage` and updated existing refs
+- Updated dependencies
+ - @backstage/core-components@0.14.0-next.1
+ - @backstage/core-plugin-api@1.9.0-next.1
+ - @backstage/plugin-catalog-react@1.10.0-next.2
+ - @backstage/plugin-permission-react@0.4.20-next.1
+ - @backstage/plugin-search-react@1.7.6-next.2
+ - @backstage/catalog-model@1.4.4-next.0
+ - @backstage/errors@1.2.3
+ - @backstage/plugin-catalog-common@1.0.21-next.0
+ - @backstage/plugin-permission-common@0.7.12
+ - @backstage/plugin-playlist-common@0.1.14
+
+## @backstage/plugin-playlist-backend@0.3.14-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/plugin-auth-node@0.4.4-next.2
+ - @backstage/plugin-permission-node@0.7.21-next.2
+ - @backstage/config@1.1.1
+ - @backstage/catalog-client@1.6.0-next.1
+ - @backstage/catalog-model@1.4.4-next.0
+ - @backstage/errors@1.2.3
+ - @backstage/plugin-permission-common@0.7.12
+ - @backstage/plugin-playlist-common@0.1.14
+
+## @backstage/plugin-proxy-backend@0.4.8-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/backend-common@0.21.0-next.2
+ - @backstage/backend-plugin-api@0.6.10-next.2
+ - @backstage/config@1.1.1
+
+## @backstage/plugin-puppetdb@0.1.13-next.2
+
+### Patch Changes
+
+- 8fe56a8: Widen `@types/react` dependency range to include version 18.
+- Updated dependencies
+ - @backstage/core-components@0.14.0-next.1
+ - @backstage/core-plugin-api@1.9.0-next.1
+ - @backstage/plugin-catalog-react@1.10.0-next.2
+ - @backstage/catalog-model@1.4.4-next.0
+ - @backstage/errors@1.2.3
+
+## @backstage/plugin-rollbar@0.4.30-next.2
+
+### Patch Changes
+
+- 9aac2b0: Use `--cwd` as the first `yarn` argument
+- 8fe56a8: Widen `@types/react` dependency range to include version 18.
+- Updated dependencies
+ - @backstage/core-components@0.14.0-next.1
+ - @backstage/core-plugin-api@1.9.0-next.1
+ - @backstage/plugin-catalog-react@1.10.0-next.2
+ - @backstage/catalog-model@1.4.4-next.0
+
+## @backstage/plugin-rollbar-backend@0.1.55-next.2
+
+### Patch Changes
+
+- 9aac2b0: Use `--cwd` as the first `yarn` argument
+- Updated dependencies
+ - @backstage/backend-common@0.21.0-next.2
+ - @backstage/config@1.1.1
+
+## @backstage/plugin-scaffolder-backend@1.21.0-next.2
+
+### Patch Changes
+
+- 5eb6882: 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`
+
+- 9aac2b0: Use `--cwd` as the first `yarn` argument
+
+- 52ae6b9: Updated dependency `esbuild` to `^0.20.0`.
+
+- 5eb6882: 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`
+
+- Updated dependencies
+ - @backstage/plugin-scaffolder-backend-module-bitbucket-server@0.1.0-next.0
+ - @backstage/backend-common@0.21.0-next.2
+ - @backstage/plugin-scaffolder-backend-module-bitbucket@0.2.0-next.2
+ - @backstage/plugin-scaffolder-backend-module-gitlab@0.2.13-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-scaffolder-backend-module-bitbucket-cloud@0.1.0-next.0
+ - @backstage/plugin-scaffolder-backend-module-gerrit@0.1.2-next.2
+ - @backstage/plugin-permission-node@0.7.21-next.2
+ - @backstage/plugin-scaffolder-backend-module-azure@0.1.2-next.2
+ - @backstage/plugin-scaffolder-backend-module-github@0.2.0-next.2
+ - @backstage/plugin-scaffolder-node@0.3.0-next.2
+ - @backstage/plugin-catalog-backend-module-scaffolder-entity-model@0.1.7-next.2
+ - @backstage/plugin-catalog-node@1.6.2-next.2
+ - @backstage/config@1.1.1
+ - @backstage/catalog-client@1.6.0-next.1
+ - @backstage/catalog-model@1.4.4-next.0
+ - @backstage/errors@1.2.3
+ - @backstage/integration@1.9.0-next.0
+ - @backstage/types@1.1.1
+ - @backstage/plugin-permission-common@0.7.12
+ - @backstage/plugin-scaffolder-common@1.5.0-next.1
+
+## @backstage/plugin-scaffolder-backend-module-azure@0.1.2-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-scaffolder-node@0.3.0-next.2
+ - @backstage/config@1.1.1
+ - @backstage/errors@1.2.3
+ - @backstage/integration@1.9.0-next.0
+
+## @backstage/plugin-scaffolder-backend-module-confluence-to-markdown@0.2.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/plugin-scaffolder-node@0.3.0-next.2
+ - @backstage/config@1.1.1
+ - @backstage/errors@1.2.3
+ - @backstage/integration@1.9.0-next.0
+
+## @backstage/plugin-scaffolder-backend-module-cookiecutter@0.2.34-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/plugin-scaffolder-node@0.3.0-next.2
+ - @backstage/config@1.1.1
+ - @backstage/errors@1.2.3
+ - @backstage/integration@1.9.0-next.0
+ - @backstage/types@1.1.1
+
+## @backstage/plugin-scaffolder-backend-module-gerrit@0.1.2-next.2
+
+### Patch Changes
+
+- 8b269e1: Provide default branch when creating repositories.
+- Updated dependencies
+ - @backstage/backend-plugin-api@0.6.10-next.2
+ - @backstage/plugin-scaffolder-node@0.3.0-next.2
+ - @backstage/config@1.1.1
+ - @backstage/errors@1.2.3
+ - @backstage/integration@1.9.0-next.0
+
+## @backstage/plugin-scaffolder-backend-module-github@0.2.0-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-scaffolder-node@0.3.0-next.2
+ - @backstage/config@1.1.1
+ - @backstage/errors@1.2.3
+ - @backstage/integration@1.9.0-next.0
+
+## @backstage/plugin-scaffolder-backend-module-gitlab@0.2.13-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/plugin-scaffolder-node@0.3.0-next.2
+ - @backstage/config@1.1.1
+ - @backstage/errors@1.2.3
+ - @backstage/integration@1.9.0-next.0
+
+## @backstage/plugin-scaffolder-backend-module-rails@0.4.27-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/plugin-scaffolder-node@0.3.0-next.2
+ - @backstage/config@1.1.1
+ - @backstage/errors@1.2.3
+ - @backstage/integration@1.9.0-next.0
+ - @backstage/types@1.1.1
+
+## @backstage/plugin-scaffolder-backend-module-sentry@0.1.18-next.2
+
+### Patch Changes
+
+- 9aac2b0: Use `--cwd` as the first `yarn` argument
+- Updated dependencies
+ - @backstage/backend-plugin-api@0.6.10-next.2
+ - @backstage/plugin-scaffolder-node@0.3.0-next.2
+ - @backstage/config@1.1.1
+ - @backstage/errors@1.2.3
+
+## @backstage/plugin-scaffolder-backend-module-yeoman@0.2.31-next.2
+
+### Patch Changes
+
+- 9aac2b0: Use `--cwd` as the first `yarn` argument
+- Updated dependencies
+ - @backstage/backend-plugin-api@0.6.10-next.2
+ - @backstage/plugin-scaffolder-node@0.3.0-next.2
+ - @backstage/types@1.1.1
+
+## @backstage/plugin-scaffolder-node@0.3.0-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/backend-common@0.21.0-next.2
+ - @backstage/backend-plugin-api@0.6.10-next.2
+ - @backstage/catalog-model@1.4.4-next.0
+ - @backstage/errors@1.2.3
+ - @backstage/integration@1.9.0-next.0
+ - @backstage/types@1.1.1
+ - @backstage/plugin-scaffolder-common@1.5.0-next.1
+
+## @backstage/plugin-scaffolder-react@1.8.0-next.2
+
+### Patch Changes
+
+- 8fe56a8: Widen `@types/react` dependency range to include version 18.
+- 2985186: Fix bug that erroneously caused a separator or a 0 to render in the TemplateCard for Templates with empty links
+- Updated dependencies
+ - @backstage/core-components@0.14.0-next.1
+ - @backstage/core-plugin-api@1.9.0-next.1
+ - @backstage/plugin-catalog-react@1.10.0-next.2
+ - @backstage/theme@0.5.1-next.0
+ - @backstage/catalog-client@1.6.0-next.1
+ - @backstage/catalog-model@1.4.4-next.0
+ - @backstage/types@1.1.1
+ - @backstage/version-bridge@1.0.7
+ - @backstage/plugin-scaffolder-common@1.5.0-next.1
+
+## @backstage/plugin-search@1.4.6-next.2
+
+### Patch Changes
+
+- 8fe56a8: Widen `@types/react` dependency range to include version 18.
+- Updated dependencies
+ - @backstage/core-components@0.14.0-next.1
+ - @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/plugin-search-react@1.7.6-next.2
+ - @backstage/core-compat-api@0.2.0-next.2
+ - @backstage/errors@1.2.3
+ - @backstage/types@1.1.1
+ - @backstage/version-bridge@1.0.7
+ - @backstage/plugin-search-common@1.2.10
+
+## @backstage/plugin-search-backend@1.5.0-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-auth-node@0.4.4-next.2
+ - @backstage/plugin-permission-node@0.7.21-next.2
+ - @backstage/plugin-search-backend-node@1.2.14-next.2
+ - @backstage/backend-openapi-utils@0.1.3-next.2
+ - @backstage/config@1.1.1
+ - @backstage/errors@1.2.3
+ - @backstage/types@1.1.1
+ - @backstage/plugin-permission-common@0.7.12
+ - @backstage/plugin-search-common@1.2.10
+
+## @backstage/plugin-search-backend-module-catalog@0.1.14-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-search-backend-node@1.2.14-next.2
+ - @backstage/plugin-catalog-node@1.6.2-next.2
+ - @backstage/config@1.1.1
+ - @backstage/catalog-client@1.6.0-next.1
+ - @backstage/catalog-model@1.4.4-next.0
+ - @backstage/errors@1.2.3
+ - @backstage/plugin-catalog-common@1.0.21-next.0
+ - @backstage/plugin-permission-common@0.7.12
+ - @backstage/plugin-search-common@1.2.10
+
+## @backstage/plugin-search-backend-module-elasticsearch@1.3.13-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-search-backend-node@1.2.14-next.2
+ - @backstage/config@1.1.1
+ - @backstage/integration-aws-node@0.1.8
+ - @backstage/plugin-search-common@1.2.10
+
+## @backstage/plugin-search-backend-module-explore@0.1.14-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-search-backend-node@1.2.14-next.2
+ - @backstage/config@1.1.1
+ - @backstage/plugin-explore-common@0.0.2
+ - @backstage/plugin-search-common@1.2.10
+
+## @backstage/plugin-search-backend-module-pg@0.5.19-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-search-backend-node@1.2.14-next.2
+ - @backstage/config@1.1.1
+ - @backstage/plugin-search-common@1.2.10
+
+## @backstage/plugin-search-backend-module-stack-overflow-collator@0.1.3-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-search-backend-node@1.2.14-next.2
+ - @backstage/config@1.1.1
+ - @backstage/plugin-search-common@1.2.10
+
+## @backstage/plugin-search-backend-module-techdocs@0.1.14-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-search-backend-node@1.2.14-next.2
+ - @backstage/plugin-techdocs-node@1.11.2-next.2
+ - @backstage/plugin-catalog-node@1.6.2-next.2
+ - @backstage/config@1.1.1
+ - @backstage/catalog-client@1.6.0-next.1
+ - @backstage/catalog-model@1.4.4-next.0
+ - @backstage/plugin-catalog-common@1.0.21-next.0
+ - @backstage/plugin-permission-common@0.7.12
+ - @backstage/plugin-search-common@1.2.10
+
+## @backstage/plugin-search-backend-node@1.2.14-next.2
+
+### Patch Changes
+
+- 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/config@1.1.1
+ - @backstage/errors@1.2.3
+ - @backstage/plugin-permission-common@0.7.12
+ - @backstage/plugin-search-common@1.2.10
+
+## @backstage/plugin-search-react@1.7.6-next.2
+
+### Patch Changes
+
+- 8fe56a8: Widen `@types/react` dependency range to include version 18.
+- Updated dependencies
+ - @backstage/core-components@0.14.0-next.1
+ - @backstage/core-plugin-api@1.9.0-next.1
+ - @backstage/frontend-plugin-api@0.6.0-next.2
+ - @backstage/theme@0.5.1-next.0
+ - @backstage/types@1.1.1
+ - @backstage/version-bridge@1.0.7
+ - @backstage/plugin-search-common@1.2.10
+
+## @backstage/plugin-sentry@0.5.15-next.2
+
+### Patch Changes
+
+- 9aac2b0: Use `--cwd` as the first `yarn` argument
+- 8fe56a8: Widen `@types/react` dependency range to include version 18.
+- Updated dependencies
+ - @backstage/core-components@0.14.0-next.1
+ - @backstage/core-plugin-api@1.9.0-next.1
+ - @backstage/plugin-catalog-react@1.10.0-next.2
+ - @backstage/catalog-model@1.4.4-next.0
+
+## @backstage/plugin-shortcuts@0.3.19-next.1
+
+### Patch Changes
+
+- 9aac2b0: Use `--cwd` as the first `yarn` argument
+- 8fe56a8: Widen `@types/react` dependency range to include version 18.
+- Updated dependencies
+ - @backstage/core-components@0.14.0-next.1
+ - @backstage/core-plugin-api@1.9.0-next.1
+ - @backstage/theme@0.5.1-next.0
+ - @backstage/types@1.1.1
+
+## @backstage/plugin-signals@0.0.1-next.2
+
+### Patch Changes
+
+- 447d210: Fix disconnect loop on server start
+- Updated dependencies
+ - @backstage/core-components@0.14.0-next.1
+ - @backstage/plugin-signals-react@0.0.1-next.2
+ - @backstage/core-plugin-api@1.9.0-next.1
+ - @backstage/theme@0.5.1-next.0
+ - @backstage/types@1.1.1
+
+## @backstage/plugin-signals-backend@0.0.1-next.2
+
+### Patch Changes
+
+- 447d210: Fix disconnect loop on server start
+- Updated dependencies
+ - @backstage/backend-common@0.21.0-next.2
+ - @backstage/plugin-signals-node@0.0.1-next.2
+ - @backstage/backend-plugin-api@0.6.10-next.2
+ - @backstage/plugin-auth-node@0.4.4-next.2
+ - @backstage/plugin-events-node@0.2.19-next.2
+ - @backstage/config@1.1.1
+ - @backstage/types@1.1.1
+
+## @backstage/plugin-signals-node@0.0.1-next.2
+
+### Patch Changes
+
+- 447d210: Fix disconnect loop on server start
+- Updated dependencies
+ - @backstage/backend-common@0.21.0-next.2
+ - @backstage/backend-plugin-api@0.6.10-next.2
+ - @backstage/plugin-auth-node@0.4.4-next.2
+ - @backstage/plugin-events-node@0.2.19-next.2
+ - @backstage/config@1.1.1
+ - @backstage/types@1.1.1
+
+## @backstage/plugin-signals-react@0.0.1-next.2
+
+### Patch Changes
+
+- 447d210: Fix disconnect loop on server start
+- Updated dependencies
+ - @backstage/core-plugin-api@1.9.0-next.1
+ - @backstage/types@1.1.1
+
+## @backstage/plugin-sonarqube@0.7.12-next.2
+
+### Patch Changes
+
+- 9aac2b0: Use `--cwd` as the first `yarn` argument
+- 8fe56a8: Widen `@types/react` dependency range to include version 18.
+- Updated dependencies
+ - @backstage/core-components@0.14.0-next.1
+ - @backstage/core-plugin-api@1.9.0-next.1
+ - @backstage/plugin-catalog-react@1.10.0-next.2
+ - @backstage/plugin-sonarqube-react@0.1.13-next.1
+ - @backstage/catalog-model@1.4.4-next.0
+
+## @backstage/plugin-sonarqube-backend@0.2.12-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/config@1.1.1
+ - @backstage/errors@1.2.3
+
+## @backstage/plugin-sonarqube-react@0.1.13-next.1
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/core-plugin-api@1.9.0-next.1
+ - @backstage/catalog-model@1.4.4-next.0
+
+## @backstage/plugin-splunk-on-call@0.4.19-next.2
+
+### Patch Changes
+
+- 9aac2b0: Use `--cwd` as the first `yarn` argument
+- 8fe56a8: Widen `@types/react` dependency range to include version 18.
+- Updated dependencies
+ - @backstage/core-components@0.14.0-next.1
+ - @backstage/core-plugin-api@1.9.0-next.1
+ - @backstage/plugin-catalog-react@1.10.0-next.2
+ - @backstage/catalog-model@1.4.4-next.0
+
+## @backstage/plugin-stack-overflow@0.1.25-next.2
+
+### Patch Changes
+
+- 8fe56a8: Widen `@types/react` dependency range to include version 18.
+- Updated dependencies
+ - @backstage/core-components@0.14.0-next.1
+ - @backstage/core-plugin-api@1.9.0-next.1
+ - @backstage/frontend-plugin-api@0.6.0-next.2
+ - @backstage/plugin-search-react@1.7.6-next.2
+ - @backstage/plugin-home-react@0.1.8-next.2
+ - @backstage/config@1.1.1
+ - @backstage/plugin-search-common@1.2.10
+
+## @backstage/plugin-stack-overflow-backend@0.2.14-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/plugin-search-backend-module-stack-overflow-collator@0.1.3-next.2
+
+## @backstage/plugin-stackstorm@0.1.11-next.1
+
+### Patch Changes
+
+- 8fe56a8: Widen `@types/react` dependency range to include version 18.
+- Updated dependencies
+ - @backstage/core-components@0.14.0-next.1
+ - @backstage/core-plugin-api@1.9.0-next.1
+ - @backstage/errors@1.2.3
+
+## @backstage/plugin-tech-insights@0.3.22-next.2
+
+### Patch Changes
+
+- 9aac2b0: Use `--cwd` as the first `yarn` argument
+- 8fe56a8: Widen `@types/react` dependency range to include version 18.
+- Updated dependencies
+ - @backstage/core-components@0.14.0-next.1
+ - @backstage/core-plugin-api@1.9.0-next.1
+ - @backstage/plugin-catalog-react@1.10.0-next.2
+ - @backstage/catalog-model@1.4.4-next.0
+ - @backstage/errors@1.2.3
+ - @backstage/types@1.1.1
+ - @backstage/plugin-tech-insights-common@0.2.12
+
+## @backstage/plugin-tech-insights-backend@0.5.24-next.2
+
+### Patch Changes
+
+- 7201af3: Add support for the new backend system.
+
+ A new backend plugin for the tech-insights backend
+ was added and exported as `default`.
+
+ You can use it with the new backend system like
+
+ ```ts title="packages/backend/src/index.ts"
+ backend.add(import('@backstage/plugin-tech-insights-backend'));
+ ```
+
+- 9aac2b0: Use `--cwd` as the first `yarn` argument
+
+- 341c2a2: Move `FactRetrieverRegistry` and `PersistenceContext` to `@backstage/plugin-tech-insights-node`.
+
+ Original exports are marked as deprecated and re-export the moved types.
+
+ Please replace uses like
+
+ ```ts
+ import {
+ FactRetrieverRegistry,
+ PersistenceContext,
+ } from '@backstage/plugin-tech-insights-backend';
+ ```
+
+ with
+
+ ```ts
+ import {
+ FactRetrieverRegistry,
+ PersistenceContext,
+ } from '@backstage/plugin-tech-insights-node';
+ ```
+
+- Updated dependencies
+ - @backstage/backend-common@0.21.0-next.2
+ - @backstage/plugin-tech-insights-node@0.4.16-next.2
+ - @backstage/backend-plugin-api@0.6.10-next.2
+ - @backstage/backend-tasks@0.5.15-next.2
+ - @backstage/config@1.1.1
+ - @backstage/catalog-client@1.6.0-next.1
+ - @backstage/catalog-model@1.4.4-next.0
+ - @backstage/errors@1.2.3
+ - @backstage/types@1.1.1
+ - @backstage/plugin-tech-insights-common@0.2.12
+
+## @backstage/plugin-tech-insights-backend-module-jsonfc@0.1.42-next.2
+
+### Patch Changes
+
+- 25cfb76: Add support for the new backend system.
+
+ A new backend module for the tech-insights backend
+ was added and exported as `default`.
+
+ The module will register the `JsonRulesEngineFactCheckerFactory`
+ as `FactCheckerFactory`, loading checks from the config.
+
+ You can use it with the new backend system like
+
+ ```ts title="packages/backend/src/index.ts"
+ backend.add(import('@backstage/plugin-tech-insights-backend-module-jsonfc'));
+ ```
+
+- bc72782: Support loading `TechInsightsJsonRuleCheck` instances from config.
+
+ Uses the check `id` as key.
+
+ Example:
+
+ ```yaml title="app-config.yaml"
+ techInsights:
+ factChecker:
+ checks:
+ groupOwnerCheck:
+ type: json-rules-engine
+ name: Group Owner Check
+ description: Verifies that a group has been set as the spec.owner for this entity
+ factIds:
+ - entityOwnershipFactRetriever
+ rule:
+ conditions:
+ all:
+ - fact: hasGroupOwner
+ operator: equal
+ value: true
+ ```
+
+- 9aac2b0: Use `--cwd` as the first `yarn` argument
+
+- Updated dependencies
+ - @backstage/backend-common@0.21.0-next.2
+ - @backstage/plugin-tech-insights-node@0.4.16-next.2
+ - @backstage/backend-plugin-api@0.6.10-next.2
+ - @backstage/config@1.1.1
+ - @backstage/errors@1.2.3
+ - @backstage/types@1.1.1
+ - @backstage/plugin-tech-insights-common@0.2.12
+
+## @backstage/plugin-tech-insights-node@0.4.16-next.2
+
+### Patch Changes
+
+- 7201af3: Add support for the new backend system.
+
+ A new backend plugin for the tech-insights backend
+ was added and exported as `default`.
+
+ You can use it with the new backend system like
+
+ ```ts title="packages/backend/src/index.ts"
+ backend.add(import('@backstage/plugin-tech-insights-backend'));
+ ```
+
+- 341c2a2: Move `FactRetrieverRegistry` and `PersistenceContext` to `@backstage/plugin-tech-insights-node`.
+
+ Original exports are marked as deprecated and re-export the moved types.
+
+ Please replace uses like
+
+ ```ts
+ import {
+ FactRetrieverRegistry,
+ PersistenceContext,
+ } from '@backstage/plugin-tech-insights-backend';
+ ```
+
+ with
+
+ ```ts
+ import {
+ FactRetrieverRegistry,
+ PersistenceContext,
+ } from '@backstage/plugin-tech-insights-node';
+ ```
+
+- Updated dependencies
+ - @backstage/backend-common@0.21.0-next.2
+ - @backstage/backend-plugin-api@0.6.10-next.2
+ - @backstage/config@1.1.1
+ - @backstage/types@1.1.1
+ - @backstage/plugin-tech-insights-common@0.2.12
+
+## @backstage/plugin-tech-radar@0.6.13-next.2
+
+### Patch Changes
+
+- 9aac2b0: Use `--cwd` as the first `yarn` argument
+- 8fe56a8: Widen `@types/react` dependency range to include version 18.
+- Updated dependencies
+ - @backstage/core-components@0.14.0-next.1
+ - @backstage/core-plugin-api@1.9.0-next.1
+ - @backstage/frontend-plugin-api@0.6.0-next.2
+ - @backstage/core-compat-api@0.2.0-next.2
+
+## @backstage/plugin-techdocs@1.10.0-next.2
+
+### Patch Changes
+
+- 8fe56a8: Widen `@types/react` dependency range to include version 18.
+- Updated dependencies
+ - @backstage/core-components@0.14.0-next.1
+ - @backstage/plugin-techdocs-react@1.1.16-next.1
+ - @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/plugin-search-react@1.7.6-next.2
+ - @backstage/theme@0.5.1-next.0
+ - @backstage/integration-react@1.1.24-next.1
+ - @backstage/core-compat-api@0.2.0-next.2
+ - @backstage/config@1.1.1
+ - @backstage/catalog-model@1.4.4-next.0
+ - @backstage/errors@1.2.3
+ - @backstage/integration@1.9.0-next.0
+ - @backstage/plugin-search-common@1.2.10
+
+## @backstage/plugin-techdocs-addons-test-utils@1.0.27-next.2
+
+### Patch Changes
+
+- 8fe56a8: Widen `@types/react` dependency range to include version 18.
+- Updated dependencies
+ - @backstage/plugin-techdocs-react@1.1.16-next.1
+ - @backstage/core-app-api@1.12.0-next.1
+ - @backstage/plugin-catalog@1.17.0-next.2
+ - @backstage/core-plugin-api@1.9.0-next.1
+ - @backstage/plugin-catalog-react@1.10.0-next.2
+ - @backstage/plugin-search-react@1.7.6-next.2
+ - @backstage/plugin-techdocs@1.10.0-next.2
+ - @backstage/test-utils@1.5.0-next.2
+ - @backstage/integration-react@1.1.24-next.1
+
+## @backstage/plugin-techdocs-backend@1.9.3-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/backend-common@0.21.0-next.2
+ - @backstage/plugin-search-backend-module-techdocs@0.1.14-next.2
+ - @backstage/backend-plugin-api@0.6.10-next.2
+ - @backstage/plugin-techdocs-node@1.11.2-next.2
+ - @backstage/config@1.1.1
+ - @backstage/catalog-client@1.6.0-next.1
+ - @backstage/catalog-model@1.4.4-next.0
+ - @backstage/errors@1.2.3
+ - @backstage/integration@1.9.0-next.0
+ - @backstage/plugin-catalog-common@1.0.21-next.0
+ - @backstage/plugin-permission-common@0.7.12
+
+## @backstage/plugin-techdocs-module-addons-contrib@1.1.5-next.2
+
+### Patch Changes
+
+- ab9c9eb: Fixed the value label text color in dark mode for the TextSize addon.
+- Updated dependencies
+ - @backstage/core-components@0.14.0-next.1
+ - @backstage/plugin-techdocs-react@1.1.16-next.1
+ - @backstage/core-plugin-api@1.9.0-next.1
+ - @backstage/integration-react@1.1.24-next.1
+ - @backstage/integration@1.9.0-next.0
+
+## @backstage/plugin-techdocs-node@1.11.2-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/backend-common@0.21.0-next.2
+ - @backstage/backend-plugin-api@0.6.10-next.2
+ - @backstage/config@1.1.1
+ - @backstage/integration-aws-node@0.1.8
+ - @backstage/catalog-model@1.4.4-next.0
+ - @backstage/errors@1.2.3
+ - @backstage/integration@1.9.0-next.0
+ - @backstage/plugin-search-common@1.2.10
+
+## @backstage/plugin-techdocs-react@1.1.16-next.1
+
+### Patch Changes
+
+- 9aac2b0: Use `--cwd` as the first `yarn` argument
+- 8fe56a8: Widen `@types/react` dependency range to include version 18.
+- Updated dependencies
+ - @backstage/core-components@0.14.0-next.1
+ - @backstage/core-plugin-api@1.9.0-next.1
+ - @backstage/config@1.1.1
+ - @backstage/catalog-model@1.4.4-next.0
+ - @backstage/version-bridge@1.0.7
+
+## @backstage/plugin-todo@0.2.34-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/core-components@0.14.0-next.1
+ - @backstage/core-plugin-api@1.9.0-next.1
+ - @backstage/plugin-catalog-react@1.10.0-next.2
+ - @backstage/catalog-model@1.4.4-next.0
+ - @backstage/errors@1.2.3
+
+## @backstage/plugin-todo-backend@0.3.8-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/repo-tools@0.6.0-next.2
+ - @backstage/backend-common@0.21.0-next.2
+ - @backstage/backend-plugin-api@0.6.10-next.2
+ - @backstage/backend-openapi-utils@0.1.3-next.2
+ - @backstage/plugin-catalog-node@1.6.2-next.2
+ - @backstage/config@1.1.1
+ - @backstage/catalog-client@1.6.0-next.1
+ - @backstage/catalog-model@1.4.4-next.0
+ - @backstage/errors@1.2.3
+ - @backstage/integration@1.9.0-next.0
+
+## @backstage/plugin-user-settings@0.8.1-next.2
+
+### Patch Changes
+
+- 8fe56a8: Widen `@types/react` dependency range to include version 18.
+- d5b14a0: conditionally rendering the user name and email in user settings 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/frontend-plugin-api@0.6.0-next.2
+ - @backstage/plugin-catalog-react@1.10.0-next.2
+ - @backstage/theme@0.5.1-next.0
+ - @backstage/core-compat-api@0.2.0-next.2
+ - @backstage/errors@1.2.3
+ - @backstage/types@1.1.1
+
+## @backstage/plugin-user-settings-backend@0.2.9-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-auth-node@0.4.4-next.2
+ - @backstage/config@1.1.1
+ - @backstage/errors@1.2.3
+ - @backstage/types@1.1.1
+
+## @backstage/plugin-vault@0.1.25-next.2
+
+### Patch Changes
+
+- 9aac2b0: Use `--cwd` as the first `yarn` argument
+- 8fe56a8: Widen `@types/react` dependency range to include version 18.
+- Updated dependencies
+ - @backstage/core-components@0.14.0-next.1
+ - @backstage/core-plugin-api@1.9.0-next.1
+ - @backstage/plugin-catalog-react@1.10.0-next.2
+ - @backstage/catalog-model@1.4.4-next.0
+ - @backstage/errors@1.2.3
+
+## @backstage/plugin-vault-backend@0.4.3-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-vault-node@0.1.3-next.2
+ - @backstage/config@1.1.1
+ - @backstage/errors@1.2.3
+
+## @backstage/plugin-vault-node@0.1.3-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/backend-plugin-api@0.6.10-next.2
+
+## @backstage/plugin-xcmetrics@0.2.48-next.1
+
+### Patch Changes
+
+- 9aac2b0: Use `--cwd` as the first `yarn` argument
+- 8fe56a8: Widen `@types/react` dependency range to include version 18.
+- Updated dependencies
+ - @backstage/core-components@0.14.0-next.1
+ - @backstage/core-plugin-api@1.9.0-next.1
+ - @backstage/errors@1.2.3
+
+## 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
+
+## 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
+
+## 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
+
+## example-backend@0.2.92-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/plugin-scaffolder-backend@1.21.0-next.2
+ - @backstage/plugin-auth-backend@0.21.0-next.2
+ - @backstage/plugin-tech-insights-backend-module-jsonfc@0.1.42-next.2
+ - @backstage/backend-common@0.21.0-next.2
+ - @backstage/plugin-signals-backend@0.0.1-next.2
+ - @backstage/plugin-signals-node@0.0.1-next.2
+ - @backstage/plugin-kubernetes-backend@0.15.0-next.2
+ - @backstage/plugin-tech-insights-backend@0.5.24-next.2
+ - @backstage/plugin-tech-insights-node@0.4.16-next.2
+ - @backstage/plugin-scaffolder-backend-module-confluence-to-markdown@0.2.11-next.2
+ - @backstage/plugin-catalog-backend-module-unprocessed@0.3.7-next.2
+ - @backstage/plugin-scaffolder-backend-module-rails@0.4.27-next.2
+ - @backstage/plugin-search-backend-module-techdocs@0.1.14-next.2
+ - @backstage/plugin-search-backend-module-catalog@0.1.14-next.2
+ - @backstage/plugin-search-backend-module-explore@0.1.14-next.2
+ - @backstage/plugin-entity-feedback-backend@0.2.7-next.2
+ - @backstage/plugin-code-coverage-backend@0.2.24-next.2
+ - @backstage/plugin-azure-devops-backend@0.5.2-next.2
+ - @backstage/plugin-lighthouse-backend@0.4.2-next.2
+ - @backstage/plugin-devtools-backend@0.2.7-next.2
+ - @backstage/plugin-linguist-backend@0.5.7-next.2
+ - @backstage/plugin-playlist-backend@0.3.14-next.2
+ - @backstage/plugin-catalog-backend@1.17.0-next.2
+ - @backstage/plugin-explore-backend@0.0.20-next.2
+ - @backstage/plugin-jenkins-backend@0.3.4-next.2
+ - @backstage/plugin-rollbar-backend@0.1.55-next.2
+ - @backstage/backend-tasks@0.5.15-next.2
+ - @backstage/plugin-badges-backend@0.3.7-next.2
+ - @backstage/plugin-events-backend@0.2.19-next.2
+ - @backstage/plugin-nomad-backend@0.1.12-next.2
+ - @backstage/plugin-adr-backend@0.4.7-next.2
+ - @backstage/plugin-app-backend@0.3.58-next.2
+ - @backstage/plugin-auth-node@0.4.4-next.2
+ - example-app@0.2.92-next.2
+ - @backstage/plugin-todo-backend@0.3.8-next.2
+ - @backstage/plugin-kafka-backend@0.3.8-next.2
+ - @backstage/plugin-permission-backend@0.5.33-next.2
+ - @backstage/plugin-permission-node@0.7.21-next.2
+ - @backstage/plugin-proxy-backend@0.4.8-next.2
+ - @backstage/plugin-search-backend@1.5.0-next.2
+ - @backstage/plugin-search-backend-module-elasticsearch@1.3.13-next.2
+ - @backstage/plugin-search-backend-module-pg@0.5.19-next.2
+ - @backstage/plugin-search-backend-node@1.2.14-next.2
+ - @backstage/plugin-techdocs-backend@1.9.3-next.2
+ - @backstage/plugin-catalog-backend-module-scaffolder-entity-model@0.1.7-next.2
+ - @backstage/plugin-catalog-node@1.6.2-next.2
+ - @backstage/plugin-events-node@0.2.19-next.2
+ - @backstage/config@1.1.1
+ - @backstage/catalog-client@1.6.0-next.1
+ - @backstage/catalog-model@1.4.4-next.0
+ - @backstage/integration@1.9.0-next.0
+ - @backstage/plugin-azure-sites-common@0.1.2-next.0
+ - @backstage/plugin-permission-common@0.7.12
+ - @backstage/plugin-search-common@1.2.10
+
+## example-backend-next@0.0.20-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/plugin-scaffolder-backend@1.21.0-next.2
+ - @backstage/plugin-signals-backend@0.0.1-next.2
+ - @backstage/plugin-kubernetes-backend@0.15.0-next.2
+ - @backstage/plugin-catalog-backend-module-unprocessed@0.3.7-next.2
+ - @backstage/plugin-catalog-backend-module-openapi@0.1.27-next.2
+ - @backstage/plugin-search-backend-module-techdocs@0.1.14-next.2
+ - @backstage/plugin-search-backend-module-catalog@0.1.14-next.2
+ - @backstage/plugin-search-backend-module-explore@0.1.14-next.2
+ - @backstage/plugin-entity-feedback-backend@0.2.7-next.2
+ - @backstage/plugin-azure-devops-backend@0.5.2-next.2
+ - @backstage/backend-plugin-api@0.6.10-next.2
+ - @backstage/plugin-lighthouse-backend@0.4.2-next.2
+ - @backstage/backend-defaults@0.2.10-next.2
+ - @backstage/plugin-sonarqube-backend@0.2.12-next.2
+ - @backstage/plugin-devtools-backend@0.2.7-next.2
+ - @backstage/plugin-linguist-backend@0.5.7-next.2
+ - @backstage/plugin-playlist-backend@0.3.14-next.2
+ - @backstage/plugin-catalog-backend@1.17.0-next.2
+ - @backstage/plugin-jenkins-backend@0.3.4-next.2
+ - @backstage/backend-tasks@0.5.15-next.2
+ - @backstage/plugin-badges-backend@0.3.7-next.2
+ - @backstage/plugin-nomad-backend@0.1.12-next.2
+ - @backstage/plugin-adr-backend@0.4.7-next.2
+ - @backstage/plugin-app-backend@0.3.58-next.2
+ - @backstage/plugin-auth-node@0.4.4-next.2
+ - @backstage/plugin-notifications-backend@0.0.1-next.0
+ - @backstage/plugin-todo-backend@0.3.8-next.2
+ - @backstage/plugin-catalog-backend-module-backstage-openapi@0.1.3-next.2
+ - @backstage/plugin-permission-backend@0.5.33-next.2
+ - @backstage/plugin-permission-node@0.7.21-next.2
+ - @backstage/plugin-proxy-backend@0.4.8-next.2
+ - @backstage/plugin-search-backend@1.5.0-next.2
+ - @backstage/plugin-search-backend-node@1.2.14-next.2
+ - @backstage/plugin-techdocs-backend@1.9.3-next.2
+ - @backstage/plugin-catalog-backend-module-scaffolder-entity-model@0.1.7-next.2
+ - @backstage/plugin-permission-backend-module-allow-all-policy@0.1.7-next.2
+ - @backstage/plugin-permission-common@0.7.12
+
+## e2e-test@0.2.12-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/create-app@0.5.11-next.2
+ - @backstage/cli-common@0.1.13
+ - @backstage/errors@1.2.3
+
+## techdocs-cli-embedded-app@0.2.91-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/core-components@0.14.0-next.1
+ - @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-catalog@1.17.0-next.2
+ - @backstage/core-plugin-api@1.9.0-next.1
+ - @backstage/plugin-techdocs@1.10.0-next.2
+ - @backstage/test-utils@1.5.0-next.2
+ - @backstage/theme@0.5.1-next.0
+ - @backstage/cli@0.25.2-next.2
+ - @backstage/integration-react@1.1.24-next.1
+ - @backstage/config@1.1.1
+ - @backstage/catalog-model@1.4.4-next.0
+
+## @internal/plugin-todo-list@1.0.22-next.1
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/core-components@0.14.0-next.1
+ - @backstage/core-plugin-api@1.9.0-next.1
+
+## @internal/plugin-todo-list-backend@1.0.22-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-auth-node@0.4.4-next.2
+ - @backstage/errors@1.2.3
diff --git a/docs/tutorials/configuring-plugin-databases.md b/docs/tutorials/configuring-plugin-databases.md
index 8cd5ce99a9..528d2c6325 100644
--- a/docs/tutorials/configuring-plugin-databases.md
+++ b/docs/tutorials/configuring-plugin-databases.md
@@ -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
diff --git a/docs/tutorials/migrate-to-mui5.md b/docs/tutorials/migrate-to-mui5.md
index aaf8cff7f5..c65abbc680 100644
--- a/docs/tutorials/migrate-to-mui5.md
+++ b/docs/tutorials/migrate-to-mui5.md
@@ -19,7 +19,7 @@ By default, the `UnifiedThemeProvider` is already used. If you add a custom them
themes: [
{
// ...
- provider: ({ children }) => (
+ Provider: ({ children }) => (
- .
- {children} .
- /packages/app`) with:
```bash
# From your Backstage root directory
-yarn add --cwd packages/app @backstage/plugin-
+yarn --cwd packages/app add @backstage/plugin-
```
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.
diff --git a/microsite/data/on-demand/20211117-1.yaml b/microsite/data/on-demand/20211117-1.yaml
deleted file mode 100644
index 21410fc85f..0000000000
--- a/microsite/data/on-demand/20211117-1.yaml
+++ /dev/null
@@ -1,7 +0,0 @@
----
-title: Community Sessions
-date: November 17, 2021
-category: Meetup
-description: At this month’s adopters session, get the scoop on Spotify’s plan for paid plugins, a first look at Box’s DevPortal, and answers to big questions, like “How will I know if Backstage will work at a large company like mine?”
-youtubeUrl: https://youtu.be/apCDT3_DmFk
-youtubeImgUrl: https://i1.ytimg.com/vi/apCDT3_DmFk/mqdefault.jpg
diff --git a/microsite/data/on-demand/20211118-1.yaml b/microsite/data/on-demand/20211118-1.yaml
deleted file mode 100644
index 754344a62e..0000000000
--- a/microsite/data/on-demand/20211118-1.yaml
+++ /dev/null
@@ -1,7 +0,0 @@
----
-title: Community Sessions
-date: November 18, 2021
-category: Meetup
-description: In the contributors track for this month’s community session, hear about upcoming deprecations, the fruits of Hacktoberfest, the future of both the Kubernetes plugin and the Tech Insights plugin, tips on contributing, and more.
-youtubeUrl: https://youtu.be/n1OWGwYAOiI
-youtubeImgUrl: https://i1.ytimg.com/vi/n1OWGwYAOiI/mqdefault.jpg
diff --git a/microsite/data/on-demand/20211215-1.yaml b/microsite/data/on-demand/20211215-1.yaml
deleted file mode 100644
index ce51fe3a9c..0000000000
--- a/microsite/data/on-demand/20211215-1.yaml
+++ /dev/null
@@ -1,7 +0,0 @@
----
-title: Community Sessions
-date: December 15, 2021
-category: Meetup
-description: At our final adopters session of 2021, the community received a grab bag of end-of-year treats, including eye-catching infographics, a presentation from finance startup Brex about their path to adopting Backstage, and tips on branding your Backstage portal. Plus, get your official Backstage Zoom background. But first up, a quick look back at the year that was.
-youtubeUrl: https://youtu.be/0QMQYSTKAx0
-youtubeImgUrl: https://i1.ytimg.com/vi/0QMQYSTKAx0/mqdefault.jpg
diff --git a/microsite/data/on-demand/20211216-1.yaml b/microsite/data/on-demand/20211216-1.yaml
deleted file mode 100644
index 9600a5f13b..0000000000
--- a/microsite/data/on-demand/20211216-1.yaml
+++ /dev/null
@@ -1,7 +0,0 @@
----
-title: Community Sessions
-date: December 16, 2021
-category: Meetup
-description: At our final contributors session of 2021, see how the new Backstage Upgrade Helper works and enjoy smoother upgrades, hear updates from the maintainers, and meet our contributor of the month. As in the adopters session, first we celebrate the year’s milestones and share a few resources you can use to spread the word about Backstage.
-youtubeUrl: https://youtu.be/nYjI2j-lWEM
-youtubeImgUrl: https://i1.ytimg.com/vi/nYjI2j-lWEM/mqdefault.jpg
diff --git a/microsite/data/on-demand/20220216-1.yaml b/microsite/data/on-demand/20220216-1.yaml
deleted file mode 100644
index 1fc7371345..0000000000
--- a/microsite/data/on-demand/20220216-1.yaml
+++ /dev/null
@@ -1,7 +0,0 @@
----
-title: Community Sessions
-date: February 16, 2022
-category: Meetup
-description: This community session marks one year of Backstage community sessions! In this session, we celebrate one year of the Backstage community, hear from Patrik on stabilizing core APIs, learn more about Homepage Templates, find hidden info about your catalog entities, and Q&A.
-youtubeUrl: https://youtu.be/evf_LV0KzIk
-youtubeImgUrl: https://i1.ytimg.com/vi/evf_LV0KzIk/mqdefault.jpg
diff --git a/microsite/data/on-demand/20220223-1.yaml b/microsite/data/on-demand/20220223-1.yaml
deleted file mode 100644
index 6efc9fe22c..0000000000
--- a/microsite/data/on-demand/20220223-1.yaml
+++ /dev/null
@@ -1,7 +0,0 @@
----
-title: Community Sessions
-date: February 23, 2022
-category: Meetup
-description: Community Sessions Anniversary , SWAG opportunity❗, TechDocs add-on framework, URL Reader demo 👨💻, Q&A
-youtubeUrl: https://youtu.be/Buu_KWdIFwU
-youtubeImgUrl: https://i1.ytimg.com/vi/Buu_KWdIFwU/mqdefault.jpg
diff --git a/microsite/data/on-demand/20220316-1.yaml b/microsite/data/on-demand/20220316-1.yaml
deleted file mode 100644
index b4ecc1f696..0000000000
--- a/microsite/data/on-demand/20220316-1.yaml
+++ /dev/null
@@ -1,9 +0,0 @@
----
-title: Adopter Community Sessions
-date: March 16, 2022
-category: Meetup
-description: In this community session, we celebrate Backstage’s 2nd birthday and a few other milestones that Backstage reached in March! The amazing Suzanne Daniels also put together a panel from some of our community members to discuss all things developer experience!
-youtubeUrl: https://youtu.be/2s98-sxJT1c
-youtubeImgUrl: https://i1.ytimg.com/vi/2s98-sxJT1c/mqdefault.jpg
-rsvpUrl: https://calendar.google.com/calendar/embed?src=c_qup9gbhn9sqpuao6trttd8mk5s@group.calendar.google.com
-eventUrl: https://github.com/backstage/community/issues
diff --git a/microsite/data/on-demand/20220323-1.yaml b/microsite/data/on-demand/20220323-1.yaml
deleted file mode 100644
index 2f198775e8..0000000000
--- a/microsite/data/on-demand/20220323-1.yaml
+++ /dev/null
@@ -1,9 +0,0 @@
----
-title: Contributor Community Sessions
-date: March 23, 2022
-category: Meetup
-description: In this Community Session, we review the recent milestones our Backstage community hit, chat with Djamaile Rahamat, our contributor spotlight, and watch three demos ranging from new plugins to test environments.
-youtubeUrl: https://youtu.be/BAzxljI765U
-youtubeImgUrl: https://i1.ytimg.com/vi/BAzxljI765U/mqdefault.jpg
-rsvpUrl: https://calendar.google.com/calendar/embed?src=c_qup9gbhn9sqpuao6trttd8mk5s@group.calendar.google.com
-eventUrl: https://github.com/backstage/community/issues
diff --git a/microsite/data/on-demand/20220420-1.yaml b/microsite/data/on-demand/20220420-1.yaml
deleted file mode 100644
index 96560ec436..0000000000
--- a/microsite/data/on-demand/20220420-1.yaml
+++ /dev/null
@@ -1,9 +0,0 @@
----
-title: Adopters Community Sessions
-date: April 20, 2022
-category: Meetup
-description: Adopters Community Session ✨. It's the monthly meetup where we all come together to listen to the latest maintainer updates, learn from each other about adopting, share exciting new demos or discuss any relevant topic like developer effectiveness, developer experience, developer portals, etc.
-youtubeUrl: https://youtu.be/mFi_X58igzk
-youtubeImgUrl: https://backstage.io/img/b-sessions.png
-rsvpUrl: https://calendar.google.com/calendar/embed?src=c_qup9gbhn9sqpuao6trttd8mk5s@group.calendar.google.com
-eventUrl: https://github.com/backstage/community/issues/44
diff --git a/microsite/data/on-demand/20220427-1.yaml b/microsite/data/on-demand/20220427-1.yaml
deleted file mode 100644
index 80ec8eae00..0000000000
--- a/microsite/data/on-demand/20220427-1.yaml
+++ /dev/null
@@ -1,9 +0,0 @@
----
-title: Contributor Community Sessions
-date: April 27, 2022
-category: Meetup
-description: Join the maintainers and contributors for the Contributor Community Sessions
-youtubeUrl: https://youtu.be/evf_LV0KzIk
-youtubeImgUrl: https://backstage.io/img/b-sessions.png
-rsvpUrl: https://calendar.google.com/calendar/embed?src=c_qup9gbhn9sqpuao6trttd8mk5s@group.calendar.google.com
-eventUrl: https://github.com/backstage/community/issues/44
diff --git a/microsite/data/on-demand/20220518-1.yaml b/microsite/data/on-demand/20220518-1.yaml
deleted file mode 100644
index e8d70df2d9..0000000000
--- a/microsite/data/on-demand/20220518-1.yaml
+++ /dev/null
@@ -1,9 +0,0 @@
----
-title: Adopters Community Sessions
-date: May 18, 2022
-category: Meetup
-description: Adopters Community Session ✨. It's the monthly meetup where we all come together to listen to the latest maintainer updates, learn from each other about adopting, share exciting new demos or discuss any relevant topic like developer effectiveness, developer experience, developer portals, etc.
-youtubeUrl: https://youtu.be/dEd1fl3wRvo
-youtubeImgUrl: https://backstage.io/img/b-sessions.png
-rsvpUrl: https://calendar.google.com/calendar/embed?src=c_qup9gbhn9sqpuao6trttd8mk5s@group.calendar.google.com
-eventUrl: https://github.com/backstage/community/issues/46
diff --git a/microsite/data/on-demand/20220525-1.yaml b/microsite/data/on-demand/20220525-1.yaml
deleted file mode 100644
index f9a3f87a8a..0000000000
--- a/microsite/data/on-demand/20220525-1.yaml
+++ /dev/null
@@ -1,9 +0,0 @@
----
-title: Contributor Community Sessions
-date: May 25, 2022
-category: Meetup
-description: Join the maintainers and contributors for the Contributor Community Sessions
-youtubeUrl: https://youtu.be/neNipVE5ffY
-youtubeImgUrl: https://backstage.io/img/b-sessions.png
-rsvpUrl: https://calendar.google.com/calendar/embed?src=c_qup9gbhn9sqpuao6trttd8mk5s@group.calendar.google.com
-eventUrl: https://github.com/backstage/community/issues/46
diff --git a/microsite/data/on-demand/20220615-1.yaml b/microsite/data/on-demand/20220615-1.yaml
deleted file mode 100644
index fb296dd6ce..0000000000
--- a/microsite/data/on-demand/20220615-1.yaml
+++ /dev/null
@@ -1,9 +0,0 @@
----
-title: Adopters Community Sessions
-date: June 15, 2022
-category: Meetup
-description: Adopters Community Session ✨. It's the monthly meetup where we all come together to listen to the latest maintainer updates, learn from each other about adopting, share exciting new demos or discuss any relevant topic like developer effectiveness, developer experience, developer portals, etc.
-youtubeUrl: https://youtu.be/aKZnjnE5Wy8
-youtubeImgUrl: https://backstage.io/img/b-sessions.png
-rsvpUrl: https://calendar.google.com/calendar/embed?src=c_qup9gbhn9sqpuao6trttd8mk5s@group.calendar.google.com
-eventUrl: https://github.com/backstage/community/issues/49
diff --git a/microsite/data/on-demand/20220622-1.yaml b/microsite/data/on-demand/20220622-1.yaml
deleted file mode 100644
index 27634609cb..0000000000
--- a/microsite/data/on-demand/20220622-1.yaml
+++ /dev/null
@@ -1,9 +0,0 @@
----
-title: Contributor Community Sessions
-date: June 22, 2022
-category: Meetup
-description: Join the maintainers and contributors for the Contributor Community Sessions
-youtubeUrl: https://youtu.be/E-jWqWXBxUY
-youtubeImgUrl: https://backstage.io/img/b-sessions.png
-rsvpUrl: https://calendar.google.com/calendar/embed?src=c_qup9gbhn9sqpuao6trttd8mk5s@group.calendar.google.com
-eventUrl: https://github.com/backstage/community/issues/49
diff --git a/microsite/data/on-demand/20220720-1.yaml b/microsite/data/on-demand/20220720-1.yaml
deleted file mode 100644
index a7c0386a56..0000000000
--- a/microsite/data/on-demand/20220720-1.yaml
+++ /dev/null
@@ -1,9 +0,0 @@
----
-title: Adopters Community Sessions
-date: July 20, 2022
-category: Meetup
-description: Adopters Community Session ✨. It's the monthly meetup where we all come together to listen to the latest maintainer updates, learn from each other about adopting, share exciting new demos or discuss any relevant topic like developer effectiveness, developer experience, developer portals, etc.
-youtubeUrl: https://youtu.be/4VFNlPxWcx8
-youtubeImgUrl: https://backstage.io/img/b-sessions.png
-rsvpUrl: https://calendar.google.com/calendar/embed?src=c_qup9gbhn9sqpuao6trttd8mk5s@group.calendar.google.com
-eventUrl: https://github.com/backstage/community/issues/52
diff --git a/microsite/data/on-demand/20220727-1.yaml b/microsite/data/on-demand/20220727-1.yaml
deleted file mode 100644
index b25b2e0789..0000000000
--- a/microsite/data/on-demand/20220727-1.yaml
+++ /dev/null
@@ -1,9 +0,0 @@
----
-title: Contributor Community Sessions
-date: July 27, 2022
-category: Meetup
-description: Join the maintainers and contributors for the Contributor Community Sessions
-youtubeUrl: https://youtu.be/pNLLrNN_hkE
-youtubeImgUrl: https://backstage.io/img/b-sessions.png
-rsvpUrl: https://calendar.google.com/calendar/embed?src=c_qup9gbhn9sqpuao6trttd8mk5s@group.calendar.google.com
-eventUrl: https://github.com/backstage/community/issues/52
diff --git a/microsite/data/on-demand/20220817-1.yaml b/microsite/data/on-demand/20220817-1.yaml
deleted file mode 100644
index f67c8cf4cd..0000000000
--- a/microsite/data/on-demand/20220817-1.yaml
+++ /dev/null
@@ -1,7 +0,0 @@
----
-title: Adopters Community Sessions
-date: August 17, 2022
-category: Meetup
-description: Adopters Community Session ✨. It's the monthly meetup where we all come together to listen to the latest maintainer updates, learn from each other about adopting, share exciting new demos or discuss any relevant topic like developer effectiveness, developer experience, developer portals, etc.
-youtubeUrl: https://youtu.be/qYnvc8ge1kg
-youtubeImgUrl: https://backstage.io/img/b-sessions.png
diff --git a/microsite/data/on-demand/20220824-1.yaml b/microsite/data/on-demand/20220824-1.yaml
deleted file mode 100644
index a2387a8aad..0000000000
--- a/microsite/data/on-demand/20220824-1.yaml
+++ /dev/null
@@ -1,7 +0,0 @@
----
-title: Contributor Community Sessions
-date: August 24, 2022
-category: Meetup
-description: Join the maintainers and contributors for the Contributor Community Sessions
-youtubeUrl: https://youtu.be/8ydEFFiuHAc
-youtubeImgUrl: https://backstage.io/img/b-sessions.png
diff --git a/microsite/data/on-demand/20220921-1.yaml b/microsite/data/on-demand/20220921-1.yaml
deleted file mode 100644
index fe3dda08c0..0000000000
--- a/microsite/data/on-demand/20220921-1.yaml
+++ /dev/null
@@ -1,7 +0,0 @@
----
-title: Adopters Community Sessions
-date: September 21, 2022
-category: Meetup
-description: Adopters Community Session ✨. It's the monthly meetup where we all come together to listen to the latest maintainer updates, learn from each other about adopting, share exciting new demos or discuss any relevant topic like developer effectiveness, developer experience, developer portals, etc.
-youtubeUrl: https://youtu.be/K44RQAVWWnY
-youtubeImgUrl: https://backstage.io/img/b-sessions.png
diff --git a/microsite/data/on-demand/20220928-1.yaml b/microsite/data/on-demand/20220928-1.yaml
deleted file mode 100644
index 31ae752e3a..0000000000
--- a/microsite/data/on-demand/20220928-1.yaml
+++ /dev/null
@@ -1,7 +0,0 @@
----
-title: Contributor Community Sessions
-date: September 28, 2022
-category: Meetup
-description: Join the maintainers and contributors for the Contributor Community Sessions
-youtubeUrl: https://youtu.be/jmNT5x3mKaQ
-youtubeImgUrl: https://backstage.io/img/b-sessions.png
diff --git a/microsite/data/plugins/api-spectral-linter.yaml b/microsite/data/plugins/api-spectral-linter.yaml
index 292279e324..5f1682c71b 100644
--- a/microsite/data/plugins/api-spectral-linter.yaml
+++ b/microsite/data/plugins/api-spectral-linter.yaml
@@ -4,7 +4,7 @@ author: dweber019
authorUrl: https://github.com/dweber019
category: Linting
description: API Spectral Linter is a quality assurance tool that checks the compliance of API's specifications Spectral rule sets.
-documentation: https://github.com/dweber019/backstage-plugin-api-docs-spectral-linter
-iconUrl: https://raw.githubusercontent.com/dweber019/backstage-plugin-api-docs-spectral-linter/main/plugins/api-docs-spectral-linter/docs/pluginIcon.png
+documentation: https://github.com/dweber019/backstage-plugins/tree/main/plugins/api-docs-spectral-linter
+iconUrl: https://raw.githubusercontent.com/dweber019/backstage-plugins/main/plugins/api-docs-spectral-linter/docs/pluginIcon.png
npmPackageName: '@dweber019/backstage-plugin-api-docs-spectral-linter'
addedDate: '2023-03-27'
diff --git a/microsite/data/plugins/api-wsdl.yaml b/microsite/data/plugins/api-wsdl.yaml
index 6523531f1d..219227c509 100644
--- a/microsite/data/plugins/api-wsdl.yaml
+++ b/microsite/data/plugins/api-wsdl.yaml
@@ -4,7 +4,7 @@ author: dweber019
authorUrl: https://github.com/dweber019
category: Discovery
description: An API docs extension to render WSDL / SOAP web services human readable.
-documentation: https://github.com/dweber019/backstage-plugin-api-docs-module-wsdl
-iconUrl: https://raw.githubusercontent.com/dweber019/backstage-plugin-api-docs-module-wsdl/main/docs/logo.png
+documentation: https://github.com/dweber019/backstage-plugins/tree/main/plugins/api-docs-module-wsdl
+iconUrl: https://raw.githubusercontent.com/dweber019/backstage-plugins/main/plugins/api-docs-module-wsdl/docs/logo.png
npmPackageName: '@dweber019/backstage-plugin-api-docs-module-wsdl'
addedDate: '2023-12-22'
diff --git a/microsite/data/plugins/end-of-life.yaml b/microsite/data/plugins/end-of-life.yaml
index d54a6bc5f9..ddf4b26341 100644
--- a/microsite/data/plugins/end-of-life.yaml
+++ b/microsite/data/plugins/end-of-life.yaml
@@ -4,7 +4,7 @@ author: dweber019
authorUrl: https://github.com/dweber019
category: Quality
description: Display end of life data for entities from endoflife.data
-documentation: https://github.com/dweber019/backstage-plugin-endoflife
-iconUrl: https://raw.githubusercontent.com/dweber019/backstage-plugin-endoflife/main/plugins/endoflife/docs/pluginIcon.png
+documentation: https://github.com/dweber019/backstage-plugins/tree/main/plugins/endoflife
+iconUrl: https://raw.githubusercontent.com/dweber019/backstage-plugins/main/plugins/endoflife/docs/pluginIcon.png
npmPackageName: '@dweber019/backstage-plugin-endoflife'
addedDate: '2024-01-18'
diff --git a/microsite/data/plugins/github-codespaces.yaml b/microsite/data/plugins/github-codespaces.yaml
index de2659c1e1..d846235bd6 100644
--- a/microsite/data/plugins/github-codespaces.yaml
+++ b/microsite/data/plugins/github-codespaces.yaml
@@ -1,6 +1,6 @@
---
title: GitHub Codespaces
-author: Aditya Singhal
+author: Aditya Singhal - Lab45
authorUrl: https://github.com/adityasinghal26
category: Development
description: Integrates GitHub Codespaces for a Backstage component with the Authenticated User.
diff --git a/microsite/data/plugins/revision.yaml b/microsite/data/plugins/revision.yaml
new file mode 100644
index 0000000000..aeb0273602
--- /dev/null
+++ b/microsite/data/plugins/revision.yaml
@@ -0,0 +1,10 @@
+---
+title: Revision
+author: Revision
+authorUrl: https://github.com/revision-org
+category: Visualization
+description: Access Revision architecture diagrams from within Backstage
+documentation: https://github.com/revision-org/backstage-plugins/tree/main/plugins/revision
+iconUrl: https://raw.githubusercontent.com/revision-org/revision-assets/b4895ae036e99341576caf1c9bbf92ec89fb65dc/logo-black-full.svg
+npmPackageName: '@revisionapp/backstage-revision-plugin'
+addedDate: '2024-01-26'
diff --git a/microsite/data/plugins/statuspage.yaml b/microsite/data/plugins/statuspage.yaml
new file mode 100644
index 0000000000..652052defc
--- /dev/null
+++ b/microsite/data/plugins/statuspage.yaml
@@ -0,0 +1,10 @@
+---
+title: Statuspage.io Plugin
+author: AxisCommunications
+authorUrl: https://github.com/AxisCommunications
+category: Monitoring
+description: The Statuspage plugin allows you to embedd https://statuspage.io components, component groups and dashboards in Backstage.
+documentation: https://github.com/AxisCommunications/backstage-plugins/blob/main/plugins/statuspage/README.md
+iconUrl: https://raw.githubusercontent.com/AxisCommunications/backstage-plugins/main/plugins/statuspage/media/logo.png
+npmPackageName: '@axis-backstage/plugin-statuspage'
+addedDate: '2024-02-06'
diff --git a/microsite/data/plugins/time-saver.yaml b/microsite/data/plugins/time-saver.yaml
new file mode 100644
index 0000000000..02f088ffa1
--- /dev/null
+++ b/microsite/data/plugins/time-saver.yaml
@@ -0,0 +1,10 @@
+---
+title: TimeSaver
+author: tduniec
+authorUrl: https://github.com/tduniec
+category: Discovery
+description: Visualise your time saved using Backstage Scaffolder templates
+documentation: https://github.com/tduniec/backstage-timesaver-plugin/blob/main/README.md
+iconUrl: https://raw.githubusercontent.com/tduniec/backstage-timesaver-plugin/main/img/tsLogo.png
+npmPackageName: '@tduniec/backstage-plugin-time-saver'
+addedDate: 2024-01-30
diff --git a/microsite/data/plugins/tips.yaml b/microsite/data/plugins/tips.yaml
index e58ad0fb46..03327f3e41 100644
--- a/microsite/data/plugins/tips.yaml
+++ b/microsite/data/plugins/tips.yaml
@@ -4,7 +4,7 @@ author: dweber019
authorUrl: https://github.com/dweber019
category: Discovery
description: The tips plugin will show the end user some helpful information for entities.
-documentation: https://github.com/dweber019/backstage-plugin-tips
-iconUrl: https://raw.githubusercontent.com/dweber019/backstage-plugin-tips/main/plugins/tips/docs/pluginIcon.png
+documentation: https://github.com/dweber019/backstage-plugins/tree/main/plugins/tips
+iconUrl: https://raw.githubusercontent.com/dweber019/backstage-plugins/main/plugins/tips/docs/pluginIcon.png
npmPackageName: '@dweber019/backstage-plugin-tips'
addedDate: '2023-10-08'
diff --git a/microsite/data/plugins/umami.yaml b/microsite/data/plugins/umami.yaml
new file mode 100644
index 0000000000..5f1fc208d4
--- /dev/null
+++ b/microsite/data/plugins/umami.yaml
@@ -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'
diff --git a/microsite/docusaurus.config.js b/microsite/docusaurus.config.js
index df2833b3e2..a49fca85c7 100644
--- a/microsite/docusaurus.config.js
+++ b/microsite/docusaurus.config.js
@@ -144,6 +144,14 @@ module.exports = {
from: '/docs/features/software-templates/testing-scaffolder-alpha',
to: '/docs/features/software-templates/migrating-to-rjsf-v5',
},
+ {
+ from: '/docs/auth/glossary',
+ to: '/docs/references/glossary',
+ },
+ {
+ from: '/docs/overview/glossary',
+ to: '/docs/references/glossary',
+ },
],
},
],
diff --git a/microsite/lighthouserc.js b/microsite/lighthouserc.js
new file mode 100644
index 0000000000..f0024ee0b3
--- /dev/null
+++ b/microsite/lighthouserc.js
@@ -0,0 +1,68 @@
+/*
+ * Copyright 2023 The Backstage Authors
+ *
+ * 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.
+ */
+
+var sidebars = require('./sidebars.json');
+
+module.exports = {
+ ci: {
+ collect: {
+ url: [
+ /** Home */
+ 'http://localhost:3000',
+ /** Docs - Getting Started */
+ 'http://localhost:3000/docs/getting-started',
+ /** Docs - Software Catalog */
+ 'http://localhost:3000/docs/features/software-catalog',
+ /** Docs - Create a Plugin */
+ 'http://localhost:3000/docs/plugins/create-a-plugin',
+ /** Docs - Designing for Backstage */
+ 'http://localhost:3000/docs/dls/design',
+ /** Blog */
+ 'http://localhost:3000/blog',
+ /** Plugins */
+ 'http://localhost:3000/plugins',
+ /** Demos */
+ 'http://localhost:3000/demos',
+ /** Community */
+ 'http://localhost:3000/community',
+ /** Releases */
+ ...sidebars.releases['Release Notes'].map(
+ path => `http://localhost:3000/docs/${path}`,
+ ),
+ ],
+ settings: {
+ onlyCategories: ['accessibility'],
+ output: ['html', 'json'],
+ outputPath: './.lighthouseci/reports',
+ preset: 'desktop',
+ },
+ // refers to root package scripts
+ startServerCommand: 'yarn run start:microsite',
+ startServerReadyPattern: 'compiled successfully',
+ startServerReadyTimeout: 600000,
+ numberOfRuns: 1,
+ },
+ assert: {
+ assertions: {
+ 'categories:performance': 'off',
+ 'categories:pwa': 'off',
+ 'categories:best-practices': 'off',
+ 'categories:seo': 'off',
+ 'categories:accessibility': ['error', { minScore: 0.95 }],
+ },
+ },
+ },
+};
diff --git a/microsite/package.json b/microsite/package.json
index 53309fb358..d90c455167 100644
--- a/microsite/package.json
+++ b/microsite/package.json
@@ -25,7 +25,7 @@
"@types/webpack-env": "^1.18.0",
"js-yaml": "^4.1.0",
"prettier": "^2.6.2",
- "typescript": "~5.0.0",
+ "typescript": "~5.1.0",
"yaml-loader": "^0.8.0"
},
"prettier": "@spotify/prettier-config",
diff --git a/microsite/sidebars.json b/microsite/sidebars.json
index e32e027807..146d8db059 100644
--- a/microsite/sidebars.json
+++ b/microsite/sidebars.json
@@ -37,7 +37,6 @@
"overview/versioning-policy",
"overview/threat-model",
"overview/support",
- "overview/glossary",
"overview/logos"
],
"Getting Started": [
@@ -309,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",
@@ -318,8 +318,7 @@
"auth/add-auth-provider",
"auth/service-to-service-auth",
"auth/autologout",
- "auth/troubleshooting",
- "auth/glossary"
+ "auth/troubleshooting"
],
"Permissions": [
"permissions/overview",
@@ -414,7 +413,16 @@
"items": [
"frontend-system/building-plugins/index",
"frontend-system/building-plugins/testing",
- "frontend-system/building-plugins/extension-types"
+ "frontend-system/building-plugins/extension-types",
+ "frontend-system/building-plugins/built-in-data-refs"
+ ]
+ },
+ {
+ "type": "category",
+ "label": "Building Apps",
+ "items": [
+ "frontend-system/building-apps/index",
+ "frontend-system/building-apps/built-in-extensions"
]
},
{
@@ -479,6 +487,7 @@
"architecture-decisions/adrs-adr013"
],
"FAQ": ["faq/index", "faq/product", "faq/technical"],
- "Accessibility": ["accessibility/index"]
+ "Accessibility": ["accessibility/index"],
+ "References": ["references/glossary"]
}
}
diff --git a/microsite/src/pages/community/index.tsx b/microsite/src/pages/community/index.tsx
index dbc2c4b5e1..42c42ae0c3 100644
--- a/microsite/src/pages/community/index.tsx
+++ b/microsite/src/pages/community/index.tsx
@@ -42,8 +42,8 @@ const Community = () => {
{
title: 'Community sessions',
content:
- 'Maintainers and adopters meet monthly to share updates, demos, and ideas. Yep, all sessions are recorded!',
- link: '/on-demand',
+ 'Maintainers and adopters meet monthly to share updates, demos, and ideas. You can find recorded session on our YouTube channel!',
+ link: 'https://github.com/backstage/community/tree/main/backstage-community-sessions#backstage-community-sessions',
label: 'Join a session',
},
{
@@ -88,8 +88,8 @@ const Community = () => {
},
{
name: 'VMWare',
- url: 'https://www.vmware.com',
- logo: 'img/partner-logo-vmware.png',
+ url: 'https://tanzu.vmware.com/',
+ logo: 'img/partner-logo-tanzubybroadcom.png',
},
];
//#endregion
diff --git a/microsite/src/pages/home/hubSpotNewAdoptersForm.module.scss b/microsite/src/pages/home/hubSpotNewAdoptersForm.module.scss
index 9533890660..20790c58f0 100644
--- a/microsite/src/pages/home/hubSpotNewAdoptersForm.module.scss
+++ b/microsite/src/pages/home/hubSpotNewAdoptersForm.module.scss
@@ -37,4 +37,10 @@ $page-header-height: 44px;
padding-right: 2rem;
}
+ select[class*='hs-input'] {
+ color: black;
+ }
+ input[class*='hs-button'] {
+ color: black;
+ }
}
diff --git a/microsite/src/pages/on-demand/_onDemandCard.tsx b/microsite/src/pages/on-demand/_onDemandCard.tsx
deleted file mode 100644
index e203c80f9a..0000000000
--- a/microsite/src/pages/on-demand/_onDemandCard.tsx
+++ /dev/null
@@ -1,66 +0,0 @@
-import Link from '@docusaurus/Link';
-import { SimpleCard } from '@site/src/components/simpleCard/simpleCard';
-import React from 'react';
-
-export interface IOnDemandData {
- title: string;
- category: string;
- description: string;
- date: string;
- youtubeUrl: string;
- youtubeImgUrl: string;
- rsvpUrl: string;
- eventUrl: string;
-}
-
-export const OnDemandCard = ({
- title,
- category,
- description,
- date,
- youtubeUrl,
- youtubeImgUrl,
- rsvpUrl,
- eventUrl,
-}: IOnDemandData) => (
-
- {title}
-
- on {date}
-
- {category}
-
-
- >
- }
- body={{description}
}
- footer={
- category.toLowerCase() === 'upcoming' ? (
- <>
-
- Event page
-
-
-
- Remind me
-
- >
- ) : (
-
- Watch on YouTube
-
- )
- }
- />
-);
diff --git a/microsite/src/pages/on-demand/index.tsx b/microsite/src/pages/on-demand/index.tsx
deleted file mode 100644
index 8d78c393ce..0000000000
--- a/microsite/src/pages/on-demand/index.tsx
+++ /dev/null
@@ -1,78 +0,0 @@
-import Layout from '@theme/Layout';
-import clsx from 'clsx';
-import React from 'react';
-
-import { IOnDemandData, OnDemandCard } from './_onDemandCard';
-import pluginsStyles from './onDemand.module.scss';
-import { truncateDescription } from '@site/src/util/truncateDescription';
-import Link from '@docusaurus/Link';
-
-//#region Plugin data import
-const onDemandContext = require.context(
- '../../../data/on-demand',
- false,
- /\.ya?ml/,
-);
-
-const onDemandData = onDemandContext.keys().reduce(
- (acum, id) => {
- const pluginData: IOnDemandData = onDemandContext(id).default;
-
- acum[
- pluginData.category === 'Upcoming' ? 'upcomingEvents' : 'onDemandEvents'
- ].push(truncateDescription(pluginData));
-
- return acum;
- },
- {
- upcomingEvents: [] as IOnDemandData[],
- onDemandEvents: [] as IOnDemandData[],
- },
-);
-//#endregion
-
-const Plugins = () => (
-
-
-
-
- Community sessions
-
-
- Upcoming events and recorded sessions about updates, demos and
- discussions.
-
-
-
-
- Add an event or recording
-
-
-
-
-
- Upcoming live events
-
-
- {onDemandData.upcomingEvents.map(eventData => (
-
- ))}
-
-
- Community on demand
-
-
- {onDemandData.onDemandEvents.map(eventData => (
-
- ))}
-
-
-
-);
-
-export default Plugins;
diff --git a/microsite/src/pages/on-demand/onDemand.module.scss b/microsite/src/pages/on-demand/onDemand.module.scss
deleted file mode 100644
index ff5797b687..0000000000
--- a/microsite/src/pages/on-demand/onDemand.module.scss
+++ /dev/null
@@ -1,44 +0,0 @@
-.onDemandPage {
- :global(.communityBanner) {
- display: flex;
- align-items: center;
- }
-
- :global(.communityContent) {
- flex: 1;
- }
-
- :global(.card) {
- max-width: 100%;
- }
-
- :global(.card .card__header) {
- display: grid;
- row-gap: 0.25rem;
- column-gap: 1rem;
- justify-items: start;
-
- > * {
- margin: 0;
- }
-
- :global(img) {
- width: 250px;
- max-width: 100%;
- justify-self: center;
- }
- }
-
- :global(.card .card__footer) {
- gap: 1rem;
- display: grid;
- grid-template-columns: repeat(auto-fit, minmax(100px, 1fr));
- }
-
- :global(.cardsContainer) {
- gap: 1rem;
- display: grid;
- grid-template-columns: repeat(auto-fill, minmax(250px, 1fr));
- justify-items: start;
- }
-}
diff --git a/microsite/src/pages/plugins/plugins.module.scss b/microsite/src/pages/plugins/plugins.module.scss
index dbd0c62c75..fb17e90625 100644
--- a/microsite/src/pages/plugins/plugins.module.scss
+++ b/microsite/src/pages/plugins/plugins.module.scss
@@ -32,6 +32,7 @@
position: absolute;
text-align: center;
font-weight: bold;
+ color: black;
transform: translateY(var(--translateY)) translateX(var(--translateX))
rotate(var(--rotation));
diff --git a/microsite/src/theme/customTheme.scss b/microsite/src/theme/customTheme.scss
index 57e1f8828e..b29f76d3c0 100644
--- a/microsite/src/theme/customTheme.scss
+++ b/microsite/src/theme/customTheme.scss
@@ -7,7 +7,7 @@
--ifm-color-primary-darker: #2e9e8a;
--ifm-color-primary-darkest: #268271;
}
-
+// for docs and releases
#__docusaurus {
.theme-doc-markdown {
a {
@@ -15,7 +15,36 @@
}
}
}
-
+// for blog
+#__docusaurus {
+ .row {
+ .col {
+ &--7 {
+ a {
+ text-decoration: underline;
+ }
+ }
+ }
+ }
+}
+// for community page
+#__docusaurus {
+ div[class^='communityPage'],
+ div[class*='communityPage'] {
+ a:not([class]) {
+ text-decoration: underline;
+ }
+ }
+}
+// for plugin page
+#__docusaurus {
+ div[class^='pluginsPage'],
+ div[class*='pluginsPage'] {
+ a:not([class]) {
+ text-decoration: underline;
+ }
+ }
+}
.footerLogo {
background-image: url(/img/logo.svg);
background-repeat: no-repeat;
diff --git a/microsite/static/css/on-demand.css b/microsite/static/css/on-demand.css
deleted file mode 100644
index 909459796c..0000000000
--- a/microsite/static/css/on-demand.css
+++ /dev/null
@@ -1,143 +0,0 @@
-.VideoCard {
- background-color: #282828;
- height: 100%;
- padding: 16px;
- display: flex;
- flex-direction: column;
-}
-
-.VideoGrid {
- display: grid;
- grid-gap: 1rem;
- grid-template-columns: repeat(4, 1fr);
- grid-auto-rows: 1fr;
-}
-
-@media (max-width: 1200px) {
- .VideoGrid {
- grid-template-columns: repeat(3, 1fr);
- }
-}
-
-@media only screen and (max-width: 815px) {
- .VideoGrid {
- grid-template-columns: repeat(2, 1fr);
- }
-}
-
-@media only screen and (max-width: 485px) {
- .VideoGrid {
- grid-template-columns: 1fr;
- }
-}
-
-.VideoCard img {
- float: left;
- margin: 0px 16px 8px 0px;
- height: 160px;
- width: 300px;
-}
-
-.VideoCardHeader {
- display: flex;
- flex-direction: row;
- align-items: center;
- max-height: fit-content;
- min-height: fit-content;
-}
-
-.VideoCardImage {
- width: 200px;
- height: 80px;
- margin-right: 16px;
-}
-
-.VideoCardImage img {
- width: 100%;
- max-width: 100%;
-}
-
-.VideoCardTitle {
- color: white;
- vertical-align: top;
- margin: 8px 0 0;
-}
-
-.VideoCardInfo {
- flex: 1;
-}
-
-.VideoAddNewButton {
- position: absolute;
- bottom: 16px;
- right: 0px;
-}
-
-@media only screen and (max-width: 485px) {
- .VideoAddNewButton {
- bottom: -4px;
- }
-}
-
-.VideoButtonFilled {
- padding: 4px 8px;
- border-radius: 4px;
- color: #69ddc7;
-}
-
-.VideoButtonFilled:hover {
- border: 1px solid #69ddc7;
- background-color: transparent;
-}
-
-.VideoCardChipOutlined {
- font-size: small;
- border-radius: 16px;
- padding: 2px 8px;
- border: 1px solid #69ddc7;
- color: #69ddc7;
-}
-
-.VideoCardFooter {
- display: flex;
- justify-content: flex-end;
- align-items: flex-end;
- margin-top: auto;
- min-height: 2em;
-}
-
-.VideoCardFooter a {
- padding: 2px 8px;
-}
-
-.VideoPageLayout {
- margin: auto;
- max-width: 1430px;
- padding: 20px;
-}
-
-.VideoPageHeader {
- position: relative;
-}
-
-.VideoPageHeader h2 {
- display: inline-block;
-}
-
-.VideoCardBody {
- padding-top: 8px;
-}
-
-.VideoCardDate,
-.VideoCardDate a {
- margin-bottom: 0.25em;
- color: rgba(255, 255, 255, 0.6);
-}
-
-.VideoCardDate a:hover {
- color: white;
-}
-
-#add-video-card {
- border: 1px solid #69ddc7;
-}
diff --git a/microsite/static/img/partner-logo-redhat.png b/microsite/static/img/partner-logo-redhat.png
index ad9bc9ceba..0b98532c2c 100644
Binary files a/microsite/static/img/partner-logo-redhat.png and b/microsite/static/img/partner-logo-redhat.png differ
diff --git a/microsite/static/img/partner-logo-tanzubybroadcom.png b/microsite/static/img/partner-logo-tanzubybroadcom.png
new file mode 100644
index 0000000000..0bd5586203
Binary files /dev/null and b/microsite/static/img/partner-logo-tanzubybroadcom.png differ
diff --git a/microsite/static/img/partner-logo-vmware.png b/microsite/static/img/partner-logo-vmware.png
deleted file mode 100644
index 049975ca15..0000000000
Binary files a/microsite/static/img/partner-logo-vmware.png and /dev/null differ
diff --git a/microsite/static/img/umami-logo.svg b/microsite/static/img/umami-logo.svg
new file mode 100644
index 0000000000..b139531324
--- /dev/null
+++ b/microsite/static/img/umami-logo.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/microsite/yarn.lock b/microsite/yarn.lock
index 5c92ba5e69..b858d2bf13 100644
--- a/microsite/yarn.lock
+++ b/microsite/yarn.lock
@@ -2701,90 +2701,90 @@ __metadata:
languageName: node
linkType: hard
-"@swc/core-darwin-arm64@npm:1.3.105":
- version: 1.3.105
- resolution: "@swc/core-darwin-arm64@npm:1.3.105"
+"@swc/core-darwin-arm64@npm:1.4.0":
+ version: 1.4.0
+ resolution: "@swc/core-darwin-arm64@npm:1.4.0"
conditions: os=darwin & cpu=arm64
languageName: node
linkType: hard
-"@swc/core-darwin-x64@npm:1.3.105":
- version: 1.3.105
- resolution: "@swc/core-darwin-x64@npm:1.3.105"
+"@swc/core-darwin-x64@npm:1.4.0":
+ version: 1.4.0
+ resolution: "@swc/core-darwin-x64@npm:1.4.0"
conditions: os=darwin & cpu=x64
languageName: node
linkType: hard
-"@swc/core-linux-arm-gnueabihf@npm:1.3.105":
- version: 1.3.105
- resolution: "@swc/core-linux-arm-gnueabihf@npm:1.3.105"
+"@swc/core-linux-arm-gnueabihf@npm:1.4.0":
+ version: 1.4.0
+ resolution: "@swc/core-linux-arm-gnueabihf@npm:1.4.0"
conditions: os=linux & cpu=arm
languageName: node
linkType: hard
-"@swc/core-linux-arm64-gnu@npm:1.3.105":
- version: 1.3.105
- resolution: "@swc/core-linux-arm64-gnu@npm:1.3.105"
+"@swc/core-linux-arm64-gnu@npm:1.4.0":
+ version: 1.4.0
+ resolution: "@swc/core-linux-arm64-gnu@npm:1.4.0"
conditions: os=linux & cpu=arm64 & libc=glibc
languageName: node
linkType: hard
-"@swc/core-linux-arm64-musl@npm:1.3.105":
- version: 1.3.105
- resolution: "@swc/core-linux-arm64-musl@npm:1.3.105"
+"@swc/core-linux-arm64-musl@npm:1.4.0":
+ version: 1.4.0
+ resolution: "@swc/core-linux-arm64-musl@npm:1.4.0"
conditions: os=linux & cpu=arm64 & libc=musl
languageName: node
linkType: hard
-"@swc/core-linux-x64-gnu@npm:1.3.105":
- version: 1.3.105
- resolution: "@swc/core-linux-x64-gnu@npm:1.3.105"
+"@swc/core-linux-x64-gnu@npm:1.4.0":
+ version: 1.4.0
+ resolution: "@swc/core-linux-x64-gnu@npm:1.4.0"
conditions: os=linux & cpu=x64 & libc=glibc
languageName: node
linkType: hard
-"@swc/core-linux-x64-musl@npm:1.3.105":
- version: 1.3.105
- resolution: "@swc/core-linux-x64-musl@npm:1.3.105"
+"@swc/core-linux-x64-musl@npm:1.4.0":
+ version: 1.4.0
+ resolution: "@swc/core-linux-x64-musl@npm:1.4.0"
conditions: os=linux & cpu=x64 & libc=musl
languageName: node
linkType: hard
-"@swc/core-win32-arm64-msvc@npm:1.3.105":
- version: 1.3.105
- resolution: "@swc/core-win32-arm64-msvc@npm:1.3.105"
+"@swc/core-win32-arm64-msvc@npm:1.4.0":
+ version: 1.4.0
+ resolution: "@swc/core-win32-arm64-msvc@npm:1.4.0"
conditions: os=win32 & cpu=arm64
languageName: node
linkType: hard
-"@swc/core-win32-ia32-msvc@npm:1.3.105":
- version: 1.3.105
- resolution: "@swc/core-win32-ia32-msvc@npm:1.3.105"
+"@swc/core-win32-ia32-msvc@npm:1.4.0":
+ version: 1.4.0
+ resolution: "@swc/core-win32-ia32-msvc@npm:1.4.0"
conditions: os=win32 & cpu=ia32
languageName: node
linkType: hard
-"@swc/core-win32-x64-msvc@npm:1.3.105":
- version: 1.3.105
- resolution: "@swc/core-win32-x64-msvc@npm:1.3.105"
+"@swc/core-win32-x64-msvc@npm:1.4.0":
+ version: 1.4.0
+ resolution: "@swc/core-win32-x64-msvc@npm:1.4.0"
conditions: os=win32 & cpu=x64
languageName: node
linkType: hard
"@swc/core@npm:^1.3.46":
- version: 1.3.105
- resolution: "@swc/core@npm:1.3.105"
+ version: 1.4.0
+ resolution: "@swc/core@npm:1.4.0"
dependencies:
- "@swc/core-darwin-arm64": 1.3.105
- "@swc/core-darwin-x64": 1.3.105
- "@swc/core-linux-arm-gnueabihf": 1.3.105
- "@swc/core-linux-arm64-gnu": 1.3.105
- "@swc/core-linux-arm64-musl": 1.3.105
- "@swc/core-linux-x64-gnu": 1.3.105
- "@swc/core-linux-x64-musl": 1.3.105
- "@swc/core-win32-arm64-msvc": 1.3.105
- "@swc/core-win32-ia32-msvc": 1.3.105
- "@swc/core-win32-x64-msvc": 1.3.105
+ "@swc/core-darwin-arm64": 1.4.0
+ "@swc/core-darwin-x64": 1.4.0
+ "@swc/core-linux-arm-gnueabihf": 1.4.0
+ "@swc/core-linux-arm64-gnu": 1.4.0
+ "@swc/core-linux-arm64-musl": 1.4.0
+ "@swc/core-linux-x64-gnu": 1.4.0
+ "@swc/core-linux-x64-musl": 1.4.0
+ "@swc/core-win32-arm64-msvc": 1.4.0
+ "@swc/core-win32-ia32-msvc": 1.4.0
+ "@swc/core-win32-x64-msvc": 1.4.0
"@swc/counter": ^0.1.1
"@swc/types": ^0.1.5
peerDependencies:
@@ -2813,14 +2813,14 @@ __metadata:
peerDependenciesMeta:
"@swc/helpers":
optional: true
- checksum: 5baa880bc92748ef4845d9c65eba5d6dd01adaa673854e20a5116f5e267c12180db50e563cf3c34a415772b9742d021176a9d9a91065c190ef6f54fefe85728c
+ checksum: cef6459ba707362e88373f1c2c779c760a7fdf06c0123856be005bb012de91cb913b37fb49e485ac551494a1ee46fb6369c5aca9d453e1e5e391a8514c0db185
languageName: node
linkType: hard
-"@swc/counter@npm:^0.1.1":
- version: 0.1.1
- resolution: "@swc/counter@npm:0.1.1"
- checksum: bb974babd493ba01c0d4a95ab610c3fc15fbf609c08cb0342798e485f57ecc0950abbf84e07124e63c5fe610b492d9a8dd03701d3b9ef7329d9e8bf3cc44980f
+"@swc/counter@npm:^0.1.1, @swc/counter@npm:^0.1.3":
+ version: 0.1.3
+ resolution: "@swc/counter@npm:0.1.3"
+ checksum: df8f9cfba9904d3d60f511664c70d23bb323b3a0803ec9890f60133954173047ba9bdeabce28cd70ba89ccd3fd6c71c7b0bd58be85f611e1ffbe5d5c18616598
languageName: node
linkType: hard
@@ -3907,7 +3907,7 @@ __metadata:
react-dom: ^18.0.0
sass: ^1.57.1
swc-loader: ^0.2.3
- typescript: ~5.0.0
+ typescript: ~5.1.0
yaml-loader: ^0.8.0
languageName: unknown
linkType: soft
@@ -11500,12 +11500,14 @@ __metadata:
linkType: hard
"swc-loader@npm:^0.2.3":
- version: 0.2.3
- resolution: "swc-loader@npm:0.2.3"
+ version: 0.2.6
+ resolution: "swc-loader@npm:0.2.6"
+ dependencies:
+ "@swc/counter": ^0.1.3
peerDependencies:
"@swc/core": ^1.2.147
webpack: ">=2"
- checksum: 010d84d399525c0185d36d62c86c55ae017e7a90046bc8a39be4b7e07526924037868049f6037bc966da98151cb2600934b96a66279b742d3c413a718b427251
+ checksum: fe90948c02a51bb8ffcff1ce3590e01dc12860b0bb7c9e22052b14fa846ed437781ae265614a5e14344bea22001108780f00a6e350e28c0b3499bc4cd11335fb
languageName: node
linkType: hard
@@ -11692,23 +11694,23 @@ __metadata:
languageName: node
linkType: hard
-"typescript@npm:~5.0.0":
- version: 5.0.4
- resolution: "typescript@npm:5.0.4"
+"typescript@npm:~5.1.0":
+ version: 5.1.6
+ resolution: "typescript@npm:5.1.6"
bin:
tsc: bin/tsc
tsserver: bin/tsserver
- checksum: 82b94da3f4604a8946da585f7d6c3025fff8410779e5bde2855ab130d05e4fd08938b9e593b6ebed165bda6ad9292b230984f10952cf82f0a0ca07bbeaa08172
+ checksum: b2f2c35096035fe1f5facd1e38922ccb8558996331405eb00a5111cc948b2e733163cc22fab5db46992aba7dd520fff637f2c1df4996ff0e134e77d3249a7350
languageName: node
linkType: hard
-"typescript@patch:typescript@~5.0.0#~builtin":
- version: 5.0.4
- resolution: "typescript@patch:typescript@npm%3A5.0.4#~builtin::version=5.0.4&hash=a1c5e5"
+"typescript@patch:typescript@~5.1.0#~builtin":
+ version: 5.1.6
+ resolution: "typescript@patch:typescript@npm%3A5.1.6#~builtin::version=5.1.6&hash=a1c5e5"
bin:
tsc: bin/tsc
tsserver: bin/tsserver
- checksum: 6a1fe9a77bb9c5176ead919cc4a1499ee63e46b4e05bf667079f11bf3a8f7887f135aa72460a4c3b016e6e6bb65a822cb8689a6d86cbfe92d22cc9f501f09213
+ checksum: 21e88b0a0c0226f9cb9fd25b9626fb05b4c0f3fddac521844a13e1f30beb8f14e90bd409a9ac43c812c5946d714d6e0dee12d5d02dfc1c562c5aacfa1f49b606
languageName: node
linkType: hard
diff --git a/mkdocs.yml b/mkdocs.yml
index 8c9f84ba81..2a17613672 100644
--- a/mkdocs.yml
+++ b/mkdocs.yml
@@ -18,7 +18,6 @@ nav:
- Release & Versioning Policy: 'overview/versioning-policy.md'
- Backstage Threat Model: 'overview/threat-model.md'
- Support and community: 'overview/support.md'
- - Glossary: 'overview/glossary.md'
- Logo assets: 'overview/logos.md'
- Getting Started:
- Getting Started: 'getting-started/index.md'
@@ -171,7 +170,6 @@ nav:
- Contributing New Providers: 'auth/add-auth-provider.md'
- Service to Service Auth: 'auth/service-to-service-auth.md'
- Troubleshooting Auth: 'auth/troubleshooting.md'
- - Glossary: 'auth/glossary.md'
- Deployment:
- Deploying Backstage: 'deployment/index.md'
- Scaling: 'deployment/scaling.md'
@@ -218,3 +216,5 @@ nav:
- Overview: 'faq/index.md'
- Product FAQ: 'faq/product.md'
- Technical FAQ: 'faq/technical.md'
+ - References:
+ - Glossary: 'references/glossary.md'
diff --git a/package.json b/package.json
index 2b16580f84..d3188d483a 100644
--- a/package.json
+++ b/package.json
@@ -11,10 +11,12 @@
"start-backend": "yarn workspace example-backend start",
"start:next": "yarn workspace example-app-next start",
"start-backend:next": "yarn workspace example-backend-next start",
+ "start:microsite": "cd microsite/ && yarn start",
"build:backend": "yarn workspace example-backend build",
"build:all": "backstage-cli repo build --all",
"build:api-reports": "yarn build:api-reports:only --tsc",
"build:api-reports:only": "backstage-repo-tools api-reports --allow-warnings 'packages/core-components,plugins/+(catalog|catalog-import|git-release-manager|jenkins|kubernetes)' -o ae-wrong-input-file-type --validate-release-tags",
+ "build:knip-reports": "backstage-repo-tools knip-reports",
"build:api-docs": "LANG=en_EN yarn build:api-reports --docs --exclude 'plugins/@(adr|adr-backend|adr-common|airbrake|airbrake-backend|allure|analytics-module-ga|analytics-module-ga4|analytics-module-newrelic-browser|apache-airflow|api-docs|api-docs-module-protoc-gen-doc|apollo-explorer|app-visualizer|azure-devops|azure-devops-backend|azure-devops-common|azure-sites|azure-sites-backend|azure-sites-common|badges|badges-backend|bazaar|bazaar-backend|bitbucket-cloud-common|bitrise|catalog-graph|catalog-graphql|catalog-import|catalog-unprocessed-entities|cicd-statistics|cicd-statistics-module-gitlab|circleci|cloudbuild|code-climate|code-coverage|code-coverage-backend|codescene|config-schema|cost-insights|cost-insights-common|dynatrace|entity-feedback|entity-feedback-backend|entity-feedback-common|entity-validation|example-todo-list|example-todo-list-backend|example-todo-list-common|firehydrant|fossa|gcalendar|gcp-projects|git-release-manager|github-actions|github-deployments|github-issues|github-pull-requests-board|gitops-profiles|gocd|graphiql|graphql-backend|graphql-voyager|ilert|jenkins|jenkins-backend|jenkins-common|kafka|kafka-backend|lighthouse|lighthouse-backend|lighthouse-common|linguist|linguist-backend|linguist-common|microsoft-calendar|newrelic|newrelic-dashboard|nomad|nomad-backend|octopus-deploy|opencost|pagerduty|periskop|periskop-backend|playlist|playlist-backend|playlist-common|proxy-backend|puppetdb|rollbar|rollbar-backend|sentry|shortcuts|splunk-on-call|stack-overflow|stack-overflow-backend|stackstorm|tech-radar|tech-radar-2|todo|todo-backend|xcmetrics)'",
"build:plugins-report": "node ./scripts/build-plugins-report",
"tsc": "tsc",
@@ -40,8 +42,12 @@
"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"
+ },
+ "repository": {
+ "type": "git",
+ "url": "https://github.com/backstage/backstage"
},
"workspaces": {
"packages": [
@@ -56,7 +62,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.0",
+ "version": "1.23.0-next.2",
"dependencies": {
"@backstage/errors": "workspace:^",
"@manypkg/get-packages": "^1.1.3",
@@ -85,15 +91,17 @@
"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",
+ "knip": "^4.3.1",
"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.2.0"
+ "typescript": "~5.1.0"
},
"prettier": "@spotify/prettier-config",
"lint-staged": {
diff --git a/packages/app-defaults/CHANGELOG.md b/packages/app-defaults/CHANGELOG.md
index 9ac73e575a..8df429cb29 100644
--- a/packages/app-defaults/CHANGELOG.md
+++ b/packages/app-defaults/CHANGELOG.md
@@ -1,5 +1,38 @@
# @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
+
+- 7da67ce: Change `defaultScopes` for Bitbucket auth from invalid `team` to `account`.
+- Updated dependencies
+ - @backstage/core-components@0.14.0-next.0
+ - @backstage/core-plugin-api@1.8.3-next.0
+ - @backstage/core-app-api@1.11.4-next.0
+ - @backstage/theme@0.5.0
+ - @backstage/plugin-permission-react@0.4.20-next.0
+
## 1.4.8-next.0
### Patch Changes
diff --git a/packages/app-defaults/README.md b/packages/app-defaults/README.md
index cfdaf36acb..ebaaacafe3 100644
--- a/packages/app-defaults/README.md
+++ b/packages/app-defaults/README.md
@@ -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
diff --git a/packages/app-defaults/knip-report.md b/packages/app-defaults/knip-report.md
new file mode 100644
index 0000000000..2661c35327
--- /dev/null
+++ b/packages/app-defaults/knip-report.md
@@ -0,0 +1,2 @@
+# Knip report
+
diff --git a/packages/app-defaults/package.json b/packages/app-defaults/package.json
index 4b15d5875a..4dfeabcb86 100644
--- a/packages/app-defaults/package.json
+++ b/packages/app-defaults/package.json
@@ -1,7 +1,7 @@
{
"name": "@backstage/app-defaults",
"description": "Provides the default wiring of a Backstage App",
- "version": "1.4.8-next.0",
+ "version": "1.5.0-next.2",
"publishConfig": {
"access": "public",
"main": "dist/index.esm.js",
diff --git a/packages/app-defaults/src/defaults/apis.ts b/packages/app-defaults/src/defaults/apis.ts
index 848d204670..4e9e1a492c 100644
--- a/packages/app-defaults/src/defaults/apis.ts
+++ b/packages/app-defaults/src/defaults/apis.ts
@@ -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: {
diff --git a/packages/app-defaults/src/defaults/components.tsx b/packages/app-defaults/src/defaults/components.tsx
index 93a5d9cd50..9b58694f2b 100644
--- a/packages/app-defaults/src/defaults/components.tsx
+++ b/packages/app-defaults/src/defaults/components.tsx
@@ -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 (
-
+
);
};
diff --git a/packages/app-next-example-plugin/CHANGELOG.md b/packages/app-next-example-plugin/CHANGELOG.md
index 4e41b9690a..9de890ca79 100644
--- a/packages/app-next-example-plugin/CHANGELOG.md
+++ b/packages/app-next-example-plugin/CHANGELOG.md
@@ -1,5 +1,21 @@
# 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
+
+- Updated dependencies
+ - @backstage/frontend-plugin-api@0.6.0-next.1
+ - @backstage/core-components@0.14.0-next.0
+
## 0.0.6-next.0
### Patch Changes
diff --git a/packages/app-next-example-plugin/knip-report.md b/packages/app-next-example-plugin/knip-report.md
new file mode 100644
index 0000000000..d6aa71307d
--- /dev/null
+++ b/packages/app-next-example-plugin/knip-report.md
@@ -0,0 +1,9 @@
+# Knip report
+
+## Unused devDependencies (2)
+
+| Name | Location |
+|:------------|:-------------|
+| msw | package.json |
+| cross-fetch | package.json |
+
diff --git a/packages/app-next-example-plugin/package.json b/packages/app-next-example-plugin/package.json
index 05d7e20823..61e882edce 100644
--- a/packages/app-next-example-plugin/package.json
+++ b/packages/app-next-example-plugin/package.json
@@ -1,7 +1,7 @@
{
"name": "app-next-example-plugin",
"description": "Backstage internal example plugin",
- "version": "0.0.6-next.0",
+ "version": "0.0.6-next.2",
"publishConfig": {
"access": "public",
"main": "dist/index.esm.js",
diff --git a/packages/app-next/CHANGELOG.md b/packages/app-next/CHANGELOG.md
index e641aa8f71..26ebcd6f21 100644
--- a/packages/app-next/CHANGELOG.md
+++ b/packages/app-next/CHANGELOG.md
@@ -1,5 +1,157 @@
# 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
+
+- Updated dependencies
+ - @backstage/frontend-plugin-api@0.6.0-next.1
+ - @backstage/frontend-app-api@0.6.0-next.1
+ - @backstage/plugin-scaffolder-react@1.8.0-next.1
+ - @backstage/core-compat-api@0.2.0-next.1
+ - @backstage/plugin-adr@0.6.13-next.1
+ - @backstage/plugin-catalog-graph@0.3.4-next.1
+ - @backstage/core-components@0.14.0-next.0
+ - @backstage/plugin-scaffolder@1.18.0-next.1
+ - @backstage/cli@0.25.2-next.1
+ - @backstage/catalog-model@1.4.4-next.0
+ - @backstage/plugin-explore@0.4.16-next.1
+ - @backstage/plugin-catalog@1.17.0-next.1
+ - @backstage/core-plugin-api@1.8.3-next.0
+ - @backstage/app-defaults@1.4.8-next.1
+ - @backstage/core-app-api@1.11.4-next.0
+ - @backstage/plugin-techdocs@1.10.0-next.1
+ - @backstage/plugin-azure-sites@0.1.19-next.1
+ - @backstage/plugin-home@0.6.2-next.1
+ - app-next-example-plugin@0.0.6-next.1
+ - @backstage/plugin-app-visualizer@0.1.1-next.1
+ - @backstage/plugin-catalog-import@0.10.6-next.1
+ - @backstage/plugin-catalog-react@1.9.4-next.1
+ - @backstage/plugin-devtools@0.1.9-next.1
+ - @backstage/plugin-graphiql@0.3.3-next.1
+ - @backstage/plugin-linguist@0.1.15-next.1
+ - @backstage/plugin-search@1.4.6-next.1
+ - @backstage/plugin-search-react@1.7.6-next.1
+ - @backstage/plugin-tech-radar@0.6.13-next.1
+ - @backstage/plugin-user-settings@0.8.1-next.1
+ - @backstage/integration-react@1.1.24-next.0
+ - @backstage/plugin-airbrake@0.3.30-next.1
+ - @backstage/plugin-apache-airflow@0.2.20-next.0
+ - @backstage/plugin-api-docs@0.10.4-next.1
+ - @backstage/plugin-azure-devops@0.3.12-next.1
+ - @backstage/plugin-badges@0.2.54-next.1
+ - @backstage/plugin-catalog-unprocessed-entities@0.1.8-next.0
+ - @backstage/plugin-cloudbuild@0.4.0-next.1
+ - @backstage/plugin-code-coverage@0.2.23-next.1
+ - @backstage/plugin-cost-insights@0.12.19-next.1
+ - @backstage/plugin-dynatrace@8.0.4-next.1
+ - @backstage/plugin-entity-feedback@0.2.13-next.1
+ - @backstage/plugin-gcalendar@0.3.23-next.0
+ - @backstage/plugin-gcp-projects@0.3.46-next.0
+ - @backstage/plugin-github-actions@0.6.11-next.1
+ - @backstage/plugin-gocd@0.1.36-next.1
+ - @backstage/plugin-jenkins@0.9.5-next.1
+ - @backstage/plugin-kafka@0.3.30-next.1
+ - @backstage/plugin-kubernetes@0.11.5-next.1
+ - @backstage/plugin-lighthouse@0.4.15-next.1
+ - @backstage/plugin-microsoft-calendar@0.1.12-next.0
+ - @backstage/plugin-newrelic@0.3.45-next.0
+ - @backstage/plugin-newrelic-dashboard@0.3.5-next.1
+ - @backstage/plugin-octopus-deploy@0.2.12-next.1
+ - @backstage/plugin-org@0.6.20-next.1
+ - @backstage/plugin-pagerduty@0.7.2-next.1
+ - @backstage/plugin-playlist@0.2.4-next.1
+ - @backstage/plugin-puppetdb@0.1.13-next.1
+ - @backstage/plugin-rollbar@0.4.30-next.1
+ - @backstage/plugin-sentry@0.5.15-next.1
+ - @backstage/plugin-shortcuts@0.3.19-next.0
+ - @backstage/plugin-stackstorm@0.1.11-next.0
+ - @backstage/plugin-tech-insights@0.3.22-next.1
+ - @backstage/plugin-techdocs-module-addons-contrib@1.1.5-next.1
+ - @backstage/plugin-techdocs-react@1.1.16-next.0
+ - @backstage/plugin-todo@0.2.34-next.1
+ - @backstage/theme@0.5.0
+ - @backstage/plugin-catalog-common@1.0.21-next.0
+ - @backstage/plugin-linguist-common@0.1.2
+ - @backstage/plugin-permission-react@0.4.20-next.0
+ - @backstage/plugin-search-common@1.2.10
+
## 0.0.6-next.0
### Patch Changes
diff --git a/packages/app-next/app-config.yaml b/packages/app-next/app-config.yaml
index 9cc3507fa4..408b08acee 100644
--- a/packages/app-next/app-config.yaml
+++ b/packages/app-next/app-config.yaml
@@ -1,24 +1,48 @@
app:
experimental:
packages: 'all' # ✨
+
routes:
bindings:
- pages.pageX: pages.pageX
catalog.viewTechDoc: techdocs.docRoot
catalog.createComponent: catalog-import.importPage
+ org.catalogIndex: catalog.catalogIndex
extensions:
# - apis.plugin.graphiql.browse.gitlab: true
- graphiql-endpoint:graphiql/gitlab: true
+ # Entity page cards
- entity-card:catalog/about
- entity-card:catalog/labels
- entity-card:catalog/links:
config:
filter: kind:component has:links
- entity-card:linguist/languages
+ - entity-card:catalog-graph/relations:
+ config:
+ height: 300
+ - entity-card:azure-devops/readme
+ - entity-card:api-docs/has-apis
+ - entity-card:api-docs/consumed-apis
+ - entity-card:api-docs/provided-apis
+ - entity-card:api-docs/providing-components
+ - entity-card:api-docs/consuming-components
+
+ # - entity-card:azure-devops/readme
# Entity page content
+ - entity-content:api-docs/definition
+ - entity-content:api-docs/apis
- 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({
diff --git a/packages/app-next/knip-report.md b/packages/app-next/knip-report.md
new file mode 100644
index 0000000000..65927e1a55
--- /dev/null
+++ b/packages/app-next/knip-report.md
@@ -0,0 +1,82 @@
+# Knip report
+
+## Unused dependencies (64)
+
+| Name | Location |
+|:-------------------------------------------------|:-------------|
+| lodash | package.json |
+| history | package.json |
+| react-use | package.json |
+| @octokit/rest | package.json |
+| zen-observable | package.json |
+| @material-ui/lab | package.json |
+| @backstage/theme | package.json |
+| @backstage/plugin-org | package.json |
+| @backstage/plugin-adr | package.json |
+| @backstage/plugin-todo | package.json |
+| @backstage/plugin-gocd | package.json |
+| app-next-example-plugin | package.json |
+| @backstage/plugin-kafka | package.json |
+| @backstage/app-defaults | package.json |
+| @backstage/plugin-sentry | package.json |
+| @backstage/plugin-search | package.json |
+| @backstage/plugin-badges | package.json |
+| @backstage/catalog-model | package.json |
+| @backstage/plugin-rollbar | package.json |
+| @backstage/plugin-jenkins | package.json |
+| @backstage/plugin-explore | package.json |
+| @backstage/plugin-catalog | package.json |
+| @circleci/backstage-plugin | package.json |
+| @backstage/plugin-puppetdb | package.json |
+| @backstage/plugin-playlist | package.json |
+| @backstage/plugin-newrelic | package.json |
+| @backstage/plugin-linguist | package.json |
+| @backstage/plugin-devtools | package.json |
+| @backstage/plugin-api-docs | package.json |
+| @backstage/plugin-airbrake | package.json |
+| @backstage/plugin-shortcuts | package.json |
+| @backstage/plugin-dynatrace | package.json |
+| @backstage/plugin-stackstorm | package.json |
+| @backstage/plugin-scaffolder | package.json |
+| @backstage/plugin-lighthouse | package.json |
+| @backstage/plugin-kubernetes | package.json |
+| @backstage/plugin-cloudbuild | package.json |
+| @backstage/plugin-azure-sites | package.json |
+| @backstage/plugin-search-react | package.json |
+| @backstage/plugin-gcp-projects | package.json |
+| @backstage/plugin-azure-devops | package.json |
+| @backstage/plugin-tech-insights | package.json |
+| @backstage/plugin-search-common | package.json |
+| @backstage/plugin-cost-insights | package.json |
+| @backstage/plugin-code-coverage | package.json |
+| @backstage/plugin-catalog-react | package.json |
+| @backstage/plugin-catalog-graph | package.json |
+| @backstage/plugin-techdocs-react | package.json |
+| @backstage/plugin-octopus-deploy | package.json |
+| @backstage/plugin-github-actions | package.json |
+| @backstage/plugin-catalog-common | package.json |
+| @backstage/plugin-apache-airflow | package.json |
+| @backstage/plugin-linguist-common | package.json |
+| @backstage/plugin-entity-feedback | package.json |
+| @backstage/plugin-scaffolder-react | package.json |
+| @backstage/plugin-permission-react | package.json |
+| @roadiehq/backstage-plugin-travis-ci | package.json |
+| @roadiehq/backstage-plugin-buildkite | package.json |
+| @backstage/plugin-newrelic-dashboard | package.json |
+| @oriflame/backstage-plugin-score-card | package.json |
+| @roadiehq/backstage-plugin-github-insights | package.json |
+| @backstage/plugin-catalog-unprocessed-entities | package.json |
+| @roadiehq/backstage-plugin-github-pull-requests | package.json |
+| @backstage/plugin-techdocs-module-addons-contrib | package.json |
+
+## Unused devDependencies (6)
+
+| Name | Location |
+|:----------------------------|:-------------|
+| cross-env | package.json |
+| @types/jquery | package.json |
+| @testing-library/dom | package.json |
+| @types/zen-observable | package.json |
+| @testing-library/react | package.json |
+| @testing-library/user-event | package.json |
+
diff --git a/packages/app-next/package.json b/packages/app-next/package.json
index 09cd302a4e..4d9ee93474 100644
--- a/packages/app-next/package.json
+++ b/packages/app-next/package.json
@@ -1,7 +1,12 @@
{
"name": "example-app-next",
- "version": "0.0.6-next.0",
+ "version": "0.0.6-next.2",
"private": true,
+ "repository": {
+ "type": "git",
+ "url": "https://github.com/backstage/backstage",
+ "directory": "packages/app-next"
+ },
"backstage": {
"role": "frontend"
},
diff --git a/packages/app-next/src/examples/pagesPlugin.tsx b/packages/app-next/src/examples/pagesPlugin.tsx
index c5069f99c3..826040a6cb 100644
--- a/packages/app-next/src/examples/pagesPlugin.tsx
+++ b/packages/app-next/src/examples/pagesPlugin.tsx
@@ -27,7 +27,9 @@ import { Route, Routes } from 'react-router-dom';
const indexRouteRef = createRouteRef();
const page1RouteRef = createRouteRef();
-export const externalPageXRouteRef = createExternalRouteRef();
+export const externalPageXRouteRef = createExternalRouteRef({
+ defaultTarget: 'pages.pageX',
+});
export const pageXRouteRef = createRouteRef();
// const page2RouteRef = createSubRouteRef({
// id: 'page2',
diff --git a/packages/app/CHANGELOG.md b/packages/app/CHANGELOG.md
index 370100920f..ca0d9ccc70 100644
--- a/packages/app/CHANGELOG.md
+++ b/packages/app/CHANGELOG.md
@@ -1,5 +1,160 @@
# 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
+
+- Updated dependencies
+ - @backstage/frontend-app-api@0.6.0-next.1
+ - @backstage/plugin-scaffolder-react@1.8.0-next.1
+ - @backstage/plugin-adr@0.6.13-next.1
+ - @backstage/plugin-catalog-graph@0.3.4-next.1
+ - @backstage/core-components@0.14.0-next.0
+ - @backstage/plugin-scaffolder@1.18.0-next.1
+ - @backstage/cli@0.25.2-next.1
+ - @backstage/catalog-model@1.4.4-next.0
+ - @backstage/plugin-explore@0.4.16-next.1
+ - @backstage/plugin-catalog@1.17.0-next.1
+ - @backstage/core-plugin-api@1.8.3-next.0
+ - @backstage/app-defaults@1.4.8-next.1
+ - @backstage/core-app-api@1.11.4-next.0
+ - @backstage/plugin-techdocs@1.10.0-next.1
+ - @backstage/plugin-azure-sites@0.1.19-next.1
+ - @backstage/plugin-home@0.6.2-next.1
+ - @backstage/plugin-catalog-import@0.10.6-next.1
+ - @backstage/plugin-catalog-react@1.9.4-next.1
+ - @backstage/plugin-devtools@0.1.9-next.1
+ - @backstage/plugin-graphiql@0.3.3-next.1
+ - @backstage/plugin-linguist@0.1.15-next.1
+ - @backstage/plugin-search@1.4.6-next.1
+ - @backstage/plugin-search-react@1.7.6-next.1
+ - @backstage/plugin-stack-overflow@0.1.25-next.1
+ - @backstage/plugin-tech-radar@0.6.13-next.1
+ - @backstage/plugin-user-settings@0.8.1-next.1
+ - @backstage/integration-react@1.1.24-next.0
+ - @backstage/plugin-airbrake@0.3.30-next.1
+ - @backstage/plugin-apache-airflow@0.2.20-next.0
+ - @backstage/plugin-api-docs@0.10.4-next.1
+ - @backstage/plugin-azure-devops@0.3.12-next.1
+ - @backstage/plugin-badges@0.2.54-next.1
+ - @backstage/plugin-catalog-unprocessed-entities@0.1.8-next.0
+ - @backstage/plugin-cloudbuild@0.4.0-next.1
+ - @backstage/plugin-code-coverage@0.2.23-next.1
+ - @backstage/plugin-cost-insights@0.12.19-next.1
+ - @backstage/plugin-dynatrace@8.0.4-next.1
+ - @backstage/plugin-entity-feedback@0.2.13-next.1
+ - @backstage/plugin-gcalendar@0.3.23-next.0
+ - @backstage/plugin-gcp-projects@0.3.46-next.0
+ - @backstage/plugin-github-actions@0.6.11-next.1
+ - @backstage/plugin-gocd@0.1.36-next.1
+ - @backstage/plugin-jenkins@0.9.5-next.1
+ - @backstage/plugin-kafka@0.3.30-next.1
+ - @backstage/plugin-kubernetes@0.11.5-next.1
+ - @backstage/plugin-kubernetes-cluster@0.0.6-next.1
+ - @backstage/plugin-lighthouse@0.4.15-next.1
+ - @backstage/plugin-microsoft-calendar@0.1.12-next.0
+ - @backstage/plugin-newrelic@0.3.45-next.0
+ - @backstage/plugin-newrelic-dashboard@0.3.5-next.1
+ - @backstage/plugin-nomad@0.1.11-next.1
+ - @backstage/plugin-octopus-deploy@0.2.12-next.1
+ - @backstage/plugin-org@0.6.20-next.1
+ - @backstage/plugin-pagerduty@0.7.2-next.1
+ - @backstage/plugin-playlist@0.2.4-next.1
+ - @backstage/plugin-puppetdb@0.1.13-next.1
+ - @backstage/plugin-rollbar@0.4.30-next.1
+ - @backstage/plugin-sentry@0.5.15-next.1
+ - @backstage/plugin-shortcuts@0.3.19-next.0
+ - @backstage/plugin-signals@0.0.1-next.1
+ - @backstage/plugin-stackstorm@0.1.11-next.0
+ - @backstage/plugin-tech-insights@0.3.22-next.1
+ - @backstage/plugin-techdocs-module-addons-contrib@1.1.5-next.1
+ - @backstage/plugin-techdocs-react@1.1.16-next.0
+ - @backstage/plugin-todo@0.2.34-next.1
+ - @backstage/config@1.1.1
+ - @backstage/theme@0.5.0
+ - @backstage/plugin-catalog-common@1.0.21-next.0
+ - @backstage/plugin-linguist-common@0.1.2
+ - @backstage/plugin-permission-react@0.4.20-next.0
+ - @backstage/plugin-search-common@1.2.10
+
## 0.2.92-next.0
### Patch Changes
diff --git a/packages/app/knip-report.md b/packages/app/knip-report.md
new file mode 100644
index 0000000000..f22347da9f
--- /dev/null
+++ b/packages/app/knip-report.md
@@ -0,0 +1,38 @@
+# Knip report
+
+## Unused dependencies (15)
+
+| Name | Location |
+|:----------------------------------|:-------------|
+| vite | package.json |
+| history | package.json |
+| react-router | package.json |
+| @octokit/rest | package.json |
+| zen-observable | package.json |
+| vite-plugin-html | package.json |
+| @material-ui/lab | package.json |
+| @backstage/theme | package.json |
+| @vitejs/plugin-react | package.json |
+| vite-plugin-node-polyfills | package.json |
+| @backstage/plugin-airbrake | package.json |
+| @backstage/frontend-app-api | package.json |
+| @backstage/plugin-azure-sites | package.json |
+| @backstage/plugin-search-common | package.json |
+| @backstage/plugin-linguist-common | package.json |
+
+## Unused devDependencies (5)
+
+| Name | Location |
+|:----------------------------|:-------------|
+| cross-env | package.json |
+| @types/jquery | package.json |
+| @testing-library/dom | package.json |
+| @types/zen-observable | package.json |
+| @testing-library/user-event | package.json |
+
+## Unlisted dependencies (1)
+
+| Name | Location |
+|:------------|:---------------------------------------------------------|
+| @rjsf/utils | src/components/scaffolder/customScaffolderExtensions.tsx |
+
diff --git a/packages/app/package.json b/packages/app/package.json
index 7b81260b8b..ae2fb203da 100644
--- a/packages/app/package.json
+++ b/packages/app/package.json
@@ -1,6 +1,6 @@
{
"name": "example-app",
- "version": "0.2.92-next.0",
+ "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:^",
diff --git a/packages/app/public/index.html b/packages/app/public/index.html
index a3c3ef19b8..231e96b309 100644
--- a/packages/app/public/index.html
+++ b/packages/app/public/index.html
@@ -41,7 +41,7 @@
href="<%= publicPath %>/safari-pinned-tab.svg"
color="#5bbad5"
/>
- <%= config.getString('app.title') %>
+ <%= config.getOptionalString('app.title') ?? 'Backstage' %>
<% if (config.has('app.datadogRum')) { %>