Skip to content

Environment variables ​

Process env vars cuora itself reads. (The vars in [secrets] are yours — this is cuora's own surface; cuora manifest reports the same table.)

vardefaultused for
CUORA_CONFIG—config file override, between --config and ./cuora.toml in the search order
CUORA_ENVdevenv context — resolution + routing (--env wins)
CUORA_ACTOR$USER → anonaudit attribution (--actor wins). Self-claimed
CUORA_IDENTITY_FILE~/.config/cuora/identity.txtage identity keyfile for every vault impl — pins file mode outright
CUORA_IDENTITY_BACKENDkeyringkeyring (default — fail closed, no file fallback) | auto (keyring → keyfile fallback, for headless) | file (never probe the keyring); wins over [identity] backend
CUORA_CF_TOKEN—bearer token for kind = "cf" vaults — default name; [vaults.*].token_env picks another
CLOUDFLARE_API_TOKEN—API token for cf-secrets-store deploy sinks — default name; [deploy.*].token_env picks another
CUORA_AUDIT_STDERRon0/false/off/no silences the stderr ndjson audit wire — OTLP-only mode
OTEL_EXPORTER_OTLP_ENDPOINT—OTLP/HTTP collector base — audit events export as cuora.<op> spans to <endpoint>/v1/traces; http:// is accepted only for loopback collectors (localhost, 127.0.0.1, ::1) — same policy as cf vault URLs
OTEL_EXPORTER_OTLP_HEADERS—k=v,k2=v2 auth headers for the OTLP endpoint (values percent-decoded)
OTEL_EXPORTER_OTLP_TIMEOUT10000export timeout in ms
OTEL_SERVICE_NAMEcuoraservice.name resource attribute on exported spans
OTEL_SDK_DISABLED—true/1 disables OTLP export entirely

Honored XDG paths (when the matching override is unset):

varfalls back to
XDG_CONFIG_HOME~/.config — identity + user-level cuora.toml
XDG_DATA_HOME~/.local/share — the default vault.age

Two rules of thumb:

  • token_env config fields name env vars — the token value only ever lives in the process env.
  • CUORA_ACTOR is a self-claimed string for the audit trail, not authentication; see the threat model.