Skip to content

Iceberg REST (Generic)

Any catalog that implements the Iceberg REST Catalog spec works with pg2iceberg. This page covers the generic setup and is also the configuration used for local development.

Local development

The quickstart docker-compose includes an Iceberg REST catalog backed by MinIO:

source:
  postgres_url: "postgres://postgres:postgres@localhost:5432/postgres?sslmode=disable"
  publication: pg2iceberg
  slot: pg2iceberg

sink:
  catalog_uri: "http://localhost:8181"
  catalog_auth: ""
  credential_mode: static
  warehouse: "s3://warehouse/"
  namespace: default
  s3_endpoint: "http://localhost:9000"
  s3_access_key: minioadmin
  s3_secret_key: minioadmin
  s3_region: us-east-1

tables:
  - name: public.orders

Generic configuration reference

catalog_auth Use when
"" / none No authentication (local, internal network)
bearer Catalog accepts a static API token
sigv4 Catalog requires AWS SigV4 request signing
oauth2 Catalog uses OAuth2 client credentials flow
credential_mode Use when
static You supply S3 access key + secret directly
iam Running on AWS with an IAM role (no keys in config)
vended Catalog returns temporary S3 credentials per table