Repository navigation
feat(portal): one shared app bar on every portal app - #613
Merged
Merged
Conversation
The back-to-Portal link was hand-rolled per page: top-left on some, top-right on others, only shown once a persona was chosen on Catalog/Explorer/Lineage, and missing on Governance Metrics, Demo Admin and the docs viewer. Only Explorer and Data Mesh had a light/dark toggle, and identity badges had three looks in three places. Every app now renders the same bar: [⌂ Portal] | icon Title subtitle | page controls | extras, Promise/Memento, identity, theme - static/app-bar.js (no framework): theme state on one 'egeria-theme' key, applied in <head> before first paint; declarative <header class="eg-appbar"> for plain-JS pages; floating Feedback for pages without React. - AppHeader / ThemeToggle / useEgeriaTheme / ForLineageToggle in egeria-shared-ui.js for the React SPAs. The Promise/Memento toggle moves into the bar (it used to sit on top of the Feedback button). - Portal link is unconditional; identity is persona, else signed-in user, else "Choose persona" (quickstart) / nothing (freshstart), the same on every app. - :root.light palettes for every page that lacked one; Overview, Local Dashboards, Governance Metrics and the docs viewer re-theme their charts and diagrams on toggle. The Portal keeps its own header but gains the toggle. - Feedback added to Lineage, Data Mesh, Local Dashboards, Governance Metrics and docs; Overview's private copy replaced by the shared one. - tests/test_app_bar_consistency.py stops pages drifting back to their own copy. Applied to quickstart, freshstart and portal-docs. Quickstart verified in the browser (dark + light); freshstart static checks only. Signed-off-by: Dan Wolfson <dan.wolfson@pdr-associates.com>
Burst shape, what the Portal code does and doesn't poll, what is ruled out, and the Egeria ISSUE-90 caveat (refused search hits are logged as unauthorized access attempts until the pending fix). Signed-off-by: Dan Wolfson <dan.wolfson@pdr-associates.com>
mandy-chessell
approved these changes
Oct 6, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Why
The back-to-Portal link was hand-rolled per page: top-left on some, top-right on others, shown only after choosing a persona on Catalog, Explorer and Lineage, and missing on Governance Metrics, Demo Admin and the docs viewer. Only Explorer and Data Mesh had a light/dark toggle, and identity badges had three different looks in three different places.
What
Every app now renders the same bar:
⌂ Portal | icon Title subtitle | page controls | extras · Promise/Memento · identity · ☀/☾static/app-bar.js(new, no framework):egeria-themekey and applies it in<head>before first paint.<header class="eg-appbar">for plain-JS pages.AppHeader/ThemeToggle/useEgeriaTheme/ForLineageToggleinegeria-shared-ui.jsfor the React SPAs. The Promise/Memento toggle moves into the bar; it used to sit on top of the Feedback button.:root.lightpalettes added to every page that lacked one.tests/test_app_bar_consistency.py: stops pages drifting back to their own Portal link or theme handling (74 cases).BACKLOG.md:Testing
Notes
egeria-overview.htmlis also changed by #609, #611 and #612. The hunks are in different places (header, feedback widget, vega config, user chip), but whichever merges later may need a rebase.🤖 Generated with Claude Code