Repository navigation
refactor(server): adapt REST API for hubble & enhance k8s mode - #3159
Conversation
67ff2e0 to
52035da
Compare
Codecov Report❌ Patch coverage is Additional details and impacted files@@ Coverage Diff @@
## master #3159 +/- ##
============================================
- Coverage 37.72% 37.72% -0.01%
- Complexity 6521 6529 +8
============================================
Files 800 800
Lines 68821 68882 +61
Branches 9127 9147 +20
============================================
+ Hits 25965 25988 +23
- Misses 39815 39844 +29
- Partials 3041 3050 +9 ☔ View full report in Codecov by Harness. 🚀 New features to boost your workflow:
|
Why this branch contains PD Raft changesThe PD change in Before:
After:
Most of the apparent size is defensive behavior and tests: this commit is Scope note: this is not required to distinguish API Scope freezeThe Hubble dependency is limited to the API |
imbajin
left a comment
There was a problem hiding this comment.
Blocking: yes. Summary: No actionable code defect was independently confirmed at this head. Approval remains blocked by the current codecov/project failure. Evidence: Java 11 targeted tests passed: PD auth/raft 20/20, PDService raft update 6/6, GraphSpace API 13/13; current checks show codecov/project FAILURE.
Bring in server REST API 0.72 changes (PR apache#3159) for local Hubble auth testing.
imbajin
left a comment
There was a problem hiding this comment.
Blocking: yes. Summary: The new Gremlin mutation pre-check misses TinkerPop merge steps, so execute-only users can reach mutation paths without a required WRITE check. Evidence: traversalPermissions() only recognizes AddVertexStartStep, AddVertexStep, AddEdgeStartStep, AddEdgeStep, AddPropertyStep, and DropStep at HugeGraphAuthProxy.java:2533-2541; TinkerPop 3.7.6 also has MergeVertexStep and MergeEdgeStep, whose on-match path can call Vertex.property directly. Please classify both merge steps as WRITE (including nested children) and add execute-only regression tests for mergeV/mergeE create and onMatch cases.
imbajin
left a comment
There was a problem hiding this comment.
Blocking: yes. Summary: The current head has authorization correctness and isolation regressions in GraphSpace role checks, Gremlin mutation enforcement, and callback context cleanup. Evidence: exact-head static review plus six independent read-only lanes; latest checks pass for builds/Docker/CodeQL, while dependency-review is cancelled and Codecov failures are non-blocking.
|
Superseded by hugegraph#198. The reviewed fixes and remaining compatibility acceptance are now tracked in the organization repository; please close this ASF PR. |
- match merge steps by exact TinkerPop class names - retain superclass traversal for provider implementations - reject unrelated steps sharing merge simple names - preserve recursive child permission coverage
- add pinned-3.5 test fixtures for TinkerPop merge steps - route vertex and edge merge shapes through strategy checks - retain external same-name and child traversal regressions
- move compatibility fixtures into test output only - add test output to the unit-test classpath - construct exact-package fixtures reflectively - keep main artifacts free of TinkerPop shadow classes
- select fixture sources from the pinned TinkerPop version - keep 3.5.1 compatibility classes in test output only - stop selecting fixtures automatically after a version change - preserve merge permission regression coverage
- prefer the official traversal and isStart constructor - use Merge.onMatch through reflection when available - keep an explicit 3.5.1 fixture child fallback - preserve merge authorization coverage
- restore the TinkerPop 3.5.1 authorization scope\n- remove future-version merge detection and fixtures\n- keep the Hubble permission closeout focused on reproduced behavior
- move dependency review action from v3 to the Node 24 v5 release - use the supported oversized-summary handling - keep existing severity and license policy unchanged
- add a configurable PD Raft whitelist toggle - preserve whitelist behavior by default - skip the IP handler when disabled
- use username consistently for audit limiter lookup - cover distinct user id and username cleanup - verify PD IP whitelist switch pipeline behavior
- honor ALL_GRAPHS and reject mixed-space grants - make callback elevation explicit and restore request contexts - remove incomplete Gremlin and legacy observer compatibility paths - preserve HStore clear safety and the HBase Docker trigger
45628f5 to
6851b1c
Compare
|
TODO follow-ups intentionally kept out of this minimal API 0.72 closeout:
These are explicit follow-ups, not silently implemented compatibility behavior |
|
Final dependency-review rerun note: attempt 3 completed with the same stale all-dependencies-added snapshot and failed on existing vulnerable/low-score packages. The PR changes no dependency coordinates; its only pom.xml delta changes the API JAR Implementation-Version from 0.71.0.0 to 0.72.0.0. The repository-specific dependency-check job passes, all build/storage/Docker jobs pass, and Codecov patch/project pass. This dependency-review result is classified as a base-snapshot failure rather than a current-head dependency regression; no product or dependency suppression change is made. |
4034d54 to
6851b1c
Compare
- identify the GraphSpace default-role change as PR-3159 - keep the existing API 0.72 contract description - leave runtime version behavior unchanged
Picks up apache#3159 (321ba4d), the REST API adaptation for Hubble and the k8s-mode enhancements that the pending confirmation pass depends on, along with apache#3140, apache#3153, apache#3173, apache#3171, apache#3177, apache#3176, apache#3178 and apache#3149. No conflicts, and no change to helm/.
Brings the nine commits helm-dev was behind: apache#3140, apache#3149, apache#3159, apache#3171, apache#3173, apache#3176, apache#3177, apache#3178 and apache#3182. The three conflicts were early copies of apache#3159 and apache#3171 already carried on this branch (docker-build-ci.yml, Dockerfile-hstore, ApiVersion.java) and resolve to the master side, so the tree now differs from master only in the chart, its CI workflow, the README pointer to it and the tgz excludes.
…e#3159) - add a configurable PD Raft whitelist toggle - preserve whitelist behavior by default - skip the IP handler when disabled * fix: unify audit limiter cache key - use username consistently for audit limiter lookup - cover distinct user id and username cleanup - verify PD IP whitelist switch pipeline behavior * fix(server): close auth review gaps - honor ALL_GRAPHS and reject mixed-space grants - make callback elevation explicit and restore request contexts - remove incomplete Gremlin and legacy observer compatibility paths - preserve HStore clear safety and the HBase Docker trigger * docs(server): reference PR for API 0.72 - identify the GraphSpace default-role change as PR-3159 - keep the existing API 0.72 contract description - leave runtime version behavior unchanged
Closeout status
0.72through source properties, the API JAR manifestand the runtime version endpoint.
ALL_GRAPHSroles for existing andfuture graphs.
succeeds without a warm-up request.
ALL_GRAPHSchecks and reject mixed-GraphSpace roledisclosure.
restore every auth, request GraphSpace and task context.
request-time legacy observer migration/cleanup.
cache invalidation.
docker/hbase/**to the existing Docker CI trigger.masterwithout dropping the existing bugfixes.Before → After
0.710.72ALL_GRAPHSroles cover existing and future graphs0.72uses explicitALL_GRAPHS; migration is a separate TODOFinal-head evidence
6851b1cd49f1770f6f27152e468a6e58c933af79c6853e70c6fd10e441d66a0633aca60640d0c7ddUnitTestSuite: 661 passed, 0 failed, 1 skippedgit diff --check: passedis explicitly tracked in the consolidated TODO rather than expanded here
Approval and merge remain upstream review gates, not claims of this closeout.