--- id: v1.44.0 title: v1.44.0 description: Backstage Release v1.44.0 --- These are the release notes for the v1.44.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 all the hard work in getting this release developed and done. ## Highlights ### Scaffolder Backend 3.0 **BREAKING**: Removal of deprecated types and interfaces: `CreateWorkerOptions`, `CurrentClaimedTask`, `DatabaseTaskStore`, `TaskManager`, etc. The `TaskBroker` interface now requires the `cancel`, `recoverTasks`, and `retry` methods to be implemented. If your implementation of `TaskBroker` doesn’t use these methods, you can replace them with a `no-op () => void` function. Please reach out to us in an issue as we're thinking about completely removing the `TaskBroker` extension point soon and would like to hear your use cases for the upcoming re-architecture of the `scaffolder-backend` plugin. The `scaffolderActionsExtensionPoint` has been moved from `/alpha` to the main export. ```ts // before import { scaffolderActionsExtensionPoint } from '@backstage/plugin-scaffolder-node/alpha'; // after import { scaffolderActionsExtensionPoint } from '@backstage/plugin-scaffolder-node'; ``` **DEPRECATION**: We're going to be working on refactoring a lot of the internals of the Scaffolder backend plugin, and with that come a lot of deprecations and removals for public types that are making these things hard. If you're using these types, please reach out to us either on Discord or a GitHub issue with your use cases. - `SerializedTask`, `SerializedTaskEvent`, `TaskBroker`, `TaskContext`, `TaskBrokerDispatchOptions`, `TaskBrokerDispatchResult`, `TaskCompletionState`, `TaskEventType`, `TaskFilter`, `TaskFilters`, `TaskStatus` are the types that have now been marked as deprecated, and will be removed in a future release. ### Design System: Backstage Theme **BREAKING** Removed the built-in `CssBaseline` from `UnifiedThemeProvider`. If your Backstage instance looks broken after this update, you likely forgot to add our new Backstage UI global CSS. To do that, please import `@backstage/ui/css/styles.css` in `packages/app/src/index.tsx`: ```tsx import '@backstage/ui/css/styles.css'; ``` This change also removes the `noCssBaseline` prop, which became redundant. ### Design System: Backstage UI **NEW** Adding a new `Dialog` component to Backstage UI. Contributed by [@ssjoblad](https://github.com/@ssjoblad) in [#31371](https://github.com/backstage/backstage/pull/31371) Added new `virtualized`, `maxWidth` and `maxHeight` props to `Menu`, `MenuListBox`, `MenuAutocomplete` and `MenuAutocompleteListBox` to allow for virtualization of long lists inside menus. **BREAKING** New `PasswordField` component - removed `password` and `search` types from `TextField`. Contributed by [@birdhb](https://github.com/birdhb) in [#31238](https://github.com/backstage/backstage/pull/31238) Restructured Backstage UI component styling to use CSS Modules instead of pure CSS. We don't expect this to be an issue in practice but it is important to call out that all styles are now loaded through CSS modules with generated class names. We are still providing fixed class names for all components to allow anyone to style their Backstage instance. The `ScrollArea` component has been removed from Backstage UI because it did not meet our accessibility standards. Removed Icon component in Backstage UI. This component was creating issues for tree-shaking. It is recommended to use icons from `@remixicon/react` until we find a better alternative in Backstage UI. ### **BREAKING**: Extension testing with new `renderTestApp` The `extensions` option was removed from `renderInTestApp`, because it led to confusing effects where the old and new frontend worlds were mixed. If you need to pass extensions to the test app, use the new `renderTestApp` utility instead. ### Backstage CLI: Yarn plugin Added automatic detection and support for the Backstage Yarn plugin when generating new packages with `yarn new`. When the plugin is installed, new packages will automatically use `backstage:^` ranges for `@backstage/*` dependencies. ### Backstage CLI: App entrypoints Added a new `--entrypoint` option to the `package start` command, which allows you to specify a custom entry directory/file for development applications. This is particularly useful when maintaining separate dev apps for different versions of your plugin (e.g., stable and alpha). For example, consider the following plugin dev folder structure: ``` dev/ index.tsx alpha/ index.ts ``` - The default `yarn package start` command uses the `dev/` folder as the entry point and executes `dev/index.tsx` file; - Running `yarn package start --entrypoint dev/alpha` will instead use `dev/alpha/` as the entry point and execute `dev/alpha/index.ts` file. ### Support for custom external service auth methods A new service ref has finally landed: the external token handler. This allows adopters to add custom handlers for authorization tokens that are sent to your backend plugins. So if your organization already has a settled service-to-service auth method in your backend flora, you can now seamlessly make Backstage accept those too. This complements the pre-existing support for static and JWKS-based tokens. As usual, it's all documented in [the corresponding service-to-service auth section](https://backstage.io/docs/auth/service-to-service-auth) on the microsite. Contributed by [@Sarabadu](https://github.com/Sarabadu) in [#28942](https://github.com/backstage/backstage/pull/28942) ### New plugin: Themer There’s a new Material UI to Backstage UI migration helper plugin. It adds a new page at `/mui-to-bui` that converts an existing MUI v5 theme into Backstage UI (BUI) CSS variables, with live preview and copy/download. There are some more details and screenshots in [the pull request](https://github.com/backstage/backstage/pull/31140). ### Relaxed linting in the new frontend system The built-in lint rules used to forbid frontend plugin packages from importing other frontend plugin packages - those dependencies should normally be moved to a `-react` or `-common` package instead. But in the new frontend system, it becomes a common desire to extend and adapt other plugins, which implies importing those plugins in code. So the lint rules have been relaxed to support this specific case, IF the plugin IDs of the two packages are the same. This means that you can now make an (internal) frontend plugin package that your app imports, and then that internal package in turn imports the open source plugin you are adapting. So you no longer have to keep your adaptations inside the app itself! Contributed by [@drodil](https://github.com/drodil) in [#31373](https://github.com/backstage/backstage/pull/31373) ### TechDocs CLI serve now supports live reloading The TechDocs CLI and its embedded app now leverage `mkdocs` live reload support. Let us know how it works out for you! Contributed by [@GabDug](https://github.com/GabDug) in [#30541](https://github.com/backstage/backstage/pull/30541) ### Easier server options through config You can now more easily set low level HTTP server options such as request timeouts for your backend, directly from your app-config without having to adapt your root HTTP router service. Check out [the relevant service docs](https://backstage.io/docs/backend-system/core-services/root-http-router) for more details! Contributed by [@BethGriggs](https://github.com/BethGriggs) in [#30483](https://github.com/backstage/backstage/pull/30483) ## Security Fixes This release does not contain any security fixes. ## 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.44.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.