Merge branch 'master' into bui-new-surfaces

This commit is contained in:
Charles de Dreuille
2026-01-07 13:47:15 +00:00
294 changed files with 4614 additions and 353 deletions
+5
View File
@@ -0,0 +1,5 @@
---
'@backstage/backend-defaults': patch
---
Implementing `readTree` for `GoogleGcsReader`
+5
View File
@@ -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`.
+5
View File
@@ -0,0 +1,5 @@
---
'@backstage/create-app': patch
---
Bumped create-app version.
+5
View File
@@ -0,0 +1,5 @@
---
'@backstage/create-app': patch
---
Bumped create-app version.
+5
View File
@@ -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.
+5
View File
@@ -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
+5
View File
@@ -0,0 +1,5 @@
---
'@backstage/integration': patch
---
Implementing `ScmIntegration` for `GoogleGcs`
+5
View File
@@ -0,0 +1,5 @@
---
'@backstage/integration': patch
---
Rollback the lowercase replacing in GitHub integration config
+21 -1
View File
@@ -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"
]
}
+5
View File
@@ -0,0 +1,5 @@
---
'@backstage/create-app': patch
---
Updated Dockerfile to use Node 24 and Debian Trixie
+6
View File
@@ -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.
+7
View File
@@ -0,0 +1,7 @@
---
description: General project guidelines for Backstage development
globs:
alwaysApply: true
---
Follow the instructions at /.github/copilot-instructions.md
+16 -3
View File
@@ -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
+1 -1
View File
@@ -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/
+3 -3
View File
@@ -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
+1 -1
View File
@@ -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
+3 -3
View File
@@ -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
+1 -1
View File
@@ -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
+1 -1
View File
@@ -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
+1 -1
View File
@@ -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
+1 -1
View File
@@ -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
+1 -1
View File
@@ -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
+1 -1
View File
@@ -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
+1 -1
View File
@@ -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
+1 -1
View File
@@ -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
+1 -1
View File
@@ -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
+1 -1
View File
@@ -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
+1 -1
View File
@@ -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
+1 -1
View File
@@ -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
+3 -3
View File
@@ -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
+1 -1
View File
@@ -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
+32
View File
@@ -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!
+8 -8
View File
@@ -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
Binary file not shown.

Before

Width:  |  Height:  |  Size: 306 KiB

After

Width:  |  Height:  |  Size: 122 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 24 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 132 KiB

After

Width:  |  Height:  |  Size: 111 KiB

+4 -4
View File
@@ -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>
+3 -3
View File
@@ -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>
+95 -79
View File
@@ -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.
![create app](../assets/getting-started/create-app-output.png)
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`.
![create app](../assets/getting-started/create-app-output.png)
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/"
.
.
```
![Screenshot of the command output, with the message web pack compiled successfully](../assets/getting-started/startup.png)
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.
![Screenshot of the Backstage portal.](../assets/getting-started/portal.png)
## 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)
-18
View File
@@ -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
![](https://backstage.io/blog/assets/marketplace.png)
## Links
- [[blog] The Plugin Directory is open](https://backstage.io/blog/2020/09/30/plugin-marketplace)
+6
View File
@@ -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/)
+11
View File
@@ -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
+578
View File
@@ -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
+648
View File
@@ -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
+385
View File
@@ -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
+1 -1
View File
@@ -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
---
![Let's blast into the New Year with a quick look back at all the big hits — backend, frontend, AI, UI, and more! See how today's Backstage is ready to build the future of developer experience.](assets/2025-12-30/wrapped2025.png)
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.
![Backstage 2025 contributors](assets/2025-12-30/contributors-wrapped-2025.png)
## Mature for a five-year-old
![Backstage community stats: 3.4k+ adopters, 1,8k contributors, 15k Discord members, 7k project forks, 68k total contributions, 250+ open source plugins, 31k stars](assets/2025-12-30/wrapped2025-stats.png)
_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!
Binary file not shown.

After

Width:  |  Height:  |  Size: 25 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 364 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 445 KiB

+4
View File
@@ -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/',
},
],
}),
[
+3 -4
View File
@@ -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',
-1
View File
@@ -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'
+7 -2
View File
@@ -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",
+7
View File
@@ -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 -1
View File
@@ -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",
+113
View File
@@ -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
+2 -2
View File
@@ -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
}
+101
View File
@@ -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
+2 -2
View File
@@ -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
+28
View File
@@ -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 -1
View File
@@ -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 -1
View File
@@ -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"
+15
View File
@@ -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 -1
View File
@@ -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"
+57
View File
@@ -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
+1 -1
View File
@@ -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 -1
View File
@@ -1,6 +1,6 @@
{
"name": "example-backend",
"version": "0.0.45",
"version": "0.0.46-next.1",
"backstage": {
"role": "backend"
},
+25
View File
@@ -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 -1
View File
@@ -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"
+8
View File
@@ -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 -1
View File
@@ -1,6 +1,6 @@
{
"name": "@backstage/core-compat-api",
"version": "0.5.5",
"version": "0.5.6-next.0",
"backstage": {
"role": "web-library"
},
+6
View File
@@ -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
+4 -1
View File
@@ -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}
+20
View File
@@ -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 -1
View File
@@ -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
+33
View File
@@ -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 -1
View File
@@ -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"
+9
View File
@@ -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 -1
View File
@@ -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"
+8
View File
@@ -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 -1
View File
@@ -1,6 +1,6 @@
{
"name": "@backstage/frontend-app-api",
"version": "0.13.3",
"version": "0.13.4-next.0",
"backstage": {
"role": "web-library"
},
+17
View File
@@ -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

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