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):
- Default values
config.yamlfile- 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: 100Configuration Sections
- Server - HTTP server settings
- Database - PostgreSQL connection
- Storage - S3/GCS/Local storage backends
- Authentication - OAuth2 and API key authentication
Environment Variables
All configuration options can be set via environment variables using the ICEBERG_ prefix and underscores for nested keys:
| Config Path | Environment Variable |
|---|---|
server.port | ICEBERG_SERVER_PORT |
database.host | ICEBERG_DATABASE_HOST |
storage.s3.region | ICEBERG_STORAGE_S3_REGION |
auth.enabled | ICEBERG_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