Roadie’s Blog

Backstage Weekly 80 - Automatic orphaned cleanup, Scaffolder permissions

By Jorge LainfiestaApril 24th, 2023

Hi y’all! While some of us were having a fantastic time in KubeCon Amsterdam, one of the most impressive releases of Backstage was dropped. Let’s recap what’s new:

  • New: built-in support for deletion of orphaned entities
  • New: Scaffolder permissions and filters
  • Heads-up: 3 breaking changes
  • Recap: KubeCon + CloudNative Amsterdam

Automated orphaned entity cleanup in the catalog

Entities typically become orphaned when their corresponding repository was moved, deleted, or renamed (there are other cases for orphaning). In the latest Backstage release, 1.13, you’ll find a new, optional catalog.orphanStrategy app-config parameter. The parameter can be defined as 'keep' (default) or 'delete'. Keep means nothing changes in the way orphan entities are managed, while delete will attempt to clean out orphaned entities automatically.

To learn more, check out the feature release notes.


Using managed Backstage lets you focus on building value for your team instead of learning internals and upgrading your instance. Get a Roadie Backstage demo


Finer permissions for the Scaffolder

The permissions framework can let you set which templates users with a specific role can see in the frontend, but it doesn’t have any finer controls than that. Thanks to vinzscam and HHogg, you’ll be able to add a backstage:permissions key to your template steps to control who can see them. This will allow admins managing different levels of permissions to specify more specifically how the templates are used.

To help you learn how to use the new permissions, a PR with comprehensive docs is about to land. For further details into understanding the reasoning behind the chosen API, check out the PRFC.

Nunjucks filters for the Scaffolder

Another new feature in the Scaffolder is the ability to define filters to extract a value from a property in a template. For example, you can now define things like:

${{ parameters.entity | parseEntityRef | pick('name') }}

Which lets you get an entity ref from a parameter, parse it, and pick the name attribute from the object in a single line. The PR also fixes a bug that I covered last week.

You can get started with filters as soon as you’ve upgraded to 1.13, for additional context check out the PR.

Amsterdam: A week immersed in the Cloud native world

By far, KubeCon + Cloud Native Conf EU 2023 has been the most impressive since the re-start of the conference series after the p*ndemic. With 10 thousand people in attendance and fascinating talks, not being able to enter the room—even if you arrived 10 mins earlier—became commonplace. IMG 0875

There were five talks dedicated to Backstage and several others referencing the framework. It’s safe to say it was in everyone’s mouth as people explored its role in Platform Engineering and Developer Experience.

Check out my vibe report of the conference for more pics!

Heads-up: Breaking changes in 1.13

The Backstage 1.13 release has so many features, but they come with—hopefully small—breaking changes.

  • First, the Tabs component was removed from @backstage/core-components
  • Next, the GitlabDiscoveryEntityProvider changed the way it handles branches.
  • Finally, the Kubernetes plugin backend is getting a revamp and therefore requires a few changes in its APIs.

For more information on each of these changes, please review the 1.13 Release Notes (you’ll also learn more of the great stuff packed in this release).

Become a Backstage expert

To get the latest news, deep dives into Backstage features, and a roundup of recent open-source action, sign up for Roadie's Backstage Weekly. See recent editions.

We will never sell or share your email address.