Merge branch 'backstage:master' into milliehartnt123-create-ui-doc
This commit is contained in:
@@ -14,7 +14,7 @@ system, see [migrating](./08-migrating.md).
|
||||
|
||||
This section covers how to set up and customize your own Backstage backend. It covers some aspects of how backend instances fit into the larger system, but for a more in-depth explanation of the role of backends in the backend system, see [the architecture section](../architecture/02-backends.md).
|
||||
|
||||
# Overview
|
||||
## Overview
|
||||
|
||||
A minimal Backstage backend is very lightweight. It is a single package with a `package.json` file and a `src/index.ts` file, not counting surrounding tooling and documentation. The package is typically placed within the `packages/backend` folder of a Backstage monorepo, but that is up to you. The backend package is part of any project created with `@backstage/create-app`, so you typically do not need to create it yourself.
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -7,7 +7,7 @@ description: General technical questions about Backstage.
|
||||
### What technology does Backstage use?
|
||||
|
||||
Backstage is a large scale [TypeScript](https://www.typescriptlang.org/)
|
||||
application whose frontend parts use [React](https://react.dev/) and
|
||||
framework whose frontend parts use [React](https://react.dev/) and
|
||||
[Material UI](https://material-ui.com/), while the backend parts use
|
||||
[Node.js](https://nodejs.org/) and the [Express](https://expressjs.com/)
|
||||
framework.
|
||||
|
||||
@@ -181,28 +181,30 @@ this remote source, users cannot also register new entities with e.g. the
|
||||
[catalog-import](https://github.com/backstage/backstage/tree/master/plugins/catalog-import)
|
||||
plugin.
|
||||
|
||||
## Clean up orphaned entities
|
||||
## Automatic removal of orphaned entities
|
||||
|
||||
In short, entities can become orphaned through multiple means, such as when a catalog-info YAML file is moved from one place to another in the version control system without updating the registration in the catalog. For safety reasons, the default behavior is to just tag the orphaned entities, and keep them around. You can read more about orphaned entities [here](life-of-an-entity.md#orphaning).
|
||||
Entities can become orphaned through multiple means, such as when a catalog-info YAML file is moved from one place to another in the version control system without updating the registration in the catalog. The default behavior is to automatically remove orphaned entities. You can read more about orphaned entities [here](life-of-an-entity.md#orphaning).
|
||||
|
||||
However, if you do wish to automatically remove the orphaned entities, you can use the following configuration, and everything with an orphaned entity tag will be eventually deleted.
|
||||
However, if you wish to keep orphaned entities, you can use the following configuration, and automatic cleanup will be disabled.
|
||||
|
||||
```yaml
|
||||
catalog:
|
||||
orphanStrategy: delete
|
||||
orphanStrategy: keep
|
||||
```
|
||||
|
||||
## Clean up entities from orphaned entity providers
|
||||
## Automatic removal of entities from orphaned entity providers
|
||||
|
||||
By default, if an entity provider which has provided entities to the catalog, is no longer configured, then the entities remain in the catalog until they are manually unregistered.
|
||||
By default, if an entity provider which has provided entities to the catalog is no longer configured, then the entities it provided will be automatically removed.
|
||||
|
||||
To remove these entities automatically, you can use the following configuration.
|
||||
To keep these entities instead, you can use the following configuration.
|
||||
|
||||
```yaml
|
||||
catalog:
|
||||
orphanProviderStrategy: delete
|
||||
orphanProviderStrategy: keep
|
||||
```
|
||||
|
||||
If you have had providers installed in the past that ingested entities into the catalog that you want to keep, the recommendation is to add the provider back to the catalog. If you don’t want the provider to run, you can schedule it with a very large interval.
|
||||
|
||||
## Processing Interval
|
||||
|
||||
The [processing loop](./life-of-an-entity.md#processing) is
|
||||
|
||||
@@ -254,8 +254,8 @@ either, it becomes _orphaned_. The end result is as follows:
|
||||
the child entity.
|
||||
- The child entity is _not_ removed from the catalog, but stays around until
|
||||
explicitly deleted via the catalog API, implicitly if `orphanStrategy: delete`
|
||||
configuration is set, or until it is "reclaimed" by the original parent
|
||||
or another parent starting to reference it.
|
||||
configuration is set (the default), or until it is "reclaimed" by the original
|
||||
parent or another parent starting to reference it.
|
||||
- The catalog page in Backstage for the child entity detects the new annotation
|
||||
and informs users about the orphan status.
|
||||
|
||||
@@ -282,21 +282,13 @@ Orphaning can occur in several different scenarios.
|
||||
> to inform the owner that something is wrong. But processing and other
|
||||
> behaviors continue as usual.
|
||||
|
||||
The reason that the orphaning mechanism exists instead of having an eager
|
||||
deletion triggered, is safety. Scenarios like these can happen purely by
|
||||
accident, due to the asynchronous nature of the system and the fallible nature
|
||||
of humans. In particular when external systems start consuming and relying on
|
||||
the catalog, there could be substantial consequences to suddenly dropping
|
||||
entities without explicit owner consent. The catalog therefore takes the stance
|
||||
that entities that often were added by direct user action should also be deleted
|
||||
only by direct user action.
|
||||
|
||||
However, if you want to delete orphaned entities automatically anyway, you can
|
||||
enable the automated clean up with the following app-config option.
|
||||
The default behavior of the catalog is to automatically remove orphaned
|
||||
entities. However, if you want to keep them instead, you can disable the
|
||||
automated cleanup with the following app-config option.
|
||||
|
||||
```
|
||||
catalog:
|
||||
orphanStrategy: delete
|
||||
orphanStrategy: keep
|
||||
```
|
||||
|
||||
## Implicit Deletion
|
||||
|
||||
@@ -172,15 +172,17 @@ TechDocs will publish documentation to this bucket and will fetch files from
|
||||
here to serve documentation in Backstage. Note that the bucket names are
|
||||
globally unique.
|
||||
|
||||
Set the config `techdocs.publisher.awsS3.bucketName` in your `app-config.yaml`
|
||||
to the name of the bucket you just created.
|
||||
Set the bucket name and region in your `app-config.yaml` to the name of the bucket you just created:
|
||||
|
||||
```yaml
|
||||
techdocs:
|
||||
publisher:
|
||||
type: 'awsS3'
|
||||
/* highlight-add-start */
|
||||
awsS3:
|
||||
bucketName: 'name-of-techdocs-storage-bucket'
|
||||
region: 'us-east-1'
|
||||
/* highlight-add-end */
|
||||
```
|
||||
|
||||
**3. Create minimal AWS IAM policies to manage TechDocs**
|
||||
@@ -266,7 +268,7 @@ environment automatically by defining appropriate IAM role with access to the
|
||||
bucket. Read more in the
|
||||
[official AWS documentation for using IAM roles](https://docs.aws.amazon.com/general/latest/gr/aws-access-keys-best-practices.html#use-roles).
|
||||
|
||||
**4b. Authentication using app-config.yaml**
|
||||
**4b. Authentication using app-config.yaml via aws.accounts**
|
||||
|
||||
AWS credentials and region can be provided to the AWS SDK via `app-config.yaml`.
|
||||
If the configs below are present, they will be used over existing `AWS_*`
|
||||
@@ -290,7 +292,45 @@ aws:
|
||||
Refer to the
|
||||
[official AWS documentation for obtaining the credentials](https://docs.aws.amazon.com/sdk-for-javascript/v3/developer-guide/setting-credentials-node.html).
|
||||
|
||||
**4c. Authentication using an assumed role** Users with multiple AWS accounts
|
||||
**4c. Authentication using app-config.yaml via integrations.awsS3**
|
||||
|
||||
If you already have an [AWS S3 integration](../../integrations/aws-s3/locations.md), you can use it to authenticate with AWS S3:
|
||||
|
||||
```yaml
|
||||
techdocs:
|
||||
publisher:
|
||||
type: 'awsS3'
|
||||
awsS3:
|
||||
bucketName: 'name-of-techdocs-storage-bucket'
|
||||
region: 'eu-west-1'
|
||||
integrations:
|
||||
awsS3:
|
||||
- accessKeyId: ${AWS_ACCESS_KEY_ID}
|
||||
secretAccessKey: ${AWS_SECRET_ACCESS_KEY}
|
||||
```
|
||||
|
||||
This will use the credentials from the integration to authenticate with AWS S3 and it does not require any additional configuration in the `app-config.yaml`. However, **if you have multiple S3 integrations**, you **must** specify the target integration by setting the `accessKeyId` in the `techdocs.publisher.awsS3.credentials` config:
|
||||
|
||||
```yaml
|
||||
techdocs:
|
||||
publisher:
|
||||
type: 'awsS3'
|
||||
awsS3:
|
||||
bucketName: 'name-of-techdocs-storage-bucket'
|
||||
region: 'eu-west-1'
|
||||
/* highlight-add-start */
|
||||
credentials:
|
||||
accessKeyId: ${AWS_ACCESS_KEY_ID_1}
|
||||
/* highlight-add-end */
|
||||
integrations:
|
||||
awsS3:
|
||||
- accessKeyId: ${AWS_ACCESS_KEY_ID_1}
|
||||
secretAccessKey: ${AWS_SECRET_ACCESS_KEY_1}
|
||||
- accessKeyId: ${AWS_ACCESS_KEY_ID_2}
|
||||
secretAccessKey: ${AWS_SECRET_ACCESS_KEY_2}
|
||||
```
|
||||
|
||||
**4d. Authentication using an assumed role** Users with multiple AWS accounts
|
||||
may want to use a role for S3 storage that is in a different AWS account. Using
|
||||
the `roleArn` parameter as seen below, you can instruct the TechDocs publisher
|
||||
to assume a role before accessing S3.
|
||||
|
||||
@@ -444,7 +444,7 @@ const app = createApp({
|
||||
Can be converted to the following extension:
|
||||
|
||||
```tsx
|
||||
import { SignInPageBlueprint } from '@backstage/frontend-plugin-api';
|
||||
import { SignInPageBlueprint } from '@backstage/plugin-app-react';
|
||||
|
||||
const signInPage = SignInPageBlueprint.make({
|
||||
params: {
|
||||
@@ -492,7 +492,7 @@ const app = createApp({
|
||||
Can be converted to the following extension:
|
||||
|
||||
```tsx
|
||||
import { ThemeBlueprint } from '@backstage/frontend-plugin-api';
|
||||
import { ThemeBlueprint } from '@backstage/plugin-app-react';
|
||||
|
||||
const customLightThemeExtension = ThemeBlueprint.make({
|
||||
name: 'custom-light',
|
||||
@@ -535,7 +535,7 @@ const app = createApp({
|
||||
Icons are now installed as extensions, using the `IconBundleBlueprint` to make new instances which can be added to the app.
|
||||
|
||||
```ts
|
||||
import { IconBundleBlueprint } from '@backstage/frontend-plugin-api';
|
||||
import { IconBundleBlueprint } from '@backstage/plugin-app-react';
|
||||
|
||||
const exampleIconBundle = IconBundleBlueprint.make({
|
||||
name: 'example-bundle',
|
||||
@@ -586,10 +586,8 @@ Can be converted to the following extension:
|
||||
|
||||
```tsx
|
||||
import { catalogTranslationRef } from '@backstage/plugin-catalog/alpha';
|
||||
import {
|
||||
createTranslationMessages,
|
||||
TranslationBlueprint,
|
||||
} from '@backstage/frontend-plugin-api';
|
||||
import { createTranslationMessages } from '@backstage/frontend-plugin-api';
|
||||
import { TranslationBlueprint } from '@backstage/plugin-app-react';
|
||||
|
||||
const catalogTranslations = TranslationBlueprint.make({
|
||||
name: 'catalog-overrides',
|
||||
@@ -662,7 +660,7 @@ const convertedRootFeatures = convertLegacyAppRoot(
|
||||
);
|
||||
```
|
||||
|
||||
Any app root wrapper needs to be migrated to be an extension, created using `AppRootWrapperBlueprint`. Note that if you have multiple wrappers they must be completely independent of each other, i.e. the order in which they the appear in the React tree should not matter. If that is not the case then you should group them into a single wrapper.
|
||||
Any app root wrapper needs to be migrated to be an extension, created using `AppRootWrapperBlueprint` from `@backstage/plugin-app-react`. Note that if you have multiple wrappers they must be completely independent of each other, i.e. the order in which they the appear in the React tree should not matter. If that is not the case then you should group them into a single wrapper.
|
||||
|
||||
Here is an example converting the `CustomAppBarrier` into extension:
|
||||
|
||||
@@ -705,7 +703,7 @@ export const navModule = createFrontendModule({
|
||||
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';
|
||||
import { NavContentBlueprint } from '@backstage/plugin-app-react';
|
||||
|
||||
export const SidebarContent = NavContentBlueprint.make({
|
||||
params: {
|
||||
|
||||
@@ -124,7 +124,7 @@ export interface ExampleApi {
|
||||
}
|
||||
|
||||
export const exampleApiRef = createApiRef<ExampleApi>({
|
||||
id: 'plugin.example',
|
||||
id: 'plugin.example.api',
|
||||
});
|
||||
|
||||
export class DefaultExampleApi implements ExampleApi {
|
||||
|
||||
@@ -23,6 +23,14 @@ Navigation item extensions are used to provide menu items that link to different
|
||||
|
||||
Page extensions provide content for a particular route in the app. By default pages are attached to the app routes extensions, which renders the root routes.
|
||||
|
||||
## Extension blueprints in `@backstage/frontend-plugin-api/alpha`
|
||||
|
||||
### Plugin Wrapper - [Reference](https://backstage.io/api/stable/variables/_backstage_frontend-plugin-api.packages-frontend-plugin-api_src_alpha.PluginWrapperBlueprint.html)
|
||||
|
||||
Plugin wrappers allow you to install components that will wrap all elements rendered as part of a plugin. This can be useful if you need to add a global provider, for example for a query client. The provided wrapper will be rendered as separate elements for each wrapped plugin element, so be sure to use a central store like a [Utility API](../utility-apis/01-index.md) if you want to share state between wrapper instances.
|
||||
|
||||
## Extension blueprints in `@backstage/plugin-app-react`
|
||||
|
||||
### SignInPage - [Reference](https://backstage.io/api/stable/variables/_backstage_frontend-plugin-api.SignInPageBlueprint.html)
|
||||
|
||||
Sign-in page extension have a single purpose - to implement a custom sign-in page. They are always attached to the app root extension and are rendered before the rest of the app until the user is signed in.
|
||||
@@ -43,6 +51,14 @@ Icon bundle extensions provide the ability to replace or provide new icons to th
|
||||
|
||||
Translation extension provide custom translation messages for the app. They can be used both to override the default english messages to custom ones, as well as provide translations for additional languages.
|
||||
|
||||
### NavContent - [Reference](https://backstage.io/api/stable/variables/_backstage_frontend-plugin-api.NavContentBlueprint.html)
|
||||
|
||||
Nav content extensions allow you to replace the entire navbar with your own component. They are always attached to the app nav extension.
|
||||
|
||||
### Router - [Reference](https://backstage.io/api/stable/variables/_backstage_frontend-plugin-api.RouterBlueprint.html)
|
||||
|
||||
Router extensions allow you to replace the router component used by the app. They are always attached to the app root extension.
|
||||
|
||||
## Extension blueprints in `@backstage/plugin-catalog-react/alpha`
|
||||
|
||||
These are the [extension blueprints](../architecture/23-extension-blueprints.md) provided by the Catalog plugin.
|
||||
|
||||
@@ -52,11 +52,8 @@ In order to override a Swappable Component, you need to create a `SwappableCompo
|
||||
There are two different ways to add extensions to the `app` plugin, both are documented below in an example of overriding the `Progress` Swappable Component.
|
||||
|
||||
```tsx title="in packages/app/src/App.tsx"
|
||||
import {
|
||||
Progress,
|
||||
SwappableComponentBlueprint,
|
||||
createFrontendModule,
|
||||
} from '@backstage/frontend-plugin-api';
|
||||
import { Progress, createFrontendModule } from '@backstage/frontend-plugin-api';
|
||||
import { SwappableComponentBlueprint } from '@backstage/plugin-app-react';
|
||||
import { MyCustomProgress } from './CustomProgress';
|
||||
import { createApp } from '@backstage/frontend-defaults';
|
||||
import appPlugin from '@backstage/plugin-app';
|
||||
|
||||
@@ -36,6 +36,9 @@ export const workApiRef = createApiRef<WorkApi>({
|
||||
|
||||
Both of these are properly exported publicly from the package, so that consumers can reach them.
|
||||
|
||||
The frontend system infers the owning plugin for an API from the `ApiRef` id, so
|
||||
use the pattern `plugin.<plugin-id>.*` to make ownership explicit. This ensures that other plugins can't mistakenly override your API.
|
||||
|
||||
## Providing an extension through your plugin
|
||||
|
||||
The plugin itself now wants to provide this API and its default implementation, in the form of an API extension. Doing so means that when users install the Example plugin, an instance of the Work utility API will also be automatically available in their apps - both to the Example plugin itself, and to others. We do this in the main plugin package, not the `-react` package.
|
||||
|
||||
@@ -36,6 +36,8 @@ Well written input-enabled extension often have extension creator functions that
|
||||
|
||||
Like with other extension types, you replace Utility APIs with your own custom implementation using [extension overrides](../architecture/25-extension-overrides.md).
|
||||
|
||||
Note that it is only possible to override a Utility API using a module for the plugin that originally provided the API. Attempting to override an API using a different plugin or module for a different plugin will result in a conflict error.
|
||||
|
||||
```tsx title="in your app"
|
||||
/* highlight-add-start */
|
||||
import { createFrontendModule } from '@backstage/frontend-plugin-api';
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -81,7 +81,7 @@ This guide also assumes a basic understanding of working on a Linux based operat
|
||||
- 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`
|
||||
- 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)
|
||||
|
||||
@@ -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
|
||||
@@ -0,0 +1,365 @@
|
||||
# Release v1.47.0-next.3
|
||||
|
||||
Upgrade Helper: [https://backstage.github.io/upgrade-helper/?to=1.47.0-next.3](https://backstage.github.io/upgrade-helper/?to=1.47.0-next.3)
|
||||
|
||||
## @backstage/backend-defaults@0.15.0-next.2
|
||||
|
||||
### Minor Changes
|
||||
|
||||
- 6fc00e6: Added action filtering support with glob patterns and attribute constraints.
|
||||
|
||||
The `ActionsService` now supports filtering actions based on configuration. This allows controlling which actions are exposed to consumers like the MCP backend.
|
||||
|
||||
Configuration example:
|
||||
|
||||
```yaml
|
||||
backend:
|
||||
actions:
|
||||
pluginSources:
|
||||
- catalog
|
||||
- scaffolder
|
||||
filter:
|
||||
include:
|
||||
- id: 'catalog:*'
|
||||
attributes:
|
||||
destructive: false
|
||||
- id: 'scaffolder:*'
|
||||
exclude:
|
||||
- id: '*:delete-*'
|
||||
- attributes:
|
||||
readOnly: false
|
||||
```
|
||||
|
||||
Filtering logic:
|
||||
|
||||
- `include`: Rules for actions to include. Each rule can specify an `id` glob pattern and/or `attributes` constraints. An action must match at least one rule to be included. If no include rules are specified, all actions are included by default.
|
||||
- `exclude`: Rules for actions to exclude. Takes precedence over include rules.
|
||||
- Each rule combines `id` and `attributes` with AND logic (both must match if specified).
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Updated dependencies
|
||||
- @backstage/backend-app-api@1.4.0
|
||||
- @backstage/plugin-auth-node@0.6.10
|
||||
- @backstage/plugin-permission-node@0.10.7
|
||||
|
||||
## @backstage/ui@0.11.0-next.1
|
||||
|
||||
### Minor Changes
|
||||
|
||||
- 243e5e7: **BREAKING**: Redesigned Table component with new `useTable` hook API.
|
||||
|
||||
- The `Table` component (React Aria wrapper) is renamed to `TableRoot`
|
||||
- New high-level `Table` component that handles data display, pagination, sorting, and selection
|
||||
- The `useTable` hook is completely redesigned with a new API supporting three pagination modes (complete, offset, cursor)
|
||||
- New types: `ColumnConfig`, `TableProps`, `TableItem`, `UseTableOptions`, `UseTableResult`
|
||||
|
||||
New features include unified pagination modes, debounced query changes, stale data preservation during reloads, and row selection with toggle/replace behaviors.
|
||||
|
||||
**Migration guide:**
|
||||
|
||||
1. Update imports and use the new `useTable` hook:
|
||||
|
||||
```diff
|
||||
-import { Table, useTable } from '@backstage/ui';
|
||||
-const { data, paginationProps } = useTable({ data: items, pagination: {...} });
|
||||
+import { Table, useTable, type ColumnConfig } from '@backstage/ui';
|
||||
+const { tableProps } = useTable({
|
||||
+ mode: 'complete',
|
||||
+ getData: () => items,
|
||||
+});
|
||||
```
|
||||
|
||||
2. Define columns and render with the new Table API:
|
||||
|
||||
```diff
|
||||
-<Table aria-label="My table">
|
||||
- <TableHeader>...</TableHeader>
|
||||
- <TableBody items={data}>...</TableBody>
|
||||
-</Table>
|
||||
-<TablePagination {...paginationProps} />
|
||||
+const columns: ColumnConfig<Item>[] = [
|
||||
+ { id: 'name', label: 'Name', isRowHeader: true, cell: item => <CellText title={item.name} /> },
|
||||
+ { id: 'type', label: 'Type', cell: item => <CellText title={item.type} /> },
|
||||
+];
|
||||
+
|
||||
+<Table columnConfig={columns} {...tableProps} />
|
||||
```
|
||||
|
||||
Affected components: Table, TableRoot, TablePagination
|
||||
|
||||
- 95246eb: **Breaking** Updating color tokens to match the new neutral style on different surfaces.
|
||||
|
||||
## Migration notes
|
||||
|
||||
There's no direct replacement for the old tint tokens but you can use the new neutral set of color tokens on surface 0 or 1 as a replacement.
|
||||
|
||||
- `--bui-bg-tint` can be replaced by `--bui-bg-neutral-on-surface-0`
|
||||
- `--bui-bg-tint-hover` can be replaced by `--bui-bg-neutral-on-surface-0-hover`
|
||||
- `--bui-bg-tint-pressed` can be replaced by `--bui-bg-neutral-on-surface-0-pressed`
|
||||
- `--bui-bg-tint-disabled` can be replaced by `--bui-bg-neutral-on-surface-0-disabled`
|
||||
|
||||
- ea0c6d8: Introduce new `ToggleButton` & `ToggleButtonGroup` components in Backstage UI
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- 21c87cc: Fixes disabled state in primary and secondary buttons in Backstage UI.
|
||||
- b3253b6: Fixed `Link` component causing hard page refreshes for internal routes. The component now properly uses React Router's navigation instead of full page reloads.
|
||||
|
||||
## @backstage/plugin-auth-backend@0.26.0-next.0
|
||||
|
||||
### Minor Changes
|
||||
|
||||
- 7ffc873: Fix `user_created_at` migration causing `SQLiteError` regarding use of non-constants for defaults
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Updated dependencies
|
||||
- @backstage/plugin-auth-node@0.6.10
|
||||
|
||||
## @backstage/plugin-events-backend-module-kafka@0.3.0-next.0
|
||||
|
||||
### Minor Changes
|
||||
|
||||
- ef5bbd8: Add support for Kafka offset configuration (`fromBeginning`) and `autoCommit`
|
||||
|
||||
## @backstage/plugin-home@0.9.0-next.2
|
||||
|
||||
### Minor Changes
|
||||
|
||||
- e091a83: 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.
|
||||
|
||||
## @backstage/backend-dynamic-feature-service@0.7.8-next.2
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Updated dependencies
|
||||
- @backstage/backend-defaults@0.15.0-next.2
|
||||
- @backstage/plugin-auth-node@0.6.10
|
||||
- @backstage/plugin-catalog-backend@3.3.1-next.1
|
||||
- @backstage/plugin-events-backend@0.5.10-next.0
|
||||
- @backstage/plugin-permission-node@0.10.7
|
||||
- @backstage/plugin-search-backend-node@1.4.0
|
||||
|
||||
## @backstage/backend-test-utils@1.10.3-next.1
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Updated dependencies
|
||||
- @backstage/backend-defaults@0.15.0-next.2
|
||||
- @backstage/backend-app-api@1.4.0
|
||||
- @backstage/plugin-auth-node@0.6.10
|
||||
|
||||
## @backstage/create-app@0.7.8-next.3
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Bumped create-app version.
|
||||
|
||||
## @techdocs/cli@1.10.4-next.2
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Updated dependencies
|
||||
- @backstage/backend-defaults@0.15.0-next.2
|
||||
|
||||
## @backstage/plugin-api-docs@0.13.3-next.2
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- 0216090: Updated dependency `@types/swagger-ui-react` to `^5.0.0`.
|
||||
- abeba2b: Fix types with new bumped dependency
|
||||
- Updated dependencies
|
||||
- @backstage/plugin-catalog@1.32.2-next.2
|
||||
|
||||
## @backstage/plugin-auth-backend-module-aws-alb-provider@0.4.11-next.0
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Updated dependencies
|
||||
- @backstage/plugin-auth-backend@0.26.0-next.0
|
||||
- @backstage/plugin-auth-node@0.6.10
|
||||
|
||||
## @backstage/plugin-auth-backend-module-oidc-provider@0.4.11-next.1
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Updated dependencies
|
||||
- @backstage/plugin-auth-backend@0.26.0-next.0
|
||||
- @backstage/plugin-auth-node@0.6.10
|
||||
|
||||
## @backstage/plugin-catalog@1.32.2-next.2
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- 7ca91e8: Header in EntityLayout should always be shown.
|
||||
Monitoring the loading status caused flickering when the refresh() method of the Async Entity was invoked.
|
||||
|
||||
## @backstage/plugin-catalog-backend-module-aws@0.4.19-next.2
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Updated dependencies
|
||||
- @backstage/backend-defaults@0.15.0-next.2
|
||||
|
||||
## @backstage/plugin-catalog-backend-module-github@0.12.1-next.1
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- cb4b907: Improved efficiency of `GithubOrgEntityProvider` membership event handling and edit team. The provider now fetches only the specific user's teams instead of all organization users when processing membership events, and uses `addEntitiesOperation` instead of `replaceEntitiesOperation` to avoid unnecessary entity deletions.
|
||||
|
||||
## @backstage/plugin-catalog-backend-module-gitlab@0.7.7-next.2
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Updated dependencies
|
||||
- @backstage/backend-defaults@0.15.0-next.2
|
||||
|
||||
## @backstage/plugin-catalog-backend-module-incremental-ingestion@0.7.8-next.1
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Updated dependencies
|
||||
- @backstage/backend-defaults@0.15.0-next.2
|
||||
- @backstage/plugin-catalog-backend@3.3.1-next.1
|
||||
|
||||
## @backstage/plugin-catalog-backend-module-puppetdb@0.2.18-next.0
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- a307700: Fixed crash when `latest_report_status` is undefined
|
||||
|
||||
## @backstage/plugin-devtools-backend@0.5.13-next.1
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Updated dependencies
|
||||
- @backstage/backend-defaults@0.15.0-next.2
|
||||
- @backstage/plugin-permission-node@0.10.7
|
||||
|
||||
## @backstage/plugin-mcp-actions-backend@0.1.7-next.1
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- 4d82a35: build(deps): bump `@modelcontextprotocol/sdk` from 1.24.3 to 1.25.2
|
||||
- Updated dependencies
|
||||
- @backstage/backend-defaults@0.15.0-next.2
|
||||
|
||||
## @backstage/plugin-scaffolder@1.35.1-next.2
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- 9d75495: Fixed bug in RepoUrlPickerComponent component where repository names were not being autocompleted.
|
||||
|
||||
## @backstage/plugin-scaffolder-backend@3.1.1-next.2
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Updated dependencies
|
||||
- @backstage/backend-defaults@0.15.0-next.2
|
||||
- @backstage/plugin-scaffolder-backend-module-github@0.9.4-next.1
|
||||
- @backstage/plugin-auth-node@0.6.10
|
||||
- @backstage/plugin-permission-node@0.10.7
|
||||
|
||||
## @backstage/plugin-scaffolder-backend-module-cookiecutter@0.3.19-next.2
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Updated dependencies
|
||||
- @backstage/backend-defaults@0.15.0-next.2
|
||||
|
||||
## @backstage/plugin-scaffolder-backend-module-github@0.9.4-next.1
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- bb7088b: Added options to set [workflow access level][access-level] for repositories to `github:repo:create`
|
||||
|
||||
This is useful when creating repositories for GitHub Actions to manage access
|
||||
to the workflows during creation.
|
||||
|
||||
```diff
|
||||
- action: github:repo:create
|
||||
id: create-repo
|
||||
input:
|
||||
repoUrl: github.com?owner=owner&repo=repo
|
||||
visibility: private
|
||||
+ workflowAccess: organization
|
||||
```
|
||||
|
||||
[access-level]: https://docs.github.com/en/rest/actions/permissions?apiVersion=2022-11-28#set-the-level-of-access-for-workflows-outside-of-the-repository
|
||||
|
||||
## @backstage/plugin-search-backend@2.0.10-next.1
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Updated dependencies
|
||||
- @backstage/backend-defaults@0.15.0-next.2
|
||||
- @backstage/plugin-permission-node@0.10.7
|
||||
- @backstage/plugin-search-backend-node@1.4.0
|
||||
|
||||
## @backstage/plugin-techdocs-backend@2.1.4-next.2
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Updated dependencies
|
||||
- @backstage/backend-defaults@0.15.0-next.2
|
||||
|
||||
## @backstage/plugin-user-settings-backend@0.3.10-next.1
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Updated dependencies
|
||||
- @backstage/backend-defaults@0.15.0-next.2
|
||||
- @backstage/plugin-auth-node@0.6.10
|
||||
|
||||
## example-app@0.2.117-next.3
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Updated dependencies
|
||||
- @backstage/ui@0.11.0-next.1
|
||||
- @backstage/plugin-catalog@1.32.2-next.2
|
||||
- @backstage/plugin-home@0.9.0-next.2
|
||||
- @backstage/plugin-api-docs@0.13.3-next.2
|
||||
- @backstage/plugin-scaffolder@1.35.1-next.2
|
||||
- @backstage/cli@0.35.2-next.1
|
||||
|
||||
## example-app-next@0.0.31-next.3
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Updated dependencies
|
||||
- @backstage/ui@0.11.0-next.1
|
||||
- @backstage/plugin-catalog@1.32.2-next.2
|
||||
- @backstage/plugin-home@0.9.0-next.2
|
||||
- @backstage/plugin-api-docs@0.13.3-next.2
|
||||
- @backstage/plugin-scaffolder@1.35.1-next.2
|
||||
- @backstage/cli@0.35.2-next.1
|
||||
|
||||
## example-backend@0.0.46-next.2
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Updated dependencies
|
||||
- @backstage/backend-defaults@0.15.0-next.2
|
||||
- @backstage/plugin-mcp-actions-backend@0.1.7-next.1
|
||||
- @backstage/plugin-auth-backend@0.26.0-next.0
|
||||
- @backstage/plugin-scaffolder-backend-module-github@0.9.4-next.1
|
||||
- @backstage/plugin-app-backend@0.5.9
|
||||
- @backstage/plugin-auth-backend-module-github-provider@0.4.0
|
||||
- @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.1
|
||||
- @backstage/plugin-devtools-backend@0.5.13-next.1
|
||||
- @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-notifications-backend@0.6.1
|
||||
- @backstage/plugin-permission-backend@0.7.7
|
||||
- @backstage/plugin-permission-node@0.10.7
|
||||
- @backstage/plugin-proxy-backend@0.6.9
|
||||
- @backstage/plugin-scaffolder-backend@3.1.1-next.2
|
||||
- @backstage/plugin-search-backend@2.0.10-next.1
|
||||
- @backstage/plugin-search-backend-node@1.4.0
|
||||
- @backstage/plugin-signals-backend@0.3.11
|
||||
- @backstage/plugin-techdocs-backend@2.1.4-next.2
|
||||
@@ -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 ./
|
||||
|
||||
@@ -432,8 +432,79 @@ Usage: backstage-cli create-github-app <github-org>
|
||||
|
||||
Outputs debug information which is useful when opening an issue. Outputs system
|
||||
information, node.js and npm versions, CLI version and type (inside backstage
|
||||
repo or a created app), all `@backstage/*` package dependency versions.
|
||||
repo or a created app), all `@backstage/*` package dependency versions, and any
|
||||
packages that contain a `backstage` field in their `package.json`.
|
||||
|
||||
The command distinguishes between installed packages (from npm) and local
|
||||
workspace packages, making it easier to understand your Backstage setup.
|
||||
|
||||
```text
|
||||
Usage: backstage-cli info
|
||||
Usage: backstage-cli info [options]
|
||||
|
||||
Options:
|
||||
--include <patterns...> Glob patterns for additional packages to include
|
||||
(e.g., @mycompany/backstage-*)
|
||||
--format <text|json> Output format (default: text)
|
||||
-h, --help display help for command
|
||||
```
|
||||
|
||||
### Examples
|
||||
|
||||
Output debug information to the console:
|
||||
|
||||
```bash
|
||||
yarn backstage-cli info
|
||||
```
|
||||
|
||||
Include additional packages matching a glob pattern:
|
||||
|
||||
```bash
|
||||
yarn backstage-cli info --include "@mycompany/*"
|
||||
```
|
||||
|
||||
Output as JSON:
|
||||
|
||||
```bash
|
||||
yarn backstage-cli info --format json
|
||||
```
|
||||
|
||||
Export JSON to a file for further processing:
|
||||
|
||||
```bash
|
||||
yarn backstage-cli info --format json > backstage-info.json
|
||||
```
|
||||
|
||||
Combine options to include custom packages and export to JSON:
|
||||
|
||||
```bash
|
||||
yarn backstage-cli info --include "@mycompany/backstage-*" --include "@internal/*" --format json > debug-info.json
|
||||
```
|
||||
|
||||
Export text output to a file:
|
||||
|
||||
```bash
|
||||
yarn backstage-cli info --format text > backstage-info.txt
|
||||
```
|
||||
|
||||
### JSON Output Format
|
||||
|
||||
When using `--format json`, the output is structured as follows:
|
||||
|
||||
```json
|
||||
{
|
||||
"system": {
|
||||
"os": "Darwin 23.0.0 - darwin/arm64",
|
||||
"node": "v18.17.0",
|
||||
"yarn": "3.6.0",
|
||||
"cli": { "version": "0.27.0", "local": false },
|
||||
"backstage": "1.20.0"
|
||||
},
|
||||
"dependencies": {
|
||||
"@backstage/core-plugin-api": "1.8.0",
|
||||
"@backstage/plugin-catalog": "1.15.0"
|
||||
},
|
||||
"local": {
|
||||
"@mycompany/backstage-plugin-custom": "0.1.0"
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
Reference in New Issue
Block a user