Skip to content

Commit f2131e6

Browse files
heathkh-recursionKyle
andauthored
docs: add GCP BigLake Metastore Catalog configuration example (#2740)
- Adds documentation example for configuring Google BigLake Metastore as a REST catalog - Includes configuration example with proper authentication setup # Rationale for this change GCP had the GA release of the BigLake Metastore Catalog Iceberg REST api Nov 30 (see [release notes](https://docs.cloud.google.com/bigquery/docs/release-notes#October_30_2025)). There are few GCP docs available how to set this up in general, and with pyiceberg specifically. Ray Data and probably many other tools use pyiceberg under the hood, so documenting this would make it much easier for folks in the GCP cloud to use pyiceberg at scale. # Are these changes tested? Yes, using the following test plan: - [x] Configuration tested to work with pyiceberg 0.10.0 and Google BigLake Metastore (Nov 11, 2025) - [x] Documentation builds successfully - [x] Configuration example follows existing format and style - [x] Added links are valid # Are there any user-facing changes? Would add a new section in the docs when docs are published. --------- Co-authored-by: Kyle <kyle.heath@recursion.com>
1 parent 36906ed commit f2131e6

File tree

1 file changed

+22
-0
lines changed

1 file changed

+22
-0
lines changed

mkdocs/docs/configuration.md

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -551,6 +551,28 @@ catalog:
551551
type: noop
552552
```
553553

554+
##### GCP BigLake Metastore Catalog REST
555+
556+
```yaml
557+
catalog:
558+
biglake_catalog:
559+
type: rest
560+
uri: https://biglake.googleapis.com/iceberg/v1/restcatalog
561+
warehouse: gs://<bucket-name> # Use bq://projects/<gcp-project-id> for federation option (see docs)
562+
auth:
563+
type: google
564+
header.x-goog-user-project: <gcp-project-id>
565+
header.X-Iceberg-Access-Delegation: "" # For user-credentials authentication, set to empty string.
566+
```
567+
568+
<!-- prettier-ignore-start -->
569+
570+
!!! Note "Metastore Authentication Models"
571+
If your BigLake Metastore catalog is configured for "user credentials" authentication instead of "vendor credentials", set the `header.X-Iceberg-Access-Delegation` header to an empty string as shown above. Standard GCP Application Default Credentials (ADC) will be used to authenticate requests to the BigLake Metastore REST API.
572+
You can retrieve the configuration details for your BigLake Iceberg catalog at the [GCP Console BigLake Metastore page](https://console.cloud.google.com/biglake/metastore/catalogs). Select your catalog, then find the necessary parameters such as `uri`, `warehouse`, and authentication method (e.g. user-creds or vendor).
573+
574+
<!-- prettier-ignore-end -->
575+
554576
### SQL Catalog
555577

556578
The SQL catalog requires a database for its backend. PyIceberg supports PostgreSQL and SQLite through psycopg2. The database connection has to be configured using the `uri` property. The init_catalog_tables is optional and defaults to True. If it is set to False, the catalog tables will not be created when the SQLCatalog is initialized. See SQLAlchemy's [documentation for URL format](https://docs.sqlalchemy.org/en/20/core/engines.html#backend-specific-urls):

0 commit comments

Comments
 (0)