BingsanBingsan
Configuration

Configuration

Complete configuration guide for Bingsan

Configuration

Bingsan is configured via YAML file or environment variables. This section covers all configuration options.

Configuration Sources

Configuration is loaded in this order (later sources override earlier):

  1. Default values
  2. config.yaml file
  3. Environment variables (prefixed with ICEBERG_)

Quick Reference

server:
  host: 0.0.0.0
  port: 8181
  debug: false
  read_timeout: 30s
  write_timeout: 30s
  idle_timeout: 120s

database:
  host: localhost
  port: 5432
  user: iceberg
  password: iceberg
  database: iceberg_catalog
  ssl_mode: disable
  max_open_conns: 25
  max_idle_conns: 5
  conn_max_lifetime: 5m
  conn_max_idle_time: 5m

storage:
  type: s3
  warehouse: s3://bucket/warehouse

  s3:
    endpoint: ""
    region: us-east-1
    access_key_id: ""
    secret_access_key: ""
    bucket: warehouse
    use_path_style: false

  gcs:
    project: ""
    credentials_file: ""
    bucket: ""

  local:
    root_path: /tmp/iceberg/data

auth:
  enabled: false
  token_expiry: 1h
  signing_key: "change-me-in-production"

  oauth2:
    enabled: false
    issuer: ""
    client_id: ""
    client_secret: ""

  api_key:
    enabled: false

catalog:
  prefix: ""
  default_warehouse: ""
  lock_timeout: 30s
  lock_retry_interval: 100ms
  max_lock_retries: 100

Configuration Sections

Environment Variables

All configuration options can be set via environment variables using the ICEBERG_ prefix and underscores for nested keys:

Config PathEnvironment Variable
server.portICEBERG_SERVER_PORT
database.hostICEBERG_DATABASE_HOST
storage.s3.regionICEBERG_STORAGE_S3_REGION
auth.enabledICEBERG_AUTH_ENABLED

Example:

export ICEBERG_SERVER_PORT=8181
export ICEBERG_DATABASE_HOST=postgres.example.com
export ICEBERG_DATABASE_PASSWORD=secret
export ICEBERG_AUTH_ENABLED=true

On this page