This is an automated email from the ASF dual-hosted git repository.
jerryshao pushed a change to branch branch-domain-dev
in repository https://gitbox.apache.org/repos/asf/gravitino.git
from abac270b35 [#11196] feat(maintenance): Collect manifest statistics in
single-writer table cycles (#13717)
add 19d88d7bad [#13776] improvement(core): Report entity-store lock-wait
timeouts as conflicts (#13792)
add dc4b20e957 [#13510] feat(api): add AccessControlContent policy type
(#13511)
add 361b1e6565 [#13613] feat(k8s-job-executor): Add the k8s job executor
to run Spark jobs on Kubernetes (part 3/3) (#13700)
add 95ce9f5a23 [#13859] fix(authz): expose inaccessible object tag and
policy associations (#13863)
add e4b8b14221 [#13840] docs: Add Semantic Model user documentation
(#13842)
add 654106b5ca [#13735] fix(client-python): isolate per-request headers
(#13743)
add 28fd283135 [#13893] fix(cache): Recover late change logs and fence
cache publication (#13831)
add 3ec114aa28 [#13568] feat(iceberg): Add experimental Iceberg REST
auxiliary service (#13569)
add 830a19d86a [#11925] feat(trino-connector): Support views in Trino
connector (#11926)
add 9cc9084c14 [#13857] fix(server): Mask secrets in --updater-options and
--spark-conf job arguments (#13858)
add 8c2d91cebb [#13510] feat(common): add AccessControlContentDTO (#13901)
add 9c9ad50e72 [#13510][followup] fix(api): permit USE_SEMANTIC_MODEL in
AccessControlContent (#13905)
add 6f9f226c6b [#13870] fix(iceberg-rest): Load real tables named like
metadata tables in nested namespaces (#13874)
add 62a948972d [#13923] fix(starrocks): reject unsupported indexes when
creating tables (#13924)
add d8fb60ba33 [#13895] fix(iceberg): report missing views after native
rename (#13896)
add 6968f0b0ba [#13916] fix(jdbc): reject unsupported StarRocks and
OceanBase purge (#13917)
add 55cb0a3c77 [#6505] improvement(test): Reuse core database fixtures by
test class (#13518)
add 2e00a23e49 [#13616] feat(k8s-job-executor): Register the k8s job
executor, ship it and run built-in jobs on it (#13892)
add b8fa0f6352 [#13933] fix(spark-connector): Reuse Basic credentials for
routed Iceberg REST catalogs (#13935)
add f742f1100a [#13931] fix(lance): preserve externally owned registered
datasets (#13932)
add 8d1b4c14be [MINOR] fix(postgresql): drop constraint-backed indexes
correctly (#13922)
add d7e8b22ca5 [#13925] improvement(idp-basic): Require currentPassword
for self password change (#13926)
add 522fede897 [#13939] fix(spark-connector): List and load only Spark
Java functions (#13940)
add 409d1c4013 [#13943] fix(oceanbase): Escape table and column comments
(#13944)
add 026a660350 [#13927] fix(credential): handle AWS IRSA fallback and ADLS
paths (#13928)
add c4a9a856a2 [#13918] fix(doris): Reject adding auto-increment columns
(#13919)
add f5060c2359 [#13936] fix(server): expose metrics only on main server
(#13938)
add 2b41cab63f [MINOR] fix(server): Default JDBC drivers in catalog REST
APIs (#13942)
add 7555479b9d [#13617] feat(k8s-job-executor): Pass the environment
variables of a job template to the Spark driver and executors (#13948)
add 0f92ce4367 [#12616] feat(web-v2): Add Semantic Model support to the
Gravitino Web UI (#12900)
add f5128429b5 [#13969] fix(jdbc): Escape Doris and StarRocks partition
values (#13970)
add fdb03ed448 [#13964] fix(idp-basic): Make service-admin bootstrap
idempotent under races (#13965)
add 25bfe375f1 [#13971] fix(auth): preserve UnauthorizedException from
PrincipalMapper in JWKS validation (#13972)
add 3ce91977a2 [#13945] fix(jdbc): Honor pool wait settings and validate
MySQL table properties (#13946)
add 5a45beb1c7 [#13967] fix(spark-connector): Reuse token and reject
Kerberos for routed Iceberg REST catalogs (#13968)
add aa549f92f9 [#14026] fix(catalog-jdbc): Keep auto-increment when
updating column default value (#14027)
add c3843d68ee [#13999] fix(starrocks): Apply nullability and default
value when adding columns (#14004)
add f8cbcdd3f4 [#13980] fix(iceberg): Authorize table metrics reports
(#13981)
add 60cd039154 [#14017] fix(core): Return
JobTemplateAlreadyExistsException when renaming a job template to an existing
name (#14018)
add 5fb4a0fd4e [#13515] improvement(test): Speed up the core MySQL and
PostgreSQL test lanes with disposable database data (#13899)
add 997a61ef0b [#13978] fix(catalog-jdbc): Keep column default value when
updating column type (#13979)
add 7cad7718d0 [#14029] fix(core): Expose inferred credential-providers in
catalog properties (#14030)
add 02954c331b [#14014] fix(core): keep job status polling and staging
cleanup running after a failure (#14016)
add 9f8197917b [#13845] fix(server): Support authorized existence probing
for view loads (#13846)
add b748d734a5 [#14050] fix(jdbc): report non-empty schema drops
consistently (#14051)
add 4e900e8f18 [#13973][#13974] fix(catalog-jdbc): Escape column default
literals and table properties (#13975)
add bbb73f1a65 [#13977] fix(credential): Scope and validate cloud
credentials (#13987)
add f559909447 [#14031] fix(flink-connector): Validate credential
providers for Iceberg non-REST backends (#14032)
add b4097f31b2 [#14048] fix(catalog-jdbc): Clear comment when updating
with null (#14053)
add 3a445d8899 [#14062][#14063] fix(starrocks): Quote rename column names
and skip empty alter clauses (#14064)
add 2c7c308d9c [#14073] fix(catalog-jdbc): Quote reference column when
updating column position (#14075)
add 23c489d761 [#14046] fix(core): Settle a local job whose cancellation
its owner never answers (#14047)
add 5c8c1d99fe [#14039] fix(core): Return consistent conflicts for
metadata renames (#14040)
add af3a0f4c56 [#14125] improvement(trino-connector): Clarify that Iceberg
REST routing requires OAuth2 (#14126)
add 16af3f188f [#14021] fix(server): Honor X-Forwarded-For only from
trusted proxies (#14024)
add 641c58f4c0 [#12544] feat(ci): run pull request tests with contributor
fork resources (#13049)
add 8b2b30dbd2 [#14151] improvement(ci): Stop Fork CI on the first failed
job and report results faster (#14152)
add aa1efc1129 [#14189] improvement(ci): Stop requiring Fork CI and ASF
Allowlist Check (#14190)
add 1d73fb1b79 [#14022] fix(core): Honor the declared mode of event
listeners registered in code (#14023)
add 993ed4038a [#14056] fix(catalog-jdbc): Allow changing nullable column
without default to NOT NULL (#14057)
add 2fe1b28f68 [#14123] feat(fileset): Support managed and external type
conversion (#14124)
add d4d95ebfe5 [#14066] fix(starrocks): Map index types when loading
StarRocks tables (#14067)
add 3d4a0ce6f3 [#14127] fix(lineage): apply total queue capacity across
sinks (#14128)
add 25c3fb1289 [MINOR] fix(ci): keep Fork CI and allowlist statuses
visible (#14192)
add 10ba57615a [#14069] fix(core): Reject token credential providers on
catalogs without path-based credentials (#14080)
add c816482b8d [#14119] fix(fileset): Preserve metadata on cascade cleanup
failure (#14120)
add bda25bd5c1 [#12211] feat(client-python): split optional storage
dependencies (#13750)
add b182a168d0 [MINOR] improvement(ci): report Fork CI and ASF Allowlist
Check only as commit statuses (#14202)
add 38bc5dd156 [#11196] feat(maintenance): Trigger Iceberg manifest
rewrites from policies (#13533)
add 0e04956518 [#13798] feat(flink): Support JDBC catalogs without a
default database (#13876)
add f15d374bb7 [MINOR] docs: Clarify issue-linking syntax in
CONTRIBUTING.md and PR template (#13852)
add 17e7b77283 [#14231] fix(secret): Omit reserved+hidden properties from
getSecrets (#14232)
add 6c35c8ed35 [#13860] improvement(core): Chunk the versioned cascade
soft delete of schemas and catalogs (#13861)
add 00eafa5ed9 [MINOR] feat(policy): Persist snapshot-expiration fields
and validate Iceberg policy content (#14229)
add 0562a9047b [#13703] feat(k8s-job-executor): Apply spark_conf of a
built-in job when submitting it (#13982)
add ad1d688764 [#13994] refactor(catalog-hive): Remove the unused table
close that closes the shared client pool (#13998)
add d4cad80ee9 [#13323] test(client): Add Ray Data Iceberg REST contract
tests (#13325)
add 8dae37b512 [#14037] docs: Design schema-level Semantic Model metric
discovery (#14038)
add be91ee91e7 [#13800] feat(policy): Maintenance execution peers on
Iceberg contents (#13885)
add 6869fbb797 [#13800] feat(policy): Flat peer SerDe, DTO round-trips,
minIntervalMs defaults (#13887)
add 33151dbee7 [#13797] feat(tms): Add cluster-static
gravitinoAuth/ircAuth overlay bags (#13865)
add 88c3f0d12e [#14065] feat(tms): In-job recommenders and terminal
occupancy reclaim (#14054)
add 43e3933c8b [#13983] feat(tms): Register policy timeTrigger on the
expand scheduler (#13897)
add fb255f9885 [#13984] feat(tms): Nearest-policy resolver and expand
table enumerator (#14055)
add d5743b19ee [#14205] feat(tms): Before/after metrics and finish REST
for in-job actions (#14121)
add b27fe4d9a4 [#14227] refactor(policy): Align PolicyExecutionSpec with
module value-object conventions (#14228)
add f005473680 [#14215] feat(tms): Policy-expand pipeline into cron-job
enqueue API
add 02c746141e [#14216] feat(tms): Build enqueue-time jobConf specs for
cron
add c4ab2879a7 [#14217] feat(tms): Relational cron-job enqueue with
snapshot batches
add 116c974ad0 [#14020] feat(tms): Cron-pool submit pipeline and scheduler
pool wiring
add 0763327dc8 [#14218] feat(tms): Commit-chain collection and auth
consistency
add 3217b14f70 [#14219] feat(tms): Enqueue commit-job specs from IRC
updates
add 14350006d2 [#14220] docs(tms): Document enqueue-time commit-job specs
add 991788f35f [#14221] feat(tms): Built-in TMS Iceberg maintenance Spark
job
add 266db26cbc [#14222] refactor(tms): Rename plugins/tms to
plugins/maintenance and add plugin ITs
add 85725e52fe [#14222] test(tms): Add BaseIT expand→cron and IRC→commit
enqueue coverage
add 9788abefb6 [#14222] ci(tms): Wire TMS Test into Fork CI like idp-basic
add f356e785fe [#13760] fix(policy): Reconcile snapshot-expiration
thresholds with execution peers
add 9d8111643d [#14138] refactor(core): Split Semantic Model definition
storage (#14139)
No new revisions were added by this update.
Summary of changes:
.asf.yaml | 3 +
.github/PULL_REQUEST_TEMPLATE | 2 +-
.github/actions/checkout-and-sync/action.yml | 139 +++
.github/scripts/allowlist-pr.cjs | 94 ++
.github/scripts/fail-fast.cjs | 90 ++
.github/scripts/fork-ci-status.cjs | 197 ++++
.github/scripts/publish-ci-status.cjs | 70 ++
.github/scripts/resolve-fork-ci.cjs | 103 ++
.github/scripts/retire-fork-ci.cjs | 54 +
.github/scripts/tests/fork-ci.test.cjs | 1182 +++++++++++++++++++
.github/scripts/tests/retire-fork-ci.test.cjs | 101 ++
.github/scripts/update-fork-ci.cjs | 209 ++++
.../access-control-integration-test-action.yml | 29 +
.../workflows/access-control-integration-test.yml | 45 +-
.github/workflows/asf-allowlist-check.yml | 38 +-
.github/workflows/asf-allowlist-trusted.yml | 72 ++
.github/workflows/auto-cherry-pick.yml | 3 +
.../workflows/backend-integration-test-action.yml | 34 +-
.github/workflows/backend-integration-test.yml | 71 +-
.github/workflows/build.yml | 132 ++-
.github/workflows/chart-test.yaml | 61 +-
.github/workflows/conflict-marker-check.yml | 3 +-
.github/workflows/contrib-catalog-test.yml | 53 +-
.github/workflows/cron-integration-test.yml | 23 +-
.../workflows/flink-integration-test-action.yml | 29 +
.github/workflows/flink-integration-test.yml | 61 +-
.github/workflows/fork-ci-status-update.yml | 121 ++
.github/workflows/fork-ci-status.yml | 28 +
.github/workflows/fork-ci.yml | 334 ++++++
.github/workflows/frontend-integration-test.yml | 51 +-
.../iceberg-rest-trino-integration-test-action.yml | 29 +
.../iceberg-rest-trino-integration-test.yml | 45 +-
.github/workflows/idp-basic-test-action.yml | 29 +
.github/workflows/idp-basic-test.yml | 45 +-
.../workflows/lance-compatibility-matrix-test.yml | 3 +
.../maintenance-integration-test-action.yml | 29 +
.github/workflows/maintenance-integration-test.yml | 61 +-
.github/workflows/mcp-integration-test-action.yml | 29 +
.github/workflows/mcp-integration-test.yml | 45 +-
.../workflows/python-integration-test-action.yml | 29 +
.github/workflows/python-integration-test.yml | 56 +-
.github/workflows/ray-iceberg-it-action.yml | 71 ++
.../workflows/spark-integration-test-action.yml | 29 +
.github/workflows/spark-integration-test.yml | 66 +-
...p-basic-test-action.yml => tms-test-action.yml} | 56 +-
.github/workflows/tms-test.yml | 94 ++
.../workflows/trino-integration-test-action.yml | 29 +
.github/workflows/trino-integration-test.yml | 45 +-
.github/workflows/web-ui-tests.yml | 73 +-
CONTRIBUTING.md | 52 +-
NOTICE.bin | 10 +-
.../org/apache/gravitino/SupportsCatalogs.java | 3 +-
.../org/apache/gravitino/SupportsMetalakes.java | 3 +-
.../org/apache/gravitino/file/FilesetCatalog.java | 3 +-
.../org/apache/gravitino/file/FilesetChange.java | 61 +-
.../org/apache/gravitino/job/SupportsJobs.java | 5 +-
.../org/apache/gravitino/model/ModelCatalog.java | 3 +-
.../policy/AbstractExecutablePolicyContent.java | 112 ++
.../gravitino/policy/AccessControlContent.java | 198 ++++
...sPolicies.java => ExecutablePolicyContent.java} | 21 +-
.../policy/IcebergDataCompactionContent.java | 216 +++-
.../policy/IcebergOrphanFileRemovalContent.java | 36 +-
.../policy/IcebergRewriteManifestsContent.java | 192 +++-
.../policy/IcebergSnapshotExpirationContent.java | 141 ++-
.../java/org/apache/gravitino/policy/Policy.java | 3 +
.../org/apache/gravitino/policy/PolicyContent.java | 11 +-
.../apache/gravitino/policy/PolicyContents.java | 269 ++++-
.../gravitino/policy/PolicyExecutionSpec.java | 246 ++++
.../org/apache/gravitino/policy/PolicyList.java | 61 +
.../apache/gravitino/policy/PolicyOperations.java | 3 +-
.../apache/gravitino/policy/SupportsPolicies.java | 27 +
.../org/apache/gravitino/rel/TableCatalog.java | 3 +-
.../org/apache/gravitino/rel/indexes/Index.java | 9 +-
.../apache/gravitino/secret/SupportsSecrets.java | 7 +-
.../org/apache/gravitino/tag/SupportsTags.java | 26 +
.../java/org/apache/gravitino/tag/TagList.java | 61 +
.../apache/gravitino/file/TestFilesetChange.java | 18 +
.../TestIcebergOrphanFileRemovalContent.java | 18 +
.../policy/TestIcebergRewriteManifestsContent.java | 69 ++
.../TestIcebergSnapshotExpirationContent.java | 70 ++
.../gravitino/policy/TestPolicyBuiltInType.java | 11 +
.../gravitino/policy/TestPolicyContents.java | 255 +++++
.../gravitino/policy/TestPolicyExecutionSpec.java | 116 ++
build.gradle.kts | 5 +-
.../oss/credential/OSSTokenGenerator.java | 42 +-
.../oss/credential/TestOSSTokenGenerator.java | 45 +
.../s3/credential/AwsIrsaCredentialGenerator.java | 78 +-
.../gravitino/s3/credential/S3TokenGenerator.java | 3 +-
.../credential/TestAwsIrsaCredentialGenerator.java | 83 +-
.../abs/credential/ADLSTokenGenerator.java | 126 +-
.../abs/credential/TestADLSTokenGenerator.java | 227 ++++
.../operations/ClickHouseDatabaseOperations.java | 7 +-
.../operations/ClickHouseTableOperations.java | 41 +-
.../operations/TestClickHouseDatabaseDrop.java | 78 ++
.../operations/TestClickHouseTableOperations.java | 80 +-
.../TestClickHouseTableOperationsUnit.java | 37 +
.../HologresColumnDefaultValueConverter.java | 15 +-
.../operation/HologresTableOperations.java | 4 +-
.../TestHologresColumnDefaultValueConverter.java | 27 +
.../operation/TestHologresTableOperations.java | 12 +
.../operation/OceanBaseTableOperations.java | 53 +-
.../integration/test/CatalogOceanBaseIT.java | 6 +-
.../operation/TestOceanBaseTableOperations.java | 239 +++-
.../TestOceanBaseTableOperationsSqlGeneration.java | 139 +++
.../lakehouse/iceberg/IcebergConstants.java | 4 +
.../catalog/fileset/FilesetCatalogOperations.java | 267 ++---
.../fileset/TestFilesetCatalogCredential.java | 10 +
.../fileset/TestFilesetCatalogOperations.java | 641 +++++++++++
.../apache/gravitino/catalog/glue/GlueCatalog.java | 5 +
.../apache/gravitino/catalog/hive/HiveCatalog.java | 5 +
.../gravitino/catalog/hive/HiveTableHandle.java | 4 -
.../catalog/hive/HiveTableOperations.java | 3 +-
.../catalog/hive/HiveViewCatalogOperations.java | 128 ++-
.../gravitino/catalog/hive/TestHiveCatalog.java | 25 +
.../catalog/hive/TestHiveCatalogOperations.java | 487 +++++++-
catalogs/catalog-jdbc-common/build.gradle.kts | 1 +
.../apache/gravitino/catalog/jdbc/JdbcCatalog.java | 5 +
.../jdbc/JdbcCatalogPropertiesMetadata.java | 7 +
.../converter/JdbcColumnDefaultValueConverter.java | 33 +-
.../jdbc/operation/JdbcDatabaseOperations.java | 8 +-
.../jdbc/operation/JdbcTableOperations.java | 65 +-
.../catalog/jdbc/utils/DataSourceUtils.java | 7 +-
.../catalog/jdbc/TestJdbcCatalogCredential.java | 4 +
.../jdbc/TestJdbcCatalogPropertiesMetadata.java | 86 ++
.../TestJdbcColumnDefaultValueConverter.java | 45 +
.../jdbc/operation/TestJdbcDatabaseDrop.java | 70 ++
.../jdbc/operation/TestJdbcTableOperations.java | 65 ++
.../DorisColumnDefaultValueConverter.java | 38 +
.../doris/operation/DorisDatabaseOperations.java | 23 +-
.../doris/operation/DorisTableOperations.java | 134 ++-
.../gravitino/catalog/doris/utils/DorisUtils.java | 25 +-
.../TestDorisColumnDefaultValueConverter.java | 12 +
.../doris/integration/test/CatalogDoris2xIT.java | 44 +
.../doris/integration/test/CatalogDoris3xIT.java | 45 +
.../doris/integration/test/CatalogDoris4xIT.java | 45 +
.../doris/operation/TestDorisDatabaseDrop.java | 69 ++
.../operation/TestDorisDatabaseOperations.java | 19 +
.../TestDorisDatabasePropertiesOperations.java | 96 ++
.../operation/TestDorisPartitionSqlGeneration.java | 115 ++
.../doris/operation/TestDorisTableOperations.java | 129 +++
.../TestDorisTableOperationsSqlGeneration.java | 276 ++++-
.../TestDorisTablePartitionOperations.java | 87 ++
.../catalog/doris/utils/TestDorisUtils.java | 84 ++
.../mysql/MysqlTablePropertiesMetadata.java | 34 +-
.../mysql/operation/MysqlTableOperations.java | 64 +-
.../mysql/TestMysqlTablePropertiesMetadata.java | 222 ++++
.../mysql/operation/TestMysqlTableOperations.java | 234 +++-
.../TestMysqlTableOperationsSqlGeneration.java | 97 ++
.../PostgreSqlColumnDefaultValueConverter.java | 15 +-
.../operation/PostgreSqlTableOperations.java | 62 +-
.../TestPostgreSqlColumnDefaultValueConverter.java | 65 ++
.../integration/test/CatalogPostgreSqlIT.java | 53 +-
.../operation/TestPostgreSqlTableOperations.java | 162 ++-
...TestPostgreSqlTableOperationsSqlGeneration.java | 49 +
catalogs/catalog-jdbc-starrocks/build.gradle.kts | 1 +
.../operations/StarRocksDatabaseOperations.java | 6 +-
.../operations/StarRocksTableOperations.java | 123 +-
.../catalog/starrocks/utils/StarRocksUtils.java | 31 +-
.../integration/test/CatalogStarRocksIT.java | 28 +
.../TestStarRocksPartitionSqlGeneration.java | 117 ++
.../operation/TestStarRocksTableOperations.java | 191 ++++
.../TestStarRocksTableOperationsSqlGeneration.java | 299 ++++-
.../TestStarRocksTablePartitionOperations.java | 87 ++
.../operations/TestStarRocksDatabaseDrop.java | 69 ++
.../starrocks/utils/TestStarRocksUtils.java | 95 ++
.../gravitino/catalog/kafka/KafkaCatalog.java | 5 +
.../catalog/kafka/TestKafkaCatalogOperations.java | 8 +
.../catalog/lakehouse/generic/GenericCatalog.java | 5 +
.../generic/GenericCatalogOperations.java | 5 +-
.../lakehouse/lance/LanceTableOperations.java | 45 +-
.../generic/TestGenericCatalogOperations.java | 144 +++
.../lakehouse/lance/TestLanceTableOperations.java | 285 +++++
.../catalog/lakehouse/hudi/HudiCatalog.java | 5 +
.../iceberg/IcebergTablePropertiesMetadata.java | 6 +
.../iceberg/IcebergViewCatalogOperations.java | 65 +-
.../iceberg/ops/IcebergCatalogWrapperHelper.java | 3 +
.../iceberg/utils/IcebergTablePropertiesUtil.java | 2 +
.../lakehouse/iceberg/TestIcebergCatalog.java | 11 +
.../TestIcebergTablePropertiesMetadata.java | 15 +
.../iceberg/TestIcebergViewCatalogOperations.java | 166 +++
.../iceberg/ops/TestIcebergTableUpdate.java | 11 +
.../utils/TestIcebergTablePropertiesUtil.java | 56 +
.../catalog/lakehouse/paimon/PaimonCatalog.java | 5 +
.../gravitino/catalog/model/ModelCatalogImpl.java | 5 +
.../catalog/model/ModelCatalogOperations.java | 15 +-
.../catalog/model/TestModelCatalogOperations.java | 38 +
.../apache/gravitino/client/BaseSchemaCatalog.java | 22 +
.../org/apache/gravitino/client/DTOConverters.java | 3 +
.../org/apache/gravitino/client/GenericColumn.java | 11 +
.../apache/gravitino/client/GenericFileset.java | 22 +
.../apache/gravitino/client/GenericFunction.java | 11 +
.../org/apache/gravitino/client/GenericModel.java | 22 +
.../org/apache/gravitino/client/GenericSchema.java | 22 +
.../gravitino/client/GenericSemanticModel.java | 26 +
.../org/apache/gravitino/client/GenericTopic.java | 22 +
.../org/apache/gravitino/client/GenericView.java | 11 +
.../client/MetadataObjectPolicyOperations.java | 31 +-
.../client/MetadataObjectTagOperations.java | 32 +-
.../apache/gravitino/client/RelationalTable.java | 22 +
.../gravitino/client/TestFilesetCatalog.java | 25 +
.../gravitino/client/TestSupportPolicies.java | 23 +-
.../apache/gravitino/client/TestSupportTags.java | 21 +-
.../gravitino/client/integration/test/JobIT.java | 9 +
.../test/authorization/FilesetAuthorizationIT.java | 50 +
.../test/authorization/PolicyAuthorizationIT.java | 89 ++
.../TagOperationsAuthorizationIT.java | 61 +
clients/client-python/MANIFEST.in | 6 +
clients/client-python/build.gradle.kts | 61 +
clients/client-python/gravitino/__init__.py | 29 +-
.../gravitino/api/file/fileset_change.py | 51 +-
.../gravitino/api/rel/indexes/index.py | 9 +
.../client-python/gravitino/api/tag/__init__.py | 2 +
.../gravitino/api/tag/supports_tags.py | 17 +
.../gravitino/api/tag/{__init__.py => tag_list.py} | 24 +-
.../gravitino/client/base_schema_catalog.py | 7 +
.../gravitino/client/fileset_catalog.py | 2 +
.../gravitino/client/generic_column.py | 7 +
.../gravitino/client/generic_fileset.py | 9 +-
.../gravitino/client/generic_function.py | 9 +
.../gravitino/client/generic_model.py | 8 +-
.../gravitino/client/generic_schema.py | 7 +
.../gravitino/client/generic_semantic_model.py | 7 +
.../client-python/gravitino/client/generic_view.py | 7 +
.../client/metadata_object_tag_operations.py | 30 +-
.../gravitino/client/relational_table.py | 7 +
.../dto/requests/fileset_update_request.py | 20 +
.../gravitino/dto/responses/tag_response.py | 13 +-
.../gravitino/filesystem/gvfs_storage_handler.py | 36 +-
.../client-python/gravitino/utils/http_client.py | 20 +-
.../client-python/requirements-azure.txt | 2 +-
clients/client-python/requirements-dev.txt | 8 +
.../client-python/requirements-gcs.txt | 2 +-
.../client-python/requirements-gvfs.txt | 5 +-
.../client-python/requirements-hdfs.txt | 2 +-
.../client-python/requirements-oss.txt | 2 +-
.../client-python/requirements-ray-iceberg.txt | 7 +-
.../client-python/requirements-s3.txt | 2 +-
clients/client-python/requirements.txt | 14 +-
clients/client-python/setup.py | 58 +-
.../tests/integration/integration_test_env.py | 16 +-
.../tests/integration/test_fileset_catalog.py | 26 +
.../tests/integration/test_ray_iceberg.py | 265 +++++
.../tests/unittests/dto/rel/test_index_serdes.py | 18 +
clients/client-python/tests/unittests/mock_base.py | 4 +-
...t_client_import_without_storage_dependencies.py | 103 ++
.../tests/unittests/test_fileset_type_change.py | 71 ++
.../tests/unittests/test_http_client_headers.py | 174 +++
.../tests/unittests/test_integration_test_env.py | 146 +++
.../tests/unittests/test_package_metadata.py | 173 +++
.../tests/unittests/test_storage_handler.py | 97 +-
.../client-python/tests/unittests/test_tag_api.py | 54 +-
.../credential/CredentialProviderDelegator.java | 2 +
.../gravitino/credential/RoleSessionNameUtils.java | 51 +
.../gravitino/dto/policy/PolicyContentDTO.java | 765 ++++++++++++-
.../org/apache/gravitino/dto/policy/PolicyDTO.java | 5 +-
.../dto/requests/FilesetUpdateRequest.java | 33 +
.../dto/requests/PolicyCreateRequest.java | 5 +-
.../dto/requests/PolicyUpdateRequest.java | 12 +-
....java => MetadataObjectPolicyListResponse.java} | 51 +-
...nse.java => MetadataObjectTagListResponse.java} | 46 +-
.../gravitino/dto/responses/NameListResponse.java | 2 +
.../dto/responses/PolicyListResponse.java | 2 +
...stResponse.java => PolicyNameListResponse.java} | 47 +-
.../gravitino/dto/responses/TagListResponse.java | 2 +
...gListResponse.java => TagNameListResponse.java} | 47 +-
.../apache/gravitino/dto/util/DTOConverters.java | 68 +-
.../json/ExecutablePolicyContentSerde.java | 396 +++++++
.../java/org/apache/gravitino/json/JsonUtils.java | 49 +-
.../credential/TestRoleSessionNameUtils.java | 53 +
.../dto/policy/TestManifestRewritePolicyDTO.java | 154 +++
.../dto/policy/TestOrphanFileRemovalPolicyDTO.java | 29 +
.../gravitino/dto/policy/TestPolicyContentDTO.java | 58 +
.../apache/gravitino/dto/policy/TestPolicyDTO.java | 144 +++
...iteManifestsAndSnapshotExpirationPolicyDTO.java | 50 +
...O.java => TestSnapshotExpirationPolicyDTO.java} | 100 +-
.../dto/requests/TestFilesetUpdatesRequest.java | 45 +
.../gravitino/dto/responses/TestResponses.java | 78 ++
.../gravitino/dto/util/TestDTOConverters.java | 28 +
conf/gravitino-optimizer.conf.template | 6 +
conf/gravitino.conf.template | 18 +
core/build.gradle.kts | 10 +
.../cache/it/AbstractEntityStorageBenchmark.java | 8 +
.../main/java/org/apache/gravitino/Configs.java | 31 +-
.../java/org/apache/gravitino/EntityStore.java | 21 +
.../java/org/apache/gravitino/GravitinoEnv.java | 27 +-
.../apache/gravitino/cache/BaseEntityCache.java | 8 +-
.../gravitino/cache/SupportsEntityStoreCache.java | 6 +
.../catalog/CatalogChangeLogListener.java | 55 +-
.../apache/gravitino/catalog/CatalogManager.java | 137 +--
.../gravitino/catalog/JdbcDriverProperties.java | 94 ++
.../gravitino/catalog/ManagedTableOperations.java | 15 +-
.../catalog/SchemaOperationDispatcher.java | 6 +
.../catalog/TableOperationDispatcher.java | 3 +
.../catalog/TopicOperationDispatcher.java | 6 +
.../gravitino/catalog/ViewOperationDispatcher.java | 6 +
.../apache/gravitino/connector/BaseCatalog.java | 61 +-
.../connector/HiddenPropertyMaskUtils.java | 141 ++-
.../gravitino/credential/CredentialUtils.java | 14 +
.../job/BuiltInJobTemplateEventListener.java | 177 ++-
.../apache/gravitino/job/JobExecutorFactory.java | 60 +-
.../java/org/apache/gravitino/job/JobManager.java | 289 +++--
.../gravitino/job/JobOperationDispatcher.java | 5 +-
.../gravitino/job/JobRuntimeTemplateMaskUtils.java | 214 ++++
.../gravitino/job/local/SparkProcessBuilder.java | 7 +-
.../gravitino/listener/AsyncQueueListener.java | 48 +-
.../org/apache/gravitino/listener/EventBus.java | 18 +-
.../gravitino/listener/EventListenerManager.java | 109 +-
.../gravitino/listener/JobEventDispatcher.java | 10 +-
.../api/event/server/HttpRequestEvent.java | 13 +-
.../api/event/server/HttpRequestFailureEvent.java | 5 +-
.../gravitino/listener/api/info/JobInfo.java | 24 +-
.../maintenance/policy/MaintenanceAuthConfigs.java | 432 +++++++
.../policy/MaintenanceMinIntervalConfigs.java | 142 +++
.../policy/MaintenancePolicyDefinition.java | 62 +
.../policy/MaintenancePolicyDefinitions.java | 100 ++
.../org/apache/gravitino/meta/PolicyEntity.java | 38 +-
.../apache/gravitino/metalake/MetalakeManager.java | 13 +-
.../source/EntityChangeLogMetricsSource.java | 18 +
.../gravitino/policy/ObjectPolicyResolver.java | 132 ++-
.../org/apache/gravitino/policy/PolicyManager.java | 28 +-
.../gravitino/policy/hook/PolicyLifecycleHook.java | 88 ++
.../policy/hook/PolicyLifecycleHooks.java | 66 ++
.../gravitino/secret/SecretPropertyUtils.java | 20 +-
.../relational/EntityCacheChangeLogListener.java | 10 +-
.../relational/EntityChangeLogListener.java | 25 +-
.../storage/relational/EntityChangeLogPoller.java | 330 +++++-
.../gravitino/storage/relational/JDBCBackend.java | 82 +-
.../storage/relational/RelationalBackend.java | 21 +
.../storage/relational/RelationalEntityStore.java | 188 ++-
.../relational/mapper/EntityChangeLogMapper.java | 21 +
.../mapper/EntityChangeLogSQLProviderFactory.java | 21 +
.../relational/mapper/PolicyMetaMapper.java | 31 +
.../mapper/PolicyMetaSQLProviderFactory.java | 4 +
.../relational/mapper/SemanticModelMetaMapper.java | 9 +-
.../provider/base/CatalogMetaBaseSQLProvider.java | 11 +-
.../base/EntityChangeLogBaseSQLProvider.java | 42 +-
.../provider/base/PolicyMetaBaseSQLProvider.java | 27 +
.../provider/base/SchemaMetaBaseSQLProvider.java | 11 +-
.../base/SemanticModelMetaBaseSQLProvider.java | 9 +-
.../SemanticModelVersionInfoBaseSQLProvider.java | 10 +-
.../postgresql/CatalogMetaPostgreSQLProvider.java | 6 +-
.../EntityChangeLogPostgreSQLProvider.java | 6 +
.../postgresql/SchemaMetaPostgreSQLProvider.java | 6 +-
.../gravitino/storage/relational/po/PolicyPO.java | 3 +
.../storage/relational/po/SemanticModelPO.java | 56 +-
.../relational/po/SemanticModelVersionInfoPO.java | 22 +-
.../service/ModelVersionMetaService.java | 2 +
.../relational/service/OccWriteSupport.java | 23 +-
.../relational/service/PolicyMetaService.java | 91 +-
.../relational/service/SchemaMetaService.java | 50 +-
.../service/SemanticModelMetaService.java | 10 +-
.../relational/service/StatisticMetaService.java | 48 +-
.../relational/service/TableMetaService.java | 35 +
.../storage/relational/service/TagMetaService.java | 6 +
.../storage/relational/session/SqlSessions.java | 25 +-
.../storage/relational/utils/ExceptionUtils.java | 186 +++
.../storage/relational/utils/POConverters.java | 4 +-
.../apache/gravitino/tag/EffectiveTagResolver.java | 89 +-
.../java/org/apache/gravitino/tag/TagManager.java | 12 +-
.../org/apache/gravitino/utils/RenameUtils.java | 51 +
.../org/apache/gravitino/utils/RequestContext.java | 7 +-
.../java/org/apache/gravitino/TestCatalog.java | 5 +
.../apache/gravitino/TestGravitinoEnvShutdown.java | 104 ++
.../apache/gravitino/audit/DummyAuditWriter.java | 7 +-
.../apache/gravitino/audit/TestAuditManager.java | 28 +
.../authorization/TestAccessControlManager.java | 8 +
.../gravitino/authorization/TestOwnerManager.java | 8 +
.../cache/TestEntityCachePublicationRace.java | 272 +++++
.../catalog/TestCatalogChangeLogListener.java | 59 +-
.../gravitino/catalog/TestCatalogManager.java | 366 +++++-
.../catalog/TestCatalogMutationMarkerRace.java | 70 ++
.../gravitino/catalog/TestCatalogWrapperLease.java | 22 +-
.../catalog/TestJdbcDriverProperties.java | 99 ++
.../catalog/TestSchemaOperationDispatcher.java | 40 +
.../catalog/TestTableOperationDispatcher.java | 31 +
.../catalog/TestTopicOperationDispatcher.java | 43 +
.../catalog/TestViewOperationDispatcher.java | 50 +
.../TestBaseCatalogCredentialProviders.java | 203 ++++
.../connector/TestHiddenPropertyMaskUtils.java | 43 +
.../gravitino/hook/TestFilesetHookDispatcher.java | 8 +
.../job/TestBuiltInJobTemplateEventListener.java | 184 ++-
.../gravitino/job/TestJobExecutorFactory.java | 43 +
.../org/apache/gravitino/job/TestJobManager.java | 525 +++++++++
.../gravitino/job/TestJobManagerMultiNode.java | 47 +-
.../job/TestJobRuntimeTemplateMaskUtils.java | 264 +++++
.../job/local/TestSparkProcessBuilder.java | 24 +
.../gravitino/listener/TestAsyncQueueListener.java | 120 ++
.../listener/TestEventListenerManager.java | 206 ++++
.../listener/api/event/TestJobEventDispatcher.java | 54 +
.../gravitino/listener/api/info/TestJobInfo.java | 49 +
.../policy/TestMaintenanceAuthConfigs.java | 342 ++++++
.../policy/TestMaintenanceMinIntervalConfigs.java | 134 +++
.../gravitino/metalake/TestMetalakeManager.java | 3 +
.../gravitino/policy/TestObjectPolicyResolver.java | 51 +-
.../apache/gravitino/policy/TestPolicyManager.java | 73 ++
.../policy/hook/TestPolicyLifecycleHooks.java | 59 +
.../gravitino/secret/TestSecretPropertyUtils.java | 32 +
.../gravitino/stats/TestStatisticManager.java | 8 +
.../storage/AbstractEntityStorageTest.java | 20 +-
.../apache/gravitino/storage/TestSQLScripts.java | 3 +
.../storage/relational/BackendTestExtension.java | 311 +++--
.../storage/relational/DatabaseFixture.java | 33 +-
.../storage/relational/DatabaseResetter.java | 146 +++
.../storage/relational/ResetStrategy.java | 43 +
.../relational/TestBackendTestExtension.java | 434 +++++++
.../relational/TestCacheCommitOrdering.java | 119 ++
.../relational/TestEntityChangeLogPoller.java | 584 ++++++++++
.../storage/relational/TestJDBCBackend.java | 71 +-
.../relational/TestRelationalEntityStore.java | 19 +
...elationalEntityStoreBackendLockWaitTimeout.java | 171 +++
...TestRelationalEntityStoreHierarchicalCache.java | 9 +
.../TestRelationalEntityStoreLockWaitTimeout.java | 522 +++++++++
.../storage/relational/TestRenameConflicts.java | 311 +++++
.../storage/relational/TestResetStrategy.java | 95 ++
.../relational/TestSemanticModelJDBCBackend.java | 147 ++-
.../provider/base/TestEntityChangeLogMapper.java | 41 +
.../base/TestPolicyMetaBaseSQLProvider.java | 25 +-
.../storage/relational/po/TestSemanticModelPO.java | 191 ++++
.../relational/service/TestCatalogMetaService.java | 57 +
.../service/TestModelVersionMetaService.java | 2 +-
.../relational/service/TestOccWriteSupport.java | 51 +
.../relational/service/TestPolicyMetaService.java | 178 +++
.../relational/service/TestSchemaMetaService.java | 167 +++
.../service/TestSemanticModelMetaService.java | 14 +-
.../service/TestStatisticMetaService.java | 48 +-
.../relational/service/TestTableMetaService.java | 18 +
.../relational/utils/TestExceptionUtils.java | 204 ++++
.../storage/relational/utils/TestPOConverters.java | 168 +++
.../gravitino/tag/TestEffectiveTagResolver.java | 29 +
.../org/apache/gravitino/tag/TestTagManager.java | 40 +
.../apache/gravitino/utils/TestRenameUtils.java | 63 +
design-docs/gravitino-local-authentication.md | 32 +-
.../gravitino-schema-metrics-discovery-design.md | 407 +++++++
design-docs/gravitino-semantic-model-design.md | 21 +-
.../iceberg-expire-snapshots-maintenance-job.md | 578 +++-------
design-docs/table-maintenance-service-design.md | 162 ++-
.../resources/gravitino-iceberg-rest-server.conf | 3 +-
.../gravitino-iceberg-rest-server/values.yaml | 2 +
.../resources/gravitino-lance-rest-server.conf | 1 +
dev/charts/gravitino-lance-rest-server/values.yaml | 2 +
dev/docker/iceberg-rest-server/rewrite_config.py | 1 +
dev/docker/lance-rest-server/rewrite_config.py | 3 +-
docs/build.gradle.kts | 12 +
docs/development/custom-job-executor.md | 3 +
docs/fileset-catalog-with-adls.md | 2 +-
docs/fileset-catalog-with-gcs.md | 2 +-
docs/fileset-catalog-with-oss.md | 2 +-
docs/fileset-catalog-with-s3.md | 2 +-
docs/filesets.md | 22 +-
docs/flink-connector/flink-catalog-iceberg.md | 9 +
docs/gravitino-mcp-server.md | 2 +
docs/gravitino-server-config.md | 124 +-
docs/how-to-test.md | 38 +-
docs/how-to-use-gvfs.md | 13 +-
docs/how-to-use-python-client.md | 60 +-
docs/iceberg-rest-service.md | 33 +-
docs/iceberg-rewrite-manifests-policy.md | 105 ++
docs/index.md | 3 +
docs/jdbc-clickhouse-catalog.md | 2 +-
docs/jdbc-doris-catalog.md | 4 +-
docs/jdbc-hologres-catalog.md | 21 +-
docs/jdbc-mysql-catalog.md | 6 +-
docs/jdbc-oceanbase-catalog.md | 9 +-
docs/jdbc-postgresql-catalog.md | 2 +-
docs/jdbc-starrocks-catalog.md | 19 +-
docs/lakehouse-generic-lance-table.md | 9 +-
docs/lakehouse-iceberg-catalog.md | 1 +
docs/lance-rest-service.md | 23 +-
docs/lineage/gravitino-server-lineage.md | 6 +
docs/manage-fileset-metadata-using-gravitino.md | 53 +
docs/manage-jobs-in-gravitino.md | 31 +-
docs/manage-policies-in-gravitino.md | 35 +-
...nage-semantic-model-metadata-using-gravitino.md | 596 ++++++++++
docs/manage-tags-in-gravitino.md | 50 +-
docs/metrics.md | 66 +-
docs/migration-guide.md | 17 +
docs/open-api/filesets.yaml | 28 +
docs/open-api/idp/idp.yaml | 148 ++-
docs/open-api/idp/openapi.yaml | 6 +
docs/open-api/maintenance/maintenance.yaml | 224 ++++
docs/open-api/{idp => maintenance}/openapi.yaml | 38 +-
docs/open-api/models.yaml | 9 +
docs/open-api/policies.yaml | 196 +++-
docs/open-api/semantic-models.yaml | 15 +-
docs/open-api/tags.yaml | 50 +-
docs/policies.md | 27 +-
docs/security/credential-vending.md | 34 +-
docs/security/local-users-and-groups.md | 46 +-
docs/semantic-models.md | 102 ++
docs/spark-connector/spark-catalog-iceberg.md | 6 +
.../optimizer-cli-reference.md | 44 +-
.../optimizer-configuration.md | 261 ++++-
.../optimizer-troubleshooting.md | 15 +-
docs/table-maintenance-service/optimizer.md | 9 +-
docs/trino-connector/installation.md | 5 +
docs/trino-connector/sql-support.md | 32 +
.../connector/iceberg/GravitinoIcebergCatalog.java | 93 +-
.../iceberg/IcebergPropertiesConstants.java | 9 +
.../flink/connector/jdbc/GravitinoJdbcCatalog.java | 58 +-
.../jdbc/GravitinoJdbcCatalogFactory.java | 7 +-
.../connector/jdbc/JdbcPropertiesConverter.java | 21 +
.../iceberg/TestGravitinoIcebergCatalog.java | 159 +++
.../iceberg/TestGravitinoIcebergCatalogOpen.java | 133 +++
.../connector/integration/test/FlinkCommonIT.java | 35 +-
.../test/jdbc/FlinkJdbcMysqlCatalogIT.java | 76 ++
.../AbstractJdbcPropertiesConverterTestSuite.java | 21 +
.../connector/jdbc/TestGravitinoJdbcCatalog.java | 47 +-
gradle/libs.versions.toml | 6 +
.../gravitino/iceberg/common/IcebergConfig.java | 10 +
.../iceberg/common/ops/IcebergCatalogWrapper.java | 42 +-
.../common/ops/TestIcebergCatalogWrapper.java | 59 +
.../build.gradle.kts | 93 ++
iceberg/iceberg-rest-server/build.gradle.kts | 106 +-
.../org/apache/gravitino/iceberg/RESTService.java | 80 +-
.../service/rest/IcebergTableOperations.java | 40 +-
.../listener/api/event/IcebergRequestContext.java | 28 +-
...bergMetadataAuthorizationMethodInterceptor.java | 12 +
.../server/web/filter/LoadTableAuthzHandler.java | 47 +-
.../apache/gravitino/iceberg/TestRESTService.java | 60 +-
.../integration/test/IcebergAuthorizationIT.java | 9 +-
.../test/IcebergExperimentalAuthorizationIT.java | 107 ++
.../test/IcebergTableAuthorizationIT.java | 13 +-
.../test/util/IcebergRESTServerManager.java | 3 +-
.../AbstractIcebergCleanupJobStoreBackendTest.java | 3 +-
.../service/cleanup/TestIcebergCleanupManager.java | 2 +-
.../TestIcebergTableEventDispatcher.java | 2 +-
.../iceberg/service/rest/IcebergRestTestUtil.java | 2 +-
.../service/rest/TestIcebergTableOperations.java | 49 +
.../api/event/TestIcebergRequestContext.java | 40 +-
...bergMetadataAuthorizationMethodInterceptor.java | 27 +
.../web/filter/TestLoadTableAuthzHandler.java | 219 ++++
integration-test-common/build.gradle.kts | 7 +
.../integration/test/container/BaseContainer.java | 46 +-
.../integration/test/container/ContainerSuite.java | 25 +-
.../test/container/DatabaseContainer.java | 164 +++
.../integration/test/container/MySQLContainer.java | 130 +--
.../test/container/PostgreSQLContainer.java | 105 +-
.../test/util/CloseContainerExtension.java | 15 +-
.../integration/test/util/TestDatabaseName.java | 3 +
.../resources/mysql-conf/default/gravitino.cnf | 24 +-
.../resources/mysql-conf/disposable/gravitino.cnf | 23 +-
.../gravitino/lance/common/config/LanceConfig.java | 10 +
.../gravitino/GravitinoLanceTableOperations.java | 5 +-
.../lance/common/utils/LancePropertiesUtils.java | 37 +
.../common/utils/TestLancePropertiesUtils.java | 36 +
.../apache/gravitino/lance/LanceRESTService.java | 73 +-
.../gravitino/lance/TestLanceRESTService.java | 60 +-
.../TestGravitinoLanceTableOperations.java | 33 +
.../apache/gravitino/lineage/LineageConfig.java | 12 +-
.../gravitino/lineage/sink/LineageSinkManager.java | 22 +-
.../gravitino/lineage/TestLineageConfig.java | 38 +-
.../lineage/sink/TestLineageSinkManager.java | 109 +-
maintenance/jobs/build.gradle.kts | 9 +
.../jobs/BuiltInJobTemplateProvider.java | 4 +-
.../jobs/MaintenanceActionHttpClient.java | 368 ++++++
.../jobs/iceberg/IcebergExpireSnapshotsJob.java | 2 +-
.../maintenance/jobs/iceberg/IcebergJobUtils.java | 96 +-
.../jobs/iceberg/IcebergMaintenanceJob.java | 740 ++++++++++++
.../jobs/iceberg/IcebergRemoveOrphanFilesJob.java | 2 +-
.../jobs/iceberg/IcebergRewriteDataFilesJob.java | 2 +-
.../jobs/iceberg/IcebergRewriteManifestsJob.java | 2 +-
.../iceberg/IcebergUpdateManifestStatsJob.java | 4 +-
.../iceberg/IcebergUpdateStatsAndMetricsJob.java | 4 +-
.../jobs/iceberg/MaintenanceTriggerGate.java | 171 +++
.../maintenance/jobs/spark/SparkPiJob.java | 6 +-
.../jobs/TestBuiltInJobTemplateProvider.java | 6 +
.../jobs/TestMaintenanceActionHttpClient.java | 141 +++
.../iceberg/TestIcebergExpireSnapshotsJob.java | 2 +-
.../jobs/iceberg/TestIcebergJobUtils.java | 43 +
.../jobs/iceberg/TestIcebergMaintenanceJob.java | 83 ++
.../iceberg/TestIcebergRewriteDataFilesJob.java | 2 +-
.../iceberg/TestIcebergRewriteManifestsJob.java | 2 +-
.../TestIcebergRewriteManifestsJobWithSpark.java | 152 +++
.../iceberg/TestIcebergUpdateManifestStatsJob.java | 2 +-
.../jobs/iceberg/TestIcebergUpdateStatsJob.java | 2 +-
.../jobs/iceberg/TestMaintenanceTriggerGate.java | 67 ++
.../maintenance/jobs/spark/TestSparkPiJob.java | 4 +-
.../build.gradle.kts | 8 +-
.../requests/MaintenanceActionFinishRequest.java | 88 ++
.../requests/MaintenanceActionMetricsRequest.java | 82 ++
maintenance/optimizer-api/build.gradle.kts | 3 +
.../common/util/GravitinoAuthSettings.java | 42 +
.../common/util/IcebergSparkConfigUtils.java | 4 +-
.../compaction/CompactionTriggerEvaluator.java | 76 ++
.../recommender/util/ExpressionEvaluator.java | 0
.../recommender/util/QLExpressionEvaluator.java | 4 +
.../common/util/TestIcebergSparkConfigUtils.java | 7 +
.../command/SubmitUpdateStatsJobCommand.java | 22 +-
.../optimizer/recommender/Recommender.java | 103 +-
.../handler/ManifestRewriteJobContext.java | 77 ++
.../handler/ManifestRewriteStrategyHandler.java | 212 ++++
.../snapshot/SnapshotExpirationJobContext.java | 59 +
.../SnapshotExpirationStrategyHandler.java | 63 +
.../recommender/job/GravitinoJobSubmitter.java | 8 +-
.../job/GravitinoManifestRewriteJobAdapter.java | 46 +
.../job/GravitinoSnapshotExpirationJobAdapter.java | 120 ++
.../maintenance/optimizer/TestOptimizerCmd.java | 17 +-
.../TestManifestRewriteRecommendation.java | 334 ++++++
.../recommender/TestRecommenderExecutionMode.java | 60 +
.../TestManifestRewriteStrategyHandler.java | 384 +++++++
.../recommender/job/TestGravitinoJobSubmitter.java | 34 +
.../TestGravitinoSnapshotExpirationJobAdapter.java | 149 +++
.../apache/gravitino/idp/IdpUserGroupManager.java | 39 +-
.../idp/basic/IdpCredentialValidator.java | 14 +-
...UserRequest.java => ChangePasswordRequest.java} | 49 +-
...rRequest.java => UpdateUserEnabledRequest.java} | 44 +-
.../org/apache/gravitino/idp/web/IdpRESTUtils.java | 11 +
.../idp/web/rest/IdpAuthorizationFilter.java | 28 +-
.../gravitino/idp/web/rest/IdpUserOperations.java | 91 +-
.../gravitino/idp/TestIdpUserGroupManager.java | 70 +-
.../dto/requests/TestChangePasswordRequest.java | 79 ++
.../dto/requests/TestUpdateUserEnabledRequest.java | 49 +
.../idp/dto/requests/TestUpdateUserRequest.java | 83 --
.../idp/integration/test/IdpRESTApiIT.java | 51 +-
.../idp/web/rest/TestIdpAuthorizationFilter.java | 6 +
.../gravitino/idp/web/rest/TestIdpOperations.java | 53 +-
plugins/k8s-job-executor/build.gradle.kts | 55 +
.../apache/gravitino/job/k8s/K8sJobExecutor.java | 620 ++++++++++
.../gravitino/job/k8s/K8sJobExecutorConfigs.java | 48 +-
.../gravitino/job/k8s/K8sJobResourceUtils.java | 41 +
.../gravitino/job/k8s/NamespacedResourceCache.java | 183 +++
.../org/apache/gravitino/job/k8s/PodLogUtils.java | 121 ++
.../job/k8s/spark/SparkApplicationStatusUtils.java | 105 +-
.../job/k8s/spark/SparkApplicationUtils.java | 262 ++++-
.../job/k8s/TestK8sJobExecutorShadedJar.java | 223 ++++
.../gravitino/job/k8s/TestK8sJobExecutor.java | 1205 ++++++++++++++++++++
.../job/k8s/TestK8sJobExecutorConfigs.java | 8 +
.../gravitino/job/k8s/TestK8sJobResourceUtils.java | 50 +
.../job/k8s/TestNamespacedResourceCache.java | 248 ++++
.../apache/gravitino/job/k8s/TestPodLogUtils.java | 101 ++
.../k8s/spark/TestSparkApplicationStatusUtils.java | 95 +-
.../job/k8s/spark/TestSparkApplicationUtils.java | 446 +++++++-
plugins/{tms => maintenance}/build.gradle.kts | 23 +-
.../maintenance/MaintenanceMetricsService.java | 218 ++++
.../maintenance/TableMaintenanceConfig.java | 0
.../injob/AlwaysMaintainInJobRecommender.java} | 30 +-
.../injob/CompactionInJobRecommender.java | 122 ++
.../maintenance/injob/InJobGateOutcome.java | 0
.../maintenance/injob/InJobRecommender.java | 29 +-
.../gravitino/maintenance/injob/MetricsJson.java | 70 ++
.../maintenance/injob/RecommendDecision.java | 5 +-
.../gravitino/maintenance/injob/SnapshotHead.java | 0
.../injob/TableMaintenanceInJobPipeline.java | 0
.../injob/TableMaintenanceInJobSampler.java | 6 +-
.../injob/TriggerExprInJobRecommender.java | 129 +++
.../injob/TypeDispatchingInJobRecommender.java | 138 +++
.../listener/PostCommitMaintenanceListener.java | 171 +++
.../maintenance/occupancy/OccupancyGate.java | 83 +-
.../policy/PolicyExpandLifecycleHook.java | 203 ++++
.../maintenance/policy/PolicyExpandReconciler.java | 118 ++
.../maintenance/policy/PolicyExpandRegistrar.java | 332 ++++++
.../scheduler/AutocommitDataSources.java | 129 +++
.../maintenance/scheduler/MaintenanceJobSpec.java | 349 ++++++
.../scheduler/MaintenanceJobSpecFactory.java | 285 +++++
.../scheduler/TableMaintenanceSchedulerPools.java | 288 +++++
.../scheduler/job/commit/CollectedCommitChain.java | 56 +
.../job/commit/CommitAuthConsistency.java | 179 +++
.../scheduler/job/commit/CommitChainCollector.java | 195 ++++
.../scheduler/job/commit/CommitChainMember.java | 64 ++
.../scheduler/job/commit/CommitJobScheduler.java} | 24 +-
.../scheduler/job/commit/CommitJobSpecFactory.java | 200 ++++
.../job/commit/CommitJobUpsertResult.java} | 27 +-
.../scheduler/job/commit/CommitOccupancyGate.java | 65 ++
.../commit/MaintenanceCommitSubmitPipeline.java | 192 ++++
.../job/commit/RelationalCommitJobScheduler.java | 205 ++++
.../maintenance/scheduler/job/cron/CronJobIds.java | 206 ++++
.../scheduler/job/cron/CronJobScheduler.java | 49 +
.../scheduler/job/cron/CronSubmitGate.java} | 15 +-
.../job/cron/MaintenanceJobConfBuilder.java | 356 ++++++
.../job/cron/MaintenanceJobSubmitter.java | 73 ++
.../job/cron/MaintenanceJobTemplates.java | 95 ++
.../job/cron/MaintenanceSparkSubmitPipeline.java | 214 ++++
.../scheduler/job/cron/MaintenanceTableRefs.java | 169 +++
.../job/cron/PendingCronExpandOccupancyGate.java | 51 +
.../job/cron/RelationalCronJobScheduler.java | 427 +++++++
.../policy/expand/ExpandOccupancyGate.java} | 19 +-
.../policy/expand/ExpandTableCandidate.java | 88 ++
.../expand/NearestMaintenancePolicyResolver.java | 184 +++
.../expand/NearestPolicyTableEnumerator.java | 310 +++++
.../scheduler/policy/expand/PolicyExpandCrons.java | 47 +
.../policy/expand/PolicyExpandPipeline.java | 196 ++++
.../policy/expand/PolicyTableEnumerator.java | 47 +
.../maintenance/storage/MetalakeNames.java | 54 +
.../mapper/TableMaintenanceActionMapper.java | 46 +-
.../TableMaintenanceActionSQLProviderFactory.java | 82 +-
.../storage/mapper/TableSnapshotMetricsMapper.java | 0
.../TableSnapshotMetricsSQLProviderFactory.java | 0
.../MaintenanceMapperPackageProvider.java} | 4 +-
.../TableMaintenanceActionBaseSQLProvider.java | 118 +-
.../base/TableSnapshotMetricsBaseSQLProvider.java | 0
.../h2/TableMaintenanceActionH2Provider.java | 11 +-
.../h2/TableSnapshotMetricsH2Provider.java | 0
.../TableMaintenanceActionPostgreSQLProvider.java | 0
.../TableSnapshotMetricsPostgreSQLProvider.java | 0
.../storage/po/TableMaintenanceActionPO.java | 0
.../storage/po/TableSnapshotMetricsPO.java | 0
.../storage/service/OccupancyClaim.java | 3 +-
.../service/TableMaintenanceActionMetaService.java | 337 +++++-
.../service/TableSnapshotMetricsMetaService.java | 0
.../web/TableMaintenanceRESTUtils.java} | 120 +-
.../web/rest/TableMaintenanceActionOperations.java | 192 ++++
.../web/rest/TableMaintenanceBinder.java} | 22 +-
.../rest/feature/TableMaintenanceRESTFeature.java | 70 +-
...elational.mapper.provider.MapperPackageProvider | 2 +-
.../injob/TestCompactionInJobRecommender.java | 64 ++
.../maintenance/injob/TestMetricsJson.java} | 30 +-
.../injob/TestTableMaintenanceInJobPipeline.java | 0
.../injob/TestTableMaintenanceInJobSampler.java | 0
.../injob/TestTriggerExprInJobRecommender.java | 55 +
.../injob/TestTypeDispatchingInJobRecommender.java | 146 +++
.../integration/test/IrcToCommitEnqueueIT.java | 176 +++
.../test/MaintenanceSchedulerITSupport.java | 139 +++
.../integration/test/PolicyExpandToCronIT.java | 163 +++
.../test/TableMaintenanceActionRESTIT.java | 241 ++++
.../TestPostCommitMaintenanceListener.java | 114 ++
.../maintenance/occupancy/TestOccupancyGate.java | 133 +++
.../policy/TestPolicyExpandLifecycleHook.java | 135 +++
.../policy/TestPolicyExpandReconciler.java | 249 ++++
.../policy/TestPolicyExpandRegistrar.java | 147 +++
.../scheduler/SchedulerPoolTestHooks.java | 51 +
.../scheduler/TestMaintenanceJobSpecFactory.java | 180 +++
.../TestTableMaintenanceSchedulerPools.java | 9 +-
.../job/commit/TestCommitAuthConsistency.java | 145 +++
.../job/commit/TestCommitJobSpecFactory.java | 172 +++
.../TestMaintenanceCommitSubmitPipeline.java | 185 +++
.../commit/TestRelationalCommitJobScheduler.java | 190 +++
.../scheduler/job/cron/TestCronJobIds.java | 58 +
.../scheduler/job/cron/TestCronJobScheduler.java | 324 ++++++
.../job/cron/TestMaintenanceJobConfBuilder.java | 260 +++++
.../job/cron/TestMaintenanceJobTemplates.java | 57 +
.../cron/TestMaintenanceSparkSubmitPipeline.java | 321 ++++++
.../TestNearestMaintenancePolicyResolver.java | 163 +++
.../expand/TestNearestPolicyTableEnumerator.java | 357 ++++++
.../policy/expand/TestPolicyExpandCrons.java} | 26 +-
.../policy/expand/TestPolicyExpandPipeline.java | 220 ++++
.../storage/TableMaintenanceActionTestUtils.java | 58 +
.../TestMaintenanceMapperPackageProvider.java} | 10 +-
.../h2/TestTableMaintenanceActionH2Provider.java | 74 ++
.../TestTableMaintenanceActionMetaService.java | 374 ++++++
.../TestTableSnapshotMetricsMetaService.java | 0
.../rest/TestTableMaintenanceActionOperations.java | 234 ++++
.../feature/TestTableMaintenanceRESTFeature.java | 0
.../scheduler/TableMaintenanceSchedulerPools.java | 152 ---
.../maintenance/occupancy/TestOccupancyGate.java | 221 ----
.../TestTableMaintenanceActionMetaService.java | 102 --
scripts/h2/schema-2.0.0-h2.sql | 8 +-
scripts/h2/upgrade-1.3.0-to-2.0.0-h2.sql | 8 +-
scripts/mysql/schema-2.0.0-mysql.sql | 8 +-
scripts/mysql/upgrade-1.3.0-to-2.0.0-mysql.sql | 8 +-
scripts/postgresql/schema-2.0.0-postgresql.sql | 14 +-
.../upgrade-1.3.0-to-2.0.0-postgresql.sql | 14 +-
.../server/authentication/JwksTokenValidator.java | 2 +
.../annotations/AuthorizationRequest.java | 2 +
.../jcasbin/JcasbinChangeListener.java | 10 +-
.../server/web/ClientAddressResolver.java | 320 ++++++
.../gravitino/server/web/HttpAuditFilter.java | 41 +-
.../apache/gravitino/server/web/JettyServer.java | 41 +-
.../gravitino/server/web/JettyServerConfig.java | 78 +-
.../gravitino/server/web/RequestContextFilter.java | 42 +-
...BaseMetadataAuthorizationMethodInterceptor.java | 23 +-
.../authentication/TestJwksTokenValidator.java | 55 +
.../jcasbin/TestJcasbinChangePoller.java | 14 +
.../server/web/TestClientAddressResolver.java | 338 ++++++
.../gravitino/server/web/TestHttpAuditFilter.java | 48 +-
.../gravitino/server/web/TestJettyServer.java | 131 +++
.../server/web/TestJettyServerConfig.java | 82 ++
.../server/web/TestRequestContextFilter.java | 46 +-
...BaseMetadataAuthorizationMethodInterceptor.java | 31 +-
.../apache/gravitino/server/GravitinoServer.java | 24 +-
.../web/filter/GravitinoInterceptionService.java | 26 +
.../authorization/AuthorizeExecutorFactory.java | 2 +
.../LoadTableAuthorizationExecutor.java | 6 +-
.../LoadViewAuthorizationExecutor.java | 78 ++
.../gravitino/server/web/rest/JobOperations.java | 12 +-
.../web/rest/MetadataObjectPolicyOperations.java | 11 +-
.../web/rest/MetadataObjectTagOperations.java | 37 +-
.../gravitino/server/web/rest/ViewOperations.java | 8 +-
.../gravitino/server/TestGravitinoServer.java | 18 +
.../filter/TestGravitinoInterceptionService.java | 282 ++++-
.../TestLoadTableAuthorizationExecutor.java | 33 +-
.../TestLoadViewAuthorizationExecutor.java | 169 +++
.../server/web/rest/TestCatalogOperations.java | 21 +
.../server/web/rest/TestExceptionHandlers.java | 17 +
.../server/web/rest/TestFilesetOperations.java | 55 +
.../server/web/rest/TestJobOperations.java | 71 ++
.../TestMetadataObjectCredentialOperations.java | 24 +
.../rest/TestMetadataObjectPolicyOperations.java | 19 +-
.../web/rest/TestMetadataObjectTagOperations.java | 9 +-
.../server/web/rest/TestMetalakeOperations.java | 24 +
.../server/web/rest/TestModelOperations.java | 22 +
.../server/web/rest/TestPolicyOperations.java | 62 +
.../server/web/rest/TestSchemaOperations.java | 21 +
.../server/web/rest/TestTableOperations.java | 22 +
settings.gradle.kts | 4 +-
.../spark/connector/catalog/BaseCatalog.java | 24 +-
.../connector/iceberg/IcebergRestOAuthConfig.java | 55 +-
.../connector/jdbc/JdbcPropertiesConverter.java | 6 +-
.../catalog/TestBaseCatalogFunctions.java | 183 +++
.../iceberg/TestIcebergRestOAuthConfig.java | 131 +++
.../jdbc/TestJdbcPropertiesConverter.java | 19 +
.../connector/integration/test/TrinoQueryIT.java | 28 +-
.../trino-ci-testset/testsets/hive/00019_view.sql | 59 +
.../trino-ci-testset/testsets/hive/00019_view.txt | 83 ++
.../testsets/hive/catalog_hive_cleanup.sql | 3 +-
.../testsets/hive/catalog_hive_prepare.sql | 6 +
.../testsets/jdbc-mysql/00008_alter_catalog.txt | 8 +-
.../testsets/lakehouse-iceberg/00014_view.sql | 22 +
.../testsets/lakehouse-iceberg/00014_view.txt | 40 +
.../trino/connector/GravitinoMetadata440.java | 10 +
.../trino/connector/GravitinoConnector446.java | 7 +
.../trino/connector/GravitinoMetadata446.java | 11 +
.../trino/connector/GravitinoConnector452.java | 7 +
.../trino/connector/GravitinoMetadata452.java | 18 +
.../trino/connector/GravitinoConnector469.java | 7 +
.../trino/connector/GravitinoMetadata469.java | 18 +
.../trino/connector/GravitinoConnector478.java | 7 +
.../trino/connector/GravitinoMetadata478.java | 18 +
.../gravitino/trino/connector/GravitinoConfig.java | 9 +-
.../trino/connector/GravitinoConnector.java | 9 +-
.../trino/connector/GravitinoErrorCode.java | 6 +-
.../trino/connector/GravitinoMetadata.java | 69 +-
.../connector/catalog/CatalogConnectorAdapter.java | 7 +
.../connector/catalog/CatalogConnectorContext.java | 9 +
.../catalog/CatalogConnectorMetadata.java | 349 +++++-
.../catalog/CatalogConnectorMetadataAdapter.java | 149 +++
.../trino/connector/metadata/GravitinoView.java | 204 ++++
.../connector/util/GeneralDataTypeTransformer.java | 41 +-
.../trino/connector/util/json/JsonCodec.java | 29 +
.../trino/connector/TestGravitinoConfig.java | 5 +-
.../trino/connector/TestGravitinoMetadataView.java | 196 ++++
.../TestCatalogConnectorMetadataAdapterView.java | 257 +++++
.../TestCatalogConnectorMetadataErrors.java | 12 +-
.../TestCatalogConnectorMetadataFunction.java | 7 +-
.../catalog/TestCatalogConnectorMetadataView.java | 569 ++++++++-
.../connector/util/TestDataTypeTransformer.java | 36 +
web-v2/web/package.json | 1 +
web-v2/web/pnpm-lock.yaml | 7 +-
web-v2/web/src/app/catalogs/TreeComponent.js | 14 +-
.../src/app/catalogs/catalogTreeLoading.test.jsx | 114 ++
web-v2/web/src/app/catalogs/page.js | 199 ++--
...ModelDialog.js => CreateSemanticModelDialog.js} | 167 ++-
.../CreateSemanticModelDialog.test.jsx | 209 ++++
.../rightContent/ImportSemanticModelDialog.js | 247 ++++
.../ImportSemanticModelDialog.test.jsx | 211 ++++
.../catalogs/rightContent/RegisterModelDialog.js | 4 +-
.../src/app/catalogs/rightContent/RightContent.js | 18 +-
.../catalogs/rightContent/RightContent.test.jsx | 65 ++
.../rightContent/SemanticMetadataEditor.js | 403 +++++++
.../entitiesContent/ModelDetailsPage.js | 1 +
.../entitiesContent/SchemaDetailsPage.js | 171 ++-
.../entitiesContent/SchemaDetailsPage.test.jsx | 126 ++
.../entitiesContent/SchemaSemanticModels.test.jsx | 132 +++
.../entitiesContent/SemanticMetadataSection.js | 58 +
.../entitiesContent/SemanticModelAIContext.js | 107 ++
.../entitiesContent/SemanticModelDetailsPage.js | 846 ++++++++++++++
.../SemanticModelDetailsPage.module.css | 84 ++
.../SemanticModelDetailsPage.test.jsx | 1108 ++++++++++++++++++
.../entitiesContent/SemanticModelExport.js | 72 ++
.../entitiesContent/SemanticModelExpression.js | 95 ++
.../entitiesContent/SemanticModelExtensions.js | 60 +
.../app/catalogs/semanticModelNavigation.test.jsx | 232 ++++
web-v2/web/src/components/PolicyTag.js | 2 +-
web-v2/web/src/components/PolicyTag.test.jsx | 93 ++
web-v2/web/src/lib/api/semanticModels/index.js | 94 ++
.../src/lib/store/metalakes/catalogDetails.test.js | 131 +++
web-v2/web/src/lib/store/metalakes/index.js | 661 +++++++----
.../metalakes/semanticModelConcurrency.test.js | 279 +++++
.../src/lib/store/metalakes/semanticModels.test.js | 345 ++++++
.../web/src/lib/utils/catalogEntity.js | 35 +-
web-v2/web/src/lib/utils/formatVendorJson.js | 47 +
web-v2/web/src/lib/utils/formatVendorJson.test.js | 47 +
web-v2/web/src/lib/utils/ossiePreview.js | 55 +
web-v2/web/src/lib/utils/ossiePreview.test.js | 68 ++
web-v2/web/src/lib/utils/semanticMetadata.js | 117 ++
web-v2/web/src/lib/utils/semanticMetadata.test.js | 227 ++++
web-v2/web/src/lib/utils/semanticModel.js | 393 +++++++
web-v2/web/src/lib/utils/semanticModel.test.js | 486 ++++++++
web-v2/web/vitest.config.js | 3 +
878 files changed, 67339 insertions(+), 5020 deletions(-)
create mode 100644 .github/actions/checkout-and-sync/action.yml
create mode 100644 .github/scripts/allowlist-pr.cjs
create mode 100644 .github/scripts/fail-fast.cjs
create mode 100644 .github/scripts/fork-ci-status.cjs
create mode 100644 .github/scripts/publish-ci-status.cjs
create mode 100644 .github/scripts/resolve-fork-ci.cjs
create mode 100644 .github/scripts/retire-fork-ci.cjs
create mode 100644 .github/scripts/tests/fork-ci.test.cjs
create mode 100644 .github/scripts/tests/retire-fork-ci.test.cjs
create mode 100644 .github/scripts/update-fork-ci.cjs
create mode 100644 .github/workflows/asf-allowlist-trusted.yml
create mode 100644 .github/workflows/fork-ci-status-update.yml
create mode 100644 .github/workflows/fork-ci-status.yml
create mode 100644 .github/workflows/fork-ci.yml
create mode 100644 .github/workflows/ray-iceberg-it-action.yml
copy .github/workflows/{idp-basic-test-action.yml => tms-test-action.yml} (54%)
create mode 100644 .github/workflows/tms-test.yml
create mode 100644
api/src/main/java/org/apache/gravitino/policy/AbstractExecutablePolicyContent.java
create mode 100644
api/src/main/java/org/apache/gravitino/policy/AccessControlContent.java
copy api/src/main/java/org/apache/gravitino/policy/{SupportsPolicies.java =>
ExecutablePolicyContent.java} (60%)
create mode 100644
api/src/main/java/org/apache/gravitino/policy/PolicyExecutionSpec.java
create mode 100644
api/src/main/java/org/apache/gravitino/policy/PolicyList.java
create mode 100644 api/src/main/java/org/apache/gravitino/tag/TagList.java
create mode 100644
api/src/test/java/org/apache/gravitino/policy/TestIcebergRewriteManifestsContent.java
create mode 100644
api/src/test/java/org/apache/gravitino/policy/TestIcebergSnapshotExpirationContent.java
create mode 100644
api/src/test/java/org/apache/gravitino/policy/TestPolicyExecutionSpec.java
create mode 100644
bundles/aliyun/src/test/java/org/apache/gravitino/oss/credential/TestOSSTokenGenerator.java
create mode 100644
bundles/azure/src/test/java/org/apache/gravitino/abs/credential/TestADLSTokenGenerator.java
create mode 100644
catalogs-contrib/catalog-jdbc-clickhouse/src/test/java/org/apache/gravitino/catalog/clickhouse/operations/TestClickHouseDatabaseDrop.java
create mode 100644
catalogs/catalog-jdbc-common/src/test/java/org/apache/gravitino/catalog/jdbc/operation/TestJdbcDatabaseDrop.java
create mode 100644
catalogs/catalog-jdbc-doris/src/test/java/org/apache/gravitino/catalog/doris/operation/TestDorisDatabaseDrop.java
create mode 100644
catalogs/catalog-jdbc-doris/src/test/java/org/apache/gravitino/catalog/doris/operation/TestDorisDatabasePropertiesOperations.java
create mode 100644
catalogs/catalog-jdbc-doris/src/test/java/org/apache/gravitino/catalog/doris/operation/TestDorisPartitionSqlGeneration.java
create mode 100644
catalogs/catalog-jdbc-mysql/src/test/java/org/apache/gravitino/catalog/mysql/TestMysqlTablePropertiesMetadata.java
create mode 100644
catalogs/catalog-jdbc-postgresql/src/test/java/org/apache/gravitino/catalog/postgresql/converter/TestPostgreSqlColumnDefaultValueConverter.java
create mode 100644
catalogs/catalog-jdbc-starrocks/src/test/java/org/apache/gravitino/catalog/starrocks/operation/TestStarRocksPartitionSqlGeneration.java
create mode 100644
catalogs/catalog-jdbc-starrocks/src/test/java/org/apache/gravitino/catalog/starrocks/operations/TestStarRocksDatabaseDrop.java
create mode 100644
catalogs/catalog-lakehouse-iceberg/src/test/java/org/apache/gravitino/catalog/lakehouse/iceberg/utils/TestIcebergTablePropertiesUtil.java
copy clients/client-python/gravitino/api/tag/{__init__.py => tag_list.py} (56%)
copy
plugins/tms/src/main/resources/META-INF/services/org.apache.gravitino.storage.relational.mapper.provider.MapperPackageProvider
=> clients/client-python/requirements-azure.txt (90%)
copy
plugins/tms/src/main/resources/META-INF/services/org.apache.gravitino.storage.relational.mapper.provider.MapperPackageProvider
=> clients/client-python/requirements-gcs.txt (90%)
copy
plugins/tms/src/main/resources/META-INF/services/org.apache.gravitino.storage.relational.mapper.provider.MapperPackageProvider
=> clients/client-python/requirements-gvfs.txt (86%)
copy
plugins/tms/src/main/resources/META-INF/services/org.apache.gravitino.storage.relational.mapper.provider.MapperPackageProvider
=> clients/client-python/requirements-hdfs.txt (90%)
copy
plugins/tms/src/main/resources/META-INF/services/org.apache.gravitino.storage.relational.mapper.provider.MapperPackageProvider
=> clients/client-python/requirements-oss.txt (90%)
copy
plugins/tms/src/main/resources/META-INF/services/org.apache.gravitino.storage.relational.mapper.provider.MapperPackageProvider
=> clients/client-python/requirements-ray-iceberg.txt (85%)
copy
plugins/tms/src/main/resources/META-INF/services/org.apache.gravitino.storage.relational.mapper.provider.MapperPackageProvider
=> clients/client-python/requirements-s3.txt (90%)
create mode 100644 clients/client-python/tests/integration/test_ray_iceberg.py
create mode 100644
clients/client-python/tests/unittests/test_client_import_without_storage_dependencies.py
create mode 100644
clients/client-python/tests/unittests/test_fileset_type_change.py
create mode 100644
clients/client-python/tests/unittests/test_http_client_headers.py
create mode 100644
clients/client-python/tests/unittests/test_integration_test_env.py
create mode 100644
clients/client-python/tests/unittests/test_package_metadata.py
create mode 100644
common/src/main/java/org/apache/gravitino/credential/RoleSessionNameUtils.java
copy
common/src/main/java/org/apache/gravitino/dto/responses/{PolicyListResponse.java
=> MetadataObjectPolicyListResponse.java} (50%)
copy
common/src/main/java/org/apache/gravitino/dto/responses/{TagListResponse.java
=> MetadataObjectTagListResponse.java} (54%)
copy
common/src/main/java/org/apache/gravitino/dto/responses/{TagListResponse.java
=> PolicyNameListResponse.java} (53%)
copy
common/src/main/java/org/apache/gravitino/dto/responses/{TagListResponse.java
=> TagNameListResponse.java} (54%)
create mode 100644
common/src/main/java/org/apache/gravitino/json/ExecutablePolicyContentSerde.java
create mode 100644
common/src/test/java/org/apache/gravitino/credential/TestRoleSessionNameUtils.java
create mode 100644
common/src/test/java/org/apache/gravitino/dto/policy/TestManifestRewritePolicyDTO.java
copy
common/src/test/java/org/apache/gravitino/dto/policy/{TestOrphanFileRemovalPolicyDTO.java
=> TestSnapshotExpirationPolicyDTO.java} (54%)
create mode 100644
core/src/main/java/org/apache/gravitino/catalog/JdbcDriverProperties.java
create mode 100644
core/src/main/java/org/apache/gravitino/job/JobRuntimeTemplateMaskUtils.java
create mode 100644
core/src/main/java/org/apache/gravitino/maintenance/policy/MaintenanceAuthConfigs.java
create mode 100644
core/src/main/java/org/apache/gravitino/maintenance/policy/MaintenanceMinIntervalConfigs.java
create mode 100644
core/src/main/java/org/apache/gravitino/maintenance/policy/MaintenancePolicyDefinition.java
create mode 100644
core/src/main/java/org/apache/gravitino/maintenance/policy/MaintenancePolicyDefinitions.java
create mode 100644
core/src/main/java/org/apache/gravitino/policy/hook/PolicyLifecycleHook.java
create mode 100644
core/src/main/java/org/apache/gravitino/policy/hook/PolicyLifecycleHooks.java
create mode 100644
core/src/main/java/org/apache/gravitino/utils/RenameUtils.java
create mode 100644
core/src/test/java/org/apache/gravitino/TestGravitinoEnvShutdown.java
create mode 100644
core/src/test/java/org/apache/gravitino/cache/TestEntityCachePublicationRace.java
create mode 100644
core/src/test/java/org/apache/gravitino/catalog/TestCatalogMutationMarkerRace.java
create mode 100644
core/src/test/java/org/apache/gravitino/catalog/TestJdbcDriverProperties.java
create mode 100644
core/src/test/java/org/apache/gravitino/connector/TestBaseCatalogCredentialProviders.java
create mode 100644
core/src/test/java/org/apache/gravitino/job/TestJobRuntimeTemplateMaskUtils.java
create mode 100644
core/src/test/java/org/apache/gravitino/maintenance/policy/TestMaintenanceAuthConfigs.java
create mode 100644
core/src/test/java/org/apache/gravitino/maintenance/policy/TestMaintenanceMinIntervalConfigs.java
create mode 100644
core/src/test/java/org/apache/gravitino/policy/hook/TestPolicyLifecycleHooks.java
copy
server-common/src/main/java/org/apache/gravitino/server/authorization/annotations/AuthorizationRequest.java
=>
core/src/test/java/org/apache/gravitino/storage/relational/DatabaseFixture.java
(56%)
create mode 100644
core/src/test/java/org/apache/gravitino/storage/relational/DatabaseResetter.java
create mode 100644
core/src/test/java/org/apache/gravitino/storage/relational/ResetStrategy.java
create mode 100644
core/src/test/java/org/apache/gravitino/storage/relational/TestBackendTestExtension.java
create mode 100644
core/src/test/java/org/apache/gravitino/storage/relational/TestCacheCommitOrdering.java
create mode 100644
core/src/test/java/org/apache/gravitino/storage/relational/TestRelationalEntityStoreBackendLockWaitTimeout.java
create mode 100644
core/src/test/java/org/apache/gravitino/storage/relational/TestRelationalEntityStoreLockWaitTimeout.java
create mode 100644
core/src/test/java/org/apache/gravitino/storage/relational/TestRenameConflicts.java
create mode 100644
core/src/test/java/org/apache/gravitino/storage/relational/TestResetStrategy.java
copy
plugins/tms/src/test/java/org/apache/gravitino/maintenance/web/rest/feature/TestTableMaintenanceRESTFeature.java
=>
core/src/test/java/org/apache/gravitino/storage/relational/mapper/provider/base/TestPolicyMetaBaseSQLProvider.java
(51%)
create mode 100644
core/src/test/java/org/apache/gravitino/storage/relational/po/TestSemanticModelPO.java
create mode 100644
core/src/test/java/org/apache/gravitino/utils/TestRenameUtils.java
create mode 100644 design-docs/gravitino-schema-metrics-discovery-design.md
create mode 100644 docs/iceberg-rewrite-manifests-policy.md
create mode 100644 docs/manage-semantic-model-metadata-using-gravitino.md
create mode 100644 docs/open-api/maintenance/maintenance.yaml
copy docs/open-api/{idp => maintenance}/openapi.yaml (58%)
create mode 100644 docs/semantic-models.md
create mode 100644
flink-connector/flink-common/src/test/java/org/apache/gravitino/flink/connector/iceberg/TestGravitinoIcebergCatalogOpen.java
create mode 100644 iceberg/iceberg-rest-server-experiment/build.gradle.kts
create mode 100644
iceberg/iceberg-rest-server/src/test/java/org/apache/gravitino/iceberg/integration/test/IcebergExperimentalAuthorizationIT.java
create mode 100644
iceberg/iceberg-rest-server/src/test/java/org/apache/gravitino/server/web/filter/TestLoadTableAuthzHandler.java
create mode 100644
integration-test-common/src/test/java/org/apache/gravitino/integration/test/container/DatabaseContainer.java
copy clients/client-python/requirements.txt =>
integration-test-common/src/test/resources/mysql-conf/default/gravitino.cnf
(68%)
copy clients/client-python/MANIFEST.in =>
integration-test-common/src/test/resources/mysql-conf/disposable/gravitino.cnf
(56%)
create mode 100644
maintenance/jobs/src/main/java/org/apache/gravitino/maintenance/jobs/MaintenanceActionHttpClient.java
create mode 100644
maintenance/jobs/src/main/java/org/apache/gravitino/maintenance/jobs/iceberg/IcebergMaintenanceJob.java
create mode 100644
maintenance/jobs/src/main/java/org/apache/gravitino/maintenance/jobs/iceberg/MaintenanceTriggerGate.java
create mode 100644
maintenance/jobs/src/test/java/org/apache/gravitino/maintenance/jobs/TestMaintenanceActionHttpClient.java
create mode 100644
maintenance/jobs/src/test/java/org/apache/gravitino/maintenance/jobs/iceberg/TestIcebergMaintenanceJob.java
create mode 100644
maintenance/jobs/src/test/java/org/apache/gravitino/maintenance/jobs/iceberg/TestMaintenanceTriggerGate.java
copy maintenance/{optimizer-api => maintenance-common}/build.gradle.kts (88%)
create mode 100644
maintenance/maintenance-common/src/main/java/org/apache/gravitino/maintenance/dto/requests/MaintenanceActionFinishRequest.java
create mode 100644
maintenance/maintenance-common/src/main/java/org/apache/gravitino/maintenance/dto/requests/MaintenanceActionMetricsRequest.java
create mode 100644
maintenance/optimizer-api/src/main/java/org/apache/gravitino/maintenance/optimizer/recommender/handler/compaction/CompactionTriggerEvaluator.java
rename maintenance/{optimizer =>
optimizer-api}/src/main/java/org/apache/gravitino/maintenance/optimizer/recommender/util/ExpressionEvaluator.java
(100%)
rename maintenance/{optimizer =>
optimizer-api}/src/main/java/org/apache/gravitino/maintenance/optimizer/recommender/util/QLExpressionEvaluator.java
(98%)
create mode 100644
maintenance/optimizer/src/main/java/org/apache/gravitino/maintenance/optimizer/recommender/handler/ManifestRewriteJobContext.java
create mode 100644
maintenance/optimizer/src/main/java/org/apache/gravitino/maintenance/optimizer/recommender/handler/ManifestRewriteStrategyHandler.java
create mode 100644
maintenance/optimizer/src/main/java/org/apache/gravitino/maintenance/optimizer/recommender/handler/snapshot/SnapshotExpirationJobContext.java
create mode 100644
maintenance/optimizer/src/main/java/org/apache/gravitino/maintenance/optimizer/recommender/handler/snapshot/SnapshotExpirationStrategyHandler.java
create mode 100644
maintenance/optimizer/src/main/java/org/apache/gravitino/maintenance/optimizer/recommender/job/GravitinoManifestRewriteJobAdapter.java
create mode 100644
maintenance/optimizer/src/main/java/org/apache/gravitino/maintenance/optimizer/recommender/job/GravitinoSnapshotExpirationJobAdapter.java
create mode 100644
maintenance/optimizer/src/test/java/org/apache/gravitino/maintenance/optimizer/recommender/TestManifestRewriteRecommendation.java
create mode 100644
maintenance/optimizer/src/test/java/org/apache/gravitino/maintenance/optimizer/recommender/handler/TestManifestRewriteStrategyHandler.java
create mode 100644
maintenance/optimizer/src/test/java/org/apache/gravitino/maintenance/optimizer/recommender/job/TestGravitinoSnapshotExpirationJobAdapter.java
copy
plugins/idp-basic/src/main/java/org/apache/gravitino/idp/dto/requests/{UpdateUserRequest.java
=> ChangePasswordRequest.java} (55%)
rename
plugins/idp-basic/src/main/java/org/apache/gravitino/idp/dto/requests/{UpdateUserRequest.java
=> UpdateUserEnabledRequest.java} (54%)
create mode 100644
plugins/idp-basic/src/test/java/org/apache/gravitino/idp/dto/requests/TestChangePasswordRequest.java
create mode 100644
plugins/idp-basic/src/test/java/org/apache/gravitino/idp/dto/requests/TestUpdateUserEnabledRequest.java
delete mode 100644
plugins/idp-basic/src/test/java/org/apache/gravitino/idp/dto/requests/TestUpdateUserRequest.java
create mode 100644
plugins/k8s-job-executor/src/main/java/org/apache/gravitino/job/k8s/K8sJobExecutor.java
create mode 100644
plugins/k8s-job-executor/src/main/java/org/apache/gravitino/job/k8s/NamespacedResourceCache.java
create mode 100644
plugins/k8s-job-executor/src/main/java/org/apache/gravitino/job/k8s/PodLogUtils.java
create mode 100644
plugins/k8s-job-executor/src/shadedJarTest/java/org/apache/gravitino/job/k8s/TestK8sJobExecutorShadedJar.java
create mode 100644
plugins/k8s-job-executor/src/test/java/org/apache/gravitino/job/k8s/TestK8sJobExecutor.java
create mode 100644
plugins/k8s-job-executor/src/test/java/org/apache/gravitino/job/k8s/TestNamespacedResourceCache.java
create mode 100644
plugins/k8s-job-executor/src/test/java/org/apache/gravitino/job/k8s/TestPodLogUtils.java
rename plugins/{tms => maintenance}/build.gradle.kts (74%)
create mode 100644
plugins/maintenance/src/main/java/org/apache/gravitino/maintenance/MaintenanceMetricsService.java
rename plugins/{tms =>
maintenance}/src/main/java/org/apache/gravitino/maintenance/TableMaintenanceConfig.java
(100%)
copy
plugins/{tms/src/main/java/org/apache/gravitino/maintenance/injob/InJobRecommender.java
=>
maintenance/src/main/java/org/apache/gravitino/maintenance/injob/AlwaysMaintainInJobRecommender.java}
(58%)
create mode 100644
plugins/maintenance/src/main/java/org/apache/gravitino/maintenance/injob/CompactionInJobRecommender.java
rename plugins/{tms =>
maintenance}/src/main/java/org/apache/gravitino/maintenance/injob/InJobGateOutcome.java
(100%)
copy plugins/{tms =>
maintenance}/src/main/java/org/apache/gravitino/maintenance/injob/InJobRecommender.java
(54%)
create mode 100644
plugins/maintenance/src/main/java/org/apache/gravitino/maintenance/injob/MetricsJson.java
rename plugins/{tms =>
maintenance}/src/main/java/org/apache/gravitino/maintenance/injob/RecommendDecision.java
(89%)
copy plugins/{tms =>
maintenance}/src/main/java/org/apache/gravitino/maintenance/injob/SnapshotHead.java
(100%)
rename plugins/{tms =>
maintenance}/src/main/java/org/apache/gravitino/maintenance/injob/TableMaintenanceInJobPipeline.java
(100%)
rename plugins/{tms =>
maintenance}/src/main/java/org/apache/gravitino/maintenance/injob/TableMaintenanceInJobSampler.java
(93%)
create mode 100644
plugins/maintenance/src/main/java/org/apache/gravitino/maintenance/injob/TriggerExprInJobRecommender.java
create mode 100644
plugins/maintenance/src/main/java/org/apache/gravitino/maintenance/injob/TypeDispatchingInJobRecommender.java
create mode 100644
plugins/maintenance/src/main/java/org/apache/gravitino/maintenance/listener/PostCommitMaintenanceListener.java
rename plugins/{tms =>
maintenance}/src/main/java/org/apache/gravitino/maintenance/occupancy/OccupancyGate.java
(56%)
create mode 100644
plugins/maintenance/src/main/java/org/apache/gravitino/maintenance/policy/PolicyExpandLifecycleHook.java
create mode 100644
plugins/maintenance/src/main/java/org/apache/gravitino/maintenance/policy/PolicyExpandReconciler.java
create mode 100644
plugins/maintenance/src/main/java/org/apache/gravitino/maintenance/policy/PolicyExpandRegistrar.java
create mode 100644
plugins/maintenance/src/main/java/org/apache/gravitino/maintenance/scheduler/AutocommitDataSources.java
create mode 100644
plugins/maintenance/src/main/java/org/apache/gravitino/maintenance/scheduler/MaintenanceJobSpec.java
create mode 100644
plugins/maintenance/src/main/java/org/apache/gravitino/maintenance/scheduler/MaintenanceJobSpecFactory.java
create mode 100644
plugins/maintenance/src/main/java/org/apache/gravitino/maintenance/scheduler/TableMaintenanceSchedulerPools.java
create mode 100644
plugins/maintenance/src/main/java/org/apache/gravitino/maintenance/scheduler/job/commit/CollectedCommitChain.java
create mode 100644
plugins/maintenance/src/main/java/org/apache/gravitino/maintenance/scheduler/job/commit/CommitAuthConsistency.java
create mode 100644
plugins/maintenance/src/main/java/org/apache/gravitino/maintenance/scheduler/job/commit/CommitChainCollector.java
create mode 100644
plugins/maintenance/src/main/java/org/apache/gravitino/maintenance/scheduler/job/commit/CommitChainMember.java
copy
plugins/{tms/src/main/java/org/apache/gravitino/maintenance/injob/InJobRecommender.java
=>
maintenance/src/main/java/org/apache/gravitino/maintenance/scheduler/job/commit/CommitJobScheduler.java}
(53%)
create mode 100644
plugins/maintenance/src/main/java/org/apache/gravitino/maintenance/scheduler/job/commit/CommitJobSpecFactory.java
copy
plugins/{tms/src/main/java/org/apache/gravitino/maintenance/injob/InJobRecommender.java
=>
maintenance/src/main/java/org/apache/gravitino/maintenance/scheduler/job/commit/CommitJobUpsertResult.java}
(55%)
create mode 100644
plugins/maintenance/src/main/java/org/apache/gravitino/maintenance/scheduler/job/commit/CommitOccupancyGate.java
create mode 100644
plugins/maintenance/src/main/java/org/apache/gravitino/maintenance/scheduler/job/commit/MaintenanceCommitSubmitPipeline.java
create mode 100644
plugins/maintenance/src/main/java/org/apache/gravitino/maintenance/scheduler/job/commit/RelationalCommitJobScheduler.java
create mode 100644
plugins/maintenance/src/main/java/org/apache/gravitino/maintenance/scheduler/job/cron/CronJobIds.java
create mode 100644
plugins/maintenance/src/main/java/org/apache/gravitino/maintenance/scheduler/job/cron/CronJobScheduler.java
copy
plugins/{tms/src/main/java/org/apache/gravitino/maintenance/injob/SnapshotHead.java
=>
maintenance/src/main/java/org/apache/gravitino/maintenance/scheduler/job/cron/CronSubmitGate.java}
(66%)
create mode 100644
plugins/maintenance/src/main/java/org/apache/gravitino/maintenance/scheduler/job/cron/MaintenanceJobConfBuilder.java
create mode 100644
plugins/maintenance/src/main/java/org/apache/gravitino/maintenance/scheduler/job/cron/MaintenanceJobSubmitter.java
create mode 100644
plugins/maintenance/src/main/java/org/apache/gravitino/maintenance/scheduler/job/cron/MaintenanceJobTemplates.java
create mode 100644
plugins/maintenance/src/main/java/org/apache/gravitino/maintenance/scheduler/job/cron/MaintenanceSparkSubmitPipeline.java
create mode 100644
plugins/maintenance/src/main/java/org/apache/gravitino/maintenance/scheduler/job/cron/MaintenanceTableRefs.java
create mode 100644
plugins/maintenance/src/main/java/org/apache/gravitino/maintenance/scheduler/job/cron/PendingCronExpandOccupancyGate.java
create mode 100644
plugins/maintenance/src/main/java/org/apache/gravitino/maintenance/scheduler/job/cron/RelationalCronJobScheduler.java
rename
plugins/{tms/src/main/java/org/apache/gravitino/maintenance/injob/InJobRecommender.java
=>
maintenance/src/main/java/org/apache/gravitino/maintenance/scheduler/policy/expand/ExpandOccupancyGate.java}
(59%)
create mode 100644
plugins/maintenance/src/main/java/org/apache/gravitino/maintenance/scheduler/policy/expand/ExpandTableCandidate.java
create mode 100644
plugins/maintenance/src/main/java/org/apache/gravitino/maintenance/scheduler/policy/expand/NearestMaintenancePolicyResolver.java
create mode 100644
plugins/maintenance/src/main/java/org/apache/gravitino/maintenance/scheduler/policy/expand/NearestPolicyTableEnumerator.java
create mode 100644
plugins/maintenance/src/main/java/org/apache/gravitino/maintenance/scheduler/policy/expand/PolicyExpandCrons.java
create mode 100644
plugins/maintenance/src/main/java/org/apache/gravitino/maintenance/scheduler/policy/expand/PolicyExpandPipeline.java
create mode 100644
plugins/maintenance/src/main/java/org/apache/gravitino/maintenance/scheduler/policy/expand/PolicyTableEnumerator.java
create mode 100644
plugins/maintenance/src/main/java/org/apache/gravitino/maintenance/storage/MetalakeNames.java
rename plugins/{tms =>
maintenance}/src/main/java/org/apache/gravitino/maintenance/storage/mapper/TableMaintenanceActionMapper.java
(70%)
rename plugins/{tms =>
maintenance}/src/main/java/org/apache/gravitino/maintenance/storage/mapper/TableMaintenanceActionSQLProviderFactory.java
(70%)
rename plugins/{tms =>
maintenance}/src/main/java/org/apache/gravitino/maintenance/storage/mapper/TableSnapshotMetricsMapper.java
(100%)
rename plugins/{tms =>
maintenance}/src/main/java/org/apache/gravitino/maintenance/storage/mapper/TableSnapshotMetricsSQLProviderFactory.java
(100%)
rename
plugins/{tms/src/main/java/org/apache/gravitino/maintenance/storage/mapper/provider/TmsMapperPackageProvider.java
=>
maintenance/src/main/java/org/apache/gravitino/maintenance/storage/mapper/provider/MaintenanceMapperPackageProvider.java}
(89%)
rename plugins/{tms =>
maintenance}/src/main/java/org/apache/gravitino/maintenance/storage/mapper/provider/base/TableMaintenanceActionBaseSQLProvider.java
(65%)
rename plugins/{tms =>
maintenance}/src/main/java/org/apache/gravitino/maintenance/storage/mapper/provider/base/TableSnapshotMetricsBaseSQLProvider.java
(100%)
rename plugins/{tms =>
maintenance}/src/main/java/org/apache/gravitino/maintenance/storage/mapper/provider/h2/TableMaintenanceActionH2Provider.java
(70%)
rename plugins/{tms =>
maintenance}/src/main/java/org/apache/gravitino/maintenance/storage/mapper/provider/h2/TableSnapshotMetricsH2Provider.java
(100%)
copy plugins/{tms =>
maintenance}/src/main/java/org/apache/gravitino/maintenance/storage/mapper/provider/postgresql/TableMaintenanceActionPostgreSQLProvider.java
(100%)
rename plugins/{tms =>
maintenance}/src/main/java/org/apache/gravitino/maintenance/storage/mapper/provider/postgresql/TableSnapshotMetricsPostgreSQLProvider.java
(100%)
rename plugins/{tms =>
maintenance}/src/main/java/org/apache/gravitino/maintenance/storage/po/TableMaintenanceActionPO.java
(100%)
rename plugins/{tms =>
maintenance}/src/main/java/org/apache/gravitino/maintenance/storage/po/TableSnapshotMetricsPO.java
(100%)
rename plugins/{tms =>
maintenance}/src/main/java/org/apache/gravitino/maintenance/storage/service/OccupancyClaim.java
(95%)
rename plugins/{tms =>
maintenance}/src/main/java/org/apache/gravitino/maintenance/storage/service/TableMaintenanceActionMetaService.java
(52%)
rename plugins/{tms =>
maintenance}/src/main/java/org/apache/gravitino/maintenance/storage/service/TableSnapshotMetricsMetaService.java
(100%)
copy
plugins/{idp-basic/src/main/java/org/apache/gravitino/idp/web/IdpRESTUtils.java
=>
maintenance/src/main/java/org/apache/gravitino/maintenance/web/TableMaintenanceRESTUtils.java}
(68%)
create mode 100644
plugins/maintenance/src/main/java/org/apache/gravitino/maintenance/web/rest/TableMaintenanceActionOperations.java
copy
plugins/{tms/src/main/java/org/apache/gravitino/maintenance/injob/SnapshotHead.java
=>
maintenance/src/main/java/org/apache/gravitino/maintenance/web/rest/TableMaintenanceBinder.java}
(64%)
rename plugins/{tms =>
maintenance}/src/main/java/org/apache/gravitino/maintenance/web/rest/feature/TableMaintenanceRESTFeature.java
(61%)
rename plugins/{tms =>
maintenance}/src/main/resources/META-INF/services/org.apache.gravitino.storage.relational.mapper.provider.MapperPackageProvider
(89%)
create mode 100644
plugins/maintenance/src/test/java/org/apache/gravitino/maintenance/injob/TestCompactionInJobRecommender.java
copy
plugins/{tms/src/test/java/org/apache/gravitino/maintenance/web/rest/feature/TestTableMaintenanceRESTFeature.java
=>
maintenance/src/test/java/org/apache/gravitino/maintenance/injob/TestMetricsJson.java}
(52%)
rename plugins/{tms =>
maintenance}/src/test/java/org/apache/gravitino/maintenance/injob/TestTableMaintenanceInJobPipeline.java
(100%)
rename plugins/{tms =>
maintenance}/src/test/java/org/apache/gravitino/maintenance/injob/TestTableMaintenanceInJobSampler.java
(100%)
create mode 100644
plugins/maintenance/src/test/java/org/apache/gravitino/maintenance/injob/TestTriggerExprInJobRecommender.java
create mode 100644
plugins/maintenance/src/test/java/org/apache/gravitino/maintenance/injob/TestTypeDispatchingInJobRecommender.java
create mode 100644
plugins/maintenance/src/test/java/org/apache/gravitino/maintenance/integration/test/IrcToCommitEnqueueIT.java
create mode 100644
plugins/maintenance/src/test/java/org/apache/gravitino/maintenance/integration/test/MaintenanceSchedulerITSupport.java
create mode 100644
plugins/maintenance/src/test/java/org/apache/gravitino/maintenance/integration/test/PolicyExpandToCronIT.java
create mode 100644
plugins/maintenance/src/test/java/org/apache/gravitino/maintenance/integration/test/TableMaintenanceActionRESTIT.java
create mode 100644
plugins/maintenance/src/test/java/org/apache/gravitino/maintenance/listener/TestPostCommitMaintenanceListener.java
create mode 100644
plugins/maintenance/src/test/java/org/apache/gravitino/maintenance/occupancy/TestOccupancyGate.java
create mode 100644
plugins/maintenance/src/test/java/org/apache/gravitino/maintenance/policy/TestPolicyExpandLifecycleHook.java
create mode 100644
plugins/maintenance/src/test/java/org/apache/gravitino/maintenance/policy/TestPolicyExpandReconciler.java
create mode 100644
plugins/maintenance/src/test/java/org/apache/gravitino/maintenance/policy/TestPolicyExpandRegistrar.java
create mode 100644
plugins/maintenance/src/test/java/org/apache/gravitino/maintenance/scheduler/SchedulerPoolTestHooks.java
create mode 100644
plugins/maintenance/src/test/java/org/apache/gravitino/maintenance/scheduler/TestMaintenanceJobSpecFactory.java
rename plugins/{tms =>
maintenance}/src/test/java/org/apache/gravitino/maintenance/scheduler/TestTableMaintenanceSchedulerPools.java
(85%)
create mode 100644
plugins/maintenance/src/test/java/org/apache/gravitino/maintenance/scheduler/job/commit/TestCommitAuthConsistency.java
create mode 100644
plugins/maintenance/src/test/java/org/apache/gravitino/maintenance/scheduler/job/commit/TestCommitJobSpecFactory.java
create mode 100644
plugins/maintenance/src/test/java/org/apache/gravitino/maintenance/scheduler/job/commit/TestMaintenanceCommitSubmitPipeline.java
create mode 100644
plugins/maintenance/src/test/java/org/apache/gravitino/maintenance/scheduler/job/commit/TestRelationalCommitJobScheduler.java
create mode 100644
plugins/maintenance/src/test/java/org/apache/gravitino/maintenance/scheduler/job/cron/TestCronJobIds.java
create mode 100644
plugins/maintenance/src/test/java/org/apache/gravitino/maintenance/scheduler/job/cron/TestCronJobScheduler.java
create mode 100644
plugins/maintenance/src/test/java/org/apache/gravitino/maintenance/scheduler/job/cron/TestMaintenanceJobConfBuilder.java
create mode 100644
plugins/maintenance/src/test/java/org/apache/gravitino/maintenance/scheduler/job/cron/TestMaintenanceJobTemplates.java
create mode 100644
plugins/maintenance/src/test/java/org/apache/gravitino/maintenance/scheduler/job/cron/TestMaintenanceSparkSubmitPipeline.java
create mode 100644
plugins/maintenance/src/test/java/org/apache/gravitino/maintenance/scheduler/policy/expand/TestNearestMaintenancePolicyResolver.java
create mode 100644
plugins/maintenance/src/test/java/org/apache/gravitino/maintenance/scheduler/policy/expand/TestNearestPolicyTableEnumerator.java
rename
plugins/{tms/src/main/java/org/apache/gravitino/maintenance/storage/mapper/provider/postgresql/TableMaintenanceActionPostgreSQLProvider.java
=>
maintenance/src/test/java/org/apache/gravitino/maintenance/scheduler/policy/expand/TestPolicyExpandCrons.java}
(55%)
create mode 100644
plugins/maintenance/src/test/java/org/apache/gravitino/maintenance/scheduler/policy/expand/TestPolicyExpandPipeline.java
create mode 100644
plugins/maintenance/src/test/java/org/apache/gravitino/maintenance/storage/TableMaintenanceActionTestUtils.java
rename
plugins/{tms/src/test/java/org/apache/gravitino/maintenance/storage/mapper/TestTmsMapperPackageProvider.java
=>
maintenance/src/test/java/org/apache/gravitino/maintenance/storage/mapper/TestMaintenanceMapperPackageProvider.java}
(84%)
create mode 100644
plugins/maintenance/src/test/java/org/apache/gravitino/maintenance/storage/mapper/provider/h2/TestTableMaintenanceActionH2Provider.java
create mode 100644
plugins/maintenance/src/test/java/org/apache/gravitino/maintenance/storage/service/TestTableMaintenanceActionMetaService.java
rename plugins/{tms =>
maintenance}/src/test/java/org/apache/gravitino/maintenance/storage/service/TestTableSnapshotMetricsMetaService.java
(100%)
create mode 100644
plugins/maintenance/src/test/java/org/apache/gravitino/maintenance/web/rest/TestTableMaintenanceActionOperations.java
rename plugins/{tms =>
maintenance}/src/test/java/org/apache/gravitino/maintenance/web/rest/feature/TestTableMaintenanceRESTFeature.java
(100%)
delete mode 100644
plugins/tms/src/main/java/org/apache/gravitino/maintenance/scheduler/TableMaintenanceSchedulerPools.java
delete mode 100644
plugins/tms/src/test/java/org/apache/gravitino/maintenance/occupancy/TestOccupancyGate.java
delete mode 100644
plugins/tms/src/test/java/org/apache/gravitino/maintenance/storage/service/TestTableMaintenanceActionMetaService.java
create mode 100644
server-common/src/main/java/org/apache/gravitino/server/web/ClientAddressResolver.java
create mode 100644
server-common/src/test/java/org/apache/gravitino/server/web/TestClientAddressResolver.java
create mode 100644
server/src/main/java/org/apache/gravitino/server/web/filter/authorization/LoadViewAuthorizationExecutor.java
create mode 100644
server/src/test/java/org/apache/gravitino/server/web/filter/authorization/TestLoadViewAuthorizationExecutor.java
create mode 100644
spark-connector/spark-common/src/test/java/org/apache/gravitino/spark/connector/catalog/TestBaseCatalogFunctions.java
create mode 100644
trino-connector/integration-test/src/test/resources/trino-ci-testset/testsets/hive/00019_view.sql
create mode 100644
trino-connector/integration-test/src/test/resources/trino-ci-testset/testsets/hive/00019_view.txt
create mode 100644
trino-connector/integration-test/src/test/resources/trino-ci-testset/testsets/lakehouse-iceberg/00014_view.sql
create mode 100644
trino-connector/integration-test/src/test/resources/trino-ci-testset/testsets/lakehouse-iceberg/00014_view.txt
create mode 100644
trino-connector/trino-connector/src/main/java/org/apache/gravitino/trino/connector/metadata/GravitinoView.java
create mode 100644
trino-connector/trino-connector/src/test/java/org/apache/gravitino/trino/connector/TestGravitinoMetadataView.java
create mode 100644
trino-connector/trino-connector/src/test/java/org/apache/gravitino/trino/connector/catalog/TestCatalogConnectorMetadataAdapterView.java
create mode 100644 web-v2/web/src/app/catalogs/catalogTreeLoading.test.jsx
copy web-v2/web/src/app/catalogs/rightContent/{RegisterModelDialog.js =>
CreateSemanticModelDialog.js} (50%)
create mode 100644
web-v2/web/src/app/catalogs/rightContent/CreateSemanticModelDialog.test.jsx
create mode 100644
web-v2/web/src/app/catalogs/rightContent/ImportSemanticModelDialog.js
create mode 100644
web-v2/web/src/app/catalogs/rightContent/ImportSemanticModelDialog.test.jsx
create mode 100644
web-v2/web/src/app/catalogs/rightContent/RightContent.test.jsx
create mode 100644
web-v2/web/src/app/catalogs/rightContent/SemanticMetadataEditor.js
create mode 100644
web-v2/web/src/app/catalogs/rightContent/entitiesContent/SchemaDetailsPage.test.jsx
create mode 100644
web-v2/web/src/app/catalogs/rightContent/entitiesContent/SchemaSemanticModels.test.jsx
create mode 100644
web-v2/web/src/app/catalogs/rightContent/entitiesContent/SemanticMetadataSection.js
create mode 100644
web-v2/web/src/app/catalogs/rightContent/entitiesContent/SemanticModelAIContext.js
create mode 100644
web-v2/web/src/app/catalogs/rightContent/entitiesContent/SemanticModelDetailsPage.js
create mode 100644
web-v2/web/src/app/catalogs/rightContent/entitiesContent/SemanticModelDetailsPage.module.css
create mode 100644
web-v2/web/src/app/catalogs/rightContent/entitiesContent/SemanticModelDetailsPage.test.jsx
create mode 100644
web-v2/web/src/app/catalogs/rightContent/entitiesContent/SemanticModelExport.js
create mode 100644
web-v2/web/src/app/catalogs/rightContent/entitiesContent/SemanticModelExpression.js
create mode 100644
web-v2/web/src/app/catalogs/rightContent/entitiesContent/SemanticModelExtensions.js
create mode 100644 web-v2/web/src/app/catalogs/semanticModelNavigation.test.jsx
create mode 100644 web-v2/web/src/components/PolicyTag.test.jsx
create mode 100644 web-v2/web/src/lib/api/semanticModels/index.js
create mode 100644 web-v2/web/src/lib/store/metalakes/catalogDetails.test.js
create mode 100644
web-v2/web/src/lib/store/metalakes/semanticModelConcurrency.test.js
create mode 100644 web-v2/web/src/lib/store/metalakes/semanticModels.test.js
rename
plugins/tms/src/main/java/org/apache/gravitino/maintenance/injob/SnapshotHead.java
=> web-v2/web/src/lib/utils/catalogEntity.js (61%)
create mode 100644 web-v2/web/src/lib/utils/formatVendorJson.js
create mode 100644 web-v2/web/src/lib/utils/formatVendorJson.test.js
create mode 100644 web-v2/web/src/lib/utils/ossiePreview.js
create mode 100644 web-v2/web/src/lib/utils/ossiePreview.test.js
create mode 100644 web-v2/web/src/lib/utils/semanticMetadata.js
create mode 100644 web-v2/web/src/lib/utils/semanticMetadata.test.js
create mode 100644 web-v2/web/src/lib/utils/semanticModel.js
create mode 100644 web-v2/web/src/lib/utils/semanticModel.test.js