This is an automated email from the ASF dual-hosted git repository.
jerryshao pushed a change to branch
dependabot/pip/clients/client-python/banks-2.4.2
in repository https://gitbox.apache.org/repos/asf/gravitino.git
from 387cf710c5 build(deps-dev): bump banks in /clients/client-python
add 9170a770b9 [#11368] fix(docker): Build bundle jars for Docker image
(#11388)
add 2311c4be8f [11391] fix(bundles): run FilesetS3CatalogIT hangs on macOS
(#11393)
add aef7acaf84 [#11212] test(authz): add CI workflow for multi-instance
consistency (#11213)
add 62e135a78f [#11141] improvement(ui):Change the OIDC callback address
based on NEXT_PUBLIC_BASE and catch error (#11142)
add 2adfe2321b [#11363] feat(iceberg-rest): wire async cleanup into the
REST drop flow (#11364)
add 0e45d7b3bc [#11283] fix(docker): Add IRC env mappings to Gravitino
server image (#11328)
add 64e8faf4ac [#11287] feat(spark-connector): Add view support for Hive
catalog (#11288)
add 0d7e459d60 [#11406] fix(core): reload closed catalog cache wrapper
(#11407)
add 1637d27fae [#11352] fix(glue): improve error logging for Iceberg
metadata loading (#11359)
add 95be458a81 [#11412] feat(auth): Add initialize(Config) to
PrincipalMapper and GroupMapper interfaces (#11411)
add 7198460f46 [#10457] fix(hive): Exclude vulnerable log4j transitive
deps from hive-metastore-common (#11414)
add ccb0dedce2 [#11345] improvement(deps): Exclude unused legacy netty
dependency from hive-metastore2-libs (#11346)
add e9a2276470 [MINOR] Bump the version to 1.4.0-SNAPSHOT (#11336)
add 44d01f47b6 [#11360] fix(server): Ignore quote-only custom filter
entries (#11361)
add c49183662b [#11185] feat(spark-connector): Add Glue catalog support
for Spark connector (#11186)
add dc87b596db [#10929]docs(deploy): Add GCS configuration guide for Helm
Chart and Docker deployments (#11421)
add 651ceea8fc [#11403] improvement(authz): use per-request cache for
group owner check in JcasbinAuthorizer (#11404)
add 3ce2387bcd [#11231] fix(spark-connector): handle JDBC timestamp type
(#11424)
add 578355911b [#11245] web-v2(Improvement): UI supports hierarchical
schemasupport (#11257)
add 768213d305 [#11353] fix(hive): fix three ClassLoader/Kerberos bugs
causing HMS connection failure (#11355)
add 1bf667dd39 [#10477] fix(flink-paimon): Paimon FlinkCatalog to fix
Hive partition updates (#10475)
add a2839877d3 [#11172] fix(audit): skip audit events for internal Iceberg
REST metadata operations (#11188)
add e485964f77 [#11090] test(helm): Add unit tests for Gravitino chart
(#11091)
add 35fdb43517 [#11262] fix: Clean up orphaned schema entities after table
or view drop (#11362)
add f31c2a0b11 [#11301] fix(catalog): guard
ClassLoaderResourceCleanerUtils against shared-class static-field mutation
(#11431)
add aca4b45fcc [MINOR] Fix Python formatting in client and matrix script
(#11444)
add 80366f1652 docs(style): codify rules and sweep across the docs tree
(#11205)
add 91ed7a2e75 [#10990] feat(iceberg-rest): Vended credential refresh for
S3, GCS, OSS, and ADLS (#11294)
add d8e65d749f [#11350] improvement(deps): Upgrade h2 database to 2.2.224
(#11351)
add d6adfbb01c [#11401] fix(trino-connector): drop_catalog falls back to
server when local cache misses (#11417)
add 5afe6cddbc [#11093][#11120]docs: Add IRC PostgreSQL backup step and
Helm chart upgrade guide to how-to-upgrade.md (#11121)
add 0cd4e3eca8 [MINOR] Remove used constant `PRECISION_SECOND` in
`JdbcTypeConverter` (#11452)
add 9419878b5d [#11138][#11137] refactor(iceberg-rest): federation
handling via FederatedCatalogWrapper subclass (#11367)
add 1d365c7cd6 [#9954] fix(lakehouse-generic): Enhance purgeTable logic to
handle external tables and missing locations. (#9967)
add 903070e181 [#11335] setting web v2 ui as default (#11458)
add 65c4ed2978 [#11136] fix(iceberg): add REST catalog backend HTTP
timeout configs (#11270)
add dde3b633bf [#11342] web-v2(UI): support glue catalog UI (#11418)
add baebcb2bc6 [#11348] feat(flink-connector): Flink connector view
support to Iceberg and Paimon catalogs (#11349)
add dc912f9754 [#11329] fix(catalog-glue): Support complex types for
Iceberg tables in Glue catalog (#11429)
add 7fac44b52e [MINOR] docs: align Markdown table columns (#11456)
add 746e60da41 [#9517] fix(hive-catalog): Pre-resolve metastore URI
hostnames to avoid Docker FQDN issue (#11455)
add eff1373938 [#11468] fix(lance): remove lance-core from lance-common
runtime deps to reduce binary size (#11477)
add 6932ccaca1 [#11171] improvement(core): add JSON formatter for audit
logs (#11343)
add 21c348be20 [#11027][#11178] fix(lance): Refresh Lance table schema
from dataset on load (#11176)
add f1cbd7479d [#11469] fix(catalog-glue): Treat empty catalog ID as unset
(#11473)
add d42868abb2 [#11434] fix(idp): Validate name length at API layer before
DB persist (#11493)
add 3b1249548e [MINOR] fix(helm): Remove hardcoded version in chart unit
tests (#11494)
add a3fbbc906f [#11480] fix(build): bump slf4j-api to 2.0.17 to eliminate
duplicate jars in distribution (#11484)
add eb2e2c9091 [#9374] fix(spark): Fix MySQL datetime filter pushdown in
Spark JDBC connector (#11451)
add b3c6f92f04 [MINOR] improvement(CI): Run multi-instance consistency
test manually (#11500)
add 5c43ca8727 [#11409] fix(idp): Validate incompatible simple mode at
startup (#11497)
add 69e90539ed [#11235] fix display iceberg table bucketed table partition
numBuckets (#11479)
add 3cb4b7ef2a [#11518] docs(authn): Add Basic auth configuration doc for
Spark, Flink, and Trino (#11519)
add d7fe5f5195 [#11443] feat(auth): Add Basic auth support for Spark,
Flink, and Trino connectors (#11457)
add dc3b3ea25a fix(docs): remove MDX-incompatible curly braces in
lance-rest-integration doc (#11520)
add fcb3bb4c5b [#11122 ][#11112] docs(upgrade): Improve PostgreSQL backup
format and add rollback instructions (#11461)
add 976cfa6d64 [#11303] fix(gvfs): do not close cached FileSystem on
eviction (defer close to GVFS shutdown) (#11304)
add 64433f98b1 [#11498] improvement(core): Reuse catalog cache when
resolving properties (#11499)
add becbd50267 [MINOR] docs: Document default ResolvingFileIO (#11511)
add 93dff8d6b4 build(deps): bump python-multipart from 0.0.20 to 0.0.27 in
/mcp-server (#11536)
add b433b20c8a [#10457][followup]fix(deps): Exclude log4j 1.x globally
(CVE-2020-9493) (#11506)
add 491d244df0 [#11525] improvement(license): Add AWS SDK license entries
for catalog-glue (#11526)
add b01fe805c6 web-v2(license): minor license update (#11522)
add 99c8ae5247 [#11542] test(client-java): Configure Basic authenticator
in BasicAuthOperationsIT (#11543)
add 9478e3a222 build(deps-dev): bump vitest from 2.1.9 to 3.2.6 in
/web/web (#11528)
add 90c5bbc96c [#11263] feat(authz): Extend credential vending to
Hive/Iceberg/Glue/JDBC catalog types (#11264)
add b586847a45 build(deps): bump fastmcp from 2.14.5 to 3.2.0 in
/mcp-server (#11527)
add ee20a571b0 [#11550] docs(authn): Clarify Web UI Basic auth limits and
relocate BasicAuthOperationsIT (#11551)
add 26dfd9b2d2 [#11513] fix(catalog-mysql): Fix MySQL catalog incompatible
with MariaDB due to case-sensitive CURRENT_TIMESTAMP check (#11510)
add 732adb185b Trino Gravitino connector throws NullPointerException
#11365 (#11426)
add dda2c21623 [#11538] fix(catalog-glue): Support RENAME TABLE for
Iceberg tables (#11555)
add 94d6045856 [#11268] fix(helm): enterprise readiness cleanups and
follow-up fixes for chart (#11514)
add 20cf5620e7 [#11532] fix(docker): avoid duplicate image layer from
recursive chmod (#11533)
add e3e8ff9d3c minor(web-v2): upgrade dependency versions (#11552)
add ff37e382eb [#11342] web-v2(UI): glue catalog table follow up issue
(#11485)
add ff3f385b4f [#11534] fix(spark-connector): GravitinoGlueCatalog does
not invalidate Iceberg SparkCatalog cache after table mutations (#11559)
add b98b4be9f8 [#10669] feat(iceberg-rest): Add pagination support for
list endpoints (#10671)
add e92be17df7 build(deps): bump starlette from 0.47.2 to 1.0.1 in
/mcp-server (#11587)
add 20d6c7289a build(deps): bump black from 26.1.0 to 26.3.1 in
/clients/client-python (#10951)
add 23a88d69e5 build(deps): bump cryptography from 45.0.5 to 46.0.7 in
/mcp-server (#11586)
add 0059250ab9 [MINOR] docs: Reorganize Iceberg REST service documentation
(#11516)
add 99399a8245 [#11578] fix(lance): Gravitino Lance REST does not support
describeTable(version), causing Spark Lance write failures (#11579)
add 5259e9c5f6 [#10909] fix(client): Fix list/load inconsistency for
schema and table names containing dots (#11597)
add 8e93bde39d [#11592] fix(spark-connector): Fix INSERT into Glue Iceberg
tables with time-based partition transforms (#11593)
add b242db2f01 [#11602] fix(test): Fix flaky TopicAuthorizationIT (#11607)
add 4b1b3910c1 Merge branch 'main' into
dependabot/pip/clients/client-python/banks-2.4.2
No new revisions were added by this update.
Summary of changes:
.claude/skills/gravitino-docs-refine/README.md | 68 ++
.claude/skills/gravitino-docs-refine/SKILL.md | 75 ++
.claude/skills/gravitino-docs-refine/STYLE.md | 204 ++++
.../gravitino-docs-refine/scripts/check_links.py | 211 ++++
.../gravitino-docs-refine/scripts/heading_audit.py | 111 +++
.../scripts/heading_spacing_audit.py | 92 ++
.../gravitino-docs-refine/scripts/intro_audit.py | 89 ++
.../scripts/title_h2_audit.py | 91 ++
.github/workflows/chart-test.yaml | 4 +
.github/workflows/idp-basic-test.yml | 3 +
.../workflows/lance-compatibility-matrix-test.yml | 4 +-
.../workflows/multi-instance-consistency-test.yml | 85 ++
.gitignore | 5 +
LICENSE.bin | 3 +
NOTICE.bin | 20 +
README.md | 12 +-
.../gravitino/credential/ADLSTokenCredential.java | 2 +-
.../gravitino/credential/AwsIrsaCredential.java | 9 +-
.../gravitino/credential/GCSTokenCredential.java | 2 +-
.../gravitino/credential/JdbcCredential.java | 5 +-
.../credential/OSSSecretKeyCredential.java | 2 +-
.../gravitino/credential/OSSTokenCredential.java | 2 +-
.../credential/S3SecretKeyCredential.java | 2 +-
.../gravitino/credential/S3TokenCredential.java | 2 +-
bin/gravitino.sh.template | 10 +-
build.gradle.kts | 5 +
.../s3/credential/AwsIrsaCredentialGenerator.java | 10 +-
.../gravitino/s3/fs/S3FileSystemProvider.java | 3 +-
.../org/apache/gravitino/auth/AuthProperties.java | 11 +
.../gravitino/catalog/glue/GlueConstants.java | 3 +
.../lakehouse/iceberg/IcebergConstants.java | 15 +
.../lakehouse/iceberg/IcebergPropertiesUtils.java | 6 +
.../catalog/lakehouse/paimon/PaimonConstants.java | 4 +
.../utils/ClassLoaderResourceCleanerUtils.java | 84 +-
.../iceberg/TestIcebergPropertiesUtils.java | 17 +
.../utils/TestClassLoaderResourceCleanerUtils.java | 71 ++
.../catalog/fileset/FilesetCatalogOperations.java | 3 +
.../integration/test/FilesetS3CatalogIT.java | 5 +-
catalogs/catalog-glue/build.gradle.kts | 1 +
.../apache/gravitino/catalog/glue/GlueCatalog.java | 31 +
.../catalog/glue/GlueCatalogOperations.java | 25 +-
.../glue/GlueCatalogPropertiesMetadata.java | 4 +-
.../catalog/glue/GlueIcebergTableHelper.java | 81 +-
.../catalog/glue/TestAwsGlueCatalogOperations.java | 4 +-
.../glue/TestGlueCatalogOperationsForIceberg.java | 57 +-
.../catalog/glue/TestGlueIcebergTableHelper.java | 61 ++
.../glue/integration/test/AwsGlueCatalogIT.java | 64 ++
.../catalog/hive/HiveCatalogOperations.java | 2 +
.../hive/HiveCatalogPropertiesMetadata.java | 8 +
.../apache/gravitino/catalog/hive/HiveView.java | 6 +-
.../catalog/hive/HiveViewCatalogOperations.java | 90 +-
.../catalog/hive/TestHiveCatalogOperations.java | 39 +-
.../apache/gravitino/catalog/jdbc/JdbcCatalog.java | 64 +-
.../catalog/jdbc/converter/JdbcTypeConverter.java | 1 -
.../catalog/jdbc/TestJdbcCatalogCredential.java | 32 +
.../MysqlColumnDefaultValueConverter.java | 5 +-
.../mysql/integration/test/CatalogMysqlIT.java | 46 +
.../generic/GenericCatalogPropertiesMetadata.java | 12 +
.../lakehouse/lance/LanceTableOperations.java | 393 +++++++-
.../lakehouse/generic/TestPropertiesMetadata.java | 8 +-
.../lakehouse/lance/TestLanceTableOperations.java | 701 +++++++++++++
.../test/CatalogGenericCatalogLanceIT.java | 79 ++
.../catalog/lakehouse/iceberg/IcebergCatalog.java | 35 +-
.../iceberg/IcebergCatalogPropertiesMetadata.java | 61 +-
.../TestIcebergCatalogPropertiesMetadata.java | 68 ++
.../catalog/lakehouse/paimon/PaimonCatalog.java | 31 +-
.../catalog/lakehouse/paimon/PaimonView.java | 2 +-
catalogs/hive-metastore-common/build.gradle.kts | 6 +-
.../gravitino/hive/client/HiveClientFactory.java | 27 +-
.../org/apache/gravitino/hive/client/Util.java | 47 +
.../gravitino/hive/kerberos/KerberosClient.java | 13 +
.../TestHive2HMSWithKerberosNoImpersonation.java | 59 ++
.../org/apache/gravitino/hive/client/TestUtil.java | 55 +
catalogs/hive-metastore2-libs/build.gradle.kts | 1 +
.../org/apache/gravitino/client/GenericSchema.java | 3 +-
.../org/apache/gravitino/client/HTTPClient.java | 35 +-
.../apache/gravitino/client/RelationalTable.java | 11 +-
.../apache/gravitino/client/TestHTTPClient.java | 53 +
.../test/authorization/TopicAuthorizationIT.java | 35 +-
.../gravitino/client/gravitino_metalake.py | 1 -
clients/client-python/requirements-dev.txt | 2 +-
clients/client-python/requirements.txt | 2 +-
.../client-python/scripts/run_lance_ray_matrix.py | 8 +-
clients/client-python/setup.py | 2 +-
clients/filesystem-fuse/Cargo.toml | 2 +-
.../filesystem/hadoop/BaseGVFSOperations.java | 68 +-
.../GravitinoVirtualFileSystemConfiguration.java | 30 +
.../gravitino/filesystem/hadoop/TestGvfsBase.java | 216 ++++
.../credential/CredentialPropertyUtils.java | 219 +++-
.../credential/TestCredentialFactory.java | 24 +
.../credential/TestCredentialPropertiesUtils.java | 75 +-
conf/gravitino-env.sh.template | 7 +-
.../java/org/apache/gravitino/GravitinoEnv.java | 98 ++
.../main/java/org/apache/gravitino/UserGroup.java | 22 +-
.../apache/gravitino/audit/AuditLogRedactor.java | 70 ++
.../apache/gravitino/audit/JsonAuditFormatter.java | 84 ++
.../gravitino/audit/v2/SimpleAuditLogV2.java | 3 +-
.../org/apache/gravitino/auth/GroupMapper.java | 11 +
.../apache/gravitino/auth/GroupMapperFactory.java | 37 +-
.../org/apache/gravitino/auth/PrincipalMapper.java | 11 +
.../gravitino/auth/PrincipalMapperFactory.java | 36 +-
.../apache/gravitino/catalog/CatalogManager.java | 33 +-
.../gravitino/catalog/OrphanedSchemaCleanup.java | 59 ++
.../catalog/SchemaOperationDispatcher.java | 60 +-
.../catalog/TableOperationDispatcher.java | 52 +-
.../gravitino/catalog/ViewOperationDispatcher.java | 38 +-
.../cloud/storage/AzurePropertiesMetadata.java | 52 +
.../cloud/storage/GCSPropertiesMetadata.java | 27 +-
.../cloud/storage/OSSPropertiesMetadata.java | 40 +-
.../cloud/storage/S3PropertiesMetadata.java | 40 +-
.../apache/gravitino/connector/BaseCatalog.java | 70 +-
.../credential/CatalogCredentialManager.java | 9 +
.../credential/JdbcCredentialProvider.java | 2 +-
.../base/TagMetadataObjectRelBaseSQLProvider.java | 4 +-
.../gravitino/utils/SchemaEntityCleaner.java | 93 ++
.../gravitino/audit/TestJsonAuditFormatter.java | 168 ++++
.../gravitino/auth/TestGroupMapperFactory.java | 43 +-
.../gravitino/auth/TestPrincipalMapperFactory.java | 33 +-
.../gravitino/catalog/TestCatalogManager.java | 141 +++
.../catalog/TestTableOperationDispatcher.java | 172 ++++
.../catalog/TestViewOperationDispatcher.java | 118 +++
.../gravitino/connector/TestCatalogOperations.java | 5 +
.../credential/TestJdbcCredentialProvider.java | 9 +-
design-docs/gravitino-local-authentication.md | 3 +
.../gravitino-iceberg-rest-server/Chart.yaml | 4 +-
.../tests/deployment_test.yaml | 4 +-
.../gravitino-iceberg-rest-server/values.yaml | 2 +-
dev/charts/gravitino-lance-rest-server/Chart.yaml | 4 +-
.../tests/deployment_test.yaml | 4 +-
dev/charts/gravitino-lance-rest-server/values.yaml | 2 +-
dev/charts/gravitino/Chart.yaml | 4 +-
.../gravitino/resources/config/gravitino.conf | 73 +-
.../gravitino/resources/scenarios/ci-values.yaml | 13 +-
.../gravitino/resources/scenarios/dev-values.yaml | 42 +
.../gravitino/resources/scenarios/pg-values.yaml | 2 +-
.../gravitino/resources/scenarios/prod-values.yaml | 93 ++
dev/charts/gravitino/templates/NOTES.txt | 66 +-
dev/charts/gravitino/templates/_helpers.tpl | 28 +-
dev/charts/gravitino/tests/configmap_test.yaml | 299 ++++++
.../tests/deployment_test.yaml | 223 +++--
.../tests/ingress_test.yaml | 26 +-
.../tests/poddisruptionbudget_test.yaml | 18 +-
.../tests/service_test.yaml | 28 +-
dev/charts/gravitino/values.yaml | 76 +-
dev/ci/setup_multi_instance.sh | 157 +++
dev/ci/test_multi_instance_consistency.sh | 1051 ++++++++++++++++++++
dev/docker/gravitino/Dockerfile | 5 +-
dev/docker/gravitino/gravitino-dependency.sh | 14 +-
.../gravitino/rewrite_gravitino_server_config.py | 37 +-
dev/docker/iceberg-rest-server/Dockerfile | 5 +-
dev/docker/iceberg-rest-server/rewrite_config.py | 66 +-
dev/docker/lance-rest-server/Dockerfile | 5 +-
docs/apache-hive-catalog.md | 55 +-
docs/chart.md | 76 +-
docs/cli.md | 332 +++----
docs/daft-connector/daft-connector.md | 12 +-
docs/docker-image-details.md | 75 +-
docs/expression.md | 26 +-
docs/fileset-catalog-index.md | 10 +-
docs/fileset-catalog-with-adls.md | 66 +-
docs/fileset-catalog-with-gcs.md | 65 +-
docs/fileset-catalog-with-oss.md | 66 +-
docs/fileset-catalog-with-s3.md | 68 +-
docs/fileset-catalog.md | 58 +-
.../flink-authentication-with-gravitino.md | 55 +-
docs/flink-connector/flink-catalog-hive.md | 22 +-
docs/flink-connector/flink-catalog-iceberg.md | 16 +-
docs/flink-connector/flink-catalog-jdbc.md | 12 +-
docs/flink-connector/flink-catalog-paimon.md | 18 +-
docs/flink-connector/flink-connector.md | 16 +-
docs/getting-started/aws-remote-access.md | 10 +-
docs/getting-started/hive.md | 6 +-
docs/getting-started/index.md | 16 +-
docs/getting-started/playground.md | 10 +-
docs/glossary.md | 82 +-
docs/gravitino-mcp-server.md | 20 +-
docs/gravitino-server-config.md | 165 +--
docs/hive-catalog-with-cloud-storage.md | 22 +-
docs/how-to-build.md | 34 +-
docs/how-to-install.md | 67 +-
docs/how-to-sign-releases.md | 12 +-
docs/how-to-test.md | 34 +-
docs/how-to-upgrade.md | 163 ++-
docs/how-to-use-gravitino-client.md | 22 +-
docs/how-to-use-gvfs.md | 118 ++-
docs/how-to-use-python-client.md | 32 +-
docs/how-to-use-relational-backend-storage.md | 42 +-
docs/how-to-use-the-playground.md | 48 +-
docs/iceberg-compaction-policy.md | 26 +-
docs/iceberg-rest-catalog-chart.md | 10 +-
docs/iceberg-rest-engine/doris.md | 10 +-
docs/iceberg-rest-engine/flink.md | 47 +-
docs/iceberg-rest-engine/pyiceberg.md | 22 +-
docs/iceberg-rest-engine/ray.md | 18 +-
docs/iceberg-rest-engine/spark.md | 66 +-
docs/iceberg-rest-engine/starrocks.md | 10 +-
docs/iceberg-rest-engine/trino.md | 68 +-
docs/iceberg-rest-service.md | 492 +++++----
docs/index.md | 53 +-
docs/jdbc-clickhouse-catalog.md | 40 +-
docs/jdbc-doris-catalog.md | 60 +-
docs/jdbc-hologres-catalog.md | 44 +-
docs/jdbc-mysql-catalog.md | 44 +-
docs/jdbc-oceanbase-catalog.md | 40 +-
docs/jdbc-postgresql-catalog.md | 50 +-
docs/jdbc-starrocks-catalog.md | 56 +-
docs/kafka-catalog.md | 26 +-
docs/lakehouse-generic-catalog.md | 25 +-
docs/lakehouse-generic-delta-table.md | 26 +-
docs/lakehouse-generic-lance-table.md | 62 +-
docs/lakehouse-hudi-catalog.md | 46 +-
docs/lakehouse-iceberg-catalog.md | 145 +--
docs/lakehouse-paimon-catalog.md | 58 +-
docs/lance-rest-integration.md | 22 +-
docs/lance-rest-server-chart.md | 10 +-
docs/lance-rest-service.md | 28 +-
docs/lineage/gravitino-server-lineage.md | 14 +-
docs/lineage/gravitino-spark-lineage.md | 12 +-
docs/lineage/lineage.md | 8 +-
docs/manage-fileset-metadata-using-gravitino.md | 103 +-
docs/manage-jobs-in-gravitino.md | 71 +-
docs/manage-messaging-metadata-using-gravitino.md | 84 +-
docs/manage-metalake-using-gravitino.md | 26 +-
docs/manage-model-metadata-using-gravitino.md | 130 +--
docs/manage-policies-in-gravitino.md | 61 +-
docs/manage-relational-metadata-using-gravitino.md | 139 +--
docs/manage-statistics-in-gravitino.md | 52 +-
docs/manage-table-partition-using-gravitino.md | 52 +-
docs/manage-tags-in-gravitino.md | 57 +-
...manage-user-defined-function-using-gravitino.md | 46 +-
docs/manage-view-metadata-using-gravitino.md | 44 +-
docs/metrics.md | 20 +-
docs/model-catalog.md | 30 +-
docs/open-api/idp/idp.yaml | 276 +++--
docs/open-api/idp/openapi.yaml | 5 +-
docs/open-api/openapi.yaml | 2 +-
docs/overview.md | 23 +-
docs/publish-docker-images.md | 16 +-
docs/security/access-control.md | 127 +--
docs/security/authorization-pushdown.md | 22 +-
docs/security/credential-vending.md | 54 +-
docs/security/how-to-authenticate.md | 63 +-
docs/security/how-to-use-built-in-idp.md | 310 +++++-
docs/security/how-to-use-cors.md | 14 +-
docs/security/how-to-use-https.md | 18 +-
docs/security/security.md | 8 +-
.../spark-authentication-with-gravitino.md | 57 +-
docs/spark-connector/spark-catalog-hive.md | 16 +-
docs/spark-connector/spark-catalog-iceberg.md | 22 +-
docs/spark-connector/spark-catalog-jdbc.md | 18 +-
docs/spark-connector/spark-catalog-paimon.md | 18 +-
docs/spark-connector/spark-connector-udf.md | 16 +-
docs/spark-connector/spark-connector.md | 12 +-
docs/spark-connector/spark-integration-test.md | 12 +-
.../optimizer-cli-reference.md | 44 +-
.../optimizer-configuration.md | 20 +-
.../optimizer-extension-guide.md | 26 +-
.../optimizer-quick-start.md | 30 +-
.../optimizer-troubleshooting.md | 20 +-
docs/table-maintenance-service/optimizer.md | 40 +-
...partitioning-distribution-sort-order-indexes.md | 46 +-
docs/trino-connector/authentication.md | 82 +-
docs/trino-connector/catalog-hive.md | 50 +-
docs/trino-connector/catalog-iceberg.md | 54 +-
docs/trino-connector/catalog-mysql.md | 35 +-
docs/trino-connector/catalog-postgresql.md | 32 +-
docs/trino-connector/configuration.md | 12 +-
docs/trino-connector/development.md | 14 +-
docs/trino-connector/index.md | 8 +-
docs/trino-connector/installation.md | 42 +-
docs/trino-connector/requirements.md | 10 +-
docs/trino-connector/sql-support.md | 18 +-
docs/trino-connector/supported-catalog.md | 23 +-
docs/trino-connector/trino-cascading-query.md | 27 +-
docs/trino-connector/trino-connector.md | 8 +-
docs/trino-connector/udf-support.md | 16 +-
docs/webui-v2.md | 118 ++-
docs/webui.md | 124 +--
.../flink/connector/catalog/BaseCatalog.java | 196 +++-
.../connector/catalog/GravitinoCatalogManager.java | 33 +-
.../flink/connector/hive/GravitinoHiveCatalog.java | 45 +
.../connector/iceberg/GravitinoIcebergCatalog.java | 46 +-
.../connector/paimon/GravitinoPaimonCatalog.java | 218 +++-
.../store/GravitinoCatalogStoreFactoryOptions.java | 5 +
.../flink/connector/catalog/TestBaseCatalog.java | 85 ++
.../TestGravitinoCatalogManagerBasicAuth.java | 101 ++
.../connector/integration/test/FlinkCommonIT.java | 299 ++++++
.../connector/integration/test/FlinkEnvIT.java | 16 +-
.../integration/test/hive/FlinkHiveCatalogIT.java | 277 +-----
.../test/iceberg/FlinkIcebergCatalogIT.java | 5 +
.../test/paimon/FlinkPaimonHiveBackendIT.java | 5 +
.../test/paimon/FlinkPaimonJdbcBackendIT.java | 6 +
.../paimon/TestGravitinoPaimonCatalog.java | 445 +++++++++
.../iceberg/GravitinoIcebergCatalogFlink118.java | 11 +-
.../iceberg/GravitinoIcebergCatalogFlink119.java | 10 +-
.../iceberg/GravitinoIcebergCatalogFlink120.java | 10 +-
gradle.properties | 2 +-
gradle/libs.versions.toml | 7 +-
.../gravitino/iceberg/common/IcebergConfig.java | 22 +
.../iceberg/common/ops/IcebergCatalogWrapper.java | 32 +
.../iceberg/common/utils/IcebergCatalogUtil.java | 14 +
.../iceberg/common/TestIcebergConfig.java | 72 ++
.../common/utils/TestIcebergCatalogUtil.java | 43 +
.../org/apache/gravitino/iceberg/RESTService.java | 43 +-
.../iceberg/service/CatalogWrapperForREST.java | 405 ++------
.../iceberg/service/FederatedCatalogWrapper.java | 506 ++++++++++
.../service/IcebergCatalogWrapperManager.java | 14 +-
.../iceberg/service/IcebergRESTUtils.java | 168 ++++
.../service/cleanup/IcebergCleanupJobStore.java | 27 +
.../IcebergCleanupMapperPackageProvider.java | 12 +-
.../service/dispatcher/IcebergCleanupHelper.java | 79 ++
.../dispatcher/IcebergNamespaceHookDispatcher.java | 64 +-
.../IcebergNamespaceOperationExecutor.java | 12 +-
.../dispatcher/IcebergOrphanSchemaCleanup.java | 79 ++
.../dispatcher/IcebergTableHookDispatcher.java | 12 +-
.../dispatcher/IcebergTableOperationExecutor.java | 57 +-
.../dispatcher/IcebergViewHookDispatcher.java | 13 +-
.../provider/DynamicIcebergConfigProvider.java | 39 +-
.../service/rest/IcebergNamespaceOperations.java | 8 +-
.../service/rest/IcebergPaginationHelper.java | 155 +++
.../service/rest/IcebergTableOperations.java | 9 +-
.../service/rest/IcebergViewOperations.java | 11 +-
.../listener/api/event/IcebergRequestContext.java | 21 +
...elational.mapper.provider.MapperPackageProvider | 19 -
.../integration/test/IcebergRESTAsyncPurgeIT.java | 263 +++++
.../iceberg/service/TestCatalogWrapperForREST.java | 549 +++++++++-
.../TestIcebergCatalogWrapperManagerForREST.java | 42 +
.../iceberg/service/TestIcebergRESTUtils.java | 263 +++++
.../service/dispatcher/TestIcebergAsyncPurge.java | 260 +++++
.../TestIcebergNamespaceHookDispatcher.java | 99 +-
.../TestIcebergNamespaceOperationExecutor.java | 3 +-
.../dispatcher/TestIcebergTableHookDispatcher.java | 88 +-
.../TestIcebergTableOperationExecutor.java | 3 +-
.../dispatcher/TestIcebergViewHookDispatcher.java | 60 +-
.../provider/TestDynamicIcebergConfigProvider.java | 81 +-
.../iceberg/service/rest/IcebergRestTestUtil.java | 8 +-
.../rest/TestIcebergNamespaceOperations.java | 47 +
.../service/rest/TestIcebergPaginationHelper.java | 216 ++++
.../service/rest/TestIcebergTableOperations.java | 43 +
.../service/rest/TestIcebergViewOperations.java | 44 +
.../api/event/TestIcebergRequestContext.java | 89 ++
.../gravitino/integration/test/util/BaseIT.java | 14 +-
lance/lance-common/build.gradle.kts | 2 +-
.../lance/common/ops/LanceTableOperations.java | 8 +-
.../gravitino/GravitinoLanceTableOperations.java | 28 +-
.../lance/common/utils/LanceConstants.java | 1 +
.../lance/service/rest/LanceTableOperations.java | 7 +-
.../gravitino/TestGravitinoLanceModeParsing.java | 2 +-
.../lance/integration/test/LanceRESTServiceIT.java | 67 +-
.../integration/test/LanceSparkRESTServiceIT.java | 7 +-
.../service/rest/TestLanceNamespaceOperations.java | 9 +-
maintenance/jobs/build.gradle.kts | 3 +
mcp-server/mcp_server/tools/tag.py | 11 +-
mcp-server/pyproject.toml | 7 +-
mcp-server/tests/unit/tools/test_tag.py | 12 +
mcp-server/uv.lock | 892 ++++++++++++++---
.../idp/basic/IdpCredentialValidator.java | 16 +
.../idp/dto/requests/AddGroupRequest.java | 6 +-
.../org/apache/gravitino/idp/web/IdpRESTUtils.java | 5 +-
.../idp/web/rest/feature/IdpRESTFeature.java | 19 +
.../gravitino/idp/auth/TestBasicAuthenticator.java | 4 +-
.../idp/dto/requests/TestAddGroupRequest.java | 2 +
.../idp/dto/requests/TestAddUserRequest.java | 3 +
.../integration/test/BasicAuthOperationsIT.java | 64 +-
.../idp/integration/test/IdpRESTApiIT.java | 26 +-
.../idp/web/rest/feature/TestIdpRESTFeature.java | 98 ++
.../server/authentication/JwksTokenValidator.java | 4 +-
.../authentication/KerberosAuthenticator.java | 2 +-
.../authentication/StaticSignKeyValidator.java | 4 +-
.../authorization/PassThroughAuthorizer.java | 3 +-
.../authorization/jcasbin/JcasbinAuthorizer.java | 33 +-
.../gravitino/server/web/JettyServerConfig.java | 17 +-
.../authentication/TestJwksTokenValidator.java | 4 +-
.../authentication/TestStaticSignKeyValidator.java | 8 +-
.../authorization/TestPassThroughAuthorizer.java | 35 +
.../jcasbin/TestJcasbinAuthorizer.java | 90 +-
.../server/web/TestJettyServerConfig.java | 29 +-
spark-connector/spark-common/build.gradle.kts | 53 +
.../spark/connector/GravitinoSparkConfig.java | 4 +
.../spark/connector/catalog/BaseCatalog.java | 154 ++-
.../connector/glue/GluePropertiesConverter.java | 223 +++++
.../spark/connector/glue/GravitinoGlueCatalog.java | 330 ++++++
.../glue/GravitinoGlueCredentialsProvider.java | 32 +-
.../spark/connector/hive/GravitinoHiveCatalog.java | 49 +-
.../connector/hive/HivePropertiesConverter.java | 21 +-
.../spark/connector/hive/SparkHiveView.java | 192 ++++
.../connector/iceberg/GravitinoIcebergCatalog.java | 3 +
.../connector/jdbc/SparkJdbcTypeConverter.java | 2 +
.../connector/paimon/GravitinoPaimonCatalog.java | 3 +
.../connector/plugin/GravitinoDriverPlugin.java | 16 +-
.../connector/version/CatalogNameAdaptor.java | 58 +-
.../glue/TestGluePropertiesConverter.java | 274 +++++
.../connector/glue/TestGravitinoGlueCatalog.java | 347 +++++++
.../glue/TestGravitinoGlueCredentialsProvider.java | 51 +
.../connector/integration/test/SparkCommonIT.java | 95 +-
.../connector/integration/test/SparkEnvIT.java | 9 +-
.../integration/test/glue/SparkGlueCatalogIT.java | 633 ++++++++++++
.../integration/test/glue/SparkGlueEnvIT.java | 363 +++++++
.../integration/test/hive/SparkHiveCatalogIT.java | 165 +++
.../test/iceberg/SparkIcebergCatalogIT.java | 84 +-
.../test/jdbc/SparkJdbcMysqlCatalogIT.java | 55 +-
.../integration/test/util/SparkUtilIT.java | 56 +-
.../jdbc/TestSparkJdbcTypeConverter.java} | 30 +-
.../plugin/TestGravitinoSparkBasicAuth.java | 100 ++
spark-connector/v3.3/spark/build.gradle.kts | 19 +
.../GravitinoGlueCatalogSpark33.java} | 6 +-
.../test/glue/SparkAwsGlueCatalogIT33.java | 32 +-
spark-connector/v3.4/spark/build.gradle.kts | 19 +
.../GravitinoGlueCatalogSpark34.java} | 6 +-
.../connector/jdbc/SparkJdbcTypeConverter34.java | 14 +-
.../test/glue/SparkAwsGlueCatalogIT34.java | 32 +-
spark-connector/v3.5/spark/build.gradle.kts | 19 +
.../GravitinoGlueCatalogSpark35.java} | 5 +-
.../jdbc/GravitinoJdbcCatalogSpark35.java | 3 +-
.../test/glue/SparkAwsGlueCatalogIT35.java | 32 +-
.../catalog/glue/GlueConnectorAdapter.java | 27 +-
.../catalog/hive/HiveConnectorAdapter.java | 17 +
.../iceberg/IcebergCatalogPropertyConverter.java | 30 +
.../catalog/iceberg/IcebergConnectorAdapter.java | 6 +-
.../connector/security/GravitinoAuthProvider.java | 33 +-
.../DropCatalogStoredProcedure.java | 27 +-
.../catalog/glue/TestGlueConnectorAdapter.java | 6 +-
.../TestIcebergCatalogPropertyConverter.java | 9 +-
.../security/TestGravitinoAuthProvider.java | 58 ++
.../TestDropCatalogStoredProcedure.java | 118 +++
web-v2/web/LICENSE.bin | 2 +
...nt-design-react-slick.txt => sql-formatter.txt} | 7 +-
...ay-buffer-byte-length.txt => sql-highlight.txt} | 4 +-
web-v2/web/package.json | 14 +-
web-v2/web/pnpm-lock.yaml | 245 +++--
web-v2/web/src/app/catalogs/TreeComponent.js | 16 +
.../catalogs/rightContent/CreateCatalogDialog.js | 24 +-
.../catalogs/rightContent/CreateSchemaDialog.js | 139 ++-
.../app/catalogs/rightContent/CreateTableDialog.js | 30 +-
.../entitiesContent/CatalogDetailsPage.js | 124 +--
.../entitiesContent/SchemaDetailsPage.js | 240 ++++-
.../entitiesContent/SharedSchemaColumns.js | 133 +++
web-v2/web/src/app/login/components/OidcLogin.js | 19 +-
web-v2/web/src/components/Icons.js | 16 +
web-v2/web/src/config/catalog.js | 138 +++
web-v2/web/src/config/index.js | 6 +
web-v2/web/src/lib/api/schemas/index.js | 5 +-
web-v2/web/src/lib/auth/providers/oidc.js | 77 +-
web-v2/web/src/lib/auth/providers/oidc.test.js | 262 ++++-
web-v2/web/src/lib/store/metalakes/index.js | 87 +-
web/web/package.json | 2 +-
web/web/pnpm-lock.yaml | 846 +++++++++-------
447 files changed, 22958 insertions(+), 5724 deletions(-)
create mode 100644 .claude/skills/gravitino-docs-refine/README.md
create mode 100644 .claude/skills/gravitino-docs-refine/SKILL.md
create mode 100644 .claude/skills/gravitino-docs-refine/STYLE.md
create mode 100755 .claude/skills/gravitino-docs-refine/scripts/check_links.py
create mode 100755
.claude/skills/gravitino-docs-refine/scripts/heading_audit.py
create mode 100755
.claude/skills/gravitino-docs-refine/scripts/heading_spacing_audit.py
create mode 100755 .claude/skills/gravitino-docs-refine/scripts/intro_audit.py
create mode 100755
.claude/skills/gravitino-docs-refine/scripts/title_h2_audit.py
create mode 100644 .github/workflows/multi-instance-consistency-test.yml
rename catalogs/{catalog-glue =>
catalog-common}/src/main/java/org/apache/gravitino/catalog/glue/GlueConstants.java
(97%)
create mode 100644
catalogs/catalog-common/src/test/java/org/apache/gravitino/utils/TestClassLoaderResourceCleanerUtils.java
create mode 100644
catalogs/hive-metastore-common/src/test/java/org/apache/gravitino/hive/client/TestHive2HMSWithKerberosNoImpersonation.java
create mode 100644
catalogs/hive-metastore-common/src/test/java/org/apache/gravitino/hive/client/TestUtil.java
create mode 100644
core/src/main/java/org/apache/gravitino/audit/AuditLogRedactor.java
create mode 100644
core/src/main/java/org/apache/gravitino/audit/JsonAuditFormatter.java
create mode 100644
core/src/main/java/org/apache/gravitino/catalog/OrphanedSchemaCleanup.java
create mode 100644
core/src/main/java/org/apache/gravitino/cloud/storage/AzurePropertiesMetadata.java
copy
catalogs/catalog-model/src/main/java/org/apache/gravitino/catalog/model/ModelPropertiesMetadata.java
=>
core/src/main/java/org/apache/gravitino/cloud/storage/GCSPropertiesMetadata.java
(61%)
copy
catalogs/catalog-kafka/src/main/java/org/apache/gravitino/catalog/kafka/KafkaCatalogPropertiesMetadata.java
=>
core/src/main/java/org/apache/gravitino/cloud/storage/OSSPropertiesMetadata.java
(50%)
copy
catalogs/catalog-kafka/src/main/java/org/apache/gravitino/catalog/kafka/KafkaCatalogPropertiesMetadata.java
=>
core/src/main/java/org/apache/gravitino/cloud/storage/S3PropertiesMetadata.java
(50%)
create mode 100644
core/src/main/java/org/apache/gravitino/utils/SchemaEntityCleaner.java
create mode 100644
core/src/test/java/org/apache/gravitino/audit/TestJsonAuditFormatter.java
create mode 100644 dev/charts/gravitino/resources/scenarios/dev-values.yaml
create mode 100644 dev/charts/gravitino/resources/scenarios/prod-values.yaml
create mode 100644 dev/charts/gravitino/tests/configmap_test.yaml
copy dev/charts/{gravitino-lance-rest-server =>
gravitino}/tests/deployment_test.yaml (55%)
copy dev/charts/{gravitino-lance-rest-server =>
gravitino}/tests/ingress_test.yaml (81%)
copy dev/charts/{gravitino-lance-rest-server =>
gravitino}/tests/poddisruptionbudget_test.yaml (84%)
copy dev/charts/{gravitino-iceberg-rest-server =>
gravitino}/tests/service_test.yaml (87%)
create mode 100755 dev/ci/setup_multi_instance.sh
create mode 100755 dev/ci/test_multi_instance_consistency.sh
create mode 100644
flink-connector/flink-common/src/test/java/org/apache/gravitino/flink/connector/catalog/TestGravitinoCatalogManagerBasicAuth.java
create mode 100644
flink-connector/flink-common/src/test/java/org/apache/gravitino/flink/connector/paimon/TestGravitinoPaimonCatalog.java
create mode 100644
iceberg/iceberg-rest-server/src/main/java/org/apache/gravitino/iceberg/service/FederatedCatalogWrapper.java
create mode 100644
iceberg/iceberg-rest-server/src/main/java/org/apache/gravitino/iceberg/service/dispatcher/IcebergCleanupHelper.java
create mode 100644
iceberg/iceberg-rest-server/src/main/java/org/apache/gravitino/iceberg/service/dispatcher/IcebergOrphanSchemaCleanup.java
create mode 100644
iceberg/iceberg-rest-server/src/main/java/org/apache/gravitino/iceberg/service/rest/IcebergPaginationHelper.java
delete mode 100644
iceberg/iceberg-rest-server/src/main/resources/META-INF/services/org.apache.gravitino.storage.relational.mapper.provider.MapperPackageProvider
create mode 100644
iceberg/iceberg-rest-server/src/test/java/org/apache/gravitino/iceberg/integration/test/IcebergRESTAsyncPurgeIT.java
create mode 100644
iceberg/iceberg-rest-server/src/test/java/org/apache/gravitino/iceberg/service/dispatcher/TestIcebergAsyncPurge.java
create mode 100644
iceberg/iceberg-rest-server/src/test/java/org/apache/gravitino/iceberg/service/rest/TestIcebergPaginationHelper.java
create mode 100644
iceberg/iceberg-rest-server/src/test/java/org/apache/gravitino/listener/api/event/TestIcebergRequestContext.java
copy
clients/client-java/src/test/java/org/apache/gravitino/client/integration/test/authorization/OAuth2OperationsIT.java
=>
plugins/idp-basic/src/test/java/org/apache/gravitino/idp/integration/test/BasicAuthOperationsIT.java
(52%)
create mode 100644
plugins/idp-basic/src/test/java/org/apache/gravitino/idp/web/rest/feature/TestIdpRESTFeature.java
create mode 100644
spark-connector/spark-common/src/main/java/org/apache/gravitino/spark/connector/glue/GluePropertiesConverter.java
create mode 100644
spark-connector/spark-common/src/main/java/org/apache/gravitino/spark/connector/glue/GravitinoGlueCatalog.java
copy {catalogs/catalog-glue/src/main/java/org/apache/gravitino/catalog =>
spark-connector/spark-common/src/main/java/org/apache/gravitino/spark/connector}/glue/GravitinoGlueCredentialsProvider.java
(60%)
create mode 100644
spark-connector/spark-common/src/main/java/org/apache/gravitino/spark/connector/hive/SparkHiveView.java
create mode 100644
spark-connector/spark-common/src/test/java/org/apache/gravitino/spark/connector/glue/TestGluePropertiesConverter.java
create mode 100644
spark-connector/spark-common/src/test/java/org/apache/gravitino/spark/connector/glue/TestGravitinoGlueCatalog.java
create mode 100644
spark-connector/spark-common/src/test/java/org/apache/gravitino/spark/connector/glue/TestGravitinoGlueCredentialsProvider.java
create mode 100644
spark-connector/spark-common/src/test/java/org/apache/gravitino/spark/connector/integration/test/glue/SparkGlueCatalogIT.java
create mode 100644
spark-connector/spark-common/src/test/java/org/apache/gravitino/spark/connector/integration/test/glue/SparkGlueEnvIT.java
copy
spark-connector/{v3.4/spark/src/test/java/org/apache/gravitino/spark/connector/TestSparkTypeConverter34.java
=>
spark-common/src/test/java/org/apache/gravitino/spark/connector/jdbc/TestSparkJdbcTypeConverter.java}
(57%)
create mode 100644
spark-connector/spark-common/src/test/java/org/apache/gravitino/spark/connector/plugin/TestGravitinoSparkBasicAuth.java
copy
spark-connector/v3.3/spark/src/main/java/org/apache/gravitino/spark/connector/{jdbc/GravitinoJdbcCatalogSpark33.java
=> glue/GravitinoGlueCatalogSpark33.java} (82%)
copy api/src/main/java/org/apache/gravitino/rel/partitions/RangePartition.java
=>
spark-connector/v3.3/spark/src/test/java/org/apache/gravitino/spark/connector/integration/test/glue/SparkAwsGlueCatalogIT33.java
(55%)
copy
spark-connector/v3.4/spark/src/main/java/org/apache/gravitino/spark/connector/{hive/GravitinoHiveCatalogSpark34.java
=> glue/GravitinoGlueCatalogSpark34.java} (84%)
copy api/src/main/java/org/apache/gravitino/rel/partitions/RangePartition.java
=>
spark-connector/v3.4/spark/src/test/java/org/apache/gravitino/spark/connector/integration/test/glue/SparkAwsGlueCatalogIT34.java
(55%)
copy
spark-connector/v3.5/spark/src/main/java/org/apache/gravitino/spark/connector/{hive/GravitinoHiveCatalogSpark35.java
=> glue/GravitinoGlueCatalogSpark35.java} (87%)
copy api/src/main/java/org/apache/gravitino/rel/partitions/RangePartition.java
=>
spark-connector/v3.5/spark/src/test/java/org/apache/gravitino/spark/connector/integration/test/glue/SparkAwsGlueCatalogIT35.java
(55%)
create mode 100644
trino-connector/trino-connector/src/test/java/org/apache/gravitino/trino/connector/system/storedprocedure/TestDropCatalogStoredProcedure.java
copy web-v2/web/licenses/{ant-design-react-slick.txt => sql-formatter.txt}
(84%)
copy web-v2/web/licenses/{array-buffer-byte-length.txt => sql-highlight.txt}
(95%)
create mode 100644
web-v2/web/src/app/catalogs/rightContent/entitiesContent/SharedSchemaColumns.js