danhuawang opened a new issue, #10886:
URL: https://github.com/apache/gravitino/issues/10886
### Version
main branch
### Describe what's wrong
I use Trino to access a remote IRC catalog
```
trino --server http://34.138.225.171:8080 --debug
trino> use remote_irc.mydb_s3;
Query 20260428_112505_00002_r6jbg failed: Cannot obtain metadata
io.trino.spi.TrinoException: Cannot obtain metadata
at
io.trino.plugin.iceberg.IcebergConnector.getMetadata(IcebergConnector.java:139)
at
io.trino.metadata.CatalogTransaction.getConnectorMetadata(CatalogTransaction.java:71)
at
io.trino.metadata.CatalogMetadata.getMetadata(CatalogMetadata.java:87)
at
io.trino.metadata.MetadataManager$QueryCatalogs.registerCatalog(MetadataManager.java:2922)
at
io.trino.metadata.MetadataManager.registerCatalogForQuery(MetadataManager.java:2895)
at
io.trino.metadata.MetadataManager.lambda$getOptionalCatalogMetadata$0(MetadataManager.java:2850)
at java.base/java.util.Optional.ifPresent(Optional.java:178)
at
io.trino.metadata.MetadataManager.getOptionalCatalogMetadata(MetadataManager.java:2850)
at
io.trino.metadata.MetadataManager.schemaExists(MetadataManager.java:246)
at
io.trino.tracing.TracingMetadata.schemaExists(TracingMetadata.java:172)
at io.trino.execution.UseTask.execute(UseTask.java:85)
at io.trino.execution.UseTask.execute(UseTask.java:41)
at
io.trino.execution.DataDefinitionExecution.start(DataDefinitionExecution.java:152)
at
io.trino.execution.SqlQueryManager.createQuery(SqlQueryManager.java:284)
at
io.trino.dispatcher.LocalDispatchQuery.startExecution(LocalDispatchQuery.java:150)
at
io.trino.dispatcher.LocalDispatchQuery.lambda$waitForMinimumWorkers$1(LocalDispatchQuery.java:134)
at
io.airlift.concurrent.MoreFutures.lambda$addSuccessCallback$0(MoreFutures.java:570)
at io.airlift.concurrent.MoreFutures$3.onSuccess(MoreFutures.java:545)
at
com.google.common.util.concurrent.Futures$CallbackListener.run(Futures.java:1132)
at io.trino.$gen.Trino_478____20260428_111746_2.run(Unknown Source)
at
java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1090)
at
java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:614)
at java.base/java.lang.Thread.run(Thread.java:1474)
Caused by: org.apache.iceberg.exceptions.NotAuthorizedException: Not
authorized: Not authorized: {
"servlet":"org.glassfish.jersey.servlet.ServletContainer-45cd7bc5",
"message":"The provided credentials did not support",
"url":"/iceberg/v1/config",
"status":"401"
}
at
org.apache.iceberg.rest.ErrorHandlers$DefaultErrorHandler.accept(ErrorHandlers.java:236)
at
org.apache.iceberg.rest.ErrorHandlers$DefaultErrorHandler.accept(ErrorHandlers.java:214)
at org.apache.iceberg.rest.HTTPClient.throwFailure(HTTPClient.java:240)
at org.apache.iceberg.rest.HTTPClient.execute(HTTPClient.java:336)
at org.apache.iceberg.rest.HTTPClient.execute(HTTPClient.java:297)
at org.apache.iceberg.rest.BaseHTTPClient.get(BaseHTTPClient.java:77)
at
org.apache.iceberg.rest.RESTSessionCatalog.fetchConfig(RESTSessionCatalog.java:1023)
at
org.apache.iceberg.rest.RESTSessionCatalog.initialize(RESTSessionCatalog.java:205)
at
io.trino.plugin.iceberg.catalog.rest.TrinoIcebergRestCatalogFactory.create(TrinoIcebergRestCatalogFactory.java:145)
at
io.trino.plugin.iceberg.IcebergMetadataFactory.create(IcebergMetadataFactory.java:97)
at
io.trino.plugin.iceberg.IcebergTransactionManager$MemoizedMetadata.get(IcebergTransactionManager.java:90)
at
io.trino.plugin.iceberg.IcebergTransactionManager.get(IcebergTransactionManager.java:56)
at
io.trino.plugin.iceberg.IcebergConnector.getMetadata(IcebergConnector.java:135)
... 22 more
```
### Error message and/or stacktrace
```
2026-04-28 11:28:32.232 INFO [iceberg-rest-32]
[org.apache.gravitino.iceberg.service.IcebergExceptionMapper.toRESTResponse(IcebergExceptionMapper.java:86)]
- Iceberg REST server error maybe caused by user request, response http
status: 401, exception: class
org.apache.iceberg.exceptions.NotAuthorizedException, exception message: Not
authorized: {
"servlet":"org.glassfish.jersey.servlet.ServletContainer-45cd7bc5",
"message":"The provided credentials did not support",
"url":"/iceberg/v1/config",
"status":"401"
}
2026-04-28 11:28:32.283 INFO [iceberg-rest-39]
[org.apache.gravitino.iceberg.common.utils.IcebergCatalogUtil.loadCatalogBackend(IcebergCatalogUtil.java:153)]
- Load catalog backend of REST
2026-04-28 11:28:32.330 INFO [iceberg-rest-39]
[org.apache.iceberg.rest.auth.AuthManagers.loadAuthManager(AuthManagers.java:108)]
- Loading AuthManager implementation:
org.apache.iceberg.rest.auth.NoopAuthManager
2026-04-28 11:28:32.338 WARN [iceberg-rest-39]
[org.apache.iceberg.rest.ErrorHandlers$DefaultErrorHandler.parseResponse(ErrorHandlers.java:222)]
- Unable to parse error response
java.lang.IllegalArgumentException: Cannot parse missing field: error
at
org.apache.iceberg.relocated.com.google.common.base.Preconditions.checkArgument(Preconditions.java:141)
~[iceberg-bundled-guava-1.10.1.jar:?]
at
org.apache.iceberg.rest.responses.ErrorResponseParser.fromJson(ErrorResponseParser.java:79)
~[iceberg-core-1.10.1.jar:?]
at org.apache.iceberg.util.JsonUtil.parse(JsonUtil.java:104)
~[iceberg-core-1.10.1.jar:?]
at
org.apache.iceberg.rest.responses.ErrorResponseParser.fromJson(ErrorResponseParser.java:71)
~[iceberg-core-1.10.1.jar:?]
at
org.apache.iceberg.rest.ErrorHandlers$DefaultErrorHandler.parseResponse(ErrorHandlers.java:220)
~[iceberg-core-1.10.1.jar:?]
at org.apache.iceberg.rest.HTTPClient.throwFailure(HTTPClient.java:210)
~[iceberg-core-1.10.1.jar:?]
at org.apache.iceberg.rest.HTTPClient.execute(HTTPClient.java:336)
~[iceberg-core-1.10.1.jar:?]
at org.apache.iceberg.rest.HTTPClient.execute(HTTPClient.java:297)
~[iceberg-core-1.10.1.jar:?]
at org.apache.iceberg.rest.BaseHTTPClient.get(BaseHTTPClient.java:77)
~[iceberg-core-1.10.1.jar:?]
at
org.apache.iceberg.rest.RESTSessionCatalog.fetchConfig(RESTSessionCatalog.java:1023)
~[iceberg-core-1.10.1.jar:?]
at
org.apache.iceberg.rest.RESTSessionCatalog.initialize(RESTSessionCatalog.java:205)
~[iceberg-core-1.10.1.jar:?]
at org.apache.iceberg.rest.RESTCatalog.initialize(RESTCatalog.java:82)
~[iceberg-core-1.10.1.jar:?]
at
org.apache.gravitino.iceberg.common.utils.IcebergCatalogUtil.loadRestCatalog(IcebergCatalogUtil.java:130)
~[gravitino-iceberg-common-1.2.0.jar:?]
at
org.apache.gravitino.iceberg.common.utils.IcebergCatalogUtil.loadCatalogBackend(IcebergCatalogUtil.java:162)
~[gravitino-iceberg-common-1.2.0.jar:?]
at
org.apache.gravitino.iceberg.common.ops.IcebergCatalogWrapper.<init>(IcebergCatalogWrapper.java:98)
~[gravitino-iceberg-common-1.2.0.jar:?]
at
org.apache.gravitino.iceberg.service.CatalogWrapperForREST.<init>(CatalogWrapperForREST.java:100)
~[gravitino-iceberg-rest-server-1.2.0.jar:?]
at
org.apache.gravitino.iceberg.service.IcebergCatalogWrapperManager.createCatalogWrapper(IcebergCatalogWrapperManager.java:130)
~[gravitino-iceberg-rest-server-1.2.0.jar:?]
at
org.apache.gravitino.iceberg.service.IcebergCatalogWrapperManager.createCatalogWrapper(IcebergCatalogWrapperManager.java:123)
~[gravitino-iceberg-rest-server-1.2.0.jar:?]
at
org.apache.gravitino.iceberg.service.IcebergCatalogWrapperManager.lambda$getCatalogWrapper$2(IcebergCatalogWrapperManager.java:102)
~[gravitino-iceberg-rest-server-1.2.0.jar:?]
at
com.github.benmanes.caffeine.cache.BoundedLocalCache.lambda$doComputeIfAbsent$14(BoundedLocalCache.java:2406)
~[caffeine-2.9.3.jar:?]
at
java.base/java.util.concurrent.ConcurrentHashMap.compute(ConcurrentHashMap.java:1916)
~[?:?]
at
com.github.benmanes.caffeine.cache.BoundedLocalCache.doComputeIfAbsent(BoundedLocalCache.java:2404)
~[caffeine-2.9.3.jar:?]
at
com.github.benmanes.caffeine.cache.BoundedLocalCache.computeIfAbsent(BoundedLocalCache.java:2387)
~[caffeine-2.9.3.jar:?]
at
com.github.benmanes.caffeine.cache.LocalCache.computeIfAbsent(LocalCache.java:108)
~[caffeine-2.9.3.jar:?]
at
com.github.benmanes.caffeine.cache.LocalManualCache.get(LocalManualCache.java:62)
~[caffeine-2.9.3.jar:?]
at
org.apache.gravitino.iceberg.service.IcebergCatalogWrapperManager.getCatalogWrapper(IcebergCatalogWrapperManager.java:102)
~[gravitino-iceberg-rest-server-1.2.0.jar:?]
at
org.apache.gravitino.iceberg.service.rest.IcebergConfigOperations.getCatalogWrapper(IcebergConfigOperations.java:141)
~[gravitino-iceberg-rest-server-1.2.0.jar:?]
at
org.apache.gravitino.iceberg.service.rest.IcebergConfigOperations.supportsViewOperations(IcebergConfigOperations.java:136)
~[gravitino-iceberg-rest-server-1.2.0.jar:?]
at
org.apache.gravitino.iceberg.service.rest.IcebergConfigOperations.getConfig(IcebergConfigOperations.java:103)
~[gravitino-iceberg-rest-server-1.2.0.jar:?]
at
java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
~[?:?]
at
java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
~[?:?]
at
java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
~[?:?]
at java.base/java.lang.reflect.Method.invoke(Method.java:569) ~[?:?]
at
org.glassfish.jersey.server.model.internal.ResourceMethodInvocationHandlerFactory.lambda$static$0(ResourceMethodInvocationHandlerFactory.java:52)
~[jersey-server-2.41.jar:?]
at
org.glassfish.jersey.server.model.internal.AbstractJavaResourceMethodDispatcher$1.run(AbstractJavaResourceMethodDispatcher.java:146)
~[jersey-server-2.41.jar:?]
at
org.glassfish.jersey.server.model.internal.AbstractJavaResourceMethodDispatcher.invoke(AbstractJavaResourceMethodDispatcher.java:189)
~[jersey-server-2.41.jar:?]
at
org.glassfish.jersey.server.model.internal.JavaResourceMethodDispatcherProvider$ResponseOutInvoker.doDispatch(JavaResourceMethodDispatcherProvider.java:176)
~[jersey-server-2.41.jar:?]
at
org.glassfish.jersey.server.model.internal.AbstractJavaResourceMethodDispatcher.dispatch(AbstractJavaResourceMethodDispatcher.java:93)
~[jersey-server-2.41.jar:?]
at
org.glassfish.jersey.server.model.ResourceMethodInvoker.invoke(ResourceMethodInvoker.java:478)
~[jersey-server-2.41.jar:?]
at
org.glassfish.jersey.server.model.ResourceMethodInvoker.apply(ResourceMethodInvoker.java:400)
~[jersey-server-2.41.jar:?]
at
org.glassfish.jersey.server.model.ResourceMethodInvoker.apply(ResourceMethodInvoker.java:81)
~[jersey-server-2.41.jar:?]
at
org.glassfish.jersey.server.ServerRuntime$1.run(ServerRuntime.java:256)
~[jersey-server-2.41.jar:?]
at org.glassfish.jersey.internal.Errors$1.call(Errors.java:248)
~[jersey-common-2.41.jar:?]
at org.glassfish.jersey.internal.Errors$1.call(Errors.java:244)
~[jersey-common-2.41.jar:?]
at org.glassfish.jersey.internal.Errors.process(Errors.java:292)
~[jersey-common-2.41.jar:?]
at org.glassfish.jersey.internal.Errors.process(Errors.java:274)
~[jersey-common-2.41.jar:?]
at org.glassfish.jersey.internal.Errors.process(Errors.java:244)
~[jersey-common-2.41.jar:?]
at
org.glassfish.jersey.process.internal.RequestScope.runInScope(RequestScope.java:265)
~[jersey-common-2.41.jar:?]
at
org.glassfish.jersey.server.ServerRuntime.process(ServerRuntime.java:235)
~[jersey-server-2.41.jar:?]
at
org.glassfish.jersey.server.ApplicationHandler.handle(ApplicationHandler.java:684)
~[jersey-server-2.41.jar:?]
at
org.glassfish.jersey.servlet.WebComponent.serviceImpl(WebComponent.java:394)
~[jersey-container-servlet-core-2.41.jar:?]
at
org.glassfish.jersey.servlet.WebComponent.service(WebComponent.java:346)
~[jersey-container-servlet-core-2.41.jar:?]
at
org.glassfish.jersey.servlet.ServletContainer.service(ServletContainer.java:358)
~[jersey-container-servlet-core-2.41.jar:?]
at
org.glassfish.jersey.servlet.ServletContainer.service(ServletContainer.java:311)
~[jersey-container-servlet-core-2.41.jar:?]
at
org.glassfish.jersey.servlet.ServletContainer.service(ServletContainer.java:205)
~[jersey-container-servlet-core-2.41.jar:?]
at
org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:799)
~[jetty-servlet-9.4.51.v20230217.jar:9.4.51.v20230217]
at
org.eclipse.jetty.servlet.ServletHandler$ChainEnd.doFilter(ServletHandler.java:1656)
~[jetty-servlet-9.4.51.v20230217.jar:9.4.51.v20230217]
at
org.apache.gravitino.server.authentication.AuthenticationFilter.lambda$doFilter$0(AuthenticationFilter.java:89)
~[gravitino-server-common-1.2.0.jar:?]
at
java.base/java.security.AccessController.doPrivileged(AccessController.java:712)
~[?:?]
at java.base/javax.security.auth.Subject.doAs(Subject.java:439) ~[?:?]
at
org.apache.gravitino.utils.PrincipalUtils.doAs(PrincipalUtils.java:44)
~[gravitino-core-1.2.0.jar:?]
at
org.apache.gravitino.server.authentication.AuthenticationFilter.doFilter(AuthenticationFilter.java:86)
~[gravitino-server-common-1.2.0.jar:?]
at
org.eclipse.jetty.servlet.FilterHolder.doFilter(FilterHolder.java:193)
~[jetty-servlet-9.4.51.v20230217.jar:9.4.51.v20230217]
at
org.eclipse.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1626)
~[jetty-servlet-9.4.51.v20230217.jar:9.4.51.v20230217]
at
org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:552)
~[jetty-servlet-9.4.51.v20230217.jar:9.4.51.v20230217]
at
org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:233)
~[jetty-server-9.4.51.v20230217.jar:9.4.51.v20230217]
at
org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1440)
~[jetty-server-9.4.51.v20230217.jar:9.4.51.v20230217]
at
org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:188)
~[jetty-server-9.4.51.v20230217.jar:9.4.51.v20230217]
at
org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:505)
~[jetty-servlet-9.4.51.v20230217.jar:9.4.51.v20230217]
at
org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:186)
~[jetty-server-9.4.51.v20230217.jar:9.4.51.v20230217]
at
org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1355)
~[jetty-server-9.4.51.v20230217.jar:9.4.51.v20230217]
at
org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141)
~[jetty-server-9.4.51.v20230217.jar:9.4.51.v20230217]
at
org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:146)
~[jetty-server-9.4.51.v20230217.jar:9.4.51.v20230217]
at
org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:127)
~[jetty-server-9.4.51.v20230217.jar:9.4.51.v20230217]
at org.eclipse.jetty.server.Server.handle(Server.java:516)
~[jetty-server-9.4.51.v20230217.jar:9.4.51.v20230217]
at
org.eclipse.jetty.server.HttpChannel.lambda$handle$1(HttpChannel.java:487)
~[jetty-server-9.4.51.v20230217.jar:9.4.51.v20230217]
at org.eclipse.jetty.server.HttpChannel.dispatch(HttpChannel.java:732)
[jetty-server-9.4.51.v20230217.jar:9.4.51.v20230217]
at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:479)
[jetty-server-9.4.51.v20230217.jar:9.4.51.v20230217]
at
org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:277)
[jetty-server-9.4.51.v20230217.jar:9.4.51.v20230217]
at
org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:311)
[jetty-io-9.4.51.v20230217.jar:9.4.51.v20230217]
at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:105)
[jetty-io-9.4.51.v20230217.jar:9.4.51.v20230217]
at org.eclipse.jetty.io.ChannelEndPoint$1.run(ChannelEndPoint.java:104)
[jetty-io-9.4.51.v20230217.jar:9.4.51.v20230217]
at
org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.runTask(EatWhatYouKill.java:338)
[jetty-util-9.4.51.v20230217.jar:9.4.51.v20230217]
at
org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.doProduce(EatWhatYouKill.java:315)
[jetty-util-9.4.51.v20230217.jar:9.4.51.v20230217]
at
org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.tryProduce(EatWhatYouKill.java:173)
[jetty-util-9.4.51.v20230217.jar:9.4.51.v20230217]
at
org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.run(EatWhatYouKill.java:131)
[jetty-util-9.4.51.v20230217.jar:9.4.51.v20230217]
at
org.eclipse.jetty.util.thread.ReservedThreadExecutor$ReservedThread.run(ReservedThreadExecutor.java:409)
[jetty-util-9.4.51.v20230217.jar:9.4.51.v20230217]
at
org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:883)
[jetty-util-9.4.51.v20230217.jar:9.4.51.v20230217]
at
org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.run(QueuedThreadPool.java:1034)
[jetty-util-9.4.51.v20230217.jar:9.4.51.v20230217]
at java.base/java.lang.Thread.run(Thread.java:840) [?:?]
2026-04-28 11:28:32.340 INFO [iceberg-rest-39]
[org.apache.gravitino.iceberg.service.IcebergExceptionMapper.toRESTResponse(IcebergExceptionMapper.java:86)]
- Iceberg REST server error maybe caused by user request, response http
status: 401, exception: class
org.apache.iceberg.exceptions.NotAuthorizedException, exception message: Not
authorized: {
"servlet":"org.glassfish.jersey.servlet.ServletContainer-45cd7bc5",
"message":"The provided credentials did not support",
"url":"/iceberg/v1/config",
"status":"401"
}
```
### How to reproduce
1. Trino catalog defined as following
```
remote_irc.properties: |
connector.name=iceberg
iceberg.catalog.type=rest
iceberg.rest-catalog.uri=http://gravitino.irc-e2e-env1:9001/iceberg/
iceberg.rest-catalog.prefix=catalog_2
iceberg.rest-catalog.warehouse=catalog_2
# OAuth2 client credentials flow — Trino automatically obtains and
refreshes
# the token using Keycloak's client_credentials grant.
# Trino >= 435 required.
iceberg.rest-catalog.security=OAUTH2
iceberg.rest-catalog.oauth2.server-uri=http://XXXXXX:8080/realms/myrealm/protocol/openid-connect/token
iceberg.rest-catalog.oauth2.credential=postman-client:XXXXXXX
iceberg.rest-catalog.oauth2.scope=openid profile email
# Credential vending: ask IRC to vend short-lived cloud credentials
iceberg.rest-catalog.vended-credentials-enabled=true
fs.native-s3.enabled=true
s3.region=us-east-1
```
2. Gravitino IRC conf:
```
gravitino.authenticators = oauth
gravitino.authenticator.oauth.serviceAudience = account
gravitino.authenticator.oauth.defaultSignKey =
MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAqmmqfSy8vH9BMKZLIjPHNTClH7yyykV/J/dfNwwicoYCBQgLOLRq59nAiJ9/WOkIq7zIXQ8iZU5XmI0bRSo3Ah7G4uF6CUbpny+n4zxwTfEEJ3dVC1Aa1g3DZbf8mN76B2ykf6z4FEbTWVBp0xMZ14YBOIuOUkN4F/x8bQNYRPl0yepLBZf6uY26f2o5+yKBcpAk7K/pGoD4v+DKpt/A8bvf4fy3JpZERsMPS/veeyIqR6f+455KLjRabBpxl5xIo8iUer5O0Ci8xbQMci4ErRRemm5n1e74Kqpz5u/TcLIPdMLXJ57fLl9t7V9BtLyRTjyooJpnl/lz+kJ+VIt1kQIDAQAB
gravitino.authenticator.oauth.serverUri = http://XXXXX:8080
gravitino.authenticator.oauth.tokenPath =
/realms/myrealm/protocol/openid-connect/token
gravitino.authenticator.oauth.provider = oidc
gravitino.authenticator.oauth.clientId = postman-client
gravitino.authenticator.oauth.authority = http://XXXXX:8080/realms/myrealm
gravitino.authenticator.oauth.scope = profile email
gravitino.authenticator.oauth.jwksUri =
http://XXXXX:8080/realms/myrealm/protocol/openid-connect/certs
gravitino.authenticator.oauth.tokenValidatorClass =
org.apache.gravitino.server.authentication.JwksTokenValidator
gravitino.authenticator.oauth.principalFields = preferred_username
gravitino.auxService.names = iceberg-rest
gravitino.iceberg-rest.classpath = iceberg-rest-server/libs,
iceberg-rest-server/conf
gravitino.iceberg-rest.host = 0.0.0.0
gravitino.iceberg-rest.httpPort = 9001
gravitino.iceberg-rest.catalog-backend = memory
gravitino.iceberg-rest.warehouse = /tmp/
gravitino.iceberg-rest.catalog-config-provider = dynamic-config-provider
gravitino.iceberg-rest.gravitino-uri =
gravitino.iceberg-rest.gravitino-metalake = metalake_a
gravitino.iceberg-rest.default-catalog-name = catalog_1
```
3. The catalog2 property
```
{"code":0,"catalog":{"name":"catalog_2","type":"relational","provider":"lakehouse-iceberg","comment":"env1
catalog","properties":{"catalog-backend":"rest","s3-access-key-id":"XXXXX","s3-secret-access-key":"XXXXX","header.X-Iceberg-Access-Delegation":"vended-credentials","data-access":"vended-credentials","s3-region":"us-east-1","credential-providers":"s3-secret-key","uri":"http://34.23.68.122:9001/iceberg","in-use":"true"},"audit":{"creator":"service-account-postman-client","createTime":"2026-04-28T06:42:34.756894560Z","lastModifier":"service-account-postman-client","lastModifiedTime":"2026-04-28T11:24:33.142716931Z"}}}
```
4. Trino access
```
```
trino --server http://34.138.225.171:8080 --debug
trino> use remote_irc.mydb_s3;
```
### Additional context
_No response_
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]