- Environment Variables — the env-var equivalents of every key here.
- Per-Index KMS & BYOK — the
kms.registryblock, in depth. - Multi-Tenancy & RBAC — the
cyborgdb_service_root_keykey and its operator implications.
Resolution and precedence
The service resolves a YAML file in this order (first hit wins):- The
CYBORGDB_CONFIG_FILEenvironment variable. Missing path = hard error. ./cyborgdb.yaml./cyborgdb.yml/etc/cyborgdb/cyborgdb.yaml
- Init args (programmatic embedding)
- Environment variables
.envfile- YAML file
- File secrets
Env-var substitution
Any string value in the YAML may reference an environment variable:${VAR}— required. Startup fails ifVARis unset.${VAR:-default}— usesdefaultwhenVARis unset.
Full schema
cyborgdb.yaml
Storage backend cheat sheet
The
CYBORGDB_S3_* namespace is deliberately separate from AWS_* so storage and KMS credentials cannot collide. KMS (under kms.registry) uses the standard AWS credential chain or sts:AssumeRole; S3 storage uses its own explicit keys (or the chain if no explicit keys are set).KMS provider matrix
Both providers accept
role_arn + external_id for cross-account (BYOK) access — the service calls sts:AssumeRole before reaching the key on every wrap or unwrap.
Minimal viable configs
Dev — disk, single key:Validation behavior
- Invalid
cyborgdb_db_type(anything not inmemory | disk | s3) — startup fails fast with a clear error. CYBORGDB_CONFIG_FILEset to a missing path — hard error.${VAR}referencing an unset env var — hard error at parse time.- KMS slot with missing
provider/key_id/region— load-time error when the first index references the slot. cyborgdb_s3_endpointset without explicitcyborgdb_s3_access_key+cyborgdb_s3_secret_key— startup fails (the AWS chain is bypassed for custom endpoints).
See also
- Environment Variables — every key here has an env-var equivalent.
- Per-Index KMS & BYOK — operator + customer setup, rotation, troubleshooting.
- Multi-Tenancy & RBAC — the
cyborgdb_service_root_keyoperator playbook.