diff --git a/.changeset/angry-sites-fold.md b/.changeset/angry-sites-fold.md new file mode 100644 index 0000000000..8124ddaf47 --- /dev/null +++ b/.changeset/angry-sites-fold.md @@ -0,0 +1,30 @@ +--- +'@backstage/plugin-auth-backend': patch +--- + +Added the configuration flag `auth.omitIdentityTokenOwnershipClaim` that causes issued user tokens to no longer contain the `ent` claim that represents the ownership references of the user. + +The benefit of this new flag is that issued user tokens will be much smaller in +size, but they will no longer be self-contained. This means that any consumers +of the token that require access to the ownership claims now need to call the +`/api/auth/v1/userinfo` endpoint instead. Within the Backstage ecosystem this is +done automatically, as clients will still receive the full set of claims during +authentication, while plugin backends will need to use the `UserInfoService` +which already calls the user info endpoint if necessary. + +When enabling this flag, it is important that any custom sign-in resolvers directly return the result of the sign-in method. For example, the following would not work: + +```ts +const { token } = await ctx.issueToken({ + claims: { sub: entityRef, ent: [entityRef] }, +}); +return { token }; // WARNING: This will not work with the flag enabled +``` + +Instead, the sign-in resolver should directly return the result: + +```ts +return ctx.issueToken({ + claims: { sub: entityRef, ent: [entityRef] }, +}); +``` diff --git a/.changeset/beige-kiwis-flow.md b/.changeset/beige-kiwis-flow.md new file mode 100644 index 0000000000..500095b44b --- /dev/null +++ b/.changeset/beige-kiwis-flow.md @@ -0,0 +1,5 @@ +--- +'@backstage/plugin-kubernetes-node': minor +--- + +**BREAKING**: The `PinnipedHelper` class now expects a regular `LoggerService` instance from the new backend system, instead of a Winston logger. diff --git a/.changeset/brave-eggs-mate.md b/.changeset/brave-eggs-mate.md new file mode 100644 index 0000000000..73eb8e363a --- /dev/null +++ b/.changeset/brave-eggs-mate.md @@ -0,0 +1,5 @@ +--- +'@backstage/theme': patch +--- + +Show arrow when MuiTableSortLabel receives focus diff --git a/.changeset/brave-toes-switch.md b/.changeset/brave-toes-switch.md new file mode 100644 index 0000000000..27b39cccd3 --- /dev/null +++ b/.changeset/brave-toes-switch.md @@ -0,0 +1,5 @@ +--- +'@backstage/plugin-catalog-backend-module-msgraph': minor +--- + +Add new `userGroupMember.path`, `user.path` and, `group.path` option to each query type to allow more complex msgraph queries diff --git a/.changeset/bright-moles-sort.md b/.changeset/bright-moles-sort.md new file mode 100644 index 0000000000..9796729d1a --- /dev/null +++ b/.changeset/bright-moles-sort.md @@ -0,0 +1,5 @@ +--- +'@backstage/backend-dynamic-feature-service': minor +--- + +**BREAKING** Removed support for the legacy backend, please migrate to the new backend system diff --git a/.changeset/calm-toys-occur.md b/.changeset/calm-toys-occur.md new file mode 100644 index 0000000000..ea03aaf4f8 --- /dev/null +++ b/.changeset/calm-toys-occur.md @@ -0,0 +1,17 @@ +--- +'@backstage/plugin-bitbucket-cloud-common': minor +--- + +Update Bitbucket Cloud schema and models. + +The latest schema was fetched from Bitbucket Cloud and stored locally. +Based on the updated schema, the models got regenerated. + +**BREAKING:** + +Due to the schema changes, the model update includes one breaking change: + +- `Account.username` was removed. + +Additionally, there were a couple of compatible changes including the addition of +`BaseCommit.committer` and others. diff --git a/.changeset/chatty-showers-cheat.md b/.changeset/chatty-showers-cheat.md new file mode 100644 index 0000000000..24c2720fb6 --- /dev/null +++ b/.changeset/chatty-showers-cheat.md @@ -0,0 +1,5 @@ +--- +'@backstage/plugin-catalog-backend': minor +--- + +**BREAKING ALPHA**: You can no longer import the catalog plugin from the `/alpha` export; please use the regular root default export instead. diff --git a/.changeset/chilly-trams-cheer.md b/.changeset/chilly-trams-cheer.md new file mode 100644 index 0000000000..0e14423ef8 --- /dev/null +++ b/.changeset/chilly-trams-cheer.md @@ -0,0 +1,5 @@ +--- +'@backstage/plugin-kubernetes-react': patch +--- + +Add headlamp formatter diff --git a/.changeset/chubby-cougars-run.md b/.changeset/chubby-cougars-run.md new file mode 100644 index 0000000000..deb954ef6b --- /dev/null +++ b/.changeset/chubby-cougars-run.md @@ -0,0 +1,6 @@ +--- +'@backstage/plugin-catalog-backend': patch +--- + +This patch addresses an issue identified in Backstage when configured with a MySQL database. If an entity of type location +(e..all.yaml) has more than 70 referenced entities, clicking "Refresh" does not update the referenced entities as expected. This occurs because the TEXT type in MySQL has a limit of 65,535 bytes, which is insufficient to store all the referenced entities, causing the refresh operation to fail. diff --git a/.changeset/cold-humans-check.md b/.changeset/cold-humans-check.md new file mode 100644 index 0000000000..5bcb6caa4b --- /dev/null +++ b/.changeset/cold-humans-check.md @@ -0,0 +1,5 @@ +--- +'@backstage/plugin-user-settings': patch +--- + +plugin-user-settingsgs support i18n diff --git a/.changeset/common-goats-raise.md b/.changeset/common-goats-raise.md new file mode 100644 index 0000000000..c2d797b719 --- /dev/null +++ b/.changeset/common-goats-raise.md @@ -0,0 +1,5 @@ +--- +'@backstage/plugin-scaffolder-backend-module-github': patch +--- + +Use action context logger in Octokit client diff --git a/.changeset/cool-cities-grab.md b/.changeset/cool-cities-grab.md new file mode 100644 index 0000000000..372ca9887f --- /dev/null +++ b/.changeset/cool-cities-grab.md @@ -0,0 +1,5 @@ +--- +'@backstage/core-components': patch +--- + +`LogViewer` now supports a `textWrap` prop that wraps log lines to the next line for overflowing content instead of using horizontal scroll diff --git a/.changeset/cool-knives-design.md b/.changeset/cool-knives-design.md new file mode 100644 index 0000000000..63197edd16 --- /dev/null +++ b/.changeset/cool-knives-design.md @@ -0,0 +1,7 @@ +--- +'@backstage/frontend-plugin-api': patch +--- + +The `id` option of `createFrontendPlugin` has been renamed to `pluginId` in order to better align with similar APIs in the frontend and backend systems. + +The old `id` option is deprecated and will be removed in a future release. diff --git a/.changeset/create-app-1745325336.md b/.changeset/create-app-1745325336.md new file mode 100644 index 0000000000..b50d431d4b --- /dev/null +++ b/.changeset/create-app-1745325336.md @@ -0,0 +1,5 @@ +--- +'@backstage/create-app': patch +--- + +Bumped create-app version. diff --git a/.changeset/create-app-1745936753.md b/.changeset/create-app-1745936753.md new file mode 100644 index 0000000000..b50d431d4b --- /dev/null +++ b/.changeset/create-app-1745936753.md @@ -0,0 +1,5 @@ +--- +'@backstage/create-app': patch +--- + +Bumped create-app version. diff --git a/.changeset/dirty-grapes-vanish.md b/.changeset/dirty-grapes-vanish.md new file mode 100644 index 0000000000..b78660d21e --- /dev/null +++ b/.changeset/dirty-grapes-vanish.md @@ -0,0 +1,7 @@ +--- +'@backstage/backend-defaults': minor +--- + +**BREAKING**: The `DefaultSchedulerService` constructor options now requires `RootLifecycleService`, `HttpRouterService`, and `PluginMetadataService` fields. + +The scheduler will register a REST API for listing and triggering tasks. Please see [the scheduler documentation](https://backstage.io/docs/backend-system/core-services/scheduler) for more details about this API. diff --git a/.changeset/dry-carpets-hope.md b/.changeset/dry-carpets-hope.md new file mode 100644 index 0000000000..569e089a66 --- /dev/null +++ b/.changeset/dry-carpets-hope.md @@ -0,0 +1,5 @@ +--- +'@backstage/plugin-catalog-backend-module-backstage-openapi': patch +--- + +Do not swallow errors; instead allow them to bubble up to the task scheduler for better tracking and logging. diff --git a/.changeset/dull-doodles-trade.md b/.changeset/dull-doodles-trade.md new file mode 100644 index 0000000000..eb9399fcc7 --- /dev/null +++ b/.changeset/dull-doodles-trade.md @@ -0,0 +1,5 @@ +--- +'@backstage/plugin-kubernetes-backend': patch +--- + +Changed logging of cluster details to debug to minimise log clutter. diff --git a/.changeset/early-colts-accept.md b/.changeset/early-colts-accept.md new file mode 100644 index 0000000000..ff583144f0 --- /dev/null +++ b/.changeset/early-colts-accept.md @@ -0,0 +1,6 @@ +--- +'@backstage/backend-dynamic-feature-service': patch +--- + +Fixed various typos. +`FrontendRemoteResolver`'s misspelled `getAdditionaRemoteInfo` has been deprecated. Use the correct spelling `getAdditionalRemoteInfo` instead. diff --git a/.changeset/early-dryers-teach.md b/.changeset/early-dryers-teach.md new file mode 100644 index 0000000000..d747fbc730 --- /dev/null +++ b/.changeset/early-dryers-teach.md @@ -0,0 +1,5 @@ +--- +'@backstage/plugin-catalog-node': minor +--- + +Added `parseEntityYaml` from `@backstage/plugin-catalog-backend`, to make it more easily usable by custom plugins and modules diff --git a/.changeset/eight-toys-feel.md b/.changeset/eight-toys-feel.md new file mode 100644 index 0000000000..c0f5a12c40 --- /dev/null +++ b/.changeset/eight-toys-feel.md @@ -0,0 +1,35 @@ +--- +'@backstage/backend-app-api': patch +--- + +Added a configuration to permit backend plugin module failures on startup: + +```yaml +backend: + ... + startup: + plugins: + plugin-x: + modules: + module-y: + onPluginModuleBootFailure: continue +``` + +This configuration permits `plugin-x` with `module-y` to fail on startup. Omitting the +`onPluginModuleBootFailure` configuration matches the previous behavior, wherein any +individual plugin module failure is forwarded to the plugin and aborts backend startup. + +The default can also be changed, so that continuing on failure is the default +unless otherwise specified: + +```yaml +backend: + startup: + default: + onPluginModuleBootFailure: continue + plugins: + catalog: + modules: + github: + onPluginModuleBootFailure: abort +``` diff --git a/.changeset/eleven-ghosts-strive.md b/.changeset/eleven-ghosts-strive.md new file mode 100644 index 0000000000..ac48c19524 --- /dev/null +++ b/.changeset/eleven-ghosts-strive.md @@ -0,0 +1,5 @@ +--- +'@backstage/plugin-scaffolder': patch +--- + +Full support in EntityPicker (and derivatives) for default EntityPresentationApi diff --git a/.changeset/famous-cities-stand.md b/.changeset/famous-cities-stand.md new file mode 100644 index 0000000000..86ba727997 --- /dev/null +++ b/.changeset/famous-cities-stand.md @@ -0,0 +1,7 @@ +--- +'@backstage/plugin-auth-node': patch +--- + +Added the `identity` property to `BackstageSignInResult`. + +The `prepareBackstageIdentityResponse` function will now also forward the `identity` to the response if present in the provided sign-in result. diff --git a/.changeset/fancy-frogs-like.md b/.changeset/fancy-frogs-like.md new file mode 100644 index 0000000000..ed3a9fbf81 --- /dev/null +++ b/.changeset/fancy-frogs-like.md @@ -0,0 +1,5 @@ +--- +'@backstage/cli': patch +--- + +Internal code cleanup diff --git a/.changeset/floppy-days-tell.md b/.changeset/floppy-days-tell.md new file mode 100644 index 0000000000..2eb184f6fe --- /dev/null +++ b/.changeset/floppy-days-tell.md @@ -0,0 +1,5 @@ +--- +'@backstage/canon': patch +--- + +For improved a11y, clicking a Select component label now focuses the Select trigger element, and the TextField component's label is now styled to indicate it's interactive. diff --git a/.changeset/four-peaches-talk.md b/.changeset/four-peaches-talk.md new file mode 100644 index 0000000000..4b0d2e8a47 --- /dev/null +++ b/.changeset/four-peaches-talk.md @@ -0,0 +1,5 @@ +--- +'@backstage/cli': patch +--- + +Internal refactor of opaque type handling. diff --git a/.changeset/fruity-bags-flow.md b/.changeset/fruity-bags-flow.md new file mode 100644 index 0000000000..bc6034a489 --- /dev/null +++ b/.changeset/fruity-bags-flow.md @@ -0,0 +1,23 @@ +--- +'@backstage/plugin-catalog-unprocessed-entities': patch +'@backstage/frontend-test-utils': patch +'@backstage/core-compat-api': patch +'@backstage/plugin-app-visualizer': patch +'@backstage/plugin-catalog-import': patch +'@backstage/plugin-catalog-graph': patch +'@backstage/plugin-notifications': patch +'@backstage/plugin-user-settings': patch +'@backstage/plugin-kubernetes': patch +'@backstage/plugin-scaffolder': patch +'@backstage/plugin-api-docs': patch +'@backstage/plugin-devtools': patch +'@backstage/plugin-techdocs': patch +'@backstage/plugin-catalog': patch +'@backstage/plugin-signals': patch +'@backstage/plugin-search': patch +'@backstage/plugin-home': patch +'@backstage/plugin-app': patch +'@backstage/plugin-org': patch +--- + +Internal update to use the new `pluginId` option of `createFrontendPlugin`. diff --git a/.changeset/good-islands-drive.md b/.changeset/good-islands-drive.md new file mode 100644 index 0000000000..5b909dc84f --- /dev/null +++ b/.changeset/good-islands-drive.md @@ -0,0 +1,5 @@ +--- +'@backstage/cli': patch +--- + +Added `info` object to the context of the alpha CLI. diff --git a/.changeset/heavy-baths-rule.md b/.changeset/heavy-baths-rule.md new file mode 100644 index 0000000000..09f26e8b57 --- /dev/null +++ b/.changeset/heavy-baths-rule.md @@ -0,0 +1,5 @@ +--- +'@backstage/plugin-catalog-backend-module-github': minor +--- + +**BREAKING** The `GithubLocationAnalyzer` now requires the `AuthService` and the `CatalogService` when being constructed and the `TokenManger` has been removed. diff --git a/.changeset/heavy-onions-swim.md b/.changeset/heavy-onions-swim.md new file mode 100644 index 0000000000..42ba056c1e --- /dev/null +++ b/.changeset/heavy-onions-swim.md @@ -0,0 +1,5 @@ +--- +'@backstage/plugin-scaffolder-backend': minor +--- + +Added `workspace:template` and `workspace:template:file` actions to complement respective `fetch:*` actions diff --git a/.changeset/icy-mugs-glow.md b/.changeset/icy-mugs-glow.md new file mode 100644 index 0000000000..553daff24a --- /dev/null +++ b/.changeset/icy-mugs-glow.md @@ -0,0 +1,5 @@ +--- +'@backstage/plugin-bitbucket-cloud-common': patch +--- + +Add support for `repo:updated` events as `Events.RepoUpdatedEvent`. diff --git a/.changeset/large-experts-sort.md b/.changeset/large-experts-sort.md new file mode 100644 index 0000000000..6d58836db7 --- /dev/null +++ b/.changeset/large-experts-sort.md @@ -0,0 +1,7 @@ +--- +'@backstage/plugin-events-backend-module-github': minor +--- + +**BREAKING**: Removed the `createGithubSignatureValidator` export. + +Added support webhook validation based on `integrations.github.[].apps.[].webhookSecret`. diff --git a/.changeset/large-lemons-clap.md b/.changeset/large-lemons-clap.md new file mode 100644 index 0000000000..cf1a3eed5d --- /dev/null +++ b/.changeset/large-lemons-clap.md @@ -0,0 +1,7 @@ +--- +'@backstage/backend-plugin-api': patch +'@backstage/backend-defaults': patch +'@backstage/integration': patch +--- + +update documentation diff --git a/.changeset/lazy-tires-show.md b/.changeset/lazy-tires-show.md new file mode 100644 index 0000000000..3ccf5f155e --- /dev/null +++ b/.changeset/lazy-tires-show.md @@ -0,0 +1,7 @@ +--- +'@backstage/plugin-permission-backend': minor +'@backstage/plugin-permission-common': minor +'@backstage/plugin-permission-node': minor +--- + +Fixed an issue causing the `PermissionClient` to exhaust the request body size limit too quickly when making many requests. diff --git a/.changeset/lovely-cats-take.md b/.changeset/lovely-cats-take.md new file mode 100644 index 0000000000..ab1ee1c249 --- /dev/null +++ b/.changeset/lovely-cats-take.md @@ -0,0 +1,11 @@ +--- +'@backstage/plugin-catalog-backend-module-bitbucket-cloud': patch +--- + +Support Bitbucket Cloud's `repo:updated` events at `BitbucketCloudEntityProvider`. + +To make use of the new event type, you have to configure your webhook or add a new ones +that delivers this event type to Backstage similar to `repo:push` before. + +Only `repo:updated` events that modify a repository's URL (e.g., due to a name change) +will cause changes (removing the "old", adding the "new" repository). diff --git a/.changeset/mighty-carrots-decide.md b/.changeset/mighty-carrots-decide.md new file mode 100644 index 0000000000..68f210da48 --- /dev/null +++ b/.changeset/mighty-carrots-decide.md @@ -0,0 +1,5 @@ +--- +'@backstage/plugin-search-react': minor +--- + +Allow search filters to provide labels and values separately, and not only values diff --git a/.changeset/nice-vans-vanish.md b/.changeset/nice-vans-vanish.md new file mode 100644 index 0000000000..c52fc42488 --- /dev/null +++ b/.changeset/nice-vans-vanish.md @@ -0,0 +1,5 @@ +--- +'@backstage/canon': minor +--- + +**Breaking Change** Icons on Button and IconButton now need to be imported and placed like this: