Altinity / Altinity/ice

Using ice cli with BigLake Iceberg Catalog

Open
#129 2 comments 0 reactions 1 assignee View on GitHub

@subkanthi is already working on this.

Since Mar 16, 2026.

ice p2
Dominant language
Java
Stars
35
Forks
7
Avg merge
5d 12h
Merged PRs (30d)
2

Description

BigLake Metastore natively exposes a standard Iceberg REST Catalog API (GA since May 2025).
The endpoint is: https://biglake.googleapis.com/iceberg/v1/restcatalog
https://cloud.google.com/blog/products/data-analytics/biglake-metastore-now-supports-iceberg-rest-catalog

 create-table -p flowers.iris --schema-from-parquet=file://iris.parquet                                                       
2026-03-12 17:39:33 [main] WARN o.a.i.r.RESTSessionCatalog > Iceberg REST client is missing the OAuth2 server URI configuration and defaults to https://biglake.googleapis.com/iceberg/v1/restcatalog/v1/oauth/tokens. This automatic fallback will be removed in a future Iceberg release.It is recommended to configure the OAuth2 endpoint using the 'oauth2-server-uri' property to be prepared. This warning will disappear if the OAuth2 endpoint is explicitly configured. See https://github.com/apache/iceberg/issues/10537
2026-03-12 17:39:36 [main] ERROR com.altinity.ice.cli.Main > Fatal
org.apache.iceberg.exceptions.BadRequestException: Malformed request: Request contains an invalid argument.
	at org.apache.iceberg.rest.ErrorHandlers$DefaultErrorHandler.accept(ErrorHandlers.java:208)
	at org.apache.iceberg.rest.ErrorHandlers$TableErrorHandler.accept(ErrorHandlers.java:118)
	at org.apache.iceberg.rest.ErrorHandlers$TableErrorHandler.accept(ErrorHandlers.java:102)
	at org.apache.iceberg.rest.HTTPClient.throwFailure(HTTPClient.java:225)
	at org.apache.iceberg.rest.HTTPClient.execute(HTTPClient.java:309)
	at org.apache.iceberg.rest.BaseHTTPClient.post(BaseHTTPClient.java:88)
	at org.apache.iceberg.rest.RESTClient.post(RESTClient.java:113)
	at org.apache.iceberg.rest.RESTTableOperations.commit(RESTTableOperations.java:159)
	at org.apache.iceberg.BaseTransaction.commitCreateTransaction(BaseTransaction.java:327)
	at org.apache.iceberg.BaseTransaction.commitTransaction(BaseTransaction.java:306)
	at com.altinity.ice.cli.internal.cmd.CreateTable.run(CreateTable.java:130)
	at com.altinity.ice.cli.Main.createTable(Main.java:293)
	at com.altinity.ice.cli.Main.lambda$main$1(Main.java:827) [9 skipped]
	at com.altinity.ice.cli.Main.main(Main.java:834) [1 skipped]

.ice.yaml

uri: https://biglake.googleapis.com/iceberg/v1beta/restcatalog

icebergProperties:
  warehouse: gs://iceberg-test-2
  prefix: "projects/kanthi-test/locations/LOCATION/catalogs/iceberg-test-2"
  token: ""
  header.x-goog-user-project: kanthi-test
  header.X-Iceberg-Access-Delegation: vended-credentials
  io-impl: org.apache.iceberg.gcp.gcs.GCSFileIO
  rest-metrics-reporting-enabled: "false"


Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.