Merge branch 'master' into bui-new-surfaces
@@ -0,0 +1,5 @@
|
||||
---
|
||||
'@backstage/backend-defaults': patch
|
||||
---
|
||||
|
||||
Implementing `readTree` for `GoogleGcsReader`
|
||||
@@ -0,0 +1,5 @@
|
||||
---
|
||||
'@backstage/plugin-techdocs-backend': patch
|
||||
---
|
||||
|
||||
Some AWS `publisher` config options such as `region`, `endpoint`, `accountId` are now marked as `@visibility backend` instead of `secret`.
|
||||
@@ -0,0 +1,5 @@
|
||||
---
|
||||
'@backstage/create-app': patch
|
||||
---
|
||||
|
||||
Bumped create-app version.
|
||||
@@ -0,0 +1,5 @@
|
||||
---
|
||||
'@backstage/create-app': patch
|
||||
---
|
||||
|
||||
Bumped create-app version.
|
||||
@@ -0,0 +1,5 @@
|
||||
---
|
||||
'@backstage/plugin-home': minor
|
||||
---
|
||||
|
||||
Widget configurations are now only saved to storage when the Save button is explicitly clicked. Added a Cancel button that allows users to discard unsaved changes and revert to the last saved state.
|
||||
@@ -0,0 +1,5 @@
|
||||
---
|
||||
'@backstage/core-components': patch
|
||||
---
|
||||
|
||||
The MarkdownContent component now handles HTML content the same way as GitHub when rendering GitHub-flavored Markdown
|
||||
@@ -0,0 +1,5 @@
|
||||
---
|
||||
'@backstage/integration': patch
|
||||
---
|
||||
|
||||
Implementing `ScmIntegration` for `GoogleGcs`
|
||||
@@ -0,0 +1,5 @@
|
||||
---
|
||||
'@backstage/integration': patch
|
||||
---
|
||||
|
||||
Rollback the lowercase replacing in GitHub integration config
|
||||
@@ -206,5 +206,25 @@
|
||||
"@backstage/plugin-user-settings-backend": "0.3.9",
|
||||
"@backstage/plugin-user-settings-common": "0.0.1"
|
||||
},
|
||||
"changesets": []
|
||||
"changesets": [
|
||||
"better-ghosts-tell",
|
||||
"clever-streets-roll",
|
||||
"cold-dogs-study",
|
||||
"create-app-1766498726",
|
||||
"create-app-1767101113",
|
||||
"dependabot-aed8e01",
|
||||
"every-bears-add",
|
||||
"few-teams-punch",
|
||||
"hot-colts-float",
|
||||
"hungry-mugs-fall",
|
||||
"major-mangos-shine",
|
||||
"polite-pillows-accept",
|
||||
"proud-streets-switch",
|
||||
"shaggy-bats-film",
|
||||
"slick-laws-push",
|
||||
"thin-teams-roll",
|
||||
"twenty-candles-open",
|
||||
"weak-lemons-create",
|
||||
"wild-toys-retire"
|
||||
]
|
||||
}
|
||||
|
||||
@@ -0,0 +1,5 @@
|
||||
---
|
||||
'@backstage/create-app': patch
|
||||
---
|
||||
|
||||
Updated Dockerfile to use Node 24 and Debian Trixie
|
||||
@@ -0,0 +1,6 @@
|
||||
---
|
||||
'@backstage/plugin-catalog-graph': patch
|
||||
'@backstage/plugin-search': patch
|
||||
---
|
||||
|
||||
Update for the `qs` library bump: the old array limit setting has changed to be more strict; you can no longer just give a zero to mean unlimited. So we choose an arbitrary high value, to at least go higher than the default 20.
|
||||
@@ -0,0 +1,7 @@
|
||||
---
|
||||
description: General project guidelines for Backstage development
|
||||
globs:
|
||||
alwaysApply: true
|
||||
---
|
||||
|
||||
Follow the instructions at /.github/copilot-instructions.md
|
||||
@@ -1,11 +1,22 @@
|
||||
This is a TypeScript project structured as a monorepo using Yarn workspaces.
|
||||
Backstage is an open platform for building developer portals. This is a TypeScript monorepo using Yarn workspaces.
|
||||
|
||||
## Key Directories
|
||||
|
||||
- `/packages`: Core framework packages (prefixed `@backstage/`)
|
||||
- `/plugins`: Plugin packages (prefixed `@backstage/plugin-*`)
|
||||
- `/packages/app` and `/packages/backend`: Example app for local development
|
||||
- `/packages/app-next`: Example app using the new frontend system (NFS)
|
||||
- `/docs`: Documentation files
|
||||
|
||||
Packages prefixed with `core-` (e.g., `@backstage/core-plugin-api`) are part of the old frontend system. Packages prefixed with `frontend-` (e.g., `@backstage/frontend-plugin-api`) are part of the new frontend system (NFS). Packages prefixed with `backend-` (e.g., `@backstage/backend-plugin-api`) are part of the backend system.
|
||||
|
||||
## Code Standards
|
||||
|
||||
The following files contain guidelines for the project:
|
||||
|
||||
- `/CONTRIBUTING.md`: comprehensive contribution guidelines.
|
||||
- `/STYLE.md`: guidelines for code style.
|
||||
- `/REVIEWING.md`: guidelines for pull requests.
|
||||
- `/REVIEWING.md`: guidelines for pull requests and writing changesets.
|
||||
- `/SECURITY.md`: guidelines for security.
|
||||
- `/docs/architecture-decisions/`: contains the architecture decisions for the project.
|
||||
|
||||
@@ -19,10 +30,12 @@ Before any of these commands can be run, you need to run `yarn install` in the p
|
||||
- Code formatting: Use `yarn prettier --write <path>` to format code.
|
||||
- Lint: Use `yarn lint --fix` in the project root to run the linter.
|
||||
- API reports: Before submitting a pull request with changes to any package in the workspace, run `yarn build:api-reports` in the project root to generate API reports for all packages.
|
||||
- Dev server: Use `yarn start` to run the example app locally (frontend on :3000, backend on :7007).
|
||||
- Create: Use `yarn new` to scaffold new plugins, packages, or modules.
|
||||
|
||||
You MUST NOT create a release by running `yarn changesets version` or `yarn release` as part of any changes. Releases are created by separate workflows.
|
||||
|
||||
All changes that affect the published version of packages in the `/packages` and `/plugins` directories must be accompanied by a changeset. See the guidelines in `/REVIEWING.md` for information on how to write good changesets. Changesets are stored in the `/.changeset` directory. Breaking changes must be accompanied by a `minor` version bump for packages that below version `1.0.0`, or a `major` version bump for packages that are at version `1.0.0` or higher.
|
||||
All changes that affect the published version of packages in the `/packages` and `/plugins` directories must be accompanied by a changeset. Only non-private packages require changesets. See the guidelines in `/CONTRIBUTING.md#creating-changesets` for information on how to write good changesets. Changesets are stored in the `/.changeset` directory. Breaking changes must be accompanied by a `minor` version bump for packages below version `1.0.0`, or a `major` version bump for packages at version `1.0.0` or higher.
|
||||
|
||||
Never update ESLint, Prettier, or TypeScript configuration files unless specifically requested.
|
||||
|
||||
|
||||
@@ -523,6 +523,7 @@ transpile
|
||||
transpiled
|
||||
transpiler
|
||||
transpilers
|
||||
trixie
|
||||
truthy
|
||||
tsconfig
|
||||
TSDoc
|
||||
@@ -577,3 +578,4 @@ zoomable
|
||||
zsh
|
||||
resizable
|
||||
enums
|
||||
LLMs
|
||||
|
||||
@@ -122,6 +122,6 @@ jobs:
|
||||
uses: peter-evans/create-or-update-comment@71345be0265236311c031f5c7866368bd1eff043 # v4
|
||||
with:
|
||||
comment-id: ${{ steps.find-comment.outputs.comment-id }}
|
||||
issue-number: ${{ github.event.pull_request.number }}
|
||||
issue-number: ${{ needs.setup.outputs.pr-number }}
|
||||
body-path: comment.md
|
||||
edit-mode: replace
|
||||
|
||||
@@ -27,7 +27,7 @@ jobs:
|
||||
run: git fetch --depth 1 origin ${{ github.base_ref }}
|
||||
|
||||
- name: setup-node
|
||||
uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4.4.0
|
||||
uses: actions/setup-node@395ad3262231945c25e8478fd5baf05154b1d79f # v6.1.0
|
||||
with:
|
||||
node-version: 22.x
|
||||
registry-url: https://registry.npmjs.org/
|
||||
|
||||
@@ -35,7 +35,7 @@ jobs:
|
||||
- uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
|
||||
|
||||
- name: use node.js ${{ matrix.node-version }}
|
||||
uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4.4.0
|
||||
uses: actions/setup-node@395ad3262231945c25e8478fd5baf05154b1d79f # v6.1.0
|
||||
with:
|
||||
node-version: ${{ matrix.node-version }}
|
||||
registry-url: https://registry.npmjs.org/ # Needed for auth
|
||||
@@ -71,7 +71,7 @@ jobs:
|
||||
- uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
|
||||
|
||||
- name: use node.js ${{ matrix.node-version }}
|
||||
uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4.4.0
|
||||
uses: actions/setup-node@395ad3262231945c25e8478fd5baf05154b1d79f # v6.1.0
|
||||
with:
|
||||
node-version: ${{ matrix.node-version }}
|
||||
registry-url: https://registry.npmjs.org/ # Needed for auth
|
||||
@@ -220,7 +220,7 @@ jobs:
|
||||
run: git fetch origin ${{ github.event.pull_request.base.ref }}
|
||||
|
||||
- name: use node.js ${{ matrix.node-version }}
|
||||
uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4.4.0
|
||||
uses: actions/setup-node@395ad3262231945c25e8478fd5baf05154b1d79f # v6.1.0
|
||||
with:
|
||||
node-version: ${{ matrix.node-version }}
|
||||
registry-url: https://registry.npmjs.org/ # Needed for auth
|
||||
|
||||
@@ -31,7 +31,7 @@ jobs:
|
||||
ref: ${{ github.event.client_payload.version && env.RELEASE_VERSION || github.ref }}
|
||||
|
||||
- name: use node.js ${{ matrix.node-version }}
|
||||
uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4.4.0
|
||||
uses: actions/setup-node@395ad3262231945c25e8478fd5baf05154b1d79f # v6.1.0
|
||||
with:
|
||||
node-version: ${{ matrix.node-version }}
|
||||
registry-url: https://registry.npmjs.org/ # Needed for auth
|
||||
|
||||
@@ -59,7 +59,7 @@ jobs:
|
||||
ref: refs/tags/${{ steps.find-release.outputs.result }}
|
||||
|
||||
- name: Use Node.js 22.x
|
||||
uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4.4.0
|
||||
uses: actions/setup-node@395ad3262231945c25e8478fd5baf05154b1d79f # v6.1.0
|
||||
with:
|
||||
node-version: 22.x
|
||||
registry-url: https://registry.npmjs.org/ # Needed for auth
|
||||
@@ -143,7 +143,7 @@ jobs:
|
||||
uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
|
||||
|
||||
- name: Use Node.js 22.x
|
||||
uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4.4.0
|
||||
uses: actions/setup-node@395ad3262231945c25e8478fd5baf05154b1d79f # v6.1.0
|
||||
with:
|
||||
node-version: 22.x
|
||||
registry-url: https://registry.npmjs.org/ # Needed for auth
|
||||
@@ -245,7 +245,7 @@ jobs:
|
||||
egress-policy: audit
|
||||
|
||||
- name: Use Node.js 22.x
|
||||
uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4.4.0
|
||||
uses: actions/setup-node@395ad3262231945c25e8478fd5baf05154b1d79f # v6.1.0
|
||||
with:
|
||||
node-version: 22.x
|
||||
registry-url: https://registry.npmjs.org/ # Needed for auth
|
||||
|
||||
@@ -71,7 +71,7 @@ jobs:
|
||||
- uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
|
||||
|
||||
- name: use node.js ${{ matrix.node-version }}
|
||||
uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4.4.0
|
||||
uses: actions/setup-node@395ad3262231945c25e8478fd5baf05154b1d79f # v6.1.0
|
||||
with:
|
||||
node-version: ${{ matrix.node-version }}
|
||||
registry-url: https://registry.npmjs.org/ # Needed for auth
|
||||
|
||||
@@ -26,7 +26,7 @@ jobs:
|
||||
uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6
|
||||
|
||||
- name: Setup Node.js
|
||||
uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4.4.0
|
||||
uses: actions/setup-node@395ad3262231945c25e8478fd5baf05154b1d79f # v6.1.0
|
||||
with:
|
||||
node-version: 22.x
|
||||
registry-url: https://registry.npmjs.org/ # Needed for auth
|
||||
|
||||
@@ -16,7 +16,7 @@ jobs:
|
||||
uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
|
||||
|
||||
- name: Use Node.js 22.x
|
||||
uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4.4.0
|
||||
uses: actions/setup-node@395ad3262231945c25e8478fd5baf05154b1d79f # v6.1.0
|
||||
with:
|
||||
node-version: 22.x
|
||||
registry-url: https://registry.npmjs.org/ # Needed for auth
|
||||
|
||||
@@ -20,7 +20,7 @@ jobs:
|
||||
fetch-depth: 0
|
||||
|
||||
- name: use node.js ${{ matrix.node-version }}
|
||||
uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4.4.0
|
||||
uses: actions/setup-node@395ad3262231945c25e8478fd5baf05154b1d79f # v6.1.0
|
||||
with:
|
||||
node-version: ${{ matrix.node-version }}
|
||||
registry-url: https://registry.npmjs.org/ # Needed for auth
|
||||
|
||||
@@ -37,7 +37,7 @@ jobs:
|
||||
token: ${{ secrets.GH_SERVICE_ACCOUNT_TOKEN }}
|
||||
|
||||
- name: Use Node.js 22.x
|
||||
uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4.4.0
|
||||
uses: actions/setup-node@395ad3262231945c25e8478fd5baf05154b1d79f # v6.1.0
|
||||
with:
|
||||
node-version: 22.x
|
||||
registry-url: https://registry.npmjs.org/ # Needed for auth
|
||||
|
||||
@@ -19,7 +19,7 @@ jobs:
|
||||
ref: v${{ github.event.client_payload.version }}
|
||||
|
||||
- name: Use Node.js 22.x
|
||||
uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4.4.0
|
||||
uses: actions/setup-node@395ad3262231945c25e8478fd5baf05154b1d79f # v6.1.0
|
||||
with:
|
||||
node-version: 22.x
|
||||
registry-url: https://registry.npmjs.org/ # Needed for auth
|
||||
|
||||
@@ -19,7 +19,7 @@ jobs:
|
||||
- uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
|
||||
|
||||
- name: Use Node.js 22.x
|
||||
uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4.4.0
|
||||
uses: actions/setup-node@395ad3262231945c25e8478fd5baf05154b1d79f # v6.1.0
|
||||
with:
|
||||
node-version: 22.x
|
||||
registry-url: https://registry.npmjs.org/ # Needed for auth
|
||||
|
||||
@@ -26,7 +26,7 @@ jobs:
|
||||
token: ${{ secrets.GH_SERVICE_ACCOUNT_TOKEN }}
|
||||
|
||||
- name: Use Node.js 22.x
|
||||
uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4.4.0
|
||||
uses: actions/setup-node@395ad3262231945c25e8478fd5baf05154b1d79f # v6.1.0
|
||||
with:
|
||||
node-version: 22.x
|
||||
registry-url: https://registry.npmjs.org/ # Needed for auth
|
||||
|
||||
@@ -26,7 +26,7 @@ jobs:
|
||||
|
||||
- uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
|
||||
- name: Use Node.js 22.x
|
||||
uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4.4.0
|
||||
uses: actions/setup-node@395ad3262231945c25e8478fd5baf05154b1d79f # v6.1.0
|
||||
with:
|
||||
node-version: 22.x
|
||||
- name: yarn install
|
||||
|
||||
@@ -34,7 +34,7 @@ jobs:
|
||||
fetch-depth: 10000 # Required to retrieve git history
|
||||
|
||||
- name: Use node.js ${{ matrix.node-version }}
|
||||
uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4.4.0
|
||||
uses: actions/setup-node@395ad3262231945c25e8478fd5baf05154b1d79f # v6.1.0
|
||||
with:
|
||||
node-version: ${{ matrix.node-version }}
|
||||
registry-url: https://registry.npmjs.org/ # Needed for auth
|
||||
|
||||
@@ -55,7 +55,7 @@ jobs:
|
||||
git config --global user.name 'GitHub e2e user'
|
||||
|
||||
- name: use node.js ${{ matrix.node-version }}
|
||||
uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4.4.0
|
||||
uses: actions/setup-node@395ad3262231945c25e8478fd5baf05154b1d79f # v6.1.0
|
||||
with:
|
||||
node-version: ${{ matrix.node-version }}
|
||||
registry-url: https://registry.npmjs.org/ # Needed for auth
|
||||
|
||||
@@ -42,7 +42,7 @@ jobs:
|
||||
python-version: '3.9'
|
||||
|
||||
- name: use node.js ${{ matrix.node-version }}
|
||||
uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4.4.0
|
||||
uses: actions/setup-node@395ad3262231945c25e8478fd5baf05154b1d79f # v6.1.0
|
||||
with:
|
||||
node-version: ${{ matrix.node-version }}
|
||||
- name: yarn install
|
||||
|
||||
@@ -52,7 +52,7 @@ jobs:
|
||||
git config --global user.name 'GitHub e2e user'
|
||||
|
||||
- name: use node.js ${{ matrix.node-version }}
|
||||
uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4.4.0
|
||||
uses: actions/setup-node@395ad3262231945c25e8478fd5baf05154b1d79f # v6.1.0
|
||||
with:
|
||||
node-version: ${{ matrix.node-version }}
|
||||
registry-url: https://registry.npmjs.org/ # Needed for auth
|
||||
|
||||
@@ -64,7 +64,7 @@ jobs:
|
||||
ref: refs/tags/${{ steps.find-release.outputs.result }}
|
||||
|
||||
- name: Use Node.js 22.x
|
||||
uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4.4.0
|
||||
uses: actions/setup-node@395ad3262231945c25e8478fd5baf05154b1d79f # v6.1.0
|
||||
with:
|
||||
node-version: 22.x
|
||||
registry-url: https://registry.npmjs.org/ # Needed for auth
|
||||
@@ -145,7 +145,7 @@ jobs:
|
||||
uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
|
||||
|
||||
- name: Use Node.js 22.x
|
||||
uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4.4.0
|
||||
uses: actions/setup-node@395ad3262231945c25e8478fd5baf05154b1d79f # v6.1.0
|
||||
with:
|
||||
node-version: 22.x
|
||||
registry-url: https://registry.npmjs.org/ # Needed for auth
|
||||
@@ -241,7 +241,7 @@ jobs:
|
||||
- uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
|
||||
|
||||
- name: Use Node.js 22.x
|
||||
uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4.4.0
|
||||
uses: actions/setup-node@395ad3262231945c25e8478fd5baf05154b1d79f # v6.1.0
|
||||
with:
|
||||
node-version: 22.x
|
||||
- uses: actions/setup-python@a26af69be951a213d495a4c3e4e4022e16d87065 # v5
|
||||
|
||||
@@ -22,7 +22,7 @@ jobs:
|
||||
- uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
|
||||
|
||||
- name: Use Node.js 22.x
|
||||
uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4.4.0
|
||||
uses: actions/setup-node@395ad3262231945c25e8478fd5baf05154b1d79f # v6.1.0
|
||||
with:
|
||||
node-version: 22.x
|
||||
|
||||
|
||||
@@ -36,7 +36,7 @@ jobs:
|
||||
- uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
|
||||
|
||||
- name: use node.js ${{ matrix.node-version }}
|
||||
uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4.4.0
|
||||
uses: actions/setup-node@395ad3262231945c25e8478fd5baf05154b1d79f # v6.1.0
|
||||
with:
|
||||
node-version: ${{ matrix.node-version }}
|
||||
registry-url: https://registry.npmjs.org/ # Needed for auth
|
||||
|
||||
@@ -17,6 +17,7 @@ If you need help, just jump into our [Discord chatroom](https://discord.gg/backs
|
||||
- [Accessibility](#accessibility)
|
||||
- [Get Started!](#get-started)
|
||||
- [Coding Guidelines](#coding-guidelines)
|
||||
- [AI Use Policy and Guidelines](#ai-use-policy-and-guidelines)
|
||||
- [Documentation Guidelines](#documentation-guidelines)
|
||||
- [Package Scripts](#package-scripts)
|
||||
- [Local configuration](#local-configuration)
|
||||
@@ -128,6 +129,37 @@ If there are any updates in `markdown` file please make sure to run `yarn run li
|
||||
|
||||
The Backstage development environment does not require any specific editor, but it is intended to be used with one that has built-in linting and type-checking. The development server does not include any checks by default, but they can be enabled using the `--check` flag. Note that using the flag may consume more system resources and slow things down.
|
||||
|
||||
## AI Use Policy and Guidelines
|
||||
|
||||
Our goal in the Backstage project is to develop an excellent software system. This requires careful attention to detail in every change we integrate. Maintainer time and attention is very limited, so it's important that changes you ask us to review represent your _best_ work.
|
||||
|
||||
You are encouraged to use tools that help you write good code, including AI tools. However, you always need to understand and explain the changes you're proposing to make, whether or not you used an LLM as part of your process to produce them. The answer to "Why did you make change X?" should never be "I'm not sure. The AI did it."
|
||||
|
||||
**Do not submit an AI-generated PR you haven't personally understood and tested**, as this wastes maintainers' time. PRs that appear to violate this guideline will be closed without review. If you do submit a largely AI-generated PR, clearly mark it as such in the description—maintainers may still close it without further review if it does not seem worthwhile.
|
||||
|
||||
### Using AI as a Coding Assistant
|
||||
|
||||
1. Don't skip **becoming familiar with the part of the codebase** you're working on. This will let you write better prompts and validate their output if you use an LLM. Code assistants can be a useful search engine/discovery tool in this process, but don't trust claims they make about how Backstage works. LLMs are often wrong, even about details that are clearly answered in the [Backstage documentation](https://backstage.io/docs).
|
||||
2. Split up your changes into **coherent commits**, even if an LLM generates them all in one go. See our section on [Creating Changesets](#creating-changesets) for guidance on documenting your changes.
|
||||
3. Don't simply ask an LLM to add **code comments**, as it will likely produce a bunch of text that unnecessarily explains what's already clear from the code. If using an LLM to generate comments, be really specific in your request, demand succinctness, and carefully edit the result.
|
||||
|
||||
### Using AI for Communication
|
||||
|
||||
Backstage contributors are expected to communicate with intention, to avoid wasting maintainer time with long, sloppy writing. We strongly prefer clear and concise communication about points that actually require discussion over long AI-generated comments.
|
||||
|
||||
When you use an LLM to write a message for you, it remains **your responsibility** to read through the whole thing and make sure that it makes sense to you and represents your ideas concisely. A good rule of thumb is that if you can't make yourself carefully read some LLM output that you generated, nobody else wants to read it either.
|
||||
|
||||
Here are some concrete guidelines for using LLMs as part of your communication workflows:
|
||||
|
||||
1. When writing a pull request description, **do not include anything that's obvious** from looking at your changes directly (e.g., files changed, functions updated, etc.). Instead, focus on the _why_ behind your changes. Don't ask an LLM to generate a PR description on your behalf based on your code changes, as it will simply regurgitate the information that's already there.
|
||||
2. Similarly, when responding to a pull request comment, **explain _your_ reasoning**. Don't prompt an LLM to re-describe what can already be seen from the code.
|
||||
3. Verify that **everything you write is accurate**, whether or not an LLM generated any part of it. Backstage's maintainers will be unable to review your contributions if you misrepresent your work (e.g., wrongly describing your code changes, their effect, or your testing process).
|
||||
4. Complete all parts of the **PR description template**, including screenshots and the checklist. Don't simply overwrite the template with LLM output.
|
||||
5. **Clarity and succinctness** are much more important than perfect grammar, so you shouldn't feel obliged to pass your writing through an LLM. If you do ask an LLM to clean up your writing style, be sure it does _not_ make it longer in the process. Demand succinctness in your prompt.
|
||||
6. Quoting an LLM answer is usually less helpful than linking to **relevant primary sources**, like source code, [Backstage documentation](https://backstage.io/docs), or reference materials. If you do need to quote an LLM answer in a discussion, clearly distinguish LLM output from your own thoughts.
|
||||
|
||||
If you have questions about AI usage or need help, feel free to ask in [Discord](https://discord.gg/backstage-687207715902193673).
|
||||
|
||||
## Documentation Guidelines
|
||||
|
||||
Contributing to the docs is one of the best ways to start getting involved with Backstage. The documentation site is often the first stop for anyone using or exploring Backstage, so even small improvements can have a big impact!
|
||||
|
||||
@@ -1603,9 +1603,9 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@uiw/codemirror-extensions-basic-setup@npm:4.25.3":
|
||||
version: 4.25.3
|
||||
resolution: "@uiw/codemirror-extensions-basic-setup@npm:4.25.3"
|
||||
"@uiw/codemirror-extensions-basic-setup@npm:4.25.4":
|
||||
version: 4.25.4
|
||||
resolution: "@uiw/codemirror-extensions-basic-setup@npm:4.25.4"
|
||||
dependencies:
|
||||
"@codemirror/autocomplete": "npm:^6.0.0"
|
||||
"@codemirror/commands": "npm:^6.0.0"
|
||||
@@ -1622,7 +1622,7 @@ __metadata:
|
||||
"@codemirror/search": ">=6.0.0"
|
||||
"@codemirror/state": ">=6.0.0"
|
||||
"@codemirror/view": ">=6.0.0"
|
||||
checksum: 10/6ece4ee0fd6433a81bb6b2e18623db3df097d31d13c53184fbf4355cf3aaac5201d73dfa984f58390f0f6f7cfb631bd2ee20f3613b99b7259e2e1352e954c179
|
||||
checksum: 10/8fa523af7cb4ea36db5263221e5a34ecbf18e57ee5c57fbb46f7bfd08ff08523b9fe2c5ae376117d98edaa1a904d1a2966123710e0d866a78ec2d1359955773c
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
@@ -1642,14 +1642,14 @@ __metadata:
|
||||
linkType: hard
|
||||
|
||||
"@uiw/react-codemirror@npm:^4.23.7":
|
||||
version: 4.25.3
|
||||
resolution: "@uiw/react-codemirror@npm:4.25.3"
|
||||
version: 4.25.4
|
||||
resolution: "@uiw/react-codemirror@npm:4.25.4"
|
||||
dependencies:
|
||||
"@babel/runtime": "npm:^7.18.6"
|
||||
"@codemirror/commands": "npm:^6.1.0"
|
||||
"@codemirror/state": "npm:^6.1.1"
|
||||
"@codemirror/theme-one-dark": "npm:^6.0.0"
|
||||
"@uiw/codemirror-extensions-basic-setup": "npm:4.25.3"
|
||||
"@uiw/codemirror-extensions-basic-setup": "npm:4.25.4"
|
||||
codemirror: "npm:^6.0.0"
|
||||
peerDependencies:
|
||||
"@babel/runtime": ">=7.11.0"
|
||||
@@ -1659,7 +1659,7 @@ __metadata:
|
||||
codemirror: ">=6.0.0"
|
||||
react: ">=17.0.0"
|
||||
react-dom: ">=17.0.0"
|
||||
checksum: 10/a3ece671a48cce623da6c9d890f07bdbb1597b2fb2a6f8f6ef65f2b14b5d5b4fa90791476539b4fba3ac13d226fe00d283a5165d3632f34f5db3b49139a8887d
|
||||
checksum: 10/679966cfa5cc2e7d5b7c8b40060018bebfc3a2d66492672c64e659e1c719cedd7a10ed7fb3aa014d77c42927581c4ebdf6760ab56568225781798b35dc13b8c6
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
|
||||
|
Before Width: | Height: | Size: 306 KiB After Width: | Height: | Size: 122 KiB |
|
After Width: | Height: | Size: 24 KiB |
|
Before Width: | Height: | Size: 132 KiB After Width: | Height: | Size: 111 KiB |
@@ -53,7 +53,7 @@ Once the host build is complete, we are ready to build our image. The following
|
||||
`Dockerfile` is included when creating a new app with `@backstage/create-app`:
|
||||
|
||||
```dockerfile
|
||||
FROM node:22-bookworm-slim
|
||||
FROM node:24-trixie-slim
|
||||
|
||||
# Set Python interpreter for `node-gyp` to use
|
||||
ENV PYTHON=/usr/bin/python3
|
||||
@@ -178,7 +178,7 @@ the repo root:
|
||||
|
||||
```dockerfile
|
||||
# Stage 1 - Create yarn install skeleton layer
|
||||
FROM node:22-bookworm-slim AS packages
|
||||
FROM node:24-trixie-slim AS packages
|
||||
|
||||
WORKDIR /app
|
||||
COPY backstage.json package.json yarn.lock ./
|
||||
@@ -193,7 +193,7 @@ COPY plugins plugins
|
||||
RUN find packages \! -name "package.json" -mindepth 2 -maxdepth 2 -exec rm -rf {} \+
|
||||
|
||||
# Stage 2 - Install dependencies and build packages
|
||||
FROM node:22-bookworm-slim AS build
|
||||
FROM node:24-trixie-slim AS build
|
||||
|
||||
# Set Python interpreter for `node-gyp` to use
|
||||
ENV PYTHON=/usr/bin/python3
|
||||
@@ -231,7 +231,7 @@ RUN mkdir packages/backend/dist/skeleton packages/backend/dist/bundle \
|
||||
&& tar xzf packages/backend/dist/bundle.tar.gz -C packages/backend/dist/bundle
|
||||
|
||||
# Stage 3 - Build the actual backend image and install production dependencies
|
||||
FROM node:22-bookworm-slim
|
||||
FROM node:24-trixie-slim
|
||||
|
||||
# Set Python interpreter for `node-gyp` to use
|
||||
ENV PYTHON=/usr/bin/python3
|
||||
|
||||
@@ -698,16 +698,16 @@ import { SidebarContent } from './Sidebar';
|
||||
|
||||
export const navModule = createFrontendModule({
|
||||
pluginId: 'app',
|
||||
extensions: [sidebarContent],
|
||||
extensions: [SidebarContent],
|
||||
});
|
||||
```
|
||||
|
||||
Then in the actual implementation for the `sidebarContent` extension, you can provide something like the following, where you implement the entire `Sidebar` component.
|
||||
Then in the actual implementation for the `SidebarContent` extension, you can provide something like the following, where you implement the entire `Sidebar` component.
|
||||
|
||||
```tsx title="in packages/app/src/modules/nav/Sidebar.tsx"
|
||||
import { NavContentBlueprint } from '@backstage/frontend-plugin-api';
|
||||
|
||||
export const sidebarContent = NavContentBlueprint.make({
|
||||
export const SidebarContent = NavContentBlueprint.make({
|
||||
params: {
|
||||
component: ({ items }) => (
|
||||
<Sidebar>
|
||||
|
||||
@@ -129,13 +129,13 @@ You can run Postgres in a Docker container, this is great for local development
|
||||
First we need to pull down the container image, we'll use Postgres 17, check out the [Postgres Version Policy](../../overview/versioning-policy.md#postgresql-releases) to learn which versions are supported.
|
||||
|
||||
```shell
|
||||
docker pull postgres:17.0-bookworm
|
||||
docker pull postgres:17.0-trixie
|
||||
```
|
||||
|
||||
Then we just need to start up the container.
|
||||
|
||||
```shell
|
||||
docker run -d --name postgres --restart=always -p 5432:5432 -e POSTGRES_PASSWORD=<secret> postgres:17.0-bookworm
|
||||
docker run -d --name postgres --restart=always -p 5432:5432 -e POSTGRES_PASSWORD=<secret> postgres:17.0-trixie
|
||||
```
|
||||
|
||||
This will run Postgres in the background for you, but remember to start it up again when you reboot your system.
|
||||
@@ -149,7 +149,7 @@ version: '4'
|
||||
|
||||
services:
|
||||
postgres:
|
||||
image: postgres:17.0-bookworm
|
||||
image: postgres:17.0-trixie
|
||||
environment:
|
||||
POSTGRES_USER: postgres
|
||||
POSTGRES_PASSWORD: <secret>
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
---
|
||||
id: index
|
||||
title: Creating your Backstage App
|
||||
sidebar_label: Introduction
|
||||
description: How to install Backstage for your own use.
|
||||
title: Standalone Installation
|
||||
sidebar_label: Standalone Installation
|
||||
description: How to create and run a Standalone Backstage.
|
||||
---
|
||||
|
||||
Audience: Developers and Admins
|
||||
@@ -11,11 +11,11 @@ Audience: Developers and Admins
|
||||
It is not required, although recommended to have a basic understanding of [Yarn](https://www.pluralsight.com/guides/yarn-a-package-manager-for-node-js) and [npm](https://docs.npmjs.com/about-npm) before starting this guide.
|
||||
:::
|
||||
|
||||
## Summary
|
||||
## Overview
|
||||
|
||||
This guide walks through how to get started creating your very own Backstage customizable app. This is the first step in evaluating, developing on, or demoing Backstage.
|
||||
This guide walks through how to create your own Backstage customizable app. This is the first step in evaluating, developing on, or demoing Backstage.
|
||||
|
||||
By the end of this guide, you will have a standalone Backstage installation running locally with a `SQLite` database and demo content. To be clear, this is not a production-ready installation, and it does not contain information specific to your organization.
|
||||
By the end of this guide, you will have a standalone Backstage installation running locally with an in-memory `SQLite` database and demo content. To be clear, this is not a production-ready installation, and it does not contain information specific to your organization until you set up integrations with your specific data sources!
|
||||
|
||||
:::note Contributors
|
||||
|
||||
@@ -23,46 +23,9 @@ If you are planning to contribute a new feature or bug fix to the Backstage proj
|
||||
|
||||
:::
|
||||
|
||||
## Prerequisites
|
||||
The instructions make use of `npx`. `npx` is a tool that comes preinstalled with Node.js and lets you run commands straight from `npm` or other registries.
|
||||
|
||||
This guide also assumes a basic understanding of working on a Linux based operating system and have some experience with the terminal, specifically, these commands: `npm`, `yarn`.
|
||||
|
||||
- Access to a Unix-based operating system, such as Linux, macOS or
|
||||
[Windows Subsystem for Linux](https://docs.microsoft.com/en-us/windows/wsl/)
|
||||
- A GNU-like build environment available at the command line.
|
||||
For example, on Debian/Ubuntu you will want to have the `make` and `build-essential` packages installed.
|
||||
On macOS, you will want to run `xcode-select --install` to get the XCode command line build tooling in place.
|
||||
- An account with elevated rights to install the dependencies
|
||||
- `curl` or `wget` installed
|
||||
- Node.js [Active LTS Release](../overview/versioning-policy.md#nodejs-releases) installed using one of these
|
||||
methods:
|
||||
- Using `nvm` (recommended)
|
||||
- [Installing nvm](https://github.com/nvm-sh/nvm#install--update-script)
|
||||
- [Install and change Node version with nvm](https://nodejs.org/en/download/package-manager/#nvm)
|
||||
- Node 20 is a good starting point, this can be installed using `nvm install lts/iron`
|
||||
- [Binary Download](https://nodejs.org/en/download/)
|
||||
- [Package manager](https://nodejs.org/en/download/package-manager/)
|
||||
- [Using NodeSource packages](https://github.com/nodesource/distributions/blob/master/README.md)
|
||||
- `yarn` [Installation](https://yarnpkg.com/getting-started/install)
|
||||
- Backstage currently uses Yarn 4.4.1, once you've ran `corepack enable` you'll want to then run `yarn set version 4.4.1`
|
||||
- `docker` [installation](https://docs.docker.com/engine/install/)
|
||||
- `git` [installation](https://github.com/git-guides/install-git)
|
||||
- If the system is not directly accessible over your network the following ports
|
||||
need to be opened: 3000, 7007. This is quite uncommon, unless you're installing in a container, VM or remote system.
|
||||
|
||||
## 1. Create your Backstage App
|
||||
|
||||
:::caution
|
||||
|
||||
The Backstage app we'll be creating will only have demo data until we set up integrations with your specific data sources!
|
||||
|
||||
:::
|
||||
|
||||
To install the Backstage Standalone app, we will make use of `npx`. `npx` is a tool that comes preinstalled with Node.js and lets you run commands straight from `npm` or other registries. Before we run the command, let's discuss what it does.
|
||||
|
||||
This command will create a new directory with a Backstage app inside. The wizard will ask you for the name of the app. This name will be created as subdirectory in your current working directory.
|
||||
|
||||

|
||||
This command creates a new directory with a Backstage app inside. The wizard will ask you for the name of the app. This name will be created as a subdirectory in your current working directory.
|
||||
|
||||
Inside that directory, it will generate all the files and folder structure
|
||||
needed for you to run your app.
|
||||
@@ -100,65 +63,122 @@ app
|
||||
and [TechDocs](https://backstage.io/docs/features/techdocs/)
|
||||
amongst other things.
|
||||
|
||||
Now, that we know what it does, let's run it!
|
||||
## Prerequisites
|
||||
|
||||
```bash
|
||||
npx @backstage/create-app@latest
|
||||
```
|
||||
This guide also assumes a basic understanding of working on a Linux based operating system and have some experience with the terminal, specifically, these commands: `npm`, `yarn`.
|
||||
|
||||
- A minimum of 20 GB disk space to run the standalone Backstage application with demo data. NOTE: As you add more modules and plugins to an installation, the disk space requirements will increase, accordingly.
|
||||
- A minimum of 6 GB memory.
|
||||
- Access to a Unix-based operating system, such as Linux, macOS or
|
||||
[Windows Subsystem for Linux](https://docs.microsoft.com/en-us/windows/wsl/). The Linux version must support the required Node.js version.
|
||||
- A GNU-like build environment available at the command line.
|
||||
For example, on Debian/Ubuntu you will want to have the `make` and `build-essential` packages installed.
|
||||
On macOS, you will want to run `xcode-select --install` to get the XCode command line build tooling in place.
|
||||
- An account with elevated rights to install the dependencies
|
||||
- `curl` or `wget` installed
|
||||
- Node.js [Active LTS Release](../overview/versioning-policy.md#nodejs-releases) installed using one of these
|
||||
methods:
|
||||
- Using `nvm` (recommended)
|
||||
- [Installing nvm](https://github.com/nvm-sh/nvm#install--update-script)
|
||||
- [Install and change Node version with nvm](https://nodejs.org/en/download/package-manager/#nvm)
|
||||
- Node 24 is a good starting point, this can be installed using `nvm install lts/krypton`
|
||||
- [Binary Download](https://nodejs.org/en/download/)
|
||||
- [Package manager](https://nodejs.org/en/download/package-manager/)
|
||||
- [Using NodeSource packages](https://github.com/nodesource/distributions/blob/master/README.md)
|
||||
- Install the `isolated-vm` module, following their [requirements section](https://github.com/laverdet/isolated-vm#requirements).
|
||||
- `yarn` [Installation](https://yarnpkg.com/getting-started/install)
|
||||
- Backstage currently uses Yarn 4.4.1, once you've ran `corepack enable` you'll want to then run `yarn set version 4.4.1`
|
||||
- `docker` [installation](https://docs.docker.com/engine/install/)
|
||||
- `git` [installation](https://github.com/git-guides/install-git)
|
||||
- If the system is not directly accessible over your network the following ports
|
||||
need to be opened: 3000, 7007. This is quite uncommon, unless you're installing in a container, VM or remote system.
|
||||
|
||||
## Creating and running a Backstage application
|
||||
|
||||
This may take a few minutes to fully install everything. Don't stress if the loading seems to be spinning nonstop, there's a lot going on in the background.
|
||||
|
||||
:::note
|
||||
To create the application:
|
||||
|
||||
If this fails on the `yarn install` step, it's likely that you will need to install some additional dependencies which are used to configure `isolated-vm`. You can find out more in their [requirements section](https://github.com/laverdet/isolated-vm#requirements), and then run `yarn install` manually again after you've completed those steps.
|
||||
1. Type the following command to install the Backstage application.
|
||||
|
||||
:::
|
||||
```bash
|
||||
npx @backstage/create-app@latest
|
||||
```
|
||||
|
||||
## 2. Run the Backstage app
|
||||
2. If this is the first time that you are installing a Backstage application on this device, the following question is displayed. Enter `y` and select `Enter` to proceed with the installation.
|
||||
|
||||
```
|
||||
Need to install the following packages:
|
||||
@backstage/create-app@0.7.4
|
||||
ok to proceed? (y)
|
||||
```
|
||||
|
||||
3. Enter the name for your application and select `Enter`. This is the root directory of your application. In this example, the name is set to `my-backstage-app`.
|
||||
|
||||

|
||||
|
||||
Your Backstage app is fully installed and ready to be run! Now that the installation is complete, you can go to the application directory and start the app using the `yarn start` command. The `yarn start` command will run both the frontend and backend as separate processes (named `[0]` and `[1]`) in the same window.
|
||||
|
||||
```bash
|
||||
cd my-backstage-app # your app name
|
||||
yarn start
|
||||
To run the application:
|
||||
|
||||
1. Change to the root directory of your Backstage app. This is the same as the name of your application that you provided during the installation. In this example, it is `my-backstage-app`.
|
||||
|
||||
```bash
|
||||
cd my-backstage-app
|
||||
```
|
||||
|
||||
2. Start the Backstage application.
|
||||
|
||||
```bash
|
||||
yarn start
|
||||
```
|
||||
|
||||
As the frontend and backend are starting, you will see output similar to the following. The output shows that the app and backend are starting up with the configuration coming from `app-config.yaml`. You will see the plugins being initialized, and authorization and permissions being setup. In addition you will see a series of REST API calls for those plugins that use a service backend, such as the service catalog.
|
||||
|
||||
```
|
||||
Starting app, backend
|
||||
Loaded config from app-config.yaml
|
||||
.
|
||||
.
|
||||
2025-10-15T12:26:41.564Z backstage info Plugin initialization started: 'app', 'proxy', 'scaffolder', 'techdocs', 'auth', 'catalog', 'permission', 'search', 'kubernetes', 'notifications', 'signals' type="initialization"
|
||||
Rspack compiled successfully
|
||||
.
|
||||
.
|
||||
2025-10-15T15:17:21.130Z auth info Created new signing key eec1a9e4-4395-4698-9a9f-f1b5cbcf152b component="token-factory"
|
||||
2025-10-15T15:17:21.139Z auth info Issuing token for user:development/guest, with entities user:development/guest component="token-factory"
|
||||
2025-10-15T15:17:21.223Z rootHttpRouter info [2025-10-15T15:17:21.223Z] "GET /api/auth/guest/refresh HTTP/1.1" 200 802 "http://localhost:3000/" "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:143.0) Gecko/20100101 Firefox/143.0" type="incomingRequest" date="2025-10-15T15:17:21.223Z" method="GET" url="/api/auth/guest/refresh" status=200 httpVersion="1.1" userAgent="Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:143.0) Gecko/20100101 Firefox/143.0" contentLength=802 referrer="http://localhost:3000/"
|
||||
.
|
||||
.
|
||||
2025-10-15T15:17:24.051Z rootHttpRouter info [2025-10-15T15:17:24.051Z] "GET /api/catalog/entities?fields=metadata,kind,spec.profile&filter=kind%3Dgroup%2Crelations.hasMember%3Duser%3Adevelopment%2Fguest HTTP/1.1" 304 0 "http://localhost:3000/" "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:143.0) Gecko/20100101 Firefox/143.0" type="incomingRequest" date="2025-10-15T15:17:24.051Z" method="GET" url="/api/catalog/entities?fields=metadata,kind,spec.profile&filter=kind%3Dgroup%2Crelations.hasMember%3Duser%3Adevelopment%2Fguest" status=304 httpVersion="1.1" userAgent="Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:143.0) Gecko/20100101 Firefox/143.0" referrer="http://localhost:3000/"
|
||||
.
|
||||
.
|
||||
```
|
||||
|
||||

|
||||
Once the Backstage UI is displayed, you can start exploring the demo immediately.
|
||||
|
||||
Here again, there's a small wait for the frontend to start up. Once the frontend is built, your browser window should automatically open.
|
||||
:::tip Browser window didn't open with yarn start
|
||||
|
||||
:::tip Browser window didn't open
|
||||
|
||||
When you see the message `[0] webpack compiled successfully`, you can navigate directly to `http://localhost:3000` to see your Backstage app.
|
||||
When you see the message `Rspack compiled successfully`, you can navigate directly to `http://localhost:3000` to see your Backstage app.
|
||||
|
||||
:::
|
||||
|
||||
You can start exploring the demo immediately.
|
||||
|
||||

|
||||
|
||||
## Recap
|
||||
|
||||
This tutorial walked through how to deploy Backstage using the `npx @backstage/create-app@latest` command. That command created a new directory that holds your new Backstage app. That app is currently only configured for development purposes, as it is using an in-memory database and contains demo data.
|
||||
|
||||
## Next steps
|
||||
|
||||
Choose the correct next steps for your user role, if you're likely to be deploying and managing a Backstage instance for your organization, look through the [Admin](#admin) section. If you're likely to be developing on/for Backstage, take a look through the [Developer](#developer) section.
|
||||
|
||||
### Admin
|
||||
|
||||
- Deploying to production
|
||||
|
||||
- Configuring Backstage
|
||||
- [Setting up authentication](./config/authentication.md)
|
||||
- [Configuring a database](./config/database.md)
|
||||
- [Deploying with Docker](../deployment/docker.md)
|
||||
- [Deploying with Kubernetes](../deployment/k8s.md)
|
||||
|
||||
- Configuring Backstage
|
||||
|
||||
- [Adding plugins](./configure-app-with-plugins.md)
|
||||
- [Customizing Your App's UI](../conf/user-interface/index.md)
|
||||
- [Populating the homepage](./homepage.md)
|
||||
- Deploying to production
|
||||
- [Deploying with Docker](../deployment/docker.md)
|
||||
- [Deploying with Kubernetes](../deployment/k8s.md)
|
||||
|
||||
### Developer
|
||||
|
||||
@@ -171,8 +191,4 @@ Share your experiences, comments, or suggestions with us:
|
||||
[on discord](https://discord.gg/backstage-687207715902193673), file issues for any
|
||||
[feature](https://github.com/backstage/backstage/issues/new?labels=help+wanted&template=feature_template.md)
|
||||
or
|
||||
[plugin suggestions](https://github.com/backstage/community-plugins/issues/new/choose),
|
||||
or
|
||||
[bugs](https://github.com/backstage/backstage/issues/new?labels=bug&template=bug_template.md)
|
||||
you have, and feel free to
|
||||
[contribute](https://github.com/backstage/backstage/blob/master/CONTRIBUTING.md)!
|
||||
[plugin suggestions](https://github.com/backstage/community-plugins/issues/new/choose)
|
||||
|
||||
@@ -1,18 +0,0 @@
|
||||
---
|
||||
id: existing-plugins
|
||||
title: Existing plugins
|
||||
description: Lists of existing open source plugins
|
||||
---
|
||||
|
||||
## The Plugin Directory
|
||||
|
||||
Open source plugins that you can add to your Backstage deployment can be found
|
||||
at:
|
||||
|
||||
https://backstage.io/plugins
|
||||
|
||||

|
||||
|
||||
## Links
|
||||
|
||||
- [[blog] The Plugin Directory is open](https://backstage.io/blog/2020/09/30/plugin-marketplace)
|
||||
@@ -23,3 +23,9 @@ This approach is equally beneficial if you conceive an idea for a potentially im
|
||||
## Integration with the Software Catalog
|
||||
|
||||
Should your plugin complement the Software Catalog rather than exist as a standalone feature (for instance, as an additional tab or a card within an "Overview" tab), you'll find comprehensive guidance on achieving this integration in the [Integrating Plugin into Software Catalog guide](integrating-plugin-into-software-catalog.md).
|
||||
|
||||
## Existing Plugins
|
||||
|
||||
There are a plethora of existing community made plugins which can be found by going to the [Backstage Plugin Directory](https://backstage.io/plugins)
|
||||
|
||||
You can read more about it in this blog post: [The Plugin Directory is now open](https://backstage.io/blog/2020/09/30/plugin-marketplace/)
|
||||
|
||||
@@ -4,6 +4,12 @@ title: Testing with Jest
|
||||
description: Documentation on How to do unit testing with Jest
|
||||
---
|
||||
|
||||
:::note Note
|
||||
|
||||
You may want to consider migrating to Jest 30, to do this, you can follow this guide: [Migrating to Jest 30](../tutorials/jest30-migration.md)
|
||||
|
||||
:::
|
||||
|
||||
Backstage uses [Jest](https://facebook.github.io/jest/) for all our unit testing
|
||||
needs.
|
||||
|
||||
@@ -185,6 +191,11 @@ loading is broken, not that the loading indicator is broken.
|
||||
|
||||
## Examples
|
||||
|
||||
For more specific examples of how to test your Backstage **backend plugins** and **modules** or **frontend plugins** you can check out the following guides:
|
||||
|
||||
- [Testing Backend Plugins and Modules](../backend-system/building-plugins-and-modules/02-testing.md)
|
||||
- [Testing Frontend Plugins](../frontend-system/building-plugins/02-testing.md)
|
||||
|
||||
### Utility Functions
|
||||
|
||||
A utility function is a function with no side effects. It takes in arguments and
|
||||
|
||||
@@ -0,0 +1,578 @@
|
||||
# Release v1.47.0-next.0
|
||||
|
||||
Upgrade Helper: [https://backstage.github.io/upgrade-helper/?to=1.47.0-next.0](https://backstage.github.io/upgrade-helper/?to=1.47.0-next.0)
|
||||
|
||||
## @backstage/ui@0.11.0-next.0
|
||||
|
||||
### Minor Changes
|
||||
|
||||
- 4ea1d15: **BREAKING**: Renamed CSS variable `--bui-bg` to `--bui-bg-surface-0` for consistency.
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- 1880402: Fixes app background color on dark mode.
|
||||
- 9c76682: build(deps-dev): bump `storybook` from 10.1.9 to 10.1.10
|
||||
- b4a4911: Fixed SearchField `startCollapsed` prop not working correctly in Backstage UI. The field now properly starts in a collapsed state, expands when clicked and focused, and collapses back when unfocused with no input. Also fixed CSS logic to work correctly in all layout contexts (flex row, flex column, and regular containers).
|
||||
|
||||
Affected components: SearchField
|
||||
|
||||
## @backstage/backend-defaults@0.14.1-next.0
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- 7126bf2: Fixed a spelling mistake in root health service shutdown response.
|
||||
- Updated dependencies
|
||||
- @backstage/backend-app-api@1.4.0
|
||||
- @backstage/backend-dev-utils@0.1.6
|
||||
- @backstage/backend-plugin-api@1.6.0
|
||||
- @backstage/cli-node@0.2.16
|
||||
- @backstage/config@1.3.6
|
||||
- @backstage/config-loader@1.10.7
|
||||
- @backstage/errors@1.2.7
|
||||
- @backstage/integration@1.19.0
|
||||
- @backstage/integration-aws-node@0.1.19
|
||||
- @backstage/types@1.2.2
|
||||
- @backstage/plugin-auth-node@0.6.10
|
||||
- @backstage/plugin-events-node@0.4.18
|
||||
- @backstage/plugin-permission-node@0.10.7
|
||||
|
||||
## @backstage/backend-dynamic-feature-service@0.7.8-next.0
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Updated dependencies
|
||||
- @backstage/backend-openapi-utils@0.6.5-next.0
|
||||
- @backstage/backend-defaults@0.14.1-next.0
|
||||
- @backstage/backend-plugin-api@1.6.0
|
||||
- @backstage/cli-common@0.1.16
|
||||
- @backstage/cli-node@0.2.16
|
||||
- @backstage/config@1.3.6
|
||||
- @backstage/config-loader@1.10.7
|
||||
- @backstage/errors@1.2.7
|
||||
- @backstage/types@1.2.2
|
||||
- @backstage/plugin-app-node@0.1.40
|
||||
- @backstage/plugin-auth-node@0.6.10
|
||||
- @backstage/plugin-catalog-backend@3.3.1-next.0
|
||||
- @backstage/plugin-events-backend@0.5.10-next.0
|
||||
- @backstage/plugin-events-node@0.4.18
|
||||
- @backstage/plugin-permission-common@0.9.3
|
||||
- @backstage/plugin-permission-node@0.10.7
|
||||
- @backstage/plugin-scaffolder-node@0.12.2
|
||||
- @backstage/plugin-search-backend-node@1.4.0
|
||||
- @backstage/plugin-search-common@1.2.21
|
||||
|
||||
## @backstage/backend-openapi-utils@0.6.5-next.0
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- 6678b78: Internal update to use native feature from our request validation library for handling base path determination.
|
||||
- Updated dependencies
|
||||
- @backstage/backend-plugin-api@1.6.0
|
||||
- @backstage/errors@1.2.7
|
||||
- @backstage/types@1.2.2
|
||||
|
||||
## @backstage/backend-test-utils@1.10.3-next.0
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Updated dependencies
|
||||
- @backstage/backend-defaults@0.14.1-next.0
|
||||
- @backstage/backend-app-api@1.4.0
|
||||
- @backstage/backend-plugin-api@1.6.0
|
||||
- @backstage/config@1.3.6
|
||||
- @backstage/errors@1.2.7
|
||||
- @backstage/types@1.2.2
|
||||
- @backstage/plugin-auth-node@0.6.10
|
||||
- @backstage/plugin-events-node@0.4.18
|
||||
- @backstage/plugin-permission-common@0.9.3
|
||||
|
||||
## @backstage/cli@0.35.2-next.0
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- 320c6a9: Bump `@swc/core` to support `ES2023` and `ES2024`
|
||||
- 9ee5996: Bump minimum required `@swc/core` to avoid transpilation bug
|
||||
- Updated dependencies
|
||||
- @backstage/catalog-model@1.7.6
|
||||
- @backstage/cli-common@0.1.16
|
||||
- @backstage/cli-node@0.2.16
|
||||
- @backstage/config@1.3.6
|
||||
- @backstage/config-loader@1.10.7
|
||||
- @backstage/errors@1.2.7
|
||||
- @backstage/eslint-plugin@0.2.0
|
||||
- @backstage/integration@1.19.0
|
||||
- @backstage/release-manifests@0.0.13
|
||||
- @backstage/types@1.2.2
|
||||
|
||||
## @backstage/create-app@0.7.8-next.0
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Bumped create-app version.
|
||||
- Updated dependencies
|
||||
- @backstage/cli-common@0.1.16
|
||||
|
||||
## @backstage/dev-utils@1.1.19-next.0
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Updated dependencies
|
||||
- @backstage/ui@0.11.0-next.0
|
||||
- @backstage/app-defaults@1.7.3
|
||||
- @backstage/catalog-model@1.7.6
|
||||
- @backstage/core-app-api@1.19.3
|
||||
- @backstage/core-components@0.18.4
|
||||
- @backstage/core-plugin-api@1.12.1
|
||||
- @backstage/integration-react@1.2.13
|
||||
- @backstage/theme@0.7.1
|
||||
- @backstage/plugin-catalog-react@1.21.4
|
||||
|
||||
## @techdocs/cli@1.10.4-next.0
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Updated dependencies
|
||||
- @backstage/backend-defaults@0.14.1-next.0
|
||||
- @backstage/catalog-model@1.7.6
|
||||
- @backstage/cli-common@0.1.16
|
||||
- @backstage/config@1.3.6
|
||||
- @backstage/plugin-techdocs-node@1.13.10
|
||||
|
||||
## @backstage/plugin-app-visualizer@0.1.27-next.0
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Updated dependencies
|
||||
- @backstage/ui@0.11.0-next.0
|
||||
- @backstage/core-components@0.18.4
|
||||
- @backstage/core-plugin-api@1.12.1
|
||||
- @backstage/frontend-plugin-api@0.13.2
|
||||
|
||||
## @backstage/plugin-auth-backend-module-oidc-provider@0.4.11-next.0
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- e54fcb2: Added support for custom start URL search parameters (with the new `startUrlSearchParams` config property)
|
||||
- Updated dependencies
|
||||
- @backstage/backend-plugin-api@1.6.0
|
||||
- @backstage/config@1.3.6
|
||||
- @backstage/types@1.2.2
|
||||
- @backstage/plugin-auth-backend@0.25.7
|
||||
- @backstage/plugin-auth-node@0.6.10
|
||||
|
||||
## @backstage/plugin-catalog-backend@3.3.1-next.0
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Updated dependencies
|
||||
- @backstage/backend-openapi-utils@0.6.5-next.0
|
||||
- @backstage/backend-plugin-api@1.6.0
|
||||
- @backstage/catalog-client@1.12.1
|
||||
- @backstage/catalog-model@1.7.6
|
||||
- @backstage/config@1.3.6
|
||||
- @backstage/errors@1.2.7
|
||||
- @backstage/integration@1.19.0
|
||||
- @backstage/types@1.2.2
|
||||
- @backstage/plugin-catalog-common@1.1.7
|
||||
- @backstage/plugin-catalog-node@1.20.1
|
||||
- @backstage/plugin-events-node@0.4.18
|
||||
- @backstage/plugin-permission-common@0.9.3
|
||||
- @backstage/plugin-permission-node@0.10.7
|
||||
|
||||
## @backstage/plugin-catalog-backend-module-aws@0.4.19-next.0
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Updated dependencies
|
||||
- @backstage/backend-defaults@0.14.1-next.0
|
||||
- @backstage/backend-plugin-api@1.6.0
|
||||
- @backstage/catalog-model@1.7.6
|
||||
- @backstage/config@1.3.6
|
||||
- @backstage/errors@1.2.7
|
||||
- @backstage/integration@1.19.0
|
||||
- @backstage/integration-aws-node@0.1.19
|
||||
- @backstage/plugin-catalog-common@1.1.7
|
||||
- @backstage/plugin-catalog-node@1.20.1
|
||||
- @backstage/plugin-kubernetes-common@0.9.9
|
||||
|
||||
## @backstage/plugin-catalog-backend-module-backstage-openapi@0.5.10-next.0
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Updated dependencies
|
||||
- @backstage/backend-openapi-utils@0.6.5-next.0
|
||||
- @backstage/backend-plugin-api@1.6.0
|
||||
- @backstage/catalog-model@1.7.6
|
||||
- @backstage/config@1.3.6
|
||||
- @backstage/errors@1.2.7
|
||||
- @backstage/plugin-catalog-node@1.20.1
|
||||
|
||||
## @backstage/plugin-catalog-backend-module-gitlab@0.7.7-next.0
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Updated dependencies
|
||||
- @backstage/backend-defaults@0.14.1-next.0
|
||||
- @backstage/backend-plugin-api@1.6.0
|
||||
- @backstage/catalog-model@1.7.6
|
||||
- @backstage/config@1.3.6
|
||||
- @backstage/integration@1.19.0
|
||||
- @backstage/plugin-catalog-common@1.1.7
|
||||
- @backstage/plugin-catalog-node@1.20.1
|
||||
- @backstage/plugin-events-node@0.4.18
|
||||
|
||||
## @backstage/plugin-catalog-backend-module-gitlab-org@0.2.17-next.0
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Updated dependencies
|
||||
- @backstage/backend-plugin-api@1.6.0
|
||||
- @backstage/plugin-catalog-backend-module-gitlab@0.7.7-next.0
|
||||
- @backstage/plugin-catalog-node@1.20.1
|
||||
- @backstage/plugin-events-node@0.4.18
|
||||
|
||||
## @backstage/plugin-catalog-backend-module-incremental-ingestion@0.7.8-next.0
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Updated dependencies
|
||||
- @backstage/backend-defaults@0.14.1-next.0
|
||||
- @backstage/backend-plugin-api@1.6.0
|
||||
- @backstage/catalog-model@1.7.6
|
||||
- @backstage/config@1.3.6
|
||||
- @backstage/errors@1.2.7
|
||||
- @backstage/types@1.2.2
|
||||
- @backstage/plugin-catalog-backend@3.3.1-next.0
|
||||
- @backstage/plugin-catalog-node@1.20.1
|
||||
- @backstage/plugin-events-node@0.4.18
|
||||
- @backstage/plugin-permission-common@0.9.3
|
||||
|
||||
## @backstage/plugin-catalog-backend-module-logs@0.1.18-next.0
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Updated dependencies
|
||||
- @backstage/backend-plugin-api@1.6.0
|
||||
- @backstage/plugin-catalog-backend@3.3.1-next.0
|
||||
- @backstage/plugin-events-node@0.4.18
|
||||
|
||||
## @backstage/plugin-devtools-backend@0.5.13-next.0
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Updated dependencies
|
||||
- @backstage/backend-defaults@0.14.1-next.0
|
||||
- @backstage/backend-plugin-api@1.6.0
|
||||
- @backstage/cli-common@0.1.16
|
||||
- @backstage/config@1.3.6
|
||||
- @backstage/config-loader@1.10.7
|
||||
- @backstage/errors@1.2.7
|
||||
- @backstage/types@1.2.2
|
||||
- @backstage/plugin-devtools-common@0.1.20
|
||||
- @backstage/plugin-permission-common@0.9.3
|
||||
- @backstage/plugin-permission-node@0.10.7
|
||||
|
||||
## @backstage/plugin-events-backend@0.5.10-next.0
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Updated dependencies
|
||||
- @backstage/backend-openapi-utils@0.6.5-next.0
|
||||
- @backstage/backend-plugin-api@1.6.0
|
||||
- @backstage/config@1.3.6
|
||||
- @backstage/errors@1.2.7
|
||||
- @backstage/types@1.2.2
|
||||
- @backstage/plugin-events-node@0.4.18
|
||||
|
||||
## @backstage/plugin-mcp-actions-backend@0.1.7-next.0
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Updated dependencies
|
||||
- @backstage/backend-defaults@0.14.1-next.0
|
||||
- @backstage/backend-plugin-api@1.6.0
|
||||
- @backstage/catalog-client@1.12.1
|
||||
- @backstage/errors@1.2.7
|
||||
- @backstage/types@1.2.2
|
||||
- @backstage/plugin-catalog-node@1.20.1
|
||||
|
||||
## @backstage/plugin-mui-to-bui@0.2.3-next.0
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- e4a1180: Updated tokens from `--bui-bg` to `--bui-bg-surface-0`
|
||||
- Updated dependencies
|
||||
- @backstage/ui@0.11.0-next.0
|
||||
- @backstage/core-plugin-api@1.12.1
|
||||
- @backstage/frontend-plugin-api@0.13.2
|
||||
- @backstage/theme@0.7.1
|
||||
|
||||
## @backstage/plugin-scaffolder-backend@3.1.1-next.0
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Updated dependencies
|
||||
- @backstage/backend-openapi-utils@0.6.5-next.0
|
||||
- @backstage/backend-defaults@0.14.1-next.0
|
||||
- @backstage/backend-plugin-api@1.6.0
|
||||
- @backstage/catalog-model@1.7.6
|
||||
- @backstage/config@1.3.6
|
||||
- @backstage/errors@1.2.7
|
||||
- @backstage/integration@1.19.0
|
||||
- @backstage/types@1.2.2
|
||||
- @backstage/plugin-auth-node@0.6.10
|
||||
- @backstage/plugin-bitbucket-cloud-common@0.3.5
|
||||
- @backstage/plugin-catalog-backend-module-scaffolder-entity-model@0.2.15
|
||||
- @backstage/plugin-catalog-node@1.20.1
|
||||
- @backstage/plugin-events-node@0.4.18
|
||||
- @backstage/plugin-permission-common@0.9.3
|
||||
- @backstage/plugin-permission-node@0.10.7
|
||||
- @backstage/plugin-scaffolder-backend-module-azure@0.2.16
|
||||
- @backstage/plugin-scaffolder-backend-module-bitbucket@0.3.17
|
||||
- @backstage/plugin-scaffolder-backend-module-bitbucket-cloud@0.3.0
|
||||
- @backstage/plugin-scaffolder-backend-module-bitbucket-server@0.2.16
|
||||
- @backstage/plugin-scaffolder-backend-module-gerrit@0.2.16
|
||||
- @backstage/plugin-scaffolder-backend-module-gitea@0.2.16
|
||||
- @backstage/plugin-scaffolder-backend-module-github@0.9.3
|
||||
- @backstage/plugin-scaffolder-backend-module-gitlab@0.11.0
|
||||
- @backstage/plugin-scaffolder-common@1.7.4
|
||||
- @backstage/plugin-scaffolder-node@0.12.2
|
||||
|
||||
## @backstage/plugin-scaffolder-backend-module-cookiecutter@0.3.19-next.0
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Updated dependencies
|
||||
- @backstage/backend-defaults@0.14.1-next.0
|
||||
- @backstage/backend-plugin-api@1.6.0
|
||||
- @backstage/config@1.3.6
|
||||
- @backstage/errors@1.2.7
|
||||
- @backstage/integration@1.19.0
|
||||
- @backstage/types@1.2.2
|
||||
- @backstage/plugin-scaffolder-node@0.12.2
|
||||
|
||||
## @backstage/plugin-scaffolder-backend-module-yeoman@0.4.18-next.0
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Updated dependencies
|
||||
- @backstage/backend-plugin-api@1.6.0
|
||||
- @backstage/types@1.2.2
|
||||
- @backstage/plugin-scaffolder-node@0.12.2
|
||||
- @backstage/plugin-scaffolder-node-test-utils@0.3.7-next.0
|
||||
|
||||
## @backstage/plugin-scaffolder-node-test-utils@0.3.7-next.0
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Updated dependencies
|
||||
- @backstage/backend-plugin-api@1.6.0
|
||||
- @backstage/backend-test-utils@1.10.3-next.0
|
||||
- @backstage/types@1.2.2
|
||||
- @backstage/plugin-scaffolder-node@0.12.2
|
||||
|
||||
## @backstage/plugin-search-backend@2.0.10-next.0
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Updated dependencies
|
||||
- @backstage/backend-openapi-utils@0.6.5-next.0
|
||||
- @backstage/backend-defaults@0.14.1-next.0
|
||||
- @backstage/backend-plugin-api@1.6.0
|
||||
- @backstage/config@1.3.6
|
||||
- @backstage/errors@1.2.7
|
||||
- @backstage/types@1.2.2
|
||||
- @backstage/plugin-permission-common@0.9.3
|
||||
- @backstage/plugin-permission-node@0.10.7
|
||||
- @backstage/plugin-search-backend-node@1.4.0
|
||||
- @backstage/plugin-search-common@1.2.21
|
||||
|
||||
## @backstage/plugin-techdocs-backend@2.1.4-next.0
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Updated dependencies
|
||||
- @backstage/backend-defaults@0.14.1-next.0
|
||||
- @backstage/backend-plugin-api@1.6.0
|
||||
- @backstage/catalog-client@1.12.1
|
||||
- @backstage/catalog-model@1.7.6
|
||||
- @backstage/config@1.3.6
|
||||
- @backstage/errors@1.2.7
|
||||
- @backstage/integration@1.19.0
|
||||
- @backstage/types@1.2.2
|
||||
- @backstage/plugin-catalog-node@1.20.1
|
||||
- @backstage/plugin-techdocs-node@1.13.10
|
||||
|
||||
## @backstage/plugin-user-settings-backend@0.3.10-next.0
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Updated dependencies
|
||||
- @backstage/backend-defaults@0.14.1-next.0
|
||||
- @backstage/backend-plugin-api@1.6.0
|
||||
- @backstage/errors@1.2.7
|
||||
- @backstage/types@1.2.2
|
||||
- @backstage/plugin-auth-node@0.6.10
|
||||
- @backstage/plugin-signals-node@0.1.27
|
||||
- @backstage/plugin-user-settings-common@0.0.1
|
||||
|
||||
## example-app@0.2.117-next.0
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Updated dependencies
|
||||
- @backstage/ui@0.11.0-next.0
|
||||
- @backstage/cli@0.35.2-next.0
|
||||
- @backstage/plugin-mui-to-bui@0.2.3-next.0
|
||||
- @backstage/app-defaults@1.7.3
|
||||
- @backstage/catalog-model@1.7.6
|
||||
- @backstage/config@1.3.6
|
||||
- @backstage/core-app-api@1.19.3
|
||||
- @backstage/core-components@0.18.4
|
||||
- @backstage/core-plugin-api@1.12.1
|
||||
- @backstage/frontend-app-api@0.13.3
|
||||
- @backstage/integration-react@1.2.13
|
||||
- @backstage/theme@0.7.1
|
||||
- @backstage/plugin-api-docs@0.13.2
|
||||
- @backstage/plugin-auth-react@0.1.22
|
||||
- @backstage/plugin-catalog@1.32.1
|
||||
- @backstage/plugin-catalog-common@1.1.7
|
||||
- @backstage/plugin-catalog-graph@0.5.4
|
||||
- @backstage/plugin-catalog-import@0.13.8
|
||||
- @backstage/plugin-catalog-react@1.21.4
|
||||
- @backstage/plugin-catalog-unprocessed-entities@0.2.24
|
||||
- @backstage/plugin-devtools@0.1.34
|
||||
- @backstage/plugin-home@0.8.15
|
||||
- @backstage/plugin-kubernetes@0.12.14
|
||||
- @backstage/plugin-kubernetes-cluster@0.0.32
|
||||
- @backstage/plugin-notifications@0.5.12
|
||||
- @backstage/plugin-org@0.6.47
|
||||
- @backstage/plugin-permission-react@0.4.39
|
||||
- @backstage/plugin-scaffolder@1.35.0
|
||||
- @backstage/plugin-scaffolder-react@1.19.4
|
||||
- @backstage/plugin-search@1.5.1
|
||||
- @backstage/plugin-search-common@1.2.21
|
||||
- @backstage/plugin-search-react@1.10.1
|
||||
- @backstage/plugin-signals@0.0.26
|
||||
- @backstage/plugin-techdocs@1.16.1
|
||||
- @backstage/plugin-techdocs-module-addons-contrib@1.1.31
|
||||
- @backstage/plugin-techdocs-react@1.3.6
|
||||
- @backstage/plugin-user-settings@0.8.30
|
||||
|
||||
## example-app-next@0.0.31-next.0
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Updated dependencies
|
||||
- @backstage/ui@0.11.0-next.0
|
||||
- @backstage/cli@0.35.2-next.0
|
||||
- @backstage/plugin-app-visualizer@0.1.27-next.0
|
||||
- @backstage/app-defaults@1.7.3
|
||||
- @backstage/catalog-model@1.7.6
|
||||
- @backstage/config@1.3.6
|
||||
- @backstage/core-app-api@1.19.3
|
||||
- @backstage/core-compat-api@0.5.5
|
||||
- @backstage/core-components@0.18.4
|
||||
- @backstage/core-plugin-api@1.12.1
|
||||
- @backstage/frontend-app-api@0.13.3
|
||||
- @backstage/frontend-defaults@0.3.4
|
||||
- @backstage/frontend-plugin-api@0.13.2
|
||||
- @backstage/integration-react@1.2.13
|
||||
- @backstage/theme@0.7.1
|
||||
- @backstage/plugin-api-docs@0.13.2
|
||||
- @backstage/plugin-app@0.3.3
|
||||
- @backstage/plugin-auth@0.1.3
|
||||
- @backstage/plugin-auth-react@0.1.22
|
||||
- @backstage/plugin-catalog@1.32.1
|
||||
- @backstage/plugin-catalog-common@1.1.7
|
||||
- @backstage/plugin-catalog-graph@0.5.4
|
||||
- @backstage/plugin-catalog-import@0.13.8
|
||||
- @backstage/plugin-catalog-react@1.21.4
|
||||
- @backstage/plugin-catalog-unprocessed-entities@0.2.24
|
||||
- @backstage/plugin-home@0.8.15
|
||||
- @backstage/plugin-kubernetes@0.12.14
|
||||
- @backstage/plugin-kubernetes-cluster@0.0.32
|
||||
- @backstage/plugin-notifications@0.5.12
|
||||
- @backstage/plugin-org@0.6.47
|
||||
- @backstage/plugin-permission-react@0.4.39
|
||||
- @backstage/plugin-scaffolder@1.35.0
|
||||
- @backstage/plugin-scaffolder-react@1.19.4
|
||||
- @backstage/plugin-search@1.5.1
|
||||
- @backstage/plugin-search-common@1.2.21
|
||||
- @backstage/plugin-search-react@1.10.1
|
||||
- @backstage/plugin-signals@0.0.26
|
||||
- @backstage/plugin-techdocs@1.16.1
|
||||
- @backstage/plugin-techdocs-module-addons-contrib@1.1.31
|
||||
- @backstage/plugin-techdocs-react@1.3.6
|
||||
- @backstage/plugin-user-settings@0.8.30
|
||||
|
||||
## example-backend@0.0.46-next.0
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Updated dependencies
|
||||
- @backstage/backend-defaults@0.14.1-next.0
|
||||
- @backstage/backend-plugin-api@1.6.0
|
||||
- @backstage/catalog-model@1.7.6
|
||||
- @backstage/plugin-app-backend@0.5.9
|
||||
- @backstage/plugin-auth-backend@0.25.7
|
||||
- @backstage/plugin-auth-backend-module-github-provider@0.4.0
|
||||
- @backstage/plugin-auth-backend-module-guest-provider@0.2.15
|
||||
- @backstage/plugin-auth-backend-module-openshift-provider@0.1.3
|
||||
- @backstage/plugin-auth-node@0.6.10
|
||||
- @backstage/plugin-catalog-backend@3.3.1-next.0
|
||||
- @backstage/plugin-catalog-backend-module-backstage-openapi@0.5.10-next.0
|
||||
- @backstage/plugin-catalog-backend-module-openapi@0.2.17
|
||||
- @backstage/plugin-catalog-backend-module-scaffolder-entity-model@0.2.15
|
||||
- @backstage/plugin-catalog-backend-module-unprocessed@0.6.7
|
||||
- @backstage/plugin-devtools-backend@0.5.13-next.0
|
||||
- @backstage/plugin-events-backend@0.5.10-next.0
|
||||
- @backstage/plugin-events-backend-module-google-pubsub@0.1.7
|
||||
- @backstage/plugin-kubernetes-backend@0.21.0
|
||||
- @backstage/plugin-mcp-actions-backend@0.1.7-next.0
|
||||
- @backstage/plugin-notifications-backend@0.6.1
|
||||
- @backstage/plugin-permission-backend@0.7.7
|
||||
- @backstage/plugin-permission-backend-module-allow-all-policy@0.2.15
|
||||
- @backstage/plugin-permission-common@0.9.3
|
||||
- @backstage/plugin-permission-node@0.10.7
|
||||
- @backstage/plugin-proxy-backend@0.6.9
|
||||
- @backstage/plugin-scaffolder-backend@3.1.1-next.0
|
||||
- @backstage/plugin-scaffolder-backend-module-github@0.9.3
|
||||
- @backstage/plugin-scaffolder-backend-module-notifications@0.1.17
|
||||
- @backstage/plugin-search-backend@2.0.10-next.0
|
||||
- @backstage/plugin-search-backend-module-catalog@0.3.11
|
||||
- @backstage/plugin-search-backend-module-elasticsearch@1.7.9
|
||||
- @backstage/plugin-search-backend-module-explore@0.3.10
|
||||
- @backstage/plugin-search-backend-module-techdocs@0.4.9
|
||||
- @backstage/plugin-search-backend-node@1.4.0
|
||||
- @backstage/plugin-signals-backend@0.3.11
|
||||
- @backstage/plugin-techdocs-backend@2.1.4-next.0
|
||||
|
||||
## e2e-test@0.2.36-next.0
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Updated dependencies
|
||||
- @backstage/create-app@0.7.8-next.0
|
||||
- @backstage/cli-common@0.1.16
|
||||
- @backstage/errors@1.2.7
|
||||
|
||||
## techdocs-cli-embedded-app@0.2.116-next.0
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Updated dependencies
|
||||
- @backstage/ui@0.11.0-next.0
|
||||
- @backstage/cli@0.35.2-next.0
|
||||
- @backstage/app-defaults@1.7.3
|
||||
- @backstage/catalog-model@1.7.6
|
||||
- @backstage/config@1.3.6
|
||||
- @backstage/core-app-api@1.19.3
|
||||
- @backstage/core-components@0.18.4
|
||||
- @backstage/core-plugin-api@1.12.1
|
||||
- @backstage/integration-react@1.2.13
|
||||
- @backstage/test-utils@1.7.14
|
||||
- @backstage/theme@0.7.1
|
||||
- @backstage/plugin-catalog@1.32.1
|
||||
- @backstage/plugin-techdocs@1.16.1
|
||||
- @backstage/plugin-techdocs-react@1.3.6
|
||||
@@ -0,0 +1,648 @@
|
||||
# Release v1.47.0-next.1
|
||||
|
||||
Upgrade Helper: [https://backstage.github.io/upgrade-helper/?to=1.47.0-next.1](https://backstage.github.io/upgrade-helper/?to=1.47.0-next.1)
|
||||
|
||||
## @backstage/backend-defaults@0.14.1-next.1
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- 3afeab4: Implementing `readTree` for `GoogleGcsReader`
|
||||
- Updated dependencies
|
||||
- @backstage/integration@1.19.2-next.0
|
||||
|
||||
## @backstage/backend-dynamic-feature-service@0.7.8-next.1
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Updated dependencies
|
||||
- @backstage/backend-defaults@0.14.1-next.1
|
||||
- @backstage/plugin-catalog-backend@3.3.1-next.1
|
||||
- @backstage/plugin-scaffolder-node@0.12.3-next.0
|
||||
|
||||
## @backstage/cli@0.35.2-next.1
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Updated dependencies
|
||||
- @backstage/integration@1.19.2-next.0
|
||||
|
||||
## @backstage/core-compat-api@0.5.6-next.0
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Updated dependencies
|
||||
- @backstage/plugin-catalog-react@1.21.5-next.0
|
||||
- @backstage/frontend-plugin-api@0.13.2
|
||||
|
||||
## @backstage/create-app@0.7.8-next.1
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Bumped create-app version.
|
||||
|
||||
## @backstage/dev-utils@1.1.19-next.1
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Updated dependencies
|
||||
- @backstage/integration-react@1.2.14-next.0
|
||||
- @backstage/plugin-catalog-react@1.21.5-next.0
|
||||
|
||||
## @backstage/frontend-app-api@0.13.4-next.0
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Updated dependencies
|
||||
- @backstage/frontend-defaults@0.3.5-next.0
|
||||
- @backstage/frontend-plugin-api@0.13.2
|
||||
|
||||
## @backstage/frontend-defaults@0.3.5-next.0
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Updated dependencies
|
||||
- @backstage/plugin-app@0.3.4-next.0
|
||||
- @backstage/frontend-app-api@0.13.4-next.0
|
||||
- @backstage/frontend-plugin-api@0.13.2
|
||||
|
||||
## @backstage/frontend-test-utils@0.4.3-next.0
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Updated dependencies
|
||||
- @backstage/plugin-app@0.3.4-next.0
|
||||
- @backstage/frontend-app-api@0.13.4-next.0
|
||||
- @backstage/frontend-plugin-api@0.13.2
|
||||
|
||||
## @backstage/integration@1.19.2-next.0
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- 3afeab4: Implementing `ScmIntegration` for `GoogleGcs`
|
||||
- 9083273: Rollback the lowercase replacing in GitHub integration config
|
||||
|
||||
## @backstage/integration-react@1.2.14-next.0
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Updated dependencies
|
||||
- @backstage/integration@1.19.2-next.0
|
||||
|
||||
## @techdocs/cli@1.10.4-next.1
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Updated dependencies
|
||||
- @backstage/backend-defaults@0.14.1-next.1
|
||||
- @backstage/plugin-techdocs-node@1.13.11-next.0
|
||||
|
||||
## @backstage/plugin-api-docs@0.13.3-next.0
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Updated dependencies
|
||||
- @backstage/plugin-catalog@1.32.2-next.0
|
||||
- @backstage/plugin-catalog-react@1.21.5-next.0
|
||||
- @backstage/frontend-plugin-api@0.13.2
|
||||
|
||||
## @backstage/plugin-app@0.3.4-next.0
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Updated dependencies
|
||||
- @backstage/integration-react@1.2.14-next.0
|
||||
- @backstage/frontend-plugin-api@0.13.2
|
||||
|
||||
## @backstage/plugin-bitbucket-cloud-common@0.3.6-next.0
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Updated dependencies
|
||||
- @backstage/integration@1.19.2-next.0
|
||||
|
||||
## @backstage/plugin-catalog@1.32.2-next.0
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Updated dependencies
|
||||
- @backstage/integration-react@1.2.14-next.0
|
||||
- @backstage/plugin-scaffolder-common@1.7.5-next.0
|
||||
- @backstage/plugin-catalog-react@1.21.5-next.0
|
||||
- @backstage/core-compat-api@0.5.6-next.0
|
||||
- @backstage/frontend-plugin-api@0.13.2
|
||||
- @backstage/plugin-search-react@1.10.1
|
||||
|
||||
## @backstage/plugin-catalog-backend@3.3.1-next.1
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Updated dependencies
|
||||
- @backstage/integration@1.19.2-next.0
|
||||
|
||||
## @backstage/plugin-catalog-backend-module-aws@0.4.19-next.1
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Updated dependencies
|
||||
- @backstage/backend-defaults@0.14.1-next.1
|
||||
- @backstage/integration@1.19.2-next.0
|
||||
|
||||
## @backstage/plugin-catalog-backend-module-azure@0.3.13-next.0
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Updated dependencies
|
||||
- @backstage/integration@1.19.2-next.0
|
||||
|
||||
## @backstage/plugin-catalog-backend-module-bitbucket-cloud@0.5.7-next.0
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Updated dependencies
|
||||
- @backstage/integration@1.19.2-next.0
|
||||
- @backstage/plugin-bitbucket-cloud-common@0.3.6-next.0
|
||||
|
||||
## @backstage/plugin-catalog-backend-module-bitbucket-server@0.5.7-next.0
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Updated dependencies
|
||||
- @backstage/integration@1.19.2-next.0
|
||||
|
||||
## @backstage/plugin-catalog-backend-module-gerrit@0.3.10-next.0
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Updated dependencies
|
||||
- @backstage/integration@1.19.2-next.0
|
||||
|
||||
## @backstage/plugin-catalog-backend-module-gitea@0.1.8-next.0
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Updated dependencies
|
||||
- @backstage/integration@1.19.2-next.0
|
||||
|
||||
## @backstage/plugin-catalog-backend-module-github@0.12.1-next.0
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Updated dependencies
|
||||
- @backstage/integration@1.19.2-next.0
|
||||
|
||||
## @backstage/plugin-catalog-backend-module-github-org@0.3.18-next.0
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Updated dependencies
|
||||
- @backstage/plugin-catalog-backend-module-github@0.12.1-next.0
|
||||
|
||||
## @backstage/plugin-catalog-backend-module-gitlab@0.7.7-next.1
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Updated dependencies
|
||||
- @backstage/backend-defaults@0.14.1-next.1
|
||||
- @backstage/integration@1.19.2-next.0
|
||||
|
||||
## @backstage/plugin-catalog-backend-module-openapi@0.2.18-next.0
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Updated dependencies
|
||||
- @backstage/integration@1.19.2-next.0
|
||||
|
||||
## @backstage/plugin-catalog-backend-module-scaffolder-entity-model@0.2.16-next.0
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Updated dependencies
|
||||
- @backstage/plugin-scaffolder-common@1.7.5-next.0
|
||||
|
||||
## @backstage/plugin-catalog-graph@0.5.5-next.0
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Updated dependencies
|
||||
- @backstage/plugin-catalog-react@1.21.5-next.0
|
||||
- @backstage/frontend-plugin-api@0.13.2
|
||||
|
||||
## @backstage/plugin-catalog-import@0.13.9-next.0
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Updated dependencies
|
||||
- @backstage/integration@1.19.2-next.0
|
||||
- @backstage/integration-react@1.2.14-next.0
|
||||
- @backstage/plugin-catalog-react@1.21.5-next.0
|
||||
- @backstage/frontend-plugin-api@0.13.2
|
||||
|
||||
## @backstage/plugin-catalog-react@1.21.5-next.0
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Updated dependencies
|
||||
- @backstage/integration-react@1.2.14-next.0
|
||||
- @backstage/frontend-test-utils@0.4.3-next.0
|
||||
- @backstage/core-compat-api@0.5.6-next.0
|
||||
- @backstage/frontend-plugin-api@0.13.2
|
||||
|
||||
## @backstage/plugin-devtools@0.1.35-next.0
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Updated dependencies
|
||||
- @backstage/core-compat-api@0.5.6-next.0
|
||||
- @backstage/frontend-plugin-api@0.13.2
|
||||
|
||||
## @backstage/plugin-events-backend-module-github@0.4.8-next.0
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Updated dependencies
|
||||
- @backstage/integration@1.19.2-next.0
|
||||
|
||||
## @backstage/plugin-home@0.8.16-next.0
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Updated dependencies
|
||||
- @backstage/plugin-catalog-react@1.21.5-next.0
|
||||
- @backstage/frontend-plugin-api@0.13.2
|
||||
|
||||
## @backstage/plugin-kubernetes@0.12.15-next.0
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Updated dependencies
|
||||
- @backstage/plugin-catalog-react@1.21.5-next.0
|
||||
- @backstage/frontend-plugin-api@0.13.2
|
||||
|
||||
## @backstage/plugin-kubernetes-cluster@0.0.33-next.0
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Updated dependencies
|
||||
- @backstage/plugin-catalog-react@1.21.5-next.0
|
||||
|
||||
## @backstage/plugin-org@0.6.48-next.0
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Updated dependencies
|
||||
- @backstage/plugin-catalog-react@1.21.5-next.0
|
||||
- @backstage/frontend-plugin-api@0.13.2
|
||||
|
||||
## @backstage/plugin-org-react@0.1.46-next.0
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Updated dependencies
|
||||
- @backstage/plugin-catalog-react@1.21.5-next.0
|
||||
|
||||
## @backstage/plugin-scaffolder@1.35.1-next.0
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Updated dependencies
|
||||
- @backstage/integration@1.19.2-next.0
|
||||
- @backstage/integration-react@1.2.14-next.0
|
||||
- @backstage/plugin-scaffolder-common@1.7.5-next.0
|
||||
- @backstage/plugin-catalog-react@1.21.5-next.0
|
||||
- @backstage/plugin-scaffolder-react@1.19.5-next.0
|
||||
- @backstage/frontend-plugin-api@0.13.2
|
||||
|
||||
## @backstage/plugin-scaffolder-backend@3.1.1-next.1
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Updated dependencies
|
||||
- @backstage/backend-defaults@0.14.1-next.1
|
||||
- @backstage/integration@1.19.2-next.0
|
||||
- @backstage/plugin-bitbucket-cloud-common@0.3.6-next.0
|
||||
- @backstage/plugin-scaffolder-backend-module-azure@0.2.17-next.0
|
||||
- @backstage/plugin-scaffolder-backend-module-bitbucket@0.3.18-next.0
|
||||
- @backstage/plugin-scaffolder-backend-module-bitbucket-cloud@0.3.1-next.0
|
||||
- @backstage/plugin-scaffolder-backend-module-bitbucket-server@0.2.17-next.0
|
||||
- @backstage/plugin-scaffolder-backend-module-gerrit@0.2.17-next.0
|
||||
- @backstage/plugin-scaffolder-backend-module-gitea@0.2.17-next.0
|
||||
- @backstage/plugin-scaffolder-backend-module-github@0.9.4-next.0
|
||||
- @backstage/plugin-scaffolder-backend-module-gitlab@0.11.1-next.0
|
||||
- @backstage/plugin-scaffolder-common@1.7.5-next.0
|
||||
- @backstage/plugin-scaffolder-node@0.12.3-next.0
|
||||
- @backstage/plugin-catalog-backend-module-scaffolder-entity-model@0.2.16-next.0
|
||||
|
||||
## @backstage/plugin-scaffolder-backend-module-azure@0.2.17-next.0
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Updated dependencies
|
||||
- @backstage/integration@1.19.2-next.0
|
||||
- @backstage/plugin-scaffolder-node@0.12.3-next.0
|
||||
|
||||
## @backstage/plugin-scaffolder-backend-module-bitbucket@0.3.18-next.0
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Updated dependencies
|
||||
- @backstage/integration@1.19.2-next.0
|
||||
- @backstage/plugin-scaffolder-backend-module-bitbucket-cloud@0.3.1-next.0
|
||||
- @backstage/plugin-scaffolder-backend-module-bitbucket-server@0.2.17-next.0
|
||||
- @backstage/plugin-scaffolder-node@0.12.3-next.0
|
||||
|
||||
## @backstage/plugin-scaffolder-backend-module-bitbucket-cloud@0.3.1-next.0
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Updated dependencies
|
||||
- @backstage/integration@1.19.2-next.0
|
||||
- @backstage/plugin-bitbucket-cloud-common@0.3.6-next.0
|
||||
- @backstage/plugin-scaffolder-node@0.12.3-next.0
|
||||
|
||||
## @backstage/plugin-scaffolder-backend-module-bitbucket-server@0.2.17-next.0
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Updated dependencies
|
||||
- @backstage/integration@1.19.2-next.0
|
||||
- @backstage/plugin-scaffolder-node@0.12.3-next.0
|
||||
|
||||
## @backstage/plugin-scaffolder-backend-module-confluence-to-markdown@0.3.17-next.0
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Updated dependencies
|
||||
- @backstage/integration@1.19.2-next.0
|
||||
- @backstage/plugin-scaffolder-node@0.12.3-next.0
|
||||
|
||||
## @backstage/plugin-scaffolder-backend-module-cookiecutter@0.3.19-next.1
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Updated dependencies
|
||||
- @backstage/backend-defaults@0.14.1-next.1
|
||||
- @backstage/integration@1.19.2-next.0
|
||||
- @backstage/plugin-scaffolder-node@0.12.3-next.0
|
||||
|
||||
## @backstage/plugin-scaffolder-backend-module-gcp@0.2.17-next.0
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Updated dependencies
|
||||
- @backstage/integration@1.19.2-next.0
|
||||
- @backstage/plugin-scaffolder-node@0.12.3-next.0
|
||||
|
||||
## @backstage/plugin-scaffolder-backend-module-gerrit@0.2.17-next.0
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Updated dependencies
|
||||
- @backstage/integration@1.19.2-next.0
|
||||
- @backstage/plugin-scaffolder-node@0.12.3-next.0
|
||||
|
||||
## @backstage/plugin-scaffolder-backend-module-gitea@0.2.17-next.0
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Updated dependencies
|
||||
- @backstage/integration@1.19.2-next.0
|
||||
- @backstage/plugin-scaffolder-node@0.12.3-next.0
|
||||
|
||||
## @backstage/plugin-scaffolder-backend-module-github@0.9.4-next.0
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Updated dependencies
|
||||
- @backstage/integration@1.19.2-next.0
|
||||
- @backstage/plugin-scaffolder-node@0.12.3-next.0
|
||||
|
||||
## @backstage/plugin-scaffolder-backend-module-gitlab@0.11.1-next.0
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Updated dependencies
|
||||
- @backstage/integration@1.19.2-next.0
|
||||
- @backstage/plugin-scaffolder-node@0.12.3-next.0
|
||||
|
||||
## @backstage/plugin-scaffolder-backend-module-notifications@0.1.18-next.0
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Updated dependencies
|
||||
- @backstage/plugin-scaffolder-node@0.12.3-next.0
|
||||
|
||||
## @backstage/plugin-scaffolder-backend-module-rails@0.5.17-next.0
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Updated dependencies
|
||||
- @backstage/integration@1.19.2-next.0
|
||||
- @backstage/plugin-scaffolder-node@0.12.3-next.0
|
||||
|
||||
## @backstage/plugin-scaffolder-backend-module-sentry@0.2.17-next.0
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Updated dependencies
|
||||
- @backstage/plugin-scaffolder-node@0.12.3-next.0
|
||||
|
||||
## @backstage/plugin-scaffolder-backend-module-yeoman@0.4.18-next.1
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Updated dependencies
|
||||
- @backstage/plugin-scaffolder-node@0.12.3-next.0
|
||||
- @backstage/plugin-scaffolder-node-test-utils@0.3.7-next.1
|
||||
|
||||
## @backstage/plugin-scaffolder-common@1.7.5-next.0
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Updated dependencies
|
||||
- @backstage/integration@1.19.2-next.0
|
||||
|
||||
## @backstage/plugin-scaffolder-node@0.12.3-next.0
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Updated dependencies
|
||||
- @backstage/integration@1.19.2-next.0
|
||||
- @backstage/plugin-scaffolder-common@1.7.5-next.0
|
||||
|
||||
## @backstage/plugin-scaffolder-node-test-utils@0.3.7-next.1
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Updated dependencies
|
||||
- @backstage/plugin-scaffolder-node@0.12.3-next.0
|
||||
|
||||
## @backstage/plugin-scaffolder-react@1.19.5-next.0
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Updated dependencies
|
||||
- @backstage/plugin-scaffolder-common@1.7.5-next.0
|
||||
- @backstage/plugin-catalog-react@1.21.5-next.0
|
||||
- @backstage/frontend-plugin-api@0.13.2
|
||||
|
||||
## @backstage/plugin-search@1.5.2-next.0
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Updated dependencies
|
||||
- @backstage/plugin-catalog-react@1.21.5-next.0
|
||||
- @backstage/frontend-plugin-api@0.13.2
|
||||
- @backstage/plugin-search-react@1.10.1
|
||||
|
||||
## @backstage/plugin-search-backend-module-techdocs@0.4.10-next.0
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Updated dependencies
|
||||
- @backstage/plugin-techdocs-node@1.13.11-next.0
|
||||
|
||||
## @backstage/plugin-techdocs@1.16.2-next.0
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Updated dependencies
|
||||
- @backstage/integration@1.19.2-next.0
|
||||
- @backstage/integration-react@1.2.14-next.0
|
||||
- @backstage/plugin-catalog-react@1.21.5-next.0
|
||||
- @backstage/frontend-plugin-api@0.13.2
|
||||
- @backstage/plugin-search-react@1.10.1
|
||||
|
||||
## @backstage/plugin-techdocs-addons-test-utils@2.0.1-next.0
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Updated dependencies
|
||||
- @backstage/integration-react@1.2.14-next.0
|
||||
- @backstage/plugin-techdocs@1.16.2-next.0
|
||||
- @backstage/plugin-catalog@1.32.2-next.0
|
||||
- @backstage/plugin-catalog-react@1.21.5-next.0
|
||||
- @backstage/plugin-search-react@1.10.1
|
||||
|
||||
## @backstage/plugin-techdocs-backend@2.1.4-next.1
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- b6ff2a5: Some AWS `publisher` config options such as `region`, `endpoint`, `accountId` are now marked as `@visibility backend` instead of `secret`.
|
||||
- Updated dependencies
|
||||
- @backstage/backend-defaults@0.14.1-next.1
|
||||
- @backstage/integration@1.19.2-next.0
|
||||
- @backstage/plugin-techdocs-node@1.13.11-next.0
|
||||
|
||||
## @backstage/plugin-techdocs-module-addons-contrib@1.1.32-next.0
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Updated dependencies
|
||||
- @backstage/integration@1.19.2-next.0
|
||||
- @backstage/integration-react@1.2.14-next.0
|
||||
- @backstage/frontend-plugin-api@0.13.2
|
||||
|
||||
## @backstage/plugin-techdocs-node@1.13.11-next.0
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Updated dependencies
|
||||
- @backstage/integration@1.19.2-next.0
|
||||
|
||||
## @backstage/plugin-user-settings@0.8.31-next.0
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Updated dependencies
|
||||
- @backstage/plugin-catalog-react@1.21.5-next.0
|
||||
- @backstage/frontend-plugin-api@0.13.2
|
||||
|
||||
## example-app@0.2.117-next.1
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Updated dependencies
|
||||
- @backstage/cli@0.35.2-next.1
|
||||
- @backstage/integration-react@1.2.14-next.0
|
||||
- @backstage/plugin-catalog-import@0.13.9-next.0
|
||||
- @backstage/plugin-scaffolder@1.35.1-next.0
|
||||
- @backstage/plugin-techdocs@1.16.2-next.0
|
||||
- @backstage/plugin-techdocs-module-addons-contrib@1.1.32-next.0
|
||||
- @backstage/plugin-catalog@1.32.2-next.0
|
||||
- @backstage/plugin-catalog-react@1.21.5-next.0
|
||||
- @backstage/plugin-scaffolder-react@1.19.5-next.0
|
||||
- @backstage/frontend-app-api@0.13.4-next.0
|
||||
- @backstage/plugin-api-docs@0.13.3-next.0
|
||||
- @backstage/plugin-catalog-graph@0.5.5-next.0
|
||||
- @backstage/plugin-org@0.6.48-next.0
|
||||
- @backstage/plugin-user-settings@0.8.31-next.0
|
||||
- @backstage/plugin-home@0.8.16-next.0
|
||||
- @backstage/plugin-kubernetes@0.12.15-next.0
|
||||
- @backstage/plugin-kubernetes-cluster@0.0.33-next.0
|
||||
- @backstage/plugin-search@1.5.2-next.0
|
||||
- @backstage/plugin-search-react@1.10.1
|
||||
- @backstage/plugin-devtools@0.1.35-next.0
|
||||
|
||||
## example-app-next@0.0.31-next.1
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Updated dependencies
|
||||
- @backstage/cli@0.35.2-next.1
|
||||
- @backstage/integration-react@1.2.14-next.0
|
||||
- @backstage/plugin-catalog-import@0.13.9-next.0
|
||||
- @backstage/plugin-scaffolder@1.35.1-next.0
|
||||
- @backstage/plugin-techdocs@1.16.2-next.0
|
||||
- @backstage/plugin-techdocs-module-addons-contrib@1.1.32-next.0
|
||||
- @backstage/plugin-app@0.3.4-next.0
|
||||
- @backstage/plugin-catalog@1.32.2-next.0
|
||||
- @backstage/plugin-catalog-react@1.21.5-next.0
|
||||
- @backstage/plugin-scaffolder-react@1.19.5-next.0
|
||||
- @backstage/frontend-app-api@0.13.4-next.0
|
||||
- @backstage/frontend-defaults@0.3.5-next.0
|
||||
- @backstage/core-compat-api@0.5.6-next.0
|
||||
- @backstage/plugin-api-docs@0.13.3-next.0
|
||||
- @backstage/plugin-catalog-graph@0.5.5-next.0
|
||||
- @backstage/plugin-org@0.6.48-next.0
|
||||
- @backstage/plugin-user-settings@0.8.31-next.0
|
||||
- @backstage/plugin-home@0.8.16-next.0
|
||||
- @backstage/plugin-kubernetes@0.12.15-next.0
|
||||
- @backstage/plugin-kubernetes-cluster@0.0.33-next.0
|
||||
- @backstage/plugin-search@1.5.2-next.0
|
||||
- @backstage/plugin-app-visualizer@0.1.27-next.0
|
||||
- @backstage/plugin-auth@0.1.3
|
||||
- @backstage/frontend-plugin-api@0.13.2
|
||||
- @backstage/plugin-search-react@1.10.1
|
||||
|
||||
## example-backend@0.0.46-next.1
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Updated dependencies
|
||||
- @backstage/backend-defaults@0.14.1-next.1
|
||||
- @backstage/plugin-techdocs-backend@2.1.4-next.1
|
||||
- @backstage/plugin-catalog-backend@3.3.1-next.1
|
||||
- @backstage/plugin-catalog-backend-module-openapi@0.2.18-next.0
|
||||
- @backstage/plugin-scaffolder-backend@3.1.1-next.1
|
||||
- @backstage/plugin-scaffolder-backend-module-github@0.9.4-next.0
|
||||
- @backstage/plugin-catalog-backend-module-scaffolder-entity-model@0.2.16-next.0
|
||||
- @backstage/plugin-scaffolder-backend-module-notifications@0.1.18-next.0
|
||||
- @backstage/plugin-search-backend-module-techdocs@0.4.10-next.0
|
||||
|
||||
## @internal/scaffolder@0.0.17-next.0
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Updated dependencies
|
||||
- @backstage/plugin-scaffolder-react@1.19.5-next.0
|
||||
- @backstage/frontend-plugin-api@0.13.2
|
||||
|
||||
## techdocs-cli-embedded-app@0.2.116-next.1
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Updated dependencies
|
||||
- @backstage/cli@0.35.2-next.1
|
||||
- @backstage/integration-react@1.2.14-next.0
|
||||
- @backstage/plugin-techdocs@1.16.2-next.0
|
||||
- @backstage/plugin-catalog@1.32.2-next.0
|
||||
@@ -0,0 +1,385 @@
|
||||
# Release v1.47.0-next.2
|
||||
|
||||
Upgrade Helper: [https://backstage.github.io/upgrade-helper/?to=1.47.0-next.2](https://backstage.github.io/upgrade-helper/?to=1.47.0-next.2)
|
||||
|
||||
## @backstage/app-defaults@1.7.4-next.0
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Updated dependencies
|
||||
- @backstage/core-components@0.18.5-next.0
|
||||
|
||||
## @backstage/core-components@0.18.5-next.0
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- a723b8a: The MarkdownContent component now handles HTML content the same way as GitHub when rendering GitHub-flavored Markdown
|
||||
|
||||
## @backstage/create-app@0.7.8-next.2
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- f1fe6fe: Updated Dockerfile to use Node 24 and Debian Trixie
|
||||
|
||||
## @backstage/dev-utils@1.1.19-next.2
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Updated dependencies
|
||||
- @backstage/core-components@0.18.5-next.0
|
||||
- @backstage/app-defaults@1.7.4-next.0
|
||||
- @backstage/integration-react@1.2.14-next.0
|
||||
- @backstage/plugin-catalog-react@1.21.5-next.1
|
||||
|
||||
## @backstage/frontend-defaults@0.3.5-next.1
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Updated dependencies
|
||||
- @backstage/core-components@0.18.5-next.0
|
||||
- @backstage/plugin-app@0.3.4-next.1
|
||||
|
||||
## @backstage/plugin-api-docs@0.13.3-next.1
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Updated dependencies
|
||||
- @backstage/core-components@0.18.5-next.0
|
||||
- @backstage/plugin-catalog@1.32.2-next.1
|
||||
- @backstage/plugin-catalog-react@1.21.5-next.1
|
||||
|
||||
## @backstage/plugin-app@0.3.4-next.1
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Updated dependencies
|
||||
- @backstage/core-components@0.18.5-next.0
|
||||
- @backstage/integration-react@1.2.14-next.0
|
||||
|
||||
## @backstage/plugin-app-visualizer@0.1.27-next.1
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Updated dependencies
|
||||
- @backstage/core-components@0.18.5-next.0
|
||||
|
||||
## @backstage/plugin-auth@0.1.4-next.0
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Updated dependencies
|
||||
- @backstage/core-components@0.18.5-next.0
|
||||
|
||||
## @backstage/plugin-auth-react@0.1.23-next.0
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Updated dependencies
|
||||
- @backstage/core-components@0.18.5-next.0
|
||||
|
||||
## @backstage/plugin-catalog@1.32.2-next.1
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Updated dependencies
|
||||
- @backstage/core-components@0.18.5-next.0
|
||||
- @backstage/integration-react@1.2.14-next.0
|
||||
- @backstage/plugin-catalog-react@1.21.5-next.1
|
||||
- @backstage/plugin-search-react@1.10.2-next.0
|
||||
- @backstage/plugin-techdocs-react@1.3.7-next.0
|
||||
|
||||
## @backstage/plugin-catalog-graph@0.5.5-next.1
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- 5c49a00: Update for the `qs` library bump: the old array limit setting has changed to be more strict; you can no longer just give a zero to mean unlimited. So we choose an arbitrary high value, to at least go higher than the default 20.
|
||||
- Updated dependencies
|
||||
- @backstage/core-components@0.18.5-next.0
|
||||
- @backstage/plugin-catalog-react@1.21.5-next.1
|
||||
|
||||
## @backstage/plugin-catalog-import@0.13.9-next.1
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Updated dependencies
|
||||
- @backstage/core-components@0.18.5-next.0
|
||||
- @backstage/integration-react@1.2.14-next.0
|
||||
- @backstage/plugin-catalog-react@1.21.5-next.1
|
||||
|
||||
## @backstage/plugin-catalog-react@1.21.5-next.1
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Updated dependencies
|
||||
- @backstage/core-components@0.18.5-next.0
|
||||
- @backstage/integration-react@1.2.14-next.0
|
||||
|
||||
## @backstage/plugin-catalog-unprocessed-entities@0.2.25-next.0
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Updated dependencies
|
||||
- @backstage/core-components@0.18.5-next.0
|
||||
|
||||
## @backstage/plugin-config-schema@0.1.76-next.0
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Updated dependencies
|
||||
- @backstage/core-components@0.18.5-next.0
|
||||
|
||||
## @backstage/plugin-devtools@0.1.35-next.1
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Updated dependencies
|
||||
- @backstage/core-components@0.18.5-next.0
|
||||
|
||||
## @backstage/plugin-home@0.8.16-next.1
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Updated dependencies
|
||||
- @backstage/core-components@0.18.5-next.0
|
||||
- @backstage/plugin-catalog-react@1.21.5-next.1
|
||||
- @backstage/plugin-home-react@0.1.34-next.0
|
||||
|
||||
## @backstage/plugin-home-react@0.1.34-next.0
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Updated dependencies
|
||||
- @backstage/core-components@0.18.5-next.0
|
||||
|
||||
## @backstage/plugin-kubernetes@0.12.15-next.1
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Updated dependencies
|
||||
- @backstage/core-components@0.18.5-next.0
|
||||
- @backstage/plugin-catalog-react@1.21.5-next.1
|
||||
- @backstage/plugin-kubernetes-react@0.5.15-next.0
|
||||
|
||||
## @backstage/plugin-kubernetes-cluster@0.0.33-next.1
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Updated dependencies
|
||||
- @backstage/core-components@0.18.5-next.0
|
||||
- @backstage/plugin-catalog-react@1.21.5-next.1
|
||||
- @backstage/plugin-kubernetes-react@0.5.15-next.0
|
||||
|
||||
## @backstage/plugin-kubernetes-react@0.5.15-next.0
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Updated dependencies
|
||||
- @backstage/core-components@0.18.5-next.0
|
||||
|
||||
## @backstage/plugin-notifications@0.5.13-next.0
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Updated dependencies
|
||||
- @backstage/core-components@0.18.5-next.0
|
||||
|
||||
## @backstage/plugin-org@0.6.48-next.1
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Updated dependencies
|
||||
- @backstage/core-components@0.18.5-next.0
|
||||
- @backstage/plugin-catalog-react@1.21.5-next.1
|
||||
|
||||
## @backstage/plugin-org-react@0.1.46-next.1
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Updated dependencies
|
||||
- @backstage/core-components@0.18.5-next.0
|
||||
- @backstage/plugin-catalog-react@1.21.5-next.1
|
||||
|
||||
## @backstage/plugin-scaffolder@1.35.1-next.1
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Updated dependencies
|
||||
- @backstage/core-components@0.18.5-next.0
|
||||
- @backstage/integration-react@1.2.14-next.0
|
||||
- @backstage/plugin-catalog-react@1.21.5-next.1
|
||||
- @backstage/plugin-scaffolder-react@1.19.5-next.1
|
||||
- @backstage/plugin-techdocs-react@1.3.7-next.0
|
||||
|
||||
## @backstage/plugin-scaffolder-react@1.19.5-next.1
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Updated dependencies
|
||||
- @backstage/core-components@0.18.5-next.0
|
||||
- @backstage/plugin-catalog-react@1.21.5-next.1
|
||||
|
||||
## @backstage/plugin-search@1.5.2-next.1
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- 5c49a00: Update for the `qs` library bump: the old array limit setting has changed to be more strict; you can no longer just give a zero to mean unlimited. So we choose an arbitrary high value, to at least go higher than the default 20.
|
||||
- Updated dependencies
|
||||
- @backstage/core-components@0.18.5-next.0
|
||||
- @backstage/plugin-catalog-react@1.21.5-next.1
|
||||
- @backstage/plugin-search-react@1.10.2-next.0
|
||||
|
||||
## @backstage/plugin-search-react@1.10.2-next.0
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Updated dependencies
|
||||
- @backstage/core-components@0.18.5-next.0
|
||||
|
||||
## @backstage/plugin-signals@0.0.27-next.0
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Updated dependencies
|
||||
- @backstage/core-components@0.18.5-next.0
|
||||
|
||||
## @backstage/plugin-techdocs@1.16.2-next.1
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Updated dependencies
|
||||
- @backstage/core-components@0.18.5-next.0
|
||||
- @backstage/integration-react@1.2.14-next.0
|
||||
- @backstage/plugin-auth-react@0.1.23-next.0
|
||||
- @backstage/plugin-catalog-react@1.21.5-next.1
|
||||
- @backstage/plugin-search-react@1.10.2-next.0
|
||||
- @backstage/plugin-techdocs-react@1.3.7-next.0
|
||||
|
||||
## @backstage/plugin-techdocs-addons-test-utils@2.0.1-next.1
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Updated dependencies
|
||||
- @backstage/integration-react@1.2.14-next.0
|
||||
- @backstage/plugin-catalog@1.32.2-next.1
|
||||
- @backstage/plugin-catalog-react@1.21.5-next.1
|
||||
- @backstage/plugin-search-react@1.10.2-next.0
|
||||
- @backstage/plugin-techdocs@1.16.2-next.1
|
||||
- @backstage/plugin-techdocs-react@1.3.7-next.0
|
||||
|
||||
## @backstage/plugin-techdocs-module-addons-contrib@1.1.32-next.1
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Updated dependencies
|
||||
- @backstage/core-components@0.18.5-next.0
|
||||
- @backstage/integration-react@1.2.14-next.0
|
||||
- @backstage/plugin-techdocs-react@1.3.7-next.0
|
||||
|
||||
## @backstage/plugin-techdocs-react@1.3.7-next.0
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Updated dependencies
|
||||
- @backstage/core-components@0.18.5-next.0
|
||||
|
||||
## @backstage/plugin-user-settings@0.8.31-next.1
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Updated dependencies
|
||||
- @backstage/core-components@0.18.5-next.0
|
||||
- @backstage/plugin-catalog-react@1.21.5-next.1
|
||||
|
||||
## example-app@0.2.117-next.2
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Updated dependencies
|
||||
- @backstage/core-components@0.18.5-next.0
|
||||
- @backstage/plugin-catalog-graph@0.5.5-next.1
|
||||
- @backstage/plugin-search@1.5.2-next.1
|
||||
- @backstage/app-defaults@1.7.4-next.0
|
||||
- @backstage/cli@0.35.2-next.1
|
||||
- @backstage/integration-react@1.2.14-next.0
|
||||
- @backstage/plugin-api-docs@0.13.3-next.1
|
||||
- @backstage/plugin-auth-react@0.1.23-next.0
|
||||
- @backstage/plugin-catalog@1.32.2-next.1
|
||||
- @backstage/plugin-catalog-import@0.13.9-next.1
|
||||
- @backstage/plugin-catalog-react@1.21.5-next.1
|
||||
- @backstage/plugin-catalog-unprocessed-entities@0.2.25-next.0
|
||||
- @backstage/plugin-devtools@0.1.35-next.1
|
||||
- @backstage/plugin-home@0.8.16-next.1
|
||||
- @backstage/plugin-kubernetes@0.12.15-next.1
|
||||
- @backstage/plugin-kubernetes-cluster@0.0.33-next.1
|
||||
- @backstage/plugin-notifications@0.5.13-next.0
|
||||
- @backstage/plugin-org@0.6.48-next.1
|
||||
- @backstage/plugin-scaffolder@1.35.1-next.1
|
||||
- @backstage/plugin-scaffolder-react@1.19.5-next.1
|
||||
- @backstage/plugin-search-react@1.10.2-next.0
|
||||
- @backstage/plugin-signals@0.0.27-next.0
|
||||
- @backstage/plugin-techdocs@1.16.2-next.1
|
||||
- @backstage/plugin-techdocs-module-addons-contrib@1.1.32-next.1
|
||||
- @backstage/plugin-techdocs-react@1.3.7-next.0
|
||||
- @backstage/plugin-user-settings@0.8.31-next.1
|
||||
|
||||
## example-app-next@0.0.31-next.2
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Updated dependencies
|
||||
- @backstage/core-components@0.18.5-next.0
|
||||
- @backstage/plugin-catalog-graph@0.5.5-next.1
|
||||
- @backstage/plugin-search@1.5.2-next.1
|
||||
- @backstage/app-defaults@1.7.4-next.0
|
||||
- @backstage/cli@0.35.2-next.1
|
||||
- @backstage/frontend-defaults@0.3.5-next.1
|
||||
- @backstage/integration-react@1.2.14-next.0
|
||||
- @backstage/plugin-api-docs@0.13.3-next.1
|
||||
- @backstage/plugin-app@0.3.4-next.1
|
||||
- @backstage/plugin-app-visualizer@0.1.27-next.1
|
||||
- @backstage/plugin-auth@0.1.4-next.0
|
||||
- @backstage/plugin-auth-react@0.1.23-next.0
|
||||
- @backstage/plugin-catalog@1.32.2-next.1
|
||||
- @backstage/plugin-catalog-import@0.13.9-next.1
|
||||
- @backstage/plugin-catalog-react@1.21.5-next.1
|
||||
- @backstage/plugin-catalog-unprocessed-entities@0.2.25-next.0
|
||||
- @backstage/plugin-home@0.8.16-next.1
|
||||
- @backstage/plugin-kubernetes@0.12.15-next.1
|
||||
- @backstage/plugin-kubernetes-cluster@0.0.33-next.1
|
||||
- @backstage/plugin-notifications@0.5.13-next.0
|
||||
- @backstage/plugin-org@0.6.48-next.1
|
||||
- @backstage/plugin-scaffolder@1.35.1-next.1
|
||||
- @backstage/plugin-scaffolder-react@1.19.5-next.1
|
||||
- @backstage/plugin-search-react@1.10.2-next.0
|
||||
- @backstage/plugin-signals@0.0.27-next.0
|
||||
- @backstage/plugin-techdocs@1.16.2-next.1
|
||||
- @backstage/plugin-techdocs-module-addons-contrib@1.1.32-next.1
|
||||
- @backstage/plugin-techdocs-react@1.3.7-next.0
|
||||
- @backstage/plugin-user-settings@0.8.31-next.1
|
||||
|
||||
## app-next-example-plugin@0.0.31-next.0
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Updated dependencies
|
||||
- @backstage/core-components@0.18.5-next.0
|
||||
|
||||
## techdocs-cli-embedded-app@0.2.116-next.2
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Updated dependencies
|
||||
- @backstage/core-components@0.18.5-next.0
|
||||
- @backstage/app-defaults@1.7.4-next.0
|
||||
- @backstage/cli@0.35.2-next.1
|
||||
- @backstage/integration-react@1.2.14-next.0
|
||||
- @backstage/plugin-catalog@1.32.2-next.1
|
||||
- @backstage/plugin-techdocs@1.16.2-next.1
|
||||
- @backstage/plugin-techdocs-react@1.3.7-next.0
|
||||
|
||||
## @internal/plugin-todo-list@1.0.47-next.0
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Updated dependencies
|
||||
- @backstage/core-components@0.18.5-next.0
|
||||
@@ -417,7 +417,7 @@ The following is an example of a `Dockerfile` that can be used to package the
|
||||
output of building a package with role `'backend'` into an image:
|
||||
|
||||
```Dockerfile
|
||||
FROM node:20-bookworm-slim
|
||||
FROM node:24-trixie-slim
|
||||
WORKDIR /app
|
||||
|
||||
COPY yarn.lock package.json packages/backend/dist/skeleton.tar.gz ./
|
||||
|
||||
@@ -0,0 +1,115 @@
|
||||
---
|
||||
title: 'Backstage Wrapped 2025: Celebrating a mature framework with modern foundations'
|
||||
author: Vincenzo Scamporlino, Spotify
|
||||
authorURL: https://github.com/vinzscam
|
||||
authorImageURL: https://avatars.githubusercontent.com/u/8433119?v=8
|
||||
---
|
||||
|
||||

|
||||
|
||||
This year was another big one for Backstage and our worldwide community of adopters, contributors, and partners. Backstage turned five, the New Frontend System became adoption-ready, and your favorite platform for developer experience gained AI superpowers with the introduction of the Actions Registry and MCP server support. Let's blast into the New Year with a quick look back, along with a peek around the corner at what's coming next.
|
||||
|
||||
{/* truncate */}
|
||||
|
||||
---
|
||||
|
||||
## Busy beavers here, there, and everywhere
|
||||
|
||||
As in years past, we've visualized how our vibrant global community lights up the Backstage open source repo with enthusiasm, creativity, and commits. This year, we're visualizing contributions to the Community Plugins repo, too. Can you spot your name in the videos below?
|
||||
|
||||
<iframe
|
||||
src="https://www.youtube.com/embed/-D8PGN1tPn8"
|
||||
width="100%"
|
||||
height="440"
|
||||
allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture"
|
||||
allowFullScreen
|
||||
></iframe>
|
||||
|
||||
_All 7.7k commits to `backstage/backstage` in 2025_
|
||||
|
||||
<iframe
|
||||
src="https://www.youtube.com/embed/Vaz0AbOJdi0"
|
||||
width="100%"
|
||||
height="440"
|
||||
allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture"
|
||||
allowFullScreen
|
||||
></iframe>
|
||||
|
||||
_All 3.3k commits to `backstage/community-plugins` in 2025_
|
||||
|
||||
Couldn't spot your name in the videos? Here's one more chance — every contributor who helped shape Backstage in 2025, all in one picture.
|
||||
|
||||

|
||||
|
||||
## Mature for a five-year-old
|
||||
|
||||

|
||||
_The growing Backstage ecosystem, by the numbers_
|
||||
|
||||
Earlier this year, the Backstage project [celebrated its 5th birthday][bday] on the main stage at [KubeCon + CloudNativeCon in London][kcon-eu].
|
||||
|
||||
While the framework still isn't old enough to shave, it's matured into the industry standard for internal developer portals (IDPs). According to [this DX survey][dx] released in March:
|
||||
|
||||
> Backstage is dominating the IDP market, holding an impressive 89% market share compared to SaaS competitors and achieving a remarkable 67% overall market penetration. These percentages are even higher for enterprise companies.
|
||||
|
||||
As you can see above in the [latest project stats][video], the Backstage ecosystem continues to expand, growing in adopters and contributors, as well as plugins and third-party service providers.
|
||||
|
||||
Want to dive into more Backstage stats? Check out the project's health scores and more on the relaunched [LFX Insights][lfx] site.
|
||||
|
||||
[bday]: https://www.youtube.com/watch?v=JqG1wey7-Ao&t=563s&list=PL8iP9yIjU0Q3K8LV_a9CcFmhvvNTAUzL1
|
||||
[kcon-eu]: https://backstage.io/blog/2025/04/29/backstagecon-kubecon-25-london#big-birthday-energy-on-the-big-stage
|
||||
[dx]: https://newsletter.getdx.com/p/backstage-and-the-developer-portal-market
|
||||
[video]: https://www.youtube.com/watch?v=Wih0a1v1Et0&list=PL8iP9yIjU0Q33vpSaBlAvIhgDb-9smXUU
|
||||
[lfx]: https://insights.linuxfoundation.org/project/backstage
|
||||
|
||||
## Building the future on modern foundations
|
||||
|
||||
Just because Backstage has cemented its place as the standard for IDPs doesn't mean it's sitting still. From backend to frontend, from AI to UI, the technical foundations of the platform have been modernized, updated, and revamped — this is why today's Backstage is ready to build the future of developer experience.
|
||||
|
||||
Top 2025 highlights:
|
||||
|
||||
- Goodbye to the old backend system
|
||||
- New Frontend System is adoption-ready
|
||||
- Hello to the Actions Registry + MCP server support
|
||||
- Introducing a new design system with Backstage UI
|
||||
|
||||
With the [New Backend System][backend] released as a stable 1.0 last year and the [New Frontend System][frontend] becoming [adoption-ready][1-42] this year, Backstage is easier than ever to use, maintain, and build on — making it both more accessible and more capable for adopters, old and new.
|
||||
|
||||
This year also saw the debut of the [Actions Registry][actions] and MCP server support — so now Backstage can empower both your human developers and their AI helpers.
|
||||
|
||||
And [Backstage UI][ui] is coming! The alpha release of the upcoming design system made huge strides in 2025, preparing the way for a new level of usability throughout the Backstage experience.
|
||||
|
||||
Catch up on a whole year's worth of improvements — and see where Backstage is heading next — in the recordings below.
|
||||
|
||||
[backend]: https://backstage.io/docs/backend-system/
|
||||
[frontend]: https://backstage.io/docs/frontend-system/
|
||||
[1-42]: https://backstage.io/docs/releases/v1.42.0
|
||||
[actions]: https://backstage.io/docs/backend-system/core-services/actions-registry
|
||||
[ui]: https://ui.backstage.io/
|
||||
|
||||
<iframe
|
||||
src="https://www.youtube.com/embed/anqWhSnN7sA"
|
||||
width="100%"
|
||||
height="440"
|
||||
allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture"
|
||||
allowFullScreen
|
||||
></iframe>
|
||||
|
||||
_Watch the Backstage maintainers' talk at [KubeCon in London][lon], where they demoed the New Frontend System and introduced the Actions Registry._
|
||||
|
||||
<iframe
|
||||
src="https://www.youtube.com/embed/evmmr-uxNsc"
|
||||
width="100%"
|
||||
height="440"
|
||||
allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture"
|
||||
allowFullScreen
|
||||
></iframe>
|
||||
_Watch the maintainers' talk at [KubeCon in Atlanta][atl], where they shared
|
||||
work towards an AI-Native Backstage, progress on Backstage UI, and more._
|
||||
|
||||
[lon]: https://backstage.io/blog/2025/04/29/backstagecon-kubecon-25-london
|
||||
[atl]: https://backstage.io/blog/2025/11/25/backstagecon-kubecon-25-atlanta
|
||||
|
||||
## See you in 2026!
|
||||
|
||||
Happy New Year, Backstage Community! See you in the repos!
|
||||
|
After Width: | Height: | Size: 25 MiB |
|
After Width: | Height: | Size: 364 KiB |
|
After Width: | Height: | Size: 445 KiB |
@@ -273,6 +273,10 @@ const config: Config = {
|
||||
from: '/docs/getting-started/app-custom-theme',
|
||||
to: '/docs/conf/user-interface',
|
||||
},
|
||||
{
|
||||
from: '/docs/plugins/existing-plugins',
|
||||
to: '/docs/plugins/',
|
||||
},
|
||||
],
|
||||
}),
|
||||
[
|
||||
|
||||
@@ -27,17 +27,17 @@ function sidebarElementWithIndex(
|
||||
},
|
||||
children: Array<string | object>,
|
||||
) {
|
||||
const { label, description, differentiator } = element;
|
||||
const { label, description, differentiator = '' } = element;
|
||||
return {
|
||||
type: 'category',
|
||||
label: label,
|
||||
label,
|
||||
description,
|
||||
link: {
|
||||
type: 'generated-index',
|
||||
title: label,
|
||||
slug: `/${differentiator}${label
|
||||
.toLowerCase()
|
||||
.replace(/[^a-z0-9 _-]/gi, '-')}/generated-index`,
|
||||
.replace(/[^a-z0-9]/g, '-')}/generated-index`,
|
||||
},
|
||||
items: children,
|
||||
};
|
||||
@@ -397,7 +397,6 @@ export default {
|
||||
},
|
||||
[
|
||||
'plugins/index',
|
||||
'plugins/existing-plugins',
|
||||
'plugins/create-a-plugin',
|
||||
'plugins/plugin-development',
|
||||
'plugins/structure-of-a-plugin',
|
||||
|
||||
@@ -135,7 +135,6 @@ nav:
|
||||
- Org Data: 'integrations/ldap/org.md'
|
||||
- Plugins:
|
||||
- Intro to plugins: 'plugins/index.md'
|
||||
- Existing plugins: 'plugins/existing-plugins.md'
|
||||
- Create a Backstage Plugin: 'plugins/create-a-plugin.md'
|
||||
- Plugin Development: 'plugins/plugin-development.md'
|
||||
- Structure of a plugin: 'plugins/structure-of-a-plugin.md'
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "root",
|
||||
"version": "1.46.0",
|
||||
"version": "1.47.0-next.2",
|
||||
"backstage": {
|
||||
"cli": {
|
||||
"new": {
|
||||
@@ -134,6 +134,7 @@
|
||||
"@backstage/eslint-plugin": "workspace:*",
|
||||
"@backstage/repo-tools": "workspace:*",
|
||||
"@changesets/cli": "^2.14.0",
|
||||
"@jest/environment-jsdom-abstract": "^30",
|
||||
"@octokit/rest": "^19.0.3",
|
||||
"@playwright/test": "^1.32.3",
|
||||
"@spotify/eslint-plugin": "^15.0.0",
|
||||
@@ -145,12 +146,14 @@
|
||||
"@storybook/react-vite": "^10.1.9",
|
||||
"@techdocs/cli": "workspace:*",
|
||||
"@types/cacheable-request": "^8.3.6",
|
||||
"@types/jest": "^30",
|
||||
"@types/jsdom": "^27",
|
||||
"@types/memjs": "^1.3.3",
|
||||
"@types/node": "^22.13.14",
|
||||
"@types/webpack": "^5.28.0",
|
||||
"array-to-table": "^1.0.1",
|
||||
"command-exists": "^1.2.9",
|
||||
"cross-env": "^7.0.0",
|
||||
"cross-env": "^10.0.0",
|
||||
"e2e-test": "workspace:*",
|
||||
"eslint": "^8.6.0",
|
||||
"eslint-plugin-notice": "^1.0.0",
|
||||
@@ -158,7 +161,9 @@
|
||||
"eslint-plugin-testing-library": "^6.0.0",
|
||||
"fs-extra": "^11.2.0",
|
||||
"husky": "^9.0.0",
|
||||
"jest": "^30",
|
||||
"js-yaml": "^4.1.1",
|
||||
"jsdom": "^27",
|
||||
"lint-staged": "^15.0.0",
|
||||
"madge": "^8.0.0",
|
||||
"minimist": "^1.2.5",
|
||||
|
||||
@@ -1,5 +1,12 @@
|
||||
# @backstage/app-defaults
|
||||
|
||||
## 1.7.4-next.0
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Updated dependencies
|
||||
- @backstage/core-components@0.18.5-next.0
|
||||
|
||||
## 1.7.3
|
||||
|
||||
### Patch Changes
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@backstage/app-defaults",
|
||||
"version": "1.7.3",
|
||||
"version": "1.7.4-next.0",
|
||||
"description": "Provides the default wiring of a Backstage App",
|
||||
"backstage": {
|
||||
"role": "web-library"
|
||||
|
||||
@@ -1,5 +1,12 @@
|
||||
# app-next-example-plugin
|
||||
|
||||
## 0.0.31-next.0
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Updated dependencies
|
||||
- @backstage/core-components@0.18.5-next.0
|
||||
|
||||
## 0.0.30
|
||||
|
||||
### Patch Changes
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "app-next-example-plugin",
|
||||
"version": "0.0.30",
|
||||
"version": "0.0.31-next.0",
|
||||
"description": "Backstage internal example plugin",
|
||||
"backstage": {
|
||||
"role": "frontend-plugin",
|
||||
|
||||
@@ -1,5 +1,118 @@
|
||||
# example-app-next
|
||||
|
||||
## 0.0.31-next.2
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Updated dependencies
|
||||
- @backstage/core-components@0.18.5-next.0
|
||||
- @backstage/plugin-catalog-graph@0.5.5-next.1
|
||||
- @backstage/plugin-search@1.5.2-next.1
|
||||
- @backstage/app-defaults@1.7.4-next.0
|
||||
- @backstage/cli@0.35.2-next.1
|
||||
- @backstage/frontend-defaults@0.3.5-next.1
|
||||
- @backstage/integration-react@1.2.14-next.0
|
||||
- @backstage/plugin-api-docs@0.13.3-next.1
|
||||
- @backstage/plugin-app@0.3.4-next.1
|
||||
- @backstage/plugin-app-visualizer@0.1.27-next.1
|
||||
- @backstage/plugin-auth@0.1.4-next.0
|
||||
- @backstage/plugin-auth-react@0.1.23-next.0
|
||||
- @backstage/plugin-catalog@1.32.2-next.1
|
||||
- @backstage/plugin-catalog-import@0.13.9-next.1
|
||||
- @backstage/plugin-catalog-react@1.21.5-next.1
|
||||
- @backstage/plugin-catalog-unprocessed-entities@0.2.25-next.0
|
||||
- @backstage/plugin-home@0.8.16-next.1
|
||||
- @backstage/plugin-kubernetes@0.12.15-next.1
|
||||
- @backstage/plugin-kubernetes-cluster@0.0.33-next.1
|
||||
- @backstage/plugin-notifications@0.5.13-next.0
|
||||
- @backstage/plugin-org@0.6.48-next.1
|
||||
- @backstage/plugin-scaffolder@1.35.1-next.1
|
||||
- @backstage/plugin-scaffolder-react@1.19.5-next.1
|
||||
- @backstage/plugin-search-react@1.10.2-next.0
|
||||
- @backstage/plugin-signals@0.0.27-next.0
|
||||
- @backstage/plugin-techdocs@1.16.2-next.1
|
||||
- @backstage/plugin-techdocs-module-addons-contrib@1.1.32-next.1
|
||||
- @backstage/plugin-techdocs-react@1.3.7-next.0
|
||||
- @backstage/plugin-user-settings@0.8.31-next.1
|
||||
|
||||
## 0.0.31-next.1
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Updated dependencies
|
||||
- @backstage/cli@0.35.2-next.1
|
||||
- @backstage/integration-react@1.2.14-next.0
|
||||
- @backstage/plugin-catalog-import@0.13.9-next.0
|
||||
- @backstage/plugin-scaffolder@1.35.1-next.0
|
||||
- @backstage/plugin-techdocs@1.16.2-next.0
|
||||
- @backstage/plugin-techdocs-module-addons-contrib@1.1.32-next.0
|
||||
- @backstage/plugin-app@0.3.4-next.0
|
||||
- @backstage/plugin-catalog@1.32.2-next.0
|
||||
- @backstage/plugin-catalog-react@1.21.5-next.0
|
||||
- @backstage/plugin-scaffolder-react@1.19.5-next.0
|
||||
- @backstage/frontend-app-api@0.13.4-next.0
|
||||
- @backstage/frontend-defaults@0.3.5-next.0
|
||||
- @backstage/core-compat-api@0.5.6-next.0
|
||||
- @backstage/plugin-api-docs@0.13.3-next.0
|
||||
- @backstage/plugin-catalog-graph@0.5.5-next.0
|
||||
- @backstage/plugin-org@0.6.48-next.0
|
||||
- @backstage/plugin-user-settings@0.8.31-next.0
|
||||
- @backstage/plugin-home@0.8.16-next.0
|
||||
- @backstage/plugin-kubernetes@0.12.15-next.0
|
||||
- @backstage/plugin-kubernetes-cluster@0.0.33-next.0
|
||||
- @backstage/plugin-search@1.5.2-next.0
|
||||
- @backstage/plugin-app-visualizer@0.1.27-next.0
|
||||
- @backstage/plugin-auth@0.1.3
|
||||
- @backstage/frontend-plugin-api@0.13.2
|
||||
- @backstage/plugin-search-react@1.10.1
|
||||
|
||||
## 0.0.31-next.0
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Updated dependencies
|
||||
- @backstage/ui@0.11.0-next.0
|
||||
- @backstage/cli@0.35.2-next.0
|
||||
- @backstage/plugin-app-visualizer@0.1.27-next.0
|
||||
- @backstage/app-defaults@1.7.3
|
||||
- @backstage/catalog-model@1.7.6
|
||||
- @backstage/config@1.3.6
|
||||
- @backstage/core-app-api@1.19.3
|
||||
- @backstage/core-compat-api@0.5.5
|
||||
- @backstage/core-components@0.18.4
|
||||
- @backstage/core-plugin-api@1.12.1
|
||||
- @backstage/frontend-app-api@0.13.3
|
||||
- @backstage/frontend-defaults@0.3.4
|
||||
- @backstage/frontend-plugin-api@0.13.2
|
||||
- @backstage/integration-react@1.2.13
|
||||
- @backstage/theme@0.7.1
|
||||
- @backstage/plugin-api-docs@0.13.2
|
||||
- @backstage/plugin-app@0.3.3
|
||||
- @backstage/plugin-auth@0.1.3
|
||||
- @backstage/plugin-auth-react@0.1.22
|
||||
- @backstage/plugin-catalog@1.32.1
|
||||
- @backstage/plugin-catalog-common@1.1.7
|
||||
- @backstage/plugin-catalog-graph@0.5.4
|
||||
- @backstage/plugin-catalog-import@0.13.8
|
||||
- @backstage/plugin-catalog-react@1.21.4
|
||||
- @backstage/plugin-catalog-unprocessed-entities@0.2.24
|
||||
- @backstage/plugin-home@0.8.15
|
||||
- @backstage/plugin-kubernetes@0.12.14
|
||||
- @backstage/plugin-kubernetes-cluster@0.0.32
|
||||
- @backstage/plugin-notifications@0.5.12
|
||||
- @backstage/plugin-org@0.6.47
|
||||
- @backstage/plugin-permission-react@0.4.39
|
||||
- @backstage/plugin-scaffolder@1.35.0
|
||||
- @backstage/plugin-scaffolder-react@1.19.4
|
||||
- @backstage/plugin-search@1.5.1
|
||||
- @backstage/plugin-search-common@1.2.21
|
||||
- @backstage/plugin-search-react@1.10.1
|
||||
- @backstage/plugin-signals@0.0.26
|
||||
- @backstage/plugin-techdocs@1.16.1
|
||||
- @backstage/plugin-techdocs-module-addons-contrib@1.1.31
|
||||
- @backstage/plugin-techdocs-react@1.3.6
|
||||
- @backstage/plugin-user-settings@0.8.30
|
||||
|
||||
## 0.0.30
|
||||
|
||||
### Patch Changes
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "example-app-next",
|
||||
"version": "0.0.30",
|
||||
"version": "0.0.31-next.2",
|
||||
"backstage": {
|
||||
"role": "frontend"
|
||||
},
|
||||
@@ -97,7 +97,7 @@
|
||||
"@types/react": "*",
|
||||
"@types/react-dom": "*",
|
||||
"@types/zen-observable": "^0.8.0",
|
||||
"cross-env": "^7.0.0"
|
||||
"cross-env": "^10.0.0"
|
||||
},
|
||||
"bundled": true
|
||||
}
|
||||
|
||||
@@ -1,5 +1,106 @@
|
||||
# example-app
|
||||
|
||||
## 0.2.117-next.2
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Updated dependencies
|
||||
- @backstage/core-components@0.18.5-next.0
|
||||
- @backstage/plugin-catalog-graph@0.5.5-next.1
|
||||
- @backstage/plugin-search@1.5.2-next.1
|
||||
- @backstage/app-defaults@1.7.4-next.0
|
||||
- @backstage/cli@0.35.2-next.1
|
||||
- @backstage/integration-react@1.2.14-next.0
|
||||
- @backstage/plugin-api-docs@0.13.3-next.1
|
||||
- @backstage/plugin-auth-react@0.1.23-next.0
|
||||
- @backstage/plugin-catalog@1.32.2-next.1
|
||||
- @backstage/plugin-catalog-import@0.13.9-next.1
|
||||
- @backstage/plugin-catalog-react@1.21.5-next.1
|
||||
- @backstage/plugin-catalog-unprocessed-entities@0.2.25-next.0
|
||||
- @backstage/plugin-devtools@0.1.35-next.1
|
||||
- @backstage/plugin-home@0.8.16-next.1
|
||||
- @backstage/plugin-kubernetes@0.12.15-next.1
|
||||
- @backstage/plugin-kubernetes-cluster@0.0.33-next.1
|
||||
- @backstage/plugin-notifications@0.5.13-next.0
|
||||
- @backstage/plugin-org@0.6.48-next.1
|
||||
- @backstage/plugin-scaffolder@1.35.1-next.1
|
||||
- @backstage/plugin-scaffolder-react@1.19.5-next.1
|
||||
- @backstage/plugin-search-react@1.10.2-next.0
|
||||
- @backstage/plugin-signals@0.0.27-next.0
|
||||
- @backstage/plugin-techdocs@1.16.2-next.1
|
||||
- @backstage/plugin-techdocs-module-addons-contrib@1.1.32-next.1
|
||||
- @backstage/plugin-techdocs-react@1.3.7-next.0
|
||||
- @backstage/plugin-user-settings@0.8.31-next.1
|
||||
|
||||
## 0.2.117-next.1
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Updated dependencies
|
||||
- @backstage/cli@0.35.2-next.1
|
||||
- @backstage/integration-react@1.2.14-next.0
|
||||
- @backstage/plugin-catalog-import@0.13.9-next.0
|
||||
- @backstage/plugin-scaffolder@1.35.1-next.0
|
||||
- @backstage/plugin-techdocs@1.16.2-next.0
|
||||
- @backstage/plugin-techdocs-module-addons-contrib@1.1.32-next.0
|
||||
- @backstage/plugin-catalog@1.32.2-next.0
|
||||
- @backstage/plugin-catalog-react@1.21.5-next.0
|
||||
- @backstage/plugin-scaffolder-react@1.19.5-next.0
|
||||
- @backstage/frontend-app-api@0.13.4-next.0
|
||||
- @backstage/plugin-api-docs@0.13.3-next.0
|
||||
- @backstage/plugin-catalog-graph@0.5.5-next.0
|
||||
- @backstage/plugin-org@0.6.48-next.0
|
||||
- @backstage/plugin-user-settings@0.8.31-next.0
|
||||
- @backstage/plugin-home@0.8.16-next.0
|
||||
- @backstage/plugin-kubernetes@0.12.15-next.0
|
||||
- @backstage/plugin-kubernetes-cluster@0.0.33-next.0
|
||||
- @backstage/plugin-search@1.5.2-next.0
|
||||
- @backstage/plugin-search-react@1.10.1
|
||||
- @backstage/plugin-devtools@0.1.35-next.0
|
||||
|
||||
## 0.2.117-next.0
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Updated dependencies
|
||||
- @backstage/ui@0.11.0-next.0
|
||||
- @backstage/cli@0.35.2-next.0
|
||||
- @backstage/plugin-mui-to-bui@0.2.3-next.0
|
||||
- @backstage/app-defaults@1.7.3
|
||||
- @backstage/catalog-model@1.7.6
|
||||
- @backstage/config@1.3.6
|
||||
- @backstage/core-app-api@1.19.3
|
||||
- @backstage/core-components@0.18.4
|
||||
- @backstage/core-plugin-api@1.12.1
|
||||
- @backstage/frontend-app-api@0.13.3
|
||||
- @backstage/integration-react@1.2.13
|
||||
- @backstage/theme@0.7.1
|
||||
- @backstage/plugin-api-docs@0.13.2
|
||||
- @backstage/plugin-auth-react@0.1.22
|
||||
- @backstage/plugin-catalog@1.32.1
|
||||
- @backstage/plugin-catalog-common@1.1.7
|
||||
- @backstage/plugin-catalog-graph@0.5.4
|
||||
- @backstage/plugin-catalog-import@0.13.8
|
||||
- @backstage/plugin-catalog-react@1.21.4
|
||||
- @backstage/plugin-catalog-unprocessed-entities@0.2.24
|
||||
- @backstage/plugin-devtools@0.1.34
|
||||
- @backstage/plugin-home@0.8.15
|
||||
- @backstage/plugin-kubernetes@0.12.14
|
||||
- @backstage/plugin-kubernetes-cluster@0.0.32
|
||||
- @backstage/plugin-notifications@0.5.12
|
||||
- @backstage/plugin-org@0.6.47
|
||||
- @backstage/plugin-permission-react@0.4.39
|
||||
- @backstage/plugin-scaffolder@1.35.0
|
||||
- @backstage/plugin-scaffolder-react@1.19.4
|
||||
- @backstage/plugin-search@1.5.1
|
||||
- @backstage/plugin-search-common@1.2.21
|
||||
- @backstage/plugin-search-react@1.10.1
|
||||
- @backstage/plugin-signals@0.0.26
|
||||
- @backstage/plugin-techdocs@1.16.1
|
||||
- @backstage/plugin-techdocs-module-addons-contrib@1.1.31
|
||||
- @backstage/plugin-techdocs-react@1.3.6
|
||||
- @backstage/plugin-user-settings@0.8.30
|
||||
|
||||
## 0.2.116
|
||||
|
||||
### Patch Changes
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "example-app",
|
||||
"version": "0.2.116",
|
||||
"version": "0.2.117-next.2",
|
||||
"backstage": {
|
||||
"role": "frontend"
|
||||
},
|
||||
@@ -96,7 +96,7 @@
|
||||
"@types/react-dom": "*",
|
||||
"@types/zen-observable": "^0.8.0",
|
||||
"axios": "^1.13.0",
|
||||
"cross-env": "^7.0.0",
|
||||
"cross-env": "^10.0.0",
|
||||
"msw": "^1.0.0"
|
||||
},
|
||||
"bundled": true
|
||||
|
||||
@@ -1,5 +1,33 @@
|
||||
# @backstage/backend-defaults
|
||||
|
||||
## 0.14.1-next.1
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- 3afeab4: Implementing `readTree` for `GoogleGcsReader`
|
||||
- Updated dependencies
|
||||
- @backstage/integration@1.19.2-next.0
|
||||
|
||||
## 0.14.1-next.0
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- 7126bf2: Fixed a spelling mistake in root health service shutdown response.
|
||||
- Updated dependencies
|
||||
- @backstage/backend-app-api@1.4.0
|
||||
- @backstage/backend-dev-utils@0.1.6
|
||||
- @backstage/backend-plugin-api@1.6.0
|
||||
- @backstage/cli-node@0.2.16
|
||||
- @backstage/config@1.3.6
|
||||
- @backstage/config-loader@1.10.7
|
||||
- @backstage/errors@1.2.7
|
||||
- @backstage/integration@1.19.0
|
||||
- @backstage/integration-aws-node@0.1.19
|
||||
- @backstage/types@1.2.2
|
||||
- @backstage/plugin-auth-node@0.6.10
|
||||
- @backstage/plugin-events-node@0.4.18
|
||||
- @backstage/plugin-permission-node@0.10.7
|
||||
|
||||
## 0.14.0
|
||||
|
||||
### Minor Changes
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@backstage/backend-defaults",
|
||||
"version": "0.14.0",
|
||||
"version": "0.14.1-next.1",
|
||||
"description": "Backend defaults used by Backstage backend apps",
|
||||
"backstage": {
|
||||
"role": "node-library"
|
||||
|
||||
@@ -23,12 +23,18 @@ import { UrlReaderPredicateTuple } from './types';
|
||||
import packageinfo from '../../../../package.json';
|
||||
import { mockServices } from '@backstage/backend-test-utils';
|
||||
import { UrlReaderServiceReadUrlResponse } from '@backstage/backend-plugin-api';
|
||||
import { Readable } from 'stream';
|
||||
|
||||
const bucketGetFilesMock = jest.fn();
|
||||
class Bucket {
|
||||
getFiles(query: any) {
|
||||
return bucketGetFilesMock(query);
|
||||
}
|
||||
file(_name: string) {
|
||||
return {
|
||||
createReadStream: () => Readable.from(Buffer.from('mock content')),
|
||||
};
|
||||
}
|
||||
}
|
||||
class Storage {
|
||||
bucket() {
|
||||
@@ -186,4 +192,56 @@ describe('GcsUrlReader', () => {
|
||||
expect((await data.files[0].content()).toString()).toEqual('content');
|
||||
});
|
||||
});
|
||||
|
||||
describe('readTree', () => {
|
||||
const { reader } = createReader({ integrations: { googleGcs: {} } })[0];
|
||||
|
||||
beforeEach(() => {
|
||||
jest.clearAllMocks();
|
||||
});
|
||||
|
||||
it('returns files with relative paths', async () => {
|
||||
const mockFile1 = {
|
||||
name: 'prefix/file1.yaml',
|
||||
metadata: { updated: '2024-01-01T00:00:00Z' },
|
||||
createReadStream: () => Readable.from(Buffer.from('content1')),
|
||||
};
|
||||
const mockFile2 = {
|
||||
name: 'prefix/subdir/file2.yaml',
|
||||
metadata: { updated: '2024-01-02T00:00:00Z' },
|
||||
createReadStream: () => Readable.from(Buffer.from('content2')),
|
||||
};
|
||||
bucketGetFilesMock.mockResolvedValue([[mockFile1, mockFile2]]);
|
||||
|
||||
const result = await reader.readTree(
|
||||
'https://storage.cloud.google.com/bucket/prefix/',
|
||||
);
|
||||
const files = await result.files();
|
||||
|
||||
expect(files).toHaveLength(2);
|
||||
expect(files[0].path).toBe('file1.yaml');
|
||||
expect(files[1].path).toBe('subdir/file2.yaml');
|
||||
});
|
||||
|
||||
it('calls getFiles with correct prefix', async () => {
|
||||
bucketGetFilesMock.mockResolvedValue([[]]);
|
||||
|
||||
await reader.readTree(
|
||||
'https://storage.cloud.google.com/bucket/some/prefix/',
|
||||
);
|
||||
|
||||
expect(bucketGetFilesMock).toHaveBeenCalledWith({
|
||||
autoPaginate: true,
|
||||
prefix: 'some/prefix/',
|
||||
});
|
||||
});
|
||||
|
||||
it('throws if readTree url contains glob pattern', async () => {
|
||||
await expect(
|
||||
reader.readTree('https://storage.cloud.google.com/bucket/path/*'),
|
||||
).rejects.toThrow(
|
||||
'GcsUrlReader readTree does not support glob patterns, use search instead',
|
||||
);
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
@@ -17,22 +17,25 @@
|
||||
import * as GoogleCloud from '@google-cloud/storage';
|
||||
import {
|
||||
UrlReaderService,
|
||||
UrlReaderServiceReadTreeOptions,
|
||||
UrlReaderServiceReadTreeResponse,
|
||||
UrlReaderServiceReadUrlOptions,
|
||||
UrlReaderServiceReadUrlResponse,
|
||||
UrlReaderServiceSearchOptions,
|
||||
UrlReaderServiceSearchResponse,
|
||||
} from '@backstage/backend-plugin-api';
|
||||
import { ReaderFactory } from './types';
|
||||
import { ReaderFactory, ReadTreeResponseFactory } from './types';
|
||||
import getRawBody from 'raw-body';
|
||||
import {
|
||||
GoogleGcsIntegrationConfig,
|
||||
readGoogleGcsIntegrationConfig,
|
||||
} from '@backstage/integration';
|
||||
|
||||
import { Readable } from 'stream';
|
||||
import { ReadUrlResponseFactory } from './ReadUrlResponseFactory';
|
||||
import packageinfo from '../../../../package.json';
|
||||
import { assertError } from '@backstage/errors';
|
||||
import { relative } from 'path/posix';
|
||||
|
||||
const GOOGLE_GCS_HOST = 'storage.cloud.google.com';
|
||||
|
||||
@@ -59,7 +62,7 @@ const parseURL = (
|
||||
* @public
|
||||
*/
|
||||
export class GoogleGcsUrlReader implements UrlReaderService {
|
||||
static factory: ReaderFactory = ({ config, logger }) => {
|
||||
static factory: ReaderFactory = ({ config, logger, treeResponseFactory }) => {
|
||||
if (!config.has('integrations.googleGcs')) {
|
||||
return [];
|
||||
}
|
||||
@@ -83,20 +86,29 @@ export class GoogleGcsUrlReader implements UrlReaderService {
|
||||
userAgent: `backstage/backend-defaults.GoogleGcsUrlReader/${packageinfo.version}`,
|
||||
});
|
||||
}
|
||||
const reader = new GoogleGcsUrlReader(gcsConfig, storage);
|
||||
const reader = new GoogleGcsUrlReader(gcsConfig, storage, {
|
||||
treeResponseFactory,
|
||||
});
|
||||
const predicate = (url: URL) => url.host === GOOGLE_GCS_HOST;
|
||||
return [{ reader, predicate }];
|
||||
};
|
||||
|
||||
private readonly integration: GoogleGcsIntegrationConfig;
|
||||
private readonly storage: GoogleCloud.Storage;
|
||||
private readonly deps: {
|
||||
treeResponseFactory: ReadTreeResponseFactory;
|
||||
};
|
||||
|
||||
constructor(
|
||||
integration: GoogleGcsIntegrationConfig,
|
||||
storage: GoogleCloud.Storage,
|
||||
deps: {
|
||||
treeResponseFactory: ReadTreeResponseFactory;
|
||||
},
|
||||
) {
|
||||
this.integration = integration;
|
||||
this.storage = storage;
|
||||
this.deps = deps;
|
||||
}
|
||||
|
||||
private readStreamFromUrl(url: string): Readable {
|
||||
@@ -121,8 +133,32 @@ export class GoogleGcsUrlReader implements UrlReaderService {
|
||||
return ReadUrlResponseFactory.fromReadable(stream);
|
||||
}
|
||||
|
||||
async readTree(): Promise<UrlReaderServiceReadTreeResponse> {
|
||||
throw new Error('GcsUrlReader does not implement readTree');
|
||||
async readTree(
|
||||
url: string,
|
||||
_options?: UrlReaderServiceReadTreeOptions,
|
||||
): Promise<UrlReaderServiceReadTreeResponse> {
|
||||
const { bucket, key } = parseURL(url);
|
||||
|
||||
if (key.match(/[*?]/)) {
|
||||
throw new Error(
|
||||
'GcsUrlReader readTree does not support glob patterns, use search instead',
|
||||
);
|
||||
}
|
||||
|
||||
const [files] = await this.storage.bucket(bucket).getFiles({
|
||||
autoPaginate: true,
|
||||
prefix: key,
|
||||
});
|
||||
|
||||
const responses = files.map(file => ({
|
||||
data: file.createReadStream(),
|
||||
path: relative(key, file.name),
|
||||
lastModifiedAt: file.metadata.updated
|
||||
? new Date(file.metadata.updated as string)
|
||||
: undefined,
|
||||
}));
|
||||
|
||||
return this.deps.treeResponseFactory.fromReadableArray(responses);
|
||||
}
|
||||
|
||||
async search(
|
||||
|
||||
@@ -1,5 +1,39 @@
|
||||
# @backstage/backend-dynamic-feature-service
|
||||
|
||||
## 0.7.8-next.1
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Updated dependencies
|
||||
- @backstage/backend-defaults@0.14.1-next.1
|
||||
- @backstage/plugin-catalog-backend@3.3.1-next.1
|
||||
- @backstage/plugin-scaffolder-node@0.12.3-next.0
|
||||
|
||||
## 0.7.8-next.0
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Updated dependencies
|
||||
- @backstage/backend-openapi-utils@0.6.5-next.0
|
||||
- @backstage/backend-defaults@0.14.1-next.0
|
||||
- @backstage/backend-plugin-api@1.6.0
|
||||
- @backstage/cli-common@0.1.16
|
||||
- @backstage/cli-node@0.2.16
|
||||
- @backstage/config@1.3.6
|
||||
- @backstage/config-loader@1.10.7
|
||||
- @backstage/errors@1.2.7
|
||||
- @backstage/types@1.2.2
|
||||
- @backstage/plugin-app-node@0.1.40
|
||||
- @backstage/plugin-auth-node@0.6.10
|
||||
- @backstage/plugin-catalog-backend@3.3.1-next.0
|
||||
- @backstage/plugin-events-backend@0.5.10-next.0
|
||||
- @backstage/plugin-events-node@0.4.18
|
||||
- @backstage/plugin-permission-common@0.9.3
|
||||
- @backstage/plugin-permission-node@0.10.7
|
||||
- @backstage/plugin-scaffolder-node@0.12.2
|
||||
- @backstage/plugin-search-backend-node@1.4.0
|
||||
- @backstage/plugin-search-common@1.2.21
|
||||
|
||||
## 0.7.7
|
||||
|
||||
### Patch Changes
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@backstage/backend-dynamic-feature-service",
|
||||
"version": "0.7.7",
|
||||
"version": "0.7.8-next.1",
|
||||
"description": "Backstage dynamic feature service",
|
||||
"backstage": {
|
||||
"role": "node-library"
|
||||
|
||||
@@ -1,5 +1,15 @@
|
||||
# @backstage/backend-openapi-utils
|
||||
|
||||
## 0.6.5-next.0
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- 6678b78: Internal update to use native feature from our request validation library for handling base path determination.
|
||||
- Updated dependencies
|
||||
- @backstage/backend-plugin-api@1.6.0
|
||||
- @backstage/errors@1.2.7
|
||||
- @backstage/types@1.2.2
|
||||
|
||||
## 0.6.4
|
||||
|
||||
### Patch Changes
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@backstage/backend-openapi-utils",
|
||||
"version": "0.6.4",
|
||||
"version": "0.6.5-next.0",
|
||||
"description": "OpenAPI typescript support.",
|
||||
"backstage": {
|
||||
"role": "node-library"
|
||||
|
||||
@@ -1,5 +1,20 @@
|
||||
# @backstage/backend-test-utils
|
||||
|
||||
## 1.10.3-next.0
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Updated dependencies
|
||||
- @backstage/backend-defaults@0.14.1-next.0
|
||||
- @backstage/backend-app-api@1.4.0
|
||||
- @backstage/backend-plugin-api@1.6.0
|
||||
- @backstage/config@1.3.6
|
||||
- @backstage/errors@1.2.7
|
||||
- @backstage/types@1.2.2
|
||||
- @backstage/plugin-auth-node@0.6.10
|
||||
- @backstage/plugin-events-node@0.4.18
|
||||
- @backstage/plugin-permission-common@0.9.3
|
||||
|
||||
## 1.10.2
|
||||
|
||||
### Patch Changes
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@backstage/backend-test-utils",
|
||||
"version": "1.10.2",
|
||||
"version": "1.10.3-next.0",
|
||||
"description": "Test helpers library for Backstage backends",
|
||||
"backstage": {
|
||||
"role": "node-library"
|
||||
|
||||
@@ -1,5 +1,62 @@
|
||||
# example-backend
|
||||
|
||||
## 0.0.46-next.1
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Updated dependencies
|
||||
- @backstage/backend-defaults@0.14.1-next.1
|
||||
- @backstage/plugin-techdocs-backend@2.1.4-next.1
|
||||
- @backstage/plugin-catalog-backend@3.3.1-next.1
|
||||
- @backstage/plugin-catalog-backend-module-openapi@0.2.18-next.0
|
||||
- @backstage/plugin-scaffolder-backend@3.1.1-next.1
|
||||
- @backstage/plugin-scaffolder-backend-module-github@0.9.4-next.0
|
||||
- @backstage/plugin-catalog-backend-module-scaffolder-entity-model@0.2.16-next.0
|
||||
- @backstage/plugin-scaffolder-backend-module-notifications@0.1.18-next.0
|
||||
- @backstage/plugin-search-backend-module-techdocs@0.4.10-next.0
|
||||
|
||||
## 0.0.46-next.0
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Updated dependencies
|
||||
- @backstage/backend-defaults@0.14.1-next.0
|
||||
- @backstage/backend-plugin-api@1.6.0
|
||||
- @backstage/catalog-model@1.7.6
|
||||
- @backstage/plugin-app-backend@0.5.9
|
||||
- @backstage/plugin-auth-backend@0.25.7
|
||||
- @backstage/plugin-auth-backend-module-github-provider@0.4.0
|
||||
- @backstage/plugin-auth-backend-module-guest-provider@0.2.15
|
||||
- @backstage/plugin-auth-backend-module-openshift-provider@0.1.3
|
||||
- @backstage/plugin-auth-node@0.6.10
|
||||
- @backstage/plugin-catalog-backend@3.3.1-next.0
|
||||
- @backstage/plugin-catalog-backend-module-backstage-openapi@0.5.10-next.0
|
||||
- @backstage/plugin-catalog-backend-module-openapi@0.2.17
|
||||
- @backstage/plugin-catalog-backend-module-scaffolder-entity-model@0.2.15
|
||||
- @backstage/plugin-catalog-backend-module-unprocessed@0.6.7
|
||||
- @backstage/plugin-devtools-backend@0.5.13-next.0
|
||||
- @backstage/plugin-events-backend@0.5.10-next.0
|
||||
- @backstage/plugin-events-backend-module-google-pubsub@0.1.7
|
||||
- @backstage/plugin-kubernetes-backend@0.21.0
|
||||
- @backstage/plugin-mcp-actions-backend@0.1.7-next.0
|
||||
- @backstage/plugin-notifications-backend@0.6.1
|
||||
- @backstage/plugin-permission-backend@0.7.7
|
||||
- @backstage/plugin-permission-backend-module-allow-all-policy@0.2.15
|
||||
- @backstage/plugin-permission-common@0.9.3
|
||||
- @backstage/plugin-permission-node@0.10.7
|
||||
- @backstage/plugin-proxy-backend@0.6.9
|
||||
- @backstage/plugin-scaffolder-backend@3.1.1-next.0
|
||||
- @backstage/plugin-scaffolder-backend-module-github@0.9.3
|
||||
- @backstage/plugin-scaffolder-backend-module-notifications@0.1.17
|
||||
- @backstage/plugin-search-backend@2.0.10-next.0
|
||||
- @backstage/plugin-search-backend-module-catalog@0.3.11
|
||||
- @backstage/plugin-search-backend-module-elasticsearch@1.7.9
|
||||
- @backstage/plugin-search-backend-module-explore@0.3.10
|
||||
- @backstage/plugin-search-backend-module-techdocs@0.4.9
|
||||
- @backstage/plugin-search-backend-node@1.4.0
|
||||
- @backstage/plugin-signals-backend@0.3.11
|
||||
- @backstage/plugin-techdocs-backend@2.1.4-next.0
|
||||
|
||||
## 0.0.45
|
||||
|
||||
### Patch Changes
|
||||
|
||||
@@ -9,7 +9,7 @@
|
||||
#
|
||||
# Once the commands have been run, you can build the image using `yarn build-image`
|
||||
|
||||
FROM node:20-bookworm-slim
|
||||
FROM node:24-trixie-slim
|
||||
|
||||
# Install sqlite3 dependencies. You can skip this if you don't use sqlite3 in the image,
|
||||
# in which case you should also move better-sqlite3 to "devDependencies" in package.json.
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "example-backend",
|
||||
"version": "0.0.45",
|
||||
"version": "0.0.46-next.1",
|
||||
"backstage": {
|
||||
"role": "backend"
|
||||
},
|
||||
|
||||
@@ -1,5 +1,30 @@
|
||||
# @backstage/cli
|
||||
|
||||
## 0.35.2-next.1
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Updated dependencies
|
||||
- @backstage/integration@1.19.2-next.0
|
||||
|
||||
## 0.35.2-next.0
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- 320c6a9: Bump `@swc/core` to support `ES2023` and `ES2024`
|
||||
- 9ee5996: Bump minimum required `@swc/core` to avoid transpilation bug
|
||||
- Updated dependencies
|
||||
- @backstage/catalog-model@1.7.6
|
||||
- @backstage/cli-common@0.1.16
|
||||
- @backstage/cli-node@0.2.16
|
||||
- @backstage/config@1.3.6
|
||||
- @backstage/config-loader@1.10.7
|
||||
- @backstage/errors@1.2.7
|
||||
- @backstage/eslint-plugin@0.2.0
|
||||
- @backstage/integration@1.19.0
|
||||
- @backstage/release-manifests@0.0.13
|
||||
- @backstage/types@1.2.2
|
||||
|
||||
## 0.35.0
|
||||
|
||||
### Minor Changes
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@backstage/cli",
|
||||
"version": "0.35.0",
|
||||
"version": "0.35.2-next.1",
|
||||
"description": "CLI for developing Backstage plugins and apps",
|
||||
"backstage": {
|
||||
"role": "cli"
|
||||
|
||||
@@ -1,5 +1,13 @@
|
||||
# @backstage/core-compat-api
|
||||
|
||||
## 0.5.6-next.0
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Updated dependencies
|
||||
- @backstage/plugin-catalog-react@1.21.5-next.0
|
||||
- @backstage/frontend-plugin-api@0.13.2
|
||||
|
||||
## 0.5.5
|
||||
|
||||
### Patch Changes
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@backstage/core-compat-api",
|
||||
"version": "0.5.5",
|
||||
"version": "0.5.6-next.0",
|
||||
"backstage": {
|
||||
"role": "web-library"
|
||||
},
|
||||
|
||||
@@ -1,5 +1,11 @@
|
||||
# @backstage/core-components
|
||||
|
||||
## 0.18.5-next.0
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- a723b8a: The MarkdownContent component now handles HTML content the same way as GitHub when rendering GitHub-flavored Markdown
|
||||
|
||||
## 0.18.4
|
||||
|
||||
### Patch Changes
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@backstage/core-components",
|
||||
"version": "0.18.4",
|
||||
"version": "0.18.5-next.0",
|
||||
"description": "Core components used by Backstage plugins and apps",
|
||||
"backstage": {
|
||||
"role": "web-library"
|
||||
@@ -77,6 +77,7 @@
|
||||
"linkify-react": "4.3.2",
|
||||
"linkifyjs": "4.3.2",
|
||||
"lodash": "^4.17.21",
|
||||
"parse5": "^6.0.0",
|
||||
"pluralize": "^8.0.0",
|
||||
"qs": "^6.9.4",
|
||||
"rc-progress": "3.5.1",
|
||||
@@ -90,6 +91,8 @@
|
||||
"react-use": "^17.3.2",
|
||||
"react-virtualized-auto-sizer": "^1.0.11",
|
||||
"react-window": "^1.8.6",
|
||||
"rehype-raw": "^6.0.0",
|
||||
"rehype-sanitize": "^5.0.0",
|
||||
"remark-gfm": "^3.0.1",
|
||||
"zen-observable": "^0.10.0",
|
||||
"zod": "^3.22.4"
|
||||
|
||||
@@ -45,6 +45,29 @@ const markdownGithubFlavored =
|
||||
'* [ ] to do\n' +
|
||||
'* [x] done';
|
||||
|
||||
const markdownGithubFlavoredWithHTML =
|
||||
'# GFM with HTML\n' +
|
||||
'\n' +
|
||||
'This is a paragraph with <strong>bold text</strong> and <em>italic text</em>.\n' +
|
||||
'\n' +
|
||||
'<br />\n' +
|
||||
'\n' +
|
||||
'Here is a list:\n' +
|
||||
'\n' +
|
||||
'<ul>\n' +
|
||||
' <li>First item</li>\n' +
|
||||
' <li>Second item with <a href="https://example.com">a link</a></li>\n' +
|
||||
' <li>Third item</li>\n' +
|
||||
'</ul>\n' +
|
||||
'\n' +
|
||||
'And a code block:\n' +
|
||||
'\n' +
|
||||
'<pre><code class="language-js">\n' +
|
||||
'function greet() {\n' +
|
||||
' console.log("Hello, world!");\n' +
|
||||
'}\n' +
|
||||
'</code></pre>\n';
|
||||
|
||||
const markdown =
|
||||
'# Choreas Iovis\n' +
|
||||
'\n' +
|
||||
@@ -117,3 +140,7 @@ export const MarkdownContentCommonMark = () => (
|
||||
export const MarkdownContentGithubFlavoredCommonMark = () => (
|
||||
<MarkdownContent content={markdownGithubFlavored} dialect="gfm" />
|
||||
);
|
||||
|
||||
export const MarkdownContentGithubFlavoredWithHTML = () => (
|
||||
<MarkdownContent content={markdownGithubFlavoredWithHTML} dialect="gfm" />
|
||||
);
|
||||
|
||||
@@ -163,4 +163,52 @@ describe('<MarkdownContent />', () => {
|
||||
'the-fitnessgram-pacer-test-is-a-multistage-aerobic-capacity-test',
|
||||
);
|
||||
});
|
||||
|
||||
it('render MarkdownContent component with br tags for new lines in GFM dialect', async () => {
|
||||
await renderInTestApp(
|
||||
<MarkdownContent
|
||||
content="<p>Line 1</p><br /><p>Line 2</p><br><p>Line 3</p><br />"
|
||||
dialect="gfm"
|
||||
/>,
|
||||
);
|
||||
|
||||
const line1 = screen.getByText(/Line 1/);
|
||||
const line2 = screen.getByText(/Line 2/);
|
||||
const line3 = screen.getByText(/Line 3/);
|
||||
|
||||
expect(line1.nextSibling?.nodeName).toBe('BR');
|
||||
expect(line2.previousSibling?.nodeName).toBe('BR');
|
||||
expect(line2.nextSibling?.nodeName).toBe('BR');
|
||||
expect(line3.previousSibling?.nodeName).toBe('BR');
|
||||
});
|
||||
|
||||
it('render MarkdownContent component without allowing inline styles in GFM dialect', async () => {
|
||||
await renderInTestApp(
|
||||
<MarkdownContent
|
||||
content='<div style="color: blue; border: 1px solid black; padding: 10px;">This is a custom HTML block with inline styles.</div>'
|
||||
dialect="gfm"
|
||||
/>,
|
||||
);
|
||||
|
||||
const divElement = screen.getByText(
|
||||
'This is a custom HTML block with inline styles.',
|
||||
);
|
||||
expect(divElement).toBeInTheDocument();
|
||||
expect(divElement).not.toHaveStyle('color: blue');
|
||||
expect(divElement).not.toHaveStyle('border: 1px solid black');
|
||||
expect(divElement).not.toHaveStyle('padding: 10px');
|
||||
});
|
||||
|
||||
it('render MarkdownContent component without disallowed elements in GFM dialect', async () => {
|
||||
const { container } = await renderInTestApp(
|
||||
<MarkdownContent
|
||||
content='<script>alert("XSS Attack!");</script><style>body { background-color: red; }</style><p>Safe Content</p>'
|
||||
dialect="gfm"
|
||||
/>,
|
||||
);
|
||||
|
||||
expect(screen.getByText('Safe Content')).toBeInTheDocument();
|
||||
expect(container.querySelector('script')).toBeNull();
|
||||
expect(container.querySelector('style')).toBeNull();
|
||||
});
|
||||
});
|
||||
|
||||
@@ -20,6 +20,9 @@ import gfm from 'remark-gfm';
|
||||
import { Children, createElement } from 'react';
|
||||
import { CodeSnippet } from '../CodeSnippet';
|
||||
import { HeadingProps } from 'react-markdown/lib/ast-to-react';
|
||||
import rehypeRaw from 'rehype-raw';
|
||||
import rehypeSanitize, { defaultSchema } from 'rehype-sanitize';
|
||||
import type { PluggableList } from 'react-markdown/lib/react-markdown';
|
||||
|
||||
export type MarkdownContentClassKey = 'markdown';
|
||||
|
||||
@@ -108,6 +111,30 @@ const components: Options['components'] = {
|
||||
h6: headingRenderer,
|
||||
};
|
||||
|
||||
const gfmRehypePlugins: PluggableList = [
|
||||
[
|
||||
rehypeRaw,
|
||||
{
|
||||
tagFiter: true,
|
||||
},
|
||||
],
|
||||
[
|
||||
rehypeSanitize,
|
||||
{
|
||||
...defaultSchema,
|
||||
attributes: {
|
||||
...defaultSchema.attributes,
|
||||
code: [
|
||||
...(defaultSchema.attributes?.code ?? []),
|
||||
// for syntax highlighting classes in code blocks
|
||||
// breaks the codesnippet component override above if omitted
|
||||
['className'],
|
||||
],
|
||||
},
|
||||
},
|
||||
],
|
||||
];
|
||||
|
||||
/**
|
||||
* Renders markdown with the default dialect {@link https://github.github.com/gfm/ | gfm - GitHub flavored Markdown} to backstage theme styled HTML.
|
||||
*
|
||||
@@ -127,6 +154,7 @@ export function MarkdownContent(props: Props) {
|
||||
return (
|
||||
<ReactMarkdown
|
||||
remarkPlugins={dialect === 'gfm' ? [gfm] : []}
|
||||
rehypePlugins={dialect === 'gfm' ? gfmRehypePlugins : []}
|
||||
className={`${classes.markdown} ${className ?? ''}`.trim()}
|
||||
children={content}
|
||||
components={components}
|
||||
|
||||
@@ -1,5 +1,25 @@
|
||||
# @backstage/create-app
|
||||
|
||||
## 0.7.8-next.2
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- f1fe6fe: Updated Dockerfile to use Node 24 and Debian Trixie
|
||||
|
||||
## 0.7.8-next.1
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Bumped create-app version.
|
||||
|
||||
## 0.7.8-next.0
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Bumped create-app version.
|
||||
- Updated dependencies
|
||||
- @backstage/cli-common@0.1.16
|
||||
|
||||
## 0.7.7
|
||||
|
||||
### Patch Changes
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@backstage/create-app",
|
||||
"version": "0.7.7",
|
||||
"version": "0.7.8-next.2",
|
||||
"description": "A CLI that helps you create your own Backstage app",
|
||||
"backstage": {
|
||||
"role": "cli"
|
||||
|
||||
@@ -12,7 +12,7 @@
|
||||
# Alternatively, there is also a multi-stage Dockerfile documented here:
|
||||
# https://backstage.io/docs/deployment/docker#multi-stage-build
|
||||
|
||||
FROM node:22-bookworm-slim
|
||||
FROM node:24-trixie-slim
|
||||
|
||||
# Set Python interpreter for `node-gyp` to use
|
||||
ENV PYTHON=/usr/bin/python3
|
||||
|
||||
@@ -12,7 +12,7 @@
|
||||
# Alternatively, there is also a multi-stage Dockerfile documented here:
|
||||
# https://backstage.io/docs/deployment/docker#multi-stage-build
|
||||
|
||||
FROM node:22-bookworm-slim
|
||||
FROM node:24-trixie-slim
|
||||
|
||||
# Set Python interpreter for `node-gyp` to use
|
||||
ENV PYTHON=/usr/bin/python3
|
||||
|
||||
@@ -1,5 +1,38 @@
|
||||
# @backstage/dev-utils
|
||||
|
||||
## 1.1.19-next.2
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Updated dependencies
|
||||
- @backstage/core-components@0.18.5-next.0
|
||||
- @backstage/app-defaults@1.7.4-next.0
|
||||
- @backstage/integration-react@1.2.14-next.0
|
||||
- @backstage/plugin-catalog-react@1.21.5-next.1
|
||||
|
||||
## 1.1.19-next.1
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Updated dependencies
|
||||
- @backstage/integration-react@1.2.14-next.0
|
||||
- @backstage/plugin-catalog-react@1.21.5-next.0
|
||||
|
||||
## 1.1.19-next.0
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Updated dependencies
|
||||
- @backstage/ui@0.11.0-next.0
|
||||
- @backstage/app-defaults@1.7.3
|
||||
- @backstage/catalog-model@1.7.6
|
||||
- @backstage/core-app-api@1.19.3
|
||||
- @backstage/core-components@0.18.4
|
||||
- @backstage/core-plugin-api@1.12.1
|
||||
- @backstage/integration-react@1.2.13
|
||||
- @backstage/theme@0.7.1
|
||||
- @backstage/plugin-catalog-react@1.21.4
|
||||
|
||||
## 1.1.18
|
||||
|
||||
### Patch Changes
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@backstage/dev-utils",
|
||||
"version": "1.1.18",
|
||||
"version": "1.1.19-next.2",
|
||||
"description": "Utilities for developing Backstage plugins.",
|
||||
"backstage": {
|
||||
"role": "web-library"
|
||||
|
||||
@@ -1,5 +1,14 @@
|
||||
# e2e-test
|
||||
|
||||
## 0.2.36-next.0
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Updated dependencies
|
||||
- @backstage/create-app@0.7.8-next.0
|
||||
- @backstage/cli-common@0.1.16
|
||||
- @backstage/errors@1.2.7
|
||||
|
||||
## 0.2.35
|
||||
|
||||
### Patch Changes
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "e2e-test",
|
||||
"version": "0.2.35",
|
||||
"version": "0.2.36-next.0",
|
||||
"description": "E2E test for verifying Backstage packages",
|
||||
"backstage": {
|
||||
"role": "cli"
|
||||
|
||||
@@ -1,5 +1,13 @@
|
||||
# @backstage/frontend-app-api
|
||||
|
||||
## 0.13.4-next.0
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Updated dependencies
|
||||
- @backstage/frontend-defaults@0.3.5-next.0
|
||||
- @backstage/frontend-plugin-api@0.13.2
|
||||
|
||||
## 0.13.3
|
||||
|
||||
### Patch Changes
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@backstage/frontend-app-api",
|
||||
"version": "0.13.3",
|
||||
"version": "0.13.4-next.0",
|
||||
"backstage": {
|
||||
"role": "web-library"
|
||||
},
|
||||
|
||||
@@ -1,5 +1,22 @@
|
||||
# @backstage/frontend-defaults
|
||||
|
||||
## 0.3.5-next.1
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Updated dependencies
|
||||
- @backstage/core-components@0.18.5-next.0
|
||||
- @backstage/plugin-app@0.3.4-next.1
|
||||
|
||||
## 0.3.5-next.0
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Updated dependencies
|
||||
- @backstage/plugin-app@0.3.4-next.0
|
||||
- @backstage/frontend-app-api@0.13.4-next.0
|
||||
- @backstage/frontend-plugin-api@0.13.2
|
||||
|
||||
## 0.3.4
|
||||
|
||||
### Patch Changes
|
||||
|
||||