Skip to content

feat(hubble): modernize graph workbench experience#19

Open
imbajin wants to merge 57 commits into
masterfrom
cx-hubble-ui-ux2-pr
Open

feat(hubble): modernize graph workbench experience#19
imbajin wants to merge 57 commits into
masterfrom
cx-hubble-ui-ux2-pr

Conversation

@imbajin

@imbajin imbajin commented Jul 12, 2026

Copy link
Copy Markdown

What this PR delivers

This PR turns Hubble into a cohesive graph workbench with native operations, centralized
authorization context, safer credential handling, and recoverable end-to-end journeys. Native
monitoring no longer depends on Dashboard or Grafana; Dashboard remains an optional advanced
entry.

Product and workflow modernization

  • Unifies navigation and GraphSpace/graph context across graph management, Schema, Gremlin,
    algorithms, async tasks, data sources/import, accounts, profile, and Operations.
  • Connects the primary journeys from workspace onboarding through Schema/data preparation,
    query, result inspection, and task recovery; direct URLs and legacy aliases now resolve to a
    stable destination or an actionable error state.
  • Adds consistent loading, empty, partial, stale, unsupported, error, retry, and canonical-back
    states, plus keyboard focus, accessible names, localized status text, and responsive desktop
    layouts.
  • Completes a fresh inventory of all 30/30 production routes; current audit result is
    P0 = 0, P1 = 0, with no unresolved actionable P2.

Native cluster Operations

  • Adds capability-protected Cluster Overview, Nodes, and Node Detail routes.
  • Aggregates existing Server, PD, and Store facts into stable allowlisted DTOs with per-source
    freshness, bounded caches/fan-out, response limits, timeouts, and explicit partial/stale state.
  • Covers 3/30/300-node topology behavior, PD Leader changes, node filtering/search/pagination,
    and independent system/drive/Raft/backend metric groups.
  • Preserves healthy sources when Server, PD, Store, or one Store is unavailable; an unavailable
    Dashboard never blocks native monitoring.

Authorization and security contract

Area Current behavior
Roles Backend emits one minimal SUPERADMIN / SPACEADMIN / USER capability/action context; the frontend does not infer security permissions from role names or cached flags.
Operations Only SUPERADMIN can access cluster Operations; standalone ADMIN maps through the backend compatibility context, while standalone USER remains restricted.
GraphSpace administration SPACEADMIN can manage only members, roles, targets, and grants inside assigned spaces; global account/space operations remain SUPERADMIN-only.
Credentials Hubble does not retain login passwords or issue user tokens. Loader retry/resume rebuilds credentials from the current authenticated context instead of persisting them in task metadata.
Isolation 401/403, direct URL denial, downgrade, same-origin account switching, stale responses, browser-cache partitioning, IDOR, foreign-role/target injection, and scoped mutations are covered.
Disclosure boundaries Passwords, tokens, authorization/cookie headers, service secrets, private keys, upstream paths, raw queries, and internal exception details are removed from DTOs, DOM, logs, and public errors.
Internal services PD/Store access stays behind Hubble with explicit target allowlists, trusted discovery, DNS/SSRF checks, bounded reads, and secret-safe diagnostics.

Deployment compatibility

  • Supports both PD-backed deployments and authenticated standalone Server deployments.
  • Standalone mode has bounded graph-profile fallback, ADMIN/USER account metadata compatibility,
    localized unsupported PD/Store states, and token-authenticated Gremlin execution.
  • The matching Server/PD/Store compatibility changes are in
    hugegraph/hugegraph#161.
  • This PR intentionally does not add a complete alert engine, notification channels,
    historical time-series storage, mobile layouts, or production capacity policy.

UI evidence

Real Chrome validation covers PD and standalone deployments, role/login switching, source
failure/recovery, and five desktop viewports: 1280×720, 1366×768, 1440×900, 1920×1080, and
2560×1440.

Verification — current head ec034d0a

  • Hubble frontend: 135 suites / 730 tests passed; ESLint passed; zh-CN/en-US parity
    2239/2239 keys with 1525 statically referenced keys; production build passed.
  • Hubble backend affected/full profiles, Java Client unit suite, Checkstyle, RAT/license checks,
    and cross-module regression gates passed.
  • Hubble package/distribution passed: 417 JARs, 275 license files, 43 frontend license files, and
    10 native-bearing JARs; release tarball SHA-256:
    600a5283f1f576a26227549d783ad11adfa93b84ed2073cd6c8d32d0c02aef06.
  • GitHub: 14/14 checks passed, merge state CLEAN, and 61/61 review threads resolved.
  • Final independent read-only review and targeted re-review: Critical 0 / Important 0 / Minor 0.

Copilot AI review requested due to automatic review settings July 12, 2026 10:30
@coderabbitai

coderabbitai Bot commented Jul 12, 2026

Copy link
Copy Markdown

Important

Review skipped

Too many files!

This PR contains 522 files, which is 422 over the limit of 100.

To get a review, narrow the scope:
• coderabbit review --type committed # exclude uncommitted changes
• coderabbit review --dir # limit to a subdirectory
• coderabbit review --base # compare against a closer base

Upgrade to a paid plan to raise the limit.

Usage-priced reviews support at most 300 files.

⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: ec8befed-1251-43e5-9120-dc3a43c9ca96

📥 Commits

Reviewing files that changed from the base of the PR and between f9c7192 and d963a2a.

⛔ Files ignored due to path filters (2)
  • hugegraph-hubble/hubble-fe/src/assets/hugegraph-mark.svg is excluded by !**/*.svg
  • hugegraph-hubble/hubble-fe/yarn.lock is excluded by !**/yarn.lock, !**/*.lock
📒 Files selected for processing (529)
  • README.md
  • hugegraph-client/src/main/java/org/apache/hugegraph/api/auth/GroupAPI.java
  • hugegraph-client/src/main/java/org/apache/hugegraph/api/auth/ManagerAPI.java
  • hugegraph-client/src/main/java/org/apache/hugegraph/driver/AuthManager.java
  • hugegraph-client/src/main/java/org/apache/hugegraph/driver/GremlinManager.java
  • hugegraph-client/src/main/java/org/apache/hugegraph/driver/factory/PDHugeClientFactory.java
  • hugegraph-client/src/main/java/org/apache/hugegraph/structure/auth/Access.java
  • hugegraph-client/src/main/java/org/apache/hugegraph/structure/auth/Belong.java
  • hugegraph-client/src/main/java/org/apache/hugegraph/structure/auth/HugePermission.java
  • hugegraph-client/src/main/java/org/apache/hugegraph/structure/auth/Target.java
  • hugegraph-client/src/main/java/org/apache/hugegraph/structure/space/GraphSpace.java
  • hugegraph-client/src/test/java/org/apache/hugegraph/driver/GremlinManagerTest.java
  • hugegraph-client/src/test/java/org/apache/hugegraph/unit/ManagerAPITest.java
  • hugegraph-client/src/test/java/org/apache/hugegraph/unit/PDHugeClientFactoryTest.java
  • hugegraph-client/src/test/java/org/apache/hugegraph/unit/UnitTestSuite.java
  • hugegraph-hubble/README.md
  • hugegraph-hubble/hubble-be/src/main/java/org/apache/hugegraph/common/Constant.java
  • hugegraph-hubble/hubble-be/src/main/java/org/apache/hugegraph/config/DatabaseSchemaMigrator.java
  • hugegraph-hubble/hubble-be/src/main/java/org/apache/hugegraph/controller/BaseController.java
  • hugegraph-hubble/hubble-be/src/main/java/org/apache/hugegraph/controller/algorithm/VermeerAlgoController.java
  • hugegraph-hubble/hubble-be/src/main/java/org/apache/hugegraph/controller/auth/AccessController.java
  • hugegraph-hubble/hubble-be/src/main/java/org/apache/hugegraph/controller/auth/BelongController.java
  • hugegraph-hubble/hubble-be/src/main/java/org/apache/hugegraph/controller/auth/GraphSpaceUserController.java
  • hugegraph-hubble/hubble-be/src/main/java/org/apache/hugegraph/controller/auth/LoginController.java
  • hugegraph-hubble/hubble-be/src/main/java/org/apache/hugegraph/controller/auth/RoleController.java
  • hugegraph-hubble/hubble-be/src/main/java/org/apache/hugegraph/controller/auth/TargetController.java
  • hugegraph-hubble/hubble-be/src/main/java/org/apache/hugegraph/controller/auth/UserController.java
  • hugegraph-hubble/hubble-be/src/main/java/org/apache/hugegraph/controller/graph/SampleGraphController.java
  • hugegraph-hubble/hubble-be/src/main/java/org/apache/hugegraph/controller/graphs/GraphsController.java
  • hugegraph-hubble/hubble-be/src/main/java/org/apache/hugegraph/controller/ingest/IngestController.java
  • hugegraph-hubble/hubble-be/src/main/java/org/apache/hugegraph/controller/load/JobManagerController.java
  • hugegraph-hubble/hubble-be/src/main/java/org/apache/hugegraph/controller/load/LoadTaskController.java
  • hugegraph-hubble/hubble-be/src/main/java/org/apache/hugegraph/controller/op/DashboardController.java
  • hugegraph-hubble/hubble-be/src/main/java/org/apache/hugegraph/controller/op/K8sTokenController.java
  • hugegraph-hubble/hubble-be/src/main/java/org/apache/hugegraph/controller/op/OperationsController.java
  • hugegraph-hubble/hubble-be/src/main/java/org/apache/hugegraph/controller/space/GraphSpaceController.java
  • hugegraph-hubble/hubble-be/src/main/java/org/apache/hugegraph/controller/space/VermeerController.java
  • hugegraph-hubble/hubble-be/src/main/java/org/apache/hugegraph/entity/GraphConnection.java
  • hugegraph-hubble/hubble-be/src/main/java/org/apache/hugegraph/entity/auth/PasswordEntity.java
  • hugegraph-hubble/hubble-be/src/main/java/org/apache/hugegraph/entity/auth/UserEntity.java
  • hugegraph-hubble/hubble-be/src/main/java/org/apache/hugegraph/entity/load/LoadTask.java
  • hugegraph-hubble/hubble-be/src/main/java/org/apache/hugegraph/exception/ForbiddenException.java
  • hugegraph-hubble/hubble-be/src/main/java/org/apache/hugegraph/handler/ExceptionAdvisor.java
  • hugegraph-hubble/hubble-be/src/main/java/org/apache/hugegraph/handler/ResponseAdvisor.java
  • hugegraph-hubble/hubble-be/src/main/java/org/apache/hugegraph/options/HubbleOptions.java
  • hugegraph-hubble/hubble-be/src/main/java/org/apache/hugegraph/service/HugeClientPoolService.java
  • hugegraph-hubble/hubble-be/src/main/java/org/apache/hugegraph/service/auth/AccessService.java
  • hugegraph-hubble/hubble-be/src/main/java/org/apache/hugegraph/service/auth/AuthContextService.java
  • hugegraph-hubble/hubble-be/src/main/java/org/apache/hugegraph/service/auth/AuthService.java
  • hugegraph-hubble/hubble-be/src/main/java/org/apache/hugegraph/service/auth/BelongService.java
  • hugegraph-hubble/hubble-be/src/main/java/org/apache/hugegraph/service/auth/GraphSpaceUserService.java
  • hugegraph-hubble/hubble-be/src/main/java/org/apache/hugegraph/service/auth/RoleService.java
  • hugegraph-hubble/hubble-be/src/main/java/org/apache/hugegraph/service/auth/TargetService.java
  • hugegraph-hubble/hubble-be/src/main/java/org/apache/hugegraph/service/auth/UserService.java
  • hugegraph-hubble/hubble-be/src/main/java/org/apache/hugegraph/service/graphs/GraphsService.java
  • hugegraph-hubble/hubble-be/src/main/java/org/apache/hugegraph/service/load/JobManagerService.java
  • hugegraph-hubble/hubble-be/src/main/java/org/apache/hugegraph/service/load/LoadTaskService.java
  • hugegraph-hubble/hubble-be/src/main/java/org/apache/hugegraph/service/op/DefaultOperationsDataService.java
  • hugegraph-hubble/hubble-be/src/main/java/org/apache/hugegraph/service/op/LiveOperationsCollector.java
  • hugegraph-hubble/hubble-be/src/main/java/org/apache/hugegraph/service/op/MalformedUpstreamException.java
  • hugegraph-hubble/hubble-be/src/main/java/org/apache/hugegraph/service/op/OperationsCapabilityService.java
  • hugegraph-hubble/hubble-be/src/main/java/org/apache/hugegraph/service/op/OperationsCollector.java
  • hugegraph-hubble/hubble-be/src/main/java/org/apache/hugegraph/service/op/OperationsDataService.java
  • hugegraph-hubble/hubble-be/src/main/java/org/apache/hugegraph/service/op/OperationsHttpClient.java
  • hugegraph-hubble/hubble-be/src/main/java/org/apache/hugegraph/service/op/OperationsModels.java
  • hugegraph-hubble/hubble-be/src/main/java/org/apache/hugegraph/service/op/OperationsNodeNotFoundException.java
  • hugegraph-hubble/hubble-be/src/main/java/org/apache/hugegraph/service/op/OperationsPayloadParser.java
  • hugegraph-hubble/hubble-be/src/main/java/org/apache/hugegraph/service/op/UpstreamRequestException.java
  • hugegraph-hubble/hubble-be/src/main/java/org/apache/hugegraph/service/op/UpstreamResponseTooLargeException.java
  • hugegraph-hubble/hubble-be/src/main/java/org/apache/hugegraph/service/query/QueryService.java
  • hugegraph-hubble/hubble-be/src/main/java/org/apache/hugegraph/service/space/GraphSpaceService.java
  • hugegraph-hubble/hubble-be/src/main/java/org/apache/hugegraph/service/space/VermeerService.java
  • hugegraph-hubble/hubble-be/src/main/resources/demo/hlm.txt
  • hugegraph-hubble/hubble-be/src/main/resources/hugegraph-hubble.properties
  • hugegraph-hubble/hubble-be/src/main/resources/i18n/messages.properties
  • hugegraph-hubble/hubble-be/src/main/resources/i18n/messages_zh_CN.properties
  • hugegraph-hubble/hubble-be/src/test/java/org/apache/hugegraph/controller/auth/AccountMutationAuthorizationTest.java
  • hugegraph-hubble/hubble-be/src/test/java/org/apache/hugegraph/controller/auth/GraphSpaceAuthMutationAuthorizationTest.java
  • hugegraph-hubble/hubble-be/src/test/java/org/apache/hugegraph/controller/auth/GraphSpaceAuthOwnershipTest.java
  • hugegraph-hubble/hubble-be/src/test/java/org/apache/hugegraph/controller/ingest/IngestControllerTest.java
  • hugegraph-hubble/hubble-be/src/test/java/org/apache/hugegraph/controller/space/GraphSpaceControllerTest.java
  • hugegraph-hubble/hubble-be/src/test/java/org/apache/hugegraph/handler/ExceptionAdvisorStatusTest.java
  • hugegraph-hubble/hubble-be/src/test/java/org/apache/hugegraph/handler/ResponseAdvisorStatusTest.java
  • hugegraph-hubble/hubble-be/src/test/java/org/apache/hugegraph/service/auth/AuthContextServiceTest.java
  • hugegraph-hubble/hubble-be/src/test/java/org/apache/hugegraph/service/auth/UserServiceLevelTest.java
  • hugegraph-hubble/hubble-be/src/test/java/org/apache/hugegraph/service/load/IngestTransactionIntegrationTest.java
  • hugegraph-hubble/hubble-be/src/test/java/org/apache/hugegraph/service/op/DefaultOperationsDataServiceTest.java
  • hugegraph-hubble/hubble-be/src/test/java/org/apache/hugegraph/service/op/LiveOperationsCollectorTest.java
  • hugegraph-hubble/hubble-be/src/test/java/org/apache/hugegraph/service/op/OperationsCapabilityServiceTest.java
  • hugegraph-hubble/hubble-be/src/test/java/org/apache/hugegraph/service/op/OperationsHttpClientTest.java
  • hugegraph-hubble/hubble-be/src/test/java/org/apache/hugegraph/service/op/OperationsIdentityContractTest.java
  • hugegraph-hubble/hubble-be/src/test/java/org/apache/hugegraph/service/op/OperationsPayloadParserTest.java
  • hugegraph-hubble/hubble-be/src/test/java/org/apache/hugegraph/service/space/GraphSpaceServiceTest.java
  • hugegraph-hubble/hubble-be/src/test/java/org/apache/hugegraph/unit/AuthSecurityTest.java
  • hugegraph-hubble/hubble-be/src/test/java/org/apache/hugegraph/unit/AuthzRouteRegistrationTest.java
  • hugegraph-hubble/hubble-be/src/test/java/org/apache/hugegraph/unit/BaseControllerGremlinClientTest.java
  • hugegraph-hubble/hubble-be/src/test/java/org/apache/hugegraph/unit/DashboardControllerTest.java
  • hugegraph-hubble/hubble-be/src/test/java/org/apache/hugegraph/unit/FileMappingSchemaTest.java
  • hugegraph-hubble/hubble-be/src/test/java/org/apache/hugegraph/unit/GraphsServiceDefaultTest.java
  • hugegraph-hubble/hubble-be/src/test/java/org/apache/hugegraph/unit/HubbleOptionsTest.java
  • hugegraph-hubble/hubble-be/src/test/java/org/apache/hugegraph/unit/HugeClientPoolServiceTest.java
  • hugegraph-hubble/hubble-be/src/test/java/org/apache/hugegraph/unit/JobManagerServiceTest.java
  • hugegraph-hubble/hubble-be/src/test/java/org/apache/hugegraph/unit/K8sTokenEndpointSecurityTest.java
  • hugegraph-hubble/hubble-be/src/test/java/org/apache/hugegraph/unit/LoadTaskServiceTest.java
  • hugegraph-hubble/hubble-be/src/test/java/org/apache/hugegraph/unit/LoaderScopeControllerTest.java
  • hugegraph-hubble/hubble-be/src/test/java/org/apache/hugegraph/unit/OperationsAccessContractTest.java
  • hugegraph-hubble/hubble-be/src/test/java/org/apache/hugegraph/unit/OperationsControllerTest.java
  • hugegraph-hubble/hubble-be/src/test/java/org/apache/hugegraph/unit/QueryServiceTest.java
  • hugegraph-hubble/hubble-be/src/test/java/org/apache/hugegraph/unit/SampleGraphControllerTest.java
  • hugegraph-hubble/hubble-be/src/test/java/org/apache/hugegraph/unit/UnitTestSuite.java
  • hugegraph-hubble/hubble-be/src/test/java/org/apache/hugegraph/unit/UserServiceCompatibilityTest.java
  • hugegraph-hubble/hubble-be/src/test/java/org/apache/hugegraph/unit/VermeerCredentialSafetyTest.java
  • hugegraph-hubble/hubble-be/src/test/resources/database/ingest-transaction-schema.sql
  • hugegraph-hubble/hubble-dist/assembly/static/conf/hugegraph-hubble.properties
  • hugegraph-hubble/hubble-dist/assembly/travis/run_ui_browser_smoke.js
  • hugegraph-hubble/hubble-dist/assembly/travis/run_ui_i18n_switch_smoke.js
  • hugegraph-hubble/hubble-dist/assembly/travis/ui_auth.js
  • hugegraph-hubble/hubble-dist/assembly/travis/ui_auth.test.js
  • hugegraph-hubble/hubble-fe/package.json
  • hugegraph-hubble/hubble-fe/src/App.css
  • hugegraph-hubble/hubble-fe/src/App.js
  • hugegraph-hubble/hubble-fe/src/App.scss
  • hugegraph-hubble/hubble-fe/src/App.test.js
  • hugegraph-hubble/hubble-fe/src/accessible-click-actions.test.js
  • hugegraph-hubble/hubble-fe/src/api/analysis-context-contract.test.js
  • hugegraph-hubble/hubble-fe/src/api/analysis.js
  • hugegraph-hubble/hubble-fe/src/api/auth-contract.test.js
  • hugegraph-hubble/hubble-fe/src/api/auth.js
  • hugegraph-hubble/hubble-fe/src/api/languageHeader.js
  • hugegraph-hubble/hubble-fe/src/api/manage-contract.test.js
  • hugegraph-hubble/hubble-fe/src/api/manage.js
  • hugegraph-hubble/hubble-fe/src/api/operations.js
  • hugegraph-hubble/hubble-fe/src/api/operations.test.js
  • hugegraph-hubble/hubble-fe/src/api/request-error-semantics.test.js
  • hugegraph-hubble/hubble-fe/src/api/request-language-header.test.js
  • hugegraph-hubble/hubble-fe/src/api/request.js
  • hugegraph-hubble/hubble-fe/src/auth/AuthContext.js
  • hugegraph-hubble/hubble-fe/src/auth/AuthContext.test.js
  • hugegraph-hubble/hubble-fe/src/components/BrandLockup/index.js
  • hugegraph-hubble/hubble-fe/src/components/BrandLockup/index.module.scss
  • hugegraph-hubble/hubble-fe/src/components/CodeEditor/index.js
  • hugegraph-hubble/hubble-fe/src/components/CodeEditor/index.test.js
  • hugegraph-hubble/hubble-fe/src/components/CodeEditor/syntax/gremlin.js
  • hugegraph-hubble/hubble-fe/src/components/CodeEditor/syntax/gremlin.test.js
  • hugegraph-hubble/hubble-fe/src/components/CodeEditor/syntax/groovy-language.test.js
  • hugegraph-hubble/hubble-fe/src/components/CodeEditor/syntax/groovy.js
  • hugegraph-hubble/hubble-fe/src/components/CodeEditor/syntax/index.js
  • hugegraph-hubble/hubble-fe/src/components/ColumnSettings/index.js
  • hugegraph-hubble/hubble-fe/src/components/ColumnSettings/index.module.scss
  • hugegraph-hubble/hubble-fe/src/components/ColumnSettings/index.test.js
  • hugegraph-hubble/hubble-fe/src/components/DataPreparationNav/index.js
  • hugegraph-hubble/hubble-fe/src/components/DataPreparationNav/index.module.scss
  • hugegraph-hubble/hubble-fe/src/components/DataPreparationNav/index.test.js
  • hugegraph-hubble/hubble-fe/src/components/FormHelpLabel/index.js
  • hugegraph-hubble/hubble-fe/src/components/GraphContextSwitcher/index.js
  • hugegraph-hubble/hubble-fe/src/components/GraphContextSwitcher/index.module.scss
  • hugegraph-hubble/hubble-fe/src/components/GraphContextSwitcher/index.test.js
  • hugegraph-hubble/hubble-fe/src/components/GraphJourneyNav/index.js
  • hugegraph-hubble/hubble-fe/src/components/GraphJourneyNav/index.module.scss
  • hugegraph-hubble/hubble-fe/src/components/GraphJourneyNav/index.test.js
  • hugegraph-hubble/hubble-fe/src/components/GraphinView/index.js
  • hugegraph-hubble/hubble-fe/src/components/GraphinView/index.test.js
  • hugegraph-hubble/hubble-fe/src/components/LanguageToggle/index.js
  • hugegraph-hubble/hubble-fe/src/components/LanguageToggle/index.module.scss
  • hugegraph-hubble/hubble-fe/src/components/LanguageToggle/index.test.js
  • hugegraph-hubble/hubble-fe/src/components/RouteErrorBoundary/index.js
  • hugegraph-hubble/hubble-fe/src/components/RouteErrorBoundary/index.test.js
  • hugegraph-hubble/hubble-fe/src/components/ShortcutHelp/index.js
  • hugegraph-hubble/hubble-fe/src/components/ShortcutHelp/index.test.js
  • hugegraph-hubble/hubble-fe/src/components/Sidebar/index.ant.js
  • hugegraph-hubble/hubble-fe/src/components/Sidebar/index.ant.test.js
  • hugegraph-hubble/hubble-fe/src/components/Sidebar/index.module.scss
  • hugegraph-hubble/hubble-fe/src/components/Topbar/PageContextSlot.js
  • hugegraph-hubble/hubble-fe/src/components/Topbar/PageContextSlot.test.js
  • hugegraph-hubble/hubble-fe/src/components/Topbar/index.ant.js
  • hugegraph-hubble/hubble-fe/src/components/Topbar/index.module.scss
  • hugegraph-hubble/hubble-fe/src/components/Topbar/layout-contract.test.js
  • hugegraph-hubble/hubble-fe/src/components/Topbar/topbar-request-error.test.js
  • hugegraph-hubble/hubble-fe/src/dropdown-menu-api.test.js
  • hugegraph-hubble/hubble-fe/src/empty-table-density.test.js
  • hugegraph-hubble/hubble-fe/src/i18n/index.js
  • hugegraph-hubble/hubble-fe/src/i18n/resources/en-US/components/board.json
  • hugegraph-hubble/hubble-fe/src/i18n/resources/en-US/components/common.json
  • hugegraph-hubble/hubble-fe/src/i18n/resources/en-US/modules/analysis.json
  • hugegraph-hubble/hubble-fe/src/i18n/resources/en-US/modules/home.json
  • hugegraph-hubble/hubble-fe/src/i18n/resources/en-US/modules/manage.json
  • hugegraph-hubble/hubble-fe/src/i18n/resources/en-US/modules/modules.json
  • hugegraph-hubble/hubble-fe/src/i18n/resources/en-US/modules/pages.json
  • hugegraph-hubble/hubble-fe/src/i18n/resources/zh-CN/components/board.json
  • hugegraph-hubble/hubble-fe/src/i18n/resources/zh-CN/components/common.json
  • hugegraph-hubble/hubble-fe/src/i18n/resources/zh-CN/modules/analysis.json
  • hugegraph-hubble/hubble-fe/src/i18n/resources/zh-CN/modules/home.json
  • hugegraph-hubble/hubble-fe/src/i18n/resources/zh-CN/modules/modules.json
  • hugegraph-hubble/hubble-fe/src/i18n/resources/zh-CN/modules/pages.json
  • hugegraph-hubble/hubble-fe/src/i18n/ui-copy-punctuation.test.js
  • hugegraph-hubble/hubble-fe/src/index.js
  • hugegraph-hubble/hubble-fe/src/layout.ant.js
  • hugegraph-hubble/hubble-fe/src/layout.ant.test.js
  • hugegraph-hubble/hubble-fe/src/low-frequency-surface-contract.test.js
  • hugegraph-hubble/hubble-fe/src/modules/GraphAnalysis/index.js
  • hugegraph-hubble/hubble-fe/src/modules/GraphAnalysis/index.test.js
  • hugegraph-hubble/hubble-fe/src/modules/algorithm/GraphResult/Home/index.js
  • hugegraph-hubble/hubble-fe/src/modules/algorithm/GraphResult/Home/index.module.scss
  • hugegraph-hubble/hubble-fe/src/modules/algorithm/GraphResult/Home/index.test.js
  • hugegraph-hubble/hubble-fe/src/modules/algorithm/GraphResult/JaccView/index.module.scss
  • hugegraph-hubble/hubble-fe/src/modules/algorithm/GraphResult/NeighborRankView/index.module.scss
  • hugegraph-hubble/hubble-fe/src/modules/algorithm/GraphResult/RankApiView/index.module.scss
  • hugegraph-hubble/hubble-fe/src/modules/algorithm/GraphResult/utils/index.js
  • hugegraph-hubble/hubble-fe/src/modules/algorithm/Home/index.js
  • hugegraph-hubble/hubble-fe/src/modules/algorithm/Home/index.module.scss
  • hugegraph-hubble/hubble-fe/src/modules/algorithm/Home/index.test.js
  • hugegraph-hubble/hubble-fe/src/modules/algorithm/LogsDetail/ExecuteLog/index.js
  • hugegraph-hubble/hubble-fe/src/modules/algorithm/LogsDetail/Favorite/index.js
  • hugegraph-hubble/hubble-fe/src/modules/algorithm/LogsDetail/Home/index.js
  • hugegraph-hubble/hubble-fe/src/modules/algorithm/algorithmsForm/AlgorithmNameHeader/index.js
  • hugegraph-hubble/hubble-fe/src/modules/algorithm/algorithmsForm/AlgorithmNameHeader/index.module.scss
  • hugegraph-hubble/hubble-fe/src/modules/algorithm/algorithmsForm/BoolSelectItem/index.js
  • hugegraph-hubble/hubble-fe/src/modules/algorithm/algorithmsForm/CapacityItem/index.js
  • hugegraph-hubble/hubble-fe/src/modules/algorithm/algorithmsForm/DirectionItem/index.js
  • hugegraph-hubble/hubble-fe/src/modules/algorithm/algorithmsForm/Home/index.js
  • hugegraph-hubble/hubble-fe/src/modules/algorithm/algorithmsForm/Home/index.module.scss
  • hugegraph-hubble/hubble-fe/src/modules/algorithm/algorithmsForm/Home/index.test.js
  • hugegraph-hubble/hubble-fe/src/modules/algorithm/algorithmsForm/LabelItem/index.js
  • hugegraph-hubble/hubble-fe/src/modules/algorithm/algorithmsForm/LimitItem/index.js
  • hugegraph-hubble/hubble-fe/src/modules/algorithm/algorithmsForm/MaxDegreeItem/index.js
  • hugegraph-hubble/hubble-fe/src/modules/algorithm/algorithmsForm/MaxDepthItem/index.js
  • hugegraph-hubble/hubble-fe/src/modules/algorithm/algorithmsForm/NearestItem/index.js
  • hugegraph-hubble/hubble-fe/src/modules/algorithm/algorithmsForm/Olap/BetweennessCentrality/index.js
  • hugegraph-hubble/hubble-fe/src/modules/algorithm/algorithmsForm/Olap/BetweennessCentralityVermeer/index.js
  • hugegraph-hubble/hubble-fe/src/modules/algorithm/algorithmsForm/Olap/ClosenessCentrality/index.js
  • hugegraph-hubble/hubble-fe/src/modules/algorithm/algorithmsForm/Olap/ClosenessCentralityVermeer/index.js
  • hugegraph-hubble/hubble-fe/src/modules/algorithm/algorithmsForm/Olap/ClusterCoefficient/index.js
  • hugegraph-hubble/hubble-fe/src/modules/algorithm/algorithmsForm/Olap/DegreeCentrality/index.js
  • hugegraph-hubble/hubble-fe/src/modules/algorithm/algorithmsForm/Olap/DegreeCentralityVermeer/index.js
  • hugegraph-hubble/hubble-fe/src/modules/algorithm/algorithmsForm/Olap/FilterSubGraphMatching/index.js
  • hugegraph-hubble/hubble-fe/src/modules/algorithm/algorithmsForm/Olap/FilteredRingsDetection/index.js
  • hugegraph-hubble/hubble-fe/src/modules/algorithm/algorithmsForm/Olap/KCore/index.js
  • hugegraph-hubble/hubble-fe/src/modules/algorithm/algorithmsForm/Olap/KCoreVermeer/index.js
  • hugegraph-hubble/hubble-fe/src/modules/algorithm/algorithmsForm/Olap/LabelPropagationAlgorithm/index.js
  • hugegraph-hubble/hubble-fe/src/modules/algorithm/algorithmsForm/Olap/LabelPropagationAlgorithmVermeer/index.js
  • hugegraph-hubble/hubble-fe/src/modules/algorithm/algorithmsForm/Olap/Links/index.js
  • hugegraph-hubble/hubble-fe/src/modules/algorithm/algorithmsForm/Olap/Louvain/index.js
  • hugegraph-hubble/hubble-fe/src/modules/algorithm/algorithmsForm/Olap/Louvain/index.test.js
  • hugegraph-hubble/hubble-fe/src/modules/algorithm/algorithmsForm/Olap/OlapComputerItem/index.js
  • hugegraph-hubble/hubble-fe/src/modules/algorithm/algorithmsForm/Olap/OlapItem/index.js
  • hugegraph-hubble/hubble-fe/src/modules/algorithm/algorithmsForm/Olap/PageRank/index.js
  • hugegraph-hubble/hubble-fe/src/modules/algorithm/algorithmsForm/Olap/PageRankVermeer/index.js
  • hugegraph-hubble/hubble-fe/src/modules/algorithm/algorithmsForm/Olap/PersonalPageRank/index.js
  • hugegraph-hubble/hubble-fe/src/modules/algorithm/algorithmsForm/Olap/RingsDetection/index.js
  • hugegraph-hubble/hubble-fe/src/modules/algorithm/algorithmsForm/Olap/SSSPVermeer/index.js
  • hugegraph-hubble/hubble-fe/src/modules/algorithm/algorithmsForm/Olap/TriangleCount/index.js
  • hugegraph-hubble/hubble-fe/src/modules/algorithm/algorithmsForm/Olap/TriangleCountVermeer/index.js
  • hugegraph-hubble/hubble-fe/src/modules/algorithm/algorithmsForm/Olap/WeaklyConnectedComponent/index.js
  • hugegraph-hubble/hubble-fe/src/modules/algorithm/algorithmsForm/Olap/WeaklyConnectedComponentVermeer/index.js
  • hugegraph-hubble/hubble-fe/src/modules/algorithm/algorithmsForm/OlapHome/index.js
  • hugegraph-hubble/hubble-fe/src/modules/algorithm/algorithmsForm/OlapHome/index.module.scss
  • hugegraph-hubble/hubble-fe/src/modules/algorithm/algorithmsForm/Oltp/AdamicAdar/index.js
  • hugegraph-hubble/hubble-fe/src/modules/algorithm/algorithmsForm/Oltp/AllPaths/index.js
  • hugegraph-hubble/hubble-fe/src/modules/algorithm/algorithmsForm/Oltp/Crosspoints/index.js
  • hugegraph-hubble/hubble-fe/src/modules/algorithm/algorithmsForm/Oltp/CustomizedCrosspoints/Home/index.js
  • hugegraph-hubble/hubble-fe/src/modules/algorithm/algorithmsForm/Oltp/CustomizedCrosspoints/PathPatternForm/index.js
  • hugegraph-hubble/hubble-fe/src/modules/algorithm/algorithmsForm/Oltp/CustomizedPaths/Home/index.js
  • hugegraph-hubble/hubble-fe/src/modules/algorithm/algorithmsForm/Oltp/CustomizedPaths/StepItem/index.js
  • hugegraph-hubble/hubble-fe/src/modules/algorithm/algorithmsForm/Oltp/Egonet/index.js
  • hugegraph-hubble/hubble-fe/src/modules/algorithm/algorithmsForm/Oltp/FindShortestPath/index.js
  • hugegraph-hubble/hubble-fe/src/modules/algorithm/algorithmsForm/Oltp/FindShortestPathWithWeight/index.js
  • hugegraph-hubble/hubble-fe/src/modules/algorithm/algorithmsForm/Oltp/FusiformSimilarity/index.js
  • hugegraph-hubble/hubble-fe/src/modules/algorithm/algorithmsForm/Oltp/JaccardSimilarityGet/index.js
  • hugegraph-hubble/hubble-fe/src/modules/algorithm/algorithmsForm/Oltp/JaccardSimilarityPost/index.js
  • hugegraph-hubble/hubble-fe/src/modules/algorithm/algorithmsForm/Oltp/KneighborGet/index.js
  • hugegraph-hubble/hubble-fe/src/modules/algorithm/algorithmsForm/Oltp/KneighborPost/index.js
  • hugegraph-hubble/hubble-fe/src/modules/algorithm/algorithmsForm/Oltp/KoutGet/index.js
  • hugegraph-hubble/hubble-fe/src/modules/algorithm/algorithmsForm/Oltp/KoutPost/Home/index.js
  • hugegraph-hubble/hubble-fe/src/modules/algorithm/algorithmsForm/Oltp/KoutPost/StepFormItem/index.js
  • hugegraph-hubble/hubble-fe/src/modules/algorithm/algorithmsForm/Oltp/MultiNodesShortestPath/index.js
  • hugegraph-hubble/hubble-fe/src/modules/algorithm/algorithmsForm/Oltp/NeighborRankApi/index.js
  • hugegraph-hubble/hubble-fe/src/modules/algorithm/algorithmsForm/Oltp/OltpItem/index.js
  • hugegraph-hubble/hubble-fe/src/modules/algorithm/algorithmsForm/Oltp/Paths/index.js
  • hugegraph-hubble/hubble-fe/src/modules/algorithm/algorithmsForm/Oltp/RankApi/index.js
  • hugegraph-hubble/hubble-fe/src/modules/algorithm/algorithmsForm/Oltp/Rays/index.js
  • hugegraph-hubble/hubble-fe/src/modules/algorithm/algorithmsForm/Oltp/ResourceAllocation/index.js
  • hugegraph-hubble/hubble-fe/src/modules/algorithm/algorithmsForm/Oltp/Rings/index.js
  • hugegraph-hubble/hubble-fe/src/modules/algorithm/algorithmsForm/Oltp/SameNeighbors/index.js
  • hugegraph-hubble/hubble-fe/src/modules/algorithm/algorithmsForm/Oltp/SameNeighborsBatch/index.js
  • hugegraph-hubble/hubble-fe/src/modules/algorithm/algorithmsForm/Oltp/ShortestPath/index.js
  • hugegraph-hubble/hubble-fe/src/modules/algorithm/algorithmsForm/Oltp/SingleSourceShortestPath/index.js
  • hugegraph-hubble/hubble-fe/src/modules/algorithm/algorithmsForm/Oltp/TemplatePaths/Home/index.js
  • hugegraph-hubble/hubble-fe/src/modules/algorithm/algorithmsForm/Oltp/TemplatePaths/StepFormItem/index.js
  • hugegraph-hubble/hubble-fe/src/modules/algorithm/algorithmsForm/OltpHome/index.js
  • hugegraph-hubble/hubble-fe/src/modules/algorithm/algorithmsForm/OltpHome/index.module.scss
  • hugegraph-hubble/hubble-fe/src/modules/algorithm/algorithmsForm/PersistentForm/index.js
  • hugegraph-hubble/hubble-fe/src/modules/algorithm/algorithmsForm/PersistentForm/index.test.js
  • hugegraph-hubble/hubble-fe/src/modules/algorithm/algorithmsForm/StepsItems/index.js
  • hugegraph-hubble/hubble-fe/src/modules/algorithm/algorithmsForm/VerticesItems/index.js
  • hugegraph-hubble/hubble-fe/src/modules/algorithm/algorithmsForm/algorithmDocs.js
  • hugegraph-hubble/hubble-fe/src/modules/algorithm/algorithmsForm/algorithmDocs.test.js
  • hugegraph-hubble/hubble-fe/src/modules/algorithm/algorithmsForm/algorithmFormPersistence.js
  • hugegraph-hubble/hubble-fe/src/modules/analysis/Home/index.js
  • hugegraph-hubble/hubble-fe/src/modules/analysis/Home/index.test.js
  • hugegraph-hubble/hubble-fe/src/modules/analysis/LogsDetail/ExecuteLog/index.js
  • hugegraph-hubble/hubble-fe/src/modules/analysis/LogsDetail/ExecuteLog/index.module.scss
  • hugegraph-hubble/hubble-fe/src/modules/analysis/LogsDetail/ExecuteLog/index.test.js
  • hugegraph-hubble/hubble-fe/src/modules/analysis/LogsDetail/Favorite/index.js
  • hugegraph-hubble/hubble-fe/src/modules/analysis/LogsDetail/Home/index.js
  • hugegraph-hubble/hubble-fe/src/modules/analysis/LogsDetail/Home/index.test.js
  • hugegraph-hubble/hubble-fe/src/modules/analysis/QueryBar/ContentCommon/index.js
  • hugegraph-hubble/hubble-fe/src/modules/analysis/QueryBar/ContentCommon/index.module.scss
  • hugegraph-hubble/hubble-fe/src/modules/analysis/QueryBar/ContentCommon/index.test.js
  • hugegraph-hubble/hubble-fe/src/modules/analysis/QueryBar/Home/index.js
  • hugegraph-hubble/hubble-fe/src/modules/analysis/QueryBar/Home/index.module.scss
  • hugegraph-hubble/hubble-fe/src/modules/analysis/QueryBar/Home/index.test.js
  • hugegraph-hubble/hubble-fe/src/modules/analysis/QueryBar/Home/shortcut-layout-contract.test.js
  • hugegraph-hubble/hubble-fe/src/modules/analysis/QueryResult/GraphResult/Home/data.js
  • hugegraph-hubble/hubble-fe/src/modules/analysis/QueryResult/GraphResult/Home/data.test.js
  • hugegraph-hubble/hubble-fe/src/modules/analysis/QueryResult/GraphResult/Home/index.js
  • hugegraph-hubble/hubble-fe/src/modules/analysis/QueryResult/GraphResult/utils/index.js
  • hugegraph-hubble/hubble-fe/src/modules/analysis/QueryResult/Home/index.js
  • hugegraph-hubble/hubble-fe/src/modules/analysis/QueryResult/Home/index.module.scss
  • hugegraph-hubble/hubble-fe/src/modules/analysis/QueryResult/Home/index.test.js
  • hugegraph-hubble/hubble-fe/src/modules/analysis/QueryResult/Home/utils.js
  • hugegraph-hubble/hubble-fe/src/modules/analysis/QueryResult/JsonView/index.js
  • hugegraph-hubble/hubble-fe/src/modules/analysis/QueryResult/JsonView/index.module.scss
  • hugegraph-hubble/hubble-fe/src/modules/analysis/QueryResult/TableView/index.js
  • hugegraph-hubble/hubble-fe/src/modules/analysis/QueryResult/TableView/index.module.scss
  • hugegraph-hubble/hubble-fe/src/modules/analysis/QueryResult/TableView/index.test.js
  • hugegraph-hubble/hubble-fe/src/modules/asyncTasks/Detail/index.js
  • hugegraph-hubble/hubble-fe/src/modules/asyncTasks/Detail/index.module.scss
  • hugegraph-hubble/hubble-fe/src/modules/asyncTasks/Home/index.js
  • hugegraph-hubble/hubble-fe/src/modules/asyncTasks/Home/index.module.scss
  • hugegraph-hubble/hubble-fe/src/modules/asyncTasks/Home/index.test.js
  • hugegraph-hubble/hubble-fe/src/modules/asyncTasks/Result/index.js
  • hugegraph-hubble/hubble-fe/src/modules/asyncTasks/Result/index.module.scss
  • hugegraph-hubble/hubble-fe/src/modules/asyncTasks/Result/index.test.js
  • hugegraph-hubble/hubble-fe/src/modules/component/Canvas3D/index.js
  • hugegraph-hubble/hubble-fe/src/modules/component/Canvas3D/index.module.scss
  • hugegraph-hubble/hubble-fe/src/modules/component/Canvas3D/utils.js
  • hugegraph-hubble/hubble-fe/src/modules/component/Canvas3D/utils.test.js
  • hugegraph-hubble/hubble-fe/src/modules/component/ClearGraph/index.js
  • hugegraph-hubble/hubble-fe/src/modules/component/FitCenter/index.js
  • hugegraph-hubble/hubble-fe/src/modules/component/FixNode/index.js
  • hugegraph-hubble/hubble-fe/src/modules/component/FullScreen/index.js
  • hugegraph-hubble/hubble-fe/src/modules/component/FullScreen/index.test.js
  • hugegraph-hubble/hubble-fe/src/modules/component/Graph/data.js
  • hugegraph-hubble/hubble-fe/src/modules/component/Graph/index.js
  • hugegraph-hubble/hubble-fe/src/modules/component/Graph/index.module.scss
  • hugegraph-hubble/hubble-fe/src/modules/component/Graph/index.test.js
  • hugegraph-hubble/hubble-fe/src/modules/component/Graph/layout-lifecycle.test.js
  • hugegraph-hubble/hubble-fe/src/modules/component/GraphRenderModeSwitcher/index.module.scss
  • hugegraph-hubble/hubble-fe/src/modules/component/GraphStatusView/index.js
  • hugegraph-hubble/hubble-fe/src/modules/component/GraphStatusView/index.module.scss
  • hugegraph-hubble/hubble-fe/src/modules/component/GraphStatusView/index.test.js
  • hugegraph-hubble/hubble-fe/src/modules/component/MenuBar/index.module.scss
  • hugegraph-hubble/hubble-fe/src/modules/component/RedoUndo/index.js
  • hugegraph-hubble/hubble-fe/src/modules/component/RefreshGraph/index.js
  • hugegraph-hubble/hubble-fe/src/modules/component/SettingConfigPanel/index.module.scss
  • hugegraph-hubble/hubble-fe/src/modules/component/StatisticsPanel/GraphStatistics/Home/index.module.scss
  • hugegraph-hubble/hubble-fe/src/modules/component/StatisticsPanel/Home/index.js
  • hugegraph-hubble/hubble-fe/src/modules/component/StatisticsPanel/Home/index.module.scss
  • hugegraph-hubble/hubble-fe/src/modules/component/StatisticsPanel/LabelStatistics/index.module.scss
  • hugegraph-hubble/hubble-fe/src/modules/component/TaskNavigateView/index.module.scss
  • hugegraph-hubble/hubble-fe/src/modules/component/TopBar/index.js
  • hugegraph-hubble/hubble-fe/src/modules/component/TopBar/index.module.scss
  • hugegraph-hubble/hubble-fe/src/modules/component/TopBar/index.test.js
  • hugegraph-hubble/hubble-fe/src/modules/component/ZeroDegreeNode/index.js
  • hugegraph-hubble/hubble-fe/src/modules/component/ZoomGraph/index.js
  • hugegraph-hubble/hubble-fe/src/modules/component/layoutConfigPanel/Home/index.js
  • hugegraph-hubble/hubble-fe/src/modules/component/layoutConfigPanel/Home/index.module.scss
  • hugegraph-hubble/hubble-fe/src/modules/component/panel-accessibility.test.js
  • hugegraph-hubble/hubble-fe/src/modules/component/toolbar-accessible-name.test.js
  • hugegraph-hubble/hubble-fe/src/modules/navigation/AdminItem/index.js
  • hugegraph-hubble/hubble-fe/src/modules/navigation/AdminItem/index.module.scss
  • hugegraph-hubble/hubble-fe/src/modules/navigation/AnalyseItem/index.module.scss
  • hugegraph-hubble/hubble-fe/src/modules/navigation/ConsoleItem/dashboard.js
  • hugegraph-hubble/hubble-fe/src/modules/navigation/ConsoleItem/dashboard.test.js
  • hugegraph-hubble/hubble-fe/src/modules/navigation/ConsoleItem/index.js
  • hugegraph-hubble/hubble-fe/src/modules/navigation/ConsoleItem/index.module.scss
  • hugegraph-hubble/hubble-fe/src/modules/navigation/ConsoleItem/index.test.js
  • hugegraph-hubble/hubble-fe/src/modules/navigation/Home/index.js
  • hugegraph-hubble/hubble-fe/src/modules/navigation/Home/index.module.scss
  • hugegraph-hubble/hubble-fe/src/modules/navigation/Home/index.test.js
  • hugegraph-hubble/hubble-fe/src/modules/navigation/Home/workbenchHome.js
  • hugegraph-hubble/hubble-fe/src/modules/navigation/Home/workbenchHome.test.js
  • hugegraph-hubble/hubble-fe/src/modules/navigation/Item/index.js
  • hugegraph-hubble/hubble-fe/src/modules/navigation/Item/index.module.scss
  • hugegraph-hubble/hubble-fe/src/modules/navigation/ManageItem/index.module.scss
  • hugegraph-hubble/hubble-fe/src/modules/navigation/ModuleButton/index.module.scss
  • hugegraph-hubble/hubble-fe/src/pages/Account/EditLayer.js
  • hugegraph-hubble/hubble-fe/src/pages/Account/SpaceAccess.js
  • hugegraph-hubble/hubble-fe/src/pages/Account/SpaceAccess.test.js
  • hugegraph-hubble/hubble-fe/src/pages/Account/account-edit-recovery.test.js
  • hugegraph-hubble/hubble-fe/src/pages/Account/account-recovery.test.js
  • hugegraph-hubble/hubble-fe/src/pages/Account/index.js
  • hugegraph-hubble/hubble-fe/src/pages/Account/level.js
  • hugegraph-hubble/hubble-fe/src/pages/Account/level.test.js
  • hugegraph-hubble/hubble-fe/src/pages/Datasource/EditLayer.js
  • hugegraph-hubble/hubble-fe/src/pages/Datasource/EditLayer.test.js
  • hugegraph-hubble/hubble-fe/src/pages/Datasource/config.js
  • hugegraph-hubble/hubble-fe/src/pages/Datasource/datasource-i18n.test.js
  • hugegraph-hubble/hubble-fe/src/pages/Datasource/datasource-recovery.test.js
  • hugegraph-hubble/hubble-fe/src/pages/Datasource/index.js
  • hugegraph-hubble/hubble-fe/src/pages/Datasource/index.module.scss
  • hugegraph-hubble/hubble-fe/src/pages/Error404/index.js
  • hugegraph-hubble/hubble-fe/src/pages/Error404/index.module.scss
  • hugegraph-hubble/hubble-fe/src/pages/Error404/index.test.js
  • hugegraph-hubble/hubble-fe/src/pages/Graph/Card.js
  • hugegraph-hubble/hubble-fe/src/pages/Graph/Card.test.js
  • hugegraph-hubble/hubble-fe/src/pages/Graph/ClearGraphConfirmModal.js
  • hugegraph-hubble/hubble-fe/src/pages/Graph/ClearGraphConfirmModal.test.js
  • hugegraph-hubble/hubble-fe/src/pages/Graph/EditLayer.js
  • hugegraph-hubble/hubble-fe/src/pages/Graph/EditLayer.test.js
  • hugegraph-hubble/hubble-fe/src/pages/Graph/EditableNicknameCell.js
  • hugegraph-hubble/hubble-fe/src/pages/Graph/EditableNicknameCell.test.js
  • hugegraph-hubble/hubble-fe/src/pages/Graph/default-card-actions.test.js
  • hugegraph-hubble/hubble-fe/src/pages/Graph/graph-default-replace.test.js
  • hugegraph-hubble/hubble-fe/src/pages/Graph/index.js
  • hugegraph-hubble/hubble-fe/src/pages/Graph/index.module.scss
  • hugegraph-hubble/hubble-fe/src/pages/Graph/inline-nickname-edit.test.js
  • hugegraph-hubble/hubble-fe/src/pages/GraphDetail/index.js
  • hugegraph-hubble/hubble-fe/src/pages/GraphDetail/index.module.scss
  • hugegraph-hubble/hubble-fe/src/pages/GraphDetail/index.test.js
  • hugegraph-hubble/hubble-fe/src/pages/GraphSpace/Card.js
  • hugegraph-hubble/hubble-fe/src/pages/GraphSpace/Card.test.js
  • hugegraph-hubble/hubble-fe/src/pages/GraphSpace/EditLayer.js
  • hugegraph-hubble/hubble-fe/src/pages/GraphSpace/EditLayer.test.js
  • hugegraph-hubble/hubble-fe/src/pages/GraphSpace/graphspace-recovery.test.js
  • hugegraph-hubble/hubble-fe/src/pages/GraphSpace/index.js
  • hugegraph-hubble/hubble-fe/src/pages/Login/index.js
  • hugegraph-hubble/hubble-fe/src/pages/Login/index.module.scss
  • hugegraph-hubble/hubble-fe/src/pages/Login/login-request-error.test.js
  • hugegraph-hubble/hubble-fe/src/pages/Meta/Edge/EditLayer.js
  • hugegraph-hubble/hubble-fe/src/pages/Meta/EditLayerRecovery.test.js
  • hugegraph-hubble/hubble-fe/src/pages/Meta/ImageView.js
  • hugegraph-hubble/hubble-fe/src/pages/Meta/ImageView.module.scss
  • hugegraph-hubble/hubble-fe/src/pages/Meta/ImageView.test.js
  • hugegraph-hubble/hubble-fe/src/pages/Meta/Property/EditLayer.js
  • hugegraph-hubble/hubble-fe/src/pages/Meta/Property/EditLayer.test.js
  • hugegraph-hubble/hubble-fe/src/pages/Meta/index.js
  • hugegraph-hubble/hubble-fe/src/pages/Meta/meta-recovery.test.js
  • hugegraph-hubble/hubble-fe/src/pages/My/index.js
  • hugegraph-hubble/hubble-fe/src/pages/My/index.module.scss
  • hugegraph-hubble/hubble-fe/src/pages/My/my-recovery.test.js
  • hugegraph-hubble/hubble-fe/src/pages/Operations/NodeDetail.js
  • hugegraph-hubble/hubble-fe/src/pages/Operations/NodeDetail.test.js
  • hugegraph-hubble/hubble-fe/src/pages/Operations/Nodes.js
  • hugegraph-hubble/hubble-fe/src/pages/Operations/Nodes.test.js
  • hugegraph-hubble/hubble-fe/src/pages/Operations/OperationsRoute.js
  • hugegraph-hubble/hubble-fe/src/pages/Operations/OperationsRoute.test.js
  • hugegraph-hubble/hubble-fe/src/pages/Operations/Overview.js
  • hugegraph-hubble/hubble-fe/src/pages/Operations/Overview.test.js
  • hugegraph-hubble/hubble-fe/src/pages/Operations/capabilities.js
  • hugegraph-hubble/hubble-fe/src/pages/Operations/components.js
  • hugegraph-hubble/hubble-fe/src/pages/Operations/components.test.js
  • hugegraph-hubble/hubble-fe/src/pages/Operations/operations.scss
  • hugegraph-hubble/hubble-fe/src/pages/Operations/topology.js
  • hugegraph-hubble/hubble-fe/src/pages/Operations/topology.test.js
  • hugegraph-hubble/hubble-fe/src/pages/Resource/EditLayer.js
  • hugegraph-hubble/hubble-fe/src/pages/Resource/index.js
  • hugegraph-hubble/hubble-fe/src/pages/Role/Auth.js
  • hugegraph-hubble/hubble-fe/src/pages/Role/EditLayer.js
  • hugegraph-hubble/hubble-fe/src/pages/Role/index.js
  • hugegraph-hubble/hubble-fe/src/pages/Role/treeData.js
  • hugegraph-hubble/hubble-fe/src/pages/Schema/EditLayer.js
  • hugegraph-hubble/hubble-fe/src/pages/Schema/builtinSchemaTemplates.js
  • hugegraph-hubble/hubble-fe/src/pages/Schema/index.js
  • hugegraph-hubble/hubble-fe/src/pages/Schema/schema-list-recovery.test.js
  • hugegraph-hubble/hubble-fe/src/pages/Schema/schema-template-error.test.js
  • hugegraph-hubble/hubble-fe/src/pages/Schema/schema-template-i18n.test.js
  • hugegraph-hubble/hubble-fe/src/pages/Schema/schema-template-starting-point.test.js
  • hugegraph-hubble/hubble-fe/src/pages/Schema/schemaGroovy.js
  • hugegraph-hubble/hubble-fe/src/pages/Task/components/TopStatistic.js
  • hugegraph-hubble/hubble-fe/src/pages/Task/components/TopStatistic.test.js
  • hugegraph-hubble/hubble-fe/src/pages/Task/index.js
  • hugegraph-hubble/hubble-fe/src/pages/Task/task-recovery.test.js
  • hugegraph-hubble/hubble-fe/src/pages/TaskDetail/index.js
  • hugegraph-hubble/hubble-fe/src/pages/TaskDetail/task-detail-recovery.test.js
  • hugegraph-hubble/hubble-fe/src/pages/TaskEdit/BaseForm/index.js
  • hugegraph-hubble/hubble-fe/src/pages/TaskEdit/FieldForm/index.js
  • hugegraph-hubble/hubble-fe/src/pages/TaskEdit/FieldForm/index.test.js
  • hugegraph-hubble/hubble-fe/src/pages/TaskEdit/MappingForm/Edge.js
  • hugegraph-hubble/hubble-fe/src/pages/TaskEdit/MappingForm/Vertex.js
  • hugegraph-hubble/hubble-fe/src/pages/TaskEdit/MappingForm/index.js
  • hugegraph-hubble/hubble-fe/src/pages/TaskEdit/MappingForm/mappingRules.js
  • hugegraph-hubble/hubble-fe/src/pages/TaskEdit/MappingForm/meta-recovery.test.js
  • hugegraph-hubble/hubble-fe/src/pages/TaskEdit/MappingForm/row-validation.test.js
  • hugegraph-hubble/hubble-fe/src/pages/TaskEdit/ScheduleForm/index.js
  • hugegraph-hubble/hubble-fe/src/pages/TaskEdit/ScheduleForm/index.test.js
  • hugegraph-hubble/hubble-fe/src/pages/TaskEdit/index.js
  • hugegraph-hubble/hubble-fe/src/pages/TaskEdit/option-recovery.test.js
  • hugegraph-hubble/hubble-fe/src/pages/TaskEdit/task-flow.test.js
  • hugegraph-hubble/hubble-fe/src/pages/TaskEdit/task-help-i18n.test.js
  • hugegraph-hubble/hubble-fe/src/pages/TaskEdit/taskFlow.js
  • hugegraph-hubble/hubble-fe/src/pages/name-semantics.test.js
  • hugegraph-hubble/hubble-fe/src/routes/index.js
  • hugegraph-hubble/hubble-fe/src/routes/route-guard.test.js
  • hugegraph-hubble/hubble-fe/src/setupProxy.js
  • hugegraph-hubble/hubble-fe/src/styles/workbench-focus.test.js
  • hugegraph-hubble/hubble-fe/src/styles/workbench-modal-contract.test.js
  • hugegraph-hubble/hubble-fe/src/styles/workbench.scss
  • hugegraph-hubble/hubble-fe/src/utils/authEvents.js
  • hugegraph-hubble/hubble-fe/src/utils/dataPreparationNavigation.js
  • hugegraph-hubble/hubble-fe/src/utils/displayName.js
  • hugegraph-hubble/hubble-fe/src/utils/displayName.test.js
  • hugegraph-hubble/hubble-fe/src/utils/formatGraphInData.js
  • hugegraph-hubble/hubble-fe/src/utils/formatGraphInData.test.js
  • hugegraph-hubble/hubble-fe/src/utils/formatGraphResultData.js
  • hugegraph-hubble/hubble-fe/src/utils/formatGraphResultData.test.js
  • hugegraph-hubble/hubble-fe/src/utils/graph.js
  • hugegraph-hubble/hubble-fe/src/utils/graph.test.js
  • hugegraph-hubble/hubble-fe/src/utils/graphSemanticZoom.js
  • hugegraph-hubble/hubble-fe/src/utils/graphSemanticZoom.test.js
  • hugegraph-hubble/hubble-fe/src/utils/language.js
  • hugegraph-hubble/hubble-fe/src/utils/language.test.js
  • hugegraph-hubble/hubble-fe/src/utils/productMode.js
  • hugegraph-hubble/hubble-fe/src/utils/productMode.test.js
  • hugegraph-hubble/hubble-fe/src/utils/publicError.js
  • hugegraph-hubble/hubble-fe/src/utils/publicError.test.js
  • hugegraph-hubble/hubble-fe/src/utils/routeEnvironment.js
  • hugegraph-hubble/hubble-fe/src/utils/routeEnvironment.test.js
  • hugegraph-hubble/hubble-fe/src/utils/rules.js
  • hugegraph-hubble/hubble-fe/src/utils/rules.test.js
  • hugegraph-hubble/hubble-fe/src/utils/sidebarNavigation.js
  • hugegraph-hubble/hubble-fe/src/utils/sidebarNavigation.test.js
  • hugegraph-hubble/hubble-fe/src/utils/user.js
  • hugegraph-hubble/hubble-fe/src/utils/user.test.js
  • hugegraph-hubble/hubble-fe/src/utils/workbenchGraphContext.js
  • hugegraph-hubble/hubble-fe/src/utils/workbenchGraphContext.test.js
  • hugegraph-hubble/hubble-fe/src/utils/workbenchNavigation.js
  • hugegraph-hubble/hubble-fe/src/utils/workbenchNavigation.test.js
  • tools/check-license-header.sh

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch cx-hubble-ui-ux2-pr

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@github-actions github-actions Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

license-eye has checked 2235 files.

Valid Invalid Ignored Fixed
1567 4 664 0
Click to see the invalid file list
  • hugegraph-hubble/hubble-fe/src/components/BrandLockup/index.js
  • hugegraph-hubble/hubble-fe/src/components/BrandLockup/index.module.scss
  • hugegraph-hubble/hubble-fe/src/utils/formatGraphInData.test.js
  • hugegraph-hubble/hubble-fe/src/utils/language.js
Use this command to fix any missing license headers
```bash

docker run -it --rm -v $(pwd):/github/workspace apache/skywalking-eyes header fix

</details>

Comment thread hugegraph-hubble/hubble-fe/src/components/BrandLockup/index.js
Comment thread hugegraph-hubble/hubble-fe/src/components/BrandLockup/index.js

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR modernizes the Hubble FE “workbench” experience by introducing journey-based navigation (graph overview → data preparation → query/analysis), improving graph-context persistence, hardening recovery/error states, and raising accessibility/keyboard support across frequently used surfaces.

Changes:

  • Added workbench/journey navigation utilities (route → title, sidebar keying, graph context extraction/persistence) with tests.
  • Improved UX resilience: explicit loading/error states + retry patterns for data sources, import tasks, async tasks/results, profile, and logs.
  • Accessibility + usability upgrades: skip-to-content link, focus-visible ring contracts, keyboard shortcuts (Mod+Enter, focused “F” fullscreen), and accessible icon buttons.

Reviewed changes

Copilot reviewed 161 out of 162 changed files in this pull request and generated 3 comments.

Show a summary per file
File Description
hugegraph-hubble/hubble-fe/src/utils/workbenchNavigation.js Map route paths to localized workbench page titles.
hugegraph-hubble/hubble-fe/src/utils/workbenchNavigation.test.js Covers route→title-key mapping contract.
hugegraph-hubble/hubble-fe/src/utils/workbenchGraphContext.js Extract/resolve/persist graph + graphspace context.
hugegraph-hubble/hubble-fe/src/utils/workbenchGraphContext.test.js Tests graph-context extraction + persistence behaviors.
hugegraph-hubble/hubble-fe/src/utils/user.js Add PD-aware account authorization helper.
hugegraph-hubble/hubble-fe/src/utils/user.test.js Tests account-access helper and user storage.
hugegraph-hubble/hubble-fe/src/utils/sidebarNavigation.js Mode-aware sidebar selection key derivation.
hugegraph-hubble/hubble-fe/src/utils/sidebarNavigation.test.js Verifies sidebar menu key rules across modes.
hugegraph-hubble/hubble-fe/src/utils/routeEnvironment.js Gate internal routes by build environment.
hugegraph-hubble/hubble-fe/src/utils/routeEnvironment.test.js Tests build-environment gating semantics.
hugegraph-hubble/hubble-fe/src/utils/language.js Centralize current-language lookup for i18n.
hugegraph-hubble/hubble-fe/src/utils/graphSemanticZoom.js Semantic zoom rules for dense graph label visibility.
hugegraph-hubble/hubble-fe/src/utils/graphSemanticZoom.test.js Tests label visibility thresholds + update behavior.
hugegraph-hubble/hubble-fe/src/utils/graph.js Improve fitView + force layout tuning by graph size.
hugegraph-hubble/hubble-fe/src/utils/graph.test.js Covers new layout tuning + fit behavior expectations.
hugegraph-hubble/hubble-fe/src/utils/formatGraphInData.js Allow compact previews by optionally hiding labels.
hugegraph-hubble/hubble-fe/src/utils/formatGraphInData.test.js Tests schema label visibility toggle.
hugegraph-hubble/hubble-fe/src/utils/dataPreparationNavigation.js Compute mode-aware “Schema” entry path from context.
hugegraph-hubble/hubble-fe/src/styles/workbench-focus.test.js Enforces focus-visible ring contract in workbench shell.
hugegraph-hubble/hubble-fe/src/routes/route-guard.test.js Ensures unauthorized account deep links redirect pre-mount.
hugegraph-hubble/hubble-fe/src/routes/index.js Adds AccountRoute gating + hides /test outside dev builds.
hugegraph-hubble/hubble-fe/src/pages/TaskEdit/taskFlow.js New task creation flow helpers + error shaping.
hugegraph-hubble/hubble-fe/src/pages/TaskEdit/task-flow.test.js Tests task flow concurrency + error semantics.
hugegraph-hubble/hubble-fe/src/pages/TaskEdit/MappingForm/index.js Show mapping tip only when submit is disabled.
hugegraph-hubble/hubble-fe/src/pages/TaskEdit/FieldForm/index.js Replace icon-only click with accessible button control.
hugegraph-hubble/hubble-fe/src/pages/TaskEdit/BaseForm/index.js Add loading state to “Next” submit button.
hugegraph-hubble/hubble-fe/src/pages/TaskDetail/index.js Add retryable loading/error UI for import task runs.
hugegraph-hubble/hubble-fe/src/pages/Task/components/TopStatistic.js Render unavailable metrics as “--” instead of zeros.
hugegraph-hubble/hubble-fe/src/pages/Task/components/TopStatistic.test.js Tests “--” behavior for unavailable stats.
hugegraph-hubble/hubble-fe/src/pages/My/my-recovery.test.js Expand profile/password recovery and loading coverage.
hugegraph-hubble/hubble-fe/src/pages/My/index.module.scss Token-based bounded surface styling for profile page.
hugegraph-hubble/hubble-fe/src/pages/Meta/meta-recovery.test.js Mock router Link for recovery coverage.
hugegraph-hubble/hubble-fe/src/pages/Meta/index.js Add GraphJourneyNav into graph schema/meta journey.
hugegraph-hubble/hubble-fe/src/pages/Login/login-request-error.test.js Add language chooser + redirect query/hash restoration tests.
hugegraph-hubble/hubble-fe/src/pages/Login/index.js New branded login shell + pre-auth language selection.
hugegraph-hubble/hubble-fe/src/pages/GraphDetail/index.module.scss Update graph-detail visual hierarchy and responsive layout.
hugegraph-hubble/hubble-fe/src/pages/Graph/index.js Rename clear action to clearGraph + API rename usage.
hugegraph-hubble/hubble-fe/src/pages/Graph/graph-default-replace.test.js Enforces conservative clear contract naming/usage.
hugegraph-hubble/hubble-fe/src/pages/Graph/default-card-actions.test.js Updates clear action tests for renamed API + copy.
hugegraph-hubble/hubble-fe/src/pages/Graph/ClearGraphConfirmModal.test.js Updates destructive-scope localization contracts.
hugegraph-hubble/hubble-fe/src/pages/Graph/ClearGraphConfirmModal.js Updates scope message key for clear confirmation.
hugegraph-hubble/hubble-fe/src/pages/Error404/index.test.js Home link target updated + bounded surface presence.
hugegraph-hubble/hubble-fe/src/pages/Error404/index.module.scss New bounded surface styling for 404 page.
hugegraph-hubble/hubble-fe/src/pages/Error404/index.js Reworks 404 into bounded surface + navigation recovery.
hugegraph-hubble/hubble-fe/src/pages/Datasource/index.js Add retryable loading/error UI for datasource list.
hugegraph-hubble/hubble-fe/src/pages/Datasource/datasource-recovery.test.js Tests datasource list failure vs empty + retry.
hugegraph-hubble/hubble-fe/src/modules/navigation/ModuleButton/index.module.scss Workbench navigation button styling refresh.
hugegraph-hubble/hubble-fe/src/modules/navigation/Item/index.module.scss Rework nav item styling + disabled presentation.
hugegraph-hubble/hubble-fe/src/modules/navigation/Item/index.js Adds badges + aria-labels for nav actions.
hugegraph-hubble/hubble-fe/src/modules/navigation/Home/workbenchHome.test.js Tests workbench journeys + schema entry behavior.
hugegraph-hubble/hubble-fe/src/modules/navigation/Home/workbenchHome.js Defines journey model + exports helpers.
hugegraph-hubble/hubble-fe/src/modules/navigation/Home/index.js Replaces legacy nav home with journey cards + branding.
hugegraph-hubble/hubble-fe/src/modules/navigation/ConsoleItem/index.test.js Keeps ops items disabled and avoids dashboard probing.
hugegraph-hubble/hubble-fe/src/modules/navigation/ConsoleItem/index.js Marks ops entries “Coming Soon” with disabled badges.
hugegraph-hubble/hubble-fe/src/modules/component/ZoomGraph/index.js Adds aria-labels for zoom icon buttons.
hugegraph-hubble/hubble-fe/src/modules/component/ZeroDegreeNode/index.js Adds aria-label for isolated-nodes icon button.
hugegraph-hubble/hubble-fe/src/modules/component/toolbar-accessible-name.test.js Ensures all toolbar icon buttons have accessible names.
hugegraph-hubble/hubble-fe/src/modules/component/TaskNavigateView/index.module.scss Use shared analysis result height token.
hugegraph-hubble/hubble-fe/src/modules/component/StatisticsPanel/LabelStatistics/index.module.scss Use shared analysis result height token.
hugegraph-hubble/hubble-fe/src/modules/component/StatisticsPanel/Home/index.module.scss Use shared analysis result height token.
hugegraph-hubble/hubble-fe/src/modules/component/StatisticsPanel/GraphStatistics/Home/index.module.scss Use shared analysis result height token.
hugegraph-hubble/hubble-fe/src/modules/component/SettingConfigPanel/index.module.scss Use shared analysis result height token.
hugegraph-hubble/hubble-fe/src/modules/component/RefreshGraph/index.js Adds aria-label for refresh layout icon button.
hugegraph-hubble/hubble-fe/src/modules/component/RedoUndo/index.js Adds aria-labels for undo/redo icon buttons.
hugegraph-hubble/hubble-fe/src/modules/component/MenuBar/index.module.scss Make menu bar horizontally scrollable when constrained.
hugegraph-hubble/hubble-fe/src/modules/component/layoutConfigPanel/Home/index.module.scss Use shared analysis result height token.
hugegraph-hubble/hubble-fe/src/modules/component/GraphStatusView/index.module.scss Use shared analysis result height token.
hugegraph-hubble/hubble-fe/src/modules/component/Graph/index.module.scss Tokenize heights + improve fullscreen behavior.
hugegraph-hubble/hubble-fe/src/modules/component/FullScreen/index.test.js Tests focused “F” shortcut + tooltip labeling.
hugegraph-hubble/hubble-fe/src/modules/component/FullScreen/index.js Adds focused “F” shortcut + accessible button labeling.
hugegraph-hubble/hubble-fe/src/modules/component/FixNode/index.js Adds aria-label for fix-node icon button.
hugegraph-hubble/hubble-fe/src/modules/component/FitCenter/index.js Adds aria-label for fit-center icon button.
hugegraph-hubble/hubble-fe/src/modules/component/ClearGraph/index.js Adds aria-label for clear-canvas icon button.
hugegraph-hubble/hubble-fe/src/modules/component/Canvas3D/index.module.scss Tokenize heights + fullscreen sizing for 3D canvas.
hugegraph-hubble/hubble-fe/src/modules/asyncTasks/Result/index.test.js Adds retry/empty/context coverage for result view.
hugegraph-hubble/hubble-fe/src/modules/asyncTasks/Result/index.module.scss Bounded surface + readable result layout.
hugegraph-hubble/hubble-fe/src/modules/asyncTasks/Result/index.js Adds loading/error/empty states + return context link.
hugegraph-hubble/hubble-fe/src/modules/asyncTasks/Home/index.test.js Tests list retry + polling stop after failure.
hugegraph-hubble/hubble-fe/src/modules/asyncTasks/Home/index.js Adds retry UI + prevents overlapping polling requests.
hugegraph-hubble/hubble-fe/src/modules/asyncTasks/Detail/index.module.scss Constrain long task names + accessible clear selection.
hugegraph-hubble/hubble-fe/src/modules/asyncTasks/Detail/index.js Adds column constraints + replaces icon click with button.
hugegraph-hubble/hubble-fe/src/modules/analysis/QueryResult/TableView/index.module.scss Tokenize result height for table view.
hugegraph-hubble/hubble-fe/src/modules/analysis/QueryResult/TableView/index.js Add X/Y scroll sizing for wide tables.
hugegraph-hubble/hubble-fe/src/modules/analysis/QueryResult/JsonView/index.module.scss Tokenize result height for JSON view.
hugegraph-hubble/hubble-fe/src/modules/analysis/QueryResult/Home/index.module.scss Introduce shared result height token for query results.
hugegraph-hubble/hubble-fe/src/modules/analysis/QueryResult/GraphResult/Home/index.js Pass layout details (incl. nodeCount) to graph renderer.
hugegraph-hubble/hubble-fe/src/modules/analysis/QueryBar/ContentCommon/index.test.js Adds keyboard execute shortcut + disabled execution tests.
hugegraph-hubble/hubble-fe/src/modules/analysis/QueryBar/ContentCommon/index.js Adds Mod+Enter shortcut + disables execute while executing.
hugegraph-hubble/hubble-fe/src/modules/analysis/LogsDetail/Home/index.test.js Tests source-specific recovery behavior.
hugegraph-hubble/hubble-fe/src/modules/analysis/LogsDetail/Home/index.js Adds per-tab error UI + retry actions.
hugegraph-hubble/hubble-fe/src/modules/analysis/LogsDetail/Favorite/index.js Adds table vertical scrolling.
hugegraph-hubble/hubble-fe/src/modules/analysis/LogsDetail/ExecuteLog/index.js Adds table vertical scrolling.
hugegraph-hubble/hubble-fe/src/modules/algorithm/LogsDetail/Home/index.js Adds per-tab error UI + retry actions (algorithm).
hugegraph-hubble/hubble-fe/src/modules/algorithm/LogsDetail/Favorite/index.js Adds table vertical scrolling (algorithm).
hugegraph-hubble/hubble-fe/src/modules/algorithm/LogsDetail/ExecuteLog/index.js Adds table vertical scrolling (algorithm).
hugegraph-hubble/hubble-fe/src/modules/algorithm/Home/index.test.js Tests independent retry + pending-page behavior.
hugegraph-hubble/hubble-fe/src/modules/algorithm/Home/index.module.scss Tokenizes analysis height and layout sizing.
hugegraph-hubble/hubble-fe/src/modules/algorithm/GraphResult/RankApiView/index.module.scss Tokenize analysis result height.
hugegraph-hubble/hubble-fe/src/modules/algorithm/GraphResult/NeighborRankView/index.module.scss Tokenize analysis result height.
hugegraph-hubble/hubble-fe/src/modules/algorithm/GraphResult/JaccView/index.module.scss Tokenize analysis result height.
hugegraph-hubble/hubble-fe/src/modules/algorithm/GraphResult/Home/index.module.scss Prevent overflow via min-width constraints.
hugegraph-hubble/hubble-fe/src/modules/algorithm/algorithmsForm/Home/index.module.scss Fix sidebar flex sizing.
hugegraph-hubble/hubble-fe/src/low-frequency-surface-contract.test.js Enforces bounded surfaces on low-frequency pages.
hugegraph-hubble/hubble-fe/src/layout.ant.test.js Tests skip link + semantic title + focus movement.
hugegraph-hubble/hubble-fe/src/layout.ant.js Adds skip link + route title heading + main focus target.
hugegraph-hubble/hubble-fe/src/index.js Centralizes language selection for Ant Design locale.
hugegraph-hubble/hubble-fe/src/i18n/resources/zh-CN/modules/home.json Adds workbench journey copy (zh-CN).
hugegraph-hubble/hubble-fe/src/i18n/resources/zh-CN/modules/analysis.json Adds shortcut/async-result/log recovery keys (zh-CN).
hugegraph-hubble/hubble-fe/src/i18n/resources/zh-CN/components/common.json Adds workbench navigation/context/page title keys (zh-CN).
hugegraph-hubble/hubble-fe/src/i18n/resources/en-US/modules/pages.json Updates clear graph copy + workbench/login/task/datasource strings.
hugegraph-hubble/hubble-fe/src/i18n/resources/en-US/modules/home.json Adds workbench journey copy (en-US).
hugegraph-hubble/hubble-fe/src/i18n/resources/en-US/modules/analysis.json Adds shortcut/async-result/log recovery keys (en-US).
hugegraph-hubble/hubble-fe/src/i18n/resources/en-US/components/common.json Adds workbench navigation/context/page title keys (en-US).
hugegraph-hubble/hubble-fe/src/i18n/index.js Uses shared language helper + updated fallback language.
hugegraph-hubble/hubble-fe/src/empty-table-density.test.js Enforces responsive global empty-table contract.
hugegraph-hubble/hubble-fe/src/components/Topbar/topbar-request-error.test.js Preserves hash+query in login redirect and stabilizes mocks.
hugegraph-hubble/hubble-fe/src/components/Topbar/index.module.scss New header styling + Select theming.
hugegraph-hubble/hubble-fe/src/components/Topbar/index.ant.js Adds BrandLockup + graph context switcher + hash-preserving redirect.
hugegraph-hubble/hubble-fe/src/components/GraphJourneyNav/index.test.js Tests aria-current + journey tab links.
hugegraph-hubble/hubble-fe/src/components/GraphJourneyNav/index.module.scss Adds journey nav styling.
hugegraph-hubble/hubble-fe/src/components/GraphJourneyNav/index.js Adds journey navigation for graph detail/schema.
hugegraph-hubble/hubble-fe/src/components/GraphContextSwitcher/index.module.scss Styles for topbar context switcher.
hugegraph-hubble/hubble-fe/src/components/DataPreparationNav/index.test.js Tests mode-aware schema/graph schema targeting + titles.
hugegraph-hubble/hubble-fe/src/components/DataPreparationNav/index.module.scss Adds journey step styling for preparation flow.
hugegraph-hubble/hubble-fe/src/components/DataPreparationNav/index.js Adds data-prep journey nav with honest fallbacks.
hugegraph-hubble/hubble-fe/src/components/BrandLockup/index.module.scss New brand lockup styling.
hugegraph-hubble/hubble-fe/src/components/BrandLockup/index.js Shared brand mark + wordmark component.
hugegraph-hubble/hubble-fe/src/assets/hugegraph-mark.svg Adds vector brand mark asset.
hugegraph-hubble/hubble-fe/src/App.scss Token-based layout + bounded container surfaces.
hugegraph-hubble/hubble-fe/src/App.js Loads global workbench styles.
hugegraph-hubble/hubble-fe/src/App.css Improves global empty-table layout.
hugegraph-hubble/hubble-fe/src/api/request.js Preserve hash in redirect-to-login behavior.
hugegraph-hubble/hubble-fe/src/api/request-language-header.test.js Adds default-language coverage for requests.
hugegraph-hubble/hubble-fe/src/api/request-error-semantics.test.js Ensures redirects preserve query+hash and no extra requests fire.
hugegraph-hubble/hubble-fe/src/api/manage.js Renames clear endpoint wrapper to clearGraph.
hugegraph-hubble/hubble-fe/src/api/manage-contract.test.js Updates API contract assertions for clearGraph rename.
hugegraph-hubble/hubble-fe/src/api/languageHeader.js Reuses shared language helper for Accept-Language.
hugegraph-hubble/hubble-fe/src/accessible-click-actions.test.js Enforces accessible click targets + task-name column constraints.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread hugegraph-hubble/hubble-fe/src/utils/graph.js Outdated
Comment thread hugegraph-hubble/hubble-fe/src/components/GraphJourneyNav/index.js Outdated
Comment thread hugegraph-hubble/hubble-fe/src/components/GraphJourneyNav/index.js Outdated

@gemini-code-assist gemini-code-assist Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

This pull request refactors the HugeGraph Hubble frontend to introduce a unified 'Graph Data Workbench' layout, improving accessibility, keyboard navigation, and responsive design. Key enhancements include a dynamic GraphContextSwitcher, progressive semantic zoom for dense graphs, localized error recovery states across data preparation and query views, and a redesigned login page. The code review identified several potential TypeError vulnerabilities due to missing null/undefined checks on API responses and method returns, as well as an opportunity to expand icon coverage in accessibility tests.

Important

The consumer version of Gemini Code Assist on GitHub is being sunset. Starting June 18, 2026, new organization installations will be blocked, and all code review activity will officially cease on July 17, 2026.
For more details on the timeline and next steps, please review the Help Documentation.

Comment thread hugegraph-hubble/hubble-fe/src/accessible-click-actions.test.js Outdated
Comment thread hugegraph-hubble/hubble-fe/src/utils/graph.js Outdated
Comment thread hugegraph-hubble/hubble-fe/src/pages/TaskEdit/index.js Outdated
Comment thread hugegraph-hubble/hubble-fe/src/pages/TaskEdit/taskFlow.js
Comment thread hugegraph-hubble/hubble-fe/src/pages/GraphDetail/index.js Outdated
@bitflicker64

Copy link
Copy Markdown
Member

Bug: Graph Query canvas collapses on second identical Run Query

While smoke-testing this UI branch (cx-hubble-ui-ux2-pr) on standalone EN (local build + HugeGraph with auth), re-running the same Gremlin query without any edits collapses the canvas layout.

Environment

  • Branch / PR: cx-hubble-ui-ux2-pr / this PR
  • Hubble: local package from this branch (about reports 3.0.0)
  • Server: hugegraph/hugegraph:latest with -e PASSWORD=admin, login admin / admin
  • Graph: DEFAULT / hugegraph, sample schema + data loaded
  • UI language: English

Steps to reproduce

  1. Open Graph Query for hugegraph.
  2. Run:
    g.V().limit(20)
    
  3. Observe first layout — nodes are spread and readable.
  4. Click Run Query again without changing anything.
  5. Canvas collapses into a dense ball; labels/edges unreadable.

Expected

Re-running the same query should keep a readable layout (or re-layout cleanly), not stack all nodes on top of each other.

Actual

  • 1st Run Query: layout looks fine (spread graph).
  • 2nd Run Query: everything piles in the center.
  • Counts still correct (e.g. Nodes 11/11 · Edges 15/15) — data is OK, layout/positions broken.

Screenshots

1st run (OK):

First Run Query — layout OK

2nd run (collapsed):

Second Run Query — layout collapsed

Notes

  • Looks related to re-query path: existing G6 instance → changeData + updateLayout without stable positions (see hubble-fe graph sync path).
  • Workaround: Clear then Run once, or refresh layout / switch layout from the toolbar.
  • Separate EN nits also seen: long sidebar labels truncated (Data Source Manag...); home-nav fixed-width button overflow for long EN strings (may already be in scope of this UI work).

Happy to retest after a fix.

@imbajin
imbajin changed the base branch from hubble-dev to master July 12, 2026 12:03

@github-actions github-actions Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

license-eye has checked 2245 files.

Valid Invalid Ignored Fixed
1573 4 668 0
Click to see the invalid file list
  • hugegraph-hubble/hubble-be/src/main/java/org/apache/hugegraph/controller/graph/SampleGraphController.java
  • hugegraph-hubble/hubble-be/src/test/java/org/apache/hugegraph/unit/SampleGraphControllerTest.java
  • hugegraph-hubble/hubble-fe/src/components/BrandLockup/index.js
  • hugegraph-hubble/hubble-fe/src/components/BrandLockup/index.module.scss
Use this command to fix any missing license headers
```bash

docker run -it --rm -v $(pwd):/github/workspace apache/skywalking-eyes header fix

</details>

@github-actions github-actions Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

license-eye has checked 2257 files.

Valid Invalid Ignored Fixed
1584 8 665 0
Click to see the invalid file list
  • hugegraph-client/src/test/java/org/apache/hugegraph/driver/GremlinManagerTest.java
  • hugegraph-hubble/hubble-be/src/test/java/org/apache/hugegraph/handler/ExceptionAdvisorStatusTest.java
  • hugegraph-hubble/hubble-be/src/test/java/org/apache/hugegraph/service/auth/UserServiceLevelTest.java
  • hugegraph-hubble/hubble-fe/src/modules/component/Canvas3D/utils.js
  • hugegraph-hubble/hubble-fe/src/modules/component/Canvas3D/utils.test.js
  • hugegraph-hubble/hubble-fe/src/pages/Meta/ImageView.module.scss
  • hugegraph-hubble/hubble-fe/src/pages/Schema/schema-template-starting-point.test.js
  • hugegraph-hubble/hubble-fe/src/pages/TaskEdit/MappingForm/meta-recovery.test.js
Use this command to fix any missing license headers
```bash

docker run -it --rm -v $(pwd):/github/workspace apache/skywalking-eyes header fix

</details>

@imbajin

imbajin commented Jul 13, 2026

Copy link
Copy Markdown
Author

/gemini review

@gemini-code-assist gemini-code-assist Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

This pull request enhances the HugeGraph client and Hubble workbench with an idempotent traversal fallback mechanism, a new sample dataset loader, and dashboard health probing. The frontend features a redesigned workbench UI, including a new sidebar, topbar, graph context switcher, and semantic zoom for dense graphs. The review feedback identifies several critical robustness and usability issues: updating the CodeEditor to react to programmatic value changes, wrapping localStorage writes in try-catch blocks, adding null checks and optional chaining to graph rendering utilities, resolving a tab key type mismatch, silencing background polling to prevent UI flickering, and removing an invalid Input child from a hidden Form.Item to avoid React prop-type warnings.

Important

The consumer version of Gemini Code Assist on GitHub is being sunset. Starting June 18, 2026, new organization installations will be blocked, and all code review activity will officially cease on July 17, 2026.
For more details on the timeline and next steps, please review the Help Documentation.

Comment thread hugegraph-hubble/hubble-fe/src/components/CodeEditor/index.js
Comment thread hugegraph-hubble/hubble-fe/src/utils/workbenchGraphContext.js
Comment thread hugegraph-hubble/hubble-fe/src/modules/component/Canvas3D/utils.js
Comment thread hugegraph-hubble/hubble-fe/src/utils/graphSemanticZoom.js
Comment thread hugegraph-hubble/hubble-fe/src/modules/asyncTasks/Home/index.js Outdated
Comment thread hugegraph-hubble/hubble-fe/src/pages/TaskEdit/FieldForm/index.js
@imbajin

imbajin commented Jul 13, 2026

Copy link
Copy Markdown
Author

/gemini review

@gemini-code-assist gemini-code-assist Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

This pull request significantly enhances the HugeGraph Hubble UI/UX, focusing on improved navigation, robust error handling, and streamlined data management workflows. Key changes include refactoring navigation components for better context awareness, implementing granular error handling and retry mechanisms across various modules (e.g., AlgorithmHome, AnalysisHome, AsyncTaskHome, Datasource, Graph, Schema, Task), and introducing a new SampleGraphController for loading demo data. Additionally, the PR refines form validations, adds accessibility enhancements, and polishes UI elements. Two notable issues were identified: the UserService.java hardcodes the 'admin' username, which should be configurable, and SampleGraphController.java uses magic numbers for retry logic that should be replaced with named constants for clarity.

Important

The consumer version of Gemini Code Assist on GitHub is being sunset. Starting June 18, 2026, new organization installations will be blocked, and all code review activity will officially cease on July 17, 2026.
For more details on the timeline and next steps, please review the Help Documentation.

github-actions[bot]

This comment was marked as outdated.

@imbajin

imbajin commented Jul 13, 2026

Copy link
Copy Markdown
Author

/gemini review

@gemini-code-assist gemini-code-assist Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

This pull request introduces significant improvements to the HugeGraph Hubble platform, including refined authorization logic for account management, enhanced graph sampling capabilities, and UI/UX improvements such as a new navigation journey and keyboard shortcuts. The backend now enforces stricter permission checks for account management and graph space membership. I have reviewed the changes and have two specific recommendations regarding RESTful conventions and code clarity.

Important

The consumer version of Gemini Code Assist on GitHub is being sunset. Starting June 18, 2026, new organization installations will be blocked, and all code review activity will officially cease on July 17, 2026.
For more details on the timeline and next steps, please review the Help Documentation.

@imbajin

imbajin commented Jul 14, 2026

Copy link
Copy Markdown
Author

/gemini review

@gemini-code-assist gemini-code-assist Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

This pull request introduces significant enhancements to HugeGraph Hubble, including a new native monitoring and alerting framework, improved GraphSpace and user management, and various UI/UX improvements. Key changes include the addition of monitoring API endpoints, integration with PD/Store discovery, and robust error handling for upstream service failures. I have reviewed the code and identified several areas where defensive programming (null checks and safe type casting) is needed to prevent potential runtime exceptions, as well as a recommendation to refactor static resource loading to ensure application stability during startup.

Important

The consumer version of Gemini Code Assist on GitHub is being sunset. Starting June 18, 2026, new organization installations will be blocked, and all code review activity will officially cease on July 17, 2026.
For more details on the timeline and next steps, please review the Help Documentation.

@imbajin

imbajin commented Jul 14, 2026

Copy link
Copy Markdown
Author

/gemini review

@gemini-code-assist gemini-code-assist Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

This pull request introduces a comprehensive native operations and monitoring system for Hubble, allowing administrators to view cluster topology, service tiers, and node status securely. It implements role-based capabilities and secures backend controllers by enforcing strict permission checks. Additionally, it adds a sample graph controller for loading demo datasets, improves transaction safety during data ingestion, and refactors client-side Gremlin traversal fallbacks. The frontend is updated with a responsive layout, a new primary navigation structure, localized keyboard shortcuts, and a graph context switcher. The review comments correctly identify a potential thread-blocking issue due to Thread.sleep() in the sample data loader and a possible regression in exception message internationalization within HugeClientPoolService.

Important

The consumer version of Gemini Code Assist on GitHub is being sunset. Starting June 18, 2026, new organization installations will be blocked, and all code review activity will officially cease on July 17, 2026.
For more details on the timeline and next steps, please review the Help Documentation.

@imbajin

imbajin commented Jul 14, 2026

Copy link
Copy Markdown
Author

/gemini review

@gemini-code-assist gemini-code-assist Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

This pull request introduces several significant improvements, including the addition of an operations monitoring module, enhanced authorization checks for graph space management, and a new sample graph loading feature. The changes also include UI improvements such as a new navigation structure, a shortcut help modal, and column settings. I have identified a few issues in the backend services regarding date aggregation logic and redundant fallback ID handling in the user controller that should be addressed.

Important

The consumer version of Gemini Code Assist on GitHub is being sunset. Starting June 18, 2026, new organization installations will be blocked, and all code review activity will officially cease on July 17, 2026.
For more details on the timeline and next steps, please review the Help Documentation.

@imbajin

imbajin commented Jul 14, 2026

Copy link
Copy Markdown
Author

/gemini review

@gemini-code-assist gemini-code-assist Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

This pull request introduces several significant features and improvements, including a new sample graph controller for loading demo datasets, enhanced security and authorization for graph space management, and improved error handling for operations monitoring. The review identified three areas for improvement: the use of blocking thread sleeps in the sample graph controller, potential memory issues with in-memory pagination for graph space access, and memory risks in the statistics fallback mechanism. The reviewer's comments are actionable and address potential performance and stability issues.

Important

The consumer version of Gemini Code Assist on GitHub is being sunset. Starting June 18, 2026, new organization installations will be blocked, and all code review activity will officially cease on July 17, 2026.
For more details on the timeline and next steps, please review the Help Documentation.

@imbajin

imbajin commented Jul 14, 2026

Copy link
Copy Markdown
Author

/gemini review

@gemini-code-assist gemini-code-assist Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

This pull request introduces a new SampleGraphController for loading sample datasets, adds robust permission checks to authentication controllers, and improves the GraphsService statistics collection by falling back to bounded graph reads when Gremlin statistics fail. It also includes UI enhancements like a keyboard shortcut help modal, a column settings component, and improved i18n support. The reviewer correctly identified that the manual retry logic for schema creation in SampleGraphController is brittle and should be replaced by the client's native .ifNotExist() support.

Important

The consumer version of Gemini Code Assist on GitHub is being sunset. Starting June 18, 2026, new organization installations will be blocked, and all code review activity will officially cease on July 17, 2026.
For more details on the timeline and next steps, please review the Help Documentation.

@imbajin

imbajin commented Jul 14, 2026

Copy link
Copy Markdown
Author

/gemini review

imbajin added 24 commits July 19, 2026 23:45
- 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
- reserve Ctrl+Enter for query execution
- make Command+Enter insert an editor newline
- replace the action dropdown with an accessible mode switch
- keep query controls aligned at narrow widths
- refresh English PD UI evidence
- reuse the existing safe Dashboard URL contract
- keep native monitoring available when Dashboard is disabled
- expose localized and keyboard-accessible disabled reasons
- cover configured, unavailable, forbidden, and popup states
- localize the built-in GraphSpace name in Schema templates
- cover the stored Chinese nickname regression
- refresh English Navigation, Overview, and Schema evidence
- register GraphSpace admin assignment as a POST mutation
- defer the large sample graph payload until it is requested
- accept heterogeneous numeric count values safely
- simplify job-name validation and cover the changed contracts
- require operator-managed Store origins with exact scheme, host, and port
- pin validated DNS answers while preserving HTTPS hostname verification
- redact structured credentials and endpoints from exception diagnostics
- document production overrides and cover the security boundaries
- remove unsafe path-id fallbacks from account updates and deletes
- preserve the canonical identity returned by the user service
- cover delete lookups that resolve to a different canonical id
- use daily metrics before bounded live reads
- reject malformed Gremlin count responses
- avoid unbounded list-page count queries
- cover live fallback and failure semantics
- clarify node identity, type labels, and topology roles
- compact monitoring actions and metric availability cards
- simplify language switching and perform a clean logout
- extend operations and logout regression coverage
- 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
@imbajin
imbajin force-pushed the cx-hubble-ui-ux2-pr branch from 06292e4 to 5a8f1f9 Compare July 19, 2026 15:46
- 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
imbajin added 3 commits July 19, 2026 23:59
- 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
- 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
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants