Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -387,6 +387,9 @@ jobs:
run: bash script/ci/docs.sh install
- name: Lint, type check, unit tests and content check
run: bash script/ci/docs.sh check
- name: Translations complete (every page and README in every language)
if: ${{ !cancelled() }}
run: bash script/ci/docs.sh translations
- name: Static build
run: bash script/ci/docs.sh build

Expand Down
2 changes: 1 addition & 1 deletion README.de.md
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ Einheitliche Berechtigungsplattform · Benutzer, Rollen, Menüs, APIs, Datenzeil
Language: [English](README.md) · [中文说明](README.zh-CN.md) · [繁體中文](README.zh-TW.md) · [Русский](README.ru.md) · [한국어](README.ko.md) · [日本語](README.ja.md) · Deutsch · [Français](README.fr.md) · [Spanisch](README.es.md) · [Portugiesisch](README.pt-BR.md) · [Italienisch](README.it.md)

[![License](https://img.shields.io/badge/License-MIT-blue.svg)](LICENSE)
![Version](https://img.shields.io/badge/version-2026.1.0-4F46E5)
![Version](https://img.shields.io/badge/version-2026.4.0-4F46E5)
![Java](https://img.shields.io/badge/Java-17%2B-ED8B00)
[![Docs](https://img.shields.io/badge/docs-grantforge.devlive.org-4F46E5)](https://grantforge.devlive.org)
[![Docker](https://img.shields.io/badge/ghcr.io-grantforge-2496ED)](https://ghcr.io/devlive-community/grantforge)
Expand Down
2 changes: 1 addition & 1 deletion README.es.md
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ Plataforma unificada de permisos · usuarios, roles, menús, API, filas y campos
Language: [English](README.md) · [中文说明](README.zh-CN.md) · [繁體中文](README.zh-TW.md) · [Русский](README.ru.md) · [한국어](README.ko.md) · [日本語](README.ja.md) · [Deutsch](README.de.md) · [Français](README.fr.md) · Español · [Português](README.pt-BR.md) · [Italiano](README.it.md)

[![License](https://img.shields.io/badge/License-MIT-blue.svg)](LICENSE)
![Version](https://img.shields.io/badge/version-2026.1.0-4F46E5)
![Version](https://img.shields.io/badge/version-2026.4.0-4F46E5)
![Java](https://img.shields.io/badge/Java-17%2B-ED8B00)
[![Docs](https://img.shields.io/badge/docs-grantforge.devlive.org-4F46E5)](https://grantforge.devlive.org)
[![Docker](https://img.shields.io/badge/ghcr.io-grantforge-2496ED)](https://ghcr.io/devlive-community/grantforge)
Expand Down
2 changes: 1 addition & 1 deletion README.fr.md
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ Plateforme unifiée d’autorisations · utilisateurs, rôles, menus, API, ligne
Language: [English](README.md) · [中文说明](README.zh-CN.md) · [繁體中文](README.zh-TW.md) · [Русский](README.ru.md) · [한국어](README.ko.md) · [日本語](README.ja.md) · [Deutsch](README.de.md) · Français · [Español](README.es.md) · [Português](README.pt-BR.md) · [Italiano](README.it.md)

[![License](https://img.shields.io/badge/License-MIT-blue.svg)](LICENSE)
![Version](https://img.shields.io/badge/version-2026.1.0-4F46E5)
![Version](https://img.shields.io/badge/version-2026.4.0-4F46E5)
![Java](https://img.shields.io/badge/Java-17%2B-ED8B00)
[![Docs](https://img.shields.io/badge/docs-grantforge.devlive.org-4F46E5)](https://grantforge.devlive.org)
[![Docker](https://img.shields.io/badge/ghcr.io-grantforge-2496ED)](https://ghcr.io/devlive-community/grantforge)
Expand Down
2 changes: 1 addition & 1 deletion README.it.md
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ Piattaforma unificata di permessi · utenti, ruoli, menu, API, righe e campi di
Language: [English](README.md) · [中文说明](README.zh-CN.md) · [繁體中文](README.zh-TW.md) · [Русский](README.ru.md) · [한국어](README.ko.md) · [日本語](README.ja.md) · [Deutsch](README.de.md) · [Français](README.fr.md) · [Español](README.es.md) · [Português](README.pt-BR.md) · Italiano

[![License](https://img.shields.io/badge/License-MIT-blue.svg)](LICENSE)
![Version](https://img.shields.io/badge/version-2026.1.0-4F46E5)
![Version](https://img.shields.io/badge/version-2026.4.0-4F46E5)
![Java](https://img.shields.io/badge/Java-17%2B-ED8B00)
[![Docs](https://img.shields.io/badge/docs-grantforge.devlive.org-4F46E5)](https://grantforge.devlive.org)
[![Docker](https://img.shields.io/badge/ghcr.io-grantforge-2496ED)](https://ghcr.io/devlive-community/grantforge)
Expand Down
2 changes: 1 addition & 1 deletion README.ja.md
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@
Language: [English](README.md) · [中文说明](README.zh-CN.md) · [繁體中文](README.zh-TW.md) · [Русский](README.ru.md) · [한국어](README.ko.md) · 日本語 · [Deutsch](README.de.md) · [フランス語](README.fr.md) · [スペイン語](README.es.md) · [ポルトガル語](README.pt-BR.md) · [イタリア語](README.it.md)

[![License](https://img.shields.io/badge/License-MIT-blue.svg)](LICENSE)
![Version](https://img.shields.io/badge/version-2026.1.0-4F46E5)
![Version](https://img.shields.io/badge/version-2026.4.0-4F46E5)
![Java](https://img.shields.io/badge/Java-17%2B-ED8B00)
[![Docs](https://img.shields.io/badge/docs-grantforge.devlive.org-4F46E5)](https://grantforge.devlive.org)
[![Docker](https://img.shields.io/badge/ghcr.io-grantforge-2496ED)](https://ghcr.io/devlive-community/grantforge)
Expand Down
2 changes: 1 addition & 1 deletion README.ko.md
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@
Language: [English](README.md) · [中文说明](README.zh-CN.md) · [繁體中文](README.zh-TW.md) · [Русский](README.ru.md) · [日本語](README.ja.md) · 한국어 · [Deutsch](README.de.md) · [프랑스어](README.fr.md) · [스페인어](README.es.md) · [포르투갈어](README.pt-BR.md) · [이탈리아어](README.it.md)

[![License](https://img.shields.io/badge/License-MIT-blue.svg)](LICENSE)
![Version](https://img.shields.io/badge/version-2026.1.0-4F46E5)
![Version](https://img.shields.io/badge/version-2026.4.0-4F46E5)
![Java](https://img.shields.io/badge/Java-17%2B-ED8B00)
[![Docs](https://img.shields.io/badge/docs-grantforge.devlive.org-4F46E5)](https://grantforge.devlive.org)
[![Docker](https://img.shields.io/badge/ghcr.io-grantforge-2496ED)](https://ghcr.io/devlive-community/grantforge)
Expand Down
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,7 @@ GrantForge (formerly AuthX) is an open-source (MIT) unified permission platform.
| External systems | Plug-in service types and a policy engine: data services, access policies, agents and access auditing |
| Delivery | One executable release, Docker image, Compose examples, Helm chart; H2, PostgreSQL, MySQL, MariaDB, Oracle, SQL Server |

External-system support covers the plug-in framework, policy editor, signed distribution and access auditing, with service plug-ins for HDFS, ZooKeeper, MySQL, Hive, Kafka, HBase, Trino, YARN, Pulsar, Solr, ClickHouse, Apache Doris, MongoDB, Redis, PostgreSQL, Elasticsearch and OpenSearch. The table below lists the versions verified in CI; each plug-in and agent guide has the details.
External-system support covers the plug-in framework, policy editor, signed distribution and access auditing, with service plug-ins for HDFS, ZooKeeper, MySQL, Hive, Kafka, HBase, Trino, YARN, Pulsar, Solr, ClickHouse, Apache Doris, MongoDB, Redis, PostgreSQL, Elasticsearch and OpenSearch. HDFS uses numbered NameNode agents, ZooKeeper an in-server agent, MySQL a standalone network proxy, Hive an authorizer in HiveServer2, Kafka an authorizer in the brokers and controllers, HBase a coprocessor in the masters and region servers, Trino a system access control in the coordinator, YARN an authorization provider in the ResourceManagers, Pulsar an authorization provider in the brokers, Solr an authorization plug-in in the nodes, and ClickHouse a service beside the servers that keeps ClickHouse's own roles and row policies in step. Apache Doris uses a service beside the cluster that keeps Doris's own roles, privileges and row policies in step, down to columns and workload groups. MongoDB uses a service beside the deployment that keeps MongoDB's own roles in step. Redis and Valkey use a service that keeps every user's ACL selectors in step on every node. PostgreSQL uses a service beside the servers that keeps PostgreSQL's own roles, privileges and row security policies in step. Elasticsearch uses a service beside the cluster that keeps Elasticsearch's own roles in step, with field- and document-level security. OpenSearch uses a service beside the cluster that keeps the security plug-in's own roles in step, with field- and document-level security and masked fields. Connection settings, database/table/column lookup and policy features are in the [MySQL plug-in guide](https://grantforge.devlive.org/en/plugins/mysql/); deployment and enforcement limits are in the [MySQL proxy agent guide](https://grantforge.devlive.org/en/external/mysql-agent/). Hive is covered by the [Hive plug-in guide](https://grantforge.devlive.org/en/plugins/hive/) and the [Hive agent guide](https://grantforge.devlive.org/en/external/hive-agent/). Kafka is covered by the [Kafka plug-in guide](https://grantforge.devlive.org/en/plugins/kafka/) and the [Kafka agent guide](https://grantforge.devlive.org/en/external/kafka-agent/). HBase is covered by the [HBase plug-in guide](https://grantforge.devlive.org/en/plugins/hbase/) and the [HBase agent guide](https://grantforge.devlive.org/en/external/hbase-agent/). Trino is covered by the [Trino plug-in guide](https://grantforge.devlive.org/en/plugins/trino/) and the [Trino agent guide](https://grantforge.devlive.org/en/external/trino-agent/). YARN is covered by the [YARN plug-in guide](https://grantforge.devlive.org/en/plugins/yarn/) and the [YARN agent guide](https://grantforge.devlive.org/en/external/yarn-agent/). Pulsar is covered by the [Pulsar plug-in guide](https://grantforge.devlive.org/en/plugins/pulsar/) and the [Pulsar agent guide](https://grantforge.devlive.org/en/external/pulsar-agent/). Solr is covered by the [Solr plug-in guide](https://grantforge.devlive.org/en/plugins/solr/) and the [Solr agent guide](https://grantforge.devlive.org/en/external/solr-agent/). ClickHouse is covered by the [ClickHouse plug-in guide](https://grantforge.devlive.org/en/plugins/clickhouse/) and the [ClickHouse agent guide](https://grantforge.devlive.org/en/external/clickhouse-agent/). Apache Doris is covered by the [Apache Doris plug-in guide](https://grantforge.devlive.org/en/plugins/doris/) and the [Apache Doris agent guide](https://grantforge.devlive.org/en/external/doris-agent/). MongoDB is covered by the [MongoDB plug-in guide](https://grantforge.devlive.org/en/plugins/mongodb/) and the [MongoDB agent guide](https://grantforge.devlive.org/en/external/mongodb-agent/). Redis is covered by the [Redis plug-in guide](https://grantforge.devlive.org/en/plugins/redis/) and the [Redis agent guide](https://grantforge.devlive.org/en/external/redis-agent/). PostgreSQL is covered by the [PostgreSQL plug-in guide](https://grantforge.devlive.org/en/plugins/postgresql/) and the [PostgreSQL agent guide](https://grantforge.devlive.org/en/external/postgresql-agent/). Elasticsearch is covered by the [Elasticsearch plug-in guide](https://grantforge.devlive.org/en/plugins/elasticsearch/) and the [Elasticsearch agent guide](https://grantforge.devlive.org/en/external/elasticsearch-agent/). OpenSearch is covered by the [OpenSearch plug-in guide](https://grantforge.devlive.org/en/plugins/opensearch/) and the [OpenSearch agent guide](https://grantforge.devlive.org/en/external/opensearch-agent/).

## Supported components and versions

Expand Down
2 changes: 1 addition & 1 deletion README.pt-BR.md
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ Plataforma unificada de permissões · usuários, papéis, menus, APIs, linhas e
Language: [English](README.md) · [中文说明](README.zh-CN.md) · [繁體中文](README.zh-TW.md) · [Русский](README.ru.md) · [한국어](README.ko.md) · [日本語](README.ja.md) · [Deutsch](README.de.md) · [Français](README.fr.md) · [Español](README.es.md) · Português · [Italiano](README.it.md)

[![License](https://img.shields.io/badge/License-MIT-blue.svg)](LICENSE)
![Version](https://img.shields.io/badge/version-2026.1.0-4F46E5)
![Version](https://img.shields.io/badge/version-2026.4.0-4F46E5)
![Java](https://img.shields.io/badge/Java-17%2B-ED8B00)
[![Docs](https://img.shields.io/badge/docs-grantforge.devlive.org-4F46E5)](https://grantforge.devlive.org)
[![Docker](https://img.shields.io/badge/ghcr.io-grantforge-2496ED)](https://ghcr.io/devlive-community/grantforge)
Expand Down
2 changes: 1 addition & 1 deletion README.ru.md
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@
Language: [English](README.md) · [中文说明](README.zh-CN.md) · [繁體中文](README.zh-TW.md) · Русский · [한국어](README.ko.md) · [日本語](README.ja.md) · [Deutsch](README.de.md) · [Французский](README.fr.md) · [Испанский](README.es.md) · [Португальский](README.pt-BR.md) · [Итальянский](README.it.md)

[![License](https://img.shields.io/badge/License-MIT-blue.svg)](LICENSE)
![Version](https://img.shields.io/badge/version-2026.1.0-4F46E5)
![Version](https://img.shields.io/badge/version-2026.4.0-4F46E5)
![Java](https://img.shields.io/badge/Java-17%2B-ED8B00)
[![Docs](https://img.shields.io/badge/docs-grantforge.devlive.org-4F46E5)](https://grantforge.devlive.org)
[![Docker](https://img.shields.io/badge/ghcr.io-grantforge-2496ED)](https://ghcr.io/devlive-community/grantforge)
Expand Down
6 changes: 3 additions & 3 deletions README.zh-CN.md
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@
语言:[English](README.md) · 中文 · [繁體中文](README.zh-TW.md) · [Русский](README.ru.md) · [한국어](README.ko.md) · [日本語](README.ja.md) · [Deutsch](README.de.md) · [法语](README.fr.md) · [西班牙语](README.es.md) · [葡萄牙语](README.pt-BR.md) · [意大利语](README.it.md)

[![License](https://img.shields.io/badge/License-MIT-blue.svg)](LICENSE)
![Version](https://img.shields.io/badge/version-2026.0.0-4F46E5)
![Version](https://img.shields.io/badge/version-2026.4.0-4F46E5)
![Java](https://img.shields.io/badge/Java-17%2B-ED8B00)
[![Docs](https://img.shields.io/badge/docs-grantforge.devlive.org-4F46E5)](https://grantforge.devlive.org)
[![Docker](https://img.shields.io/badge/ghcr.io-grantforge-2496ED)](https://ghcr.io/devlive-community/grantforge)
Expand Down Expand Up @@ -71,9 +71,9 @@ GrantForge(原 AuthX)是一个开源(MIT)的统一权限平台。它集
| 资源调度 | Apache Hadoop YARN | `plugins/grantforge-plugin-yarn` | 3.2.4、3.3.6、3.4.3、3.5.0 | ResourceManager 授权提供者 | 与测试的 Hadoop 版本一致 | 8 |
| 分布式协调 | Apache ZooKeeper | `plugins/grantforge-plugin-zookeeper` | 3.9.5 | 服务器内代理 | 3.6.4(编译依赖) | 8 |

[插件总览](https://grantforge.devlive.org/zh/plugins/overview/)对比了各代理执行策略的方式,以及哪些系统支持行过滤与屏蔽。
[插件总览](https://grantforge.devlive.org/plugins/overview/)对比了各代理执行策略的方式,以及哪些系统支持行过滤与屏蔽。

**代理 Java** 列为各代理编译的字节码目标版本。HDFS 代理按 Hadoop 版本线选择(例如 Hadoop 2.10.2 使用 `agents/hdfs/2.10/`),完整说明见 [HDFS 代理指南](https://grantforge.devlive.org/zh/external/hdfs-agent/)。Hadoop 2.7、2.10、3.2 与 3.3 不提供超级用户授权回调,因此这些版本线上的超级用户访问仍由 Hadoop 控制。
**代理 Java** 列为各代理编译的字节码目标版本。HDFS 代理按 Hadoop 版本线选择(例如 Hadoop 2.10.2 使用 `agents/hdfs/2.10/`),完整说明见 [HDFS 代理指南](https://grantforge.devlive.org/external/hdfs-agent/)。Hadoop 2.7、2.10、3.2 与 3.3 不提供超级用户授权回调,因此这些版本线上的超级用户访问仍由 Hadoop 控制。

## 工作原理:两个平面

Expand Down
2 changes: 1 addition & 1 deletion README.zh-TW.md
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@
語言:[English](README.md) · [简体中文](README.zh-CN.md) · [Русский](README.ru.md) · [한국어](README.ko.md) · [日本語](README.ja.md) · 繁體中文 · [Deutsch](README.de.md) · [法文](README.fr.md) · [西班牙文](README.es.md) · [葡萄牙文](README.pt-BR.md) · [義大利文](README.it.md)

[![License](https://img.shields.io/badge/License-MIT-blue.svg)](LICENSE)
![Version](https://img.shields.io/badge/version-2026.0.0-4F46E5)
![Version](https://img.shields.io/badge/version-2026.4.0-4F46E5)
![Java](https://img.shields.io/badge/Java-17%2B-ED8B00)
[![Docs](https://img.shields.io/badge/docs-grantforge.devlive.org-4F46E5)](https://grantforge.devlive.org)
[![Docker](https://img.shields.io/badge/ghcr.io-grantforge-2496ED)](https://ghcr.io/devlive-community/grantforge)
Expand Down
8 changes: 8 additions & 0 deletions core/grantforge-server/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,14 @@
<name>GrantForge Server</name>
<description>Spring Boot application that serves the REST API and the web console</description>

<properties>
<!--
The server bundles every service plug-in, which makes it larger than Maven repositories accept. It ships
in the release archive and the image, and nothing depends on it from a repository, so it is not deployed.
-->
<maven.deploy.skip>true</maven.deploy.skip>
</properties>

<dependencies>
<dependency>
<groupId>org.devlive.grantforge</groupId>
Expand Down
2 changes: 1 addition & 1 deletion docs/content/de/architecture/overview.md
Original file line number Diff line number Diff line change
Expand Up @@ -86,6 +86,6 @@ sequenceDiagram
| Persistenz | Hibernate 7 + Spring Data JPA; Liquibase-YAML-Migrationen; Hibernate prüft nur das Tabellenschema |
| IDs | TSID (zeitgeordnete 64-Bit-IDs), nach außen immer als Zeichenkette übergeben |
| Sitzungen | Spring Session JDBC, im Cluster gemeinsam genutzt |
| Frontend | Vue 3, Pinia, Vue Router, Tailwind CSS 4, Vite, TypeScript strict mode |
| Frontend | Vue 3, Pinia, Vue Router, Tailwind CSS 4, Vite, TypeScript im Strict-Modus |
| Qualität | Error Prone + NullAway, Checkstyle, PMD, SpotBugs, ArchUnit, JaCoCo-Abdeckungsschwellen, ESLint, vue-tsc |
| Tests | JUnit 5, jqwik, Testcontainers (sechs Datenbanken), Vitest, Playwright-Fullstack- und Beispiel-End-to-end-Tests, JMH und Benchmarks in Millionenhöhe |
Loading
Loading