Releases: backstage/backstage
v1.36.1
This release fixes the following issues:
- The default auditor service will now log low severity audit events with log level
debug
. - The default root logger service will now JSON-serialize meta fields in the non-production log format.
- The notification backend will no longer return
null
when listing topics, fixing a crash in the notifications frontend. - Increased content size limit for incoming webhooks in the events backend.
v1.36.0
These are the release notes for the v1.36.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: Support for native ESM in Node.js code
The tooling in the Backstage CLI now supports native ESM in Node.js code. A highlight of this is that you can now import ESM-only packages using a dynamic import(...)
from CommonJS code. This is a breaking change because dynamic imports were previously transformed to require()
calls. A quick fix is to replace any existing import(...)
calls with require(...) as typeof import(...)
.
Support for ESM has been implemented in a way that maximizes compatibility with both existing code and code that’s bundled for browser environments. It keeps the existing module resolution logic intact, but adds support for explicit imports of files with the .mts
and .cts
extensions as well as their JavaScript counterparts.
You can read more about the new ESM support in the build system documentation.
Welcome Canon
We have released the first version of Canon, a new UI Library designed for Backstage. Canon is based on Base UI from MUI and is built to provide a better base and allow for greater flexibility in theming, but to be more restrictive in the styling of individual components. Canon is still in an early stage of development and it should not yet be used by plugins other than for experimentation. If you want to know more and join the discussion, we encourage you to head over to the original RFC.
Contributed by @cdedreuille in #27843
New Auditor service
A new auditor service is now available to plugin authors for recording critical actions and events within Backstage. The auditor service has been integrated with catalog and scaffolder. Contributed by @schultzp2020 in #26372
yarn new
: bring your own template
The new
command is now powered by a new template system that allows you to define your own templates in a declarative way, as well as import existing templates from external sources. See the CLI templates documentation for more information on how to configure the templates used in your project and how to define your own.
As part of this change the template configuration is moving to the root package.json
, and we have therefore deprecated the following options for the new
command:
--license=<license>
: Configure the globallicense
instead.--no-private
: Configure the globalprivate
instead.--baseVersion=<version>
: Configure the globalversion
instead.--npmRegistry=<url>
: Configure the globalpublishRegistry
instead.--scope=<scope>
: Configure the globalnamePrefix
and/ornamePluginInfix
instead.
Some of the prompts for the built-in templates have also changed. The following backwards compatibility mappings for the --select
and --option
flags are enabled when using the default set of templates, but are marked as deprecated and will be removed in the future:
--select=plugin
is mapped to--select=frontend-plugin
--option=id=<id>
is mapped to--option=pluginId=<id>
Contributed by @minkimcello in #27934
Make it easier to pass custom rules
We improved how plugins integrate with the permission framework, by introducing a new PermissionRegistryService
as a replacement for the createPermissionIntegrationRouter
middleware. This can be used to add additional permissions, rules, and resource types without the need to introduce extension points.
As a result, the catalogPermissionExtensionPoint
has been deprecated in favour of the new PermissionsRegistryService
.
UrlReadersService
improvements
In all the URL readers the search
method has been updated to use the readUrl
if the given URL doesn’t contain a pattern. For UrlReader
s that didn't implement the search
method, readUrl
is now called internally and throws an error if the given URL doesn't contain a pattern.
As a result, the UrlReaderProcessor
accepts a new config flag catalog.useUrlReadersSearch
to always call the search
method of UrlReader
s. This flag currently defaults to false
, but adopters are encouraged to enable it as this behavior will be the default in a future release. Contributed by @tcardonne in #28379
Scaffolder GitHub autocompletion
We’ve added support for autocompletion for GitHub repositories and branches built into the RepoUrlPicker
and RepoBranchPicker
. This can be enabled by installing the @backstage/plugin-scaffolder-backend-module-github
and configuring the GitHub Auth Provider.
Contributed by @benjidotsh in #28706
Configurable session duration for Auth providers
Added auth.providers.<providerId>.sessionDuration
config for auth providers to allow the lifespan of user sessions to be configured. Contributed by @JessicaJHee in #27821
Experimental Graceful Shutdown for Scaffolder Workers
Introducing a new scaffolder.EXPERIMENTAL_gracefulShutdown
flag in app-config.yaml
will make the scaffolder block the shutdown process until all running tasks have completed. This is useful when there is a need to ensure that all tasks have completed before the scaffolder is shut down.
Please give this a try and let us know if it works for you!
Contributed by @drodil in #28705
New Kubernetes permissions
Added kubernetesResourcesReadPermission
and kubernetesClustersReadPermission
to the kubernetes plugins. Use these permissions to restrict access to kubernetes clusters and resources.
Contributed by @dzemanov in #27499
Security Fixes
This release does not contain any security fixes.
A huge thank you to all 65 of you amazing people who contributed to making this release happen! 🙏 @acierto, @AdityaK60, @alexlorenzi, @AmbrishRamachandiran, @andrcatros, @angeliski, @aramissennyeydd, @awanlin, @benjdlambert, @benjidotsh, @cdedreuille, @clanghout, @deejay1, @deepthi-28, @derbauer97, @drodil, @dzemanov, @esw-afabiano, @fabiojvalente, @felipecafu95, @fengypants, @freben, @freeyoungstrong, @garciawell, @gavinclarkeuk, @gusega, @hghtwr, @HHogg, @iamEAP, @jenil-harness, @JessicaJHee, @jmadureira, @jmezach, @johnphilip283, @Jonas-Beck, @JounQin, @Karthigaiselvan, @kuangp, @laimis9133, @lennprog, @madsteer, @mareklibra, @mbenson, @miaits, @MihaiTabara, @minkimcello, @mpsanchis, @nikolarAutodesk, @Parsifal-M, @Pike, @razbensimon, @Rugvip, @Sarabadu, @schultzp2020, @sebalaini, @stephenglass, @swnia, @szubster, @tcardonne, @TheSabby, @timbonicus, @tjuedema, @vinzscam, @vrabbi, @yu-kkurii
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.
- Backstage official website, documentation, and getting started guide
- GitHub repository
- Backstage's versioning and support policy
- Community Discord for discussions and support
- Changelog
- Backstage Demos, Blog, Roadmap and Plugins
Sign up for our newsletter if you want to be informed about what is happening in the world of Backstage.
v1.36.0-next.3
See docs/releases/v1.36.0-next.3-changelog.md for more information.
v1.36.0-next.2
See docs/releases/v1.36.0-next.2-changelog.md for more information.
v1.35.1
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
See docs/releases/v1.36.0-next.1-changelog.md for more information.
v1.36.0-next.0
See docs/releases/v1.36.0-next.0-changelog.md for more information.
v1.35.0
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.
- Backstage official website, documentation, and getting started guide
- GitHub repository
- Backstage's versioning and support policy
- Community Discord for discussions and support
- Changelog
- Backstage Demos, Blog, Roadmap and Plugins
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
See docs/releases/v1.35.0-next.2-changelog.md for more information.
v1.35.0-next.1
See docs/releases/v1.35.0-next.1-changelog.md for more information.