This is an automated email from the ASF dual-hosted git repository.

yuqi1129 pushed a change to branch me/fix-entity-change-log-poller-11736
in repository https://gitbox.apache.org/repos/asf/gravitino.git


    from 95d5dd341b [#11736] fix(core): bound change log listener retries and 
stop on stale caches
     add 3dd3b8f0f7 [#11813] fix(gvfs): override getScheme() to return 'gvfs' 
(#11814)
     add 195f18611d [#11817] fix(idp): Use millisecond precision for soft 
deletes (#11815)
     add fbecb1a8a5 [#11819] fix(ci): Use approved setup actions and add ASF 
actions allowlist check (#11820)
     add b7add29edb [#11672] improvement(optimizer): optimize trigger-expr 
evaluation with table metadata & partition short-circuit (#11664)
     add ee6b174091 [MINOR] chore: bump version to 2.0.0-SNAPSHOT (#11821)
     add ae9a52191f [#11077] docs: Document Trino 482 fix for SHOW SCHEMAS on 
Gravitino IRC (#11808)
     add 4207d3fca8 [#11553] feat(lance): add health check endpoints for Lance 
REST servers (#11558)
     add 7baebffd22 [MINOR] fix(ci): align chart test actions with ASF 
allowlist (#11825)
     add c27520bd81 [#11803] fix(clickhouse): add ON CLUSTER support for ALTER 
TABLE (#11807)
     add 4b9ad2ceae [#10198] feat(spark): Report required table privileges 
(#11627)
     add 9696477781 [#11775] improvement(authz): Short-circuit list 
authorization via parent-scope grant (#11778)
     add 6ce2b611f2 [#11059] feat(iceberg-rest): Support overwrite on 
registerTable endpoint (#11809)
     add 1729e33b27 [#11486] refactor(catalog): Add shared Hadoop Kerberos auth 
module (#11765)
     add 1cf883b984 [#11831] feat(core): Add v2.0.0 JDBC schema for external_id 
and enabled (#11837)
     add 4c7358b64b [#10894] docs: Add design doc for role assumption (SET 
ROLE) permission narrowing (#11790)
     add 86a235bf9c [MINOR] refactor(spark-connector): Align JDBC connector 
common logic (#11847)
     add 7b7ec06582 [MINOR] refactor(flink-connector): Align JDBC connector 
common logic (#11849)
     add 0e96563519 [#10866] feat(charts): Support Gateway API HTTPRoute in 
Helm charts (#11308)
     add 2de6492d6f [MINOR] fix(aws): Support MinIO role ARNs in IRSA 
credential vending (#11883)
     add b0aa708cd0 [#11836] fix(server): Return visible service admins as list 
(#11843)
     add 69edf53a10  [#11748] feat(catalog-hadoop): support Tencent Cloud COS 
as fileset storage backend (Java side) (#11713)
     add b096dd2c42 [#11879] fix(clickhouse): fix type conversion for Decimal, 
DateTime64, LowCardinality, and IPv4/IPv6 (#11884)
     add c2fc58bf13 [#11839] fix(clickhouse): escape single quotes in database 
and table name SQL to prevent injection (#11840)
     add 15778b188f [#11893] fix(lance): Add external table guard to 
deregisterTable (#11896)
     add 5bcfc167a4 [#11899] fix(flink): exclude vulnerable log4j 2.x from 
hive-common compile classpath (#11898)
     add bcb9d2da87 [MINOR] fix(workflow): refresh docker login action SHA for 
ASF allowlist (#11908)
     add 90c43acca3 [#11832] feat(core): Add user external ID, enable/disable, 
and delete-by-external-id APIs (#11848)
     add 8fb593a47d [#11834] feat(core): Add group external ID and 
delete-by-external-id APIs (#11914)
     add 409f83447f [#11784] improvement(common): harden remote file fetch 
against SSRF DNS-rebinding (#11785)
     add ab0d52bae5 [#11835] feat: external-id user/group REST create APIs and 
AccessControlIT (#11921)
     add 28a4ac73c8 [#11891] fix(lance): retry repair-on-load metadata update 
on optimistic-lock conflict (#11892)
     add 407f0724fd [#10548] feat(iceberg): support registerView in Iceberg 
REST catalog (#11828)
     add 6344766009 [#11907] feat(trino-connector): Support selecting Trino IT 
container subset via TEST_CONTAINERS (#11909)
     add 8411916170 [#11919] feat(core): AccessControlEventDispatcher events 
for external-id APIs (#11920)
     add ddbf6fc6e6 [#11590] fix(doris): fix INDEX syntax and support 
AUTO_INCREMENT for Doris 3.0+ (#11731)
     add 27ad2cac7a [MINOR] chore(web-v2): Allow newer Node.js versions (#11904)
     add 82fc98bddc [#11939] fix(core,auth): tolerate concurrent directory 
creation instead of failing spuriously (#11940)
     add a1ba08b2e7 [#11900] feat(iceberg): Support HDFS Kerberos auth for IRC 
JDBC catalog (#11901)
     add 70a81aedd3 [#11590] improvement(doris): upgrade type system for Doris 
3.0+/4.0.x compatibility (#11763)
     add 99941e2d38 [#11949] feat(iceberg): native variant type support (#11932)
     add fc1c4a2ede [#11567][#11574] feat(mcp-server): write tools for tag, 
catalog, schema, table, model, topic, fileset (#11621)
     add 799c50c737 [#11954] feat(iceberg): enable creating format-version 3 
(V3) tables via the Gravitino API (#11957)
     add 8e2d4ddafb [#11912] feat(clickhouse): support set data skipping index 
type (#11916)
     add effa6f2d6f build(deps): bump fastmcp from 3.2.0 to 3.4.2 in 
/mcp-server (#11869)
     add e211d267a0 [#10685] feat(iceberg-rest): Support vended credentials on 
planTableScan endpoint (#10800)
     add 4894435f7a [#11880] fix(clickhouse): preserve SETTINGS clause on table 
round-trip (#11885)
     add b464820eb0 [#11844] feat(tag): Support tags for views and functions 
(#11897)
     add f5948f872b [#11985] fix(openapi): drop stray OpenAPI 3.1 null token 
from statistics value (#11987)
     add 61ee16ae63 [#11980] fix(core): sort column ordinal positions while 
fetching from entity store (#11979)
     add fe44f02ecf [#11976] fix(core): refresh built-in job template when 
content drifts even if version is unchanged (#11978)
     add c2c1b8a672 [#11955] feat(iceberg): native geometry and geography type 
support for Iceberg V3 (#11958)
     add cf289fb759 [#11590] fix(doris): fix partition parsing for Doris 3.0+ 
format (#11732)
     add 9fbed05f36 [MINOR] fix: polish log and error message quality across 
Java modules (#10387)
     add 7ba1da7166 [#11962] feat(iceberg): support V3 nanosecond timestamp 
types (#11938)
     add e71af9ca98 [#11902] feat(client-java): Support tags for views and 
functions (#11903)
     add 40ab9a58f2 [#11983] test(iceberg): add end-to-end coverage for 
round-trip of remaining V2 column types (#11984)
     add 425112e554 [MINOR] docs: update Doris catalog documentation for 
3.0.x/4.0.x compatibility (#11995)
     add 69ef06b81b [#11951] feat(iceberg): map V3 unknown type to Gravitino 
NullType (#11969)
     add 438da702f1 [#12009] improvement(core): Support custom case sensitivity 
normalization in Capability (#12010)
     add 771c5e22cd [#11966] feat(auth): add X-Gravitino-Active-Roles header 
grammar and parser (#11970)
     add 8d6591d9f0 [#11946] improvement(api): Add properties field to 
TableChange.AddIndex for custom index parameters (#12013)
     add e5fe677dab [#11963] fix(cli): support parsing the variant column type 
(#11964)
     add 4ff7aac259 [#12014] fix(core): Don't wrap plain ClassNotFoundException 
in IsolatedClassLoader (#12015)
     add 4059726b7f [#5820] test(client-python): Improve IT server lifecycle 
(#11977)
     add b473bfd98f [MINOR] chore: Add nevzheng as GitHub triage collaborator 
(#12028)
     add 41cb729b6e [#3767] refactor(client-python): Share metalake operation 
test fixtures (#11993)
     add f229b4c427 build(deps): bump cachetools from 7.0.1 to 7.1.4 in 
/clients/client-python (#11868)
     add ece6c4168b build(deps): update fakeredis requirement from <2.35.0 to 
<2.37.0 in /mcp-server (#11866)
     add 1f5cee0770 [#3767] refactor(client-python): Share table test fixtures 
(#11992)
     add 64009ee93c [MINOR] fix(web-v2): Normalize service admins configuration 
(#12046)
     add 11c39c2d2a [#3767] refactor(client-python): Share metalake integration 
test setup (#12005)
     add d4190675a0 [#12037] improvement(authz): Improve the JCasbin checks 
(#12001)
     add 4074abf914 [#11985] fix(openapi): repair three codegen-breaking 
defects invisible to lint (#11988)
     add c10925adb7 [#12039] feat(client-python): Add view API definitions 
(#12040)
     add 840fe67f55 Web UI support for built-in IdP Basic login (#11812)
     add 40f9cb4323 [MINOR] fix(web-v2): Remove stale twc prefix from toast 
(#11950)
     add 5863632372 [MINOR] test(client-python): Fix API unit test discovery 
(#12041)
     add 849aa37c71 [#11985] fix(openapi): restore the ExternalType variant to 
DataType (#11991)
     add 988bbe0438 [#11985] fix(openapi): clear the remaining non-lineage 
recommended-strict findings (#11990)
     add b30e457318 [#11985] fix(openapi): correct the OpenLineage translation 
in the lineage schemas (#11989)
     add da99abcc36 [#11943] improvement(iceberg,core): validate warehouse at 
catalog creation and fail fast with an actionable error (#11959)
     add 6842f00b74 [MINOR] improvement(cache): Add logs for Caffeine cache 
removals (#12043)
     add c60b82cc63 [#12038] improvement(scripts): increase relational store 
column comment length limit to 4096 (#12047)
     add a03467c5e5 [#11967] feat(auth): narrow allow enforcement to active 
roles (deny stays global) (#12044)
     add fc88ddc8d4 [#12035] improvement(catalog-jdbc): block DBCP2 
class-loading properties in datasource config (#12036)
     add e675c0465c [#12091] improvement(ci): Route contrib catalog tests to 
contrib CI (#12092)
     add b49d895eaf [MINOR] improvement(authz): Add debug logging for 
list-authorization short-circuit (#12101)
     add 23f871f805 [#11802] fix(clickhouse): support user-defined GRANULARITY 
and validate shard key type (#11806)
     add 648fdd7c1a [#12089] improvement(client-python): Implement client-side 
view models (#12090)
     add 394e0c6a99 build(deps-dev): bump coverage from 7.13.4 to 7.14.3 in 
/clients/client-python (#11872)
     add 65d305fdaa [#12097] improvement(core): Validate names before 
normalizing in CapabilityHelpers (#12098)
     add d9c9237410 [#10093] feat(core): Introduce ClassLoaderPool to share 
ClassLoaders across same-type catalogs (#10480)
     add afbd958c45 [MINOR] fix(jdbc): Quote comments in generated DDL (#12007)
     add 5fe2959078 [#11923] docs(core): add multi-node entity store cache 
invalidation design (#11738)
     add b0aaac4b9a [#12106] improvement(common): gate Kerberos login-module 
debug on sun.security.krb5.debug (#12107)
     add 941f030f3e [#12116] improvement(client-python): Add view create/drop 
operations (#12117)
     add f8d7523b0d [#12095] feat(auth): parse X-Gravitino-Active-Roles into 
the request path (#12096)
     add 1249341afd [#12102] feat(jdbc-doris): Support frequently-used table 
properties (#12103)
     add cf1b173ca8 [MINOR] docs: update credential vending, add vended 
credentials to Trino (#12165)
     add 9e790c649d [#12099] feat(mcp-server): add read tools for table 
partitions (#12128)
     add c54b342ac8 [#12154] fix(core): Clean up orphaned metadata object 
relations (#12160)
     add 2214a29dcc [#12158] improvement(client-python): Add view query/alter 
operations (#12159)
     add a33fa0d1d7 [#12169] fix(auth): clear only role policies on cache 
eviction (#12172)
     add bc2b09b7a1 [#12024] improvement(common): harden JDBC unsafe-parameter 
detection against connectionProperties smuggling (#12025)
     add 8f3211278a [#12131] feat(kms): Define key inspection API (#12132)
     add fd8afd6e33 [MINOR] docs: Fix minor typos and inaccurate build 
instructions in documentation (#12192)
     add 074a288d85 [#12201] refactor(core): inject table hook dependencies 
(#12202)
     add 4d72543e0c [#12131] feat(kms): Configure and resolve named sources 
(#12133)
     add a7d221cd0a [#12181] feat(client-python): Support tags for views and 
functions (#12182)
     add 5dfa38803e [#12145] fix(test): prevent overlapping embedded server 
lifecycle (#12146)
     add e4e66e446a [#3767] refactor(client-python): Share authorization 
integration test setup (#11994)
     add e1afb700e9 [#11881] fix(clickhouse): distinguish MATERIALIZED/ALIAS 
from DEFAULT via default_kind (#11886)
     add ab2645a799 [#12112] fix(authz): Align group load authorization (#12113)
     add c4f3738189 Merge remote-tracking branch 'origin/main' into 
me/fix-entity-change-log-poller-11736

No new revisions were added by this update.

Summary of changes:
 .asf.yaml                                          |    1 +
 .../workflows/asf-allowlist-check.yml              |   39 +-
 .../workflows/backend-integration-test-action.yml  |   20 +-
 .github/workflows/backend-integration-test.yml     |   33 -
 .github/workflows/build.yml                        |    3 +
 .github/workflows/chart-release.yaml               |    2 +-
 .github/workflows/chart-test.yaml                  |   51 +-
 .github/workflows/contrib-catalog-test.yml         |  132 +++
 .github/workflows/docker-image.yml                 |    2 +-
 .github/workflows/trino-multi-version-test.yml     |    2 +-
 CONTRIBUTING.md                                    |    6 +-
 README.md                                          |    2 -
 .../org/apache/gravitino/authorization/Group.java  |   16 +
 .../org/apache/gravitino/authorization/User.java   |   25 +
 .../credential/COSSecretKeyCredential.java         |  120 +++
 .../encryption/kms/KmsApiIdentifiers.java          |   57 +
 .../gravitino/encryption/kms/KmsReference.java     |  110 ++
 .../org/apache/gravitino/function/Function.java    |    9 +
 .../java/org/apache/gravitino/rel/TableChange.java |   53 +-
 .../main/java/org/apache/gravitino/rel/View.java   |    9 +
 .../org/apache/gravitino/rel/indexes/Index.java    |    3 +
 .../java/org/apache/gravitino/rel/types/Type.java  |   15 +
 .../java/org/apache/gravitino/rel/types/Types.java |  189 ++++
 .../org.apache.gravitino.credential.Credential     |    1 +
 .../java/org/apache/gravitino/TestTableChange.java |  101 ++
 .../encryption/kms/TestKmsApiIdentifiers.java      |   62 ++
 .../gravitino/encryption/kms/TestKmsReference.java |   87 ++
 .../java/org/apache/gravitino/rel/TestTypes.java   |   31 +
 .../ranger/RangerAuthorizationPlugin.java          |   16 +-
 .../ranger/RangerClientExtension.java              |    4 +-
 .../authorization/ranger/RangerHelper.java         |    2 +-
 build.gradle.kts                                   |   11 +
 .../s3/credential/AwsIrsaCredentialGenerator.java  |    9 +-
 .../webidentity/WebIdentityTokenSources.java       |    5 +-
 .../credential/TestAwsIrsaCredentialGenerator.java |   37 +
 .../webidentity/TestWebIdentityTokenSources.java   |   11 +-
 .../gcs/credential/GCSTokenGenerator.java          |    2 +-
 bundles/tencent-bundle/build.gradle.kts            |   78 ++
 .../tencent}/build.gradle.kts                      |   36 +-
 .../cos/credential/COSSecretKeyProvider.java       |   60 ++
 .../gravitino/cos/fs/COSCredentialsProvider.java   |   91 ++
 .../gravitino/cos/fs/COSFileSystemProvider.java    |  128 +++
 .../java/org/apache/gravitino/cos/fs/COSUtils.java |   45 +
 ....gravitino.catalog.hadoop.fs.FileSystemProvider |    4 +-
 ....apache.gravitino.credential.CredentialProvider |    5 +-
 .../cos/credential/TestCOSCredentialProvider.java  |   63 ++
 .../cos/fs/TestCOSCredentialsProvider.java         |  154 +++
 .../cos/fs/TestCOSFileSystemProvider.java          |   92 ++
 .../catalog/clickhouse/ClickHouseConstants.java    |    9 +
 .../converter/ClickHouseTypeConverter.java         |   23 +-
 .../catalog/clickhouse/converter/TypeUtils.java    |    6 +-
 .../operations/ClickHouseDatabaseOperations.java   |    9 +
 .../operations/ClickHouseTableOperations.java      |  441 +++++++-
 .../converter/TestClickHouseTypeConverter.java     |   29 +
 .../test/CatalogClickHouseClusterIT.java           |  358 +++++++
 .../integration/test/CatalogClickHouseIT.java      |  554 +++++++++-
 .../test/service/ClickHouseService.java            |   12 +
 .../TestClickHouseDatabaseOperations.java          |   18 +
 .../operations/TestClickHouseTableOperations.java  |  421 +++++++-
 .../TestClickHouseTableOperationsCluster.java      |  502 +++++++++
 .../TestClickHouseTableOperationsUnit.java         |   87 ++
 .../credential/config/COSCredentialConfig.java     |   79 ++
 .../apache/gravitino/storage/COSProperties.java    |   29 +-
 catalogs/catalog-fileset/build.gradle.kts          |    7 +
 .../catalog/fileset/FilesetCatalogOperations.java  |   12 +-
 .../integration/test/FilesetCOSCatalogIT.java      |  207 ++++
 .../catalog/hive/HiveCatalogOperations.java        |    2 -
 .../catalog/jdbc/JdbcCatalogOperations.java        |   17 -
 .../catalog/jdbc/utils/DataSourceUtils.java        |   56 +
 .../catalog/jdbc/utils/JdbcConnectorUtils.java     |   61 ++
 .../catalog/jdbc/TestJdbcCatalogOperations.java    |   71 +-
 .../jdbc/utils/TestDataSourceUrlValidation.java    |  287 ++++-
 .../catalog/jdbc/utils/TestJdbcConnectorUtils.java |   69 ++
 .../doris/DorisTablePropertiesMetadata.java        |   44 +-
 .../doris/converter/DorisTypeConverter.java        |  113 +-
 .../doris/operation/DorisTableOperations.java      |  330 +++++-
 .../gravitino/catalog/doris/utils/DorisUtils.java  |   19 +-
 .../gravitino/catalog/doris/TestDorisCatalog.java  |  124 ++-
 .../doris/converter/TestDorisTypeConverter.java    |   60 +-
 .../doris/integration/test/CatalogDoris3xIT.java   |  564 ++++++++++
 .../doris/integration/test/CatalogDoris4xIT.java   |  565 ++++++++++
 .../doris/integration/test/CatalogDorisIT.java     |  158 ++-
 .../catalog/doris/operation/TestDoris.java         |    2 +-
 .../operation/TestDorisDatabaseOperations.java     |    2 +-
 .../TestDorisDatabaseOperationsSqlGeneration.java  |   21 +-
 .../doris/operation/TestDorisTableOperations.java  |   42 +-
 .../TestDorisTableOperationsSqlGeneration.java     |  390 ++++++-
 .../catalog/doris/utils/TestDorisUtils.java        |   42 +
 .../mysql/operation/MysqlTableOperations.java      |   12 +-
 .../TestMysqlTableOperationsSqlGeneration.java     |   60 +-
 .../operation/PostgreSqlSchemaOperations.java      |    5 +-
 .../operation/PostgreSqlTableOperations.java       |   20 +-
 ...estPostgreSqlSchemaOperationsSqlGeneration.java |   22 +-
 ...TestPostgreSqlTableOperationsSqlGeneration.java |   59 +-
 .../operations/StarRocksTableOperations.java       |   22 +-
 .../catalog/starrocks/utils/StarRocksUtils.java    |    7 +-
 .../operation/TestStarRocksTableOperations.java    |   50 +
 .../TestStarRocksTableOperationsSqlGeneration.java |   77 +-
 .../starrocks/utils/TestStarRocksUtils.java        |   25 +
 .../lakehouse/lance/LanceTableOperations.java      |   88 +-
 .../lance/TestLanceConcurrentRepairStress.java     |  283 +++++
 .../lakehouse/lance/TestLanceTableOperations.java  |   85 ++
 .../catalog/lakehouse/iceberg/IcebergCatalog.java  |   16 +
 .../iceberg/IcebergCatalogOperations.java          |   49 +-
 .../catalog/lakehouse/iceberg/IcebergTable.java    |   11 +
 .../iceberg/IcebergTablePropertiesMetadata.java    |   74 +-
 .../iceberg/converter/FromIcebergType.java         |   27 +
 .../lakehouse/iceberg/converter/ToIcebergType.java |   59 +-
 .../iceberg/converter/ToIcebergTypeVisitor.java    |    7 +
 .../lakehouse/iceberg/TestIcebergCatalog.java      |   11 +
 .../iceberg/TestIcebergCatalogOperations.java      |   53 +
 .../lakehouse/iceberg/TestIcebergTable.java        |   19 +
 .../TestIcebergTablePropertiesMetadata.java        |   87 ++
 .../iceberg/converter/TestConvertUtil.java         |  151 +++
 .../integration/test/CatalogIcebergBaseIT.java     |  539 +++++++++-
 .../integration/test/CatalogIcebergRestIT.java     |  130 +++
 .../integration/test/IcebergClassLoaderPoolIT.java |  265 +++++
 .../integration/test/TestMultipleJDBCLoad.java     |   12 +-
 catalogs/catalog-lakehouse-paimon/build.gradle.kts |    3 +
 .../lakehouse/paimon/PaimonCatalogOperations.java  |    4 +-
 .../authentication/kerberos/KerberosClient.java    |  124 ---
 .../lakehouse/paimon/ops/PaimonCatalogOps.java     |    2 +-
 .../lakehouse/paimon/utils/CatalogUtils.java       |   29 +-
 .../build.gradle.kts                               |   18 +-
 .../catalog/hadoop/auth/KerberosAuthUtils.java     |  249 +++++
 .../catalog/hadoop/auth/KerberosClient.java        |  187 ++++
 .../catalog/hadoop/auth/TestKerberosAuthUtils.java |  219 ++++
 .../catalog/hadoop/auth/TestKerberosClient.java    |   91 ++
 catalogs/hadoop-common/build.gradle.kts            |    3 +
 .../gravitino/catalog/hadoop/fs/Constants.java     |    6 +
 .../catalog/hadoop/fs/HDFSFileSystemProxy.java     |   23 +-
 .../catalog/hadoop/fs/kerberos/KerberosClient.java |  146 ---
 catalogs/hive-metastore-common/build.gradle.kts    |    3 +
 .../apache/gravitino/hive/CachedClientPool.java    |   10 +-
 .../gravitino/hive/client/HiveClientFactory.java   |    6 +-
 ...{KerberosClient.java => HmsKerberosClient.java} |   88 +-
 .../org/apache/gravitino/cli/TypeConverter.java    |    2 +
 .../apache/gravitino/cli/commands/ListGroups.java  |    5 +
 .../apache/gravitino/cli/commands/ListUsers.java   |   10 +
 .../org/apache/gravitino/cli/TestParseType.java    |    6 +
 .../apache/gravitino/cli/TestTypeConverter.java    |    1 +
 .../org/apache/gravitino/client/DTOConverters.java |    3 +-
 .../org/apache/gravitino/client/ErrorHandlers.java |    3 +
 .../client/FunctionCatalogOperations.java          |   10 +-
 .../apache/gravitino/client/GenericFunction.java   |  131 +++
 .../org/apache/gravitino/client/GenericView.java   |  141 +++
 .../apache/gravitino/client/GravitinoClient.java   |   32 +
 .../apache/gravitino/client/GravitinoMetalake.java |   58 ++
 .../gravitino/client/KerberosTokenProvider.java    |    4 +-
 .../apache/gravitino/client/RelationalCatalog.java |    6 +-
 .../gravitino/client/TestFunctionCatalog.java      |   46 +
 .../apache/gravitino/client/TestSupportTags.java   |  107 ++
 .../org/apache/gravitino/client/TestUserGroup.java |   46 +
 .../gravitino/client/integration/test/TagIT.java   |  227 ++++
 .../test/authorization/AccessControlIT.java        |   45 +
 clients/client-python/build.gradle.kts             |   19 +-
 clients/client-python/gravitino/api/catalog.py     |   10 +
 .../gravitino/api/function/function.py             |   13 +
 .../client-python/gravitino/api/rel/dialects.py    |   13 +-
 .../gravitino/api/rel/representation.py            |   18 +-
 .../gravitino/api/rel/sql_representation.py        |   47 +
 .../rel/types/json_serdes/_helper/serdes_utils.py  |   24 +-
 .../client-python/gravitino/api/rel/types/type.py  |   12 +
 .../client-python/gravitino/api/rel/types/types.py |  151 +++
 clients/client-python/gravitino/api/rel/view.py    |   81 ++
 .../gravitino/api/rel/view_catalog.py              |  149 +++
 .../client-python/gravitino/api/rel/view_change.py |  214 ++++
 .../client/function_catalog_operations.py          |   17 +-
 .../gravitino/client/generic_function.py           |   56 +-
 .../client-python/gravitino/client/generic_view.py |  107 ++
 .../client/metadata_object_tag_operations.py       |    5 +-
 .../gravitino/client/relational_catalog.py         |  224 +++-
 .../dto/rel/json_serdes/representation_serdes.py   |   49 +
 .../gravitino/dto/rel/representation_dto.py        |   22 +-
 .../gravitino/dto/rel/sql_representation_dto.py    |   58 ++
 .../client-python/gravitino/dto/rel/view_dto.py    |  105 ++
 .../gravitino/dto/requests/view_create_request.py  |   96 ++
 .../gravitino/dto/requests/view_update_request.py  |  166 +++
 .../gravitino/dto/requests/view_updates_request.py |   43 +-
 .../gravitino/dto/responses/view_response.py       |   49 +
 .../gravitino/dto/util/dto_converters.py           |   54 +-
 clients/client-python/gravitino/exceptions/base.py |    8 +
 .../exceptions/handlers/view_error_handler.py      |   78 ++
 clients/client-python/gravitino/utils/serdes.py    |   11 +
 clients/client-python/requirements-dev.txt         |    4 +-
 clients/client-python/requirements.txt             |    2 +-
 clients/client-python/setup.py                     |    2 +-
 .../tests/integration/integration_test_env.py      |  142 ++-
 .../tests/integration/test_catalog.py              |   37 +-
 .../tests/integration/test_group_management.py     |   62 +-
 .../client-python/tests/integration/test_owner.py  |   53 +-
 .../tests/integration/test_relational_catalog.py   |  171 +++
 .../tests/integration/test_role_management.py      |   62 +-
 .../client-python/tests/integration/test_schema.py |   32 +-
 .../tests/integration/test_supports_tags.py        |  107 ++
 .../client-python/tests/integration/test_user.py   |   64 +-
 .../{gravitino => tests/unittests}/api/__init__.py |    0
 .../unittests/api/function}/__init__.py            |    0
 .../tests/unittests/api/function/test_function.py  |   28 +-
 .../unittests/api/rel/test_sql_representation.py   |   54 +
 .../tests/unittests/api/rel/test_types.py          |   32 +
 .../tests/unittests/api/rel/test_view.py           |   76 ++
 .../tests/unittests/api/rel/test_view_change.py    |  150 +++
 .../api/stats/test_supports_statistics.py          |    9 +-
 .../api => tests/unittests/api/tag}/__init__.py    |    0
 .../unittests/client/operation_test_fixtures.py    |   89 ++
 .../client/test_metalake_group_operations.py       |   73 +-
 .../client/test_metalake_role_operations.py        |  167 +--
 .../client/test_metalake_user_operations.py        |   73 +-
 .../dto/rel/test_representation_serdes.py          |   54 +
 .../dto/rel/test_sql_representation_dto.py         |   55 +
 .../tests/unittests/dto/rel/test_table_dto.py      |  129 +--
 .../tests/unittests/dto/rel/test_view_dto.py       |  293 ++++++
 .../dto/requests/test_view_create_request.py       |  144 +++
 .../dto/requests/test_view_update_request.py       |  197 ++++
 .../unittests/dto/responses/test_responses.py      |  163 +--
 .../unittests/dto/responses/test_view_response.py  |   51 +
 .../unittests/dto/util/test_dto_converters.py      |  181 +---
 .../api => tests/unittests/fixtures}/__init__.py   |    0
 .../tests/unittests/fixtures/table_fixtures.py     |  222 ++++
 .../unittests/json_serdes/test_type_serdes.py      |    9 +
 .../tests/unittests/test_error_handler.py          |   83 ++
 .../tests/unittests/test_generic_function.py       |   79 ++
 .../tests/unittests/test_generic_view.py           |   85 ++
 .../tests/unittests/test_relational_catalog.py     |  380 ++++---
 .../tests/unittests/test_relational_table.py       |  158 +--
 .../client-python/tests/unittests/test_requests.py |  133 +--
 clients/filesystem-fuse/Cargo.toml                 |    2 +-
 .../filesystem-hadoop3-runtime/build.gradle.kts    |    1 +
 clients/filesystem-hadoop3/build.gradle.kts        |    2 +
 .../filesystem/hadoop/BaseGVFSOperations.java      |   20 +-
 .../hadoop/GravitinoVirtualFileSystem.java         |    6 +
 .../gravitino/filesystem/hadoop/TestGvfsBase.java  |   11 +
 .../test/GravitinoVirtualFileSystemCOSIT.java      |  169 +++
 common/build.gradle.kts                            |    4 +
 .../org/apache/gravitino/auth/ActiveRoles.java     |  164 +++
 .../apache/gravitino/auth/ActiveRolesParser.java   |  122 +++
 .../org/apache/gravitino/auth/AuthConstants.java   |   10 +
 .../auth/IllegalActiveRolesException.java          |   33 +-
 .../org/apache/gravitino/auth/KerberosUtils.java   |    6 +-
 .../apache/gravitino/config/ConfigConstants.java   |    5 +-
 .../gravitino/dto/authorization/GroupDTO.java      |   30 +-
 .../gravitino/dto/authorization/UserDTO.java       |   55 +-
 .../dto/encryption/kms/KmsReferenceDTO.java        |   68 ++
 .../gravitino/dto/requests/GroupAddRequest.java    |   22 +-
 .../gravitino/dto/requests/TableUpdateRequest.java |   20 +-
 .../gravitino/dto/requests/UserAddRequest.java     |   28 +-
 .../apache/gravitino/dto/util/DTOConverters.java   |    3 +
 .../encryption/kms/KmsAuthenticationException.java |   50 +
 .../apache/gravitino/encryption/kms/KmsClient.java |   56 +
 .../gravitino/encryption/kms/KmsClientFactory.java |   53 +
 .../encryption/kms/KmsConfigurationException.java  |   49 +
 .../gravitino/encryption/kms/KmsKeyProperties.java |   63 ++
 .../java/org/apache/gravitino/json/JsonUtils.java  |   21 +
 .../org/apache/gravitino/utils/FileFetcher.java    |   60 +-
 .../org/apache/gravitino/utils/JdbcUrlUtils.java   |   83 +-
 .../gravitino/utils/RemoteFileDownloader.java      |  396 +++++++
 .../apache/gravitino/utils/RemoteUriValidator.java |  140 ++-
 .../java/org/apache/gravitino/utils/SafeUri.java   |   55 +
 .../org/apache/gravitino/auth/TestActiveRoles.java |  102 ++
 .../gravitino/auth/TestActiveRolesParser.java      |  122 +++
 .../dto/encryption/kms/TestKmsReferenceDTO.java    |   91 ++
 .../encryption/kms/TestFakeKmsClient.java          |  104 ++
 .../gravitino/encryption/kms/TestKmsClient.java    |   95 ++
 .../org/apache/gravitino/json/TestJsonUtils.java   |   40 +
 .../apache/gravitino/utils/TestFileFetcher.java    |   89 +-
 .../apache/gravitino/utils/TestJdbcUrlUtils.java   |  402 ++++++-
 .../gravitino/utils/TestRemoteFileDownloader.java  |  686 ++++++++++++
 .../gravitino/utils/TestRemoteUriValidator.java    |  118 ++-
 .../org/apache/gravitino/utils/TestSafeUri.java    |   51 +
 .../gravitino/encryption/kms/FakeKmsClient.java    |  140 +++
 .../encryption/kms/TestKmsClientContract.java      |   95 ++
 .../kms/TestKmsClientFactoryContract.java          |   27 +-
 conf/gravitino-iceberg-rest-server.conf.template   |   18 +
 conf/gravitino.conf.template                       |    4 +
 .../main/java/org/apache/gravitino/Configs.java    |   12 +
 .../src/main/java/org/apache/gravitino/Entity.java |   22 +
 .../java/org/apache/gravitino/EntityStore.java     |   10 +
 .../java/org/apache/gravitino/GravitinoEnv.java    |   27 +-
 .../gravitino/SupportsExternalIdOperations.java    |   71 ++
 .../java/org/apache/gravitino/UserPrincipal.java   |   32 +
 .../java/org/apache/gravitino/audit/AuditLog.java  |   14 +
 .../apache/gravitino/audit/AuditLogManager.java    |    9 +-
 .../gravitino/audit/v2/CompatibilityUtils.java     |    7 +
 .../authorization/AccessControlDispatcher.java     |  113 ++
 .../authorization/AccessControlManager.java        |   75 ++
 .../authorization/AuthorizationRequestContext.java |   37 +
 .../authorization/AuthorizationUtils.java          |   84 ++
 .../authorization/GravitinoAuthorizer.java         |   34 +-
 .../gravitino/authorization/OwnerManager.java      |    7 +-
 .../gravitino/authorization/PermissionManager.java |    6 +
 ...pManager.java => UserGroupExternalManager.java} |  183 ++--
 .../gravitino/authorization/UserGroupManager.java  |    6 +-
 .../auxiliary/AuxiliaryServiceManager.java         |    4 +-
 .../gravitino/cache/CaffeineEntityCache.java       |    4 +-
 .../gravitino/catalog/CapabilityHelpers.java       |   54 +-
 .../apache/gravitino/catalog/CatalogManager.java   |  202 +++-
 .../catalog/FilesetNormalizeDispatcher.java        |   17 +-
 .../catalog/FunctionNormalizeDispatcher.java       |   17 +-
 .../gravitino/catalog/ManagedTableOperations.java  |    8 +-
 .../catalog/ModelNormalizeDispatcher.java          |   17 +-
 .../catalog/PartitionNormalizeDispatcher.java      |   22 +-
 .../catalog/SchemaNormalizeDispatcher.java         |   19 +-
 .../catalog/SchemaOperationDispatcher.java         |    2 +-
 .../catalog/TableNormalizeDispatcher.java          |   17 +-
 .../catalog/TableOperationDispatcher.java          |    2 +-
 .../catalog/TopicNormalizeDispatcher.java          |   17 +-
 .../catalog/TopicOperationDispatcher.java          |    2 +-
 .../gravitino/catalog/ViewNormalizeDispatcher.java |   16 +-
 .../gravitino/catalog/ViewOperationDispatcher.java |    2 +-
 .../apache/gravitino/connector/BaseCatalog.java    |    9 +
 .../gravitino/connector/capability/Capability.java |   20 +
 .../gravitino/credential/CredentialCache.java      |    5 +-
 .../encryption/kms/KmsClientRegistry.java          |  197 ++++
 .../apache/gravitino/encryption/kms/KmsConfig.java |  161 +++
 .../hook/AccessControlHookDispatcher.java          |   48 +
 .../gravitino/hook/CatalogHookDispatcher.java      |    4 +-
 .../apache/gravitino/hook/TableHookDispatcher.java |   25 +-
 .../job/BuiltInJobTemplateEventListener.java       |    7 +-
 .../java/org/apache/gravitino/job/JobManager.java  |   14 +-
 .../listener/AccessControlEventDispatcher.java     |  170 +++
 .../gravitino/listener/AsyncQueueListener.java     |    2 +-
 .../listener/api/event/DisableUserEvent.java       |   65 ++
 .../api/event/DisableUserFailureEvent.java         |   57 +
 .../DisableUserPreEvent.java}                      |   42 +-
 .../listener/api/event/EnableUserEvent.java        |   65 ++
 .../listener/api/event/EnableUserFailureEvent.java |   57 +
 .../EnableUserPreEvent.java}                       |   42 +-
 .../api/event/GetGroupByExternalIdEvent.java       |   54 +
 .../GetGroupByExternalIdFailureEvent.java}         |   44 +-
 .../GetGroupByExternalIdPreEvent.java}             |   43 +-
 .../api/event/GetUserByExternalIdEvent.java        |   65 ++
 .../api/event/GetUserByExternalIdFailureEvent.java |   57 +
 .../api/event/GetUserByExternalIdPreEvent.java     |   55 +
 .../listener/api/event/OperationType.java          |    7 +
 .../api/event/RemoveGroupByExternalIdEvent.java    |   52 +
 .../RemoveGroupByExternalIdFailureEvent.java}      |   44 +-
 .../RemoveGroupByExternalIdPreEvent.java}          |   43 +-
 .../api/event/RemoveUserByExternalIdEvent.java     |   68 ++
 .../event/RemoveUserByExternalIdFailureEvent.java  |   57 +
 .../api/event/RemoveUserByExternalIdPreEvent.java  |   55 +
 .../gravitino/listener/api/info/GroupInfo.java     |   12 +
 .../gravitino/listener/api/info/UserInfo.java      |   23 +
 .../org/apache/gravitino/meta/GroupEntity.java     |   24 +-
 .../java/org/apache/gravitino/meta/UserEntity.java |   46 +-
 .../apache/gravitino/metrics/MetricsSystem.java    |    2 +-
 .../storage/LancePartitionStatisticStorage.java    |    4 +
 .../gravitino/storage/relational/JDBCBackend.java  |   38 +-
 .../storage/relational/RelationalBackend.java      |   29 +
 .../storage/relational/RelationalEntityStore.java  |   46 +-
 .../relational/RelationalGarbageCollector.java     |   29 +-
 .../SupportsOrphanedRelationCleanup.java           |   30 +-
 .../storage/relational/mapper/GroupMetaMapper.java |    6 +
 .../mapper/GroupMetaSQLProviderFactory.java        |    5 +
 .../OrphanedMetadataObjectRelationMapper.java      |   81 ++
 .../OrphanedMetadataObjectRelationSQLProvider.java |   96 ++
 .../storage/relational/mapper/UserMetaMapper.java  |   10 +
 .../mapper/UserMetaSQLProviderFactory.java         |   10 +
 .../provider/DefaultMapperPackageProvider.java     |    2 +
 .../provider/base/GroupMetaBaseSQLProvider.java    |   43 +-
 .../provider/base/OwnerMetaBaseSQLProvider.java    |    4 +
 .../base/TagMetadataObjectRelBaseSQLProvider.java  |   28 +
 .../provider/base/UserMetaBaseSQLProvider.java     |   64 +-
 .../mapper/provider/h2/GroupMetaH2Provider.java    |    2 +
 .../mapper/provider/h2/UserMetaH2Provider.java     |    1 +
 .../postgresql/GroupMetaPostgreSQLProvider.java    |    8 +-
 .../TagMetadataObjectRelPostgreSQLProvider.java    |   28 +
 .../postgresql/UserMetaPostgreSQLProvider.java     |    9 +-
 .../gravitino/storage/relational/po/GroupPO.java   |   12 +
 .../gravitino/storage/relational/po/UserPO.java    |   27 +
 .../relational/service/FunctionMetaService.java    |    6 +
 .../relational/service/GroupMetaService.java       |   28 +
 .../OrphanedMetadataObjectRelationService.java     |  153 +++
 .../relational/service/TableMetaService.java       |   12 +-
 .../relational/service/UserMetaService.java        |   67 ++
 .../storage/relational/utils/POConverters.java     |   12 +
 .../java/org/apache/gravitino/tag/TagManager.java  |    4 +-
 .../org/apache/gravitino/utils/ClassLoaderKey.java |   70 ++
 .../apache/gravitino/utils/ClassLoaderPool.java    |  216 ++++
 .../gravitino/utils/IsolatedClassLoader.java       |   43 +-
 .../gravitino/utils/PooledClassLoaderEntry.java    |  101 ++
 .../org/apache/gravitino/utils/PrincipalUtils.java |    6 +-
 .../java/org/apache/gravitino/TestCatalog.java     |    7 +
 .../TestGravitinoEnvKmsClientRegistry.java         |   62 ++
 .../gravitino/audit/v2/TestCompatibilityUtils.java |    6 +
 .../authorization/TestAccessControlManager.java    |  147 +++
 .../TestAuthorizationRequestContext.java           |   17 +
 .../authorization/TestAuthorizationUtils.java      |  131 +++
 .../gravitino/catalog/TestCapabilityHelpers.java   |  145 +++
 .../gravitino/catalog/TestCatalogManager.java      |   74 ++
 .../catalog/TestClassLoaderPoolIntegration.java    |  349 +++++++
 .../catalog/TestManagedTableOperations.java        |   42 +
 .../catalog/TestPartitionNormalizeDispatcher.java  |   72 ++
 .../catalog/TestTableNormalizeDispatcher.java      |   82 ++
 .../gravitino/connector/TestCatalogOperations.java |   10 +-
 .../connector/capability/TestCapability.java       |    8 +
 .../encryption/kms/TestKmsClientRegistry.java      |  489 +++++++++
 .../gravitino/encryption/kms/TestKmsConfig.java    |  145 +++
 .../gravitino/hook/TestTableHookDispatcher.java    |  428 +++-----
 .../job/TestBuiltInJobTemplateEventListener.java   |   52 +-
 .../org/apache/gravitino/job/TestJobManager.java   |   35 +
 .../listener/api/event/TestGroupEvent.java         |   70 ++
 .../listener/api/event/TestOwnerEvent.java         |    3 +-
 .../listener/api/event/TestUserEvent.java          |   87 ++
 .../storage/memory/TestMemoryEntityStore.java      |   82 +-
 .../relational/TestRelationalGarbageCollector.java |   72 ++
 .../mapper/provider/base/TestAuthMappers.java      |    1 +
 .../provider/base/TestUserRoleRelMapper.java       |    1 +
 .../provider/h2/TestGroupMetaH2Provider.java       |    7 +-
 .../relational/service/TestCatalogMetaService.java |  157 +++
 .../service/TestFunctionMetaService.java           |   42 +
 .../relational/service/TestGroupMetaService.java   |   60 ++
 .../TestOrphanedMetadataObjectRelationService.java |  139 +++
 .../relational/service/TestSchemaMetaService.java  |  146 +++
 .../relational/service/TestUserMetaService.java    |  147 +++
 .../relational/service/TestViewMetaService.java    |   41 +
 .../org/apache/gravitino/tag/TestTagManager.java   |  167 ++-
 .../gravitino/utils/TestClassLoaderPool.java       |  428 ++++++++
 .../gravitino/utils/TestIsolatedClassLoader.java   |   12 +
 .../gravitino/utils/TestMetadataObjectUtil.java    |   11 +
 .../gravitino-entity-cache-multinode-design.md     |  429 ++++++++
 design-docs/gravitino-role-assumption.md           |  366 +++++++
 design-docs/images/coherence-gate.png              |  Bin 0 -> 86977 bytes
 design-docs/images/entity-key-invalidation.png     |  Bin 0 -> 125578 bytes
 design-docs/images/roadmap.png                     |  Bin 0 -> 76171 bytes
 design-docs/images/shared-cache.png                |  Bin 0 -> 63940 bytes
 .../gravitino-iceberg-rest-server/Chart.yaml       |    4 +-
 .../templates/httproute.yaml                       |   67 ++
 .../templates/ingress.yaml                         |    2 +-
 .../tests/httproute_test.yaml                      |  205 ++++
 .../tests/ingress_test.yaml                        |    9 +
 .../gravitino-iceberg-rest-server/values.yaml      |   21 +-
 dev/charts/gravitino-lance-rest-server/Chart.yaml  |    4 +-
 .../templates/httproute.yaml                       |   67 ++
 .../templates/ingress.yaml                         |    2 +-
 .../tests/httproute_test.yaml                      |  154 +++
 .../tests/ingress_test.yaml                        |    9 +
 dev/charts/gravitino-lance-rest-server/values.yaml |   21 +-
 dev/charts/gravitino/Chart.yaml                    |    4 +-
 dev/charts/gravitino/templates/httproute.yaml      |   67 ++
 dev/charts/gravitino/templates/ingress.yaml        |    4 +-
 dev/charts/gravitino/tests/httproute_test.yaml     |  154 +++
 dev/charts/gravitino/tests/ingress_test.yaml       |    9 +
 dev/charts/gravitino/values.yaml                   |   21 +-
 docs/fileset-catalog-with-cos.md                   |  544 ++++++++++
 docs/fileset-catalog.md                            |   12 +-
 docs/gravitino-mcp-server.md                       |   33 +-
 docs/gravitino-server-config.md                    |    9 +-
 docs/how-to-build.md                               |    1 -
 docs/iceberg-rest-engine/trino.md                  |  314 +++---
 docs/iceberg-rest-service.md                       |   68 +-
 docs/index.md                                      |    8 +-
 docs/jdbc-clickhouse-catalog.md                    |   11 +-
 docs/jdbc-doris-catalog.md                         |  205 +++-
 docs/lakehouse-iceberg-catalog.md                  |   67 +-
 docs/manage-relational-metadata-using-gravitino.md |   26 +-
 docs/manage-tags-in-gravitino.md                   |   10 +-
 docs/open-api/catalogs.yaml                        |   49 +
 docs/open-api/datatype.yaml                        |   73 +-
 docs/open-api/filesets.yaml                        |    1 -
 docs/open-api/groups.yaml                          |    9 +-
 docs/open-api/indexes.yaml                         |    8 +
 docs/open-api/lineage.yaml                         |   11 +-
 docs/open-api/models.yaml                          |    3 +-
 docs/open-api/openapi.yaml                         |    6 +-
 docs/open-api/policies.yaml                        |    1 +
 docs/open-api/statistics.yaml                      |    6 +-
 docs/open-api/tables.yaml                          |   67 +-
 docs/open-api/tags.yaml                            |    4 +-
 docs/open-api/users.yaml                           |   18 +-
 docs/security/access-control.md                    |   42 +-
 docs/security/credential-vending.md                |  505 +++++----
 ...partitioning-distribution-sort-order-indexes.md |   13 +-
 .../flink/connector/jdbc/GravitinoJdbcCatalog.java |   12 +-
 .../connector/jdbc/JdbcPropertiesConstants.java    |    1 +
 .../connector/integration/test/FlinkCommonIT.java  |   21 +-
 .../store/TestGravitinoSessionCatalogStore.java    |   10 +
 flink-connector/v1.18/flink/build.gradle.kts       |    1 +
 flink-connector/v1.19/flink/build.gradle.kts       |    1 +
 flink-connector/v1.20/flink/build.gradle.kts       |    1 +
 gradle.properties                                  |    2 +-
 gradle/libs.versions.toml                          |    2 +
 iceberg/iceberg-common/build.gradle.kts            |    3 +
 .../iceberg/common/ClosableHiveCatalog.java        |   66 +-
 .../iceberg/common/ClosableJdbcCatalog.java        |  108 ++
 .../authentication/kerberos/KerberosClient.java    |  136 ---
 .../iceberg/common/ops/IcebergCatalogWrapper.java  |   80 +-
 .../iceberg/common/utils/IcebergCatalogUtil.java   |   18 +-
 .../common/utils/IcebergHiveCachedClientPool.java  |    9 +-
 .../iceberg/common/utils/KerberosCatalogUtils.java |  175 ++++
 .../iceberg/MetastoreRegisterTableUtils.java       |  100 ++
 .../HiveCatalogWithMetadataLocationSupport.java    |  144 ++-
 .../JdbcCatalogWithMetadataLocationSupport.java    |   54 +-
 .../MemoryCatalogWithMetadataLocationSupport.java  |   28 +
 .../iceberg/common/TestClosableJdbcCatalog.java    |  134 +++
 .../common/utils/TestIcebergCatalogUtil.java       |   26 +-
 .../common/utils/TestKerberosCatalogUtils.java     |   64 ++
 .../iceberg/TestMetastoreRegisterTableUtils.java   |   67 ++
 ...TestJdbcCatalogWithMetadataLocationSupport.java |   47 +
 ...stMemoryCatalogWithMetadataLocationSupport.java |   29 +
 .../iceberg/service/CatalogWrapperForREST.java     |  120 ++-
 .../iceberg/service/FederatedCatalogWrapper.java   |  132 ++-
 .../service/IcebergCatalogWrapperManager.java      |    5 +-
 .../iceberg/service/IcebergExceptionMapper.java    |    1 +
 .../iceberg/service/IcebergRESTUtils.java          |   44 +
 .../IcebergNamespaceEventDispatcher.java           |   31 +
 .../dispatcher/IcebergNamespaceHookDispatcher.java |   89 ++
 .../IcebergNamespaceOperationDispatcher.java       |   13 +
 .../IcebergNamespaceOperationExecutor.java         |   10 +
 .../dispatcher/IcebergTableOperationExecutor.java  |    6 +-
 .../service/rest/IcebergConfigOperations.java      |    1 +
 .../service/rest/IcebergNamespaceOperations.java   |   38 +
 .../service/rest/IcebergTableOperations.java       |   13 +-
 .../api/event/IcebergRegisterViewEvent.java        |   59 ++
 .../api/event/IcebergRegisterViewFailureEvent.java |   50 +
 .../api/event/IcebergRegisterViewPreEvent.java     |   47 +
 .../integration/test/IcebergRESTHiveCatalogIT.java |   47 +
 .../integration/test/IcebergRESTServiceBaseIT.java |    9 +
 .../integration/test/IcebergRESTServiceIT.java     |    8 +-
 .../test/IcebergRestKerberosHiveCatalogIT.java     |  125 +--
 ...KerberosHiveWithUserImpersonationCatalogIT.java |    7 +-
 .../test/IcebergRestKerberosJdbcCatalogIT.java     |  133 +++
 ...erberosJdbcWithUserImpersonationCatalogIT.java} |   22 +-
 .../test/IcebergRestKerberosTestEnv.java           |  253 +++++
 .../util/IcebergRESTServerManagerForDeploy.java    |   93 +-
 .../iceberg/service/TestCatalogWrapperForREST.java |  350 ++++++-
 .../service/TestIcebergAuthenticationFilter.java   |   20 +
 .../TestIcebergNamespaceHookDispatcher.java        |  171 +++
 .../TestIcebergNamespaceOperationExecutor.java     |   15 +
 .../service/rest/CatalogWrapperForTest.java        |   44 +
 .../iceberg/service/rest/IcebergTestBase.java      |    9 +
 .../service/rest/TestIcebergTableOperations.java   |  110 ++
 .../service/rest/TestIcebergViewOperations.java    |   53 +
 integration-test-common/build.gradle.kts           |    1 +
 .../docker-script/{shutdown.sh => compose-env.sh}  |   20 +-
 ...ompose.yaml => docker-compose-trino-mysql.yaml} |   84 +-
 .../docker-script/docker-compose.yaml              |   14 +-
 .../docker-script/inspect_ip.sh                    |   21 +-
 integration-test-common/docker-script/launch.sh    |   65 +-
 integration-test-common/docker-script/shutdown.sh  |   14 +-
 .../doris-docker-script/docker-compose.yaml        |   35 +-
 .../doris-docker-script/start-be.sh                |   13 +-
 .../gravitino/integration/test/MiniGravitino.java  |   80 +-
 .../integration/test/TestMiniGravitino.java        |   85 ++
 .../integration/test/container/ContainerSuite.java |   28 +-
 .../integration/test/container/DorisContainer.java |   40 +-
 .../integration/test/container/DorisImageName.java |   49 +
 .../test/container/TrinoITContainers.java          |   97 +-
 .../integration/test/util/TestDatabaseName.java    |   14 +
 .../lance/common/ops/NamespaceWrapper.java         |    4 +
 .../gravitino/GravitinoLanceTableOperations.java   |   16 +-
 lance/lance-rest-server/build.gradle.kts           |    1 +
 .../apache/gravitino/lance/LanceJettyServer.java   |   19 +-
 .../apache/gravitino/lance/LanceRESTService.java   |   13 +-
 .../lance/service/LanceAuthenticationFilter.java   |   93 ++
 .../lance/service/LanceHealthCheckPathMatcher.java |   41 +
 .../lance/service/rest/LanceHealthOperations.java  |  142 +++
 .../service/TestLanceAuthenticationFilter.java     |  108 +-
 .../rest/TestGravitinoLanceTableOperations.java    |   34 +
 .../service/rest/TestLanceHealthOperations.java    |   96 ++
 .../handler/BaseExpressionStrategyHandler.java     |   74 +-
 .../recommender/util/ExpressionEvaluator.java      |   15 +
 .../recommender/util/QLExpressionEvaluator.java    |   81 +-
 .../util/TableMetadataTriggerExpressionUtils.java  |   90 ++
 .../compaction/TestCompactionStrategyHandler.java  |  264 +++++
 .../util/TestQLExpressionEvaluator.java            |   65 ++
 .../TestTableMetadataTriggerExpressionUtils.java   |  118 +++
 mcp-server/mcp_server/client/catalog_operation.py  |   24 +
 mcp-server/mcp_server/client/fileset_operation.py  |   31 +
 .../mcp_server/client/gravitino_operation.py       |   11 +
 mcp-server/mcp_server/client/model_operation.py    |   78 ++
 .../{table_operation.py => partition_operation.py} |   33 +-
 .../plain/plain_rest_client_catalog_operation.py   |   46 +
 .../plain/plain_rest_client_fileset_operation.py   |   68 +-
 .../plain/plain_rest_client_model_operation.py     |  147 ++-
 .../client/plain/plain_rest_client_operation.py    |    9 +
 ...py => plain_rest_client_partition_operation.py} |   37 +-
 .../plain/plain_rest_client_schema_operation.py    |   32 +
 .../plain/plain_rest_client_table_operation.py     |   63 ++
 .../plain/plain_rest_client_tag_operation.py       |    9 +-
 .../plain/plain_rest_client_topic_operation.py     |   53 +-
 mcp-server/mcp_server/client/plain/utils.py        |    6 +
 mcp-server/mcp_server/client/schema_operation.py   |   18 +
 mcp-server/mcp_server/client/table_operation.py    |   33 +
 mcp-server/mcp_server/client/tag_operation.py      |    4 +-
 mcp-server/mcp_server/client/topic_operation.py    |   28 +
 mcp-server/mcp_server/tools/__init__.py            |    2 +
 mcp-server/mcp_server/tools/catalog.py             |  109 ++
 mcp-server/mcp_server/tools/fileset.py             |  104 +-
 mcp-server/mcp_server/tools/model.py               |  243 +++++
 mcp-server/mcp_server/tools/partition.py           |  119 +++
 mcp-server/mcp_server/tools/schema.py              |   79 ++
 mcp-server/mcp_server/tools/table.py               |  124 +++
 mcp-server/mcp_server/tools/tag.py                 |   18 +-
 mcp-server/mcp_server/tools/topic.py               |   83 ++
 mcp-server/pyproject.toml                          |    6 +-
 mcp-server/tests/integration/test_authz_e2e.py     |    9 -
 mcp-server/tests/unit/client/test_url_encoding.py  |  170 ++-
 mcp-server/tests/unit/tools/mock_operation.py      |  212 ++++
 mcp-server/tests/unit/tools/test_catalog.py        |   87 ++
 mcp-server/tests/unit/tools/test_fileset.py        |   84 ++
 mcp-server/tests/unit/tools/test_model.py          |  162 +++
 mcp-server/tests/unit/tools/test_partition.py      |   92 ++
 mcp-server/tests/unit/tools/test_schema.py         |   69 ++
 mcp-server/tests/unit/tools/test_table.py          |  104 ++
 mcp-server/tests/unit/tools/test_tag.py            |   52 +-
 mcp-server/tests/unit/tools/test_topic.py          |   56 +
 .../apache/gravitino/idp/IdpUserGroupManager.java  |    2 +-
 .../provider/base/IdpGroupMetaBaseSQLProvider.java |    2 +-
 .../base/IdpUserGroupRelBaseSQLProvider.java       |    2 +-
 .../provider/base/IdpUserMetaBaseSQLProvider.java  |    2 +-
 .../base/TestIdpSoftDeleteSQLProvider.java         |   59 ++
 scripts/h2/schema-2.0.0-h2.sql                     |  638 ++++++++++++
 scripts/h2/upgrade-1.3.0-to-2.0.0-h2.sql           |   29 +
 scripts/mysql/schema-2.0.0-mysql.sql               |  625 +++++++++++
 scripts/mysql/upgrade-1.3.0-to-2.0.0-mysql.sql     |   31 +
 scripts/postgresql/schema-2.0.0-postgresql.sql     | 1096 ++++++++++++++++++++
 .../upgrade-1.3.0-to-2.0.0-postgresql.sql          |   33 +
 .../authentication/AuthenticationFilter.java       |   24 +-
 .../authentication/KerberosAuthenticator.java      |    4 +-
 .../authorization/GravitinoAuthorizerProvider.java |    2 +-
 .../server/authorization/MetadataAuthzHelper.java  |  146 ++-
 .../AuthorizationExpressionConstants.java          |   42 +
 .../authorization/jcasbin/JcasbinAuthorizer.java   |  322 ++++--
 .../jcasbin/JcasbinLoadedRolesCache.java           |   22 +-
 .../apache/gravitino/server/web/JettyServer.java   |   14 +-
 .../authentication/TestAuthenticationFilter.java   |   80 ++
 .../authentication/TestKerberosAuthenticator.java  |    4 +-
 .../authorization/TestMetadataAuthzHelper.java     |  314 ++++++
 .../jcasbin/TestJcasbinAuthorizer.java             |  551 +++++++++-
 .../apache/gravitino/server/web/ConfigServlet.java |   38 +-
 .../server/web/rest/ExceptionHandlers.java         |   10 +
 .../gravitino/server/web/rest/GroupOperations.java |   45 +-
 .../gravitino/server/web/rest/OwnerOperations.java |    4 +-
 .../server/web/rest/PermissionOperations.java      |    4 +-
 .../server/web/rest/SchemaOperations.java          |    2 +-
 .../gravitino/server/web/rest/UserOperations.java  |   15 +-
 .../gravitino/server/web/TestConfigServlet.java    |   39 +
 .../server/web/rest/TestGroupOperations.java       |  112 ++
 .../web/rest/TestMetadataObjectTagOperations.java  |  262 ++++-
 .../server/web/rest/TestUserOperations.java        |   34 +
 .../TestGroupAuthorizationExpression.java          |   66 ++
 settings.gradle.kts                                |    2 +
 .../authorization/AuthorizationTable.java          |  193 ++++
 ...avitinoAuthorizationSparkSessionExtensions.java |   96 ++
 .../authorization/RequiredPrivilegesCheck.java     |   46 +
 .../spark/connector/catalog/BaseCatalog.java       |   35 +-
 .../spark/connector/jdbc/GravitinoJdbcCatalog.java |    5 +
 .../connector/jdbc/JdbcPropertiesConverter.java    |    8 +-
 .../connector/plugin/GravitinoDriverPlugin.java    |    8 +-
 .../connector/version/CatalogNameAdaptor.java      |    8 +-
 .../authorization/TestAuthorizationTable.java      |  101 ++
 .../authorization/TestRequiredPrivilegesCheck.java |   75 ++
 .../TestRequiredPrivilegesSparkResolution.java     |  184 ++++
 .../catalog/TestBaseCatalogAuthorization.java      |  177 ++++
 .../jdbc/TestJdbcPropertiesConverter.java          |   23 +
 .../plugin/TestGravitinoDriverPlugin.java          |   27 +
 .../GravitinoPostgreSqlCatalogSpark33.java         |    2 +-
 .../connector/version/TestCatalogNameAdaptor.java  |    8 +
 .../GravitinoPostgreSqlCatalogSpark34.java         |    2 +-
 .../connector/version/TestCatalogNameAdaptor.java  |    8 +
 .../GravitinoPostgreSqlCatalogSpark35.java         |    2 +-
 .../connector/version/TestCatalogNameAdaptor.java  |    8 +
 .../connector/integration/test/TrinoQueryIT.java   |    5 +-
 .../integration/test/TrinoQueryITBase.java         |   28 +-
 .../integration/test/TrinoQueryTestTool.java       |    6 +
 .../trino-test-tools/trino_integration_test.sh     |   19 +
 .../gravitino/trino/connector/GravitinoConfig.java |   32 +-
 .../trino/connector/GravitinoConnectorFactory.java |    9 +-
 .../connector/GravitinoConnectorPluginManager.java |   14 +-
 .../gravitino/trino/connector/GravitinoHandle.java |    4 +-
 .../trino/connector/catalog/CatalogRegister.java   |    9 +-
 .../test/web/ui/CatalogsPageDorisTest.java         |    3 +-
 .../integration/test/web/ui/CatalogsPageTest.java  |    9 +-
 web-v2/web/package.json                            |    2 +-
 web-v2/web/src/app/login/components/BasicLogin.js  |  103 ++
 .../web/src/app/login/components/DefaultLogin.js   |   78 +-
 web-v2/web/src/app/login/components/SimpleLogin.js |   55 +
 web-v2/web/src/app/login/page.js                   |   48 +-
 web-v2/web/src/app/metalakes/page.js               |    3 +-
 web-v2/web/src/app/rootLayout/UserSetting.js       |    3 +-
 web-v2/web/src/components/StyledToast.js           |    6 +-
 web-v2/web/src/lib/api/auth/index.js               |   14 +
 web-v2/web/src/lib/provider/session.js             |    8 +
 web-v2/web/src/lib/store/auth/index.js             |   71 +-
 web-v2/web/src/lib/utils/axios/index.js            |   30 +-
 .../web/src/lib/utils/serviceAdmins.js             |   20 +-
 .../test/web/ui/CatalogsPageDorisTest.java         |    3 +-
 .../integration/test/web/ui/CatalogsPageTest.java  |    9 +-
 689 files changed, 43527 insertions(+), 4921 deletions(-)
 copy mcp-server/mcp_server/client/catalog_operation.py => 
.github/workflows/asf-allowlist-check.yml (57%)
 create mode 100644 .github/workflows/contrib-catalog-test.yml
 create mode 100644 
api/src/main/java/org/apache/gravitino/credential/COSSecretKeyCredential.java
 create mode 100644 
api/src/main/java/org/apache/gravitino/encryption/kms/KmsApiIdentifiers.java
 create mode 100644 
api/src/main/java/org/apache/gravitino/encryption/kms/KmsReference.java
 create mode 100644 
api/src/test/java/org/apache/gravitino/encryption/kms/TestKmsApiIdentifiers.java
 create mode 100644 
api/src/test/java/org/apache/gravitino/encryption/kms/TestKmsReference.java
 create mode 100644 bundles/tencent-bundle/build.gradle.kts
 copy {catalogs/hadoop-common => bundles/tencent}/build.gradle.kts (61%)
 create mode 100644 
bundles/tencent/src/main/java/org/apache/gravitino/cos/credential/COSSecretKeyProvider.java
 create mode 100644 
bundles/tencent/src/main/java/org/apache/gravitino/cos/fs/COSCredentialsProvider.java
 create mode 100644 
bundles/tencent/src/main/java/org/apache/gravitino/cos/fs/COSFileSystemProvider.java
 create mode 100644 
bundles/tencent/src/main/java/org/apache/gravitino/cos/fs/COSUtils.java
 copy integration-test-common/docker-script/inspect_ip.sh => 
bundles/tencent/src/main/resources/META-INF/services/org.apache.gravitino.catalog.hadoop.fs.FileSystemProvider
 (82%)
 mode change 100755 => 100644
 copy integration-test-common/docker-script/inspect_ip.sh => 
bundles/tencent/src/main/resources/META-INF/services/org.apache.gravitino.credential.CredentialProvider
 (82%)
 mode change 100755 => 100644
 create mode 100644 
bundles/tencent/src/test/java/org/apache/gravitino/cos/credential/TestCOSCredentialProvider.java
 create mode 100644 
bundles/tencent/src/test/java/org/apache/gravitino/cos/fs/TestCOSCredentialsProvider.java
 create mode 100644 
bundles/tencent/src/test/java/org/apache/gravitino/cos/fs/TestCOSFileSystemProvider.java
 create mode 100644 
catalogs-contrib/catalog-jdbc-clickhouse/src/test/java/org/apache/gravitino/catalog/clickhouse/operations/TestClickHouseTableOperationsUnit.java
 create mode 100644 
catalogs/catalog-common/src/main/java/org/apache/gravitino/credential/config/COSCredentialConfig.java
 copy 
catalogs-contrib/catalog-jdbc-clickhouse/src/main/java/org/apache/gravitino/catalog/clickhouse/converter/TypeUtils.java
 => 
catalogs/catalog-common/src/main/java/org/apache/gravitino/storage/COSProperties.java
 (52%)
 create mode 100644 
catalogs/catalog-fileset/src/test/java/org/apache/gravitino/catalog/fileset/integration/test/FilesetCOSCatalogIT.java
 create mode 100644 
catalogs/catalog-jdbc-common/src/test/java/org/apache/gravitino/catalog/jdbc/utils/TestJdbcConnectorUtils.java
 create mode 100644 
catalogs/catalog-jdbc-doris/src/test/java/org/apache/gravitino/catalog/doris/integration/test/CatalogDoris3xIT.java
 create mode 100644 
catalogs/catalog-jdbc-doris/src/test/java/org/apache/gravitino/catalog/doris/integration/test/CatalogDoris4xIT.java
 copy 
spark-connector/spark-common/src/test/java/org/apache/gravitino/spark/connector/plugin/TestGravitinoDriverPlugin.java
 => 
catalogs/catalog-jdbc-doris/src/test/java/org/apache/gravitino/catalog/doris/operation/TestDorisDatabaseOperationsSqlGeneration.java
 (60%)
 copy 
spark-connector/spark-common/src/test/java/org/apache/gravitino/spark/connector/plugin/TestGravitinoDriverPlugin.java
 => 
catalogs/catalog-jdbc-postgresql/src/test/java/org/apache/gravitino/catalog/postgresql/operation/TestPostgreSqlSchemaOperationsSqlGeneration.java
 (57%)
 create mode 100644 
catalogs/catalog-lakehouse-generic/src/test/java/org/apache/gravitino/catalog/lakehouse/lance/TestLanceConcurrentRepairStress.java
 create mode 100644 
catalogs/catalog-lakehouse-iceberg/src/test/java/org/apache/gravitino/catalog/lakehouse/iceberg/TestIcebergTablePropertiesMetadata.java
 create mode 100644 
catalogs/catalog-lakehouse-iceberg/src/test/java/org/apache/gravitino/catalog/lakehouse/iceberg/integration/test/IcebergClassLoaderPoolIT.java
 delete mode 100644 
catalogs/catalog-lakehouse-paimon/src/main/java/org/apache/gravitino/catalog/lakehouse/paimon/authentication/kerberos/KerberosClient.java
 copy catalogs/{hadoop-common => hadoop-auth}/build.gradle.kts (77%)
 create mode 100644 
catalogs/hadoop-auth/src/main/java/org/apache/gravitino/catalog/hadoop/auth/KerberosAuthUtils.java
 create mode 100644 
catalogs/hadoop-auth/src/main/java/org/apache/gravitino/catalog/hadoop/auth/KerberosClient.java
 create mode 100644 
catalogs/hadoop-auth/src/test/java/org/apache/gravitino/catalog/hadoop/auth/TestKerberosAuthUtils.java
 create mode 100644 
catalogs/hadoop-auth/src/test/java/org/apache/gravitino/catalog/hadoop/auth/TestKerberosClient.java
 delete mode 100644 
catalogs/hadoop-common/src/main/java/org/apache/gravitino/catalog/hadoop/fs/kerberos/KerberosClient.java
 rename 
catalogs/hive-metastore-common/src/main/java/org/apache/gravitino/hive/kerberos/{KerberosClient.java
 => HmsKerberosClient.java} (66%)
 create mode 100644 
clients/client-java/src/main/java/org/apache/gravitino/client/GenericFunction.java
 create mode 100644 
clients/client-java/src/main/java/org/apache/gravitino/client/GenericView.java
 copy integration-test-common/docker-script/inspect_ip.sh => 
clients/client-python/gravitino/api/rel/dialects.py (77%)
 mode change 100755 => 100644
 copy mcp-server/mcp_server/client/catalog_operation.py => 
clients/client-python/gravitino/api/rel/representation.py (72%)
 create mode 100644 
clients/client-python/gravitino/api/rel/sql_representation.py
 create mode 100644 clients/client-python/gravitino/api/rel/view.py
 create mode 100644 clients/client-python/gravitino/api/rel/view_catalog.py
 create mode 100644 clients/client-python/gravitino/api/rel/view_change.py
 create mode 100644 clients/client-python/gravitino/client/generic_view.py
 create mode 100644 
clients/client-python/gravitino/dto/rel/json_serdes/representation_serdes.py
 copy mcp-server/mcp_server/client/catalog_operation.py => 
clients/client-python/gravitino/dto/rel/representation_dto.py (69%)
 create mode 100644 
clients/client-python/gravitino/dto/rel/sql_representation_dto.py
 create mode 100644 clients/client-python/gravitino/dto/rel/view_dto.py
 create mode 100644 
clients/client-python/gravitino/dto/requests/view_create_request.py
 create mode 100644 
clients/client-python/gravitino/dto/requests/view_update_request.py
 copy docs/open-api/indexes.yaml => 
clients/client-python/gravitino/dto/requests/view_updates_request.py (50%)
 create mode 100644 
clients/client-python/gravitino/dto/responses/view_response.py
 create mode 100644 
clients/client-python/gravitino/exceptions/handlers/view_error_handler.py
 copy clients/client-python/{gravitino => tests/unittests}/api/__init__.py 
(100%)
 copy clients/client-python/{gravitino/api => 
tests/unittests/api/function}/__init__.py (100%)
 copy mcp-server/mcp_server/client/schema_operation.py => 
clients/client-python/tests/unittests/api/function/test_function.py (59%)
 create mode 100644 
clients/client-python/tests/unittests/api/rel/test_sql_representation.py
 create mode 100644 clients/client-python/tests/unittests/api/rel/test_view.py
 create mode 100644 
clients/client-python/tests/unittests/api/rel/test_view_change.py
 copy clients/client-python/{gravitino/api => 
tests/unittests/api/tag}/__init__.py (100%)
 create mode 100644 
clients/client-python/tests/unittests/client/operation_test_fixtures.py
 create mode 100644 
clients/client-python/tests/unittests/dto/rel/test_representation_serdes.py
 create mode 100644 
clients/client-python/tests/unittests/dto/rel/test_sql_representation_dto.py
 create mode 100644 
clients/client-python/tests/unittests/dto/rel/test_view_dto.py
 create mode 100644 
clients/client-python/tests/unittests/dto/requests/test_view_create_request.py
 create mode 100644 
clients/client-python/tests/unittests/dto/requests/test_view_update_request.py
 create mode 100644 
clients/client-python/tests/unittests/dto/responses/test_view_response.py
 copy clients/client-python/{gravitino/api => 
tests/unittests/fixtures}/__init__.py (100%)
 create mode 100644 
clients/client-python/tests/unittests/fixtures/table_fixtures.py
 create mode 100644 
clients/client-python/tests/unittests/test_generic_function.py
 create mode 100644 clients/client-python/tests/unittests/test_generic_view.py
 create mode 100644 
clients/filesystem-hadoop3/src/test/java/org/apache/gravitino/filesystem/hadoop/integration/test/GravitinoVirtualFileSystemCOSIT.java
 create mode 100644 
common/src/main/java/org/apache/gravitino/auth/ActiveRoles.java
 create mode 100644 
common/src/main/java/org/apache/gravitino/auth/ActiveRolesParser.java
 copy api/src/main/java/org/apache/gravitino/authorization/Group.java => 
common/src/main/java/org/apache/gravitino/auth/IllegalActiveRolesException.java 
(51%)
 create mode 100644 
common/src/main/java/org/apache/gravitino/dto/encryption/kms/KmsReferenceDTO.java
 create mode 100644 
common/src/main/java/org/apache/gravitino/encryption/kms/KmsAuthenticationException.java
 create mode 100644 
common/src/main/java/org/apache/gravitino/encryption/kms/KmsClient.java
 create mode 100644 
common/src/main/java/org/apache/gravitino/encryption/kms/KmsClientFactory.java
 create mode 100644 
common/src/main/java/org/apache/gravitino/encryption/kms/KmsConfigurationException.java
 create mode 100644 
common/src/main/java/org/apache/gravitino/encryption/kms/KmsKeyProperties.java
 create mode 100644 
common/src/main/java/org/apache/gravitino/utils/RemoteFileDownloader.java
 create mode 100644 common/src/main/java/org/apache/gravitino/utils/SafeUri.java
 create mode 100644 
common/src/test/java/org/apache/gravitino/auth/TestActiveRoles.java
 create mode 100644 
common/src/test/java/org/apache/gravitino/auth/TestActiveRolesParser.java
 create mode 100644 
common/src/test/java/org/apache/gravitino/dto/encryption/kms/TestKmsReferenceDTO.java
 create mode 100644 
common/src/test/java/org/apache/gravitino/encryption/kms/TestFakeKmsClient.java
 create mode 100644 
common/src/test/java/org/apache/gravitino/encryption/kms/TestKmsClient.java
 create mode 100644 
common/src/test/java/org/apache/gravitino/utils/TestRemoteFileDownloader.java
 create mode 100644 
common/src/test/java/org/apache/gravitino/utils/TestSafeUri.java
 create mode 100644 
common/src/testFixtures/java/org/apache/gravitino/encryption/kms/FakeKmsClient.java
 create mode 100644 
common/src/testFixtures/java/org/apache/gravitino/encryption/kms/TestKmsClientContract.java
 copy 
spark-connector/spark-common/src/test/java/org/apache/gravitino/spark/connector/plugin/TestGravitinoDriverPlugin.java
 => 
common/src/testFixtures/java/org/apache/gravitino/encryption/kms/TestKmsClientFactoryContract.java
 (63%)
 create mode 100644 
core/src/main/java/org/apache/gravitino/SupportsExternalIdOperations.java
 copy 
core/src/main/java/org/apache/gravitino/authorization/{UserGroupManager.java => 
UserGroupExternalManager.java} (50%)
 create mode 100644 
core/src/main/java/org/apache/gravitino/encryption/kms/KmsClientRegistry.java
 create mode 100644 
core/src/main/java/org/apache/gravitino/encryption/kms/KmsConfig.java
 create mode 100644 
core/src/main/java/org/apache/gravitino/listener/api/event/DisableUserEvent.java
 create mode 100644 
core/src/main/java/org/apache/gravitino/listener/api/event/DisableUserFailureEvent.java
 copy core/src/main/java/org/apache/gravitino/listener/api/{info/UserInfo.java 
=> event/DisableUserPreEvent.java} (50%)
 create mode 100644 
core/src/main/java/org/apache/gravitino/listener/api/event/EnableUserEvent.java
 create mode 100644 
core/src/main/java/org/apache/gravitino/listener/api/event/EnableUserFailureEvent.java
 copy core/src/main/java/org/apache/gravitino/listener/api/{info/UserInfo.java 
=> event/EnableUserPreEvent.java} (50%)
 create mode 100644 
core/src/main/java/org/apache/gravitino/listener/api/event/GetGroupByExternalIdEvent.java
 copy core/src/main/java/org/apache/gravitino/listener/api/{info/UserInfo.java 
=> event/GetGroupByExternalIdFailureEvent.java} (53%)
 copy core/src/main/java/org/apache/gravitino/listener/api/{info/UserInfo.java 
=> event/GetGroupByExternalIdPreEvent.java} (53%)
 create mode 100644 
core/src/main/java/org/apache/gravitino/listener/api/event/GetUserByExternalIdEvent.java
 create mode 100644 
core/src/main/java/org/apache/gravitino/listener/api/event/GetUserByExternalIdFailureEvent.java
 create mode 100644 
core/src/main/java/org/apache/gravitino/listener/api/event/GetUserByExternalIdPreEvent.java
 create mode 100644 
core/src/main/java/org/apache/gravitino/listener/api/event/RemoveGroupByExternalIdEvent.java
 copy core/src/main/java/org/apache/gravitino/listener/api/{info/UserInfo.java 
=> event/RemoveGroupByExternalIdFailureEvent.java} (53%)
 copy core/src/main/java/org/apache/gravitino/listener/api/{info/UserInfo.java 
=> event/RemoveGroupByExternalIdPreEvent.java} (53%)
 create mode 100644 
core/src/main/java/org/apache/gravitino/listener/api/event/RemoveUserByExternalIdEvent.java
 create mode 100644 
core/src/main/java/org/apache/gravitino/listener/api/event/RemoveUserByExternalIdFailureEvent.java
 create mode 100644 
core/src/main/java/org/apache/gravitino/listener/api/event/RemoveUserByExternalIdPreEvent.java
 copy api/src/main/java/org/apache/gravitino/authorization/Group.java => 
core/src/main/java/org/apache/gravitino/storage/relational/SupportsOrphanedRelationCleanup.java
 (51%)
 create mode 100644 
core/src/main/java/org/apache/gravitino/storage/relational/mapper/OrphanedMetadataObjectRelationMapper.java
 create mode 100644 
core/src/main/java/org/apache/gravitino/storage/relational/mapper/OrphanedMetadataObjectRelationSQLProvider.java
 create mode 100644 
core/src/main/java/org/apache/gravitino/storage/relational/service/OrphanedMetadataObjectRelationService.java
 create mode 100644 
core/src/main/java/org/apache/gravitino/utils/ClassLoaderKey.java
 create mode 100644 
core/src/main/java/org/apache/gravitino/utils/ClassLoaderPool.java
 create mode 100644 
core/src/main/java/org/apache/gravitino/utils/PooledClassLoaderEntry.java
 create mode 100644 
core/src/test/java/org/apache/gravitino/TestGravitinoEnvKmsClientRegistry.java
 create mode 100644 
core/src/test/java/org/apache/gravitino/catalog/TestCapabilityHelpers.java
 create mode 100644 
core/src/test/java/org/apache/gravitino/catalog/TestClassLoaderPoolIntegration.java
 create mode 100644 
core/src/test/java/org/apache/gravitino/encryption/kms/TestKmsClientRegistry.java
 create mode 100644 
core/src/test/java/org/apache/gravitino/encryption/kms/TestKmsConfig.java
 create mode 100644 
core/src/test/java/org/apache/gravitino/storage/relational/TestRelationalGarbageCollector.java
 create mode 100644 
core/src/test/java/org/apache/gravitino/storage/relational/service/TestOrphanedMetadataObjectRelationService.java
 create mode 100644 
core/src/test/java/org/apache/gravitino/utils/TestClassLoaderPool.java
 create mode 100644 design-docs/gravitino-entity-cache-multinode-design.md
 create mode 100644 design-docs/gravitino-role-assumption.md
 create mode 100644 design-docs/images/coherence-gate.png
 create mode 100644 design-docs/images/entity-key-invalidation.png
 create mode 100644 design-docs/images/roadmap.png
 create mode 100644 design-docs/images/shared-cache.png
 create mode 100644 
dev/charts/gravitino-iceberg-rest-server/templates/httproute.yaml
 create mode 100644 
dev/charts/gravitino-iceberg-rest-server/tests/httproute_test.yaml
 create mode 100644 
dev/charts/gravitino-lance-rest-server/templates/httproute.yaml
 create mode 100644 
dev/charts/gravitino-lance-rest-server/tests/httproute_test.yaml
 create mode 100644 dev/charts/gravitino/templates/httproute.yaml
 create mode 100644 dev/charts/gravitino/tests/httproute_test.yaml
 create mode 100644 docs/fileset-catalog-with-cos.md
 mode change 100644 => 100755 docs/security/credential-vending.md
 create mode 100644 
iceberg/iceberg-common/src/main/java/org/apache/gravitino/iceberg/common/ClosableJdbcCatalog.java
 delete mode 100644 
iceberg/iceberg-common/src/main/java/org/apache/gravitino/iceberg/common/authentication/kerberos/KerberosClient.java
 create mode 100644 
iceberg/iceberg-common/src/main/java/org/apache/gravitino/iceberg/common/utils/KerberosCatalogUtils.java
 create mode 100644 
iceberg/iceberg-common/src/main/java/org/apache/iceberg/MetastoreRegisterTableUtils.java
 create mode 100644 
iceberg/iceberg-common/src/test/java/org/apache/gravitino/iceberg/common/TestClosableJdbcCatalog.java
 create mode 100644 
iceberg/iceberg-common/src/test/java/org/apache/gravitino/iceberg/common/utils/TestKerberosCatalogUtils.java
 create mode 100644 
iceberg/iceberg-common/src/test/java/org/apache/iceberg/TestMetastoreRegisterTableUtils.java
 create mode 100644 
iceberg/iceberg-rest-server/src/main/java/org/apache/gravitino/listener/api/event/IcebergRegisterViewEvent.java
 create mode 100644 
iceberg/iceberg-rest-server/src/main/java/org/apache/gravitino/listener/api/event/IcebergRegisterViewFailureEvent.java
 create mode 100644 
iceberg/iceberg-rest-server/src/main/java/org/apache/gravitino/listener/api/event/IcebergRegisterViewPreEvent.java
 create mode 100644 
iceberg/iceberg-rest-server/src/test/java/org/apache/gravitino/iceberg/integration/test/IcebergRestKerberosJdbcCatalogIT.java
 copy 
iceberg/iceberg-rest-server/src/test/java/org/apache/gravitino/iceberg/integration/test/{IcebergRestKerberosHiveWithUserImpersonationCatalogIT.java
 => IcebergRestKerberosJdbcWithUserImpersonationCatalogIT.java} (87%)
 create mode 100644 
iceberg/iceberg-rest-server/src/test/java/org/apache/gravitino/iceberg/integration/test/IcebergRestKerberosTestEnv.java
 copy integration-test-common/docker-script/{shutdown.sh => compose-env.sh} 
(69%)
 mode change 100755 => 100644
 copy integration-test-common/docker-script/{docker-compose.yaml => 
docker-compose-trino-mysql.yaml} (51%)
 create mode 100644 
integration-test-common/src/test/java/org/apache/gravitino/integration/test/TestMiniGravitino.java
 create mode 100644 
integration-test-common/src/test/java/org/apache/gravitino/integration/test/container/DorisImageName.java
 copy 
spark-connector/v3.4/spark/src/main/java/org/apache/gravitino/spark/connector/jdbc/postgresql/GravitinoPostgreSqlCatalogSpark34.java
 => 
lance/lance-rest-server/src/main/java/org/apache/gravitino/lance/LanceJettyServer.java
 (63%)
 create mode 100644 
lance/lance-rest-server/src/main/java/org/apache/gravitino/lance/service/LanceAuthenticationFilter.java
 create mode 100644 
lance/lance-rest-server/src/main/java/org/apache/gravitino/lance/service/LanceHealthCheckPathMatcher.java
 create mode 100644 
lance/lance-rest-server/src/main/java/org/apache/gravitino/lance/service/rest/LanceHealthOperations.java
 copy 
iceberg/iceberg-rest-server/src/test/java/org/apache/gravitino/iceberg/service/TestIcebergAuthenticationFilter.java
 => 
lance/lance-rest-server/src/test/java/org/apache/gravitino/lance/service/TestLanceAuthenticationFilter.java
 (57%)
 create mode 100644 
lance/lance-rest-server/src/test/java/org/apache/gravitino/lance/service/rest/TestLanceHealthOperations.java
 create mode 100644 
maintenance/optimizer/src/main/java/org/apache/gravitino/maintenance/optimizer/recommender/util/TableMetadataTriggerExpressionUtils.java
 create mode 100644 
maintenance/optimizer/src/test/java/org/apache/gravitino/maintenance/optimizer/recommender/util/TestTableMetadataTriggerExpressionUtils.java
 copy mcp-server/mcp_server/client/{table_operation.py => 
partition_operation.py} (58%)
 copy mcp-server/mcp_server/client/plain/{plain_rest_client_table_operation.py 
=> plain_rest_client_partition_operation.py} (60%)
 create mode 100644 mcp-server/mcp_server/tools/partition.py
 create mode 100644 mcp-server/tests/unit/tools/test_partition.py
 create mode 100644 
plugins/idp-basic/src/test/java/org/apache/gravitino/idp/storage/mapper/provider/base/TestIdpSoftDeleteSQLProvider.java
 create mode 100644 scripts/h2/schema-2.0.0-h2.sql
 create mode 100644 scripts/h2/upgrade-1.3.0-to-2.0.0-h2.sql
 create mode 100644 scripts/mysql/schema-2.0.0-mysql.sql
 create mode 100644 scripts/mysql/upgrade-1.3.0-to-2.0.0-mysql.sql
 create mode 100644 scripts/postgresql/schema-2.0.0-postgresql.sql
 create mode 100644 scripts/postgresql/upgrade-1.3.0-to-2.0.0-postgresql.sql
 create mode 100644 
server/src/test/java/org/apache/gravitino/server/web/rest/authorization/TestGroupAuthorizationExpression.java
 create mode 100644 
spark-connector/spark-common/src/main/java/org/apache/gravitino/spark/connector/authorization/AuthorizationTable.java
 create mode 100644 
spark-connector/spark-common/src/main/java/org/apache/gravitino/spark/connector/authorization/GravitinoAuthorizationSparkSessionExtensions.java
 create mode 100644 
spark-connector/spark-common/src/main/java/org/apache/gravitino/spark/connector/authorization/RequiredPrivilegesCheck.java
 create mode 100644 
spark-connector/spark-common/src/test/java/org/apache/gravitino/spark/connector/authorization/TestAuthorizationTable.java
 create mode 100644 
spark-connector/spark-common/src/test/java/org/apache/gravitino/spark/connector/authorization/TestRequiredPrivilegesCheck.java
 create mode 100644 
spark-connector/spark-common/src/test/java/org/apache/gravitino/spark/connector/authorization/TestRequiredPrivilegesSparkResolution.java
 create mode 100644 
spark-connector/spark-common/src/test/java/org/apache/gravitino/spark/connector/catalog/TestBaseCatalogAuthorization.java
 create mode 100644 web-v2/web/src/app/login/components/BasicLogin.js
 create mode 100644 web-v2/web/src/app/login/components/SimpleLogin.js
 copy 
spark-connector/spark-common/src/test/java/org/apache/gravitino/spark/connector/plugin/TestGravitinoDriverPlugin.java
 => web-v2/web/src/lib/utils/serviceAdmins.js (65%)

Reply via email to