Skip to content

Releases: backstage/backstage

v1.35.1

29 Jan 15:38
5c399b5
Compare
Choose a tag to compare

This release fixes the following issues:

  • Issue with TechdocsReader not working correctly in new frontend system.
  • Fixes issue with BitBucket autocomplete in the scaffolder plugin.
  • Reverts a fix for validation nested dependencies in forms in the scaffolder.
  • Fixes an issue where invalid imports could be generated for static assets in package builds.

v1.36.0-next.1

28 Jan 15:11
915f0f3
Compare
Choose a tag to compare
v1.36.0-next.1 Pre-release
Pre-release

v1.36.0-next.0

21 Jan 16:41
08cb6ef
Compare
Choose a tag to compare
v1.36.0-next.0 Pre-release
Pre-release

v1.35.0

14 Jan 14:37
d49dcce
Compare
Choose a tag to compare

These are the release notes for the v1.35.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: Reduced support for the old backend system

The following packages have dropped support for the old backend system:

  • @backstage/plugin-signals-backend
  • @backstage/plugin-search-backend-module-catalog

See the migration guide for details on how to migrate your backend to use the current backend system.

GitHub organization ingestion reliability

The GitHub org entity provider will now handle both primary and secondary GitHub rate limits, pausing work when rate limits are encountered. This particularly improves reliability when ingesting large GitHub organizations. Contributed by @sonikro in #28085

Task ID in scaffolder templates

The current task ID is now available in templates via ${{ context.task.id }}, and in actions ctx.task.id. Contributed by @fabiovincenzi in #27592

Fixed yarn dev command when only a single CPU core is reported

Users have been reporting issues with the yarn dev command not properly running the app and backend packages concurrently, instead starting them one after another. This turned out to be an issue on single-core machines where yarn workspaces foreach defaults to running one process at a time. This is fixed by adding the --jobs unlimited option to the command.

Removed experimental Vite support

The EXPERIMENTAL_VITE flag is no longer supported by the Backstage CLI. If you were using it to improve bundling performance, we recommend switching to EXPERIMENTAL_RSPACK instead.

Proxy endpoint extensions

The proxy plugin now has a new proxyEndpointsExtensionPoint that lets you programmatically configure proxy endpoints. Contributed by @mbenson in #27257

Backend config schema workaround

Configuration schema from the @backstage/backend-common package will now be ignored if @backstage/backend-defaults is present, as it was causing conflicts in the backend configuration schema.

Plugin backend error middleware

The error handler middleware has been added to the default HttpRouterService, this is in addition to the existing error handler middleware for the RootHttpRouterService. This change moves error reporting to be done within the context of a plugin, providing additional metadata. If you were using the MiddlewareFactory to add your own error handler middleware to the plugin router, this can be removed.

Improved catalog /entities endpoint concurrency

When using the catalog.disableRelationsCompatibility flag to enable query streaming mode of the /entities endpoint, the endpoint will now fetch the next batch of entities without waiting for the current batch to be written to the response.

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.

Links and References

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.

Big shoutout to all 45 of you amazing folks who chipped in on this release 🙏: @abhipsnl, @AdityaK60, @aliok, @AmbrishRamachandiran, @Andrzejewski-dev, @awanlin, @beejiujitsu, @benjdlambert, @bvic-kb4, @cdedreuille, @christoph-jerolimov, @darylgraham, @deepan10, @dimapasko, @freben, @GabDug, @hghtwr, @immanchand, @Irma12, @isabeltomb, @Jenson3210, @jolies93, @jroebu14, @jsantos-napster, @jsundquist, @Lucifergene, @madsteer, @mario-mui, @mbenson, @mpsanchis, @mtlewis, @nikolarAutodesk, @Parsifal-M, @petar-cvit, @RobertKelly, @Rugvip, @sonikro, @srushti-712, @tdabasinskas, @timbonicus, @tylerd-canva, @vinzscam, @vrabbi, @yasserhennawi, @zcmander

v1.35.0-next.2

07 Jan 21:15
c72f4c0
Compare
Choose a tag to compare
v1.35.0-next.2 Pre-release
Pre-release

v1.35.0-next.1

31 Dec 15:13
50f8fa8
Compare
Choose a tag to compare
v1.35.0-next.1 Pre-release
Pre-release

v1.35.0-next.0

24 Dec 11:57
aae9523
Compare
Choose a tag to compare
v1.35.0-next.0 Pre-release
Pre-release

v1.34.2

24 Dec 12:44
4215e2d
Compare
Choose a tag to compare

This release fixes an issue where the GitLab reader was returning 406 errors when reading from a repository.

v1.34.1

20 Dec 15:18
cac00d2
Compare
Choose a tag to compare

This release fixes an issue where the scaffolder wasn't forwarding collected secrets properly, and also an issue with config schema failing validation.

v1.34.0

17 Dec 12:40
8a42837
Compare
Choose a tag to compare

These are the release notes for the v1.34.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: New version of keyv, Redis

Our builtin core cache service is based on keyv, whose redis integration has been upgraded. This fixes issues that the old version had especially in relation to redis sets. If you were setting useRedisSets: false, note that the layout of your key space may be slightly affected after this change.

Contributed by @eipc16 in #27716, and more information can be found within that changeset.

BREAKING: Route change for notifications

If you are interacting directly with the notifications backend plugin API, it now no longer uses the / root route but rather a /notifications sub-route. This aligns it with our standards. The old routes are still available in the notifications backend, but the frontend will use the new routes.

BREAKING: Scaffolder Gitlab module

We’ve upgraded to the most recent version of the gitbeaker library that speaks to Gitlab. In doing so, the scopes parameter of the gitlab:projectDeployToken:create action is no longer optional, so you will have to pass it a value (for example ['read_repository']).

Catalog performance improvements

Since last month’s release, we have been putting a lot of focus on catalog performance, scouring through the metrics and improving several standout peaks. Among other things you may find that provider ’delta’ mutations as well as some API calls are significantly faster.

There is also a new experimental catalog.disableRelationsCompatibility configuration option that, when set to true, avoids JSON deserialization and serialization if possible when reading entities. This significantly reduces the memory usage of the catalog, and slightly increases performance, but it removes the backwards compatibility processing that ensures that both entity.relation[].target and entity.relation[].targetRef are present in returned entities. Do let us know if you find any problems in case you feel adventurous and enable this flag! Just be aware that the API response shape does change slightly if you do, as outlined above.

Direct Google CloudSQL Postgres support

You can now connect directly to your Google CloudSQL Postgres databases with IAM auth, without having to use sidecars or similar proxies. Update your backend.database.connection:

connection:
  type: cloudsql
  instance: my-project:europe-west1:a-db-instance
  # ... other settings

New integration: Azure blob storage

Azure blob storage is now better supported, both in terms of a low level integration package addition, as well as gaining a catalog entity provider that can read directly out of your storages. Head straight to the docs if this sounds interesting.

Contributed by @Nikunj0601 in #27850

Lifecycle and health

The default readiness endpoint now immediately starts returning HTTP 503 errors when the process is asked to shut down. Pairing this with the backend.lifecycle.serverShutdownDelay configuration option allows you to let your ingress detect the impending shutdown and drain traffic gracefully before the service finally stops. This helps with zero-downtime deployments.

On the path to implementing that, the coreServices.rootLifecycle service gained a new addBeforeShutdownHook method whose registered hooks will run immediately when a termination signal is received. The backend will not proceed with the shutdown and run the regular Shutdown hooks until all BeforeShutdown hooks have completed.

If you were using the startupRequestPauseTimeout setting of the lifecycle service in code, you should now instead set it in the backend.lifecycle.startupRequestPauseTimeout config, next to the one mentioned above.

Bitbucket API throttling

The Bitbucket integration (URL reader and catalog provider) now apply throttling to outgoing requests, to avoid hitting rate limits. Let us know how it affected your service!

Contributed by @kjjuno in #27850

Support for custom service-to-service tokens

Do you have a pre-existing service-to-service auth scheme that you would like Backstage installations to leverage instead of only the native Backstage tokens? There’s now a plugin token handler decorator interface that allows for injecting yourself in just the right spot in the auth chain, without having to reimplement the whole auth core service. It’s all covered in the docs!

Further improvements to the yarn plugin

The yarn plugin received a number of updates, making it more conformant with yarn semantics. It now works better behind corporate proxies and uses an improved way of persisting resolutions in the lockfile. On top of it all, its on-disk footprint was reduced massively.

If you use the classical yarn backstage-cli versions:bump command, it now also ensures that the installed plugin itself stays updated with the latest and greatest without any further action on your part.

Contributed by @mtlewis over several pull requests.

Removing node-fetch in the backend

ADR014 replaces its predecessor ADR to recommend using native undici-based fetch instead of node-fetch in all backend packages. As a result we have almost entirely performed that shift in our core libraries and plugins, and recommend that plugin authors and adopters do the same when they can.

This change should not be noticeable for most adopters. If you see any ill effects of it, please report it to the maintainers.

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.

Links and References

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.

Big thanks to all 57 of you awesome folks who made this release happen 👏🎉: @AdrianSoovary8234, @aramissennyeydd, @awanlin, @benjdlambert, @bforbis, @brianphillips, @camilaibs, @cdedreuille, @chgasparoto, @christoph-jerolimov, @cthtrifork, @davidfestal, @davidgiga1993, @dejanbelusic, @djamaile, @eipc16, @freben, @gavinclarkeuk, @grantila, @hghtwr, @HHogg, @hyb175, @Hypersight, @iamEAP, @jahller, @janogonzalez, @jescalada, @JessicaJHee, @jhaals, @jiteshy, @johnphilip283, @jroebu14, @kalleericson, @kevspl, @kunickiaj, @matdtr, @mtlewis, @nikolarAutodesk, @Nikunj0601, @NormanWenzelWSS, @Parsifal-M, @paulmowat, @Rugvip, @schultzp2020, @sebaparedero14, @secustor, @squid-ney, @stegosaurus21, @stephenglass, @tcardonne, @timbonicus, @Tirex, @tylerd-canva, @veenarm, @vinzscam, @virzen, @zeshanziya