Red Hat Developer Hub release notes


Red Hat Developer Hub 1.5

Release notes for Red Hat Developer Hub 1.5

Red Hat Customer Content Services

Abstract

Red Hat Developer Hub (Developer Hub) 1.5 is now generally available. Developer Hub is a fully supported, enterprise-grade productized version of upstream Backstage 1.35.0. This document contains release notes for the Red Hat Developer Hub 1.5.

Preface

Red Hat Developer Hub (Developer Hub) 1.5 is now generally available. Developer Hub is a fully supported, enterprise-grade productized version of upstream Backstage v1.35.0. You can access and download the Red Hat Developer Hub application from the Red Hat Customer Portal or from the Ecosystem Catalog.

Chapter 1. New features

This section highlights new features in Red Hat Developer Hub 1.5.

Developer Hub introduces the techdocsAddons configuration option for a dynamic plugin’s front-end configuration. This feature allows dynamic plugins to export one or more components as TechDocs add-ons, enhancing the TechDocs experience. Add-ons can be configured using props to modify their behavior, such as manipulating a TechDocs site’s Document Object Model (DOM).

For more information, see TechDocs for Red Hat Developer Hub.

1.2. Configurable global header plugin

With this update, Developer Hub introduces a new global header plugin, providing a configurable and extendable header in RHDH. You can use the default header with key RHDH components or fully customize it by enabling, disabling, or extending its functionality through the dynamic plugin system.

The key features and enhancements include:

  • Global header as a dynamic plugin

    • Enabled by default with a provided wrapper
    • Can be disabled by turning off the dynamic plugin
    • Supports customization by adding, reordering, or removing components
  • Extendable default header components

    • Search input field
    • Create button linking to templates
    • Support for internal or external links, such as support and notification icons
    • Profile and Create drop-down menus
  • Plugin extension capabilities

    • Other plugins can add custom components or links
    • Extend the CreateDropdown or ProfileDropdown menus

The global header plugin also introduces new mount points in the dynamic plugin system, offering enhanced flexibility in positioning, styling, and extending the header, enabling a fully customizable experience in RHDH.

For more information about global header, see Configuring the global header in Red Hat Developer Hub.

1.3. Floating action button support for plugins

RHDH now supports adding plugins or external links as floating actions on Red Hat Developer Hub. This feature allows you to configure commonly used plugins as floating buttons, providing quick access and improving navigation by centralizing essential plugins on a single page.

For more information, see Configuring a floating action button in Red Hat Developer Hub.

Red Hat Developer Hub now supports high availability setups in OpenShift Container Platform. This enhancement allows the deployment to scale beyond a single replica, ensuring the application remains operational and accessible even in the event of failures or disruptions.

For more information, see Configuring high availability in Red Hat Developer Hub.

With RHDH 1.5, two new cards are available for the customizable home page:

  • Top Visited Pages: Displays the most frequently visited pages.
  • Recently Visited Pages: Displays the latest pages accessed.

These cards track visited pages for each user within their browser and can be configured in the dynamic home page as follows:

Example configuration

- mountPoint: home.page/cards
 importName: TopVisitedCard
 config:
   layouts:
     xl: { w: 6, h: 4 }
     lg: { w: 6, h: 4 }
     md: { w: 6, h: 4 }
     sm: { w: 6, h: 4 }
     xs: { w: 6, h: 4 }
     xxs: { w: 6, h: 4 }


- mountPoint: home.page/cards
 importName: RecentlyVisitedCard
 config:
   layouts:
     xl: { w: 6, h: 4, x: 6 }
     lg: { w: 6, h: 4, x: 6 }
     md: { w: 6, h: 4, x: 6 }
     sm: { w: 6, h: 4, x: 6 }
     xs: { w: 6, h: 4, x: 6 }
     xxs: { w: 6, h: 4, x: 6 }

The new cards enhance the user experience by providing quick access to frequently used and recently viewed content.

The GitHub organization entity provider now manages both primary and secondary GitHub rate limits. It automatically pauses operations when these limits are reached, ensuring greater reliability, especially when ingesting large GitHub organizations.

A new catalog.disableRelationsCompatibility configuration option has been introduced. Enabling this option enhances catalog performance and reduces memory usage. However, it may impact consumers that depend on the target field in relation objects.

The scaffolder.template.management permission has been introduced to restrict access to front-end template management features, ensuring better control over template modifications. For more information, see Permission policies reference.

Previously, running multi-replica RHDH with a persistent volume for the dynamic plugins cache was not possible due to potential write conflicts. RHDH 1.5 mitigates that risk, allowing for better scalability and stability.

1.10. Configurable PVC mounting for containers

Previously, the default Persistent Volume Claim (PVC) could only be mounted to the Backstage container. With this update, you can now configure which container(s) the PVC must be mounted to, providing greater flexibility in storage management.

This update enhances the status conditions in the Backstage custom resource(s) managed by the Developer Hub Operator, providing clearer insights into application availability.

A new DeployInProgress reason has been introduced under the Deployed condition. It appears when the application is still starting up and not fully available. The Deployed reason now only reflects when the Developer Hub application is fully up and running with the desired number of replicas, improving visibility during deployment. For example:

Example status conditions

Status:
  Conditions:
    Last Transition Time: 2025-03-10T17:09:22Z
    Message: Deployment status: Available: Deployment does not have minimum availability. Progressing: ReplicaSet "backstage-bs1-674476fd67" is progressing.
    Reason: DeployInProgress
    Status: False
    Type: Deployed

...
Status:
  Conditions:
    Last Transition Time: 2025-03-10T17:14:43Z
    Message:
    Reason: Deployed
    Status: True
    Type: Deployed

1.12. Enhanced secret configuration for YAML files

The RHDH Operator now introduces the ability to configure multiple secrets within a single YAML file, similar to PVCs. Additionally, it allows annotations to specify:

  • The mount path for each secret
  • The specific containers where the secret must be mounted

This enhancement provides greater flexibility in managing secrets across different containers.

The home page plugin now provides more ways to customize and personalize the title. If your user catalog entity includes a displayName, the title can dynamically display your first name or display name for a more personalized experience.

In this update, the Developer Hub Operator has been enhanced to automatically detect the platform it is running on (such as EKS, AKS, or GKE) and apply the necessary patches to the fsGroup field in the security contexts of the containers.

This enhancement removes the need for manual updates to the Operator default configuration, simplifying the installation process and eliminating some post-installation steps.

The installation script for the Developer Hub Operator has been improved to support all supported platforms. Additionally, it now works seamlessly in both partially disconnected and fully disconnected environments, making the setup process more versatile and accessible.

For more information, see Installing Red Hat Developer Hub in an air-gapped environment with the Operator.

This release introduces significant enhancements to the RBAC plugin, allowing administrators to select multiple users, groups, plugins, and their associated permissions at once when creating a role. Previously, this process was done individually, which could be time-consuming. Now, administrators can quickly select multiple items in a single action, simplifying and speeding up role and permission configuration.

Additionally, resource-based permissions now display more intuitive names, showing associated CRUD actions rather than just resource types, which improves visibility and usability.

These updates reduce manual effort, increase efficiency, and enhance the overall user experience when managing access control.

For more information, see Authorization document.

Developer Hub introduces the @backstage-community/plugin-scaffolder-backend-module-kubernetes plugin as a dynamic plugin, enabling Backstage template actions for Kubernetes. Currently, it includes the create-namespace action. The plugin for Kubernetes scaffolder actions is disabled by default.

For more information, see Kubernetes custom actions in Red Hat Developer Hub.

Additional resources

Chapter 2. Breaking changes

This section lists breaking changes in Red Hat Developer Hub 1.5.

Previously, configuring the sign-in resolver to bypass user provisioning in the Developer Hub software catalog required setting dangerouslyAllowSignInWithoutUserInCatalog: true at the root of the app-config.yaml file.

In this release, the previous root level configuration has been moved to the resolver level. For more details, see Authentication in Red Hat Developer Hub.

Additional resources

The scopes parameter is now mandatory for the gitlab:projectDeployToken:create action. A valid value, such as ['read_repository'], must be provided.

Additional resources

The dynamicPlugins.cache.volumeClaimSpec field has been removed from values.yaml, making dynamic plugin storage ephemeral by default. If you want to enable plugin caching persistence, you must now manually configure a PersistentVolumeClaim and mount it using the extraVolumes and extraVolumeMounts fields in the Helm chart values.

This change also resolves issues with running multi-replica RHDH deployments, as using a PVC for the Dynamic Plugins cache previously led to potential write conflicts. For more information, see Creating a PVC for the dynamic plugin cache using the Helm Chart.

Additional resources

Chapter 3. Deprecated functionalities

This section lists deprecated functionalities in Red Hat Developer Hub 1.5.

The previous method using podman and ImageStreams for Helm chart mirroring has been deprecated. You are now required to transition to oc-mirror for Helm chart and related container image mirroring on OpenShift Container Platform. This change enables support for fully disconnected and partially disconnected environments, ensuring a Red Hat-supported airgapping process.

Additional resources

The useRedisSets option in the Redis backend cache was previously enabled by default. With this update, the option has been removed and is no longer effective. If it remains in the configuration, a warning will appear in the application logs.

Required action
  • To avoid warnings, remove the useRedisSets option from the backend.cache section in your app-config.yaml file.

Additional resources

The ArgoCD front-end plugin from RoadieHQ has been deprecated and will be removed in a future release. Consider transitioning to the ArgoCD plugin from Red Hat for continued support and enhancements.

Additional resources

Due to ongoing improvements in dynamic plugin functionality, the following features are deprecated and will be removed in a future release:

  • apiFactories configuration: Dynamic plugins must now define API factories directly within their plugin using the createPlugin API for better integration and maintainability.
  • export-dynamic-plugin --embed-as-code and --no-embed-as-dependencies: These options, which inline each dependency as code, have been deprecated because plugins exported this way cannot properly access the database. The --embed-as-dependencies option, now the default for package export-dynamic-plugin, replaces this behavior.

Additional resources

Red Hat Build of Keycloak (RHBK) v24 is deprecated as an authentication provider. You can continue to use RHBK v24 until the end of maintenance support. For details, see Red Hat Build of Keycloak Life Cycle and Support Policies. As an alternative, migrate to Red Hat Build of Keycloak v26.

Additional resources

Red Hat Single-Sign On 7.6 was deprecated as an authentication provider in RHDH version 1.4 and has been removed in Red Hat Developer Hub 1.5.

Additional resources

Chapter 4. Technology Preview

This section lists Technology Preview features in Red Hat Developer Hub 1.5.

Important

Technology Preview features provide early access to upcoming product innovations, enabling you to test functionality and provide feedback during the development process. However, these features are not fully supported under Red Hat Subscription Level Agreements, may not be functionally complete, and are not intended for production use. As Red Hat considers making future iterations of Technology Preview features generally available, we will attempt to resolve any issues that customers experience when using these features. See: Technology Preview support scope.

4.1. Extensions for Red Hat and community plugins

The new Extensions feature enables you to browse available Red Hat and community plugins. The initial version displays all plugins and includes filtering options. Future updates will introduce additional features, such as installation directly from the front-end.

For more information about Extensions, see Extensions in Red Hat Developer Hub.

Additional resources

In Red Hat Developer Hub 1.5, loading authentication providers or modules from dynamic plugins is available as a Technology Preview feature, enabling greater flexibility and customization. The key improvements include:

  • Environment variable control:

    • A new ENABLE_AUTH_PROVIDER_MODULE_OVERRIDE environment variable determines whether the backend installs the default authentication provider module.
    • When the new environment variable is enabled, dynamic plugins can be used to supply custom authentication providers.
  • Custom sign-in page support:

    • A new signInPage configuration allows front-end dynamic plugins to provide a custom SignInPage component.

      Example configuration

      dynamicPlugins:
       frontend:
         my-plugin-package:
           signInPage:
             importName: CustomSignInPage

    • The exported CustomSignInPage will be mapped to components.SignInPage during front-end initialization.
  • Authentication provider settings:

    • A new providerSettings configuration field allows front-end dynamic plugins to define authentication provider settings for display in the Authentication Providers tab on the Settings page.

      Example configuration

      dynamicPlugins:
       frontend:
         my-plugin-package:
           providerSettings:
      - title: Github Two
      description: Sign in with GitHub Org Two
      provider: core.auth.github-two

    • Each providerSettings entry creates a corresponding row in the Authentication Providers tab. The provider field must match the string used in createApiRef when defining the API reference:

      Example configuration

      export const ghTwoAuthApiRef: ApiRef<
       OAuthApi & ProfileInfoApi & BackstageIdentityApi & SessionApi
      > = createApiRef({
       id: 'core.auth.github-two', // <--- this string
      })

For more information, see Authentication in Red Hat Developer Hub.

Chapter 5. Developer Preview

This section lists Developer Preview features in Red Hat Developer Hub 1.5.

Important

Developer Preview features are not supported by Red Hat in any way and are not functionally complete or production-ready. Do not use Developer Preview features for production or business-critical workloads. Developer Preview features provide early access to functionality in advance of possible inclusion in a Red Hat product offering. Customers can use these features to test functionality and provide feedback during the development process. Developer Preview features might not have any documentation, are subject to change or removal at any time, and have received limited testing. Red Hat might provide ways to submit feedback on Developer Preview features without an associated SLA.

For more information about the support scope of Red Hat Developer Preview features, see Developer Preview Support Scope.

5.1. Adoptions Insights in Red Hat Developer Hub

The Adoption Insights plugin is now available as a Developer Preview feature in Red Hat Developer Hub, providing key metrics and trends to help you understand Developer Hub usage.

Currently, the Adoption Insights plugin cannot be used alongside the built-in plugin-analytics-provider-segment plugin. While a fix is in progress, you can enable Adoption Insights by first disabling the plugin-analytics-provider-segment plugin. To disable the plugin-analytics-provider-segment plugin, add the following configuration to the dynamic-plugins.yaml file or your configuration ConfigMap:

Example configuration in dynamic-plugins.yaml file

plugins:
  - package: ./dynamic-plugins/dist/backstage-community-plugin-analytics-provider-segment
    disabled: true

After disabling the plugin-analytics-provider-segment plugin, you can configure the Adoption Insights plugin using the Adoption Insights in Red Hat Developer Hub documentation.

Additional resources

Chapter 6. Fixed issues

This section lists issues fixed in Red Hat Developer Hub 1.5.

6.1. Fixed issues in 1.5.2

Resolved an issue where the Profile drop-down in the global header displayed Guest instead of the logged-in user’s name when using OpenID Connect (OIDC) authentication. The drop-down now correctly shows the user’s display name by checking spec.profile.displayName, then metadata.title, and falling back to the name shown on the Profile card in the Settings page if neither is available.

Additional resources

In versions 1.5.0 and 1.5.1, the app.branding.iconLogo value in the app-config was not applied as the browser favicon. This issue has been resolved in 1.5.2, and the configured branding icon now correctly appears as the favicon.

Additional resources

6.2. Fixed issues in 1.5.0

6.2.1. Entity tab reordering now works as expected

You can now reorder entity tabs by specifying a priority value in the configuration. Tabs with higher priority values appear first, while default tabs can be hidden by assigning a negative priority value.

Additional resources

Previously, the Report a documentation issue feature in TechDocs was not functional. Additionally, selecting text in a TechDoc displayed an oversized icon instead of the intended tooltip button.

This issue has been fixed, ensuring that users can now select content and report issues correctly using the tooltip button.

Additional resources

When using RHBK as an OIDC provider, the default access token lifespan was set to five minutes, causing frequent refresh token requests as the token neared expiration. This resulted in performance issues due to the frequent token refreshes.

To resolve this, you can increase the access token lifespan on the Keycloak server by adjusting the Access Token Lifespan setting under Configure → Realm Settings to a value greater than five minutes. This adjustment prevents unnecessary refresh token calls and improves performance.

Additional resources

This update introduces a new pullPolicy configuration to enhance support for floating tags in OCI artifacts. The pullPolicy setting provides more consistent behavior across platforms handling image containers and offers two options:

  • Always: Compares the image digest in the remote registry and downloads the artifact if it has changed, even if the plugin was previously downloaded.
  • IfNotPresent: Downloads the artifact only if it is not already present in the dynamic-plugins-root folder, without checking image digests.

The pullPolicy setting is also applied to the NPM downloading method, though Always will download the remote artifact without a digest check. While the existing forceDownload option remains functional, pullPolicy takes precedence, and forceDownload might be deprecated in a future release.

Additionally, this update fixes an issue where OCI artifacts were unintentionally deleted during the clean up phase if only the URL was modified.

Additional resources

Previously, plugins installed from external sources were incorrectly displayed with a No in the Enabled column on the Plugins page. This update fixes the UI logic to ensure that externally installed plugins now correctly appear with a Yes in the Enabled column as expected.

Additional resources

In Developer Hub Helm Chart version 1.4.2+, it was possible to configure the storage class and access mode for the dynamic plugins persistent volume claim (PVC) using the dynamicPlugins.cache.volumeClaimSpec field in the Helm values file.

In version 1.5, this behavior has been reverted, making the dynamic plugins root PVC ephemeral by default. This change addresses issues encountered when upgrading the Helm Chart or running multiple replicas of Developer Hub.

You can still customize the ephemeral volume claim’s storage class and access mode using the upstream.backstage.extraVolumes field, as shown in the following example:

Example configuration

upstream:
  backstage:
    extraVolumes:
      - name: dynamic-plugins-root
        ephemeral:
          volumeClaimTemplate:
            spec:
              accessModes:
                # TODO: Change the access mode below
                - ReadWriteOnce
              resources:
                requests:
                  storage: 5Gi
              # TODO: Add your storage class below
              storageClassName: "<my-custom-storage-class>"

      - name: dynamic-plugins
        configMap:
          defaultMode: 420
          name: '{{ printf "%s-dynamic-plugins" .Release.Name }}'
          optional: true

      - name: dynamic-plugins-npmrc
        secret:
          defaultMode: 420
          optional: true
          secretName: '{{ printf "%s-dynamic-plugins-npmrc" .Release.Name }}'

      - name: dynamic-plugins-registry-auth
        secret:
          defaultMode: 416
          optional: true
          secretName: '{{ printf "%s-dynamic-plugins-registry-auth" .Release.Name }}'

      - name: npmcacache
        emptyDir: {}

      - name: temp
        emptyDir: {}

However, ensure that all other volumes declared in the default Helm Chart are also included.

Additional resources

Previously, the Developer Hub Helm Chart did not support running multiple replicas on different cluster nodes due to the automatic creation of a dynamic plugins root persistent volume claim (PVC). This issue has been resolved by reverting the PVC creation and switching to an ephemeral volume by default, allowing multiple replicas to function properly.

Additional resources

In previous versions of the Developer Hub Helm Chart, the image for the test-connection pod could not be configured, which posed challenges for air-gapped environments. The test-connection pod is created when running helm test to validate a deployed release.

This issue has been resolved by introducing configuration options to specify the image and allowing the test-connection pod to be disabled entirely. The following fields are now available in the Helm Chart:

Example configuration fields in Helm Chart

# -- Test pod parameters
test:
  # -- Whether to enable the test-connection pod used for testing the Release using `helm test`.
  enabled: true

  image:
    # -- Test connection pod image registry
    registry: quay.io

    # -- Test connection pod image repository. Note that the image needs to have both the `sh` and `curl` binaries in it.
    repository: curl/curl

    # -- Test connection pod image tag. Note that the image needs to have both the `sh` and `curl` binaries in it.
    tag: latest

Additional resources

Previously, the GitLab org catalog backend plugin and Notification backend plugin failed to load when configured, displaying a MODULE_NOT_FOUND error. This issue has been fixed by embedding the missing dependencies within the GitLab org catalog backend dynamic plugin, ensuring proper functionality.

Additional resources

The janus-idp CLI command package-dynamic-plugins is designed to work with both monorepos and single plugin projects. This update resolves a bug in the tool’s monorepo detection, which previously caused the tool to fail with the error TypeError: Cannot read properties of undefined (reading 'packages') when run in a single plugin project.

Additional resources

Previously, the CLI examined the dependencies of embedded packages during the export process by calling require from the monorepo root. This could lead to incorrect dependency resolution, especially when wrapping an existing plugin.

With this update, the CLI now calls require from the embedded package’s parent directory, ensuring that the most relevant dependencies are correctly identified and used.

Additional resources

Previously, the CLI required each dynamic plugin project to define an export-dynamic script for the package-dynamic-plugin command to successfully export the plugin.

With this update, defining an export-dynamic script is no longer necessary. The package-dynamic-plugin command now automatically attempts to run the export-dynamic-plugin command with default arguments, simplifying the export process.

Additional resources

Previously, the startup process would slow down when handling a large number of CSV entries due to roles and permission policies being added individually. In this release, roles and policies are now added in bulk, improving the startup speed of the RBAC backend plugin.

Additional resources

Previously, organizations with a large number of users and groups experienced slower response times due to RBAC permission evaluations. This update includes performance improvements to help mitigate those slowdowns.

Additional resources

6.2.15. Expanded support for conditional aliases

Previously, conditional aliases were only functional for the catalog conditional rule of IS_ENTITY_OWNER. With this update, aliases now apply to all rules, improving flexibility and functionality.

Additional resources

6.2.16. Rolling update issue with PVCs

Previously, upgrading an existing Developer Hub Helm release using rolling updates was blocked due to the automatic creation of a dynamic plugins root persistent volume claim (PVC) with a hardcoded ReadWriteOnce access mode. This prevented new replicas from being scheduled on different nodes.

This issue is now resolved by reverting the PVC creation and using an ephemeral volume by default, enabling rolling updates and allowing multiple replicas to function as expected.

Additional resources

Previously, the installation script for the Operator failed to run on Red Hat OpenShift Service on AWS (ROSA) clusters in air-gapped environments. This issue has now been resolved, ensuring the script functions correctly on ROSA.

Additional resources

Chapter 7. Fixed security issues

You can view the security issues fixed in each Red Hat Developer Hub version in the following corresponding Red Hat Security Advisories (RHSAs):

Chapter 8. Known issues

This section lists known issues in Red Hat Developer Hub 1.5.

8.1. Add button is misaligned on Bulk Import page

On the Bulk Import page, the Add button may occasionally appear in the top-left corner instead of its intended position in the bottom-right corner. Despite the misalignment, the button remains fully functional.

Additional resources

Permissions associated only with front-end plugins do not appear in the UI because they require a backend plugin to expose the permission framework's well-known endpoint. As a workaround, you can apply these permissions by using a CSV file or directly calling the REST API of the RBAC backend plugin. Affected plugins include Topology (topology.view.read), Tekton (tekton.view.read), ArgoCD (argocd.view.read), and Quay (quay.view.read).

Additional resources

Legal Notice

Copyright © 2025 Red Hat, Inc.
The text of and illustrations in this document are licensed by Red Hat under a Creative Commons Attribution–Share Alike 3.0 Unported license ("CC-BY-SA"). An explanation of CC-BY-SA is available at http://creativecommons.org/licenses/by-sa/3.0/. In accordance with CC-BY-SA, if you distribute this document or an adaptation of it, you must provide the URL for the original version.
Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d of CC-BY-SA to the fullest extent permitted by applicable law.
Red Hat, Red Hat Enterprise Linux, the Shadowman logo, the Red Hat logo, JBoss, OpenShift, Fedora, the Infinity logo, and RHCE are trademarks of Red Hat, Inc., registered in the United States and other countries.
Linux® is the registered trademark of Linus Torvalds in the United States and other countries.
Java® is a registered trademark of Oracle and/or its affiliates.
XFS® is a trademark of Silicon Graphics International Corp. or its subsidiaries in the United States and/or other countries.
MySQL® is a registered trademark of MySQL AB in the United States, the European Union and other countries.
Node.js® is an official trademark of Joyent. Red Hat is not formally related to or endorsed by the official Joyent Node.js open source or commercial project.
The OpenStack® Word Mark and OpenStack logo are either registered trademarks/service marks or trademarks/service marks of the OpenStack Foundation, in the United States and other countries and are used with the OpenStack Foundation's permission. We are not affiliated with, endorsed or sponsored by the OpenStack Foundation, or the OpenStack community.
All other trademarks are the property of their respective owners.
Red Hat logoGithubredditYoutubeTwitter

Learn

Try, buy, & sell

Communities

About Red Hat

We deliver hardened solutions that make it easier for enterprises to work across platforms and environments, from the core datacenter to the network edge.

Making open source more inclusive

Red Hat is committed to replacing problematic language in our code, documentation, and web properties. For more details, see the Red Hat Blog.

About Red Hat Documentation

Legal Notice

Theme

© 2026 Red Hat
Back to top