feat(global-header): Promote global-header NFS plugin from /alpha to …#3413
feat(global-header): Promote global-header NFS plugin from /alpha to …#3413rohitratannagar wants to merge 3 commits into
Conversation
|
This pull request adds a new top-level directory under |
|
Important This PR includes changes that affect public-facing API. Please ensure you are adding/updating documentation for new features or behavior. Changed Packages
|
…stable Signed-off-by: rohitratannagar <rohitratannagar2003@gmail.com>
1bd4724 to
94f0809
Compare
Codecov Report❌ Patch coverage is Additional details and impacted files@@ Coverage Diff @@
## main #3413 +/- ##
=======================================
Coverage 54.00% 54.00%
=======================================
Files 2403 2404 +1
Lines 87620 87631 +11
Branches 24260 24263 +3
=======================================
+ Hits 47315 47322 +7
- Misses 38752 38755 +3
- Partials 1553 1554 +1
*This pull request uses carry forward flags. Click here to find out more. Continue to review full report in Codecov by Harness.
🚀 New features to boost your workflow:
|
|
This PR has been automatically marked as stale because it has not had recent activity from the author. It will be closed if no further activity occurs. If the PR was closed and you want it re-opened, let us know and we'll re-open the PR so that you can continue the contribution! |
Signed-off-by: rohitratannagar <rohitratannagar2003@gmail.com>
94f0809 to
d60b316
Compare
| menuItems: [], | ||
| }); | ||
| const CONTEXT_KEY = '__global_header_context__' as keyof typeof globalThis; | ||
|
|
There was a problem hiding this comment.
We will be global store using @backstage/version-bridge + useSyncExternalStore which will help us eliminating the Provider dependency for NFS consumers and resolving cross-MF-boundary state sharing issues cleanly something similar to what I am trying here : #3697.
Signed-off-by: rohitratannagar <rohitratannagar2003@gmail.com>
|



Summary
Jira: https://redhat.atlassian.net/browse/RHIDP-14169
after changes
Screen.Recording.2026-07-06.at.12.39.32.AM.mov
Promotes the global-header NFS (New Frontend System) plugin from /alpha to stable exports.
Restructures the Global Header plugin so the New Frontend System (NFS) becomes the default entry point while preserving full backward compatibility for the Old Frontend System (OFS) through a dedicated
./legacyexport.Previously, NFS lived under
src/alphaand was imported via:while OFS was the default package export.
This PR flips that relationship:
./legacysubpath./alphaimports continue to work (deprecated) for backward compatibility.@alphato@public.dynamicFrontendFeaturesLoader().fix
nameparameter to theTranslationBlueprint.make()call in thestable (non-alpha) global-header plugin export. Without it, the extension ID is
ambiguous and can collide with other unnamed translation extensions at runtime. And with the name they can be optionally disabled in the app.
Test plan
yarn tsc:fullpasses in the global-header workspaceyarn build:api-reports:only --cipassesyarn start)Key Changes
src/alpha/index.ts→src/index.tssrc/legacy.ts/legacy/alphanow re-exports from rootPluginRootScalprum exposed modulemodule: Legacyto OFS mount points@alphato@publicglobalHeaderModuleExport.tsglobalHeaderModuleas a default export for Module FederationglobalHeaderTranslationsModuleExport.tsappuses the root package,app-legacyimports from/legacyMigration Guide
NFS (Recommended)
Before
After
OFS (Legacy)
Before
After
Testing
NFS Mode
Enable the local plugin in
dynamic-plugins.override.yaml.Configure extensions:
Expected:
GlobalHeaderModuleExportGlobalHeaderTranslationsModuleExportOFS Mode
Configure every Global Header mount point using:
Then start RHDH Local:
Checklist