This is an automated email from the ASF dual-hosted git repository.
dependabot[bot] pushed a change to branch
dependabot/pip/clients/client-python/gcsfs-2026.8.1
in repository https://gitbox.apache.org/repos/asf/gravitino.git
omit dbef7526f0 build(deps): bump gcsfs in /clients/client-python
add ba47e2225a [#12613] feat(client-python): Add Semantic Model DTOs and
serialization (#12859)
add 0e2233aa21 [#12594] feat(authz): Add Semantic Model ownership and
privilege support (#12867)
add 42ba56320c [#12615] feat(tag): Add tag support for Semantic Models
(#12870)
add 8574ed9b90 [#13637] Retry and fall back when fetching libssl1.1 in CI
(#13639)
add 5af40fd4d9 [#13573] fix: slow metadata reads caused by NoOpsCache lock
contention (#13574)
add 8769b54b86 [#3560] improvement(client-python): Fix too-many-arguments
and too-many-positional-arguments Pylint rules (#13671)
add 040e298517 [#3767] refactor(client-python): Share table-driven error
handler base to reduce duplicate code (#13672)
add 73f2ddd913 [#12759] docs: add design doc for tag-based access control
(#12757)
add 2d63db89d9 [#13678] fix(core): make a cancelled local job end as
CANCELLED (#13679)
add dcdf5503e3 [#13637] Make release re-runs safe after a partial failure
(#13638)
add 3207d8f5f9 [#13685] fix(gvfs): Support Basic authentication in Java
client (#13688)
add cf725eeeb3 [#13637] docs: fix checksum algorithm in
how-to-sign-releases (#13643)
add 576d7d8084 [MINOR] docs: fix skill frontmatter position and document
vote + GitHub release stages (#13640)
add 6d4058d81e [#13545] docs: design tag-based Iceberg read restrictions
(#13546)
add 65f44cd106 [#11195] feat(maintenance): Integrate orphan cleanup
policies with the optimizer (#13531)
add a0c3e63503 [#13686] fix(iceberg-rest): Preserve
WebApplicationException HTTP status (#13687)
add 3d2bd431bb [#12516] fix(scripts): make 1.3 to 2.0 upgrades retryable
(#13689)
add 2c18230c18 [#10270] test(core): Guard @Param("roleId") binding on
RoleMetaMapper.softDeleteRoleMetaByRoleId (#13666)
add 62240804b7 [#13697] improvement(trino-connector): Load catalogs with a
single detailed listing on refresh (#13698)
add d429c341b5 [#13680] fix: accept PascalCase ExistOk as a Lance create
mode (#13681)
add 98281f7269 [#13160] fix(postgresql): Preserve unsupported constrained
NUMERIC types (#13163)
add db0dbdedf7 [#13582] improvement(core): Make JDBC idle connection
retention configurable (#13620)
add 34272ba4fa [#13692] feat(policy): define read restriction policy
(#13693)
add b15b420b6c [#13592] fix(jdbc): Use driver validation for catalog
connection pools (#13600)
add 51fb2d29c7 [#13581] improvement(core): Drain change-log backlog
without waiting the poll interval after a full batch (#13619)
add 371ac41870 [#13555][#13566][#13567][#13587] feat(core): Let job
executors decide how to handle job resources through JobContext (#13563)
add e96a2fb902 [#13605] fix(authz): Reload role policies cleared between
checks of one authorization request (#13606)
add 7ff63ddbfd [#13614] improvement(spark-connector): Upgrade Kyuubi Spark
Hive connector to 1.12.0 to support dynamic partition pruning (#13615)
add d71f7121db [#13580] fix(core): Avoid deadlock between cache eviction
and segment locks (#13702)
add 79527d7669 [#10166] fix(server): reject null request bodies in bulk
role and run-job operations (#13670)
add 2ebf08fa2a [#13540] feat(semantic-model): Add Ossie import and export
(#13571)
add 10d51bd966 [#12594][followup] fix(authz): Clarify semantic model
privilege naming and filtering (#13718)
add 912302110a [#13557] fix(core): Invalidate the authorizer name-id
mapping on model, tag, policy and job template rename or delete (#13558)
add 278102990e [#13547] fix(mysql): Handle decimal precision beyond
Gravitino limit (#13548)
add c5ac5b0cbd [#12595] feat(core): Add event listener support for
Semantic Model operations (#13458)
add ddbc9a20c7 [MINOR] refactor(server): Share Iceberg REST service URI
resolution (#13738)
add 4718fc54db [#13480] improvement(core): add a connector SPI to resolve
physical table names (#13481)
add 0237d79b73 [#13726] feat(policy): Support Iceberg rewrite strategy and
sort order (#13727)
add 3a449c59d2 [#13490] feat(clickhouse): support quarter/year start
partition transforms (#13492)
add b63f010793 [#13736] fix(python-client): make close idempotent (#13741)
add 9014793d4c [#13591] fix(jdbc): Avoid nested connection borrows in JDBC
catalog operations (#13729)
add 0782dd9a0e [#13694] fix(authorization): Normalize metadata ID cache
keys (#13699)
add f887d0dc5f [MINOR] docs(client-python): document explicit client
cleanup (#13745)
add 3b92859318 [#13521] fix(core): delete legacy table versions by row on
PostgreSQL, not by table id (#13526)
add c17fc03b01 [#13447] fix(core): re-insert updated columns at their
current index in bundled alters (#13448)
add 14b0e7d818 [#13338] fix(lance): Preserve Lance blob columns as
readable external types (#13390)
add f8acb110ff [#13376] feat(clickhouse): preserve legacy Annoy and
USearch index metadata (#13432)
add e28a72c5f0 [MINOR] docs: state that supportedObjectTypes is not
enforced in the OpenAPI spec (#13758)
add c732bfa5de [#12594] feat(server): Authorize Semantic Model REST and
validate sources (#13512)
add 27eed7ecba [#12609] docs(open-api): Add Semantic Model REST API
(#12627)
add 8bd56bd493 [#13177] fix(core): Add statistic CAS and live-target
checks (#13487)
add 7a4f230f3e [#12903] fix(trino-connector): Keep MySQL time/timestamp
precision in the Trino connector (#12906)
add aa0fd7245e [MINOR] test(server): Fix stale Ossie import assertion
(#13772)
add b9a8632eae [#13224] fix(api): roll back registered model when
registerModel version linking fails (#13225)
add 383c96a7aa [#12614] feat(client-python): Add Semantic Model catalog
operations (#12860)
add a853a14544 [#12594] fix(server): Check semantic source capabilities
before lookup (#13763)
add afb28398d6 [#13488] docs: Add Table Maintenance Service design (#13386)
add b837e07a93 [#13731] improvement(core): Remove TreeLock from partition,
tag, policy, owner, model and table statistic operations (#13737)
add 878240b75d [MINOR] fix(fileset): validate sub-path resolution (#13721)
add 4f11ac17b8 [#13761] feat(tms): plugins/tms skeleton, DDL, and DAOs
(#13762)
add 40aab9d43a [#13765] feat(policy): Add TMS policy content fields and
REST round-trip (#13766)
add 2d4796baad [#13767] improve(core,jdbc): verify JDBC catalog backend
reachable at create (#13769)
add cb0accec80 [#12614] feat(python): Support Ossie Semantic Model import
and export (#13795)
add 0817563e8b [#13808] fix(client-python): Complete Semantic Model
authorization mappings (#13793)
add de25ce3bd8 [#13781] fix(client): Encode spaces as %20 in REST path
segments (#13784)
add 9223348fc8 [#13809] fix(core): Clarify catalog drop errors for
unreachable backends (#13810)
add 48572b5eb7 [#13613] feat(k8s-job-executor): Add the k8s job executor
module with its configurations and Kubernetes connection (part 1/3) (#13724)
add 1edfaf5399 [MINOR] docs(trino-connector): Clarify IRC access without a
forwarded token (#13785)
add f3bd25d546 [#12610] feat(client): Add Semantic Model Java client
(#12628)
add 880032f6af [#13782] fix(trino-connector): Report authorization and
validation refusals as user errors (#13787)
add 61addf63ed [#13775] feat(mcp-server): Add Semantic Model tools (#13804)
add bd301d1bb3 [#13719] feat(policy): add restricted Rego parser for read
restrictions (#13478)
add e5b3528a26 [#13783] fix(trino-connector): Report querying a Gravitino
view as not supported (#13788)
add 51a316e320 [#13613] feat(k8s-job-executor): Build the SparkApplication
of a Spark job and map its state to the job status (part 2/3) (#13725)
add f58ea84310 [#13773] feat(tms): Add scheduler pools and soft-slot
occupancy claim (#13774)
add 294dbf8ff9 [#12614] feat(client-python): Support Semantic Model tags
and owners (#13794)
add b354e8fcbe [#13786] feat(core): Add Semantic Model import/export
events (#13791)
add 46cbef5bdd [#13748] fix(auth): Isolate request-specific role
membership (#13747)
add ff256c0ea5 [#13739] feat(flink-connector): Support Apache Flink 2.2
(#13740)
add 105fe71472 [#13516] improvement(ci): Split core tests into explicit
database lanes (#13517)
add 189ba4dfcd [#13777] feat(tms): In-job S0 gates, OccupancyGate, and
REST Feature lifecycle (#13841)
add a00fc7dd10 [#13854] fix(jdbc): register the catalog's JDBC driver
before the create-time probe looks it up (#13855)
add 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 af74aa95da build(deps): bump gcsfs in /clients/client-python
This update added new revisions after undoing existing revisions.
That is to say, some revisions that were in the old version of the
branch are not in the new version. This situation occurs
when a user --force pushes a change and generates a repository
containing something like this:
* -- * -- B -- O -- O -- O (dbef7526f0)
\
N -- N -- N
refs/heads/dependabot/pip/clients/client-python/gcsfs-2026.8.1 (af74aa95da)
You should already have received notification emails for all of the O
revisions, and so the following emails describe only the N revisions
from the common base, B.
Any revisions marked "omit" are not gone; other references still
refer to them. Any revisions marked "discard" are gone forever.
No new revisions were added by this update.
Summary of changes:
.asf.yaml | 3 +
.github/actions/checkout-and-sync/action.yml | 139 ++
.github/scripts/allowlist-pr.cjs | 98 +
.github/scripts/fail-fast.cjs | 90 +
.github/scripts/fork-ci-status.cjs | 197 +++
.github/scripts/publish-ci-status.cjs | 39 +
.github/scripts/resolve-fork-ci.cjs | 103 ++
.github/scripts/retire-fork-ci.cjs | 68 +
.github/scripts/tests/fork-ci.test.cjs | 1206 +++++++++++++
.github/scripts/tests/retire-fork-ci.test.cjs | 99 ++
.github/scripts/update-fork-ci.cjs | 255 +++
.../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 | 73 +
.github/workflows/auto-cherry-pick.yml | 3 +
.../workflows/backend-integration-test-action.yml | 44 +-
.github/workflows/backend-integration-test.yml | 71 +-
.github/workflows/build.yml | 290 ++-
.github/workflows/chart-test.yaml | 61 +-
.github/workflows/conflict-marker-check.yml | 3 +-
.github/workflows/contrib-catalog-test.yml | 63 +-
.github/workflows/cron-integration-test.yml | 6 +-
.../workflows/flink-integration-test-action.yml | 33 +-
.github/workflows/flink-integration-test.yml | 61 +-
.github/workflows/fork-ci-status-update.yml | 123 ++
.github/workflows/fork-ci-status.yml | 28 +
.github/workflows/fork-ci.yml | 322 ++++
.github/workflows/frontend-integration-test.yml | 51 +-
.../iceberg-rest-trino-integration-test-action.yml | 39 +-
.../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 | 45 +-
.../workflows/spark-integration-test-action.yml | 29 +
.github/workflows/spark-integration-test.yml | 66 +-
.../workflows/trino-integration-test-action.yml | 31 +
.github/workflows/trino-integration-test.yml | 45 +-
.../workflows/trino-multi-version-test-action.yml | 2 +
.github/workflows/web-ui-tests.yml | 73 +-
CONTRIBUTING.md | 50 +-
LICENSE.bin | 8 +
NOTICE.bin | 10 +-
agent-skills/gravitino-release/SKILL.md | 75 +-
agent-skills/trino-test/SKILL.md | 16 +-
.../org/apache/gravitino/SupportsCatalogs.java | 3 +-
.../org/apache/gravitino/SupportsMetalakes.java | 3 +-
.../apache/gravitino/authorization/Privilege.java | 8 +-
.../apache/gravitino/authorization/Privileges.java | 122 +-
.../gravitino/authorization/SecurableObjects.java | 16 +
.../org/apache/gravitino/file/FilesetCatalog.java | 15 +-
.../org/apache/gravitino/file/FilesetChange.java | 61 +-
.../java/org/apache/gravitino/job/JobHandle.java | 2 +-
.../org/apache/gravitino/job/ShellJobTemplate.java | 5 +
.../org/apache/gravitino/job/SupportsJobs.java | 5 +-
.../org/apache/gravitino/model/ModelCatalog.java | 36 +-
.../gravitino/policy/AccessControlContent.java | 198 +++
.../apache/gravitino/policy/ColumnMaskContent.java | 91 +
.../policy/IcebergDataCompactionContent.java | 85 +-
.../policy/IcebergOrphanFileRemovalContent.java | 163 ++
.../policy/IcebergRewriteManifestsContent.java | 90 +
.../policy/IcebergSnapshotExpirationContent.java | 90 +
.../java/org/apache/gravitino/policy/Policy.java | 28 +-
.../apache/gravitino/policy/PolicyContents.java | 130 ++
.../org/apache/gravitino/policy/PolicyList.java | 61 +
.../apache/gravitino/policy/PolicyOperations.java | 3 +-
.../gravitino/policy/ReadRestrictionContent.java | 52 +
.../apache/gravitino/policy/RowFilterContent.java | 91 +
.../apache/gravitino/policy/SupportsPolicies.java | 27 +
.../apache/gravitino/rel/SupportsPartitions.java | 10 +-
.../org/apache/gravitino/rel/TableCatalog.java | 3 +-
.../org/apache/gravitino/rel/indexes/Index.java | 15 +-
.../apache/gravitino/semantic/AIContextObject.java | 52 +-
.../apache/gravitino/semantic/CustomExtension.java | 6 +
.../apache/gravitino/semantic/OssieDocument.java | 96 +
.../org/apache/gravitino/semantic/OssieFormat.java | 14 +-
.../apache/gravitino/semantic/OssieVersion.java | 15 +-
.../apache/gravitino/semantic/SemanticModel.java | 34 +
.../gravitino/semantic/SemanticModelCatalog.java | 49 +
.../apache/gravitino/stats/SupportsStatistics.java | 16 +
.../org/apache/gravitino/tag/SupportsTags.java | 32 +-
.../java/org/apache/gravitino/tag/TagList.java | 61 +
.../authorization/TestSecurableObjects.java | 83 +
.../apache/gravitino/file/TestFilesetChange.java | 18 +
.../apache/gravitino/model/TestModelCatalog.java | 228 +++
.../TestIcebergOrphanFileRemovalContent.java | 97 +
.../gravitino/policy/TestPolicyBuiltInType.java | 44 +
.../gravitino/policy/TestPolicyContents.java | 215 +++
.../policy/TestReadRestrictionContent.java | 97 +
.../gravitino/semantic/TestOssieDocument.java | 67 +
.../semantic/TestSemanticModelCatalog.java | 13 +
.../semantic/TestSemanticModelSupportingTypes.java | 31 +-
build.gradle.kts | 24 +-
.../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 +++
.../catalog/clickhouse/ClickHouseConstants.java | 21 +
.../operations/ClickHouseDatabaseOperations.java | 7 +-
.../operations/ClickHouseTableOperations.java | 280 ++-
.../operations/ClickHouseTableSqlUtils.java | 25 +
.../integration/test/CatalogClickHouseIT.java | 235 ++-
.../operations/TestClickHouseDatabaseDrop.java | 78 +
.../operations/TestClickHouseTableOperations.java | 80 +-
...stClickHouseTableOperationsConnectionUsage.java | 67 +
.../TestClickHouseTableOperationsPartitioning.java | 38 +-
.../TestClickHouseTableOperationsUnit.java | 501 +++++-
.../HologresColumnDefaultValueConverter.java | 15 +-
.../operation/HologresTableOperations.java | 4 +-
.../TestHologresColumnDefaultValueConverter.java | 27 +
.../operation/TestHologresTableOperations.java | 12 +
.../operation/OceanBaseTableOperations.java | 76 +-
.../integration/test/CatalogOceanBaseIT.java | 6 +-
.../operation/TestOceanBaseTableOperations.java | 239 ++-
...estOceanBaseTableOperationsConnectionUsage.java | 80 +
.../TestOceanBaseTableOperationsSqlGeneration.java | 139 ++
.../catalog/fileset/FilesetCatalogOperations.java | 331 ++--
.../fileset/TestFilesetCatalogCredential.java | 10 +
.../fileset/TestFilesetCatalogOperations.java | 921 ++++++++++
.../apache/gravitino/catalog/glue/GlueCatalog.java | 5 +
.../apache/gravitino/catalog/hive/HiveCatalog.java | 5 +
.../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 | 51 +
.../catalog/jdbc/JdbcCatalogOperations.java | 193 +-
.../jdbc/JdbcCatalogPropertiesMetadata.java | 35 +-
.../gravitino/catalog/jdbc/config/JdbcConfig.java | 85 +
.../converter/JdbcColumnDefaultValueConverter.java | 37 +-
.../jdbc/operation/JdbcDatabaseOperations.java | 16 +-
.../jdbc/operation/JdbcTableOperations.java | 214 ++-
.../catalog/jdbc/operation/TableOperation.java | 25 +
.../catalog/jdbc/utils/DataSourceUtils.java | 36 +-
.../catalog/jdbc/utils/JdbcConnectionTimeouts.java | 303 ++++
.../catalog/jdbc/TestJdbcCatalogCredential.java | 4 +
.../catalog/jdbc/TestJdbcCatalogOperations.java | 123 ++
.../jdbc/TestJdbcCatalogOperationsProbe.java | 327 ++++
.../jdbc/TestJdbcCatalogPropertiesMetadata.java | 215 +++
.../catalog/jdbc/config/TestJdbcConfig.java | 17 +
.../TestJdbcColumnDefaultValueConverter.java | 45 +
.../jdbc/operation/TestJdbcDatabaseDrop.java | 70 +
.../TestJdbcOperationsConnectionUsage.java | 480 +++++
.../jdbc/operation/TestJdbcTableOperations.java | 65 +
.../jdbc/utils/ConnectionCountingDataSource.java | 168 ++
.../jdbc/utils/TestDataSourceValidation.java | 193 ++
.../catalog/jdbc/utils/TestJdbcConfig.java | 43 +
.../jdbc/utils/TestJdbcConnectionTimeouts.java | 326 ++++
.../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 +
catalogs/catalog-jdbc-mysql/build.gradle.kts | 1 +
.../mysql/MysqlTablePropertiesMetadata.java | 34 +-
.../mysql/converter/MysqlTypeConverter.java | 21 +-
.../mysql/operation/MysqlTableOperations.java | 186 +-
.../catalog/mysql/TestMysqlDataSource.java | 144 ++
.../mysql/TestMysqlTablePropertiesMetadata.java | 222 +++
.../mysql/converter/TestMysqlTypeConverter.java | 12 +
.../mysql/integration/test/CatalogMysqlIT.java | 106 ++
.../mysql/operation/TestMysqlTableOperations.java | 293 ++-
.../TestMysqlTableOperationsSqlGeneration.java | 160 ++
catalogs/catalog-jdbc-postgresql/build.gradle.kts | 1 +
.../PostgreSqlColumnDefaultValueConverter.java | 15 +-
.../converter/PostgreSqlTypeConverter.java | 15 +-
.../operation/PostgreSqlTableOperations.java | 62 +-
.../postgresql/TestPostgreSqlDataSource.java | 126 ++
.../TestPostgreSqlColumnDefaultValueConverter.java | 65 +
.../converter/TestPostgreSqlTypeConverter.java | 15 +
.../integration/test/CatalogPostgreSqlIT.java | 85 +-
.../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 | 14 +
.../catalog/lakehouse/generic/GenericCatalog.java | 5 +
.../generic/GenericCatalogOperations.java | 5 +-
.../lakehouse/lance/LanceTableOperations.java | 72 +-
.../generic/TestGenericCatalogOperations.java | 150 ++
.../lakehouse/lance/TestLanceTableOperations.java | 359 ++++
.../catalog/lakehouse/hudi/HudiCatalog.java | 5 +
.../iceberg/IcebergViewCatalogOperations.java | 65 +-
.../lakehouse/iceberg/TestIcebergCatalog.java | 11 +
.../iceberg/TestIcebergViewCatalogOperations.java | 166 ++
.../catalog/lakehouse/paimon/PaimonCatalog.java | 5 +
catalogs/catalog-model/build.gradle.kts | 1 +
.../gravitino/catalog/model/ModelCatalogImpl.java | 5 +
.../catalog/model/ModelCatalogOperations.java | 15 +-
.../catalog/model/TestModelCatalogOperations.java | 120 +-
clients/client-java/build.gradle.kts | 1 +
.../apache/gravitino/client/BaseSchemaCatalog.java | 22 +
.../org/apache/gravitino/client/DTOConverters.java | 40 +
.../org/apache/gravitino/client/ErrorHandlers.java | 79 +
.../apache/gravitino/client/FilesetCatalog.java | 11 +-
.../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 | 226 +++
.../org/apache/gravitino/client/GenericTopic.java | 22 +
.../org/apache/gravitino/client/GenericView.java | 11 +
.../client/GravitinoClientConfiguration.java | 15 +
.../org/apache/gravitino/client/HTTPClient.java | 71 +-
.../client/MetadataObjectPolicyOperations.java | 31 +-
.../client/MetadataObjectTagOperations.java | 32 +-
.../org/apache/gravitino/client/RESTClient.java | 41 +
.../apache/gravitino/client/RelationalCatalog.java | 68 +-
.../apache/gravitino/client/RelationalTable.java | 22 +
.../client/SemanticModelCatalogOperations.java | 266 +++
.../gravitino/client/TestFilesetCatalog.java | 25 +
.../gravitino/client/TestGenericSemanticModel.java | 140 ++
.../client/TestGravitinoClientConfiguration.java | 23 +
.../apache/gravitino/client/TestHTTPClient.java | 96 +
.../gravitino/client/TestRelationalCatalog.java | 24 +
.../gravitino/client/TestSemanticModelCatalog.java | 692 ++++++++
.../gravitino/client/TestSupportPolicies.java | 107 +-
.../apache/gravitino/client/TestSupportTags.java | 102 +-
.../gravitino/client/integration/test/JobIT.java | 9 +
.../client/integration/test/SemanticModelIT.java | 1358 ++++++++++++++
.../test/authorization/FilesetAuthorizationIT.java | 50 +
.../test/authorization/PolicyAuthorizationIT.java | 89 +
.../TagOperationsAuthorizationIT.java | 61 +
clients/client-python/MANIFEST.in | 6 +
clients/client-python/gravitino/__init__.py | 29 +-
.../gravitino/api/authorization/privileges.py | 107 +-
.../api/authorization/securable_objects.py | 24 +
.../gravitino/api/file/fileset_change.py | 51 +-
.../client-python/gravitino/api/job/job_handle.py | 4 +-
.../client-python/gravitino/api/metadata_object.py | 3 +
.../gravitino/api/metadata_objects.py | 4 +-
.../gravitino/api/rel/indexes/index.py | 17 +
.../gravitino/api/semantic/ai_context_object.py | 39 +-
.../gravitino/api/semantic/semantic_model.py | 15 +
.../api/semantic/semantic_model_catalog.py | 57 +-
.../gravitino/api/stats/supports_statistics.py | 14 +
.../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 | 127 ++
.../client-python/gravitino/client/generic_view.py | 7 +
.../client/metadata_object_tag_operations.py | 30 +-
.../gravitino/client/relational_catalog.py | 19 +
.../gravitino/client/relational_table.py | 7 +
.../client/semantic_model_catalog_operations.py | 310 ++++
.../dto/rel/indexes/json_serdes/index_serdes.py | 9 +-
.../dto/requests/fileset_update_request.py | 20 +
.../dto/requests/semantic_model_create_request.py | 69 +
.../dto/requests/semantic_model_update_request.py | 144 ++
.../dto/requests/semantic_model_updates_request.py | 43 +
.../dto/responses/semantic_model_response.py | 56 +
.../gravitino/dto/responses/tag_response.py | 13 +-
.../gravitino/{api => dto/semantic}/__init__.py | 0
.../gravitino/dto/semantic/ai_context_dto.py | 77 +
.../dto/semantic/ai_context_object_dto.py | 97 +
.../gravitino/dto/semantic/custom_extension_dto.py | 56 +
.../gravitino/dto/semantic/dataset_dto.py | 139 ++
.../dto/semantic/dialect_expression_dto.py | 59 +
.../gravitino/dto/semantic/dimension_dto.py | 48 +
.../gravitino/dto/semantic/expression_dto.py | 58 +
.../gravitino/dto/semantic/field_dto.py | 155 ++
.../{api => dto/semantic/json_serdes}/__init__.py | 0
.../dto/semantic/json_serdes/ai_context_serdes.py | 104 ++
.../dto/semantic/json_serdes/data_type_serdes.py | 47 +
.../semantic/json_serdes/semantic_json_mixin.py | 74 +
.../gravitino/dto/semantic/metric_dto.py | 129 ++
.../gravitino/dto/semantic/relationship_dto.py | 127 ++
.../gravitino/dto/semantic/semantic_dto_utils.py | 47 +
.../dto/semantic/semantic_model_definition_dto.py | 122 ++
.../gravitino/dto/semantic/semantic_model_dto.py | 75 +
.../exceptions/handlers/catalog_error_handler.py | 59 +-
.../handlers/credential_error_handler.py | 26 +-
.../exceptions/handlers/fileset_error_handler.py | 40 +-
.../exceptions/handlers/function_error_handler.py | 51 +-
.../exceptions/handlers/group_error_handler.py | 49 +-
.../exceptions/handlers/job_error_handler.py | 64 +-
.../exceptions/handlers/metalake_error_handler.py | 32 +-
.../exceptions/handlers/model_error_handler.py | 79 +-
.../exceptions/handlers/owner_error_handler.py | 40 +-
.../exceptions/handlers/partition_error_handler.py | 61 +-
.../handlers/permission_error_handler.py | 65 +-
.../exceptions/handlers/rest_error_handler.py | 29 +
.../exceptions/handlers/role_error_handler.py | 67 +-
.../exceptions/handlers/schema_error_handler.py | 45 +-
.../exceptions/handlers/secret_error_handler.py | 23 +-
..._handler.py => semantic_model_error_handler.py} | 58 +-
.../handlers/statistics_error_handler.py | 67 +-
.../exceptions/handlers/table_error_handler.py | 62 +-
.../exceptions/handlers/tag_error_handler.py | 54 +-
.../exceptions/handlers/user_error_handler.py | 50 +-
.../exceptions/handlers/view_error_handler.py | 62 +-
.../gravitino/filesystem/gvfs_storage_handler.py | 36 +-
.../client-python/gravitino/utils/http_client.py | 30 +-
clients/client-python/pylintrc | 8 +-
.../{MANIFEST.in => requirements-azure.txt} | 10 +-
clients/client-python/requirements-dev.txt | 8 +
.../{MANIFEST.in => requirements-gcs.txt} | 10 +-
.../{MANIFEST.in => requirements-gvfs.txt} | 13 +-
.../{MANIFEST.in => requirements-hdfs.txt} | 10 +-
.../{MANIFEST.in => requirements-oss.txt} | 10 +-
.../{MANIFEST.in => requirements-s3.txt} | 10 +-
clients/client-python/requirements.txt | 15 +-
clients/client-python/setup.py | 58 +-
.../tests/integration/test_fileset_catalog.py | 26 +
.../test_semantic_model_authorization.py | 266 +++
.../tests/integration/test_semantic_model_ossie.py | 300 ++++
.../test_semantic_model_tags_and_owner.py | 319 ++++
.../test_semantic_model_supporting_types.py | 13 +-
.../unittests/auth/test_oauth2_token_provider.py | 23 +
.../unittests/authorization/test_privileges.py | 12 +
.../test_semantic_model_authorization.py | 169 ++
.../tests/unittests/dto/rel/test_index_serdes.py | 78 +
.../unittests/dto/semantic}/__init__.py | 0
.../semantic/test_semantic_model_definition_dto.py | 247 +++
.../dto/semantic/test_semantic_model_dto.py | 110 ++
.../semantic/test_semantic_wire_compatibility.py | 307 ++++
.../unittests/dto/test_semantic_model_rest.py | 137 ++
clients/client-python/tests/unittests/mock_base.py | 4 +-
...t_client_import_without_storage_dependencies.py | 103 ++
.../unittests/test_code_mapping_error_handler.py | 324 ++++
.../tests/unittests/test_error_handler.py | 104 ++
.../tests/unittests/test_fileset_type_change.py | 71 +
.../tests/unittests/test_gravitino_client.py | 17 +
.../tests/unittests/test_http_client_close.py | 58 +
.../tests/unittests/test_http_client_headers.py | 174 ++
.../tests/unittests/test_http_client_raw_body.py | 64 +
.../tests/unittests/test_metadata_objects.py | 2 +-
.../tests/unittests/test_package_metadata.py | 173 ++
.../tests/unittests/test_semantic_model_catalog.py | 386 ++++
.../tests/unittests/test_semantic_model_ossie.py | 250 +++
.../test_semantic_model_tags_and_owner.py | 208 +++
.../tests/unittests/test_storage_handler.py | 97 +-
.../client-python/tests/unittests/test_tag_api.py | 54 +-
.../GravitinoVirtualFileSystemConfiguration.java | 17 +-
.../hadoop/GravitinoVirtualFileSystemUtils.java | 25 +
.../filesystem/hadoop/TestBasicClient.java | 152 ++
.../credential/CredentialProviderDelegator.java | 2 +
.../gravitino/credential/RoleSessionNameUtils.java | 51 +
.../java/org/apache/gravitino/dto/job/JobDTO.java | 4 +-
.../gravitino/dto/policy/PolicyContentDTO.java | 344 ++++
.../org/apache/gravitino/dto/policy/PolicyDTO.java | 20 +-
.../dto/requests/FilesetUpdateRequest.java | 33 +
.../dto/requests/PolicyCreateRequest.java | 20 +-
.../dto/requests/PolicyUpdateRequest.java | 20 +-
....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 | 77 +
.../java/org/apache/gravitino/rest/RESTUtils.java | 24 +-
.../org/apache/gravitino/utils/FileFetcher.java | 7 +-
.../credential/TestRoleSessionNameUtils.java | 53 +
.../dto/policy/TestOrphanFileRemovalPolicyDTO.java | 122 ++
.../gravitino/dto/policy/TestPolicyContentDTO.java | 58 +
.../apache/gravitino/dto/policy/TestPolicyDTO.java | 68 +
.../dto/policy/TestReadRestrictionPolicyDTO.java | 214 +++
...iteManifestsAndSnapshotExpirationPolicyDTO.java | 68 +
.../dto/requests/TestFilesetUpdatesRequest.java | 45 +
.../gravitino/dto/responses/TestResponses.java | 78 +
.../gravitino/dto/util/TestDTOConverters.java | 28 +
.../org/apache/gravitino/json/TestJsonUtils.java | 14 +
.../org/apache/gravitino/rest/TestRESTUtils.java | 10 +-
.../apache/gravitino/utils/TestFileFetcher.java | 19 +
conf/gravitino.conf.template | 5 +
core/build.gradle.kts | 114 ++
.../cache/it/AbstractEntityStorageBenchmark.java | 16 +
.../main/java/org/apache/gravitino/Configs.java | 64 +-
.../java/org/apache/gravitino/EntityStore.java | 21 +
.../java/org/apache/gravitino/GravitinoEnv.java | 62 +-
.../java/org/apache/gravitino/audit/AuditLog.java | 49 +
.../gravitino/audit/v2/CompatibilityUtils.java | 7 +
.../authorization/AuthorizationRequestContext.java | 193 ++
.../authorization/AuthorizationUtils.java | 93 +-
.../authorization/FutureGrantManager.java | 15 +-
.../gravitino/authorization/OwnerManager.java | 95 +-
.../gravitino/authorization/PermissionManager.java | 81 +-
.../apache/gravitino/cache/BaseEntityCache.java | 31 +-
.../gravitino/cache/CaffeineEntityCache.java | 84 +-
.../org/apache/gravitino/cache/NoOpsCache.java | 15 +-
.../gravitino/cache/SupportsEntityStoreCache.java | 6 +
.../gravitino/catalog/CapabilityHelpers.java | 44 +
.../catalog/CatalogChangeLogListener.java | 55 +-
.../apache/gravitino/catalog/CatalogManager.java | 220 ++-
.../apache/gravitino/catalog/FilesetFileOps.java | 6 +
.../gravitino/catalog/JdbcDriverProperties.java | 94 +
.../gravitino/catalog/ManagedTableOperations.java | 30 +-
.../catalog/ModelOperationDispatcher.java | 227 +--
.../catalog/PartitionOperationDispatcher.java | 49 +-
.../catalog/SchemaOperationDispatcher.java | 6 +
.../gravitino/catalog/SemanticModelDispatcher.java | 160 +-
.../catalog/SemanticModelNormalizeDispatcher.java | 17 +
.../catalog/SemanticModelOperationDispatcher.java | 52 +-
.../gravitino/catalog/SemanticModelValidator.java | 21 +-
.../catalog/TableNormalizeDispatcher.java | 16 +-
.../catalog/TableOperationDispatcher.java | 3 +
.../catalog/TopicOperationDispatcher.java | 6 +
.../gravitino/catalog/ViewOperationDispatcher.java | 6 +
.../apache/gravitino/connector/BaseCatalog.java | 76 +-
.../connector/HiddenPropertyMaskUtils.java | 133 ++
.../connector/SupportsTableNameResolution.java | 80 +
.../apache/gravitino/connector/job/JobContext.java | 98 +
.../gravitino/connector/job/JobExecutor.java | 42 +-
.../gravitino/connector/job/JobResourceUtils.java | 234 +++
.../gravitino/credential/CredentialUtils.java | 14 +
.../apache/gravitino/hook/JobHookDispatcher.java | 22 +-
.../apache/gravitino/hook/ModelHookDispatcher.java | 15 +-
.../gravitino/hook/PolicyHookDispatcher.java | 17 +-
.../hook/SemanticModelHookDispatcher.java | 147 ++
.../apache/gravitino/hook/TagHookDispatcher.java | 17 +-
.../apache/gravitino/hook/ViewHookDispatcher.java | 8 +-
.../job/BuiltInJobTemplateEventListener.java | 177 +-
.../apache/gravitino/job/JobExecutorFactory.java | 99 +-
.../java/org/apache/gravitino/job/JobManager.java | 304 +++-
.../gravitino/job/JobOperationDispatcher.java | 5 +-
.../gravitino/job/JobRuntimeTemplateMaskUtils.java | 214 +++
.../apache/gravitino/job/JobTemplateResolver.java | 73 +-
.../gravitino/job/local/LocalJobExecutor.java | 125 +-
.../job/local/LocalJobExecutorConfigs.java | 9 +
.../gravitino/job/local/LocalProcessBuilder.java | 30 +-
.../gravitino/job/local/ShellProcessBuilder.java | 16 +-
.../gravitino/job/local/SparkProcessBuilder.java | 5 +-
.../gravitino/listener/AsyncQueueListener.java | 48 +-
.../org/apache/gravitino/listener/EventBus.java | 18 +-
.../gravitino/listener/EventListenerManager.java | 109 +-
.../gravitino/listener/JobEventDispatcher.java | 10 +-
.../listener/SemanticModelEventDispatcher.java | 221 +++
.../listener/api/event/OperationType.java | 11 +
.../event/semantic/AlterSemanticModelEvent.java | 74 +
.../semantic/AlterSemanticModelFailureEvent.java | 64 +
.../event/semantic/AlterSemanticModelPreEvent.java | 62 +
.../event/semantic/CreateSemanticModelEvent.java | 58 +
.../semantic/CreateSemanticModelFailureEvent.java | 62 +
.../semantic/CreateSemanticModelPreEvent.java | 58 +
.../api/event/semantic/DropSemanticModelEvent.java | 56 +
.../semantic/DropSemanticModelFailureEvent.java | 46 +
.../event/semantic/DropSemanticModelPreEvent.java} | 49 +-
.../event/semantic/ExportSemanticModelEvent.java | 57 +
.../semantic/ExportSemanticModelFailureEvent.java | 61 +
.../semantic/ExportSemanticModelPreEvent.java | 60 +
.../event/semantic/ImportSemanticModelEvent.java | 74 +
.../semantic/ImportSemanticModelFailureEvent.java | 73 +
.../semantic/ImportSemanticModelPreEvent.java | 72 +
.../api/event/semantic/ListSemanticModelEvent.java | 70 +
.../semantic/ListSemanticModelFailureEvent.java | 57 +
.../event/semantic/ListSemanticModelPreEvent.java | 56 +
.../api/event/semantic/LoadSemanticModelEvent.java | 58 +
.../semantic/LoadSemanticModelFailureEvent.java | 46 +
.../event/semantic/LoadSemanticModelPreEvent.java} | 49 +-
.../api/event/semantic/SemanticModelEvent.java | 45 +
.../event/semantic/SemanticModelFailureEvent.java | 32 +-
.../api/event/semantic/SemanticModelPreEvent.java | 31 +-
.../api/event/server/HttpRequestEvent.java | 13 +-
.../api/event/server/HttpRequestFailureEvent.java | 5 +-
.../gravitino/listener/api/info/JobInfo.java | 24 +-
.../listener/api/info/SemanticModelInfo.java | 124 ++
.../java/org/apache/gravitino/meta/JobEntity.java | 6 +-
.../apache/gravitino/metalake/MetalakeManager.java | 13 +-
.../source/EntityChangeLogMetricsSource.java | 18 +
.../org/apache/gravitino/policy/PolicyManager.java | 289 ++-
.../gravitino/policy/rego/CanonicalExpression.java | 49 +
.../org/apache/gravitino/policy/rego/Column.java | 65 +
.../apache/gravitino/policy/rego/Comparison.java | 119 ++
.../gravitino/policy/rego/ComparisonOperator.java | 71 +
.../gravitino/policy/rego/ExpressionValidator.java | 146 ++
.../gravitino/policy/rego/GroupMembership.java | 65 +
.../org/apache/gravitino/policy/rego/Literal.java | 120 ++
.../apache/gravitino/policy/rego/LiteralArray.java | 83 +
.../rego/LiteralType.java} | 17 +-
.../gravitino/policy/rego/LogicalExpression.java | 112 ++
.../rego/LogicalOperator.java} | 21 +-
.../java/org/apache/gravitino/policy/rego/Not.java | 67 +
.../rego/RestrictedRegoExpressionParserFacade.java | 105 ++
.../gravitino/policy/rego/RestrictedRegoLexer.java | 322 ++++
.../policy/rego/RestrictedRegoLimits.java | 24 +-
.../policy/rego/RestrictedRegoProgram.java | 410 +++++
.../policy/rego/RestrictedRegoSourceParser.java | 358 ++++
.../policy/rego/RestrictedRegoSourceValidator.java | 113 ++
.../apache/gravitino/policy/rego/SessionUser.java} | 34 +-
.../gravitino/semantic/OssieDocumentConverter.java | 994 +++++++++++
.../semantic/SemanticModelPropertiesMetadata.java | 64 +
.../apache/gravitino/stats/StatisticManager.java | 41 +-
.../relational/EntityCacheChangeLogListener.java | 10 +-
.../relational/EntityChangeLogListener.java | 25 +-
.../storage/relational/EntityChangeLogPoller.java | 480 ++++-
.../storage/relational/EntityChangeLogWriter.java | 51 +
.../gravitino/storage/relational/JDBCBackend.java | 102 +-
.../storage/relational/RelationalBackend.java | 21 +
.../storage/relational/RelationalEntityStore.java | 192 +-
.../relational/mapper/EntityChangeLogMapper.java | 21 +
.../mapper/EntityChangeLogSQLProviderFactory.java | 21 +
.../mapper/OwnerMetaSQLProviderFactory.java | 4 +
.../relational/mapper/SemanticModelMetaMapper.java | 16 +
.../relational/mapper/StatisticMetaMapper.java | 44 +-
.../mapper/StatisticSQLProviderFactory.java | 44 +-
.../base/EntityChangeLogBaseSQLProvider.java | 42 +-
.../provider/base/StatisticBaseSQLProvider.java | 104 +-
.../EntityChangeLogPostgreSQLProvider.java | 6 +
.../postgresql/StatisticPostgresSQLProvider.java | 31 -
.../postgresql/TableVersionPostgreSQLProvider.java | 5 +-
.../relational/service/JobTemplateMetaService.java | 16 +-
.../relational/service/LiveEndpointService.java | 4 +-
.../relational/service/MetadataObjectService.java | 32 +
.../relational/service/ModelMetaService.java | 41 +-
.../service/ModelVersionMetaService.java | 212 ++-
.../OrphanedMetadataObjectRelationService.java | 4 +
.../relational/service/SchemaMetaService.java | 50 +-
.../service/SemanticModelMetaService.java | 50 +-
.../relational/service/StatisticMetaService.java | 325 +++-
.../storage/relational/service/TagMetaService.java | 40 +-
.../session/SqlSessionFactoryHelper.java | 12 +-
.../storage/relational/utils/ExceptionUtils.java | 186 ++
.../java/org/apache/gravitino/tag/TagManager.java | 558 +++---
.../apache/gravitino/utils/EntityClassMapper.java | 6 +
.../apache/gravitino/utils/MetadataObjectUtil.java | 7 +
.../org/apache/gravitino/utils/RenameUtils.java | 51 +
.../org/apache/gravitino/utils/RequestContext.java | 7 +-
.../java/org/apache/gravitino/TestCatalog.java | 22 +
.../test/java/org/apache/gravitino/TestConfig.java | 14 +
.../TestGravitinoEnvMetadataComponents.java | 23 +-
.../apache/gravitino/TestGravitinoEnvShutdown.java | 104 ++
.../apache/gravitino/audit/DummyAuditWriter.java | 7 +-
.../apache/gravitino/audit/TestAuditManager.java | 28 +
.../org/apache/gravitino/audit/TestOperation.java | 101 ++
.../gravitino/audit/v2/TestCompatibilityUtils.java | 7 +
.../authorization/TestAccessControlManager.java | 14 +
.../TestAccessControlManagerForPermissions.java | 88 +
.../TestAuthorizationRequestContext.java | 274 +++
.../authorization/TestAuthorizationUtils.java | 99 ++
.../authorization/TestFutureGrantManager.java | 90 +
.../gravitino/authorization/TestOwnerManager.java | 89 +-
.../gravitino/cache/TestBaseEntityCache.java | 14 +-
.../cache/TestCaffeineEntityCacheEviction.java | 336 ++++
.../cache/TestEntityCachePublicationRace.java | 272 +++
.../org/apache/gravitino/cache/TestNoOpsCache.java | 132 ++
.../catalog/TestCatalogChangeLogListener.java | 59 +-
.../gravitino/catalog/TestCatalogManager.java | 569 +++++-
.../catalog/TestCatalogMutationMarkerRace.java | 70 +
.../gravitino/catalog/TestCatalogWrapperLease.java | 22 +-
.../catalog/TestJdbcDriverProperties.java | 99 ++
.../catalog/TestManagedTableOperations.java | 48 +
.../catalog/TestModelOperationDispatcher.java | 94 +-
.../catalog/TestPartitionOperationDispatcher.java | 45 +
.../catalog/TestSchemaOperationDispatcher.java | 40 +
.../catalog/TestSemanticModelDispatcher.java | 97 +
.../TestSemanticModelNormalizeDispatcher.java | 61 +
.../TestSemanticModelOperationDispatcher.java | 255 ++-
.../catalog/TestSemanticModelValidator.java | 45 +
.../catalog/TestTableNormalizeDispatcher.java | 174 ++
.../catalog/TestTableOperationDispatcher.java | 31 +
.../catalog/TestTopicOperationDispatcher.java | 43 +
.../catalog/TestViewOperationDispatcher.java | 50 +
.../gravitino/catalog/TreeLockTestSupport.java | 18 +-
.../TestBaseCatalogCredentialProviders.java | 203 +++
.../gravitino/connector/TestCatalogOperations.java | 19 +
.../connector/TestHiddenPropertyMaskUtils.java | 43 +
.../connector/job/TestJobExecutionInfo.java | 2 +-
.../gravitino/connector/job/TestJobExecutor.java | 125 ++
.../connector/job/TestJobResourceUtils.java | 403 +++++
.../gravitino/hook/TestFilesetHookDispatcher.java | 15 +
.../gravitino/hook/TestJobHookDispatcher.java | 71 +
.../gravitino/hook/TestModelHookDispatcher.java | 70 +
.../gravitino/hook/TestPolicyHookDispatcher.java | 71 +
.../hook/TestSemanticModelHookDispatcher.java | 302 ++++
.../gravitino/hook/TestTagHookDispatcher.java | 66 +
.../gravitino/hook/TestViewHookDispatcher.java | 23 +
.../job/TestBuiltInJobTemplateEventListener.java | 184 +-
.../gravitino/job/TestJobExecutorFactory.java | 209 ++-
.../org/apache/gravitino/job/TestJobManager.java | 612 ++++++-
.../gravitino/job/TestJobManagerMultiNode.java | 47 +-
.../job/TestJobRuntimeTemplateMaskUtils.java | 264 +++
.../gravitino/job/TestJobTemplateResolver.java | 346 +---
.../gravitino/job/local/TestLocalJobExecutor.java | 311 +++-
.../gravitino/listener/TestAsyncQueueListener.java | 120 ++
.../listener/TestEventListenerManager.java | 206 +++
.../listener/api/event/TestJobEventDispatcher.java | 54 +
.../listener/api/event/TestSemanticModelEvent.java | 553 ++++++
.../event/TestSemanticModelImportExportEvent.java | 415 +++++
.../gravitino/listener/api/info/TestJobInfo.java | 49 +
.../apache/gravitino/meta/TestPolicyEntity.java | 37 +
.../gravitino/metalake/TestMetalakeManager.java | 3 +
.../apache/gravitino/policy/TestPolicyManager.java | 249 ++-
.../policy/rego/RestrictedRegoTestUtils.java | 117 ++
.../apache/gravitino/policy/rego/TestColumn.java | 18 +-
.../gravitino/policy/rego/TestComparison.java | 54 +
.../policy/rego/TestComparisonOperator.java | 17 +-
.../gravitino/policy/rego/TestGroupMembership.java | 19 +-
.../apache/gravitino/policy/rego/TestLiteral.java | 48 +
.../gravitino/policy/rego/TestLiteralArray.java | 55 +
.../policy/rego/TestLogicalExpression.java | 65 +
.../org/apache/gravitino/policy/rego/TestNot.java | 26 +-
.../TestRestrictedRegoExpressionParserFacade.java | 126 ++
.../policy/rego/TestRestrictedRegoGoldenFile.java | 176 ++
.../policy/rego/TestRestrictedRegoLexer.java | 81 +
.../policy/rego/TestRestrictedRegoProgram.java | 113 ++
.../rego/TestRestrictedRegoSourceParser.java | 256 +++
.../rego/TestRestrictedRegoSourceValidator.java | 164 ++
.../gravitino/policy/rego/TestSessionUser.java | 17 +-
.../semantic/TestOssieDocumentConverter.java | 876 +++++++++
.../TestSemanticModelPropertiesMetadata.java | 46 +
.../gravitino/stats/TestStatisticManager.java | 92 +
.../TestJdbcPartitionStatisticStorageIT.java | 7 +-
.../storage/AbstractEntityStorageTest.java | 50 +-
.../gravitino/storage/TestBackendTestSelector.java | 84 +
.../apache/gravitino/storage/TestSQLScripts.java | 342 ++++
.../storage/relational/BackendTestExtension.java | 312 +++-
.../storage/relational/BackendTestSelector.java | 71 +
.../gravitino/storage/relational/CoreBackend.java | 86 +
.../storage/relational/DatabaseFixture.java | 33 +-
.../storage/relational/DatabaseResetter.java | 146 ++
.../storage/relational/ResetStrategy.java | 43 +
.../relational/TestBackendTestExtension.java | 434 +++++
.../relational/TestCacheCommitOrdering.java | 119 ++
.../storage/relational/TestCoreLaneMembership.java | 107 ++
.../TestEntityCacheCrossNodeInvalidation.java | 61 +-
.../relational/TestEntityChangeLogPoller.java | 888 +++++++++-
.../storage/relational/TestJDBCBackend.java | 72 +-
.../relational/TestRelationalEntityStore.java | 19 +
...elationalEntityStoreBackendLockWaitTimeout.java | 171 ++
...TestRelationalEntityStoreHierarchicalCache.java | 13 +
.../TestRelationalEntityStoreLockWaitTimeout.java | 522 ++++++
.../storage/relational/TestRenameConflicts.java | 311 ++++
.../storage/relational/TestResetStrategy.java | 95 +
.../relational/TestSemanticModelJDBCBackend.java | 137 ++
.../relational/mapper/TestRoleMetaMapper.java | 50 +
.../mapper/provider/base/TestAuthMappers.java | 2 +
.../provider/base/TestEntityChangeLogMapper.java | 43 +
.../provider/base/TestUserRoleRelMapper.java | 2 +
.../relational/service/TestJobMetaService.java | 48 -
.../service/TestJobMetaServiceValidation.java | 78 +
.../service/TestJobTemplateMetaService.java | 85 +
.../service/TestModelVersionMetaService.java | 198 ++-
.../TestOrphanedMetadataObjectRelationService.java | 59 +
.../relational/service/TestSchemaMetaService.java | 167 ++
.../service/TestStatisticConcurrentWrites.java | 277 +++
.../service/TestStatisticMetaService.java | 790 ++++++++-
.../relational/service/TestTableMetaService.java | 73 +
.../relational/service/TestTagMetaService.java | 49 +-
.../storage/relational/session/TestSqlSession.java | 64 +
.../relational/utils/TestExceptionUtils.java | 204 +++
.../org/apache/gravitino/tag/TestTagManager.java | 212 ++-
.../org/apache/gravitino/utils/RaceTestUtils.java | 85 +
.../gravitino/utils/TestMetadataObjectUtil.java | 18 +
.../apache/gravitino/utils/TestRenameUtils.java | 63 +
.../test/resources/restricted-rego-v1-cases.golden | 91 +
.../test/resources/restricted-rego-v1-cases.txt | 35 +
.../gravitino-entity-cache-multinode-design.md | 2 +-
design-docs/gravitino-local-authentication.md | 32 +-
design-docs/gravitino-semantic-model-design.md | 4 +-
design-docs/table-maintenance-service-design.md | 572 ++++++
design-docs/tag-based-access-control.md | 844 +++++++++
...tag-based-read-restrictions-for-iceberg-rest.md | 725 ++++++++
.../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 +
.../gravitino/resources/config/gravitino.conf | 3 +
dev/charts/gravitino/tests/configmap_test.yaml | 19 +
dev/charts/gravitino/values.yaml | 5 +
dev/docker/flink-connectors/Dockerfile | 11 +-
dev/docker/flink-connectors/README.md | 7 +-
dev/docker/flink-connectors/copy-connector.sh | 10 +-
.../flink-connectors-dependency.sh | 9 +-
dev/docker/iceberg-rest-server/rewrite_config.py | 1 +
dev/docker/lance-rest-server/rewrite_config.py | 3 +-
dev/performance/jdbc_idle_retention.py | 195 ++
dev/performance/test_jdbc_idle_retention.py | 77 +
dev/release/publish-docker.sh | 4 +-
dev/release/release-build.sh | 2 +
docs/development/custom-job-executor.md | 37 +
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 | 10 +
docs/flink-connector/flink-catalog-jdbc.md | 8 +-
docs/flink-connector/flink-catalog-paimon.md | 16 +-
docs/flink-connector/flink-connector.md | 3 +-
docs/gravitino-mcp-server.md | 53 +
docs/gravitino-server-config.md | 151 +-
docs/how-to-sign-releases.md | 14 +-
docs/how-to-test.md | 43 +
docs/how-to-upgrade.md | 5 +
docs/how-to-use-gravitino-client.md | 19 +-
docs/how-to-use-gvfs.md | 38 +-
docs/how-to-use-python-client.md | 35 +-
docs/how-to-use-relational-backend-storage.md | 21 +
docs/iceberg-compaction-policy.md | 34 +-
docs/iceberg-rest-service.md | 33 +-
docs/index.md | 3 +
docs/jdbc-catalog-connection-validation.md | 107 ++
docs/jdbc-clickhouse-catalog.md | 36 +-
docs/jdbc-doris-catalog.md | 24 +-
docs/jdbc-hologres-catalog.md | 23 +-
docs/jdbc-mysql-catalog.md | 48 +-
docs/jdbc-oceanbase-catalog.md | 29 +-
docs/jdbc-postgresql-catalog.md | 38 +-
docs/jdbc-starrocks-catalog.md | 39 +-
docs/lakehouse-generic-lance-table.md | 54 +-
docs/lance-rest-service.md | 28 +-
docs/lineage/gravitino-server-lineage.md | 6 +
docs/manage-fileset-metadata-using-gravitino.md | 53 +
docs/manage-jobs-in-gravitino.md | 74 +-
docs/manage-policies-in-gravitino.md | 35 +-
...nage-semantic-model-metadata-using-gravitino.md | 596 +++++++
docs/manage-statistics-in-gravitino.md | 18 +
docs/manage-tags-in-gravitino.md | 50 +-
docs/metrics.md | 75 +-
docs/migration-guide.md | 17 +
docs/open-api/filesets.yaml | 61 +-
docs/open-api/idp/idp.yaml | 148 +-
docs/open-api/idp/openapi.yaml | 6 +
docs/open-api/indexes.yaml | 2 +
docs/open-api/jobs.yaml | 30 +-
docs/open-api/models.yaml | 9 +
docs/open-api/openapi.yaml | 21 +
docs/open-api/policies.yaml | 544 +++++-
docs/open-api/roles.yaml | 5 +
docs/open-api/semantic-models.yaml | 1598 +++++++++++++++++
docs/open-api/statistics.yaml | 4 +-
docs/open-api/tags.yaml | 53 +-
docs/policies.md | 141 +-
docs/security/access-control.md | 21 +-
docs/security/credential-vending.md | 34 +-
docs/security/local-users-and-groups.md | 46 +-
docs/semantic-models.md | 102 ++
docs/spark-connector/spark-catalog-hive.md | 18 +
docs/spark-connector/spark-catalog-iceberg.md | 6 +
.../optimizer-cli-reference.md | 108 +-
.../optimizer-configuration.md | 64 +-
docs/table-maintenance-service/optimizer.md | 13 +-
docs/tags.md | 27 +-
docs/trino-connector/authentication.md | 17 +-
docs/trino-connector/catalog-mysql.md | 14 +
docs/trino-connector/installation.md | 5 +
docs/trino-connector/sql-support.md | 32 +
.../connector/iceberg/GravitinoIcebergCatalog.java | 93 +-
.../iceberg/IcebergPropertiesConstants.java | 9 +
.../connector/jdbc/JdbcPropertiesConverter.java | 21 +
.../iceberg/TestGravitinoIcebergCatalog.java | 159 ++
.../iceberg/TestGravitinoIcebergCatalogOpen.java | 133 ++
.../connector/integration/test/FlinkCommonIT.java | 35 +-
.../test/jdbc/FlinkJdbcMysqlCatalogIT.java | 32 +
.../AbstractJdbcPropertiesConverterTestSuite.java | 21 +
.../flink/connector/utils/TestTypeUtils.java | 7 +
.../v2.1/flink-runtime/build.gradle.kts | 5 +-
.../flink/runtime/TestRuntimeJarDependencies.java | 37 +-
flink-connector/v2.1/flink/build.gradle.kts | 7 +-
.../{v2.1 => v2.2}/flink-runtime/build.gradle.kts | 9 +-
.../flink/runtime/TestRuntimeJarDependencies.java | 37 +-
.../{v2.1 => v2.2}/flink/build.gradle.kts | 25 +-
.../GravitinoIcebergCatalogFactoryFlink22.java} | 45 +-
.../iceberg/GravitinoIcebergCatalogFlink22.java | 105 ++
.../jdbc/GravitinoJdbcCatalogFlink22.java | 64 +
.../GravitinoMysqlJdbcCatalogFactoryFlink22.java | 41 +
...GravitinoPostgresJdbcCatalogFactoryFlink22.java | 42 +
.../GravitinoPaimonCatalogFactoryFlink22.java} | 39 +-
.../paimon/GravitinoPaimonCatalogFlink22.java | 52 +
.../connector/utils/CatalogCompatFlink22.java | 64 +
.../org.apache.flink.table.factories.Factory | 29 +
.../connector/catalog/TestBaseCatalogFlink22.java | 15 +-
.../hive/TestFlinkGenericTableUtilFlink22.java | 15 +-
.../hive/TestGravitinoHiveCatalogFlink22.java | 15 +-
.../TestGravitinoIcebergCatalogFlink22.java | 84 +
.../test/catalog/GravitinoCatalogManagerIT22.java | 6 +-
.../test/iceberg/FlinkIcebergHiveCatalogIT22.java | 6 +-
.../test/iceberg/FlinkIcebergJdbcCatalogIT22.java | 21 +-
.../test/iceberg/FlinkIcebergRestCatalogIT22.java | 6 +-
.../test/jdbc/FlinkJdbcMysqlCatalogIT22.java | 53 +
.../test/paimon/FlinkPaimonHiveBackendIT22.java | 6 +-
.../test/paimon/FlinkPaimonJdbcBackendIT22.java | 6 +-
.../FlinkPaimonLocalFileSystemBackendIT22.java | 6 +-
.../jdbc/TestGravitinoJdbcCatalogFlink22.java | 15 +-
.../paimon/TestGravitinoPaimonCatalogFlink22.java | 15 +-
.../connector/utils/TestCatalogCompatFlink22.java | 80 +
gradle/libs.versions.toml | 28 +-
.../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 +-
.../iceberg/service/IcebergExceptionMapper.java | 28 +-
.../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 +-
.../service/TestIcebergExceptionMapper.java | 24 +
.../AbstractIcebergCleanupJobStoreBackendTest.java | 3 +-
.../service/cleanup/TestIcebergCleanupManager.java | 2 +-
.../TestIcebergTableEventDispatcher.java | 2 +-
.../iceberg/service/rest/IcebergRestTestUtil.java | 2 +-
.../iceberg/service/rest/TestIcebergConfig.java | 19 +
.../rest/TestIcebergNamespaceOperations.java | 5 +-
.../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 +
.../docker-script/init/mysql/init.sql | 21 +
.../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 | 17 +-
.../resources/mysql-conf/disposable/gravitino.cnf | 23 +-
.../gravitino/lance/common/config/LanceConfig.java | 10 +
.../lance/common/ops/gravitino/CommonUtil.java | 21 +-
.../gravitino/GravitinoLanceTableOperations.java | 5 +-
.../lance/common/ops/gravitino/LanceBlobTypes.java | 260 +++
.../ops/gravitino/LanceDataTypeConverter.java | 56 +-
.../lance/common/utils/LancePropertiesUtils.java | 37 +
.../common/ops/gravitino/TestLanceBlobTypes.java | 292 +++
.../ops/gravitino/TestLanceDataTypeConverter.java | 298 ++++
.../common/utils/TestLancePropertiesUtils.java | 36 +
.../apache/gravitino/lance/LanceRESTService.java | 73 +-
.../gravitino/lance/TestLanceRESTService.java | 60 +-
.../gravitino/TestGravitinoLanceModeParsing.java | 20 +-
.../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 | 2 +-
.../jobs/BuiltInJobTemplateProvider.java | 2 +
.../jobs/iceberg/IcebergRemoveOrphanFilesJob.java | 44 +-
.../iceberg/IcebergUpdateManifestStatsJob.java | 306 ++++
.../jobs/TestBuiltInJobTemplateProvider.java | 8 +-
.../TestIcebergRemoveOrphanFilesJobWithSpark.java | 43 +
.../iceberg/TestIcebergUpdateManifestStatsJob.java | 198 +++
.../TestIcebergUpdateManifestStatsJobMain.java | 91 +
...TestIcebergUpdateManifestStatsJobWithSpark.java | 383 ++++
.../common/IcebergManifestStatistics.java | 129 ++
.../common/util/GravitinoClientUtils.java | 8 +
.../common/util/OrphanFileLocationUtils.java | 79 +
.../common/TestIcebergManifestStatistics.java | 86 +
.../common/util/TestGravitinoAuthSettings.java | 17 +
maintenance/optimizer/build.gradle.kts | 3 +
.../handler/BaseExpressionStrategyHandler.java | 5 +-
.../handler/compaction/CompactionJobContext.java | 8 +
.../compaction/CompactionStrategyHandler.java | 22 +
.../OrphanFileRemovalJobContext.java} | 62 +-
.../OrphanFileRemovalStrategyHandler.java} | 31 +-
.../job/GravitinoCompactionJobAdapter.java | 13 +-
.../recommender/job/GravitinoJobSubmitter.java | 5 +-
.../job/GravitinoOrphanFileRemovalJobAdapter.java | 104 ++
.../optimizer/integration/test/RecommenderIT.java | 169 ++
.../compaction/TestCompactionStrategyHandler.java | 2 +
.../TestGravitinoPolicyCompactionStrategy.java | 55 +
.../job/TestBuiltinIcebergRewriteDataFiles.java | 2 +
.../job/TestGravitinoCompactionJobAdapter.java | 19 +-
.../recommender/job/TestGravitinoJobSubmitter.java | 9 +
.../TestGravitinoOrphanFileRemovalJobAdapter.java | 159 ++
.../statistics/TestGravitinoStatisticsUpdater.java | 26 +
.../mcp_server/client/gravitino_operation.py | 6 +
.../client/plain/plain_rest_client_operation.py | 10 +
.../plain_rest_client_semantic_model_operation.py | 106 ++
mcp-server/mcp_server/client/plain/utils.py | 8 +-
.../mcp_server/client/semantic_model_operation.py | 69 +
mcp-server/mcp_server/tools/__init__.py | 3 +
mcp-server/mcp_server/tools/semantic_model.py | 160 ++
mcp-server/tests/unit/client/test_url_encoding.py | 58 +
mcp-server/tests/unit/tools/mock_operation.py | 44 +
mcp-server/tests/unit/tools/test_semantic_model.py | 424 +++++
.../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 | 137 ++
.../apache/gravitino/job/k8s/K8sClientUtils.java | 288 +++
.../gravitino/job/k8s/K8sJobExecutionId.java | 132 ++
.../apache/gravitino/job/k8s/K8sJobExecutor.java | 620 +++++++
.../gravitino/job/k8s/K8sJobExecutorConfigs.java | 561 ++++++
.../gravitino/job/k8s/K8sJobResourceUtils.java | 147 ++
.../gravitino/job/k8s/K8sKubeconfigUtils.java | 115 ++
.../gravitino/job/k8s/NamespacedResourceCache.java | 183 ++
.../org/apache/gravitino/job/k8s/PodLogUtils.java | 121 ++
.../job/k8s/spark/SparkApplicationStatusUtils.java | 553 ++++++
.../job/k8s/spark/SparkApplicationUtils.java | 307 ++++
.../job/k8s/TestK8sJobExecutorShadedJar.java | 222 +++
.../gravitino/job/k8s/TestK8sClientUtils.java | 451 +++++
.../gravitino/job/k8s/TestK8sJobExecutionId.java | 76 +
.../gravitino/job/k8s/TestK8sJobExecutor.java | 1205 +++++++++++++
.../job/k8s/TestK8sJobExecutorConfigs.java | 205 +++
.../gravitino/job/k8s/TestK8sJobResourceUtils.java | 135 ++
.../job/k8s/TestNamespacedResourceCache.java | 248 +++
.../apache/gravitino/job/k8s/TestPodLogUtils.java | 101 ++
.../k8s/spark/TestSparkApplicationStatusUtils.java | 850 +++++++++
.../job/k8s/spark/TestSparkApplicationUtils.java | 620 +++++++
.../catalog-model => plugins/tms}/build.gradle.kts | 76 +-
.../maintenance/TableMaintenanceConfig.java | 263 +++
.../maintenance/injob/InJobGateOutcome.java | 99 ++
.../maintenance/injob/InJobRecommender.java | 27 +-
.../maintenance/injob/RecommendDecision.java | 19 +-
.../gravitino/maintenance/injob/SnapshotHead.java | 17 +-
.../injob/TableMaintenanceInJobPipeline.java | 105 ++
.../injob/TableMaintenanceInJobSampler.java | 105 ++
.../maintenance/occupancy/OccupancyGate.java | 183 ++
.../scheduler/TableMaintenanceSchedulerPools.java | 152 ++
.../mapper/TableMaintenanceActionMapper.java | 107 ++
.../TableMaintenanceActionSQLProviderFactory.java | 191 ++
.../storage/mapper/TableSnapshotMetricsMapper.java | 41 +
.../TableSnapshotMetricsSQLProviderFactory.java | 80 +
.../mapper/provider/TmsMapperPackageProvider.java | 39 +-
.../TableMaintenanceActionBaseSQLProvider.java | 234 +++
.../base/TableSnapshotMetricsBaseSQLProvider.java | 56 +
.../h2/TableMaintenanceActionH2Provider.java | 38 +-
.../h2/TableSnapshotMetricsH2Provider.java | 8 +-
.../TableMaintenanceActionPostgreSQLProvider.java | 20 +-
.../TableSnapshotMetricsPostgreSQLProvider.java | 8 +-
.../storage/po/TableMaintenanceActionPO.java | 59 +-
.../storage/po/TableSnapshotMetricsPO.java | 57 +-
.../storage/service/OccupancyClaim.java | 82 +
.../service/TableMaintenanceActionMetaService.java | 370 ++++
.../service/TableSnapshotMetricsMetaService.java | 115 ++
.../rest/feature/TableMaintenanceRESTFeature.java | 130 ++
...elational.mapper.provider.MapperPackageProvider | 10 +-
.../injob/TestTableMaintenanceInJobPipeline.java | 99 ++
.../injob/TestTableMaintenanceInJobSampler.java | 107 ++
.../maintenance/occupancy/TestOccupancyGate.java | 223 +++
.../TestTableMaintenanceSchedulerPools.java | 55 +
.../storage/TableMaintenanceActionTestUtils.java | 58 +
.../mapper/TestTmsMapperPackageProvider.java | 51 +
.../h2/TestTableMaintenanceActionH2Provider.java | 74 +
.../TestTableMaintenanceActionMetaService.java | 103 ++
.../TestTableSnapshotMetricsMetaService.java | 46 +
.../feature/TestTableMaintenanceRESTFeature.java | 22 +-
scripts/h2/schema-2.0.0-h2.sql | 81 +
scripts/h2/upgrade-1.3.0-to-2.0.0-h2.sql | 109 +-
scripts/mysql/schema-2.0.0-mysql.sql | 81 +
scripts/mysql/upgrade-1.3.0-to-2.0.0-mysql.sql | 589 ++++++-
scripts/postgresql/schema-2.0.0-postgresql.sql | 131 ++
.../upgrade-1.3.0-to-2.0.0-postgresql.sql | 135 +-
.../server/authentication/JwksTokenValidator.java | 2 +
.../server/authorization/MetadataIdConverter.java | 121 +-
.../annotations/AuthorizationRequest.java | 2 +
.../AuthorizationExpressionConstants.java | 47 +
.../AuthorizationExpressionConverter.java | 24 +-
.../jcasbin/JcasbinAuthorizationCacheKeys.java | 1 +
.../jcasbin/JcasbinAuthorizationLookups.java | 132 +-
.../authorization/jcasbin/JcasbinAuthorizer.java | 687 +++++---
.../jcasbin/JcasbinChangeListener.java | 39 +-
.../jcasbin/JcasbinLoadedRolesCache.java | 7 +-
.../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 +-
.../org/apache/gravitino/server/web/Utils.java | 161 ++
...BaseMetadataAuthorizationMethodInterceptor.java | 23 +-
.../src/main/resources/jcasbin_model.conf | 32 +-
.../authentication/TestJwksTokenValidator.java | 55 +
.../server/authorization/TestJcasbinModel.java | 236 ++-
.../authorization/TestMetadataIdConverter.java | 117 ++
.../jcasbin/TestJcasbinAuthorizationCacheKeys.java | 27 +
.../jcasbin/TestJcasbinAuthorizationLookups.java | 63 +-
.../jcasbin/TestJcasbinAuthorizer.java | 1864 ++++++++++++++++++--
.../jcasbin/TestJcasbinChangePoller.java | 51 +-
.../TestJcasbinMetadataIdCacheNormalization.java | 611 +++++++
.../jcasbin/TestJcasbinModelCacheInvalidation.java | 161 ++
.../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 +-
.../org/apache/gravitino/server/web/TestUtils.java | 155 ++
...BaseMetadataAuthorizationMethodInterceptor.java | 31 +-
.../src/test/resources/jcasbin_policy.txt | 6 -
.../apache/gravitino/server/GravitinoServer.java | 26 +-
.../web/filter/GravitinoInterceptionService.java | 28 +
.../authorization/AuthorizeExecutorFactory.java | 2 +
.../LoadTableAuthorizationExecutor.java | 6 +-
.../LoadViewAuthorizationExecutor.java | 78 +
.../gravitino/server/web/rest/BulkOperations.java | 16 +
.../server/web/rest/CatalogOperations.java | 4 +-
.../server/web/rest/ExceptionHandlers.java | 4 +-
.../web/rest/IcebergRESTServiceOperations.java | 149 +-
.../gravitino/server/web/rest/JobOperations.java | 20 +-
.../web/rest/MetadataObjectPolicyOperations.java | 11 +-
.../web/rest/MetadataObjectTagOperations.java | 37 +-
.../server/web/rest/MetalakeOperations.java | 14 +-
.../server/web/rest/SemanticModelOperations.java | 272 ++-
.../web/rest/SemanticModelSourceValidator.java | 228 +++
.../gravitino/server/web/rest/ViewOperations.java | 8 +-
.../gravitino/server/TestGravitinoServer.java | 18 +
.../filter/TestGravitinoInterceptionService.java | 393 ++++-
.../TestLoadTableAuthorizationExecutor.java | 33 +-
.../TestLoadViewAuthorizationExecutor.java | 169 ++
.../server/web/rest/TestBulkOperations.java | 22 +
.../server/web/rest/TestCatalogOperations.java | 49 +
.../server/web/rest/TestExceptionHandlers.java | 17 +
.../server/web/rest/TestFilesetOperations.java | 109 +-
.../server/web/rest/TestJobOperations.java | 87 +
.../TestMetadataObjectCredentialOperations.java | 24 +
.../rest/TestMetadataObjectPolicyOperations.java | 19 +-
.../web/rest/TestMetadataObjectTagOperations.java | 94 +-
.../server/web/rest/TestMetalakeOperations.java | 24 +
.../server/web/rest/TestModelOperations.java | 22 +
.../server/web/rest/TestPolicyOperations.java | 22 +
.../server/web/rest/TestSchemaOperations.java | 21 +
.../web/rest/TestSemanticModelOperations.java | 888 +++++++++-
.../web/rest/TestSemanticModelSourceValidator.java | 362 ++++
.../server/web/rest/TestStatisticOperations.java | 47 +
.../server/web/rest/TestTableOperations.java | 48 +
...stMetadataObjectTagAuthorizationExpression.java | 69 +
.../TestSemanticModelAuthorizationExpression.java | 191 ++
settings.gradle.kts | 10 +-
.../spark/connector/catalog/BaseCatalog.java | 24 +-
.../connector/iceberg/IcebergRestOAuthConfig.java | 55 +-
.../connector/jdbc/JdbcPropertiesConverter.java | 6 +-
.../catalog/TestBaseCatalogFunctions.java | 183 ++
.../iceberg/TestIcebergRestOAuthConfig.java | 131 ++
.../integration/test/hive/SparkHiveCatalogIT.java | 98 +
.../jdbc/TestJdbcPropertiesConverter.java | 19 +
.../connector/jdbc/TestSparkJdbcTypeConverter.java | 7 +
.../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/00005_create_catalog.txt | 2 +-
.../testsets/jdbc-mysql/00006_datatype.txt | 14 +-
.../testsets/jdbc-mysql/00008_alter_catalog.txt | 8 +-
.../jdbc-mysql/00011_column_properties.txt | 14 +-
.../jdbc-mysql/00016_datetime_precision.sql | 41 +
.../jdbc-mysql/00016_datetime_precision.txt | 54 +
.../testsets/lakehouse-iceberg/00014_view.sql | 22 +
.../testsets/lakehouse-iceberg/00014_view.txt | 40 +
.../trino-ci-testset/testsets/trino-452-446.patch | 37 +-
.../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 | 41 +-
.../trino/connector/GravitinoErrorCode.java | 98 +-
.../trino/connector/GravitinoMetadata.java | 89 +-
.../connector/catalog/CatalogConnectorAdapter.java | 7 +
.../connector/catalog/CatalogConnectorContext.java | 9 +
.../connector/catalog/CatalogConnectorManager.java | 24 +-
.../catalog/CatalogConnectorMetadata.java | 456 ++++-
.../catalog/CatalogConnectorMetadataAdapter.java | 149 ++
.../jdbc/mysql/MySQLDataTypeTransformer.java | 63 +-
.../trino/connector/metadata/GravitinoView.java | 204 +++
.../AlterCatalogStoredProcedure.java | 7 +-
.../CreateCatalogStoredProcedure.java | 16 +-
.../DropCatalogStoredProcedure.java | 10 +-
.../connector/util/GeneralDataTypeTransformer.java | 53 +-
.../trino/connector/util/json/JsonCodec.java | 29 +
.../trino/connector/TestGravitinoConfig.java | 5 +-
.../trino/connector/TestGravitinoConnector.java | 5 +-
.../TestGravitinoConnectorForwardUser.java | 24 +
.../trino/connector/TestGravitinoErrorCode.java | 167 ++
.../TestGravitinoMetadataGetSupportedType.java | 66 +
.../TestGravitinoMetadataGetTableHandle.java | 105 ++
.../trino/connector/TestGravitinoMetadataView.java | 196 ++
.../catalog/TestCatalogConnectorManager.java | 72 +-
.../TestCatalogConnectorMetadataAdapterView.java | 257 +++
.../TestCatalogConnectorMetadataErrors.java | 229 +++
.../TestCatalogConnectorMetadataFunction.java | 7 +-
.../catalog/TestCatalogConnectorMetadataView.java | 629 +++++++
.../jdbc/mysql/TestMySQLDataTypeTransformer.java | 131 ++
.../TestPostgreSQLDataTypeTransformer.java | 8 +
.../TestAlterCatalogStoredProcedure.java | 26 +
.../TestCreateCatalogStoredProcedure.java | 85 +
.../TestDropCatalogStoredProcedure.java | 29 +-
.../connector/util/TestDataTypeTransformer.java | 36 +
.../integration/test/web/ui/MetalakePageTest.java | 4 +-
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 | 36 +-
.../web/src/lib/utils/formatVendorJson.js | 39 +-
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 +
1175 files changed, 105154 insertions(+), 7877 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
api/src/main/java/org/apache/gravitino/policy/AccessControlContent.java
create mode 100644
api/src/main/java/org/apache/gravitino/policy/ColumnMaskContent.java
create mode 100644
api/src/main/java/org/apache/gravitino/policy/IcebergOrphanFileRemovalContent.java
create mode 100644
api/src/main/java/org/apache/gravitino/policy/IcebergRewriteManifestsContent.java
create mode 100644
api/src/main/java/org/apache/gravitino/policy/IcebergSnapshotExpirationContent.java
create mode 100644
api/src/main/java/org/apache/gravitino/policy/PolicyList.java
create mode 100644
api/src/main/java/org/apache/gravitino/policy/ReadRestrictionContent.java
create mode 100644
api/src/main/java/org/apache/gravitino/policy/RowFilterContent.java
create mode 100644
api/src/main/java/org/apache/gravitino/semantic/OssieDocument.java
copy
core/src/main/java/org/apache/gravitino/catalog/SemanticModelDispatcher.java =>
api/src/main/java/org/apache/gravitino/semantic/OssieFormat.java (74%)
copy
core/src/main/java/org/apache/gravitino/catalog/SemanticModelDispatcher.java =>
api/src/main/java/org/apache/gravitino/semantic/OssieVersion.java (71%)
create mode 100644 api/src/main/java/org/apache/gravitino/tag/TagList.java
create mode 100644
api/src/test/java/org/apache/gravitino/model/TestModelCatalog.java
create mode 100644
api/src/test/java/org/apache/gravitino/policy/TestIcebergOrphanFileRemovalContent.java
create mode 100644
api/src/test/java/org/apache/gravitino/policy/TestReadRestrictionContent.java
create mode 100644
api/src/test/java/org/apache/gravitino/semantic/TestOssieDocument.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-contrib/catalog-jdbc-clickhouse/src/test/java/org/apache/gravitino/catalog/clickhouse/operations/TestClickHouseTableOperationsConnectionUsage.java
create mode 100644
catalogs-contrib/catalog-jdbc-oceanbase/src/test/java/org/apache/gravitino/catalog/oceanbase/operation/TestOceanBaseTableOperationsConnectionUsage.java
create mode 100644
catalogs/catalog-jdbc-common/src/main/java/org/apache/gravitino/catalog/jdbc/utils/JdbcConnectionTimeouts.java
create mode 100644
catalogs/catalog-jdbc-common/src/test/java/org/apache/gravitino/catalog/jdbc/TestJdbcCatalogOperationsProbe.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-common/src/test/java/org/apache/gravitino/catalog/jdbc/operation/TestJdbcOperationsConnectionUsage.java
create mode 100644
catalogs/catalog-jdbc-common/src/test/java/org/apache/gravitino/catalog/jdbc/utils/ConnectionCountingDataSource.java
create mode 100644
catalogs/catalog-jdbc-common/src/test/java/org/apache/gravitino/catalog/jdbc/utils/TestDataSourceValidation.java
create mode 100644
catalogs/catalog-jdbc-common/src/test/java/org/apache/gravitino/catalog/jdbc/utils/TestJdbcConnectionTimeouts.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/TestMysqlDataSource.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/TestPostgreSqlDataSource.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
clients/client-java/src/main/java/org/apache/gravitino/client/GenericSemanticModel.java
create mode 100644
clients/client-java/src/main/java/org/apache/gravitino/client/SemanticModelCatalogOperations.java
create mode 100644
clients/client-java/src/test/java/org/apache/gravitino/client/TestGenericSemanticModel.java
create mode 100644
clients/client-java/src/test/java/org/apache/gravitino/client/TestSemanticModelCatalog.java
create mode 100644
clients/client-java/src/test/java/org/apache/gravitino/client/integration/test/SemanticModelIT.java
copy clients/client-python/gravitino/api/tag/{__init__.py => tag_list.py} (56%)
create mode 100644
clients/client-python/gravitino/client/generic_semantic_model.py
create mode 100644
clients/client-python/gravitino/client/semantic_model_catalog_operations.py
create mode 100644
clients/client-python/gravitino/dto/requests/semantic_model_create_request.py
create mode 100644
clients/client-python/gravitino/dto/requests/semantic_model_update_request.py
create mode 100644
clients/client-python/gravitino/dto/requests/semantic_model_updates_request.py
create mode 100644
clients/client-python/gravitino/dto/responses/semantic_model_response.py
copy clients/client-python/gravitino/{api => dto/semantic}/__init__.py (100%)
create mode 100644
clients/client-python/gravitino/dto/semantic/ai_context_dto.py
create mode 100644
clients/client-python/gravitino/dto/semantic/ai_context_object_dto.py
create mode 100644
clients/client-python/gravitino/dto/semantic/custom_extension_dto.py
create mode 100644 clients/client-python/gravitino/dto/semantic/dataset_dto.py
create mode 100644
clients/client-python/gravitino/dto/semantic/dialect_expression_dto.py
create mode 100644
clients/client-python/gravitino/dto/semantic/dimension_dto.py
create mode 100644
clients/client-python/gravitino/dto/semantic/expression_dto.py
create mode 100644 clients/client-python/gravitino/dto/semantic/field_dto.py
copy clients/client-python/gravitino/{api =>
dto/semantic/json_serdes}/__init__.py (100%)
create mode 100644
clients/client-python/gravitino/dto/semantic/json_serdes/ai_context_serdes.py
create mode 100644
clients/client-python/gravitino/dto/semantic/json_serdes/data_type_serdes.py
create mode 100644
clients/client-python/gravitino/dto/semantic/json_serdes/semantic_json_mixin.py
create mode 100644 clients/client-python/gravitino/dto/semantic/metric_dto.py
create mode 100644
clients/client-python/gravitino/dto/semantic/relationship_dto.py
create mode 100644
clients/client-python/gravitino/dto/semantic/semantic_dto_utils.py
create mode 100644
clients/client-python/gravitino/dto/semantic/semantic_model_definition_dto.py
create mode 100644
clients/client-python/gravitino/dto/semantic/semantic_model_dto.py
copy
clients/client-python/gravitino/exceptions/handlers/{view_error_handler.py =>
semantic_model_error_handler.py} (52%)
copy clients/client-python/{MANIFEST.in => requirements-azure.txt} (81%)
copy clients/client-python/{MANIFEST.in => requirements-gcs.txt} (81%)
copy clients/client-python/{MANIFEST.in => requirements-gvfs.txt} (81%)
copy clients/client-python/{MANIFEST.in => requirements-hdfs.txt} (81%)
copy clients/client-python/{MANIFEST.in => requirements-oss.txt} (81%)
copy clients/client-python/{MANIFEST.in => requirements-s3.txt} (81%)
create mode 100644
clients/client-python/tests/integration/test_semantic_model_authorization.py
create mode 100644
clients/client-python/tests/integration/test_semantic_model_ossie.py
create mode 100644
clients/client-python/tests/integration/test_semantic_model_tags_and_owner.py
create mode 100644
clients/client-python/tests/unittests/authorization/test_semantic_model_authorization.py
copy clients/client-python/{gravitino/api =>
tests/unittests/dto/semantic}/__init__.py (100%)
create mode 100644
clients/client-python/tests/unittests/dto/semantic/test_semantic_model_definition_dto.py
create mode 100644
clients/client-python/tests/unittests/dto/semantic/test_semantic_model_dto.py
create mode 100644
clients/client-python/tests/unittests/dto/semantic/test_semantic_wire_compatibility.py
create mode 100644
clients/client-python/tests/unittests/dto/test_semantic_model_rest.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_code_mapping_error_handler.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_close.py
create mode 100644
clients/client-python/tests/unittests/test_http_client_headers.py
create mode 100644
clients/client-python/tests/unittests/test_http_client_raw_body.py
create mode 100644
clients/client-python/tests/unittests/test_package_metadata.py
create mode 100644
clients/client-python/tests/unittests/test_semantic_model_catalog.py
create mode 100644
clients/client-python/tests/unittests/test_semantic_model_ossie.py
create mode 100644
clients/client-python/tests/unittests/test_semantic_model_tags_and_owner.py
create mode 100644
clients/filesystem-hadoop3/src/test/java/org/apache/gravitino/filesystem/hadoop/TestBasicClient.java
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/test/java/org/apache/gravitino/credential/TestRoleSessionNameUtils.java
create mode 100644
common/src/test/java/org/apache/gravitino/dto/policy/TestOrphanFileRemovalPolicyDTO.java
create mode 100644
common/src/test/java/org/apache/gravitino/dto/policy/TestReadRestrictionPolicyDTO.java
create mode 100644
common/src/test/java/org/apache/gravitino/dto/policy/TestRewriteManifestsAndSnapshotExpirationPolicyDTO.java
create mode 100644
core/src/main/java/org/apache/gravitino/catalog/JdbcDriverProperties.java
create mode 100644
core/src/main/java/org/apache/gravitino/connector/SupportsTableNameResolution.java
create mode 100644
core/src/main/java/org/apache/gravitino/connector/job/JobContext.java
create mode 100644
core/src/main/java/org/apache/gravitino/connector/job/JobResourceUtils.java
create mode 100644
core/src/main/java/org/apache/gravitino/hook/SemanticModelHookDispatcher.java
create mode 100644
core/src/main/java/org/apache/gravitino/job/JobRuntimeTemplateMaskUtils.java
create mode 100644
core/src/main/java/org/apache/gravitino/listener/SemanticModelEventDispatcher.java
create mode 100644
core/src/main/java/org/apache/gravitino/listener/api/event/semantic/AlterSemanticModelEvent.java
create mode 100644
core/src/main/java/org/apache/gravitino/listener/api/event/semantic/AlterSemanticModelFailureEvent.java
create mode 100644
core/src/main/java/org/apache/gravitino/listener/api/event/semantic/AlterSemanticModelPreEvent.java
create mode 100644
core/src/main/java/org/apache/gravitino/listener/api/event/semantic/CreateSemanticModelEvent.java
create mode 100644
core/src/main/java/org/apache/gravitino/listener/api/event/semantic/CreateSemanticModelFailureEvent.java
create mode 100644
core/src/main/java/org/apache/gravitino/listener/api/event/semantic/CreateSemanticModelPreEvent.java
create mode 100644
core/src/main/java/org/apache/gravitino/listener/api/event/semantic/DropSemanticModelEvent.java
create mode 100644
core/src/main/java/org/apache/gravitino/listener/api/event/semantic/DropSemanticModelFailureEvent.java
copy core/src/{test/java/org/apache/gravitino/audit/DummyAuditWriter.java =>
main/java/org/apache/gravitino/listener/api/event/semantic/DropSemanticModelPreEvent.java}
(51%)
create mode 100644
core/src/main/java/org/apache/gravitino/listener/api/event/semantic/ExportSemanticModelEvent.java
create mode 100644
core/src/main/java/org/apache/gravitino/listener/api/event/semantic/ExportSemanticModelFailureEvent.java
create mode 100644
core/src/main/java/org/apache/gravitino/listener/api/event/semantic/ExportSemanticModelPreEvent.java
create mode 100644
core/src/main/java/org/apache/gravitino/listener/api/event/semantic/ImportSemanticModelEvent.java
create mode 100644
core/src/main/java/org/apache/gravitino/listener/api/event/semantic/ImportSemanticModelFailureEvent.java
create mode 100644
core/src/main/java/org/apache/gravitino/listener/api/event/semantic/ImportSemanticModelPreEvent.java
create mode 100644
core/src/main/java/org/apache/gravitino/listener/api/event/semantic/ListSemanticModelEvent.java
create mode 100644
core/src/main/java/org/apache/gravitino/listener/api/event/semantic/ListSemanticModelFailureEvent.java
create mode 100644
core/src/main/java/org/apache/gravitino/listener/api/event/semantic/ListSemanticModelPreEvent.java
create mode 100644
core/src/main/java/org/apache/gravitino/listener/api/event/semantic/LoadSemanticModelEvent.java
create mode 100644
core/src/main/java/org/apache/gravitino/listener/api/event/semantic/LoadSemanticModelFailureEvent.java
copy core/src/{test/java/org/apache/gravitino/audit/DummyAuditWriter.java =>
main/java/org/apache/gravitino/listener/api/event/semantic/LoadSemanticModelPreEvent.java}
(51%)
create mode 100644
core/src/main/java/org/apache/gravitino/listener/api/event/semantic/SemanticModelEvent.java
copy api/src/main/java/org/apache/gravitino/policy/SupportsPolicies.java =>
core/src/main/java/org/apache/gravitino/listener/api/event/semantic/SemanticModelFailureEvent.java
(50%)
copy api/src/main/java/org/apache/gravitino/policy/SupportsPolicies.java =>
core/src/main/java/org/apache/gravitino/listener/api/event/semantic/SemanticModelPreEvent.java
(54%)
create mode 100644
core/src/main/java/org/apache/gravitino/listener/api/info/SemanticModelInfo.java
create mode 100644
core/src/main/java/org/apache/gravitino/policy/rego/CanonicalExpression.java
create mode 100644
core/src/main/java/org/apache/gravitino/policy/rego/Column.java
create mode 100644
core/src/main/java/org/apache/gravitino/policy/rego/Comparison.java
create mode 100644
core/src/main/java/org/apache/gravitino/policy/rego/ComparisonOperator.java
create mode 100644
core/src/main/java/org/apache/gravitino/policy/rego/ExpressionValidator.java
create mode 100644
core/src/main/java/org/apache/gravitino/policy/rego/GroupMembership.java
create mode 100644
core/src/main/java/org/apache/gravitino/policy/rego/Literal.java
create mode 100644
core/src/main/java/org/apache/gravitino/policy/rego/LiteralArray.java
copy
core/src/main/java/org/apache/gravitino/{catalog/SemanticModelDispatcher.java
=> policy/rego/LiteralType.java} (73%)
create mode 100644
core/src/main/java/org/apache/gravitino/policy/rego/LogicalExpression.java
copy
core/src/main/java/org/apache/gravitino/{catalog/SemanticModelDispatcher.java
=> policy/rego/LogicalOperator.java} (67%)
create mode 100644 core/src/main/java/org/apache/gravitino/policy/rego/Not.java
create mode 100644
core/src/main/java/org/apache/gravitino/policy/rego/RestrictedRegoExpressionParserFacade.java
create mode 100644
core/src/main/java/org/apache/gravitino/policy/rego/RestrictedRegoLexer.java
copy
catalogs/catalog-jdbc-common/src/test/java/org/apache/gravitino/catalog/jdbc/config/TestJdbcConfig.java
=>
core/src/main/java/org/apache/gravitino/policy/rego/RestrictedRegoLimits.java
(61%)
create mode 100644
core/src/main/java/org/apache/gravitino/policy/rego/RestrictedRegoProgram.java
create mode 100644
core/src/main/java/org/apache/gravitino/policy/rego/RestrictedRegoSourceParser.java
create mode 100644
core/src/main/java/org/apache/gravitino/policy/rego/RestrictedRegoSourceValidator.java
copy core/src/{test/java/org/apache/gravitino/audit/DummyAuditWriter.java =>
main/java/org/apache/gravitino/policy/rego/SessionUser.java} (59%)
create mode 100644
core/src/main/java/org/apache/gravitino/semantic/OssieDocumentConverter.java
create mode 100644
core/src/main/java/org/apache/gravitino/semantic/SemanticModelPropertiesMetadata.java
create mode 100644
core/src/main/java/org/apache/gravitino/storage/relational/EntityChangeLogWriter.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/TestCaffeineEntityCacheEviction.java
create mode 100644
core/src/test/java/org/apache/gravitino/cache/TestEntityCachePublicationRace.java
create mode 100644
core/src/test/java/org/apache/gravitino/cache/TestNoOpsCache.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/catalog/TestSemanticModelDispatcher.java
create mode 100644
core/src/test/java/org/apache/gravitino/connector/TestBaseCatalogCredentialProviders.java
create mode 100644
core/src/test/java/org/apache/gravitino/connector/job/TestJobExecutor.java
create mode 100644
core/src/test/java/org/apache/gravitino/connector/job/TestJobResourceUtils.java
create mode 100644
core/src/test/java/org/apache/gravitino/hook/TestSemanticModelHookDispatcher.java
create mode 100644
core/src/test/java/org/apache/gravitino/job/TestJobRuntimeTemplateMaskUtils.java
create mode 100644
core/src/test/java/org/apache/gravitino/listener/api/event/TestSemanticModelEvent.java
create mode 100644
core/src/test/java/org/apache/gravitino/listener/api/event/TestSemanticModelImportExportEvent.java
create mode 100644
core/src/test/java/org/apache/gravitino/policy/rego/RestrictedRegoTestUtils.java
copy
catalogs/catalog-jdbc-common/src/test/java/org/apache/gravitino/catalog/jdbc/config/TestJdbcConfig.java
=> core/src/test/java/org/apache/gravitino/policy/rego/TestColumn.java (64%)
create mode 100644
core/src/test/java/org/apache/gravitino/policy/rego/TestComparison.java
copy
catalogs/catalog-jdbc-common/src/test/java/org/apache/gravitino/catalog/jdbc/config/TestJdbcConfig.java
=>
core/src/test/java/org/apache/gravitino/policy/rego/TestComparisonOperator.java
(66%)
copy
catalogs/catalog-jdbc-common/src/test/java/org/apache/gravitino/catalog/jdbc/config/TestJdbcConfig.java
=>
core/src/test/java/org/apache/gravitino/policy/rego/TestGroupMembership.java
(60%)
create mode 100644
core/src/test/java/org/apache/gravitino/policy/rego/TestLiteral.java
create mode 100644
core/src/test/java/org/apache/gravitino/policy/rego/TestLiteralArray.java
create mode 100644
core/src/test/java/org/apache/gravitino/policy/rego/TestLogicalExpression.java
copy
catalogs/catalog-jdbc-common/src/test/java/org/apache/gravitino/catalog/jdbc/config/TestJdbcConfig.java
=> core/src/test/java/org/apache/gravitino/policy/rego/TestNot.java (57%)
create mode 100644
core/src/test/java/org/apache/gravitino/policy/rego/TestRestrictedRegoExpressionParserFacade.java
create mode 100644
core/src/test/java/org/apache/gravitino/policy/rego/TestRestrictedRegoGoldenFile.java
create mode 100644
core/src/test/java/org/apache/gravitino/policy/rego/TestRestrictedRegoLexer.java
create mode 100644
core/src/test/java/org/apache/gravitino/policy/rego/TestRestrictedRegoProgram.java
create mode 100644
core/src/test/java/org/apache/gravitino/policy/rego/TestRestrictedRegoSourceParser.java
create mode 100644
core/src/test/java/org/apache/gravitino/policy/rego/TestRestrictedRegoSourceValidator.java
copy
catalogs/catalog-jdbc-common/src/test/java/org/apache/gravitino/catalog/jdbc/config/TestJdbcConfig.java
=> core/src/test/java/org/apache/gravitino/policy/rego/TestSessionUser.java
(68%)
create mode 100644
core/src/test/java/org/apache/gravitino/semantic/TestOssieDocumentConverter.java
create mode 100644
core/src/test/java/org/apache/gravitino/semantic/TestSemanticModelPropertiesMetadata.java
create mode 100644
core/src/test/java/org/apache/gravitino/storage/TestBackendTestSelector.java
create mode 100644
core/src/test/java/org/apache/gravitino/storage/relational/BackendTestSelector.java
create mode 100644
core/src/test/java/org/apache/gravitino/storage/relational/CoreBackend.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/TestCoreLaneMembership.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
create mode 100644
core/src/test/java/org/apache/gravitino/storage/relational/mapper/TestRoleMetaMapper.java
create mode 100644
core/src/test/java/org/apache/gravitino/storage/relational/service/TestJobMetaServiceValidation.java
create mode 100644
core/src/test/java/org/apache/gravitino/storage/relational/service/TestStatisticConcurrentWrites.java
create mode 100644
core/src/test/java/org/apache/gravitino/utils/RaceTestUtils.java
create mode 100644
core/src/test/java/org/apache/gravitino/utils/TestRenameUtils.java
create mode 100644 core/src/test/resources/restricted-rego-v1-cases.golden
create mode 100644 core/src/test/resources/restricted-rego-v1-cases.txt
create mode 100644 design-docs/table-maintenance-service-design.md
create mode 100644 design-docs/tag-based-access-control.md
create mode 100644 design-docs/tag-based-read-restrictions-for-iceberg-rest.md
create mode 100644 dev/performance/jdbc_idle_retention.py
create mode 100644 dev/performance/test_jdbc_idle_retention.py
create mode 100644 docs/jdbc-catalog-connection-validation.md
create mode 100644 docs/manage-semantic-model-metadata-using-gravitino.md
create mode 100644 docs/open-api/semantic-models.yaml
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
copy flink-connector/{v2.1 => v2.2}/flink-runtime/build.gradle.kts (90%)
copy flink-connector/{v2.1 =>
v2.2}/flink-runtime/src/test/java/org/apache/gravitino/flink/runtime/TestRuntimeJarDependencies.java
(69%)
copy flink-connector/{v2.1 => v2.2}/flink/build.gradle.kts (94%)
copy
flink-connector/{flink-common/src/test/java/org/apache/gravitino/flink/connector/iceberg/TestGravitinoIcebergCatalog.java
=>
v2.2/flink/src/main/java/org/apache/gravitino/flink/connector/iceberg/GravitinoIcebergCatalogFactoryFlink22.java}
(50%)
create mode 100644
flink-connector/v2.2/flink/src/main/java/org/apache/gravitino/flink/connector/iceberg/GravitinoIcebergCatalogFlink22.java
create mode 100644
flink-connector/v2.2/flink/src/main/java/org/apache/gravitino/flink/connector/jdbc/GravitinoJdbcCatalogFlink22.java
create mode 100644
flink-connector/v2.2/flink/src/main/java/org/apache/gravitino/flink/connector/jdbc/mysql/GravitinoMysqlJdbcCatalogFactoryFlink22.java
create mode 100644
flink-connector/v2.2/flink/src/main/java/org/apache/gravitino/flink/connector/jdbc/postgresql/GravitinoPostgresJdbcCatalogFactoryFlink22.java
copy
flink-connector/{flink-common/src/test/java/org/apache/gravitino/flink/connector/iceberg/TestGravitinoIcebergCatalog.java
=>
v2.2/flink/src/main/java/org/apache/gravitino/flink/connector/paimon/GravitinoPaimonCatalogFactoryFlink22.java}
(52%)
create mode 100644
flink-connector/v2.2/flink/src/main/java/org/apache/gravitino/flink/connector/paimon/GravitinoPaimonCatalogFlink22.java
create mode 100644
flink-connector/v2.2/flink/src/main/java/org/apache/gravitino/flink/connector/utils/CatalogCompatFlink22.java
create mode 100644
flink-connector/v2.2/flink/src/main/resources/META-INF/services/org.apache.flink.table.factories.Factory
copy
core/src/main/java/org/apache/gravitino/catalog/SemanticModelDispatcher.java =>
flink-connector/v2.2/flink/src/test/java/org/apache/gravitino/flink/connector/catalog/TestBaseCatalogFlink22.java
(69%)
copy
core/src/main/java/org/apache/gravitino/catalog/SemanticModelDispatcher.java =>
flink-connector/v2.2/flink/src/test/java/org/apache/gravitino/flink/connector/hive/TestFlinkGenericTableUtilFlink22.java
(68%)
copy
core/src/main/java/org/apache/gravitino/catalog/SemanticModelDispatcher.java =>
flink-connector/v2.2/flink/src/test/java/org/apache/gravitino/flink/connector/hive/TestGravitinoHiveCatalogFlink22.java
(68%)
create mode 100644
flink-connector/v2.2/flink/src/test/java/org/apache/gravitino/flink/connector/iceberg/TestGravitinoIcebergCatalogFlink22.java
copy
core/src/main/java/org/apache/gravitino/catalog/SemanticModelDispatcher.java =>
flink-connector/v2.2/flink/src/test/java/org/apache/gravitino/flink/connector/integration/test/catalog/GravitinoCatalogManagerIT22.java
(76%)
copy
core/src/main/java/org/apache/gravitino/catalog/SemanticModelDispatcher.java =>
flink-connector/v2.2/flink/src/test/java/org/apache/gravitino/flink/connector/integration/test/iceberg/FlinkIcebergHiveCatalogIT22.java
(76%)
copy
catalogs/catalog-jdbc-common/src/test/java/org/apache/gravitino/catalog/jdbc/config/TestJdbcConfig.java
=>
flink-connector/v2.2/flink/src/test/java/org/apache/gravitino/flink/connector/integration/test/iceberg/FlinkIcebergJdbcCatalogIT22.java
(54%)
copy
core/src/main/java/org/apache/gravitino/catalog/SemanticModelDispatcher.java =>
flink-connector/v2.2/flink/src/test/java/org/apache/gravitino/flink/connector/integration/test/iceberg/FlinkIcebergRestCatalogIT22.java
(76%)
create mode 100644
flink-connector/v2.2/flink/src/test/java/org/apache/gravitino/flink/connector/integration/test/jdbc/FlinkJdbcMysqlCatalogIT22.java
copy
core/src/main/java/org/apache/gravitino/catalog/SemanticModelDispatcher.java =>
flink-connector/v2.2/flink/src/test/java/org/apache/gravitino/flink/connector/integration/test/paimon/FlinkPaimonHiveBackendIT22.java
(76%)
copy
core/src/main/java/org/apache/gravitino/catalog/SemanticModelDispatcher.java =>
flink-connector/v2.2/flink/src/test/java/org/apache/gravitino/flink/connector/integration/test/paimon/FlinkPaimonJdbcBackendIT22.java
(76%)
copy
core/src/main/java/org/apache/gravitino/catalog/SemanticModelDispatcher.java =>
flink-connector/v2.2/flink/src/test/java/org/apache/gravitino/flink/connector/integration/test/paimon/FlinkPaimonLocalFileSystemBackendIT22.java
(76%)
copy
core/src/main/java/org/apache/gravitino/catalog/SemanticModelDispatcher.java =>
flink-connector/v2.2/flink/src/test/java/org/apache/gravitino/flink/connector/jdbc/TestGravitinoJdbcCatalogFlink22.java
(68%)
copy
core/src/main/java/org/apache/gravitino/catalog/SemanticModelDispatcher.java =>
flink-connector/v2.2/flink/src/test/java/org/apache/gravitino/flink/connector/paimon/TestGravitinoPaimonCatalogFlink22.java
(68%)
create mode 100644
flink-connector/v2.2/flink/src/test/java/org/apache/gravitino/flink/connector/utils/TestCatalogCompatFlink22.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/MANIFEST.in =>
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
lance/lance-common/src/main/java/org/apache/gravitino/lance/common/ops/gravitino/LanceBlobTypes.java
create mode 100644
lance/lance-common/src/test/java/org/apache/gravitino/lance/common/ops/gravitino/TestLanceBlobTypes.java
create mode 100644
maintenance/jobs/src/main/java/org/apache/gravitino/maintenance/jobs/iceberg/IcebergUpdateManifestStatsJob.java
create mode 100644
maintenance/jobs/src/test/java/org/apache/gravitino/maintenance/jobs/iceberg/TestIcebergUpdateManifestStatsJob.java
create mode 100644
maintenance/jobs/src/test/java/org/apache/gravitino/maintenance/jobs/iceberg/TestIcebergUpdateManifestStatsJobMain.java
create mode 100644
maintenance/jobs/src/test/java/org/apache/gravitino/maintenance/jobs/iceberg/TestIcebergUpdateManifestStatsJobWithSpark.java
create mode 100644
maintenance/optimizer-api/src/main/java/org/apache/gravitino/maintenance/optimizer/common/IcebergManifestStatistics.java
create mode 100644
maintenance/optimizer-api/src/main/java/org/apache/gravitino/maintenance/optimizer/common/util/OrphanFileLocationUtils.java
create mode 100644
maintenance/optimizer-api/src/test/java/org/apache/gravitino/maintenance/optimizer/common/TestIcebergManifestStatistics.java
copy
maintenance/optimizer/src/main/java/org/apache/gravitino/maintenance/optimizer/recommender/handler/{compaction/CompactionJobContext.java
=> orphan/OrphanFileRemovalJobContext.java} (53%)
copy
maintenance/optimizer/src/main/java/org/apache/gravitino/maintenance/optimizer/recommender/handler/{compaction/CompactionStrategyHandler.java
=> orphan/OrphanFileRemovalStrategyHandler.java} (70%)
create mode 100644
maintenance/optimizer/src/main/java/org/apache/gravitino/maintenance/optimizer/recommender/job/GravitinoOrphanFileRemovalJobAdapter.java
create mode 100644
maintenance/optimizer/src/test/java/org/apache/gravitino/maintenance/optimizer/recommender/job/TestGravitinoOrphanFileRemovalJobAdapter.java
create mode 100644
mcp-server/mcp_server/client/plain/plain_rest_client_semantic_model_operation.py
create mode 100644 mcp-server/mcp_server/client/semantic_model_operation.py
create mode 100644 mcp-server/mcp_server/tools/semantic_model.py
create mode 100644 mcp-server/tests/unit/tools/test_semantic_model.py
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/build.gradle.kts
create mode 100644
plugins/k8s-job-executor/src/main/java/org/apache/gravitino/job/k8s/K8sClientUtils.java
create mode 100644
plugins/k8s-job-executor/src/main/java/org/apache/gravitino/job/k8s/K8sJobExecutionId.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/K8sJobExecutorConfigs.java
create mode 100644
plugins/k8s-job-executor/src/main/java/org/apache/gravitino/job/k8s/K8sJobResourceUtils.java
create mode 100644
plugins/k8s-job-executor/src/main/java/org/apache/gravitino/job/k8s/K8sKubeconfigUtils.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/main/java/org/apache/gravitino/job/k8s/spark/SparkApplicationStatusUtils.java
create mode 100644
plugins/k8s-job-executor/src/main/java/org/apache/gravitino/job/k8s/spark/SparkApplicationUtils.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/TestK8sClientUtils.java
create mode 100644
plugins/k8s-job-executor/src/test/java/org/apache/gravitino/job/k8s/TestK8sJobExecutionId.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/TestK8sJobExecutorConfigs.java
create mode 100644
plugins/k8s-job-executor/src/test/java/org/apache/gravitino/job/k8s/TestK8sJobResourceUtils.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
create mode 100644
plugins/k8s-job-executor/src/test/java/org/apache/gravitino/job/k8s/spark/TestSparkApplicationStatusUtils.java
create mode 100644
plugins/k8s-job-executor/src/test/java/org/apache/gravitino/job/k8s/spark/TestSparkApplicationUtils.java
copy {catalogs/catalog-model => plugins/tms}/build.gradle.kts (55%)
create mode 100644
plugins/tms/src/main/java/org/apache/gravitino/maintenance/TableMaintenanceConfig.java
create mode 100644
plugins/tms/src/main/java/org/apache/gravitino/maintenance/injob/InJobGateOutcome.java
copy api/src/main/java/org/apache/gravitino/policy/SupportsPolicies.java =>
plugins/tms/src/main/java/org/apache/gravitino/maintenance/injob/InJobRecommender.java
(55%)
copy
core/src/main/java/org/apache/gravitino/catalog/SemanticModelDispatcher.java =>
plugins/tms/src/main/java/org/apache/gravitino/maintenance/injob/RecommendDecision.java
(64%)
copy
core/src/main/java/org/apache/gravitino/catalog/SemanticModelDispatcher.java =>
plugins/tms/src/main/java/org/apache/gravitino/maintenance/injob/SnapshotHead.java
(68%)
create mode 100644
plugins/tms/src/main/java/org/apache/gravitino/maintenance/injob/TableMaintenanceInJobPipeline.java
create mode 100644
plugins/tms/src/main/java/org/apache/gravitino/maintenance/injob/TableMaintenanceInJobSampler.java
create mode 100644
plugins/tms/src/main/java/org/apache/gravitino/maintenance/occupancy/OccupancyGate.java
create mode 100644
plugins/tms/src/main/java/org/apache/gravitino/maintenance/scheduler/TableMaintenanceSchedulerPools.java
create mode 100644
plugins/tms/src/main/java/org/apache/gravitino/maintenance/storage/mapper/TableMaintenanceActionMapper.java
create mode 100644
plugins/tms/src/main/java/org/apache/gravitino/maintenance/storage/mapper/TableMaintenanceActionSQLProviderFactory.java
create mode 100644
plugins/tms/src/main/java/org/apache/gravitino/maintenance/storage/mapper/TableSnapshotMetricsMapper.java
create mode 100644
plugins/tms/src/main/java/org/apache/gravitino/maintenance/storage/mapper/TableSnapshotMetricsSQLProviderFactory.java
copy core/src/test/java/org/apache/gravitino/audit/DummyAuditWriter.java =>
plugins/tms/src/main/java/org/apache/gravitino/maintenance/storage/mapper/provider/TmsMapperPackageProvider.java
(55%)
create mode 100644
plugins/tms/src/main/java/org/apache/gravitino/maintenance/storage/mapper/provider/base/TableMaintenanceActionBaseSQLProvider.java
create mode 100644
plugins/tms/src/main/java/org/apache/gravitino/maintenance/storage/mapper/provider/base/TableSnapshotMetricsBaseSQLProvider.java
copy core/src/test/java/org/apache/gravitino/audit/DummyAuditWriter.java =>
plugins/tms/src/main/java/org/apache/gravitino/maintenance/storage/mapper/provider/h2/TableMaintenanceActionH2Provider.java
(52%)
copy
core/src/main/java/org/apache/gravitino/catalog/SemanticModelDispatcher.java =>
plugins/tms/src/main/java/org/apache/gravitino/maintenance/storage/mapper/provider/h2/TableSnapshotMetricsH2Provider.java
(71%)
copy
catalogs/catalog-jdbc-common/src/test/java/org/apache/gravitino/catalog/jdbc/config/TestJdbcConfig.java
=>
plugins/tms/src/main/java/org/apache/gravitino/maintenance/storage/mapper/provider/postgresql/TableMaintenanceActionPostgreSQLProvider.java
(60%)
copy
core/src/main/java/org/apache/gravitino/catalog/SemanticModelDispatcher.java =>
plugins/tms/src/main/java/org/apache/gravitino/maintenance/storage/mapper/provider/postgresql/TableSnapshotMetricsPostgreSQLProvider.java
(69%)
copy core/src/test/java/org/apache/gravitino/audit/DummyAuditWriter.java =>
plugins/tms/src/main/java/org/apache/gravitino/maintenance/storage/po/TableMaintenanceActionPO.java
(51%)
copy core/src/test/java/org/apache/gravitino/audit/DummyAuditWriter.java =>
plugins/tms/src/main/java/org/apache/gravitino/maintenance/storage/po/TableSnapshotMetricsPO.java
(53%)
create mode 100644
plugins/tms/src/main/java/org/apache/gravitino/maintenance/storage/service/OccupancyClaim.java
create mode 100644
plugins/tms/src/main/java/org/apache/gravitino/maintenance/storage/service/TableMaintenanceActionMetaService.java
create mode 100644
plugins/tms/src/main/java/org/apache/gravitino/maintenance/storage/service/TableSnapshotMetricsMetaService.java
create mode 100644
plugins/tms/src/main/java/org/apache/gravitino/maintenance/web/rest/feature/TableMaintenanceRESTFeature.java
copy clients/client-python/MANIFEST.in =>
plugins/tms/src/main/resources/META-INF/services/org.apache.gravitino.storage.relational.mapper.provider.MapperPackageProvider
(81%)
create mode 100644
plugins/tms/src/test/java/org/apache/gravitino/maintenance/injob/TestTableMaintenanceInJobPipeline.java
create mode 100644
plugins/tms/src/test/java/org/apache/gravitino/maintenance/injob/TestTableMaintenanceInJobSampler.java
create mode 100644
plugins/tms/src/test/java/org/apache/gravitino/maintenance/occupancy/TestOccupancyGate.java
create mode 100644
plugins/tms/src/test/java/org/apache/gravitino/maintenance/scheduler/TestTableMaintenanceSchedulerPools.java
create mode 100644
plugins/tms/src/test/java/org/apache/gravitino/maintenance/storage/TableMaintenanceActionTestUtils.java
create mode 100644
plugins/tms/src/test/java/org/apache/gravitino/maintenance/storage/mapper/TestTmsMapperPackageProvider.java
create mode 100644
plugins/tms/src/test/java/org/apache/gravitino/maintenance/storage/mapper/provider/h2/TestTableMaintenanceActionH2Provider.java
create mode 100644
plugins/tms/src/test/java/org/apache/gravitino/maintenance/storage/service/TestTableMaintenanceActionMetaService.java
create mode 100644
plugins/tms/src/test/java/org/apache/gravitino/maintenance/storage/service/TestTableSnapshotMetricsMetaService.java
copy
catalogs/catalog-jdbc-common/src/test/java/org/apache/gravitino/catalog/jdbc/config/TestJdbcConfig.java
=>
plugins/tms/src/test/java/org/apache/gravitino/maintenance/web/rest/feature/TestTableMaintenanceRESTFeature.java
(52%)
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/authorization/jcasbin/TestJcasbinMetadataIdCacheNormalization.java
create mode 100644
server-common/src/test/java/org/apache/gravitino/server/authorization/jcasbin/TestJcasbinModelCacheInvalidation.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/main/java/org/apache/gravitino/server/web/rest/SemanticModelSourceValidator.java
create mode 100644
server/src/test/java/org/apache/gravitino/server/web/filter/authorization/TestLoadViewAuthorizationExecutor.java
create mode 100644
server/src/test/java/org/apache/gravitino/server/web/rest/TestSemanticModelSourceValidator.java
create mode 100644
server/src/test/java/org/apache/gravitino/server/web/rest/authorization/TestMetadataObjectTagAuthorizationExpression.java
create mode 100644
server/src/test/java/org/apache/gravitino/server/web/rest/authorization/TestSemanticModelAuthorizationExpression.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/jdbc-mysql/00016_datetime_precision.sql
create mode 100644
trino-connector/integration-test/src/test/resources/trino-ci-testset/testsets/jdbc-mysql/00016_datetime_precision.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/TestGravitinoErrorCode.java
create mode 100644
trino-connector/trino-connector/src/test/java/org/apache/gravitino/trino/connector/TestGravitinoMetadataGetSupportedType.java
create mode 100644
trino-connector/trino-connector/src/test/java/org/apache/gravitino/trino/connector/TestGravitinoMetadataGetTableHandle.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
trino-connector/trino-connector/src/test/java/org/apache/gravitino/trino/connector/catalog/TestCatalogConnectorMetadataErrors.java
create mode 100644
trino-connector/trino-connector/src/test/java/org/apache/gravitino/trino/connector/catalog/TestCatalogConnectorMetadataView.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
copy
catalogs/catalog-jdbc-common/src/test/java/org/apache/gravitino/catalog/jdbc/config/TestJdbcConfig.java
=> web-v2/web/src/lib/utils/catalogEntity.js (61%)
copy
catalogs/catalog-jdbc-common/src/test/java/org/apache/gravitino/catalog/jdbc/config/TestJdbcConfig.java
=> web-v2/web/src/lib/utils/formatVendorJson.js (50%)
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