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

Reply via email to