Skip to content

BREAKING CHANGE(hubble): upgrade to new version 2.0 [WIP] #632

Open
FrostyHec wants to merge 253 commits intoapache:masterfrom
FrostyHec:hubble2.0
Open

BREAKING CHANGE(hubble): upgrade to new version 2.0 [WIP] #632
FrostyHec wants to merge 253 commits intoapache:masterfrom
FrostyHec:hubble2.0

Conversation

@FrostyHec
Copy link
Copy Markdown
Collaborator

Purpose of the PR

  • Upgrading Hubble ( Work in progress ). Currently I am trying to pass CI in fork repo.

Main Changes

Verifying these changes

  • Trivial rework / code cleanup without any test coverage. (No Need)
  • Already covered by existing tests, such as (please modify tests here).
  • Need tests and can be verified as follows:
    • Need sufficient test for functionality verification. I have checked manually to verify its functionality
    • Can also use hg-test for further verification.

Does this PR potentially affect the following parts?

  • Nope
  • Dependencies (add/update license info)
  • Modify configurations
  • The public API
  • Other affects (typed here)

Documentation Status

  • Doc - TODO
  • Doc - Done
  • Doc - No Need

@dosubot dosubot Bot added the size:XXL This PR changes 1000+ lines, ignoring generated files. label Oct 20, 2024
@github-actions github-actions Bot added the hubble hugegraph-hubble label Oct 20, 2024
@dosubot dosubot Bot added dependencies Pull requests that update a dependency file hubble-be labels Oct 20, 2024
@imbajin imbajin changed the title [WIP] feat(hubble): Upgrading Hubble to new version BREAKING CHANGE(hubble): upgrade to new version 2.0 [WIP] Oct 20, 2024
@codecov
Copy link
Copy Markdown

codecov Bot commented Nov 10, 2025

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 51.55%. Comparing base (b066b80) to head (f06e02a).
⚠️ Report is 67 commits behind head on master.

❗ There is a different number of reports uploaded between BASE (b066b80) and HEAD (f06e02a). Click for more details.

HEAD has 1 upload less than BASE
Flag BASE (b066b80) HEAD (f06e02a)
2 1
Additional details and impacted files
@@              Coverage Diff              @@
##             master     #632       +/-   ##
=============================================
- Coverage     62.49%   51.55%   -10.95%     
+ Complexity     1903      973      -930     
=============================================
  Files           262      111      -151     
  Lines          9541     5858     -3683     
  Branches        886      754      -132     
=============================================
- Hits           5963     3020     -2943     
+ Misses         3190     2576      -614     
+ Partials        388      262      -126     

☔ View full report in Codecov by Sentry.
📢 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 imbajin mentioned this pull request Nov 14, 2025
3 tasks
…lified

# Conflicts:
#	hugegraph-client/assembly/travis/install-hugegraph-from-source.sh
# Conflicts:
#	.github/workflows/client-ci.yml
#	hugegraph-client/assembly/travis/install-hugegraph-from-source.sh
#	hugegraph-client/pom.xml
#	hugegraph-client/src/main/java/org/apache/hugegraph/api/graph/GraphMetricsAPI.java
#	hugegraph-client/src/main/java/org/apache/hugegraph/api/graphs/GraphsAPI.java
#	hugegraph-client/src/main/java/org/apache/hugegraph/api/ip/WhiteIpListAPI.java
#	hugegraph-client/src/main/java/org/apache/hugegraph/api/kvstore/KvStoreAPI.java
#	hugegraph-client/src/main/java/org/apache/hugegraph/api/task/ComputerDisAPI.java
#	hugegraph-client/src/main/java/org/apache/hugegraph/api/traverser/AdamicAdarAPI.java
#	hugegraph-client/src/main/java/org/apache/hugegraph/api/traverser/AllShortestPathsAPI.java
#	hugegraph-client/src/main/java/org/apache/hugegraph/api/traverser/CountAPI.java
#	hugegraph-client/src/main/java/org/apache/hugegraph/api/traverser/CrosspointsAPI.java
#	hugegraph-client/src/main/java/org/apache/hugegraph/api/traverser/EgonetAPI.java
#	hugegraph-client/src/main/java/org/apache/hugegraph/api/traverser/JaccardSimilarityAPI.java
#	hugegraph-client/src/main/java/org/apache/hugegraph/api/traverser/NeighborRankAPI.java
#	hugegraph-client/src/main/java/org/apache/hugegraph/api/traverser/PathsAPI.java
#	hugegraph-client/src/main/java/org/apache/hugegraph/api/traverser/PersonalRankAPI.java
#	hugegraph-client/src/main/java/org/apache/hugegraph/api/traverser/RaysAPI.java
#	hugegraph-client/src/main/java/org/apache/hugegraph/api/traverser/ResourceAllocationAPI.java
#	hugegraph-client/src/main/java/org/apache/hugegraph/api/traverser/RingsAPI.java
#	hugegraph-client/src/main/java/org/apache/hugegraph/api/traverser/SameNeighborsBatchAPI.java
#	hugegraph-client/src/main/java/org/apache/hugegraph/api/traverser/ShortestPathAPI.java
#	hugegraph-client/src/main/java/org/apache/hugegraph/api/traverser/VariablesAPI.java
#	hugegraph-client/src/main/java/org/apache/hugegraph/api/vermeer/VermeerAPI.java
#	hugegraph-client/src/main/java/org/apache/hugegraph/client/RestClient.java
#	hugegraph-client/src/main/java/org/apache/hugegraph/driver/ComputerManager.java
#	hugegraph-client/src/main/java/org/apache/hugegraph/driver/GraphManager.java
#	hugegraph-client/src/main/java/org/apache/hugegraph/driver/GraphsManager.java
#	hugegraph-client/src/main/java/org/apache/hugegraph/driver/HStoreManager.java
#	hugegraph-client/src/main/java/org/apache/hugegraph/driver/HugeClient.java
#	hugegraph-client/src/main/java/org/apache/hugegraph/driver/PDManager.java
#	hugegraph-client/src/main/java/org/apache/hugegraph/driver/SchemaTemplateManager.java
#	hugegraph-client/src/main/java/org/apache/hugegraph/driver/ServiceManager.java
#	hugegraph-client/src/main/java/org/apache/hugegraph/driver/TraverserManager.java
#	hugegraph-client/src/main/java/org/apache/hugegraph/driver/VermeerManager.java
#	hugegraph-client/src/main/java/org/apache/hugegraph/driver/WhiteIpListManager.java
#	hugegraph-client/src/main/java/org/apache/hugegraph/driver/factory/PDHugeClientFactory.java
#	hugegraph-client/src/main/java/org/apache/hugegraph/structure/auth/Role.java
#	hugegraph-client/src/main/java/org/apache/hugegraph/structure/auth/UserManager.java
#	hugegraph-client/src/main/java/org/apache/hugegraph/structure/space/HStoreNodeInfo.java
#	hugegraph-client/src/main/java/org/apache/hugegraph/structure/traverser/CountResponse.java
#	hugegraph-client/src/main/java/org/apache/hugegraph/structure/traverser/Egonet.java
#	hugegraph-client/src/main/java/org/apache/hugegraph/structure/traverser/EgonetRequest.java
#	hugegraph-client/src/main/java/org/apache/hugegraph/structure/traverser/KneighborRequest.java
#	hugegraph-client/src/main/java/org/apache/hugegraph/structure/traverser/KoutRequest.java
#	hugegraph-client/src/main/java/org/apache/hugegraph/structure/traverser/PathOfVertices.java
#	hugegraph-client/src/main/java/org/apache/hugegraph/structure/traverser/PathWithMeasure.java
#	hugegraph-client/src/main/java/org/apache/hugegraph/structure/traverser/Prediction.java
#	hugegraph-client/src/main/java/org/apache/hugegraph/structure/traverser/RanksWithMeasure.java
#	hugegraph-client/src/main/java/org/apache/hugegraph/structure/traverser/SameNeighbors.java
#	hugegraph-client/src/main/java/org/apache/hugegraph/structure/traverser/SameNeighborsBatch.java
#	hugegraph-client/src/main/java/org/apache/hugegraph/structure/traverser/SameNeighborsBatchRequest.java
#	hugegraph-client/src/main/java/org/apache/hugegraph/structure/traverser/Steps.java
#	hugegraph-client/src/test/java/org/apache/hugegraph/api/GraphsApiTest.java
#	hugegraph-client/src/test/java/org/apache/hugegraph/api/traverser/AdamicAdarAPITest.java
#	hugegraph-client/src/test/java/org/apache/hugegraph/api/traverser/FusiformSimilarityApiTest.java
#	hugegraph-client/src/test/java/org/apache/hugegraph/api/traverser/KneighborApiTest.java
#	hugegraph-client/src/test/java/org/apache/hugegraph/api/traverser/KoutApiTest.java
#	hugegraph-client/src/test/java/org/apache/hugegraph/api/traverser/SameNeighborsBatchApiTest.java
#	hugegraph-client/src/test/java/org/apache/hugegraph/functional/HugeClientHttpsTest.java
# Conflicts:
#	hugegraph-loader/src/main/java/org/apache/hugegraph/loader/HugeGraphLoader.java
# Conflicts:
#	hugegraph-hubble/hubble-dist/pom.xml
#	hugegraph-hubble/hubble-fe/package-lock.json
#	hugegraph-hubble/hubble-fe/package.json
#	hugegraph-hubble/hubble-fe/yarn.lock
FrostyHec and others added 5 commits April 26, 2026 12:29
…he#718)

* refactor(client): replace skipRequiredChecks bool param with chainable graphRequired() method

- Move url/graph validation from constructor to build() for true null support
- Replace boolean constructor param with fluent .graphRequired(false) chain method
- Rename field to graphRequired (default true) for clearer semantics
- Clean up HugeClient javadoc: remove redundant class/constructor comments

---------

Co-authored-by: imbajin <jin@apache.org>
Add `pd.enabled` configuration option to allow Hubble to run in
standalone RocksDB mode without PD dependency.

Backend changes (hubble-be):
- Add ConfigController exposing GET /api/v1.3/config to report
  deployment mode (pd_enabled, server_url) to the frontend
- Add HubbleOptions.PD_ENABLED and SERVER_URL config options with
  defaults in hugegraph-hubble.properties
- BaseController: support direct server URL connection when PD is
  disabled; make PDHugeClientFactory injection optional
- UserService: guard all GraphSpace/Manager API calls behind
  isPdEnabled() checks; fix user lookup to use getUserByName()
  instead of getUser() (ID vs name mismatch in standalone mode);
  return ADMIN level for non-PD users
- GraphsService: use rocksdb backend and local task scheduler in
  standalone mode; add null-safe handling for create_time, default,
  and default_update_time fields that may be absent without PD;
  ensure nickname/graphspace fields are populated for frontend
- GraphSpaceController: return mock DEFAULT graphspace in standalone
  mode instead of calling PD APIs
- ServiceController: add checkPdMode() guard on all OLTP service
  endpoints
- SchemaTemplateController: return empty results in standalone mode
- OLTPServerService: make PDHugeClientFactory optional; skip PD URL
  resolution when disabled
- HugeClientPoolService: support direct URL connection fallback
- MetaConfig: make PD-related bean creation conditional on pd.enabled

Frontend changes (hubble-fe):
- Add api/config.js and utils/config.js for runtime deployment mode
  detection (isPdEnabled()) cached in sessionStorage
- Login/index.js: fetch /config after login to cache deployment mode
  before navigation
- Sidebar: dynamically render manage menu items based on PD mode;
  hide GraphSpace/Source/Task entries in standalone mode, show only
  graph management with DEFAULT graphspace
- NavigationHome: hide AdminItem and ConsoleItem when PD is disabled
- ManageItem: conditionally show reduced menu in standalone mode
- Graph/index.js: fallback graphspace to 'DEFAULT' in navigation
  URLs; adjust back button and page header for standalone mode
- Graph/Card.js: adapt title display and navigation links to handle
  missing graphspace/nickname fields in standalone mode
@dosubot dosubot Bot added size:XL This PR changes 500-999 lines, ignoring generated files. and removed size:XXL This PR changes 1000+ lines, ignoring generated files. labels Apr 29, 2026
Yeaury and others added 10 commits April 29, 2026 12:14
…nt page

- Remove "导入账号" Upload button from account management UI
- Remove TODO placeholder comment and old commented-out code block
- Clean up unused imports (Upload, PlusOutlined) and related state/constants
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Use fully-qualified loader VertexMapping type to avoid import conflict
with hubble DTO, and uncomment all previously disabled field assignments
(.label, .mappingFields, .mappingValues, .selectedFields, .nullValues).

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…dgeMappings

- Change return type and local list type from bare `EdgeMapping` (Hubble DTO) to
  fully-qualified `org.apache.hugegraph.loader.mapping.EdgeMapping` (Loader type)
- Uncomment and restore eMapping construction with correct FQN constructor call
- Restore all field assignments: label, mappingFields, mappingValues, selectedFields, nullValues
- Restore `eMappings.add(eMapping)` so built mappings are actually collected and returned
- Fix error message strings: CUSTOMIZED → PRIMARY_KEY to match actual id strategy check

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…adTaskProgress

Re-enable the commented-out progress-tracking code using the correct method
name totalInputRead() (not totalInputReaded()) so that fileReadLines is
updated from newProgress (falling back to oldProgress when newProgress is
still zero), making the progress bar advance during load tasks.
AbstractSource initializes listFormat to null; the stale commented-out
call source.listFormat(new ListFormat()) was the required initialization.
Restore it (using fully-qualified loader type to avoid import ambiguity
with the entity ListFormat) so subsequent .startSymbol/.endSymbol/
.elemDelimiter calls no longer throw NullPointerException.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
… logging

- Remove old commented-out readLines block (was replaced by active code in Task 5)
- Add info logging to buildLoadMapping() to verify vertex/edge mapping counts at runtime
  Backend:
- Add IngestController exposing tasks, jobs, datasources and metrics
  endpoints under /api/v1.3/ingest/
- Add datasource table with Entity/Mapper/Service for datasource CRUD
- Add global paginated listAll() to JobManagerService (no graphspace filter)
- Fix WebMvcConfig resource handler intercepting /api/** requests
- hugegraph-hubble.properties: disable PD mode, comment out proxy config

  Frontend:
- Fix request.js error handler missing .data wrapper causing undefined crash
- Add null guards in Task/TaskDetail pages for job_summary and structs fields
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

client hugegraph-client dependencies Pull requests that update a dependency file hubble hugegraph-hubble hubble-be inactive loader hugegraph-loader size:XL This PR changes 500-999 lines, ignoring generated files.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

8 participants