Skip to main content
Version: Next

v1.18.0

These are the release notes for the v1.18.0 release of Backstage.

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: Kubernetes backend auth strategies

Integrators can now bring their own auth strategies through the use of the addAuthStrategy method on KubernetesBuilder. As part of this, setAuthTranslatorMap has also been removed and the concept moves into the auth strategies instead.

Contributed by @jamieklassen in #19903

BREAKING: Public GitLab User/Group Ingestion

If you ingest users/groups from GitLab using GitlabOrgDiscoveryEntityProvider, you now have to scope its work to a certain group. The backend will not start up successfully without that.

catalog:
providers:
gitlab:
yourProviderId:
host: gitlab.com
orgEnabled: true
+ group: org/teams

Contributed by @sbarrypoppulo in #18889

New plugin: OpenCost

There’s a new OpenCost plugin that provides a port of the latest OpenCost UI to Backstage. The plugin's README covers installation and configuration.

Contributed by @mattray in #18383

TypeScript 5.0

The minimum TypeScript version is now v5.0, please make sure that you upgrade the TypeScript dependency in your own projects accordingly.

Backend System: Ready for use!

We believe that we have now reached a point where we want to encourage use of the New Backend System. There are still things to iron out and plugins to be migrated, but we consider it to be ready for production use. Please check out the migration guide for backends, and use the legacyPlugin helper to install any plugins that are not ready for use directly with the new system.

For local development we also encourage you to try out the new package start command for backends in the CLI, which you enable by setting EXPERIMENTAL_BACKEND_START=1 in the environment. This new way of running the backend no longer uses Webpack, in favor of a more plain watch mode with module loaders. It does however still maintain the SQLite database state across restarts without filesystem overhead. If all goes according to plan this will be the new default starting from the next release.

Backend System: Default Exports

Plugins and modules leveraging the New Backend System are now supposed to be the default export of their respective packages. This clarifies what the main entrypoint of each package is, facilitates automatic feature discovery, and also lets you easily make dynamic import one-liners in your code. We have made this change to a lot of the packages that had already been migrated to the new backend system. So after upgrading to this version of Backstage, you may find that imports in your backend package no longer match.

For example, if you are currently importing plugins using the following pattern:

import { examplePlugin } from '@backstage/plugin-example-backend';
backend.add(examplePlugin);

They may now need to be migrated to:

backend.add(import('@backstage/plugin-example-backend'));

yarn fix and "sideEffects": false

The CLI has received a new backstage-cli fix command, typically configured to be run as yarn fix. The command will scan through all packages in the project and make sure that they are declared correctly. Initially it will make sure that package exports are declared correctly, replacing the backstage-cli migrate package-exports command, as well as making sure that frontend packages set "sideEffects": false. The latter fix has been applied to all @backstage/* packages as well, which allows for more optimized frontend builds.

Auth Backend Improvements

The @backstage/plugin-auth-backend now has support for the new backend system, as well as installing auth providers via modules. As part of this the auth backend has received a substantial redesign, with all of the APIs needed to build your own providers now exported from @backstage/plugin-auth-node. It is now also possible to configure fixed sign-in resolvers via static configuration for a limited number of providers.

You can read more about these changes in the @backstage/plugin-auth-node changelog.

Experimental I18n Support

A new set of experimental APIs have been added to the frontend system to support internationalization. This allows for both translations to other languages, as well as overriding default messages. Partial support has so far been added to the @backstage/plugin-user-settings and @backstage/plugin-adr plugins. See the docs for more details.

Contributed by @mario-mui in #17436

Experimental Packages for Frontend Declarative Integration

Two new packages have been added to support the work towards frontend declarative integration: @backstage/frontend-plugin-api and @backstage/frontend-app-api. These packages are still highly experimental and should not be used.

Improved Auth Session Expiration

The session expiration check has been improved for all auth providers. The expiration of both the Backstage identity token as well as provider specific tokens will be considered when deciding whether the session has expired.

Scaffolder Template Editor Download

It is now possible to download the results of a dry-run as a zip archive from the template editor dry-run results view.

Contributed by @fyyyyy in #19388

Support for Multiple Azure DevOps Organizations

The integration for Azure DevOps now allows for configuration of separate credentials for different organizations. See the documentation for more information.

Contributed by @sanderaernouts in #18213

New package: @backstage/plugin-catalog-backend-module-scaffolder-entity-model

The Scaffolder’s integrations into the catalog have a new dedicated home. The ScaffolderEntitiesProcessor and its corresponding New Backend System catalogModuleScaffolderEntityModel now should be imported from here, since they have been deprecated in the Scaffolder backend plugin package.

Further MySQL compatibility work

Great efforts have been made by VMware to move the needle in terms of better MySQL support across the core and plugins. Check out the PR for details!

Contributed by @PeteLevineA in #18921

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.

Below you can find a list of links and references to help you learn about and start using this new release.

Sign up for our newsletter if you want to be informed about what is happening in the world of Backstage.