{"owner":"apache","repo":"hbase","hasSkills":true,"hasMcp":false,"mcpConfig":null,"found":["AGENTS.md"],"skills":{"AGENTS.md":"<!--\nLicensed to the Apache Software Foundation (ASF) under one\nor more contributor license agreements.  See the NOTICE file\ndistributed with this work for additional information\nregarding copyright ownership.  The ASF licenses this file\nto you under the Apache License, Version 2.0 (the\n\"License\"); you may not use this file except in compliance\nwith the License.  You may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n-->\n\n# AGENTS.md\n\nApache HBase is a distributed, scalable big data store built on HDFS and cloud\nobject storage.\n\n## Repo Structure\n\nThis is a multi-module Maven project. Modules live in arbitrarily nested\nfolders; enumerate them by searching for `pom.xml` files (excluding `target/`\ndirectories). The root `pom.xml` defines the full reactor and build order.\nNote that some directories from removed or merged modules (e.g.,\n`hbase-hadoop2-compat/`, `hbase-protocol/`, `hbase-rsgroup/`) may still exist\nas empty shells with only `target/` remnants. If a directory has no `pom.xml`,\nit is not part of the active build.\n\n### Client and Server\n\nThe fundamental divide in this codebase is client-side vs. server-side, with\nseveral modules shared between them.\n\n- `hbase-client` -- The client library. Builds RPC requests, handles retries,\n  manages connections. This is the public API that external consumers depend on.\n- `hbase-server` -- RegionServer and Master implementations. Processes RPCs,\n  manages regions, stores data. The largest module by far.\n- Shared modules like `hbase-common`, `hbase-protocol-shaded`, and\n  `hbase-metrics-api` are dependencies of both sides.\n\nWhen orienting on unfamiliar code, first determine which side of this divide\nyou are on.\n\n### Module Roles\n\n**Core data path:**\n`hbase-client` -> `hbase-server` (via protobuf RPCs defined in\n`hbase-protocol-shaded`)\n\n**Gateways** (alternative client entry points):\n`hbase-rest` (HTTP/JSON), `hbase-thrift` (Thrift RPC)\n\n**Coprocessors** are HBase's server-side extension framework. They allow custom\ncode to run inside RegionServer and Master processes, with the same privileges\nas the host process. The base `Coprocessor` interface lives in `hbase-client`;\nobserver and endpoint interfaces (`RegionObserver`, `MasterObserver`, etc.) live\nin `hbase-server`. Endpoint implementations live in `hbase-endpoint`. The\nbuilt-in `AccessController` coprocessor enforces ACLs; `VisibilityController`\nenforces cell-level visibility labels. Third-party coprocessors are loaded via\nconfiguration or table schema.\n\n**Server subsystems** (separated from hbase-server for modularity):\n`hbase-balancer`, `hbase-procedure`, `hbase-replication`, `hbase-asyncfs`,\n`hbase-zookeeper`, `hbase-http`\n\n**Shared libraries:**\n`hbase-common`, `hbase-metrics` + `hbase-metrics-api`, `hbase-logging`,\n`hbase-hadoop-compat`\n\n**Extensions:**\n`hbase-extensions` (currently `hbase-openssl` for native TLS support)\n\n**Storage codecs:**\n`hbase-compression/*` (pluggable algorithms), `hbase-external-blockcache`\n\n**Packaging and shading:**\n`hbase-shaded/*`, `hbase-assembly*`, `hbase-resource-bundle`\n\n**Tooling:**\n`hbase-shell` (JRuby REPL), `hbase-hbtop`, `hbase-mapreduce`, `hbase-backup`,\n`hbase-diagnostics`\n\n**Build infrastructure** (ignore for code tasks):\n`hbase-build-configuration`, `hbase-checkstyle`, `hbase-annotations`,\n`hbase-archetypes/*`, `hbase-dev-generate-classpath`\n\n**Testing:**\n`hbase-testing-util`, `hbase-it`, `hbase-examples`\n\n### Navigating with @InterfaceAudience\n\nClasses are annotated with `@InterfaceAudience` to indicate their intended\nconsumer:\n\n- `Public` -- Stable client API. External consumers depend on these.\n- `LimitedPrivate` -- Internal API shared across modules, scoped to a named\n  audience (e.g., `COPROC`, `CONFIG`, `REPLICATION`, `AUTHENTICATION`). The\n  audience name tells you who is expected to call this code.\n- `Private` -- Module-internal. Not API.\n\nThese annotations are the fastest way to determine whether a class is part of\nthe external surface or internal plumbing.\n\n### Key Entry Points\n\nWhen investigating a behavior, start from where it enters the system:\n\n- **Client RPCs**: `RSRpcServices` (RegionServer) and `MasterRpcServices`\n  (Master) handle all client-initiated RPCs. Trace from the method matching\n  the RPC name.\n- **REST gateway**: resource classes in `hbase-rest` map HTTP verbs to\n  operations.\n- **Thrift gateway**: handler classes in `hbase-thrift` map Thrift methods.\n- **Coprocessor hooks**: observer interfaces (`RegionObserver`,\n  `MasterObserver`, etc.) define extension points. Implementations are loaded\n  via configuration or table schema.\n- **Procedures**: `hbase-procedure` defines the framework; concrete procedures\n  (table create, region split, etc.) live in `hbase-server`.\n- **Configuration**: properties are defined in `hbase-default.xml` (in\n  `hbase-common`) and overridden by operators in `hbase-site.xml`.\n- **Wire format**: `.proto` files in `hbase-protocol-shaded` define every RPC\n  request/response and all persisted data structures. (Older branches had a\n  separate `hbase-protocol` module; it has been removed on master.)\n\n### Split Packages\n\nThe same Java package often appears in multiple modules (e.g., the\n`coprocessor` package exists in `hbase-client`, `hbase-server`,\n`hbase-endpoint`, and `hbase-examples`). Each module contributes different\nclasses to the package. When searching for a class, check which module it\nlives in -- the module determines the execution context.\n\n### Related Repositories\n\n[hbase-thirdparty](https://github.com/apache/hbase-thirdparty) is a companion\nproject that patches and shades key dependencies (protobuf, netty, gson, etc.)\nso that HBase's internal use of these libraries does not conflict with\nversions on the application classpath. The `hbase-shaded-*` artifacts from\nthat repo appear as dependencies throughout this project's `pom.xml`. Changes\nto shaded dependency versions or patches happen in that repo, not here.\n\n### Developer Tooling\n\n`dev-support/` contains CI configuration, release automation, code analysis\nscripts, and other maintainer tools. PR-level CI has migrated to GitHub\nActions (`.github/workflows/`), but nightly and branch-level CI still runs\nvia configurations in `dev-support/`. That directory also holds release\nscripts, docker-based test environments, and various developer utilities.\nSee `dev-support/README.md` for a full index.\n\n`conf/` holds default configuration templates (`hbase-site.xml`,\n`hbase-env.sh`, `log4j2.properties`). `bin/` holds shell scripts for cluster\nlifecycle and operations.\n\n`dev-support/design-docs/` collects design documents and proposals for major\nfeatures. These capture the rationale behind complex subsystems and are useful\nfor understanding why the code is structured the way it is.\n\n### Conventions\n\n- Tests mirror source paths: `src/test/java` parallels `src/main/java`\n- Generated code (protobuf, etc.) lives in `target/` and is not checked in\n- Configuration properties use `hbase.` prefix\n- The shell is JRuby wrapping the Java client API\n\n## Documentation\n\nThe project website (https://hbase.apache.org) is maintained in this repo under\n`hbase-website/`. User-facing and administrator-facing documentation covering\nconfiguration, security, architecture, schema design, operations, APIs, and\nmore lives in `hbase-website/app/pages/_docs/docs/_mdx/`. The table of\ncontents and page ordering is defined in the `meta.json` files within that\ntree.\n\nThe site also serves https://hbase.apache.org/llms-full.txt, which\nconcatenates all documentation pages into a single text file suitable for\nLLM context ingestion.\n\n## Security Model\n\nThe project's security model is the entry point for any security analysis\nof this codebase. The canonical chain for discovering it is:\n\n  AGENTS.md  ->  SECURITY.md  ->  https://hbase.apache.org/security-model/\n\n`SECURITY.md` at the repo root is a short pointer to the published model\nand the `security@apache.org` reporting flow. The full model (source at\n`hbase-website/app/pages/_landing/security-model/content.md`, published\nat <https://hbase.apache.org/security-model/>) details trust boundaries,\nwhat constitutes a valid vulnerability, and what does not.\n\nWhen performing security analysis of this codebase, use the navigation\nstructure above to determine the role of the code under review, then apply\nthe security model to interpret findings in context.\n"},"files":{"AGENTS.md":"<!--\nLicensed to the Apache Software Foundation (ASF) under one\nor more contributor license agreements.  See the NOTICE file\ndistributed with this work for additional information\nregarding copyright ownership.  The ASF licenses this file\nto you under the Apache License, Version 2.0 (the\n\"License\"); you may not use this file except in compliance\nwith the License.  You may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n-->\n\n# AGENTS.md\n\nApache HBase is a distributed, scalable big data store built on HDFS and cloud\nobject storage.\n\n## Repo Structure\n\nThis is a multi-module Maven project. Modules live in arbitrarily nested\nfolders; enumerate them by searching for `pom.xml` files (excluding `target/`\ndirectories). The root `pom.xml` defines the full reactor and build order.\nNote that some directories from removed or merged modules (e.g.,\n`hbase-hadoop2-compat/`, `hbase-protocol/`, `hbase-rsgroup/`) may still exist\nas empty shells with only `target/` remnants. If a directory has no `pom.xml`,\nit is not part of the active build.\n\n### Client and Server\n\nThe fundamental divide in this codebase is client-side vs. server-side, with\nseveral modules shared between them.\n\n- `hbase-client` -- The client library. Builds RPC requests, handles retries,\n  manages connections. This is the public API that external consumers depend on.\n- `hbase-server` -- RegionServer and Master implementations. Processes RPCs,\n  manages regions, stores data. The largest module by far.\n- Shared modules like `hbase-common`, `hbase-protocol-shaded`, and\n  `hbase-metrics-api` are dependencies of both sides.\n\nWhen orienting on unfamiliar code, first determine which side of this divide\nyou are on.\n\n### Module Roles\n\n**Core data path:**\n`hbase-client` -> `hbase-server` (via protobuf RPCs defined in\n`hbase-protocol-shaded`)\n\n**Gateways** (alternative client entry points):\n`hbase-rest` (HTTP/JSON), `hbase-thrift` (Thrift RPC)\n\n**Coprocessors** are HBase's server-side extension framework. They allow custom\ncode to run inside RegionServer and Master processes, with the same privileges\nas the host process. The base `Coprocessor` interface lives in `hbase-client`;\nobserver and endpoint interfaces (`RegionObserver`, `MasterObserver`, etc.) live\nin `hbase-server`. Endpoint implementations live in `hbase-endpoint`. The\nbuilt-in `AccessController` coprocessor enforces ACLs; `VisibilityController`\nenforces cell-level visibility labels. Third-party coprocessors are loaded via\nconfiguration or table schema.\n\n**Server subsystems** (separated from hbase-server for modularity):\n`hbase-balancer`, `hbase-procedure`, `hbase-replication`, `hbase-asyncfs`,\n`hbase-zookeeper`, `hbase-http`\n\n**Shared libraries:**\n`hbase-common`, `hbase-metrics` + `hbase-metrics-api`, `hbase-logging`,\n`hbase-hadoop-compat`\n\n**Extensions:**\n`hbase-extensions` (currently `hbase-openssl` for native TLS support)\n\n**Storage codecs:**\n`hbase-compression/*` (pluggable algorithms), `hbase-external-blockcache`\n\n**Packaging and shading:**\n`hbase-shaded/*`, `hbase-assembly*`, `hbase-resource-bundle`\n\n**Tooling:**\n`hbase-shell` (JRuby REPL), `hbase-hbtop`, `hbase-mapreduce`, `hbase-backup`,\n`hbase-diagnostics`\n\n**Build infrastructure** (ignore for code tasks):\n`hbase-build-configuration`, `hbase-checkstyle`, `hbase-annotations`,\n`hbase-archetypes/*`, `hbase-dev-generate-classpath`\n\n**Testing:**\n`hbase-testing-util`, `hbase-it`, `hbase-examples`\n\n### Navigating with @InterfaceAudience\n\nClasses are annotated with `@InterfaceAudience` to indicate their intended\nconsumer:\n\n- `Public` -- Stable client API. External consumers depend on these.\n- `LimitedPrivate` -- Internal API shared across modules, scoped to a named\n  audience (e.g., `COPROC`, `CONFIG`, `REPLICATION`, `AUTHENTICATION`). The\n  audience name tells you who is expected to call this code.\n- `Private` -- Module-internal. Not API.\n\nThese annotations are the fastest way to determine whether a class is part of\nthe external surface or internal plumbing.\n\n### Key Entry Points\n\nWhen investigating a behavior, start from where it enters the system:\n\n- **Client RPCs**: `RSRpcServices` (RegionServer) and `MasterRpcServices`\n  (Master) handle all client-initiated RPCs. Trace from the method matching\n  the RPC name.\n- **REST gateway**: resource classes in `hbase-rest` map HTTP verbs to\n  operations.\n- **Thrift gateway**: handler classes in `hbase-thrift` map Thrift methods.\n- **Coprocessor hooks**: observer interfaces (`RegionObserver`,\n  `MasterObserver`, etc.) define extension points. Implementations are loaded\n  via configuration or table schema.\n- **Procedures**: `hbase-procedure` defines the framework; concrete procedures\n  (table create, region split, etc.) live in `hbase-server`.\n- **Configuration**: properties are defined in `hbase-default.xml` (in\n  `hbase-common`) and overridden by operators in `hbase-site.xml`.\n- **Wire format**: `.proto` files in `hbase-protocol-shaded` define every RPC\n  request/response and all persisted data structures. (Older branches had a\n  separate `hbase-protocol` module; it has been removed on master.)\n\n### Split Packages\n\nThe same Java package often appears in multiple modules (e.g., the\n`coprocessor` package exists in `hbase-client`, `hbase-server`,\n`hbase-endpoint`, and `hbase-examples`). Each module contributes different\nclasses to the package. When searching for a class, check which module it\nlives in -- the module determines the execution context.\n\n### Related Repositories\n\n[hbase-thirdparty](https://github.com/apache/hbase-thirdparty) is a companion\nproject that patches and shades key dependencies (protobuf, netty, gson, etc.)\nso that HBase's internal use of these libraries does not conflict with\nversions on the application classpath. The `hbase-shaded-*` artifacts from\nthat repo appear as dependencies throughout this project's `pom.xml`. Changes\nto shaded dependency versions or patches happen in that repo, not here.\n\n### Developer Tooling\n\n`dev-support/` contains CI configuration, release automation, code analysis\nscripts, and other maintainer tools. PR-level CI has migrated to GitHub\nActions (`.github/workflows/`), but nightly and branch-level CI still runs\nvia configurations in `dev-support/`. That directory also holds release\nscripts, docker-based test environments, and various developer utilities.\nSee `dev-support/README.md` for a full index.\n\n`conf/` holds default configuration templates (`hbase-site.xml`,\n`hbase-env.sh`, `log4j2.properties`). `bin/` holds shell scripts for cluster\nlifecycle and operations.\n\n`dev-support/design-docs/` collects design documents and proposals for major\nfeatures. These capture the rationale behind complex subsystems and are useful\nfor understanding why the code is structured the way it is.\n\n### Conventions\n\n- Tests mirror source paths: `src/test/java` parallels `src/main/java`\n- Generated code (protobuf, etc.) lives in `target/` and is not checked in\n- Configuration properties use `hbase.` prefix\n- The shell is JRuby wrapping the Java client API\n\n## Documentation\n\nThe project website (https://hbase.apache.org) is maintained in this repo under\n`hbase-website/`. User-facing and administrator-facing documentation covering\nconfiguration, security, architecture, schema design, operations, APIs, and\nmore lives in `hbase-website/app/pages/_docs/docs/_mdx/`. The table of\ncontents and page ordering is defined in the `meta.json` files within that\ntree.\n\nThe site also serves https://hbase.apache.org/llms-full.txt, which\nconcatenates all documentation pages into a single text file suitable for\nLLM context ingestion.\n\n## Security Model\n\nThe project's security model is the entry point for any security analysis\nof this codebase. The canonical chain for discovering it is:\n\n  AGENTS.md  ->  SECURITY.md  ->  https://hbase.apache.org/security-model/\n\n`SECURITY.md` at the repo root is a short pointer to the published model\nand the `security@apache.org` reporting flow. The full model (source at\n`hbase-website/app/pages/_landing/security-model/content.md`, published\nat <https://hbase.apache.org/security-model/>) details trust boundaries,\nwhat constitutes a valid vulnerability, and what does not.\n\nWhen performing security analysis of this codebase, use the navigation\nstructure above to determine the role of the code under review, then apply\nthe security model to interpret findings in context.\n"},"items":[{"name":"AGENTS.md","path":"AGENTS.md","title":"AGENTS.md","content":"<!--\nLicensed to the Apache Software Foundation (ASF) under one\nor more contributor license agreements.  See the NOTICE file\ndistributed with this work for additional information\nregarding copyright ownership.  The ASF licenses this file\nto you under the Apache License, Version 2.0 (the\n\"License\"); you may not use this file except in compliance\nwith the License.  You may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n-->\n\n# AGENTS.md\n\nApache HBase is a distributed, scalable big data store built on HDFS and cloud\nobject storage.\n\n## Repo Structure\n\nThis is a multi-module Maven project. Modules live in arbitrarily nested\nfolders; enumerate them by searching for `pom.xml` files (excluding `target/`\ndirectories). The root `pom.xml` defines the full reactor and build order.\nNote that some directories from removed or merged modules (e.g.,\n`hbase-hadoop2-compat/`, `hbase-protocol/`, `hbase-rsgroup/`) may still exist\nas empty shells with only `target/` remnants. If a directory has no `pom.xml`,\nit is not part of the active build.\n\n### Client and Server\n\nThe fundamental divide in this codebase is client-side vs. server-side, with\nseveral modules shared between them.\n\n- `hbase-client` -- The client library. Builds RPC requests, handles retries,\n  manages connections. This is the public API that external consumers depend on.\n- `hbase-server` -- RegionServer and Master implementations. Processes RPCs,\n  manages regions, stores data. The largest module by far.\n- Shared modules like `hbase-common`, `hbase-protocol-shaded`, and\n  `hbase-metrics-api` are dependencies of both sides.\n\nWhen orienting on unfamiliar code, first determine which side of this divide\nyou are on.\n\n### Module Roles\n\n**Core data path:**\n`hbase-client` -> `hbase-server` (via protobuf RPCs defined in\n`hbase-protocol-shaded`)\n\n**Gateways** (alternative client entry points):\n`hbase-rest` (HTTP/JSON), `hbase-thrift` (Thrift RPC)\n\n**Coprocessors** are HBase's server-side extension framework. They allow custom\ncode to run inside RegionServer and Master processes, with the same privileges\nas the host process. The base `Coprocessor` interface lives in `hbase-client`;\nobserver and endpoint interfaces (`RegionObserver`, `MasterObserver`, etc.) live\nin `hbase-server`. Endpoint implementations live in `hbase-endpoint`. The\nbuilt-in `AccessController` coprocessor enforces ACLs; `VisibilityController`\nenforces cell-level visibility labels. Third-party coprocessors are loaded via\nconfiguration or table schema.\n\n**Server subsystems** (separated from hbase-server for modularity):\n`hbase-balancer`, `hbase-procedure`, `hbase-replication`, `hbase-asyncfs`,\n`hbase-zookeeper`, `hbase-http`\n\n**Shared libraries:**\n`hbase-common`, `hbase-metrics` + `hbase-metrics-api`, `hbase-logging`,\n`hbase-hadoop-compat`\n\n**Extensions:**\n`hbase-extensions` (currently `hbase-openssl` for native TLS support)\n\n**Storage codecs:**\n`hbase-compression/*` (pluggable algorithms), `hbase-external-blockcache`\n\n**Packaging and shading:**\n`hbase-shaded/*`, `hbase-assembly*`, `hbase-resource-bundle`\n\n**Tooling:**\n`hbase-shell` (JRuby REPL), `hbase-hbtop`, `hbase-mapreduce`, `hbase-backup`,\n`hbase-diagnostics`\n\n**Build infrastructure** (ignore for code tasks):\n`hbase-build-configuration`, `hbase-checkstyle`, `hbase-annotations`,\n`hbase-archetypes/*`, `hbase-dev-generate-classpath`\n\n**Testing:**\n`hbase-testing-util`, `hbase-it`, `hbase-examples`\n\n### Navigating with @InterfaceAudience\n\nClasses are annotated with `@InterfaceAudience` to indicate their intended\nconsumer:\n\n- `Public` -- Stable client API. External consumers depend on these.\n- `LimitedPrivate` -- Internal API shared across modules, scoped to a named\n  audience (e.g., `COPROC`, `CONFIG`, `REPLICATION`, `AUTHENTICATION`). The\n  audience name tells you who is expected to call this code.\n- `Private` -- Module-internal. Not API.\n\nThese annotations are the fastest way to determine whether a class is part of\nthe external surface or internal plumbing.\n\n### Key Entry Points\n\nWhen investigating a behavior, start from where it enters the system:\n\n- **Client RPCs**: `RSRpcServices` (RegionServer) and `MasterRpcServices`\n  (Master) handle all client-initiated RPCs. Trace from the method matching\n  the RPC name.\n- **REST gateway**: resource classes in `hbase-rest` map HTTP verbs to\n  operations.\n- **Thrift gateway**: handler classes in `hbase-thrift` map Thrift methods.\n- **Coprocessor hooks**: observer interfaces (`RegionObserver`,\n  `MasterObserver`, etc.) define extension points. Implementations are loaded\n  via configuration or table schema.\n- **Procedures**: `hbase-procedure` defines the framework; concrete procedures\n  (table create, region split, etc.) live in `hbase-server`.\n- **Configuration**: properties are defined in `hbase-default.xml` (in\n  `hbase-common`) and overridden by operators in `hbase-site.xml`.\n- **Wire format**: `.proto` files in `hbase-protocol-shaded` define every RPC\n  request/response and all persisted data structures. (Older branches had a\n  separate `hbase-protocol` module; it has been removed on master.)\n\n### Split Packages\n\nThe same Java package often appears in multiple modules (e.g., the\n`coprocessor` package exists in `hbase-client`, `hbase-server`,\n`hbase-endpoint`, and `hbase-examples`). Each module contributes different\nclasses to the package. When searching for a class, check which module it\nlives in -- the module determines the execution context.\n\n### Related Repositories\n\n[hbase-thirdparty](https://github.com/apache/hbase-thirdparty) is a companion\nproject that patches and shades key dependencies (protobuf, netty, gson, etc.)\nso that HBase's internal use of these libraries does not conflict with\nversions on the application classpath. The `hbase-shaded-*` artifacts from\nthat repo appear as dependencies throughout this project's `pom.xml`. Changes\nto shaded dependency versions or patches happen in that repo, not here.\n\n### Developer Tooling\n\n`dev-support/` contains CI configuration, release automation, code analysis\nscripts, and other maintainer tools. PR-level CI has migrated to GitHub\nActions (`.github/workflows/`), but nightly and branch-level CI still runs\nvia configurations in `dev-support/`. That directory also holds release\nscripts, docker-based test environments, and various developer utilities.\nSee `dev-support/README.md` for a full index.\n\n`conf/` holds default configuration templates (`hbase-site.xml`,\n`hbase-env.sh`, `log4j2.properties`). `bin/` holds shell scripts for cluster\nlifecycle and operations.\n\n`dev-support/design-docs/` collects design documents and proposals for major\nfeatures. These capture the rationale behind complex subsystems and are useful\nfor understanding why the code is structured the way it is.\n\n### Conventions\n\n- Tests mirror source paths: `src/test/java` parallels `src/main/java`\n- Generated code (protobuf, etc.) lives in `target/` and is not checked in\n- Configuration properties use `hbase.` prefix\n- The shell is JRuby wrapping the Java client API\n\n## Documentation\n\nThe project website (https://hbase.apache.org) is maintained in this repo under\n`hbase-website/`. User-facing and administrator-facing documentation covering\nconfiguration, security, architecture, schema design, operations, APIs, and\nmore lives in `hbase-website/app/pages/_docs/docs/_mdx/`. The table of\ncontents and page ordering is defined in the `meta.json` files within that\ntree.\n\nThe site also serves https://hbase.apache.org/llms-full.txt, which\nconcatenates all documentation pages into a single text file suitable for\nLLM context ingestion.\n\n## Security Model\n\nThe project's security model is the entry point for any security analysis\nof this codebase. The canonical chain for discovering it is:\n\n  AGENTS.md  ->  SECURITY.md  ->  https://hbase.apache.org/security-model/\n\n`SECURITY.md` at the repo root is a short pointer to the published model\nand the `security@apache.org` reporting flow. The full model (source at\n`hbase-website/app/pages/_landing/security-model/content.md`, published\nat <https://hbase.apache.org/security-model/>) details trust boundaries,\nwhat constitutes a valid vulnerability, and what does not.\n\nWhen performing security analysis of this codebase, use the navigation\nstructure above to determine the role of the code under review, then apply\nthe security model to interpret findings in context.\n","category":"root","tokens":2175}]}