--- id: v1.47.0 title: v1.47.0 description: Backstage Release v1.47.0 --- These are the release notes for the v1.47.0 release of [Backstage](https://backstage.io/). A huge thanks to the whole team of maintainers and contributors as well as the amazing Backstage Community for the hard work in getting this release developed and done. ## Highlights ### BREAKING: Redesigned `Table` and `useTable` in `@backstage/ui` The `Table` component and accompanying `useTable` hook have been redesigned. The low-level React Aria wrapper `Table` is now `TableRoot`, while a higher level `Table` component now handles pagination, sorting, selection, and data display. The `useTable` also has a new API, that supports 3 pagination modes: `complete`, `offset`, and `cursor`. More information along with a migration guide can be found in the [BUI Changelog](https://ui.backstage.io/changelog). ### BREAKING: Updated color tokens in `@backstage/ui` UI color tokens have been updated to align with the new neutral surface-based design system, and the `-tint` tokens have been removed. More information can be found in the [BUI Changelog](https://ui.backstage.io/changelog). ### BREAKING: Redirect validation in the URL reader `coreServices.urlReader` now validates that redirect chains are subject to the allow list in `backend.reading.allow` of your app config. If you were relying on redirects that pointed to URLs that were not allowlisted, you will now have to add those to your config as well. To support this, the `FetchUrlReader` class no longer has a public constructor, but instead has a `fromConfig` static factory method. ### BREAKING: Better AWS S3 auth handling in techdocs Techdocs now knows how to properly use `integrations.awsS3` config to authenticate with AWS S3. Since this affects the priority order of which auth setting is being used, it’s technically a breaking change. The new priority is: 1. `aws.accounts` 2. `techdocs.publisher.awsS3.credentials` 3. `integrations.awsS3` 4. Default credential chain ### Deprecation and upcoming restrictions of blueprints for app customization in `@backstage/frontend-plugin-api` There were several blueprints in `@backstage/frontend-plugin-api` that were intended only for use in customization of the central app. For example `SignInPageBlueprint` that replaces the sign-in page, or `NavContentBlueprint` that replaces the sidebar content. The following blueprints have all been deprecated and moved to a new `@backstage/plugin-app-react` package: - `IconBundleBlueprint` - `NavContentBlueprint` - `RouterBlueprint` - `SignInPageBlueprint` - `SwappableComponentBlueprint` - `ThemeBlueprint` - `TranslationBlueprint` These blueprints are also being restricted from use outside of the `app` plugin. This means that you have to either use an `app` plugin override or a module with `pluginId` set to `app`. These currently trigger deprecation warnings, but will instead be rejected in a future release. ### Deprecations and upcoming restrictions for API factories in new frontend system Similar to the above change, restrictions are being introduced that limit the ability for plugins to override both core Utility APIs and API factories from other plugins. Plugins will be restricted from installing factory overrides for Utility APIs that belong to other plugins. This restriction also applies to the core APIs provided by the app plugin. These overrides now instead need to be made using a plugin override or module. Just like the blueprint changes, this release will only trigger deprecation warnings, with the change taking effect in a future release. ### Backend action filtering support `ActionsService` in `@backstage/backend-defaults` now supports action filtering based on configuration to enable control over which actions are exposed to consumers like the MCP backend. At the time of writing, this is primarily documented in [the relevant configuration schema](https://github.com/backstage/backstage/blob/master/packages/backend-defaults/config.d.ts). ### `scaffolder` now supports configuration for `workflowAccess` level for creating Github repositories Workflow files can now configure the level of access to Github Actions for workflows outside of a repository. This is useful when creating repositories for GitHub Actions to manage access to the workflows for `github:repo:create`. ```diff - action: github:repo:create id: create-repo input: repoUrl: github.com?owner=owner&repo=repo visibility: private + workflowAccess: organization ``` Github Actions access-level documentation can be found [here](https://docs.github.com/en/rest/actions/permissions?apiVersion=2022-11-28#set-the-level-of-access-for-workflows-outside-of-the-repository). Contributed by [@fearphage](https://github.com/fearphage) in [#32237](https://github.com/backstage/backstage/pull/32237) ### Additional Kafka Events streaming settings The Kafka event module now supports `fromBeginning` offsets and `autoCommit`. Contributed by [@imod](https://github.com/imod) in [#31410](https://github.com/backstage/backstage/pull/31410) ### Improvements to the `home` plugin UI Widget configuration changes are now only saved when the Save button is explicitly clicked. A new Cancel button has been added to enable users to discard unsaved changes Contributed by [@kmikko](https://github.com/kmikko) in [#31198](https://github.com/backstage/backstage/pull/31198) ### Improved performance for `GithubOrgEntityProvider` `GithubOrgEntityProvider` membership event handling and edit team has been improved. 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. Contributed by [@angeliski](https://github.com/angeliski) in [#32184](https://github.com/backstage/backstage/pull/32184) ### `Link` component now uses React Router’s navigation system Previously the `Link` component would cause hard page refreshes for internal routes. With this update, the component now properly uses React Router’s navigation instead of full page reloads. ## Security Fixes This release contains security fixes for Software Templates and reading external content. ## Upgrade path We recommend that you keep your Backstage project up to date with this latest release. For more guidance on how to upgrade, check out the documentation for [keeping Backstage updated](https://backstage.io/docs/getting-started/keeping-backstage-updated). ## Links and References Below you can find a list of links and references to help you learn about and start using this new release. - [Backstage official website](https://backstage.io/), [documentation](https://backstage.io/docs/), and [getting started guide](https://backstage.io/docs/getting-started/) - [GitHub repository](https://github.com/backstage/backstage) - Backstage's [versioning and support policy](https://backstage.io/docs/overview/versioning-policy) - [Community Discord](https://discord.gg/backstage-687207715902193673) for discussions and support - [Changelog](https://github.com/backstage/backstage/tree/master/docs/releases/v1.47.0-changelog.md) - Backstage [Demos](https://backstage.io/demos), [Blog](https://backstage.io/blog), [Roadmap](https://backstage.io/docs/overview/roadmap) and [Plugins](https://backstage.io/plugins) Sign up for our [newsletter](https://spoti.fi/backstagenewsletter) if you want to be informed about what is happening in the world of Backstage.