diff --git a/.editorconfig b/.editorconfig index 7e5f93a2f5..e769ddc280 100644 --- a/.editorconfig +++ b/.editorconfig @@ -25,17 +25,16 @@ max_line_length = 120 ij_wrap_on_typing = true ij_visual_guides = 120 - [*.{java,xml,py}] indent_style = space indent_size = 4 [*.{java,xml}] -# Ignore the IDEA unsupported warning & it works well (indeed) continuation_indent_size = 8 [*.md] -max_line_length = off +max_line_length = unset +ij_visual_guides = 160 ij_wrap_on_typing = false [*.java] diff --git a/.serena/README.md b/.serena/README.md new file mode 100644 index 0000000000..85a533d253 --- /dev/null +++ b/.serena/README.md @@ -0,0 +1,27 @@ +# Serena project context + +This directory is a compact navigation cache for coding agents. It is not an independent documentation set and must not duplicate product guides, option tables or release history. + +## Read order + +1. [`../AGENTS.md`](../AGENTS.md) for repository-wide constraints and validation expectations. +2. [`../docs/README.md`](../docs/README.md) for the authoritative documentation map. +3. The nearest module `AGENTS.md` and README for the code being changed. +4. A memory below only when a quick architecture or file-location map is useful. + +## Maintained memories + +| Memory | Purpose | +|---|---| +| [project_overview.md](memories/project_overview.md) | Stable product scope and authoritative entry points | +| [architecture_and_modules.md](memories/architecture_and_modules.md) | High-level module ownership and runtime relationships | +| [key_file_locations.md](memories/key_file_locations.md) | Search anchors for common work areas | + +Build commands, style rules, test selection and completion checks belong in `AGENTS.md`, module files and executable CI configuration. Keeping them there prevents this cache from drifting. + +## Maintenance policy + +- Store stable relationships and search anchors, not timestamps, onboarding status, pull-request links, commit hashes or copied release numbers. +- Link to the owning file instead of reproducing long procedures. +- Update or remove a memory in the same change when module ownership or a referenced path changes. +- Keep each memory small enough to load on demand; do not turn the cache into a second README tree. diff --git a/.serena/memories/architecture_and_modules.md b/.serena/memories/architecture_and_modules.md index 687ae2251f..92b422e81f 100644 --- a/.serena/memories/architecture_and_modules.md +++ b/.serena/memories/architecture_and_modules.md @@ -1,36 +1,26 @@ -# Architecture and Module Structure - -## Three-Tier Architecture - -### 1. Client Layer -- Gremlin/Cypher queries, REST APIs, Swagger UI - -### 2. Server Layer (hugegraph-server, 8 submodules) -- **REST API** (hugegraph-api): GraphAPI, SchemaAPI, GremlinAPI, CypherAPI, AuthAPI, GraphSpaceAPI (distributed only), ManagerAPI (distributed only) -- **Graph Engine** (hugegraph-core): Schema (with TTL update), traversal, task scheduling, GraphSpace multi-tenancy -- **Backend Interface**: Pluggable via `BackendStore` - -### 3. Storage Layer -- RocksDB (default/embedded), HStore (distributed/production) -- HBase (deprecated; planned for removal in 2.0) - -## Module Structure (7 top-level modules) - -### hugegraph-server (8 submodules) -`hugegraph-core`, `hugegraph-api` (includes `opencypher/`, `space/`), `hugegraph-dist`, `hugegraph-test`, `hugegraph-example`, plus backends: `hugegraph-rocksdb`, `hugegraph-hstore`, `hugegraph-hbase` - -### hugegraph-pd (8 submodules) -Placement Driver: `hg-pd-core`, `hg-pd-service`, `hg-pd-client`, `hg-pd-common`, `hg-pd-grpc`, `hg-pd-cli`, `hg-pd-dist`, `hg-pd-test` - -### hugegraph-store (9 submodules) -Distributed storage + Raft: `hg-store-core`, `hg-store-node`, `hg-store-client`, `hg-store-common`, `hg-store-grpc`, `hg-store-rocksdb`, `hg-store-cli`, `hg-store-dist`, `hg-store-test` - -### Others -- **hugegraph-commons**: Shared utilities, RPC framework -- **hugegraph-struct**: Data structures (must build before PD/Store) -- **install-dist**: Distribution packaging, license files -- **hugegraph-cluster-test**: Cluster integration tests - -## Distributed Deployment (BETA) -PD manages placement and metadata; Store owns partition data; Server serves graph queries. -Development and HA topologies differ; see `docker/README.md` for node counts and configuration. +# Architecture and module ownership + +```text +Clients and ecosystem tools + │ + ▼ +HugeGraph Server ─────────────────► RocksDB (standalone) + │ + ├─ metadata / placement lookup ─► PD ── coordinates ─► HStore nodes + └─ graph data requests ──────────────────────────────► HStore nodes (distributed) +``` + +PD supplies metadata, placement and membership information; Server sends graph data requests directly to the selected HStore nodes. + +## Top-level ownership + +- `hugegraph-server/`: graph engine, schema, tasks, traversers, REST/Gremlin/Cypher APIs and storage adapters. +- `hugegraph-pd/`: placement, metadata, cluster scheduling and PD clients. +- `hugegraph-store/`: partition storage, Store clients and Raft replication. +- `hugegraph-struct/`: shared graph structures, identifiers and serialization used across distributed modules. +- `hugegraph-commons/`: shared utilities and RPC infrastructure. +- `hugegraph-cluster-test/`: cross-component cluster validation. +- `install-dist/`: distribution assembly, dependency inventory and release metadata. +- `helm/hugegraph/` and `docker/`: Kubernetes and container deployment assets. + +Read the nearest module `AGENTS.md` before changing an implementation. For current submodule membership and dependency edges, inspect the root and module POMs rather than maintaining a copied count here. diff --git a/.serena/memories/code_style_and_conventions.md b/.serena/memories/code_style_and_conventions.md deleted file mode 100644 index ce3809cdf4..0000000000 --- a/.serena/memories/code_style_and_conventions.md +++ /dev/null @@ -1,28 +0,0 @@ -# Code Style and Conventions - -## Style Tools -- `.editorconfig` — Primary style definition -- `style/checkstyle.xml` — Enforcement (note: `hugegraph-style.xml` was removed) -- `.licenserc.yaml` + apache-rat-plugin + skywalking-eyes — License header validation - -## Core Rules -- **Line length**: 120 chars -- **Indent**: 4 spaces, continuation 8 spaces -- **Charset**: UTF-8, LF line endings, final newline -- **Imports**: Sorted `$*` → `java` → `javax` → `org` → `com` → `*`, no star imports (threshold 100) -- **Braces**: `if`/`while`/`for` forced if multiline, `do-while` always -- **Blank lines**: Max 1 in code/declarations -- **JavaDoc**: `
` on empty lines, no wrap if one line
-
-## Naming
-- Packages: `org.apache.hugegraph.*` (lowercase dot-separated)
-- Classes: PascalCase, Methods/Variables: camelCase, Constants: UPPER_SNAKE_CASE
-
-## License
-- All source files require Apache 2.0 header
-- gRPC generated code excluded from checks
-- Validate: `mvn apache-rat:check -ntp` + `mvn editorconfig:check`
-
-## Build
-- Java 17 release target, `-Xlint:unchecked`, Lombok 1.18.30 (provided/optional)
-- Swagger: `io.swagger.core.v3:swagger-jaxrs2-jakarta` for REST API docs
diff --git a/.serena/memories/ecosystem_and_related_projects.md b/.serena/memories/ecosystem_and_related_projects.md
deleted file mode 100644
index b5bd9c1eeb..0000000000
--- a/.serena/memories/ecosystem_and_related_projects.md
+++ /dev/null
@@ -1,24 +0,0 @@
-# HugeGraph Ecosystem and Related Projects
-
-## This Repo: apache/hugegraph (server, OLTP)
-
-## Ecosystem
-| Repo | Purpose |
-|------|---------|
-| hugegraph-toolchain | Loader, Hubble (visualization), Tools CLI, Java Client |
-| hugegraph-computer | OLAP: PageRank, Connected Components, Shortest Path |
-| apache/hugegraph-ai | Graph RAG, KG construction, NL→Gremlin/Cypher |
-| hugegraph-doc | Docs & website (hugegraph.apache.org) |
-
-## Data Flow
-```
-Sources → hugegraph-loader → hugegraph-server → Hubble / Computer / AI
-```
-
-## Integrations
-- Big Data: Flink, Spark, HDFS
-- Queries: Gremlin (TinkerPop 3.8.1), OpenCypher, REST API + Swagger UI
-- Storage: RocksDB (default), HStore (distributed)
-
-## Versions
-Read Server revision from root `pom.xml` and TinkerPop from `hugegraph-server/pom.xml`.
diff --git a/.serena/memories/implementation_patterns_and_guidelines.md b/.serena/memories/implementation_patterns_and_guidelines.md
deleted file mode 100644
index ce83957f48..0000000000
--- a/.serena/memories/implementation_patterns_and_guidelines.md
+++ /dev/null
@@ -1,49 +0,0 @@
-# Implementation Patterns and Guidelines
-
-## Backend Architecture
-- Backends implement `BackendStore` interface from `hugegraph-core`
-- Each backend = separate Maven module under `hugegraph-server/`
-- Configured via `hugegraph.properties` → `backend` property
-- **Supported backends**: RocksDB (default/embedded), HStore (distributed), HBase (deprecated; planned for removal in 2.0)
-
-## GraphSpace Multi-Tenancy
-- Core: `hugegraph-core/.../space/` (GraphSpace, SchemaTemplate, Service, register/)
-- API: `hugegraph-api/.../api/space/GraphSpaceAPI.java` (includes GS profile endpoints)
-- **Standalone mode**: GraphSpaceAPI and ManagerAPI are disabled
-
-## Auth System
-- Disabled by default, enable via `bin/enable-auth.sh`
-- ConfigAuthenticator was removed, use standard auth
-- Multi-level: Users, Groups, Projects, Targets, Access control
-- Location: `hugegraph-api/.../api/auth/`
-
-## gRPC Protocol
-- PD protos: `hugegraph-pd/hg-pd-grpc/src/main/proto/`
-- Store protos: `hugegraph-store/hg-store-grpc/src/main/proto/`
-- After `.proto` changes: `mvn clean compile`; PD/Store gRPC POMs output to each module's `src/main/java/`.
-
-## Query Languages
-- **Gremlin**: Native TinkerPop 3.8.1
-- **OpenCypher**: `hugegraph-api/opencypher/`
-- TinkerPop exceptions are passed through in Gremlin responses
-
-## Schema
-- Labels support TTL with runtime update
-- Edge label conflicting conditions are handled safely
-
-## Testing
-- **Profiles**: `unit-test`, `core-test`, `api-test`, `tinkerpop-structure-test`, `tinkerpop-process-test`
-- **Backends in CI**: memory, rocksdb, hbase (matrix)
-- **Single test class**: `mvn test -pl hugegraph-server/hugegraph-test -am -P core-test,memory -Dtest=ClassName`
-- TinkerPop tests: `release-*`/`test-*` and upgrade branches selected in `server-ci.yml`
-- Server Raft API tests are branch-gated in `server-ci.yml`; Store raft-core tests run in normal `pd-store-ci.yml` CI.
-
-## Docker
-- Standalone: `docker/docker-compose.yml` (bridge network, Server + Hubble)
-- Cluster: `docker/docker-compose-3pd-3store-3server.yml`
-- Container logs: stdout-based
-
-## CI Pipelines
-- `server-ci.yml`: compile + unit/core/API tests (memory/rocksdb/hbase × Java 17)
-- `rerun-ci.yml`: auto-rerun flaky failures (max 2 reruns, 180s delay)
-- `auto-pr-review.yml`: auto-comment on new PRs
diff --git a/.serena/memories/key_file_locations.md b/.serena/memories/key_file_locations.md
index bde5926a3c..32dee92d5c 100644
--- a/.serena/memories/key_file_locations.md
+++ b/.serena/memories/key_file_locations.md
@@ -1,44 +1,21 @@
-# Key File and Directory Locations
+# Key file locations
-## Build & Config
-- `pom.xml` — Root multi-module POM
-- `.editorconfig` — Code style rules
-- `style/checkstyle.xml` — Checkstyle enforcement (hugegraph-style.xml was removed)
-- `.licenserc.yaml` — License checker config
+Use these paths as search anchors; follow the nearest README or `AGENTS.md` for local rules.
-## Server (hugegraph-server)
-- Core engine: `hugegraph-core/src/main/java/org/apache/hugegraph/` → `backend/`, `schema/`, `traversal/`, `task/`
-- GraphSpace: `hugegraph-core/.../space/` → `GraphSpace.java`, `SchemaTemplate.java`, `Service.java`, `register/`
-- REST APIs: `hugegraph-api/src/main/java/org/apache/hugegraph/api/` → `graph/`, `schema/`, `gremlin/`, `cypher/`, `auth/`, `space/` (GraphSpaceAPI), `metrics/`, `arthas/`
-- OpenCypher: `hugegraph-api/.../opencypher/`
-- Backend interface: `hugegraph-core/.../backend/store/BackendStore.java`
-- Distribution: `hugegraph-dist/src/assembly/static/` → `bin/`, `conf/`, `lib/`, `logs/`
-- Tests: `hugegraph-test/src/main/java/.../` → `unit/`, `core/`, `api/`, `tinkerpop/`
+| Work area | Start here |
+|---|---|
+| Repository modules and versions | `pom.xml` |
+| Build, contribution and documentation map | `docs/README.md`, `docs/BUILDING.md`, `docs/CONTRIBUTING.md` |
+| Graph engine, schema, traversal and tasks | `hugegraph-server/hugegraph-core/src/main/java/org/apache/hugegraph/` |
+| REST, Gremlin, Cypher and authentication APIs | `hugegraph-server/hugegraph-api/src/main/java/org/apache/hugegraph/api/` |
+| Server distribution and runtime configuration | `hugegraph-server/hugegraph-dist/` |
+| Server tests | `hugegraph-server/hugegraph-test/` |
+| PD implementation and protocol | `hugegraph-pd/`, especially `hg-pd-core/`, `hg-pd-service/` and `hg-pd-grpc/` |
+| Store implementation and protocol | `hugegraph-store/`, especially `hg-store-core/`, `hg-store-node/` and `hg-store-grpc/` |
+| Shared graph structures | `hugegraph-struct/` |
+| CI workflows and policy | `.github/workflows/`, `.github/scripts/`, `docs/ci.md` |
+| Dependency and release metadata | `install-dist/release-docs/`, `install-dist/scripts/dependency/` |
+| Docker and Compose | `docker/README.md`, `docker/` |
+| Kubernetes and Helm | `helm/hugegraph/README.md`, `helm/hugegraph/docs/README.md`, `helm/hugegraph/values.yaml` |
-## Docker
-- `docker/docker-compose.yml` — Standalone Server + Hubble (bridge network)
-- `docker/docker-compose-3pd-3store-3server.yml` — 3-node cluster
-- `docker/docker-compose.dev.yml` — Dev mode
-
-## PD Module
-- Proto: `hugegraph-pd/hg-pd-grpc/src/main/proto/`
-- Dist: `hugegraph-pd/hg-pd-dist/src/assembly/static/`
-
-## Store Module
-- Proto: `hugegraph-store/hg-store-grpc/src/main/proto/`
-- Dist: `hugegraph-store/hg-store-dist/src/assembly/static/`
-
-## CI Workflows (.github/workflows/)
-- `server-ci.yml` — Server tests (matrix: memory/rocksdb/hbase × Java 17)
-- `pd-store-ci.yml` — PD, Store & HStore tests
-- `commons-ci.yml` — Commons tests
-- `cluster-test-ci.yml` — Cluster integration
-- `licence-checker.yml` — License headers
-- `rerun-ci.yml` — Auto-rerun for flaky workflows
-- `auto-pr-review.yml` — Auto-comment on new PRs
-- `check-dependencies.yml` — Dependency checks
-- `codeql-analysis.yml` — CodeQL security scanning
-- `stale.yml` — Stale issue/PR cleanup
-
-## Docs
-- `README.md`, `docs/BUILDING.md`, `docs/CONTRIBUTING.md`, `AGENTS.md`, `CLAUDE.md`
+Search the repository before assuming a path or configuration name is still current. This memory intentionally omits workflow filenames and submodule counts that change frequently.
diff --git a/.serena/memories/project_overview.md b/.serena/memories/project_overview.md
index deac1e6821..8a60b3cc93 100644
--- a/.serena/memories/project_overview.md
+++ b/.serena/memories/project_overview.md
@@ -1,26 +1,19 @@
-# Apache HugeGraph Project Overview
+# Project overview
-## Project Purpose
-Apache HugeGraph is a fast-speed, highly-scalable graph database supporting 10+ billion vertices/edges for OLTP workloads. Graduated from Apache Incubator (incubating branding removed).
+Apache HugeGraph is a graph database with standalone and distributed deployment modes. It provides a property-graph data model, schema and indexes, graph traversals, REST/Gremlin/Cypher access, authentication and operational tooling.
-## Key Capabilities
-- Apache TinkerPop 3 compliant graph database
-- Gremlin + OpenCypher query languages
-- Schema metadata management (VertexLabel, EdgeLabel, PropertyKey, IndexLabel) with TTL update support
-- Multi-type indexes (exact, range, complex conditions)
-- Pluggable backend storage (RocksDB default, HStore distributed)
-- GraphSpace multi-tenancy (standalone mode disables GraphSpaceAPI/ManagerAPI)
-- Swagger UI for REST API documentation
-- Integration with Flink/Spark/HDFS
+## Deployment modes
-## Technology Stack
-- **Language**: Java 17 (required; currently supported release)
-- **Build**: Maven 3.6.3+
-- **Graph Framework**: Apache TinkerPop 3.8.1
-- **RPC**: gRPC + Protocol Buffers
-- **API Docs**: Swagger (io.swagger.core.v3)
-- **Storage**: RocksDB (default/embedded), HStore (distributed/production), HBase (deprecated; planned for removal in 2.0)
+- **Standalone:** HugeGraph Server uses embedded RocksDB by default. The HBase backend remains supported but is deprecated. RocksDB is the shortest path for development and smaller deployments.
+- **Distributed:** Server handles graph APIs, PD owns placement and metadata coordination, and HStore nodes own partition data and replication.
-## Version
-- Read `${revision}` from the root `pom.xml`; Maven flatten resolves it for published artifacts.
-- License: Apache License 2.0
+## Authoritative entry points
+
+- Product and deployment overview: [`../../README.md`](../../README.md)
+- Repository documentation map: [`../../docs/README.md`](../../docs/README.md)
+- Build and contribution rules: [`../../docs/BUILDING.md`](../../docs/BUILDING.md), [`../../docs/CONTRIBUTING.md`](../../docs/CONTRIBUTING.md)
+- Kubernetes deployment: [`../../helm/hugegraph/README.md`](../../helm/hugegraph/README.md)
+- Repository agent guidance: [`../../AGENTS.md`](../../AGENTS.md)
+- Current versions and module membership: [`../../pom.xml`](../../pom.xml)
+
+Do not copy release versions or detailed feature lists into this memory. Read the owning source when exact current behavior matters.
diff --git a/.serena/memories/suggested_commands.md b/.serena/memories/suggested_commands.md
deleted file mode 100644
index c1aa4d8e5b..0000000000
--- a/.serena/memories/suggested_commands.md
+++ /dev/null
@@ -1,59 +0,0 @@
-# Suggested Development Commands
-
-## Build
-```bash
-mvn clean install -DskipTests # Full build
-mvn clean install -pl hugegraph-server -am -DskipTests # Server only
-mvn clean compile -U -Dmaven.javadoc.skip=true -ntp # Compile only
-mvn clean package -DskipTests # Aggregate distribution → root target/
-```
-
-## Test
-```bash
-# Server tests (memory/rocksdb/hbase backends)
-mvn test -pl hugegraph-server/hugegraph-test -am -P unit-test
-mvn test -pl hugegraph-server/hugegraph-test -am -P core-test,memory
-mvn test -pl hugegraph-server/hugegraph-test -am -P core-test,rocksdb
-mvn test -pl hugegraph-server/hugegraph-test -am -P api-test,rocksdb
-
-# Single test class
-mvn test -pl hugegraph-server/hugegraph-test -am -P core-test,memory -Dtest=YourTestClass
-
-# TinkerPop compliance (can be run locally on any branch)
-mvn test -pl hugegraph-server/hugegraph-test -am -P tinkerpop-structure-test,memory
-
-# PD/Store (build struct first)
-mvn install -pl hugegraph-struct -am -DskipTests
-mvn test -pl hugegraph-pd/hg-pd-test -am
-mvn test -pl hugegraph-store/hg-store-test -am
-```
-
-## Validation
-```bash
-mvn apache-rat:check -ntp # License headers
-mvn editorconfig:check # Code style (.editorconfig)
-mvn checkstyle:check # Code style (style/checkstyle.xml)
-mvn clean compile -Dmaven.javadoc.skip=true # Compile warnings
-```
-
-## Server Ops
-Scripts in `hugegraph-server/hugegraph-dist/src/assembly/static/bin/` (or extracted distribution `bin/`):
-```bash
-bin/init-store.sh && bin/start-hugegraph.sh # Init + start
-bin/stop-hugegraph.sh # Stop
-bin/enable-auth.sh # Enable auth
-```
-
-## Docker
-Create the required authentication environment first; follow `docker/README.md`.
-```bash
-cd docker && docker compose up -d # Standalone Server + Hubble (bridge network)
-cd docker && docker compose -f docker-compose-3pd-3store-3server.yml up -d # Cluster
-```
-
-## Distributed Build (BETA)
-```bash
-mvn install -pl hugegraph-struct -am -DskipTests # 1. Struct first
-mvn clean package -pl hugegraph-pd -am -DskipTests # 2. PD
-mvn clean package -pl hugegraph-store -am -DskipTests # 3. Store
-```
diff --git a/.serena/memories/task_completion_checklist.md b/.serena/memories/task_completion_checklist.md
deleted file mode 100644
index 58a32fb0e4..0000000000
--- a/.serena/memories/task_completion_checklist.md
+++ /dev/null
@@ -1,37 +0,0 @@
-# Task Completion Checklist
-
-## 1. Validation scope
-Documentation-only changes: check links, paths and `git diff --check`.
-For code changes, select relevant checks below and follow root `AGENTS.md` before pushing.
-```bash
-mvn apache-rat:check -ntp # License headers
-mvn editorconfig:check # Style (.editorconfig)
-mvn checkstyle:check # Style (style/checkstyle.xml)
-mvn clean compile -Dmaven.javadoc.skip=true # Compile warnings
-```
-
-## 2. Testing
-- Choose backend: `memory` (fast), `rocksdb` (realistic), `hbase` (deprecated compatibility)
-- Single-test selection: check the module test POM and confirm the requested test actually ran.
-- Bug fix → existing tests; New feature → write tests; Refactor → affected module tests
-
-## 3. Dependencies (if adding new)
-1. License file → `install-dist/release-docs/licenses/`
-2. Declare in `install-dist/release-docs/LICENSE`
-3. Append NOTICE → `install-dist/release-docs/NOTICE`
-4. Run `./install-dist/scripts/dependency/regenerate_known_dependencies.sh`
-
-## 4. CI Awareness
-- `server-ci.yml`: memory/rocksdb/hbase × Java 17
-- `rerun-ci.yml`: auto-retries flaky failures
-- `licence-checker.yml`: header validation
-- Server Raft API tests are branch-gated; Store raft-core and core tests run in normal PD/Store CI.
-- TinkerPop tests: only `release-*`/`test-*` branches
-
-## 5. Documentation
-- Follow root `AGENTS.md`: user-visible feature/configuration/deployment changes ship with matching docs.
-
-## 6. Commit
-- NEVER commit unless explicitly asked
-- Format: `feat|fix|refactor(module): msg`
-- Include issue ID if available
diff --git a/AGENTS.md b/AGENTS.md
index e7768ad5eb..3bf6deba08 100644
--- a/AGENTS.md
+++ b/AGENTS.md
@@ -1,62 +1,58 @@
# AGENTS.md
-Repository-specific guidance; module files add local details.
+Repository-specific guidance for coding agents. Module files add local ownership, commands and failure modes.
-## Key relationships
+## System map
```text
-Server (hugegraph-server): graph engine + REST/Gremlin API
- ├─ RocksDB: embedded backend
- └─ HStore adapter → Store client → Store: partition data + Raft
+Server: graph engine and user APIs
+ ├─ RocksDB: embedded standalone backend
+ └─ HStore adapter → Store client → Store partition data and Raft
-PD: placement + metadata; consulted by Server and Store
-Struct: shared types/codecs; separate implementations also exist in Server
-Commons: shared utilities; independent compiler and test settings
+PD: placement and metadata coordination
+Struct: shared graph types and codecs
+Commons: shared utilities and RPC infrastructure
```
## Load on demand
-| Work area | Read when working there |
+| Work area | Read first |
|---|---|
-| Graph engine, API, backends | [Server](hugegraph-server/AGENTS.md) |
-| Placement, metadata, PD client | [PD](hugegraph-pd/AGENTS.md) |
-| Distributed storage and client | [Store](hugegraph-store/AGENTS.md) |
-| Shared data types and serialization | [Struct](hugegraph-struct/AGENTS.md) |
-| Utilities and RPC | [Commons](hugegraph-commons/AGENTS.md) |
-| Container deployment | [Docker guide](docker/README.md) |
-| PR requirements | [Contribution guide](docs/CONTRIBUTING.md) |
+| Documentation ownership and durable links | [Repository docs index](docs/README.md) |
+| Graph engine, API and backends | [Server guidance](hugegraph-server/AGENTS.md) |
+| Placement, metadata and PD clients | [PD guidance](hugegraph-pd/AGENTS.md) |
+| Distributed storage and Store clients | [Store guidance](hugegraph-store/AGENTS.md) |
+| Shared graph types and serialization | [Struct guidance](hugegraph-struct/AGENTS.md) |
+| Utilities and RPC | [Commons guidance](hugegraph-commons/AGENTS.md) |
+| Docker deployment | [Docker guide](docker/README.md) |
+| Kubernetes deployment | [Helm guide](helm/hugegraph/README.md) |
+| Contribution requirements | [Contribution guide](docs/CONTRIBUTING.md) |
## Repository constraints
-- Use existing module boundaries; keep unrelated refactors out of a fix.
-- User-visible feature, configuration or deployment behavior changes must ship with matching docs.
- Update in-repository docs in the same PR; link a paired `apache/hugegraph-doc` PR when website
- docs are affected and coordinate both merges. A follow-up issue alone does not satisfy this rule.
- Internal-only changes can use `Doc - No Need`.
-- Keep README as an entry point; link detailed deployment instructions instead of duplicating them.
-- Keep AGENTS.md under 100 lines where practical. Shared rules belong here, local exceptions
- in module files. Keep key relationships, common commands and non-obvious pitfalls inline;
- reference existing sources for versions, configuration details and lengthy procedures.
+- Keep changes inside the module that owns the behavior; exclude unrelated cleanup from a functional fix.
+- A user-visible feature, configuration or deployment change requires matching documentation in the same change. Link a coordinated `apache/hugegraph-doc` change when the website is affected; a follow-up issue alone is not sufficient.
+- Keep root and module READMEs as entry points. Put detailed procedures in a focused document and link it from the relevant index.
+- Treat `docs/README.md` as the repository documentation map. New durable Markdown files must be linked from it or from a module-local index.
+- Treat `.serena/` as a small navigation cache. Do not store duplicated procedures, fixed release numbers, timestamps, review history, pull-request links or commit hashes there.
+- Write documentation for the current contract and operational boundary, not as a development diary. Keep prose paragraphs as logical lines; wrap near 160 characters only when necessary for review.
## Build and validation
-Commands run from the repository root. Java 17 and Maven 3.6.3+;
-versions come from [pom.xml](pom.xml), including `${revision}`.
+Run commands from the repository root. Java and Maven requirements are defined by [pom.xml](pom.xml) and summarized in [BUILDING.md](docs/BUILDING.md).
```bash
mvn clean install -DskipTests
mvn clean install -pl hugegraph-server -am -DskipTests
```
-For separate distributed-module builds, install `hugegraph-struct` first,
-then build PD, Store and Server. Module guidance covers tests and CI prerequisites.
-Commons tests require `-DskipCommonsTests=false`; a successful build does not imply its tests ran.
-
-- Java style: 120 columns, 4 spaces, no star imports; see [.editorconfig](.editorconfig).
-- Before pushing code: `mvn editorconfig:format`,
- `mvn clean compile -Dmaven.javadoc.skip=true`, and relevant module tests.
- Documentation-only changes need link/path checks and `git diff --check`.
-- PD/Store `.proto` builds generate Java into each `hg-*-grpc/src/main/java/` directory;
- see the corresponding gRPC module POM before editing or cleaning generated sources.
-- New dependencies require updating [release LICENSE/NOTICE/licenses](install-dist/release-docs/)
- and [dependency inventory](install-dist/scripts/dependency/known-dependencies.txt).
+For separate distributed-module builds, install `hugegraph-struct` first, then build PD, Store and Server. Commons tests require `-DskipCommonsTests=false`; a successful aggregate build does not imply those tests ran.
+
+Before pushing code, run `mvn editorconfig:format`, `mvn clean compile -Dmaven.javadoc.skip=true` and the tests selected by the affected modules. Documentation-only changes require relative-link review, rendered-heading review and `git diff --check`.
+
+## Non-obvious boundaries
+
+- Server changes commonly require both Server and PD/Store CI because the HStore path crosses module boundaries.
+- PD and Store protocol builds generate Java into their gRPC modules; inspect the module POM before editing or deleting generated sources.
+- New dependencies require updates to `install-dist/release-docs/` and `install-dist/scripts/dependency/known-dependencies.txt`.
+- Read versions, plugin settings and module membership from Maven configuration instead of copying them into agent notes.
diff --git a/README.md b/README.md
index 2237a5e2da..dc49bc4823 100644
--- a/README.md
+++ b/README.md
@@ -17,7 +17,7 @@
---
-**Quick Navigation:** [Architecture](#architecture) • [Quick Start](#quick-start) • [Module Map](#module-map) • [Ecosystem](#ecosystem) • [For Contributors](#contributing) • [Community](#community)
+**Quick Navigation:** [Architecture](#architecture) • [Quick Start](#quick-start) • [Module Map](#module-map) • [Documentation](#documentation) • [Ecosystem](#ecosystem) • [For Contributors](#contributing) • [Community](#community)
---
@@ -33,10 +33,56 @@ achieved through the powerful [Gremlin](https://tinkerpop.apache.org/gremlin.htm
- **Schema Metadata Management**: VertexLabel, EdgeLabel, PropertyKey, and IndexLabel
- **Multi-type Indexes**: Exact query, range query, and complex conditions combination query
- **Plug-in Backend Store Framework**: RocksDB powers standalone deployments and HStore powers distributed clusters. See the [backend evolution guide](hugegraph-server/README.md#backend-evolution-and-compatibility) for compatibility details.
+- **Backend Compatibility**: HBase is deprecated but remains supported; see the [backend evolution guide](hugegraph-server/README.md#backend-evolution-and-compatibility).
- **Big Data Integration**: Seamless integration with `Flink`/`Spark`/`HDFS`
- **Complete Graph Ecosystem**: In/out-memory Graph Computing + Graph Visualization & Tools + Graph Learning & AI
- **Dual Query Language Support**: [Gremlin](https://tinkerpop.apache.org/gremlin.html) (via [Apache TinkerPop 3](https://tinkerpop.apache.org/)) and [Cypher](https://en.wikipedia.org/wiki/Cypher_(query_language)) (OpenCypher)
+## Quick Start
+
+### 5 Minutes Quick Start
+
+Start a standalone server for local evaluation, bind it to the loopback interface and wait until a Gremlin query succeeds before continuing:
+
+```bash
+(
+ docker run -d --name hugegraph \
+ -p 127.0.0.1:8080:8080 hugegraph/hugegraph || exit 1
+
+ for attempt in $(seq 1 60); do
+ if curl -fsS --max-time 2 -o /dev/null \
+ -X POST http://127.0.0.1:8080/gremlin \
+ -H 'Content-Type: application/json' \
+ -d '{"gremlin":"g.V().limit(1)"}'; then
+ exit 0
+ fi
+ if [ "${attempt}" -eq 60 ]; then
+ printf 'Server query did not become ready; inspect the logs before continuing.\n' >&2
+ docker logs hugegraph
+ exit 1
+ fi
+ sleep 2
+ done
+)
+```
+
+After the readiness query succeeds, run a small graph query:
+
+```bash
+curl -X POST http://127.0.0.1:8080/gremlin \
+ -H 'Content-Type: application/json' \
+ -d '{"gremlin":"g.V().limit(5)"}'
+```
+
+A timeout deliberately leaves the named container available for diagnosis. Inspect `docker logs hugegraph` and preserve any required data or attached volumes first. When it is safe to discard the failed container, stop and remove it before retrying:
+
+```bash
+docker stop hugegraph 2>/dev/null || true
+docker rm hugegraph
+```
+
+The loopback bind keeps this evaluation endpoint off ordinary remote interfaces while authentication is not enabled. Users of older Docker or unusual host-network setups should also restrict host firewall access explicitly. Pin a released image for repeatable deployments and enable authentication before exposing the service outside a trusted network. See the [server deployment guide](https://hugegraph.apache.org/docs/quickstart/hugegraph-server/) for packages, configuration and production preparation.
+
## Ecosystem
Complete **HugeGraph** ecosystem components:
@@ -51,23 +97,64 @@ Complete **HugeGraph** ecosystem components:
3. **[hugegraph-ai](https://github.com/apache/hugegraph-ai)** - **Graph AI/LLM/Knowledge Graph** integration
-4. **[hugegraph-website](https://github.com/apache/hugegraph-doc)** - **Documentation & website** repository
+4. **[hugegraph-doc](https://github.com/apache/hugegraph-doc)** - **Documentation & website** repository
## Architecture
HugeGraph supports both **standalone** and **distributed** deployments:
+```mermaid
+flowchart TB
+ CLIENTS["Client Layer
Gremlin Console · REST Client · Cypher Client · SDK/Tools"]
+
+ subgraph Server["HugeGraph Server :8080"]
+ API[REST API
Jersey 3]
+ GS[Gremlin Server
TinkerPop]
+ 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[HugeGraph PD
Metadata and placement]
+ HSTORE[(HStore
Partitioned storage)]
+ end
+ end
+
+ CLIENTS --> Server
+ CORE --> ROCKS
+ CORE -.->|metadata and placement| PD
+ CORE -->|graph data requests| HSTORE
+ PD -.->|coordinates| HSTORE
+
+ style Server fill:#e1f5ff
+ style Distributed fill:#fff4e1
+ style Standalone fill:#f0f0f0
+```
+
+
+Text architecture diagram
+
```
┌─────────────────────────────────────────────────────┐
│ Client Layer │
- │ Gremlin Console │ REST API │ Cypher │ SDK/Tools │
+ │ Gremlin Console │ REST Client │ Cypher │ SDK/Tools │
└─────────────────────────┬───────────────────────────┘
│
┌─────────────────────────▼───────────────────────────┐
│ HugeGraph Server (:8080) │
│ ┌──────────┐ ┌──────────┐ ┌──────────────────┐ │
│ │ REST API │ │ Gremlin │ │ Cypher Engine │ │
- │ │(Jersey 3)│ │(TP 3.8.1)│ │ (OpenCypher) │ │
+ │ │(Jersey 3)│ │TinkerPop │ │ (OpenCypher) │ │
│ └────┬─────┘ └────┬─────┘ └────────┬─────────┘ │
│ └─────────────┼─────────────────┘ │
│ ┌────────▼────────┐ │
@@ -85,30 +172,36 @@ HugeGraph supports both **standalone** and **distributed** deployments:
│ │ (embedded) │ │ │ │ (Raft, 3-5 nodes) │ │
│ └───────────────────────┘ │ │ │ :8620/:8686 │ │
│ │ │ └───────────┬───────────┘ │
- │ Use Case: │ │ │ │
+ │ Use Case: │ │ coordinates │ │
│ Development/Testing │ │ ┌───────────▼───────────┐ │
│ Single Node │ │ │ HStore │ │
│ │ │ │ (Raft, 3+ nodes) │ │
- │ Data Scale: < 1TB │ │ │ :8520 │ │
+ │ Single-node storage │ │ │ :8520 │ │
└─────────────────────────────┘ │ └───────────────────────┘ │
│ │
│ Use Case: │
│ Production/HA/Cluster │
│ │
- │ Data Scale: < 1000 TB │
+ │ Horizontal scaling │
└─────────────────────────────┘
```
+📊 Click to view detailed architecture diagram (Mermaid)
-
-```mermaid
-flowchart TB
- CLIENTS["Client Layer
Gremlin Console · REST Client · Cypher Client · SDK/Tools"]
-
- subgraph Server["HugeGraph Server :8080"]
- API[REST API
Jersey 3]
- GS[Gremlin Server
TinkerPop 3.8.1]
- 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
-```
-Option 3: Download Binary Package
-Download pre-built packages from the [Download Page](https://hugegraph.apache.org/docs/download/download/):
+Download pre-built packages from the [Download Page](https://hugegraph.apache.org/docs/download/download/). Replace `{version}` below with the version of the package you choose:
```bash
# Download and extract
@@ -276,9 +315,10 @@ cd hugegraph
# Build all modules (skip tests for faster build)
mvn clean package -DskipTests
-# Extract built package
-tar -xzf target/apache-hugegraph-{version}.tar.gz
-cd apache-hugegraph-{version}/apache-hugegraph-server-{version}
+# Replace VERSION with the project version from pom.xml before extracting
+VERSION="Developer navigation
+
**Developer Navigation**: Find the right module for your task
| I want to... | Module | Key Path |
@@ -341,6 +379,8 @@ Read the [storage lifecycle and recovery guide](docs/storage-lifecycle.md) befor
For repository constraints and module guidance, see [AGENTS.md](AGENTS.md).
+For Contributors
@@ -378,6 +418,12 @@ For repository constraints and module guidance, see [AGENTS.md](AGENTS.md).
SeaTunnel: optional import, export and migration
@@ -144,6 +154,17 @@ See the [Vermeer deployment guide](docs/vermeer.md) for administration and recov
RAG: optional GraphRAG service
+
+Enable RAG with `rag.enabled=true` or the [RAG values preset](values-rag.yaml).
+RAG is a single process with a separate resource volume; model endpoints must be
+reachable from its Pod. Use a compatible HugeGraph AI image, and protect external
+access with an authenticated reverse proxy. The [RAG guide](docs/rag.md) covers
+model credentials, persisted configuration, network exposure and compatibility.
+
+