|
1 | | -:_content-type: REFERENCE |
2 | | -[id="new-features"] |
3 | | -= New features |
4 | | - |
5 | | -This section highlights new features in {product} {product-version}. |
6 | | - |
7 | | -None. |
8 | | - |
| 1 | +:_content-type: REFERENCE |
| 2 | +[id="new-features"] |
| 3 | += New features |
| 4 | + |
| 5 | +This section highlights new features in {product} {product-version}. |
| 6 | + |
| 7 | +[id="feature-rhidp-3597"] |
| 8 | +== OpenTelemetry metrics support added to the Keycloak backend plugin |
| 9 | + |
| 10 | +With this update, the Keycloak backend plugin supports OpenTelemetry metrics, which monitors fetch operations and diagnoses potential issues. |
| 11 | + |
| 12 | +The available counters include the following: |
| 13 | + |
| 14 | +* `backend_keycloak_fetch_task_failure_count_total`: Counts fetch task failures where no data was returned due to an error. |
| 15 | + |
| 16 | +* `backend_keycloak_fetch_data_batch_failure_count_total`: Counts partial data batch failures. Even if some batches fail, the plugin continues fetching others. |
| 17 | + |
| 18 | +These counters include the `taskInstanceId` label, which uniquely identifies each scheduled fetch task, and allows you to trace failures back to individual task executions. |
| 19 | + |
| 20 | +Example configuration: |
| 21 | + |
| 22 | +```text |
| 23 | +backend_keycloak_fetch_data_batch_failure_count_total{taskInstanceId="df040f82-2e80-44bd-83b0-06a984ca05ba"} 1 |
| 24 | +``` |
| 25 | + |
| 26 | +You can export metrics using any OpenTelemetry-compatible backend, such as **Prometheus**. |
| 27 | + |
| 28 | + |
| 29 | +[id="enhancement-rhidp-5039"] |
| 30 | +== Enhanced session duration control and refresh token cookie policy |
| 31 | + |
| 32 | +With this update, the maximum age of the refresh token cookie has been reduced to 400 days to align with the modern web browser policies. Additionally, a new configurable field, `sessionDuration`, has been introduced in the supported authentication providers. This allows administrators to specify custom user session durations, enabling better control over session timeouts and enforced logouts. |
| 33 | + |
| 34 | +For more information, see link:https://docs.redhat.com/en/documentation/red_hat_developer_hub/1.5/html-single/authentication_in_red_hat_developer_hub/index#idm140459408106672[Authentication in {product}]. |
| 35 | + |
| 36 | +[id="enhancement-rhidp-5987"] |
| 37 | +== Updated Auditor Service |
| 38 | + |
| 39 | +{product} {product-version} introduces an enhancement to the RBAC and Bulk Import plugins, enabling users to utilize Backstage's new Auditor service. The key features include: |
| 40 | + |
| 41 | +* Audit log format update: |
| 42 | + |
| 43 | +The audit log format has been updated to align with the new Auditor service conventions. Audit fields and event identifiers have been updated. Filtering queries based on the old format may no longer function as expected. |
| 44 | + |
| 45 | +* Backend Plugin API integration: |
| 46 | + |
| 47 | +The audit log is now backed by the `@backstage/backend-plugin-api` package. |
| 48 | + |
| 49 | +* Audit events Grouping: |
| 50 | + |
| 51 | +The Bulk Import backend plugin emits audit events for various operations, with the events are grouped logically by `eventId`. |
| 52 | + |
| 53 | + |
| 54 | + |
| 55 | + |
| 56 | +[id="feature-rhidp-6158"] |
| 57 | +== Renamed `Create` to `Self-service` |
| 58 | + |
| 59 | +The term `Create` has been renamed to `Self-service` across key UI areas to better align with the self-service functionality provided through the Backstage scaffolder, enhancing clarity for users. |
| 60 | + |
| 61 | +This change applies to the following areas: |
| 62 | + |
| 63 | +* Sidebar navigation |
| 64 | +* Global header |
| 65 | +* Catalog page |
| 66 | +* Scaffolder page |
| 67 | + |
| 68 | +[id="enhancement-rhidp-6173"] |
| 69 | +== Simplify Operator-backed deployments on OpenShift with automatic `baseUrl` configuration |
| 70 | + |
| 71 | +Previously, deploying {product-short} using the Operator required manually configuring the `baseUrl` settings in the custom app-config ConfigMap. |
| 72 | + |
| 73 | +With this update, the Operator can now automatically compute the default application URL based on the OpenShift cluster ingress domain and the custom Route settings in the `Backstage` Custom Resource. It will then populate this as the default `baseUrl` in the app-config ConfigMap that it generates for the {product-short} instance. This functionality is specific to OpenShift. The Operator fills the following fields in the default app-config ConfigMap: `app.baseUrl`, `backend.baseUrl`, and `backend.cors.origin`. As a result, this eliminates the need to manually set such values for most Operator-backed deployments on OpenShift, though you can still override these settings in your custom app-config ConfigMap. |
| 74 | + |
| 75 | +[id="enhancement-rhidp-6184"] |
| 76 | +== New sidebar item visibility configuration |
| 77 | + |
| 78 | +{product} now supports a clean and flexible way to hide sidebar items using a new enabled key in the sidebar menu configuration. If set to false, the specified sidebar item will no longer appear in the UI, while maintaining full backward compatibility with existing configurations. |
| 79 | + |
| 80 | +Example configuration: |
| 81 | +[source,yaml] |
| 82 | +---- |
| 83 | +dynamicPlugins: |
| 84 | + frontend: |
| 85 | + default.main-menu-items: |
| 86 | + menuItems: |
| 87 | + default.home: |
| 88 | + title: Home |
| 89 | + icon: home |
| 90 | + enabled: false |
| 91 | + default.list: |
| 92 | + title: References |
| 93 | + icon: bookmarks |
| 94 | + default.my-group: |
| 95 | + parent: default.list |
| 96 | + default.learning-path: |
| 97 | + parent: default.list |
| 98 | + title: '' |
| 99 | + default.homepage: |
| 100 | + title: HomePage 123 |
| 101 | + icon: home |
| 102 | + enabled: false |
| 103 | + default.create: |
| 104 | + title: Create |
| 105 | + icon: add |
| 106 | + parent: default.homepage |
| 107 | +---- |
| 108 | + |
| 109 | +You can now also toggle visibility of core sidebar elements like the logo, search, settings, and administration as shown: |
| 110 | + |
| 111 | +[source,yaml] |
| 112 | +---- |
| 113 | +app: |
| 114 | + sidebar: |
| 115 | + search: false # hides sidebar search |
| 116 | + logo: false # hides sidebar logo |
| 117 | + settings: false # hides settings item |
| 118 | + administration: false # hides administration item |
| 119 | +---- |
| 120 | + |
| 121 | +[id="feature-rhidp-6253"] |
| 122 | +== {product-short} community plugins updated to Backstage 1.36 |
| 123 | + |
| 124 | +The {product-short} community plugins have been updated to Backstage version 1.36. |
| 125 | + |
| 126 | +[id="feature-rhidp-6269"] |
| 127 | +== Added a new RBAC conditional rule `IS_OWNER` to RBAC plugin |
| 128 | + |
| 129 | +{product} introduces a new RBAC conditional rule, `IS_OWNER`, that allows administrators to assign ownership to roles and control access to the RBAC plugin. This enhancement enables more granular access control by allowing ownership-based filtering of roles, permission policies, and conditional policies. |
| 130 | + |
| 131 | +This enhancement removes the resource type from the `policy.entity.create` permission, preventing conditional rules from being applied to the permission. You can update all permission policies that utilize the resource type `policy-entity` with the action `create` (for example `role:default/some_role, policy-entity, create, allow` to `role:default/some_role, policy.entity.create, create, allow`) to prevent degradation in the future. |
| 132 | + |
| 133 | + |
| 134 | +[id="feature-rhidp-6555"] |
| 135 | +== Support for high availability in {aks-brand-name} |
| 136 | + |
| 137 | +{product} now supports high availability setups in {aks-brand-name} ({aks-short}). 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. |
| 138 | + |
| 139 | +For more information, see link:https://docs.redhat.com/en/documentation/red_hat_developer_hub/1.5/html-single/configuring_red_hat_developer_hub/index#HighAvailability[_Configuring high availability in Red Hat Developer Hub_]. |
| 140 | + |
| 141 | +[id="feature-rhidp-6764"] |
| 142 | +== Added `@backstage/plugin-scaffolder-backend-module-github` plugin for {product-short} |
| 143 | + |
| 144 | +{product} now supports the `@backstage/plugin-scaffolder-backend-module-github` plugin, enabling GitHub Actions within software templates. With this integration, you can securely create and manage repositories, open pull requests, trigger GitHub Actions workflows, and more, all directly from the software template. This plugin empowers users to automate GitHub interactions and workflows with ease. |
| 145 | + |
| 146 | +[id="enhancement-rhidp-6882"] |
| 147 | +== Default OIDC sign-in resolver updated |
| 148 | + |
| 149 | +With this update, the default resolver for OIDC sign-in is set to `oidcSubClaimMatchingKeycloakUserId` to enhance security. This resolver is now also available as a configurable option under the sign-in resolver settings. |
| 150 | + |
| 151 | +[id="feature-rhidp-7424"] |
| 152 | +== New dynamic plugin for Kubernetes scaffolder actions |
| 153 | + |
| 154 | +With this update, {product-short} 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. This dynamic plugin is disabled by default. |
| 155 | + |
| 156 | +For more information, see link:https://docs.redhat.com/en/documentation/red_hat_developer_hub/1.5/html-single/dynamic_plugins_reference/index#red-hat-supported-plugins[{company-name} supported plugins]. |
| 157 | + |
| 158 | + |
| 159 | + |
0 commit comments