Conversation
…Backstage upgrade The dashboard's Backstage dependency upgrade in radius-project/dashboard#206 bumped @backstage/plugin-auth-backend from 0.25.x to 0.27.x. Starting in 0.26.x, the guest auth provider is silently disabled when NODE_ENV=production (set in the dashboard Dockerfile). This causes 401 'Missing credentials' errors on all dashboard pages. Set NODE_ENV=development via the Helm chart so the Backstage guest auth provider remains active. The value is configurable through dashboard.nodeEnv in values.yaml and defaults to 'development'. Fixes: #11519
There was a problem hiding this comment.
Pull request overview
Fixes the Radius Helm chart configuration so the Backstage dashboard container runs with NODE_ENV=development by default, restoring guest authentication behavior after the Backstage auth-backend upgrade that disables guest auth in production mode.
Changes:
- Add
dashboard.nodeEnvto Helm values (default:development) to control the dashboard container’sNODE_ENV. - Inject
NODE_ENVinto the dashboard Deployment manifest from.Values.dashboard.nodeEnv.
Reviewed changes
Copilot reviewed 2 out of 2 changed files in this pull request and generated 1 comment.
| File | Description |
|---|---|
| deploy/Chart/values.yaml | Adds a configurable dashboard.nodeEnv value (defaulting to development) with explanatory comments. |
| deploy/Chart/templates/dashboard/deployment.yaml | Sets the dashboard container NODE_ENV env var from Helm values (defaulting to development). |
| env: | ||
| - name: NODE_ENV | ||
| value: {{ .Values.dashboard.nodeEnv | default "development" | quote }} |
There was a problem hiding this comment.
Add/update Helm chart unit tests to cover this new behavior: assert that spec.template.spec.containers[0].env includes NODE_ENV with the default value (development) and that it can be overridden via dashboard.nodeEnv. There are existing chart tests in deploy/Chart/tests/helpers_test.yaml that already validate dashboard settings but don't validate this new env var.
Radius functional test overviewClick here to see the test run details
Test Status⌛ Building Radius and pushing container images for functional tests... |
DariuszPorowski
left a comment
There was a problem hiding this comment.
development by default is not best practices, approving due to urgency and quick workaround but we have to rethink how to do it right in the future with proper production flag.
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## main #11520 +/- ##
==========================================
+ Coverage 51.21% 51.23% +0.01%
==========================================
Files 699 699
Lines 44050 44050
==========================================
+ Hits 22560 22568 +8
+ Misses 19330 19326 -4
+ Partials 2160 2156 -4 ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
…Backstage upgrade (#11520) # Description The dashboard is completely inoperative on Radius 0.56.0, returning `401 Unauthorized` with `"Missing credentials"` on all pages ([screenshots in issue](https://github.com/radius-project/radius/issues/11519)). **Root cause**: The dashboard repo's PR [radius-project/dashboard#206](radius-project/dashboard#206) ("migrate to node 24 and upgrade deps") bumped `@backstage/plugin-auth-backend` from `^0.25.7` to `^0.27.2`. Starting in Backstage auth-backend 0.26.x, the **guest auth provider is silently disabled when `NODE_ENV=production`**. The dashboard Dockerfile has always set `NODE_ENV=production` (standard Node.js practice), so this behavior change broke guest auth without any visible error. **Fix**: Set `NODE_ENV=development` on the dashboard container via the Helm chart deployment template. This re-enables the Backstage guest auth provider. The value is configurable through `dashboard.nodeEnv` in `values.yaml` and defaults to**Fix**: Set `NODE_ENV=development` on the a**Fix**per tool**Fix**: Set `NODE_ENV=development` on the dashboard container via the Helm chart deployment template. This re-enables the Backstage guest auth provider. The value is configurable through `dashboard.nodeEnv` k required). Fixes: #11519 ## Contributor checklist Please verify that the PR meets the following requirements, where applicable: <!-- This checklist uses "TaskRadio" comments to make certain options mutually exclusive. See: https://github.com/mheap/require-checklist-action?tab=readme-ov-file#radio-groups For details on how this works and why it's required. --> - An overview of proposed schema changes is included in a linked GitHub issue. - [ ] Yes <!-- TaskRadio schema --> - [x] Not applicable <!-- TaskRadio schema --> - A design document PR is created in the [design-notes repository](https://github.com/radius-project/design-notes/), if new APIs are being introduced. - [ ] Yes <!-- TaskRadio design-pr --> - [x] Not applicable <!-- TaskRadio design-pr --> - The design document has been reviewed and approved by Radius maintainers/approvers. - [ ] Yes <!-- TaskRadio design-review --> - [x] Not applicable <!-- TaskRadio design-review --> - A PR for the [samples repository](https://github.com/radius- A PR fosamples) is created, if existing samples are affected by the changes in this PR. - [ ] Yes <!-- TaskRadio samples-pr --> - [x] Not applicable <!-- TaskRadio samples-pr --> - A PR for the [documentation repository](https://github.com/radius-project/docs) is created, if the change- A PR for the [documentation repository](https://gacing updates are made. - [ ] Yes <!-- TaskRadio docs-pr --> - [x] Not applicable <!-- TaskRadio docs-pr --> - A PR for the [recipes repository](https://github.com/radius-project/recipes) is created, if existing recipes are affected by the changes in this PR. - [ ] Yes <!-- TaskRadio recipes-pr --> - [x] Not applicable <!-- TaskRadio recipes-pr --> (cherry picked from commit ddd4eeb)
…Backstage upgrade (#11520) # Description The dashboard is completely inoperative on Radius 0.56.0, returning `401 Unauthorized` with `"Missing credentials"` on all pages ([screenshots in issue](https://github.com/radius-project/radius/issues/11519)). **Root cause**: The dashboard repo's PR [radius-project/dashboard#206](radius-project/dashboard#206) ("migrate to node 24 and upgrade deps") bumped `@backstage/plugin-auth-backend` from `^0.25.7` to `^0.27.2`. Starting in Backstage auth-backend 0.26.x, the **guest auth provider is silently disabled when `NODE_ENV=production`**. The dashboard Dockerfile has always set `NODE_ENV=production` (standard Node.js practice), so this behavior change broke guest auth without any visible error. **Fix**: Set `NODE_ENV=development` on the dashboard container via the Helm chart deployment template. This re-enables the Backstage guest auth provider. The value is configurable through `dashboard.nodeEnv` in `values.yaml` and defaults to**Fix**: Set `NODE_ENV=development` on the a**Fix**per tool**Fix**: Set `NODE_ENV=development` on the dashboard container via the Helm chart deployment template. This re-enables the Backstage guest auth provider. The value is configurable through `dashboard.nodeEnv` k required). Fixes: #11519 ## Contributor checklist Please verify that the PR meets the following requirements, where applicable: <!-- This checklist uses "TaskRadio" comments to make certain options mutually exclusive. See: https://github.com/mheap/require-checklist-action?tab=readme-ov-file#radio-groups For details on how this works and why it's required. --> - An overview of proposed schema changes is included in a linked GitHub issue. - [ ] Yes <!-- TaskRadio schema --> - [x] Not applicable <!-- TaskRadio schema --> - A design document PR is created in the [design-notes repository](https://github.com/radius-project/design-notes/), if new APIs are being introduced. - [ ] Yes <!-- TaskRadio design-pr --> - [x] Not applicable <!-- TaskRadio design-pr --> - The design document has been reviewed and approved by Radius maintainers/approvers. - [ ] Yes <!-- TaskRadio design-review --> - [x] Not applicable <!-- TaskRadio design-review --> - A PR for the [samples repository](https://github.com/radius- A PR fosamples) is created, if existing samples are affected by the changes in this PR. - [ ] Yes <!-- TaskRadio samples-pr --> - [x] Not applicable <!-- TaskRadio samples-pr --> - A PR for the [documentation repository](https://github.com/radius-project/docs) is created, if the change- A PR for the [documentation repository](https://gacing updates are made. - [ ] Yes <!-- TaskRadio docs-pr --> - [x] Not applicable <!-- TaskRadio docs-pr --> - A PR for the [recipes repository](https://github.com/radius-project/recipes) is created, if existing recipes are affected by the changes in this PR. - [ ] Yes <!-- TaskRadio recipes-pr --> - [x] Not applicable <!-- TaskRadio recipes-pr --> (cherry picked from commit ddd4eeb)
Description
The dashboard is completely inoperative on Radius 0.56.0, returning
401 Unauthorizedwith"Missing credentials"on all pages (screenshots in issue).Root cause: The dashboard repo's PR radius-project/dashboard#206 ("migrate to node 24 and upgrade deps") bumped
@backstage/plugin-auth-backendfrom^0.25.7to^0.27.2. Starting in Backstage auth-backend 0.26.x, the guest auth provider is silently disabled whenNODE_ENV=production. The dashboard Dockerfile has always setNODE_ENV=production(standard Node.js practice), so this behavior change broke guest auth without any visible error.Fix: Set
NODE_ENV=developmenton the dashboard container via the Helm chart deployment template. This re-enables the Backstage guest auth provider. The value is configurable throughdashboard.nodeEnvinvalues.yamland defaults toFix: SetNODE_ENV=developmenton the aFixper toolFix: SetNODE_ENV=developmenton the dashboard container via the Helm chart deployment template. This re-enables the Backstage guest auth provider. The value is configurable throughdashboard.nodeEnvk required).Fixes: #11519
Contributor checklist
Please verify that the PR meets the following requirements, where applicable: