platformchangelog.dev
43 tools
feedrelease

Backstage v1.56.0

++++++++++++++++++

Backstage v1.56.0 ships 53 changes, including a new AppLifecycleApi for checking app finalization and subscribing to lifecycle changes, and a fix so useRouteRef resolves routes after finalization. Other changes cover catalog fixes, a Cloud SQL retry for transient connection failures, an AWS RDS IAM token expiry fix, a Bitbucket Cloud bearer token option, and a Gitea default-branch fix. The release also moves @backstage/catalog-model to zod version 4, which requires adding zod to packages that use it without declaring it.

What changes for platform teams

Teams running Backstage should check custom packages that import zod without declaring it, since catalog-model now uses zod 4. Plugin authors gain AppLifecycleApi to gate rendering on app finalization.

Changes

  • Added AppLifecycleApi, which lets you check whether the app has been finalized and subscribe to changes in its lifecycle. useRouteRef now resolves routes again after finalization, so elements rendered before it, such as app/root.elements extensions, can link to pages. Contributed by @benjidotsh in #36008.added
  • The permission check for extension if predicates during app startup now retries network failures and 5xx responses for up to about 15 seconds, instead of failing the whole app.added
  • Improved link resolution performance in the new frontend system by reusing route matches for recently visited locations.added
  • The catalog graph and catalog import pages in the new frontend system now use the page header provided by the app. Contributed by @denesbeck in #36067 and #36068.added
  • Fixed the catalog entity list rewriting the URL on every render, which crashed Safari with a SecurityError. Contributed by @greym0uth in #34942.added
  • The BUI entity header now shows entity titles in hierarchy links. Contributed by @ErikMinekus in #34958.added
  • StreamEntities no longer asks the catalog backend to compute the total number of matching items, and its totalItems option is deprecated.added
  • Fixed catalog processing error messages to report stable processor names in minified builds. Contributed by @vinzscam in #35760.added
  • Fixed the Gitea entity provider registering locations against a hardcoded main branch instead of each repository's default branch. Contributed by @karthikchundi-commits in #35314.added
  • @backstage/catalog-model now uses version 4 of zod. If your own packages use zod without declaring it as a dependency, make sure to add it to their package.json.added
  • Config schemas now compile in roughly half the time, which speeds up backend startup.added
  • Reading a number from an empty or whitespace-only config value now fails with a clear error instead of returning 0. Contributed by @suletetes in #35773.added
41 more lines
  • Added a backend.logger.redactAllowlist configuration option that lets specific secret values pass through log redaction. Contributed by @tcardonne in #35288.added
  • Added bounded retries for transient Cloud SQL connection failures, and fixed AWS RDS IAM authentication tokens being reused after their signing credentials expire. Contributed by @hudsonb in #35863 and #35979.added
  • Added a service-authenticated action registry status endpoint that reports whether a plugin provides actions. Contributed by @jabrks in #35862.added
  • Fixed serializeError to strip stack traces from all nested error causes. Contributed by @suletetes in #35777.added
  • Improved database event cleanup in the events backend under large backlogs.added
  • Hardened return URL validation in the OAuth redirect flow.added
  • Google IAP public verification keys are now cached according to their cache headers. Contributed by @JbravoI in #35833.added
  • The auth.providers.guest configuration is now visible to frontend plugins. Contributed by @JessicaJHee in #35766.added
  • The selected sign-in provider is no longer cleared when a sign-in loader is cancelled. Contributed by @JessicaJHee in #36082.added
  • Fixed protected app sign-in returning a 404 when the sign-in handoff is repeated. Contributed by @hudsonb in #35583.added
  • Added a defaultCloseDelayMs option to SubmenuOptions. Contributed by @benjidotsh in #33896.added
  • Fixed long words in toast notifications overlapping the close button. Contributed by @carlerikjohan in #36140.added
  • Migrated the DevTools InfoContent component to Backstage UI. Contributed by @alien2003 in #34078.added
  • Azure DevOps repository files now resolve to an edit URL. Contributed by @JbravoI in #35813.added
  • Fixed Azure DevOps downloads to use the requested branch or tag. Contributed by @jroebu14 in #36164.added
  • Bitbucket Cloud OAuth tokens are now cached per set of client credentials. Contributed by @suletetes in #35775.added
  • Added Bitbucket Cloud support for bearer API tokens. Contributed by @sbaramov in #35568.added
  • Fixed importing @backstage/integration from ESM projects.added
  • Publish:gitlab now throws a clear ConflictError when the target repository already exists. Contributed by @kai-hkihara in #34494.added
  • Fixed a regression where scaffolder step values consisting of a single template statement block, such as if conditions, were rendered as strings instead of booleans. Contributed by @beatleboy501 in #36178.added
  • Notification payload metadata is now persisted and returned when reading notifications. Contributed by @noy-solvin in #34669.added
  • Updated nodemailer to version 10 in the email notifications module.added
  • Fixed Elasticsearch search queries intermittently failing when a collator finishes indexing. The previous index is now retained until the next indexing run, roughly doubling storage per document type. Contributed by @nandni-g in #36149.added
  • Fixed PostgreSQL search highlighting with delimiters that need quoting.added
  • Fixed TechDocs asset caching on reused HTTP connections.added
  • Fixed TechDocs rejecting mkdocs.yml files that use Material for MkDocs emoji and superfences configuration, and removed custom_icons paths that resolve outside the docs directory. Contributed by @GabDug in #35364.added
  • Declared the per-cluster assumeRole and externalId options in the Kubernetes backend configuration schema. Contributed by @meganide in #35977.added
  • The actions list CLI command now returns partial results when some plugin sources fail. Contributed by @yangcao77 in #34771.added
  • CLIs created with runCli now show help when a command group is invoked without a subcommand, and wait for output to be flushed before exiting. Contributed by @iamEAP in #35940.added
  • Added a --fix mode to backstage-cli pm verify-patches.added
  • The ESLint configuration for common-library packages now reports named imports from lodash, which break ESM builds.added
  • Fixed the no-mixed-plugin-imports lint rule silently reporting nothing in repositories checked out below a dot directory.added
  • Several packages now work with strict node_modules layouts. Contributed by @sebdanielsson in #36208.added
  • Improved code splitting for frontend module federation remotes.added
  • Fixed root setupFilesAfterEnv Jest configuration being shared between workspace packages, and fixed CommonJS frontend tests with ESM dependencies on Node.js 24.added
  • Report checks in @backstage/repo-tools now show a diff when a report is out of date.added
  • Updated the plugin-web-library template to use @backstage/ui. Contributed by @gaelgoth in #34633.added
  • Fixed the Home page path override in the create-app template. Contributed by @Sriram-Nambiar in #36057.added
  • @backstage/cli-module-catalog: catalog list, catalog get, catalog validate, catalog register, catalog unregisterother
  • @backstage/cli-module-scaffolder: template list, template execute, template dry-runother
  • @backstage/cli-module-search: search, docs searchother
53 lines50 added3 othertyped from the source notes

Full release notes ↗ · all Backstage releases

written by claude-haiku-5-5, prompt 7cbe154, checked by publish rules

Report a mistake

context

Tools

Backstage

Other Backstage releases

How this was written

The change list is the project's own release notes, sorted into change types by fixed rules. The summary was written from the original by the model named above, checked by fixed publishing rules, and read by an editor after publication. See the methodology.

Back to the feed