Skip to content

feat(hubble): modernize graph workbench experience#743

Merged
imbajin merged 57 commits into
apache:masterfrom
hugegraph:cx-hubble-ui-ux2-pr
Jul 21, 2026
Merged

feat(hubble): modernize graph workbench experience#743
imbajin merged 57 commits into
apache:masterfrom
hugegraph:cx-hubble-ui-ux2-pr

Conversation

@imbajin

@imbajin imbajin commented Jul 19, 2026

Copy link
Copy Markdown
Member

Before -> After

follow #632, enhance the UI/UX + monitor/auth....

Area Before After
Graph workspace Navigation, GraphSpace/graph selection, and direct URLs could lose context or land on inconsistent surfaces. One route-first context connects Graph management, Schema, data preparation, Gremlin, algorithms, async tasks, accounts, and recovery paths.
User feedback Loading, empty, stale, partial, unsupported, and failed requests were handled unevenly. Explicit state, retry, canonical-back, error-boundary, keyboard-focus, localized copy, and responsive-workbench contracts across primary journeys.
Operations Cluster visibility depended on external Dashboard/Grafana links. Native capability-protected Cluster Overview, Nodes, and Node Detail aggregate Server/PD/Store facts with bounded fan-out, timeouts, caching, source freshness, and partial/stale reporting.
Authorization Frontend role inference and scattered endpoint checks made direct URLs, graphspace scope, and account mutations harder to reason about. Backend-issued minimal capability context; SUPERADMIN/SPACEADMIN/USER boundaries enforced for direct URLs, graphspace-scoped resources, account operations, and Operations.
Credentials and disclosure Sensitive values and upstream diagnostics could persist or surface through task/error paths. Password/token/header/secret-safe DTOs and errors; Loader retries rebuild credentials from the authenticated context instead of task metadata.
Deployment modes PD-backed and standalone Server behavior diverged in graph, account, and Operations surfaces. Explicit PD and authenticated standalone compatibility, with bounded fallbacks and localized unsupported-state behavior.

Review map

  • Primary product flow: onboarding -> GraphSpace/graph -> Schema/data preparation -> query/algorithm -> result/task recovery.
  • Primary operational flow: capability check -> source collection -> bounded aggregation -> fresh/partial/stale rendering.
  • Primary security flow: login/context -> capability enforcement -> graphspace-scoped mutation -> secret-safe response/error handling.

Scope

  • Includes Hubble frontend/backend, Java Client compatibility, tests, packaging, and documentation needed by the flows above.
  • Matching Server/PD/Store compatibility work: feat: support secure Hubble monitoring targets hugegraph#3096
  • Excludes a complete alert engine, notification channels, historical time-series storage, mobile layouts, and production capacity policy.

imbajin and others added 30 commits July 19, 2026 23:45
- add route-first GraphSpace and graph selection\n- preserve recent context without cross-space leakage\n- expose source-specific loading errors and retries\n- cover dual-mode, concurrency, and accessibility contracts
- link mode-aware Schema, data source, and import steps
- distinguish failed requests from honest empty states
- isolate stale responses and pause failed polling
- verify real datasource mutation and dual-mode routes
- separate history and favorite loading and retry state
- isolate late responses across graph context changes
- pause async polling after failures and while pending
- add task-result retry and explicit empty states
- add cached semantic zoom thresholds for dense graph labels
- fit force layouts after final layout completion
- preserve hovered labels across viewport changes
- cover density and zoom boundary contracts
- redesign login as a balanced accessible desktop shell
- align workspace navigation, surfaces, controls and spacing
- simplify compact graph card labels without changing full graph views
- share the topbar height token and preserve document scrolling
- include URL hash in request-time login redirects
- cover HTTP and business 401 redirect contracts
- verify login restores query and hash context
- assert unauthorized requests are not replayed
- label ten icon-only graph controls with localized text
- keep accessible names aligned with existing tooltips
- add regression coverage for query and algorithm tools
- apply the shared ring to discrete workbench controls
- move skip-link activation into the main workspace
- scope navigation topbar workspace and login styles
- add DOM and stylesheet regression contracts
- release submit loading after validation or request failures
- preserve password fields for non-200 responses and retries
- cover validation, rejection, business error, and success paths
- serialize create, edit, and auth submissions
- clear stale account detail and form state
- ignore late identity responses after switching users
- cover pending, race, and failure recovery
- compact the My profile and password forms with Workbench tokens
- give 404 recovery a bounded surface and direct workspace return
- preserve async task context with a graph-scoped return entry
- cover surface, routing, i18n, and form-alignment contracts
- improve login balance and brand rendering
- clarify navigation information architecture
- expose unavailable operations as coming soon
- render profile empty values consistently
- default fresh sessions to English
- share language fallback across UI and requests
- keep explicit login language selections persistent
- focus graph canvas for fullscreen shortcuts
- restore workbench route title helpers and styles\n- keep internal test routes development-only\n- remove duplicated task action definition
- retain query hash across expired-session redirects\n- surface actionable Loader task creation errors\n- cover both recovery contracts with focused tests
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
- build a retry-safe 41-vertex literature graph
- expose the demo from the graph action menu
- link official MovieLens Small resources
- restore complete ASF headers for CI checks
- keep local Codex task state out of the PR
- control the active query result view
- select Table for results beyond 300 nodes or edges
- reset normal results to the graph canvas
- cover result transitions with a regression test
- expose quick demos from the data import page
- gray out unavailable operations before navigation
- localize built-in graphspace and admin labels
- preserve user-defined nicknames and import boundaries
- fetch the complete PD GraphSpace collection explicitly
- reconcile missing GraphSpace and graph deep links
- discard stale graph responses after context switches
- cover PD, non-PD, retry, and race scenarios
- locate graph import journey by stable key
- provide valid graph context in topbar request tests
- preserve navigation and auth behavior assertions
- create Red Chamber vertices with the name primary key
- verify the actual schema builder avoids custom string IDs
- distinguish unavailable Dashboard services from Coming Soon
- integrate frontend favorite-name validation hardening
- preserve query shortcuts, pending guards, and dashboard capability states
- include Docker build and dependency-license updates from master
- update the runtime language smoke for the Radio switcher
- restore complete ASF headers on newly added source files
- guard task and graph-detail responses against null values
- add a reusable local license-eye check command
- detect the selected English radio by its checked input
- avoid relying on the former Select option label
- preserve the existing smoke report contract
- remove data-plane secrets from GraphSpace views
- bind permission checks to each target GraphSpace path
- preserve actual snapshot dates across aggregate metrics
- cover secret filtering, permissions, and mixed dates
- align GraphSpace, graph and account permission semantics
- improve Gremlin, schema, import and algorithm workflows
- add resilient error states, defaults and field guidance
- cover backend authorization and ingestion transaction safety
- add regression tests and original UX requirements
- name schema creation retry constants
- preserve existing retry behavior and coverage
- add before and current UI evidence for PR summary
- include navigation and graph-list screenshots
imbajin added 15 commits July 19, 2026 23:45
- clarify query shortcuts, empty states, and compact results
- correct Schema navigation and documentation paths
- explain operations metrics and external Dashboard scope
- add contextual sidebar expansion and onboarding links
- restore Schema template and in-graph application flows
- clarify query, algorithm, and demo-data interactions
- adapt standalone operations navigation and node metrics
- align topbar, language, and sidebar responsive behavior
- prevent long labels from overlapping form controls
- prefill graphspace resource limits with defaults
- keep nickname validation aligned with server rules
- cover layout and submitted default values
Copilot AI review requested due to automatic review settings July 19, 2026 15:53
@dosubot dosubot Bot added size:XXL This PR changes 1000+ lines, ignoring generated files. client hugegraph-client enhancement New feature or request hubble hugegraph-hubble labels Jul 19, 2026

This comment was marked as outdated.

- replace three abbreviated test headers with the standard Apache-2.0 text\n- align the files with license-eye header validation\n- keep runtime code and test behavior unchanged
@codecov

codecov Bot commented Jul 19, 2026

Copy link
Copy Markdown

Codecov Report

❌ Patch coverage is 71.88889% with 759 lines in your changes missing coverage. Please review.
✅ Project coverage is 42.04%. Comparing base (b066b80) to head (d963a2a).
⚠️ Report is 139 commits behind head on master.

Files with missing lines Patch % Lines
.../hugegraph/service/op/LiveOperationsCollector.java 78.82% 73 Missing and 28 partials ⚠️
.../hugegraph/service/op/OperationsPayloadParser.java 78.84% 34 Missing and 39 partials ⚠️
...graph/service/op/DefaultOperationsDataService.java 75.00% 35 Missing and 22 partials ⚠️
...org/apache/hugegraph/service/auth/RoleService.java 60.65% 34 Missing and 14 partials ⚠️
...g/apache/hugegraph/service/auth/BelongService.java 19.29% 43 Missing and 3 partials ⚠️
...egraph/controller/graph/SampleGraphController.java 78.46% 35 Missing and 10 partials ⚠️
...ache/hugegraph/controller/auth/UserController.java 42.59% 27 Missing and 4 partials ⚠️
...che/hugegraph/service/op/OperationsHttpClient.java 73.50% 13 Missing and 18 partials ⚠️
...apache/hugegraph/service/graphs/GraphsService.java 68.53% 23 Missing and 5 partials ⚠️
...che/hugegraph/service/space/GraphSpaceService.java 53.33% 28 Missing ⚠️
... and 33 more
Additional details and impacted files
@@              Coverage Diff              @@
##             master     #743       +/-   ##
=============================================
- Coverage     62.49%   42.04%   -20.46%     
- Complexity     1903     3667     +1764     
=============================================
  Files           262      599      +337     
  Lines          9541    26973    +17432     
  Branches        886     2921     +2035     
=============================================
+ Hits           5963    11341     +5378     
- Misses         3190    14614    +11424     
- Partials        388     1018      +630     

☔ View full report in Codecov by Harness.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

imbajin added 2 commits July 20, 2026 00:32
- expose stable language and GraphSpace title test anchors\n- update browser smoke selectors for the current toggle UI\n- cover both anchors with focused frontend tests
- load runtime config during API-backed browser authentication
- validate PD and non-PD graphspace landing contracts separately
- cover config injection and failure handling with Node tests
imbajin added a commit to apache/hugegraph that referenced this pull request Jul 21, 2026
Provide the minimum Server/PD compatibility and security boundary needed by Hubble native
monitoring and GraphSpace administration. Matching Hubble work:
apache/hugegraph-toolchain#743
@imbajin
imbajin merged commit 5e26a54 into apache:master Jul 21, 2026
14 of 15 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

client hugegraph-client enhancement New feature or request hubble hugegraph-hubble size:XXL This PR changes 1000+ lines, ignoring generated files.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants