Migrating from Red Hat Developer Hub to self-hosted Backstage

A practical plan for moving from Red Hat Developer Hub to an upstream Backstage app you build and run, covering what ports cleanly, what needs rework and what support you give up.

On this page

Migrating from Red Hat Developer Hub to self-hosted Backstage: what the move involves

If your team runs Red Hat Developer Hub (RHDH) and wants an upstream Backstage app that you build, run and patch yourselves, the catalog and software templates usually move with modest work, while plugins, role-based access control (RBAC) and vendor support are where most of the effort and risk sit. Both projects are licensed under Apache-2.0, so no license change is needed to make the move. What changes is who builds the application, who operates it and who answers when something breaks. Before committing, ask your team to inventory every RHDH plugin and RBAC policy in use, because that inventory, not the catalog, will set the duration of the project.

The catalog is largely portable because it is made of descriptor files (catalog-info.yaml) kept in source control, and your new Backstage instance can read the same files from the same repositories. Templates are also usually portable if they use built-in actions. Check each template for actions that come from Red Hat-specific or RHDH-only plugins, since those must be replaced or compiled into your app. Confirm which RHDH release your current instance runs (the Red Hat Developer Hub 1.10 documentation is the latest documented line at the time of writing) so you can match plugin behavior against the upstream release you choose.

Plugins are the main decision. RHDH ships plugins such as Argo CD, Quay, Kubernetes, Tekton, Keycloak and GitHub Actions, and some of these can be loaded as dynamic plugins in the RHDH packaging. Upstream Backstage uses compiled plugins that you add to your own code, install through the Backstage CLI and rebuild with each release. Your team takes on dependency updates, security fixes and version compatibility for every plugin, and the Backstage Upgrade Helper guidance and yarn backstage-cli versions:bump become routine work. RBAC also needs a replacement: the permission framework and any RHDH RBAC policies must be rewritten as your own authorization rules and tested against real users. Finally, you give up Red Hat's commercial support, so plan your own on-call, patch cadence and vulnerability response before cutover.

Which Developer Hub capabilities map cleanly to upstream Backstage

This table compares the main Developer Hub capabilities with their upstream Backstage equivalents and marks each as a direct match, a rebuild or replacement task, or an item to confirm against your Developer Hub configuration. Read the status column first, because a shared name does not mean identical behavior or configuration.

CapabilityUpstream BackstageMigration status and what to check
Software catalog and descriptorsBuilt-in Software Catalog with the same entity model and YAML descriptorsDirect. Export your catalog locations and confirm each entity kind and annotation still resolves after the move.
Software templatesBuilt-in Software Templates with the scaffolderDirect for template YAML. Confirm any custom actions or Red Hat-supplied actions are present in your upstream app or rebuilt.
TechDocsBuilt-in TechDocsDirect in concept. Confirm your documentation build and publisher settings, since storage and build configuration are set by you upstream.
Kubernetes and searchKubernetes and search plugins in the upstream repositoryDirect for the plugins. Confirm cluster access, search engine choice and indexing settings against your current Developer Hub configuration.
Argo CD, Quay, Tekton and TopologyCommunity plugins from the Backstage ecosystem, installed as packagesNeeds a different plugin or a rebuild. Confirm each plugin version against your Backstage release and check its maintenance status.
Keycloak, GitHub Actions, Issues and Pull RequestsKeycloak and GitHub plugins from the community, or the built-in GitHub and OIDC providersNeeds a different plugin or provider setup. Confirm sign-in resolvers map identities to the same catalog users.
Red Hat-built and certified pluginsNo upstream equivalent is guaranteedConfirm on your Developer Hub configuration which plugins you use. Any Red Hat-supplied plugin without a community match needs a build plan.
Dynamic pluginsUpstream apps compile plugins into the build; there is no equivalent runtime loader in the default appNeeds a rebuild. Plan a compiled plugin per plugin you run, and a rebuild and redeploy on each upgrade.
Operator and Helm deploymentNo Operator is supplied upstream; you own the Helm chart or manifestsNeeds a rebuild. Your team owns the container image, deployment, database and cache configuration.
RBACPermission framework configured in your own app, not the Developer Hub RBAC settingsNeeds replacement. Confirm the policies you use in Developer Hub and re-express each role in the upstream permission framework.

Why catalog descriptors and software templates usually carry over

Catalog descriptors and software template YAML are Backstage formats, not Red Hat Developer Hub formats, so most of them can be reused in a self-built upstream app. A catalog-info.yaml file describes entities such as components, systems and APIs, and a template file describes the parameters and steps a scaffolder run performs. Both are read by the Backstage Software Catalog and Software Templates features, which are core to the upstream framework. The condition is that the entity kinds used in your descriptors and the template actions called in your templates exist in the build you assemble. Confirm that against your own files rather than assuming it, because the portable part is the file format and the behavior depends on what your app installs.

Run three checks before you move any file. First, list every action each template calls, including those inside steps such as fetch and publish actions, and confirm each one is registered in your new app. Second, list every catalog location and entity provider declared in the Developer Hub configuration, and re-declare each one under the catalog section of your own app-config.yaml, since locations do not move automatically. Third, search templates for Developer Hub-specific actions, which are not part of the upstream set and need a replacement, such as a custom action you write or an upstream action that does the same job. Record the result for each template so the review is repeatable. Confirm the exact action names and plugin packages against the upstream documentation for the version you deploy.

Dynamic plugins versus compiled plugins in the new app

Developer Hub is designed so that plugins can be enabled in the deployment configuration and loaded from packaged artifacts, without compiling them into a new application image. Teams that run this model manage the enabled plugin list as configuration, and a plugin change does not require rebuilding the portal image. Confirm the packaging format, artifact registry location and configuration keys against the documentation for the exact Developer Hub version you run, because these details change between releases. See the Red Hat Developer Hub 1.10 documentation for the version it covers.

  • Build pipeline: Plugin artifacts are built and published separately, and the portal image stays the same when a plugin changes.
  • Upgrade coupling: Each plugin must match the Developer Hub version it loads into, so every platform upgrade still requires checking each enabled plugin.
  • Plugin ownership: Plugins supported by Red Hat carry vendor support terms, while community plugins remain your team's responsibility to test, pin and patch.
  • Configuration control: The enabled plugin list lives in deployment configuration, so it needs the same review and change control as application code.

Before you migrate, list the plugins you enable today, mark which ones come from Red Hat, and confirm that each has an artifact for your target version.

Sequence for inventory, pilot, parallel run and cutover

This sequence moves users from Red Hat Developer Hub to a self-built upstream Backstage app in controlled stages, with a documented rollback point before sign-in and DNS change. Each phase ends with a written check that the next phase can begin.

  1. Inventory plugins, auth, RBAC and catalog sources

    The platform team lists every dynamic plugin, compiled plugin, sign-in provider, sign-in resolver, RBAC policy and catalog location currently used in Developer Hub, including the Helm values or Operator resources that set them. Each item is marked as portable, needs rebuilding as a compiled plugin, or is covered by a Red Hat plugin you will not carry over. Owners of the inventory confirm the list against the running cluster. Done when the inventory has a disposition for every item and the team has noted which items depend on Red Hat-specific packaging.

  2. Build the pilot upstream app

    Engineers create an upstream Backstage app from the project's own tooling, add the plugins chosen in the inventory, and point it at a copy of the Developer Hub catalog locations. The pilot uses the same identity provider as production, with sign-in resolvers set so each provider resolves to the same catalog identity, and guest access turned off. The pilot runs in a non-production namespace with its own PostgreSQL database. Done when the pilot starts, loads the copied catalog without unresolved entities, and a test user signs in through the production identity provider.

  3. Validate templates and RBAC in the pilot

    The team runs each software template in the pilot against a test repository and confirms the scaffolder actions and outputs match what Developer Hub produced. RBAC rules are rewritten for the permission framework used by the upstream app, and a tester from each team checks that they see the same catalog entries and template actions they had before. Gaps are logged as blocking or accepted. Done when every template completes a test run and every RBAC gap has a named owner and a decision.

  4. Run both portals in parallel

    Developer Hub stays live with its full write access while the upstream app is opened to a limited group of users. Developer Hub is switched to read-only reference for everyone else, so new catalog changes and template runs are made in one place only. The team records catalog drift, sign-in failures and missing plugin behavior in a shared log. Done when the log shows no open blocking issues for a full review cycle agreed in advance by the platform owner and security lead.

  5. Cut over sign-in and DNS

    The team switches the public hostname and the identity provider redirect URIs to the upstream app, then moves the catalog and template write path to it. Developer Hub remains deployed and its database is kept intact so that DNS and redirect settings can be reverted. This is the rollback point: until the old redirect URIs are removed, reverting the DNS record and redirect configuration returns users to Developer Hub. Done when a smoke test of sign-in, catalog search, template execution and TechDocs passes on the production hostname.

  6. Decommission Developer Hub and its database

    After the cutover has held through the agreed observation period, the team removes the Developer Hub deployment, its Operator or Helm release, and its database and cache resources. Backups of the Developer Hub database and configuration are retained under the organization's retention policy, and the team confirms the retention period with its compliance owner. Done when no Developer Hub workloads, routes or secrets remain in the cluster, and the decommission record lists where each backup is stored.

Replacing Developer Hub RBAC with an authorization model you own

Developer Hub's role-based access control does not carry over as a file you can copy. Your upstream app needs its own permission policy, identity resolution and test suite before any team loses or gains access. The cards below cover the parallel pieces you need to rebuild and verify.

Export current role assignments

Start by listing every role, group binding and permission each user and team holds in your Developer Hub instance. Record who can read, edit, create and delete catalog entities, run templates and see plugin pages. Confirm with Red Hat's Developer Hub 1.10 documentation how RBAC is configured and whether any export method exists in your version, rather than assuming a direct import path. Treat the export as a source document for design, not a config file you can apply upstream.

Map roles to a permission policy

Translate each Developer Hub role into a permission policy you implement in the upstream Backstage app, using the permission framework's authorization rules. Group permissions by intent, such as catalog reads, template execution and plugin access, so the policy stays readable after the next upgrade. Confirm the current permission framework APIs and configuration options in the official Backstage documentation before writing any rule. Remove roles that no longer match how teams work instead of copying them one for one.

Resolve each provider to one identity

Each sign-in provider must resolve to the same catalog user so that one person has one set of permissions, whether they arrive through GitHub, Azure or OIDC. Write sign-in resolvers that match on a stable claim, and decide how to handle a user who appears under two providers. Check the Backstage authentication documentation for the resolver guidance before you map any identity. Test with an account from each provider and confirm the resulting user entity is the same.

Disable guest access in production

Guest sign-in is convenient in a development instance but gives anonymous or shared access that your policy cannot attribute to a person. Confirm that guest access is off in your production configuration and that no fallback path lets an unauthenticated caller reach catalog or template pages. Review any proxy or sign-in route that might bypass your resolver. Record the change so auditors can see that production access requires a named identity.

Test decisions before cutover

Build a test matrix of users, groups and actions drawn from the exported assignments, then run each case against the new policy and against the Developer Hub baseline. Each difference should be explained, either as an intended tightening or as a bug to fix before go-live. Keep the matrix in version control so it runs again after every Backstage upgrade. Ask your delivery partner to show how the matrix covers denied actions as well as allowed ones.

Documented import paths and what each one actually moves

Can catalog entities from Red Hat Developer Hub move to upstream Backstage?

Yes, but the move is a re-registration, not an export. Catalog entities are defined in descriptor files, usually catalog-info.yaml, stored in each source control repository. An upstream Backstage app reads those files once you register the repositories as catalog locations in its configuration. The entity records in the Developer Hub database are not carried across, so anything created only through the portal UI, or stored by a plugin in its own database, must be recreated from source. Check the current catalog documentation for the descriptor schema, the location configuration keys and the annotations your teams rely on. Confirm that the upstream version you choose reads the same kinds and annotations, then compare the ingested entity count against your old portal before you cut over.

Do software templates need to be rewritten for upstream Backstage?

Usually they do not need a rewrite, but they do need to be re-pointed and tested. Software templates are Template entities defined in YAML, with steps that call scaffolder actions and live in template repositories. Register those repository locations in the new app, and the templates appear once the catalog ingests them. Steps that use actions built into the Backstage scaffolder carry over. Any custom action, or any action supplied by a plugin that is not installed upstream, must exist in the new app before the template runs. Inventory every action each template calls, then run each template end to end in a staging app. A missing action usually fails at run time, not at registration, so registration alone does not prove the template works.

How are TechDocs sources moved to a new Backstage instance?

TechDocs sites are rebuilt and published from source, and the portal's existing generated output is not a documented input for a new install. Documentation lives as Markdown in the repositories that own each component, with an MkDocs configuration file. The new app needs a TechDocs builder and a publisher that writes the generated sites to storage the app can read. Each component's catalog entry needs an annotation that points to its docs. Ask your team whether builds will run in CI or inside the portal, because that choice determines how storage credentials are managed. Treat the old storage bucket as something to verify, not a path to copy from. Confirm the builder, publisher and annotation options in the TechDocs documentation for your target version before you start.

Can the Backstage Upgrade Helper plan a Developer Hub migration?

It helps with version changes between Backstage releases, but it is not a migration tool between distributions. The Backstage Upgrade Helper shows the template changes between two Backstage versions, so your team can see what to edit in an app it already owns. It does not map Developer Hub configuration, plugins or data into a new app. Use it after you have a working upstream app to confirm that the version you choose matches the core packages you expect. Upgrades move all @backstage packages together with yarn backstage-cli versions:bump, and the release line you follow determines how often you take them. Verify the release line, supported Node.js versions and each upgrade step in the keeping Backstage updated guide before you rely on any version number.

Is there a documented importer for Developer Hub RBAC permissions?

No documented importer converts Red Hat Developer Hub RBAC policy into upstream Backstage permissions, so plan to recreate it. Roles and policies must be rewritten for the permission framework you configure in the new app. Export your current role assignments group by group, then map each one to the permissions you will enforce, and keep that mapping in version control so reviewers can read it. Identity matters as much as the policy. Sign-in resolvers must map each provider's identity to the same catalog user, or group-based rules have nothing to match. Grant access by group, not by individual account, where your identity provider allows it. Confirm the permission framework behavior, the policy format and the group handling in the authentication documentation and the permissions documentation for your version.

Can installed plugins and their state be exported from Developer Hub?

No documented export carries installed plugin state across, so you need to inventory and reinstall. Developer Hub loads dynamic plugins from packaged artifacts that its deployment configuration enables. Upstream Backstage plugins are normally compiled into your app through package dependencies and code wiring. These are different packaging models, so a dynamic plugin package is not a drop-in for a compiled plugin. List every enabled plugin in your Helm values or operator configuration, with its version and config keys. For each one, decide whether an upstream equivalent exists and whether it needs a backend, a frontend or both. Plugin-owned databases and secrets do not move automatically. Confirm each plugin's installation method in the Red Hat Developer Hub 1.10 documentation and in the upstream plugin's own README.

Can Developer Hub app configuration be reused in an upstream app?

Treat the configuration as a reference to rewrite, not a file to load unchanged. Developer Hub settings arrive through app configuration and deployment values, and many keys reflect its packaging. Upstream Backstage reads its own app-config files, and keys for the catalog, integrations, authentication and TechDocs must be checked against the version you deploy. Start from a fresh upstream configuration and copy only the values you can explain, such as integration hosts and organization names. Move credentials through your secret management system, never into config files. Keep the old Helm values or operator resource as a reference until the cutover is verified. Confirm each key in the configuration reference for your target version, because upstream keys change between releases.

What drives effort and duration in this move

This table compares the factors that change how much work moving from Red Hat Developer Hub to self-hosted Backstage will take. Read each row as a question to answer in your own environment before asking for a quote. The main takeaway is that plugin mix and authentication changes usually matter more than the size of the catalog.

DriverWhat raises effortWhat lowers effort
Installed pluginsMany Red Hat or community plugins that must be found, rebuilt or replaced in an upstream appA short list of plugins already available upstream with matching versions
Dynamic versus compiled pluginsDynamic plugins packaged for RHDH that need to be rebuilt as compiled packages in your appPlugins you can rebuild from source with a clear upstream version and few custom patches
RBAC rule volumePermission policies written in RHDH's model that must be re-expressed in your own authorization pluginA small, documented set of roles that maps directly to your teams
Identity provider changesMoving to a different sign-in provider or resolver, which changes how users map to catalog entitiesKeeping the same identity provider and resolver logic so user references stay stable
Template count and custom actionsMany templates relying on custom scaffolder actions that depend on RHDH-specific packagesTemplates using only core actions, with custom actions already in your own repository
Catalog size and ownership qualityEntities without owners, duplicate records or descriptors spread across many repositoriesDescriptors already validated in source control with a named owner for each system
TechDocs volumeLarge documentation sets, custom MkDocs plugins or a storage backend you must set upDocs built in CI from the same repositories with a storage location already agreed
Deployment targetOpenShift, AKS or EKS with different ingress, secrets and storage conventions to rebuildA target cluster where your team already runs container workloads and manages secrets
Database and cache layersRe-creating high availability for PostgreSQL and a cache that RHDH's Helm or Operator setup managed for youExisting managed PostgreSQL and a cache service your platform team already operates

What usually goes wrong when Developer Hub users move to upstream Backstage

Moving from Red Hat Developer Hub to an upstream Backstage app shifts packaging, access control, identity mapping, support and upgrades onto your team. The risks below tend to surface during cutover, and each one has a check you can run before users see the new portal.

Plugins that assumed Developer Hub packaging

Some plugins you ran in Developer Hub were installed as dynamic plugins from packaged artifacts, with configuration written for that layout. In upstream Backstage you typically add packages to your app and compile them in, so the plugin wiring, config keys and backend registration change. Inventory every plugin before cutover and confirm for each one whether it is a compiled package you can add to your app, and which of its config keys still apply.

RBAC gaps that open access during cutover

Developer Hub's role-based access controls do not carry over automatically. If you stand up an upstream app without an authorization policy, permissions can default wider than your Developer Hub setup, or catalog and template actions may be unrestricted for a period. Write and test the permission policy before any user signs in, covering catalog reads, template execution and any action that writes to source control.

Sign-in resolvers creating duplicate identities

A user who signed in through one provider in Developer Hub may appear as a second, separate user when your upstream app resolves identities differently. Duplicate user entities split ownership and break team membership lookups. Backstage guidance is to configure sign-in resolvers so every provider resolves to the same identity and to avoid guest access in production. Test each sign-in path against a copy of your user directory and confirm that one person maps to one catalog user.

Lost vendor support for configuration and incidents

Red Hat's subscription covers Developer Hub, including its installation and supported configurations. Once you run the upstream project, the support path is your own team, the community and any partner you contract separately. Configuration questions, failed upgrades and sign-in outages then need an internal owner and a runbook. Name an on-call owner and document escalation paths before you retire the supported installation.

Node.js outside the supported pair

Backstage supports exactly two adjacent even-numbered Node.js releases, which the versioning policy lists as Node.js 22 and 24 for Backstage 1.46.0. Base images or hosts that run another Node.js version may build the app but fail in ways that are hard to trace. Pin the Node.js version in your build image and CI to one of the supported pair, and recheck it at each Backstage upgrade.

Upgrade drift from the monthly release line

Upstream Backstage ships a main release line monthly and a next line weekly. Without a set cadence, your app can fall behind, and each skipped release makes the next catch-up larger. Security backports cover recent releases only, so a stale app may miss fixes. Schedule a recurring upgrade window using the version bump command and the Upgrade Helper, and track the version your app runs against the latest release.

The support you give up, and what replaces it

When you move from Red Hat Developer Hub to an upstream Backstage app, the patch cadence, security backports and lifecycle management become your responsibility. Red Hat ships a tested distribution, along with Operator and Helm chart lifecycle handling for OpenShift, Azure Kubernetes Service and Amazon Elastic Kubernetes Service. Upstream, you take on that work yourself. The Backstage versioning policy sets a main release line shipped monthly and a next line shipped weekly, so your team must decide which line to follow and how quickly to absorb each release. The policy also says high and critical severity vulnerabilities will be backported to releases from the last 6 months where feasible, and other security fixes may be backported. Those backports arrive as upstream releases, so someone must watch for them and apply them to your build.

Runtime support is the second gap. The versioning policy supports exactly two adjacent even-numbered Node.js releases, which the policy lists as Node.js 22 and 24 for Backstage 1.46.0. Confirm which Node.js releases your target Backstage version supports before you pin a base image, and schedule a test of each Node.js change against your custom plugins. Enterprise plugin support also changes hands. Red Hat-built and hand-picked plugins such as Argo CD, Quay, Tekton and Keycloak arrive tested in the distribution, so you must either rebuild those integrations or confirm their upstream maintenance status. Ask Red Hat which plugins fall under your subscription and which are community projects you will maintain.

Replace this coverage with an internal runbook, a support retainer, or both. The runbook should name the owner of each upgrade, the monthly and weekly release checks, the security advisory watch, the Node.js support matrix and the rollback procedure for each deployment method you run. A retainer from DeployOpen covers ongoing upgrades, patching and continuous testing under written terms, and the scope, response expectations and fees are set in that agreement rather than in this page. Before you decide, ask your current Red Hat account team what your subscription covers, then compare that list against your runbook draft so no gap is left unowned.

Questions teams ask before moving off Developer Hub

What does it cost to move from Red Hat Developer Hub to self-hosted Backstage?

The cost is mostly people time, plus the infrastructure you run yourself. No Backstage fee applies because Backstage is licensed under Apache-2.0 and has no paid edition from the project itself. The main cost drivers are the number of plugins you rely on that are shipped in RHDH, how many of them you must compile into your own app, the size of your catalog and template library, and how many identity providers you connect. Your subscription to Red Hat Developer Hub may end or change, so check its terms with Red Hat. Ask any partner for a quote that separates one-time build work (app setup, plugin porting, RBAC design, data migration) from recurring work (upgrades, patching, on-call support, plugin maintenance).

How long does a Developer Hub to Backstage migration take?

The timeline depends on how many plugins you must replace, how much of your RBAC policy you need to rebuild, and how many teams depend on the portal. Plugins that Red Hat ships for RHDH, such as Argo CD, Kubernetes, Tekton, Keycloak and GitHub integrations, exist as community or upstream packages, but each one needs to be installed, configured and tested in your own app. Identity work often sets the pace, since sign-in resolvers must map every provider to the same identity. Start by listing the plugins and dynamic plugin configuration you use today, then ask for a written schedule that ties each phase to a parallel-run or cutover checkpoint.

What must our team provide during a Backstage migration?

Three groups of people are needed from your side. Identity administrators must confirm the identity providers, group sync, and the sign-in resolver logic, and they must agree that guest access will not be used in production. Plugin owners must confirm which plugins the portal needs, the versions they rely on, and the credentials and endpoints each one uses. Catalog owners must review the entities that move across, confirm ownership, and clean up records that have no owner. Your team also needs an agreed place to host the app and a named person who will run upgrades after handover.

Can our own platform team migrate from Developer Hub to Backstage without a partner?

Yes, if your team already runs Kubernetes, a PostgreSQL database and an identity provider, and has someone comfortable with TypeScript and the Backstage CLI. The upstream project publishes an upgrade helper and a release policy, so the work is documented. The harder parts are the ones that are specific to your organization: rewriting RBAC rules, porting any RHDH-specific plugin configuration, and building a support rota. Many teams split the work, keeping the infrastructure and day-to-day operations in-house while bringing in outside help for plugin porting and the identity cutover. Ask a partner to explain which parts they would hand back to you.

Do our software catalog and templates move to upstream Backstage without rewriting?

Most catalog descriptors (catalog-info.yaml files) and entity definitions can be reused because they follow the open Backstage descriptor format. Software templates use the same scaffolder model, so templates can usually move with them. Expect rework where templates call actions or plugins that only exist in RHDH, where they reference Red Hat-specific pipelines or OpenShift resources, or where custom actions were compiled into the RHDH image. Check your template library for those dependencies first. The catalog and templates should be validated in a staging instance before any production switch, and each entity's owner should confirm the result.

What support do we give up when we move from Developer Hub to upstream Backstage?

Moving to upstream Backstage removes the vendor support contract that comes with Red Hat Developer Hub. You will no longer have Red Hat as the first point of contact for product defects, supported plugin builds, or the documented installation paths on OpenShift, Azure Kubernetes Service and Amazon Elastic Kubernetes Service. Upstream fixes arrive through the Backstage release lines, and the versioning policy says high and critical vulnerabilities are backported to releases from the last six months where feasible. Your own team, or a partner under a retainer, must then cover security response, upgrades, and incident handling. Confirm with Red Hat what your current subscription includes and what it ends.

Should we use dynamic plugins or compiled plugins after leaving Developer Hub?

Dynamic plugins are loaded from configuration at runtime, while compiled plugins are built into your app. RHDH uses dynamic plugins heavily, so teams often assume the same model applies in upstream Backstage, which is not automatic. Compiled plugins are the default approach for a self-built app, and they make upgrades and testing more predictable because the whole app is versioned and built together. Dynamic loading can reduce image rebuilds, but it adds a plugin packaging step and more things to verify. Decide this per plugin, and keep a register of which ones your team has to rebuild on each upgrade.

How do we replace Developer Hub RBAC after moving to Backstage?

Backstage does not carry your RHDH role configuration across as-is, so you need to rebuild authorization on the upstream authorization model. Start by listing every role, group and permission your RHDH deployment grants, then map each one to a permission policy in your own Backstage app. Test the policies with real user accounts from each team before cutover, including denied actions. Authorization decisions should be documented because auditors often ask how access was assigned and reviewed.

Official sources for the Developer Hub and Backstage migration

Before you change anything, read the upstream Backstage documentation that governs the parts you are moving. The Backstage versioning policy is the one to read first, because it sets the release lines you will track after leaving Red Hat's supported distribution, the monthly main line and the weekly next line, and it states which Node.js releases are supported. Confirm which Node.js versions your build pipeline and base images will use, since Red Hat's packaging has been handling that for you. The same page explains that high and critical vulnerabilities are backported to releases from the last 6 months where feasible, which is the security baseline you will be responsible for once you own the upgrade cadence.

The Backstage authentication documentation matters most for the RBAC and sign-in replacement. Use it to decide which of the 19 built-in providers match your identity source, and to write sign-in resolvers that map every provider to the same identity. Its guidance against guest access in production is a direct check on any configuration you carry over from a Developer Hub deployment. Also confirm with your identity team which access policies will be enforced by a plugin you choose, because the upstream project does not provide Red Hat's configured permission model out of the box.

For the Red Hat side, use the Red Hat Developer Hub 1.10 documentation as the inventory of what you are replacing. Its installation, Helm chart and Operator, and high availability sections list the configuration you must reproduce, including database and cache layers. Ask Red Hat in writing which of your plugins are covered by subscription support, which are community plugins, and what support ends when you move. The rhdh repository README shows which plugins ship in the community image, which helps you separate compiled and dynamic plugins before you plan the rebuild.

How DeployOpen works on this

DeployOpen plans and builds self-hosted open-source platforms inside your own cloud accounts, data centers or air-gapped networks, and this move follows the same method. We start from a written scope covering your catalog, templates, plugins and sign-in, then build and test the upstream Backstage app in your infrastructure.

How we scope

  • Inventory the Developer Hub features your teams use, including plugins, templates, RBAC rules and sign-in setup.
  • Map each dynamic plugin to a compiled plugin, a replacement or a feature you decide to drop.
  • Agree the scope, deliverables and timeline in writing before any build work starts, since engagements are fixed-scope.

How we build

  • Stand up an upstream Backstage app in your infrastructure with PostgreSQL and your chosen caching layer.
  • Port catalog descriptors and software templates, then test each template run against your Git platform.
  • Rebuild access control with the authorization model you choose and verify it against documented permission cases.

How we hand over

  • Deliver the build, configuration, catalog files and templates in repositories your team owns.
  • Document the upgrade procedure, including the versions:bump workflow and the Backstage Upgrade Helper steps.
  • Walk your engineers through sign-in resolvers, backups and the support boundaries you accepted when leaving Developer Hub.

How we support

  • Support after handover is available as a retainer covering upgrades, plugin compatibility and security patching.
  • Ask us to confirm how upgrades and vulnerability backports will be handled under the retainer before signing.
  • Continuous security testing of the portal can be added to the same retainer if your team wants it.

Talk to our team.

Tell us what you're working on, whether it's a deployment, an audit, a security test or a cyber range. You'll speak with an engineer who can help you scope it.

  • 30-minute call: free, with no obligation.
  • NDA on request: we can sign before you share details.
  • Clear next steps: a scope and plan after the call.