fix(pd): validate REST credentials and return 401 on refusal (#3189)
PD’s REST interceptor decodes the Basic credential, keeps only the part before the colon, and checks it against the fixed set hg, store, hubble, vermeer. Any of those names with any password, including an empty one, is treated as an internal component; the password is never read. Separately, RestAuthentication.preHandle writes an error body without calling setStatus, so success, refusal and missing credential all return HTTP 200 and nothing keyed on a status code (monitors, curl -f, the shipped healthchecks) can see a refusal. The endpoints behind the interceptor mutate the cluster: POST /v1/members/change, DELETE /v1/store/{storeId}, graph and graphspace writes, and the balance and patrol tasks. The issue has the measured 27-request matrix.
Co-authored-by: imbajin jin@apache.org
版权所有:中国计算机学会技术支持:开源发展技术委员会
京ICP备13000930号-9
京公网安备 11010802047560号
A graph database that supports more than 10 billion vertices & edges, high performance and scalability
Quick Navigation: Architecture • Quick Start • Module Map • Ecosystem • For Contributors • Community
What is Apache HugeGraph?
HugeGraph is a fast and highly-scalable graph database. Billions of vertices and edges can be easily stored into and queried from HugeGraph due to its excellent OLTP capabilities. HugeGraph is compliant with the Apache TinkerPop 3 framework allowing complicated graph queries to be achieved through the powerful Gremlin graph traversal language.
Features
Flink/Spark/HDFSEcosystem
Complete HugeGraph ecosystem components:
hugegraph-toolchain - Graph tools suite
hugegraph-computer - Integrated graph computing system
hugegraph-ai - Graph AI/LLM/Knowledge Graph integration
hugegraph-website - Documentation & website repository
Architecture
HugeGraph supports both standalone and distributed deployments:
See the backend evolution guide for lifecycle and historical compatibility guidance.
Deployment Mode Comparison
Module Overview
📊 Click to view detailed architecture diagram (Mermaid)
flowchart TB CLIENTS["Client LayerGremlin Console · REST Client · Cypher Client · SDK/Tools"] subgraph Server["HugeGraph Server :8080"] API[REST API
Jersey 3] GS[Gremlin Server
TinkerPop 3.5] CS[Cypher Engine
OpenCypher] CORE[Graph Engine
hugegraph-core] API --> CORE GS --> CORE CS --> CORE end subgraph Storage["Storage Layer"] subgraph Standalone["Standalone Mode"] ROCKS[(RocksDB
Embedded)] end subgraph Distributed["Distributed Mode"] PD_HSTORE[PD + HStore
Raft Cluster] end end CLIENTS --> Server CORE --> ROCKS CORE --> PD_HSTORE style Server fill:#e1f5ff style Distributed fill:#fff4e1 style Standalone fill:#f0f0f0
Quick Start
5 Minutes Quick Start
Prerequisites
Option 1: Docker (Fastest)
Docker is the quickest way to get started for testing or development:
For advanced Docker configurations, see:
Option 2: Download Binary Package
Download pre-built packages from the Download Page:
For detailed instructions, see the Binary Installation Guide.
Option 3: Build from Source
Build from source for development or customization:
For detailed build instructions, see BUILDING.md and Build from Source Guide.
Verify Installation
Once the server is running, verify the installation:
For comprehensive documentation, visit the HugeGraph Documentation.
Module Map
Developer Navigation: Find the right module for your task
hugegraph-coreStandardHugeGraph.javahugegraph-apisrc/.../api/hugegraph-coreBackendStore.javahugegraph-coresrc/.../traversal/hugegraph-apisrc/.../opencypher/hugegraph-pdhg-pd-core/hugegraph-storehg-store-core/hugegraph-server/hugegraph-{backend}hugegraph-rocksdb/,hugegraph-hstore/hugegraph-distsrc/assembly/static/conf/hugegraph-testFor detailed architecture and development guidance, see AGENTS.md.
For Contributors
New to HugeGraph? Follow this path to get started:
Understand the Architecture
Set Up Your Environment
.editorconfigfor code style andstyle/checkstyle.xmlfor Checkstyle rulesFind Your First Issue
Learn the Codebase
mvn test -pl hugegraph-server/hugegraph-test -am -P core-test,memoryCode Standards
feat|fix|refactor(module): descriptionSubmit Your Contribution
Contributing
Welcome to contribute to HugeGraph!
.editorconfigfor code style andstyle/checkstyle.xmlfor Checkstyle rulesThank you to all the contributors who have helped make HugeGraph better!
License
HugeGraph is licensed under Apache 2.0 License.
Community
Get Help & Stay Connected
Thanks
HugeGraph relies on the Apache TinkerPop framework. We are grateful to the TinkerPop community, Titan, and DataStax for their foundational work. Thanks to all contributors and organizations who have helped make HugeGraph possible.
You are welcome to contribute to HugeGraph, and we look forward to working with you to build an excellent open-source community.