Configuration File
This document describes the supported configuration file (YAML/JSON) keys that FigChain clients accept. Clients load config files and then apply environment variable and programmatic overrides. Use this file as a reference for what you can put in figchain.yaml / figchain.json.
Core fields
base_url(string)- Base API URL. Default:
https://app.figchain.io/api/ - Env var:
FIGCHAIN_URL(canonical) long_polling_url(string)- Optional endpoint used for long-polling.
- Env var:
FIGCHAIN_LONG_POLLING_URL environment_id(string / UUID) — REQUIRED- Env var:
FIGCHAIN_ENVIRONMENT_ID namespaces(array of strings)- Namespaces to bootstrap and poll. Clients accept
namespace(single string) as legacy. - Env var:
FIGCHAIN_NAMESPACES(comma-separated) as_of_timestamp(string)- Optional timestamp for reproducible bootstrap.
Polling & retry
polling_interval(duration or integer ms)- Go accepts duration strings (e.g.
60s) or ms viaFIGCHAIN_POLLING_INTERVAL_MS. - Java/Python use milliseconds:
FIGCHAIN_POLLING_INTERVAL_MS. max_retries(int) — default 3- Env var:
FIGCHAIN_MAX_RETRIES retry_delay(duration or integer ms)- Env var:
FIGCHAIN_RETRY_DELAY_MS(ms)
Authentication
client_secret(string)- Shared-secret authentication. Env var:
FIGCHAIN_CLIENT_SECRET - Private-key auth (JWT signing):
auth_private_key_path(string) — path to PEM fileauth_private_key_pem(string) — PEM content inlineauth_client_id/auth_credential_id(string) — identifiers used in JWT- Env vars:
FIGCHAIN_AUTH_PRIVATE_KEY_PATH,FIGCHAIN_AUTH_PRIVATE_KEY_PEM,FIGCHAIN_AUTH_CLIENT_ID,FIGCHAIN_AUTH_CREDENTIAL_ID
S3 Resilience (Backups)
backup_enabled(bool) — defaultfalse— Env varFIGCHAIN_BACKUP_ENABLEDbackup_bucket(string) —FIGCHAIN_BACKUP_BUCKETbackup_prefix(string) —FIGCHAIN_BACKUP_PREFIXbackup_region(string) — defaultus-east-1—FIGCHAIN_BACKUP_REGIONbackup_endpoint(string) — custom endpoint (MinIO) —FIGCHAIN_BACKUP_ENDPOINTbackup_path_style/backup_path_style_access(bool) —FIGCHAIN_BACKUP_PATH_STYLE_ACCESSbackup_private_key_path(string) —FIGCHAIN_BACKUP_PRIVATE_KEY_PATH
Encryption / decryption
encryption_private_key_path(string)- Path to private key used to decrypt encrypted Figs/envelopes.
- Env var:
FIGCHAIN_ENCRYPTION_PRIVATE_KEY_PATH
Bootstrap strategy
bootstrap_strategy(string)- Values:
server,server-first,backup,hybrid(Java may useSERVER_FIRSTenum names). - Env var:
FIGCHAIN_BOOTSTRAP_STRATEGY/FIGCHAIN_BOOTSTRAP_MODE
Other
tenant_id(string) —FIGCHAIN_TENANT_IDuse_long_polling(bool) — use long-polling transport when supported
Precedence
- Programmatic options (builder / function params) override
- Environment variables override
- Config file (YAML/JSON) provides defaults
- Library defaults apply if unset
Example figchain.yaml
base_url: "https://app.figchain.io/api/"
environment_id: "00000000-0000-0000-0000-000000000000"
namespaces:
- default
polling_interval: "60s" # Go accepts duration; Java/Python expect ms env vars
max_retries: 3
retry_delay: "1s"
# Private key auth
auth_private_key_path: "/etc/figchain/auth.pem"
auth_private_key_pem: |
-----BEGIN PRIVATE KEY-----
...
-----END PRIVATE KEY-----
backup_enabled: true
backup_bucket: "my-figchain-backups"
encryption_private_key_path: "/etc/figchain/encryption.pem"
bootstrap_strategy: "server-first"
Compatibility notes
- The canonical env var names are the
FIGCHAIN_*names listed above. Java and Python already use these canonical names. The Go client now accepts them as compatibility aliases in addition to its originalbase_url/polling_intervalkeys (supports duration strings). - Use millisecond env vars (
FIGCHAIN_POLLING_INTERVAL_MS,FIGCHAIN_RETRY_DELAY_MS) for Java/Python; the Go client will convert ms env vars into Go durations.