This is an automated email from the ASF dual-hosted git repository.
dependabot[bot] pushed a change to branch
dependabot/pip/clients/client-python/fsspec-2026.6.0
in repository https://gitbox.apache.org/repos/asf/gravitino.git
omit b4fb52ee93 build(deps): bump fsspec in /clients/client-python
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 b766642fd3 build(deps): bump fsspec in /clients/client-python
This update added new revisions after undoing existing revisions.
That is to say, some revisions that were in the old version of the
branch are not in the new version. This situation occurs
when a user --force pushes a change and generates a repository
containing something like this:
* -- * -- B -- O -- O -- O (b4fb52ee93)
\
N -- N -- N
refs/heads/dependabot/pip/clients/client-python/fsspec-2026.6.0 (b766642fd3)
You should already have received notification emails for all of the O
revisions, and so the following emails describe only the N revisions
from the common base, B.
Any revisions marked "omit" are not gone; other references still
refer to them. Any revisions marked "discard" are gone forever.
No new revisions were added by this update.
Summary of changes:
.asf.yaml | 1 +
.github/workflows/docker-image.yml | 2 +-
.../org/apache/gravitino/authorization/Group.java | 16 +
.../org/apache/gravitino/authorization/User.java | 25 +
...Credential.java => COSSecretKeyCredential.java} | 50 +-
.../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 +++
.../java/org/apache/gravitino/rel/TestTypes.java | 31 +
.../ranger/RangerAuthorizationPlugin.java | 16 +-
.../ranger/RangerClientExtension.java | 4 +-
.../authorization/ranger/RangerHelper.java | 2 +-
build.gradle.kts | 9 +
.../s3/credential/AwsIrsaCredentialGenerator.java | 9 +-
.../webidentity/WebIdentityTokenSources.java | 5 +-
.../credential/TestAwsIrsaCredentialGenerator.java | 37 ++
.../webidentity/TestWebIdentityTokenSources.java | 11 +-
.../gcs/credential/GCSTokenGenerator.java | 2 +-
.../build.gradle.kts | 38 +-
bundles/{aliyun => tencent}/build.gradle.kts | 7 +-
.../cos/credential/COSSecretKeyProvider.java} | 23 +-
.../gravitino/cos/fs/COSCredentialsProvider.java | 91 +++
.../gravitino/cos/fs/COSFileSystemProvider.java | 128 ++++
.../org/apache/gravitino/cos/fs/COSUtils.java} | 25 +-
....gravitino.catalog.hadoop.fs.FileSystemProvider | 2 +-
....apache.gravitino.credential.CredentialProvider | 2 +-
.../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 | 190 +++++-
.../converter/TestClickHouseTypeConverter.java | 29 +
.../test/CatalogClickHouseClusterIT.java | 18 +
.../integration/test/CatalogClickHouseIT.java | 231 ++++++-
.../test/service/ClickHouseService.java | 12 +
.../TestClickHouseDatabaseOperations.java | 18 +
.../operations/TestClickHouseTableOperations.java | 298 ++++++++-
.../TestClickHouseTableOperationsUnit.java | 87 +++
.../credential/config/COSCredentialConfig.java | 79 +++
.../apache/gravitino/storage/COSProperties.java | 21 +-
catalogs/catalog-fileset/build.gradle.kts | 2 +
...tOSSCatalogIT.java => FilesetCOSCatalogIT.java} | 100 +--
.../doris/converter/DorisTypeConverter.java | 113 +++-
.../doris/operation/DorisTableOperations.java | 315 +++++++++-
.../gravitino/catalog/doris/utils/DorisUtils.java | 2 +-
.../doris/converter/TestDorisTypeConverter.java | 60 +-
.../doris/integration/test/CatalogDoris3xIT.java | 436 +++++++++++++
.../doris/integration/test/CatalogDoris4xIT.java | 435 +++++++++++++
.../doris/integration/test/CatalogDorisIT.java | 118 +++-
.../catalog/doris/operation/TestDoris.java | 2 +-
.../doris/operation/TestDorisTableOperations.java | 42 +-
.../TestDorisTableOperationsSqlGeneration.java | 327 ++++++++++
.../catalog/doris/utils/TestDorisUtils.java | 21 +
.../lakehouse/lance/LanceTableOperations.java | 88 ++-
.../lance/TestLanceConcurrentRepairStress.java | 283 +++++++++
.../lakehouse/lance/TestLanceTableOperations.java | 85 +++
.../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/TestIcebergTable.java | 19 +
.../TestIcebergTablePropertiesMetadata.java | 87 +++
.../iceberg/converter/TestConvertUtil.java | 151 +++++
.../integration/test/CatalogIcebergBaseIT.java | 539 +++++++++++++++-
.../lakehouse/paimon/PaimonCatalogOperations.java | 2 +-
.../lakehouse/paimon/ops/PaimonCatalogOps.java | 2 +-
.../lakehouse/paimon/utils/CatalogUtils.java | 6 +-
.../catalog/hadoop/auth/KerberosAuthUtils.java | 10 +-
.../catalog/hadoop/auth/TestKerberosAuthUtils.java | 44 ++
.../gravitino/catalog/hadoop/fs/Constants.java | 6 +
.../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 +-
.../client/FunctionCatalogOperations.java | 10 +-
.../{GenericColumn.java => GenericFunction.java} | 97 +--
.../{GenericColumn.java => GenericView.java} | 105 ++--
.../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 +-
.../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/utils/serdes.py | 11 +
clients/client-python/requirements-dev.txt | 2 +-
clients/client-python/requirements.txt | 2 +-
.../tests/integration/integration_test_env.py | 19 +-
.../tests/integration/test_group_management.py | 10 +-
.../client-python/tests/integration/test_owner.py | 10 +-
.../tests/integration/test_role_management.py | 10 +-
.../client-python/tests/integration/test_user.py | 10 +-
.../tests/unittests/api/rel/test_types.py | 32 +
.../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 +--
.../unittests/json_serdes/test_type_serdes.py | 9 +
.../filesystem-hadoop3-runtime/build.gradle.kts | 1 +
clients/filesystem-hadoop3/build.gradle.kts | 2 +
...T.java => GravitinoVirtualFileSystemCOSIT.java} | 80 ++-
.../org/apache/gravitino/auth/ActiveRoles.java | 164 +++++
.../apache/gravitino/auth/ActiveRolesParser.java | 122 ++++
.../org/apache/gravitino/auth/AuthConstants.java | 10 +
...rType.java => IllegalActiveRolesException.java} | 33 +-
.../gravitino/dto/authorization/GroupDTO.java | 30 +-
.../gravitino/dto/authorization/UserDTO.java | 55 +-
.../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 +
.../java/org/apache/gravitino/json/JsonUtils.java | 21 +
.../org/apache/gravitino/utils/FileFetcher.java | 60 +-
.../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 ++++
.../org/apache/gravitino/json/TestJsonUtils.java | 40 ++
.../apache/gravitino/utils/TestFileFetcher.java | 89 ++-
.../gravitino/utils/TestRemoteFileDownloader.java | 686 +++++++++++++++++++++
.../gravitino/utils/TestRemoteUriValidator.java | 118 ++--
.../org/apache/gravitino/utils/TestSafeUri.java | 36 +-
conf/gravitino-iceberg-rest-server.conf.template | 18 +
.../src/main/java/org/apache/gravitino/Entity.java | 22 +
.../java/org/apache/gravitino/EntityStore.java | 10 +
.../gravitino/SupportsExternalIdOperations.java | 71 +++
.../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/AuthorizationUtils.java | 84 +++
.../authorization/GravitinoAuthorizer.java | 2 +-
.../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/catalog/CapabilityHelpers.java | 28 +-
.../gravitino/catalog/ManagedTableOperations.java | 8 +-
.../catalog/SchemaOperationDispatcher.java | 2 +-
.../catalog/TableOperationDispatcher.java | 2 +-
.../catalog/TopicOperationDispatcher.java | 2 +-
.../gravitino/catalog/ViewOperationDispatcher.java | 2 +-
.../gravitino/connector/capability/Capability.java | 20 +
.../hook/AccessControlHookDispatcher.java | 48 ++
.../gravitino/hook/CatalogHookDispatcher.java | 4 +-
.../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 ++
...lureEvent.java => DisableUserFailureEvent.java} | 34 +-
...talogPreEvent.java => DisableUserPreEvent.java} | 35 +-
.../listener/api/event/EnableUserEvent.java | 65 ++
...ilureEvent.java => EnableUserFailureEvent.java} | 34 +-
...ilesetPreEvent.java => EnableUserPreEvent.java} | 37 +-
...upEvent.java => GetGroupByExternalIdEvent.java} | 43 +-
....java => GetGroupByExternalIdFailureEvent.java} | 32 +-
...vent.java => GetGroupByExternalIdPreEvent.java} | 31 +-
...serEvent.java => GetUserByExternalIdEvent.java} | 40 +-
...t.java => GetUserByExternalIdFailureEvent.java} | 42 +-
...Event.java => GetUserByExternalIdPreEvent.java} | 37 +-
.../listener/api/event/OperationType.java | 7 +
...vent.java => RemoveGroupByExternalIdEvent.java} | 24 +-
...va => RemoveGroupByExternalIdFailureEvent.java} | 32 +-
...t.java => RemoveGroupByExternalIdPreEvent.java} | 31 +-
...Event.java => RemoveUserByExternalIdEvent.java} | 43 +-
...ava => RemoveUserByExternalIdFailureEvent.java} | 33 +-
...nt.java => RemoveUserByExternalIdPreEvent.java} | 37 +-
.../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 +-
.../gravitino/storage/relational/JDBCBackend.java | 28 +
.../storage/relational/RelationalBackend.java | 29 +
.../storage/relational/RelationalEntityStore.java | 46 +-
.../relational/RelationalGarbageCollector.java | 9 +-
.../storage/relational/mapper/GroupMetaMapper.java | 6 +
.../mapper/GroupMetaSQLProviderFactory.java | 5 +
.../storage/relational/mapper/UserMetaMapper.java | 10 +
.../mapper/UserMetaSQLProviderFactory.java | 10 +
.../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 +
.../relational/service/TableMetaService.java | 12 +-
.../relational/service/UserMetaService.java | 67 ++
.../storage/relational/utils/POConverters.java | 12 +
.../java/org/apache/gravitino/tag/TagManager.java | 4 +-
.../gravitino/utils/IsolatedClassLoader.java | 7 +-
.../org/apache/gravitino/utils/PrincipalUtils.java | 6 +-
.../gravitino/audit/v2/TestCompatibilityUtils.java | 6 +
.../authorization/TestAccessControlManager.java | 147 +++++
.../authorization/TestAuthorizationUtils.java | 51 ++
.../gravitino/catalog/TestCapabilityHelpers.java | 95 +++
.../catalog/TestManagedTableOperations.java | 42 ++
.../connector/capability/TestCapability.java | 8 +
.../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 ++-
.../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 ++
.../relational/service/TestSchemaMetaService.java | 146 +++++
.../relational/service/TestUserMetaService.java | 147 +++++
.../relational/service/TestViewMetaService.java | 41 ++
.../org/apache/gravitino/tag/TestTagManager.java | 167 ++++-
.../gravitino/utils/TestIsolatedClassLoader.java | 12 +
.../gravitino/utils/TestMetadataObjectUtil.java | 11 +
design-docs/gravitino-role-assumption.md | 366 +++++++++++
.../templates/httproute.yaml | 67 ++
.../templates/ingress.yaml | 2 +-
.../tests/httproute_test.yaml | 205 ++++++
.../tests/ingress_test.yaml | 9 +
.../gravitino-iceberg-rest-server/values.yaml | 19 +
.../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 | 19 +
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 | 19 +
docs/fileset-catalog-with-cos.md | 544 ++++++++++++++++
docs/fileset-catalog.md | 12 +-
docs/gravitino-mcp-server.md | 31 +-
docs/gravitino-server-config.md | 8 +-
docs/iceberg-rest-service.md | 68 +-
docs/jdbc-clickhouse-catalog.md | 11 +-
docs/jdbc-doris-catalog.md | 186 ++++--
docs/lakehouse-iceberg-catalog.md | 67 +-
docs/manage-relational-metadata-using-gravitino.md | 16 +
docs/manage-tags-in-gravitino.md | 10 +-
docs/open-api/datatype.yaml | 10 +-
docs/open-api/groups.yaml | 9 +-
docs/open-api/indexes.yaml | 8 +
docs/open-api/openapi.yaml | 3 +-
docs/open-api/statistics.yaml | 6 +-
docs/open-api/tables.yaml | 52 ++
docs/open-api/tags.yaml | 4 +-
docs/open-api/users.yaml | 18 +-
docs/security/access-control.md | 42 +-
docs/security/credential-vending.md | 16 +-
...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/libs.versions.toml | 2 +
.../iceberg/common/ClosableHiveCatalog.java | 78 +--
.../iceberg/common/ClosableJdbcCatalog.java | 108 ++++
.../iceberg/common/ops/IcebergCatalogWrapper.java | 6 +
.../iceberg/common/utils/IcebergCatalogUtil.java | 18 +-
.../iceberg/common/utils/KerberosCatalogUtils.java | 175 ++++++
.../JdbcCatalogWithMetadataLocationSupport.java | 3 +-
.../iceberg/common/TestClosableJdbcCatalog.java | 134 ++++
.../common/utils/TestIcebergCatalogUtil.java | 26 +-
.../common/utils/TestKerberosCatalogUtils.java | 64 ++
.../iceberg/service/CatalogWrapperForREST.java | 115 +++-
.../iceberg/service/FederatedCatalogWrapper.java | 124 ++++
.../iceberg/service/IcebergRESTUtils.java | 44 ++
.../IcebergNamespaceEventDispatcher.java | 31 +
.../dispatcher/IcebergNamespaceHookDispatcher.java | 61 ++
.../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 +-
...iewEvent.java => IcebergRegisterViewEvent.java} | 22 +-
...t.java => IcebergRegisterViewFailureEvent.java} | 22 +-
...Event.java => IcebergRegisterViewPreEvent.java} | 19 +-
.../integration/test/IcebergRESTServiceBaseIT.java | 9 +
.../integration/test/IcebergRESTServiceIT.java | 8 +-
.../test/IcebergRestKerberosHiveCatalogIT.java | 125 ++--
...KerberosHiveWithUserImpersonationCatalogIT.java | 7 +-
....java => IcebergRestKerberosJdbcCatalogIT.java} | 89 ++-
...erberosJdbcWithUserImpersonationCatalogIT.java} | 22 +-
.../test/IcebergRestKerberosTestEnv.java | 253 ++++++++
.../util/IcebergRESTServerManagerForDeploy.java | 93 +--
.../iceberg/service/TestCatalogWrapperForREST.java | 305 +++++++++
.../TestIcebergNamespaceHookDispatcher.java | 131 ++++
.../TestIcebergNamespaceOperationExecutor.java | 15 +
.../service/rest/CatalogWrapperForTest.java | 44 ++
.../iceberg/service/rest/IcebergTestBase.java | 9 +
.../service/rest/TestIcebergTableOperations.java | 110 ++++
.../service/rest/TestIcebergViewOperations.java | 53 ++
.../docker-script/compose-env.sh | 21 +-
...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 +-
.../integration/test/container/ContainerSuite.java | 28 +-
.../integration/test/container/DorisContainer.java | 40 +-
.../{PGImageName.java => DorisImageName.java} | 25 +-
.../test/container/TrinoITContainers.java | 97 ++-
.../gravitino/GravitinoLanceTableOperations.java | 16 +-
.../rest/TestGravitinoLanceTableOperations.java | 34 +
mcp-server/mcp_server/client/catalog_operation.py | 24 +
mcp-server/mcp_server/client/fileset_operation.py | 31 +
mcp-server/mcp_server/client/model_operation.py | 78 +++
.../plain/plain_rest_client_catalog_operation.py | 46 ++
.../plain/plain_rest_client_fileset_operation.py | 68 +-
.../plain/plain_rest_client_model_operation.py | 147 ++++-
.../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/catalog.py | 109 ++++
mcp-server/mcp_server/tools/fileset.py | 104 +++-
mcp-server/mcp_server/tools/model.py | 243 ++++++++
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 | 4 +-
mcp-server/tests/integration/test_authz_e2e.py | 9 -
mcp-server/tests/unit/client/test_url_encoding.py | 139 ++++-
mcp-server/tests/unit/tools/mock_operation.py | 182 ++++++
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_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 ++
.../authentication/KerberosAuthenticator.java | 4 +-
.../authorization/GravitinoAuthorizerProvider.java | 2 +-
.../server/authorization/MetadataAuthzHelper.java | 2 +-
.../authorization/jcasbin/JcasbinAuthorizer.java | 6 +-
.../apache/gravitino/server/web/JettyServer.java | 14 +-
.../authentication/TestKerberosAuthenticator.java | 4 +-
.../apache/gravitino/server/web/ConfigServlet.java | 38 +-
.../gravitino/server/web/rest/GroupOperations.java | 12 +-
.../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 | 32 +
.../web/rest/TestMetadataObjectTagOperations.java | 262 +++++++-
.../server/web/rest/TestUserOperations.java | 34 +
settings.gradle.kts | 1 +
.../spark/connector/jdbc/GravitinoJdbcCatalog.java | 5 +
.../connector/jdbc/JdbcPropertiesConverter.java | 8 +-
.../connector/version/CatalogNameAdaptor.java | 8 +-
.../jdbc/TestJdbcPropertiesConverter.java | 23 +
.../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 +-
.../test/web/ui/CatalogsPageDorisTest.java | 3 +-
.../integration/test/web/ui/CatalogsPageTest.java | 9 +-
415 files changed, 19627 insertions(+), 2114 deletions(-)
copy
api/src/main/java/org/apache/gravitino/credential/{OSSSecretKeyCredential.java
=> COSSecretKeyCredential.java} (62%)
copy bundles/{aws-bundle => tencent-bundle}/build.gradle.kts (63%)
copy bundles/{aliyun => tencent}/build.gradle.kts (88%)
copy
bundles/{aliyun/src/main/java/org/apache/gravitino/oss/credential/OSSSecretKeyProvider.java
=>
tencent/src/main/java/org/apache/gravitino/cos/credential/COSSecretKeyProvider.java}
(65%)
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
copy bundles/{aliyun/src/main/java/org/apache/gravitino/oss/fs/OSSUtils.java
=> tencent/src/main/java/org/apache/gravitino/cos/fs/COSUtils.java} (65%)
copy bundles/{gcp =>
tencent}/src/main/resources/META-INF/services/org.apache.gravitino.catalog.hadoop.fs.FileSystemProvider
(94%)
copy bundles/{gcp =>
tencent}/src/main/resources/META-INF/services/org.apache.gravitino.credential.CredentialProvider
(93%)
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 core/src/main/java/org/apache/gravitino/storage/IdGenerator.java =>
catalogs/catalog-common/src/main/java/org/apache/gravitino/storage/COSProperties.java
(54%)
copy
catalogs/catalog-fileset/src/test/java/org/apache/gravitino/catalog/fileset/integration/test/{FilesetOSSCatalogIT.java
=> FilesetCOSCatalogIT.java} (65%)
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
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
copy
clients/client-java/src/main/java/org/apache/gravitino/client/{GenericColumn.java
=> GenericFunction.java} (57%)
copy
clients/client-java/src/main/java/org/apache/gravitino/client/{GenericColumn.java
=> GenericView.java} (58%)
create mode 100644
clients/client-python/tests/unittests/client/operation_test_fixtures.py
copy
clients/filesystem-hadoop3/src/test/java/org/apache/gravitino/filesystem/hadoop/integration/test/{GravitinoVirtualFileSystemOSSIT.java
=> GravitinoVirtualFileSystemCOSIT.java} (63%)
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 common/src/main/java/org/apache/gravitino/auth/{AuthenticatorType.java =>
IllegalActiveRolesException.java} (52%)
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/utils/TestRemoteFileDownloader.java
copy core/src/test/java/org/apache/gravitino/utils/TestByteUtils.java =>
common/src/test/java/org/apache/gravitino/utils/TestSafeUri.java (51%)
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/listener/api/event/DisableUserEvent.java
copy
core/src/main/java/org/apache/gravitino/listener/api/event/{policy/GetPolicyFailureEvent.java
=> DisableUserFailureEvent.java} (52%)
copy
core/src/main/java/org/apache/gravitino/listener/api/event/{ListCatalogPreEvent.java
=> DisableUserPreEvent.java} (55%)
create mode 100644
core/src/main/java/org/apache/gravitino/listener/api/event/EnableUserEvent.java
copy
core/src/main/java/org/apache/gravitino/listener/api/event/{policy/GetPolicyFailureEvent.java
=> EnableUserFailureEvent.java} (52%)
copy
core/src/main/java/org/apache/gravitino/listener/api/event/{CreateFilesetPreEvent.java
=> EnableUserPreEvent.java} (57%)
copy
core/src/main/java/org/apache/gravitino/listener/api/event/{GetGroupEvent.java
=> GetGroupByExternalIdEvent.java} (52%)
copy
core/src/main/java/org/apache/gravitino/listener/api/event/{ListFilesPreEvent.java
=> GetGroupByExternalIdFailureEvent.java} (59%)
copy
core/src/main/java/org/apache/gravitino/listener/api/event/{ListFilesPreEvent.java
=> GetGroupByExternalIdPreEvent.java} (61%)
copy
core/src/main/java/org/apache/gravitino/listener/api/event/{GetUserEvent.java
=> GetUserByExternalIdEvent.java} (57%)
copy
core/src/main/java/org/apache/gravitino/listener/api/event/{AlterSchemaFailureEvent.java
=> GetUserByExternalIdFailureEvent.java} (51%)
copy
core/src/main/java/org/apache/gravitino/listener/api/event/{AlterFilesetPreEvent.java
=> GetUserByExternalIdPreEvent.java} (54%)
copy
core/src/main/java/org/apache/gravitino/listener/api/event/{view/DropViewEvent.java
=> RemoveGroupByExternalIdEvent.java} (58%)
copy
core/src/main/java/org/apache/gravitino/listener/api/event/{ListFilesPreEvent.java
=> RemoveGroupByExternalIdFailureEvent.java} (59%)
copy
core/src/main/java/org/apache/gravitino/listener/api/event/{ListFilesPreEvent.java
=> RemoveGroupByExternalIdPreEvent.java} (61%)
copy
core/src/main/java/org/apache/gravitino/listener/api/event/{DeleteModelEvent.java
=> RemoveUserByExternalIdEvent.java} (52%)
copy
core/src/main/java/org/apache/gravitino/listener/api/event/{ListMetalakeFailureEvent.java
=> RemoveUserByExternalIdFailureEvent.java} (51%)
copy
core/src/main/java/org/apache/gravitino/listener/api/event/{AlterFilesetPreEvent.java
=> RemoveUserByExternalIdPreEvent.java} (54%)
create mode 100644
core/src/test/java/org/apache/gravitino/catalog/TestCapabilityHelpers.java
create mode 100644 design-docs/gravitino-role-assumption.md
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
create mode 100644
iceberg/iceberg-common/src/main/java/org/apache/gravitino/iceberg/common/ClosableJdbcCatalog.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/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
copy
iceberg/iceberg-rest-server/src/main/java/org/apache/gravitino/listener/api/event/{IcebergReplaceViewEvent.java
=> IcebergRegisterViewEvent.java} (73%)
copy
iceberg/iceberg-rest-server/src/main/java/org/apache/gravitino/listener/api/event/{IcebergReplaceViewFailureEvent.java
=> IcebergRegisterViewFailureEvent.java} (67%)
copy
iceberg/iceberg-rest-server/src/main/java/org/apache/gravitino/listener/api/event/{IcebergViewExistsEvent.java
=> IcebergRegisterViewPreEvent.java} (69%)
copy
iceberg/iceberg-rest-server/src/test/java/org/apache/gravitino/iceberg/integration/test/{IcebergRESTJdbcCatalogIT.java
=> IcebergRestKerberosJdbcCatalogIT.java} (51%)
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 dev/docker/kerberos-hive/check-status.sh =>
integration-test-common/docker-script/compose-env.sh (70%)
mode change 100755 => 100644
copy integration-test-common/docker-script/{docker-compose.yaml =>
docker-compose-trino-mysql.yaml} (51%)
copy
integration-test-common/src/test/java/org/apache/gravitino/integration/test/container/{PGImageName.java
=> DorisImageName.java} (55%)