---
id: v1.18.0
title: v1.18.0
description: Backstage Release v1.18.0
---

These are the release notes for the v1.18.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**: 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](https://github.com/jamieklassen) in [#19903](https://github.com/backstage/backstage/pull/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.

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

Contributed by [@sbarrypoppulo](https://github.com/sbarrypoppulo) in [#18889](https://github.com/backstage/backstage/pull/18889)

### New plugin: OpenCost

There’s a new [OpenCost](https://www.opencost.io/) plugin that provides a port of the latest OpenCost UI to Backstage. The [plugin's README](https://github.com/backstage/backstage/blob/master/plugins/opencost/README.md) covers installation and configuration.

Contributed by [@mattray](https://github.com/mattray) in [#18383](https://github.com/backstage/backstage/pull/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](https://backstage.io/docs/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](https://backstage.io/docs/backend-system/building-backends/migrating), 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](https://backstage.io/docs/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:

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

They may now need to be migrated to:

```ts
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](https://github.com/backstage/backstage/blob/master/plugins/auth-node/CHANGELOG.md#030).

### 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](https://backstage.io/docs/plugins/internationalization) for more details.

Contributed by [@mario-mui](https://github.com/mario-mui) in [#17436](https://github.com/backstage/backstage/pull/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](https://github.com/fyyyyy) in [#19388](https://github.com/backstage/backstage/pull/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](https://backstage.io/docs/integrations/azure/locations/) for more information.

Contributed by [@sanderaernouts](https://github.com/sanderaernouts) in [#18213](https://github.com/backstage/backstage/pull/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](https://github.com/PeteLevineA) in [#18921](https://github.com/backstage/backstage/pull/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](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.18.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://info.backstage.spotify.com/newsletter_subscribe) if you want to be informed about what is happening in the world of Backstage.
