Skip to content

Commit 086aef5

Browse files
committed
improve REST catalog documentation with examples and configuration details
1 parent 9abec7e commit 086aef5

1 file changed

Lines changed: 68 additions & 2 deletions

File tree

mkdocs/docs/configuration.md

Lines changed: 68 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -357,7 +357,7 @@ catalog:
357357

358358
#### Headers in RESTCatalog
359359

360-
To configure custom headers in RESTCatalog, include them in the catalog properties with the prefix `header.`. This
360+
To configure custom headers in RESTCatalog, include them in the catalog properties with `header.<Header-Name>`. This
361361
ensures that all HTTP requests to the REST service include the specified headers.
362362

363363
```yaml
@@ -372,7 +372,73 @@ Specific headers defined by the RESTCatalog spec include:
372372

373373
| Key | Options | Default | Description |
374374
| ------------------------------------ | ------------------------------------- | -------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
375-
| `header.X-Iceberg-Access-Delegation` | `{vended-credentials,remote-signing}` | `vended-credentials` | Signal to the server that the client supports delegated access via a comma-separated list of access mechanisms. The server may choose to supply access via any or none of the requested mechanisms |
375+
| `header.X-Iceberg-Access-Delegation` | `{vended-credentials,remote-signing}` | `vended-credentials` | Signal to the server that the client supports delegated access via a comma-separated list of access mechanisms. The server may choose to supply access via any or none of the requested mechanisms. When using `vended-credentials`, the server provides temporary credentials to the client. When using `remote-signing`, the server signs requests on behalf of the client. |
376+
377+
#### Authentication Options
378+
- **SigV4**: For AWS services that require SigV4 signing.
379+
- **Token**: Use the `token` property to pass a bearer token for services that accept token-based authentication.
380+
- **Credential**: Use the `credential` property with format `client_id:client_secret` for authentication.
381+
- **OAuth2**: Use the `oauth2-server-uri` property to specify a custom OAuth2 endpoint for client credentials authentication.
382+
383+
#### Common Integrations & Examples
384+
385+
##### Glue (AWS)
386+
```yaml
387+
catalog:
388+
s3_tables_catalog:
389+
type: rest
390+
uri: https://glue.<region>.amazonaws.com/iceberg
391+
warehouse: <account-id>:s3tablescatalog/<table-bucket-name>
392+
rest.sigv4-enabled: true
393+
rest.signing-name: glue
394+
rest.signing-region: <region>
395+
```
396+
397+
##### Unity Catalog (Databricks)
398+
```yaml
399+
catalog:
400+
unity_catalog:
401+
type: rest
402+
uri: https://<workspace-url>/api/2.1/unity-catalog/iceberg-rest
403+
warehouse: <uc-catalog-name>
404+
token: <databricks-pat-token>
405+
```
406+
407+
##### R2 Data Catalog (Cloudflare)
408+
```yaml
409+
catalog:
410+
r2_catalog:
411+
type: rest
412+
uri: <r2-catalog-uri>
413+
warehouse: <r2-warehouse-name>
414+
token: <r2-token>
415+
```
416+
417+
##### Lakekeeper
418+
```yaml
419+
catalog:
420+
lakekeeper_catalog:
421+
type: rest
422+
uri: <lakekeeper-catalog-uri>
423+
warehouse: <lakekeeper-warehouse-name>
424+
credential: <client-id>:<client-secret>
425+
oauth2-server-uri: http://localhost:30080/realms/<keycloak-realm-name>/protocol/openid-connect/token
426+
scope: lakekeeper
427+
```
428+
429+
##### Polaris (Snowflake)
430+
```yaml
431+
catalog:
432+
polaris_catalog:
433+
type: rest
434+
uri: https://<account>.snowflakecomputing.com/polaris/api/catalog
435+
warehouse: <polaris-catalog-name>
436+
credential: <client-id>:<client-secret>
437+
header.X-Iceberg-Access-Delegation: vended-credentials
438+
scope: PRINCIPAL_ROLE:ALL
439+
token-refresh-enabled: true
440+
py-io-impl: pyiceberg.io.fsspec.FsspecFileIO
441+
```
376442

377443
### SQL Catalog
378444

0 commit comments

Comments
 (0)