Skip to content

[#11728] feat(iceberg-rest): Add register view support for IRC#11729

Open
lasdf1234 wants to merge 1 commit into
apache:mainfrom
lasdf1234:feat-irc-register-view
Open

[#11728] feat(iceberg-rest): Add register view support for IRC#11729
lasdf1234 wants to merge 1 commit into
apache:mainfrom
lasdf1234:feat-irc-register-view

Conversation

@lasdf1234

@lasdf1234 lasdf1234 commented Jun 18, 2026

Copy link
Copy Markdown
Collaborator

What changes were proposed in this pull request?

Add Iceberg REST Catalog register-view support to Gravitino IRC, aligned with the existing register-table flow:

  • Expose POST .../namespaces/{namespace}/register-view in IcebergNamespaceOperations.
  • Wire registerView through the view dispatcher chain (IcebergViewHookDispatcherIcebergViewEventDispatcherIcebergViewOperationExecutorIcebergCatalogWrapper → Iceberg CatalogHandlers.registerView).
  • When authorization is enabled, strictly import the view into Gravitino metadata and set the authenticated IRC caller as owner (same semantics as register-table).
  • Add audit/event support (IcebergRegisterViewPreEvent, success/failure events, OperationType).
  • Advertise Endpoint.V1_REGISTER_VIEW in IRC config.
  • Add unit tests for REST, dispatcher, executor, and hook layers.

Fix: #11728

Why are the changes needed?

Iceberg REST API defines register-view for registering existing view metadata, but Gravitino IRC only supported register-table. This gap blocks view import/migration workflows and leaves IRC view endpoint coverage incomplete.

Does this PR introduce any user-facing change?

Yes.

  1. New IRC endpoint: POST /v1/{prefix}namespaces/{namespace}/register-view.
  2. IRC /v1/config now includes V1_REGISTER_VIEW in the advertised endpoints list.

How was this patch tested?

  • ./gradlew :iceberg:iceberg-rest-server:test --tests org.apache.gravitino.iceberg.service.rest.TestIcebergViewOperations -PskipITs
  • ./gradlew :iceberg:iceberg-rest-server:test --tests org.apache.gravitino.iceberg.service.dispatcher.TestIcebergViewHookDispatcher -PskipITs
  • ./gradlew :iceberg:iceberg-rest-server:test --tests org.apache.gravitino.iceberg.service.dispatcher.TestIcebergViewOperationExecutor -PskipITs

Implement register view dispatching, events, REST endpoint wiring, and
tests so the Iceberg REST catalog exposes the register view API.

Co-authored-by: Cursor <cursoragent@cursor.com>
@lasdf1234 lasdf1234 self-assigned this Jun 18, 2026
@github-actions

Copy link
Copy Markdown

Code Coverage Report

Overall Project 67.17% +0.23% 🟢
Files changed 83.43% 🟢

Module Coverage
aliyun 1.72% 🔴
api 46.82% 🟢
authorization-common 85.96% 🟢
aws 3.66% 🔴
azure 2.47% 🔴
catalog-common 10.4% 🔴
catalog-fileset 80.23% 🟢
catalog-glue 66.91% 🟢
catalog-hive 79.44% 🟢
catalog-jdbc-clickhouse 80.02% 🟢
catalog-jdbc-common 44.22% 🟢
catalog-jdbc-doris 80.28% 🟢
catalog-jdbc-hologres 54.03% 🟢
catalog-jdbc-mysql 79.23% 🟢
catalog-jdbc-oceanbase 78.38% 🟢
catalog-jdbc-postgresql 82.29% 🟢
catalog-jdbc-starrocks 78.51% 🟢
catalog-kafka 77.01% 🟢
catalog-lakehouse-generic 58.53% 🟢
catalog-lakehouse-hudi 79.1% 🟢
catalog-lakehouse-iceberg 85.94% 🟢
catalog-lakehouse-paimon 82.14% 🟢
catalog-model 77.72% 🟢
cli 44.51% 🟢
client-java 78.01% 🟢
common 50.17% 🟢
core 82.59% +0.34% 🟢
filesystem-hadoop3 77.27% 🟢
flink 0.0% 🔴
flink-common 47.12% 🟢
flink-runtime 0.0% 🔴
gcp 14.12% 🔴
hadoop-common 10.88% 🔴
hive-metastore-common 53.77% 🟢
iceberg-common 58.1% -6.66% 🟢
iceberg-rest-server 74.2% +1.96% 🟢
idp-basic 86.2% 🟢
integration-test-common 0.0% 🔴
jobs 66.17% 🟢
lance-common 20.83% 🔴
lance-rest-server 60.13% 🟢
lineage 53.02% 🟢
optimizer 82.87% 🟢
optimizer-api 21.95% 🔴
server 85.96% 🟢
server-common 74.18% 🟢
spark 28.57% 🔴
spark-common 41.66% 🟢
trino-connector 40.13% 🟢
Files
Module File Coverage
core OperationType.java 100.0% 🟢
CompatibilityUtils.java 99.35% 🟢
AuditLog.java 97.53% 🟢
iceberg-common IcebergCatalogWrapper.java 29.0% 🔴
iceberg-rest-server IcebergViewOperationExecutor.java 100.0% 🟢
IcebergViewEventDispatcher.java 97.32% 🟢
IcebergConfigOperations.java 96.43% 🟢
IcebergViewHookDispatcher.java 88.7% 🟢
IcebergNamespaceOperations.java 81.2% 🟢
IcebergRegisterViewEvent.java 66.67% 🟢
IcebergRegisterViewFailureEvent.java 66.67% 🟢
IcebergRegisterViewPreEvent.java 60.0% 🟢
IcebergViewOperationDispatcher.java 0.0% 🔴

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[FEATURE] Support register view in Gravitino Iceberg REST Catalog

1 participant