Repository navigation
feat: migrate to nfs - #5232
feat: migrate to nfs#5232
Conversation
Assisted-By: Cursor Signed-off-by: Frank Kong <frkong@redhat.com> rh-pre-commit.version: 2.4.0 rh-pre-commit.check-secrets: ENABLED
Assisted-By: Cursor Signed-off-by: Frank Kong <frkong@redhat.com> rh-pre-commit.version: 2.4.0 rh-pre-commit.check-secrets: ENABLED
Assisted-By: Cursor Signed-off-by: Frank Kong <frkong@redhat.com> rh-pre-commit.version: 2.4.0 rh-pre-commit.check-secrets: ENABLED
Signed-off-by: Frank Kong <frkong@redhat.com> Assisted-By: Cursor rh-pre-commit.version: 2.4.0 rh-pre-commit.check-secrets: ENABLED
|
Skipping CI for Draft Pull Request. |
|
/test all |
PR Summary by QodoMigrate default frontend to Backstage NFS and retain OFS as app-legacy
AI Description
Diagram
High-Level Assessment
Files changed (22)
|
Code Review by Qodo
1.
|
Signed-off-by: Frank Kong <frkong@redhat.com> rh-pre-commit.version: 2.4.0 rh-pre-commit.check-secrets: ENABLED
Signed-off-by: Frank Kong <frkong@redhat.com> rh-pre-commit.version: 2.4.0 rh-pre-commit.check-secrets: ENABLED
Signed-off-by: Frank Kong <frkong@redhat.com> rh-pre-commit.version: 2.4.0 rh-pre-commit.check-secrets: ENABLED
Signed-off-by: Frank Kong <frkong@redhat.com> rh-pre-commit.version: 2.4.0 rh-pre-commit.check-secrets: ENABLED
Signed-off-by: Frank Kong <frkong@redhat.com> rh-pre-commit.version: 2.4.0 rh-pre-commit.check-secrets: ENABLED
Signed-off-by: Frank Kong <frkong@redhat.com> rh-pre-commit.version: 2.4.0 rh-pre-commit.check-secrets: ENABLED
Assisted-By: Cursor Signed-off-by: Frank Kong <frkong@redhat.com> rh-pre-commit.version: 2.4.0 rh-pre-commit.check-secrets: ENABLED
Assisted-By: Cursor Signed-off-by: Frank Kong <frkong@redhat.com> rh-pre-commit.version: 2.4.0 rh-pre-commit.check-secrets: ENABLED
…to-NFS Signed-off-by: Frank Kong <frkong@redhat.com> rh-pre-commit.version: 2.4.0 rh-pre-commit.check-secrets: ENABLED
Signed-off-by: Frank Kong <frkong@redhat.com> rh-pre-commit.version: 2.4.0 rh-pre-commit.check-secrets: ENABLED
|
The container image build workflow finished with status: |
Signed-off-by: Frank Kong <frkong@redhat.com> rh-pre-commit.version: 2.4.0 rh-pre-commit.check-secrets: ENABLED
…to-NFS Signed-off-by: Frank Kong <frkong@redhat.com> rh-pre-commit.version: 2.4.0 rh-pre-commit.check-secrets: ENABLED
|
The container image build workflow finished with status: |
Signed-off-by: Frank Kong <frkong@redhat.com> rh-pre-commit.version: 2.4.0 rh-pre-commit.check-secrets: ENABLED
# Conflicts: # .github/workflows/link-checker.config.json # docs/dynamic-plugins/migrating-config-to-new-frontend-system.md # packages/app-next/src/App.tsx # packages/backend/package.json # yarn.lock
|
There was a problem hiding this comment.
I still see many references to 'OFS' both in comments, disabled tests, and documentation. Since we have removed app-legacy entirely, we should remove any references to the old frontend system as well; it is no longer relevant for anyone. Likewise, for NFS there is no reason to call it out by name any longer, as it is the one and only default.
This can be handled as a follow-up PR; let's get this landed.
643ece6
into
redhat-developer:main
* fix(nfs): stop naming app-next on targets that no longer ship it
Every NFS lane applies a secret setting `APP_CONFIG_app_packageName:
app-next`. RHDH read that and called `resolvePackagePath("app-next")`,
which resolved because `packages/app-next/package.json` declared that name.
redhat-developer/rhdh#5232 merged on 2026-09-17 and renamed that package to
`packages/app`, whose package.json declares `app`. On any target built from
main the resolve now throws inside the app plugin's init and the backend
does not start, with a module-resolution error that looks nothing like its
cause. `ENABLE_STANDARD_MODULE_FEDERATION`, the secret's other key, was
removed from RHDH in the same change and no longer does anything.
The secret is still needed for the 1.x lines, which do ship the separate
package, so it is now applied only for those. `next` tracks main and is on
the 2.x line, so it no longer gets it and falls back to the app plugin's
own default of `app`, which is correct there.
Verified by mutation: applying the secret unconditionally, and moving the
version cutoff, each fail a test.
Fixes RHIDP-16520.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Signed-off-by: Gustavo Lira e Silva <guga.java@gmail.com>
* chore: bump to 2.1.15
The repo's Version Bump Check requires one when src/ changes.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Signed-off-by: Gustavo Lira e Silva <guga.java@gmail.com>
* docs: changelog entry for 2.1.15
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Signed-off-by: Gustavo Lira e Silva <guga.java@gmail.com>
* fix(nfs): drop the app-next secret rather than gating it on the version
Review finding: the version check protected a case that cannot happen.
The overlay branches pin this package exactly, main on 2.1.11 and
release-1.10 on 1.10.1, so a release branch never receives a 2.x release
and its one NFS lane keeps the behaviour it has today. The gate was inert
and only added a branch to reason about.
The whole file is now wrong for anything that does receive this version:
RHDH 2.x renamed `packages/app-next` to `packages/app` and removed
`ENABLE_STANDARD_MODULE_FEDERATION` entirely, so both keys name things that
no longer exist. Removed, and the app plugin's own default of `app` applies.
This is the smallest change that unbreaks the lanes. Collapsing the rest of
the NFS layer, the toggle, the auto-detection and the remaining config,
stays with RHIDP-15081.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Signed-off-by: Gustavo Lira e Silva <guga.java@gmail.com>
* docs: drop the removed NFS secret from the user-facing docs
Review finding from @hopehadfield. Two pages still told consumers the
package injects `APP_CONFIG_app_packageName: app-next` and
`ENABLE_STANDARD_MODULE_FEDERATION`, which would have led someone to
reintroduce by hand exactly what this PR removes.
The merge list in the deployment guide and the NFS section in the overlay
configuration reference now start at dynamic plugins, and the
`useNewFrontendSystem` row no longer claims it merges those secrets. The
auto-detection and namespace-suffix behaviour is unchanged and still
documented.
Also bumps the VitePress version nav and the five snippets that pin this
package from 2.1.14 to 2.1.15.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Signed-off-by: Gustavo Lira e Silva <guga.java@gmail.com>
* docs: say that the NFS layer contributes plugins and Helm values only
Three more places described the deleted secret layer, all found by
@hopehadfield:
- The deployment guide's `deploy()` steps said it merges NFS defaults for
app-config, secrets and dynamic plugins. `_applyAppConfig` and
`_applySecrets` merge common, auth and workspace files only.
- The environment-variables page listed `config/new-frontend-system/` as
carrying secrets.
- CLAUDE.md said secrets use the NFS layer order, and its cascade diagram
implied the layer applies to every config.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Signed-off-by: Gustavo Lira e Silva <guga.java@gmail.com>
---------
Signed-off-by: Gustavo Lira e Silva <guga.java@gmail.com>
Co-authored-by: Claude Opus 5 <noreply@anthropic.com>
CommonIcons.tsx and apis.ts were removed in #5232. Point the menu item icon docs at Backstage system icons and the existing extend icons section, and retarget the API factories link to apisModule.ts. Signed-off-by: Jon Koops <jonkoops@gmail.com>



Description
Migrates statically installed OFS elements to the new frontend system
Migrates RHDH to the Backstage New Frontend System (NFS) as the default app shell.
App shell
packages/app-next→packages/app(NFS); removed legacy OFSpackages/app/app-legacyand the DynamicRoot/Scalprum stackENABLE_STANDARD_MODULE_FEDERATIONandAPP_CONFIG_app_packageName=app-nextopt-in — Module Federation is always onpackages/theme-wrapper(NFS app-shell cleanup)Statically installed in
packages/appMoved to dynamic plugins (DPDY)
app-auth,app-integrations,app-defaults(previously statically bundled)global-header,homepage,techdocs(previously OFSmountPointsconfig)authProvidersModule)Removed / deferred
application-provider/application-listenerrenderer and E2E fixtures (no NFS equivalent yet)home-page-widget:home/random-jokeinstead ofmountPointsmenuItemsconfig (flat code-defined nav instead)Backend
schemaLocatornow searches fordist/.config-schema.jsonConfig & docs
dynamicPlugins.frontendtoapp.extensionsWhich issue(s) does this PR fix
PR acceptance criteria
Please make sure that the following steps are complete:
How to test changes / Special notes to the reviewer