Environment Variables

All RESPONDENT_* environment variables for configuration and credential management

Every Respondent configuration key can be set via environment variable. The naming convention maps config file keys to env vars by uppercasing and replacing dots with underscores, prefixed with RESPONDENT_.

config.key.path  ->  RESPONDENT_CONFIG_KEY_PATH

For example, server.port in respondent.yaml maps to RESPONDENT_SERVER_PORT. Environment variables take precedence over values in the config file.

Database

VariableConfig KeyTypeDefaultDescription
RESPONDENT_DATABASE_PATHdatabase.pathstring./respondent.dbPath to the SQLite database file
RESPONDENT_DATABASE_RETENTION_MAX_SIZEdatabase.retention.max_sizestring""High watermark as a humanized size (e.g. 50GB); empty disables retention (opt-in)
RESPONDENT_DATABASE_RETENTION_LOW_WATER_RATIOdatabase.retention.low_water_ratiofloat0.90Prune down to max_size * this ratio
RESPONDENT_DATABASE_RETENTION_CHECK_INTERVALdatabase.retention.check_intervalduration10mHow often size is measured and pruning runs
RESPONDENT_DATABASE_RETENTION_BATCH_SIZEdatabase.retention.batch_sizeinteger5000Observation rows deleted per transaction
RESPONDENT_DATABASE_RETENTION_MAX_BATCHES_PER_TICKdatabase.retention.max_batches_per_tickinteger200Max delete batches per tick
RESPONDENT_DATABASE_RETENTION_INCREMENTAL_VACUUM_PAGESdatabase.retention.incremental_vacuum_pagesinteger10000Pages reclaimed to the OS per tick

Server

VariableConfig KeyTypeDefaultDescription
RESPONDENT_SERVER_PORTserver.portinteger8090HTTP/WebSocket listening port

Frontend

VariableConfig KeyTypeDefaultDescription
RESPONDENT_FRONTEND_CESIUM_ION_TOKENfrontend.cesium_ion_tokenstring""Cesium ion client token for 3D globe terrain and imagery; served to the browser via GET /config.json

Ingest

VariableConfig KeyTypeDefaultDescription
RESPONDENT_INGEST_ENABLEDingest.enabledbooleantrueGates the live feeder; set false to serve a fully static instance (no source fetching)
RESPONDENT_INGEST_SOURCES_DIRingest.sources_dirstring(none)Directory containing source definition YAML files; no code-backed default — empty unless set (the shipped respondent.yaml uses ./sources.d)
RESPONDENT_INGEST_DEV_MODEingest.dev_modebooleanfalseEnable dev mode for dry-run testing

AI

VariableConfig KeyTypeDefaultDescription
RESPONDENT_AI_ENABLEDai.enabledbooleanfalseEnable AI enrichment and analysis features
RESPONDENT_AI_MIN_ATTENTIONai.min_attentionstringlowEngine-wide noise floor (info/low/medium/high/critical); insights below it are not stored or notified unless an analysis sets output.min_attention
RESPONDENT_AI_ANALYSIS_DIRai.analysis_dirstring(none)Directory containing analysis definition YAML files; no code-backed default — empty unless set (the shipped respondent.yaml uses ./analysis.d)
RESPONDENT_AI_WORKERS_ENRICHMENTai.workers.enrichmentinteger2Concurrent AI enrichment workers
RESPONDENT_AI_WORKERS_ANALYSISai.workers.analysisinteger1Concurrent AI analysis workers

LLM Providers

RESPONDENT_LLM_PROVIDER string
Active LLM provider. Allowed values: openai, anthropic, gemini, xai, zai, ollama, lmstudio. Maps to config key llm.provider.

Per-provider variables

Each provider has its own set of configuration variables. Only the active provider’s variables need to be set.

OpenAI

VariableConfig KeyDescription
RESPONDENT_LLM_OPENAI_API_KEYllm.openai.api_keyOpenAI API key
RESPONDENT_LLM_OPENAI_MODELllm.openai.modelModel name (e.g., gpt-4o)
RESPONDENT_LLM_OPENAI_MAX_TOKENSllm.openai.max_tokensMax response tokens
RESPONDENT_LLM_OPENAI_BASE_URLllm.openai.base_urlCustom API base URL

Anthropic

VariableConfig KeyDescription
RESPONDENT_LLM_ANTHROPIC_API_KEYllm.anthropic.api_keyAnthropic API key
RESPONDENT_LLM_ANTHROPIC_MODELllm.anthropic.modelModel name (e.g., claude-sonnet-4-20250514)
RESPONDENT_LLM_ANTHROPIC_MAX_TOKENSllm.anthropic.max_tokensMax response tokens
RESPONDENT_LLM_ANTHROPIC_BASE_URLllm.anthropic.base_urlCustom API base URL

Gemini

VariableConfig KeyDescription
RESPONDENT_LLM_GEMINI_API_KEYllm.gemini.api_keyGoogle Gemini API key
RESPONDENT_LLM_GEMINI_MODELllm.gemini.modelModel name
RESPONDENT_LLM_GEMINI_BASE_URLllm.gemini.base_urlCustom API base URL

xAI

VariableConfig KeyDescription
RESPONDENT_LLM_XAI_API_KEYllm.xai.api_keyxAI API key
RESPONDENT_LLM_XAI_MODELllm.xai.modelModel name
RESPONDENT_LLM_XAI_MAX_TOKENSllm.xai.max_tokensMax response tokens
RESPONDENT_LLM_XAI_BASE_URLllm.xai.base_urlCustom API base URL

ZAI

VariableConfig KeyDescription
RESPONDENT_LLM_ZAI_API_KEYllm.zai.api_keyZAI (GLM) API key
RESPONDENT_LLM_ZAI_MODELllm.zai.modelModel name (e.g. glm-5.2)
RESPONDENT_LLM_ZAI_MAX_TOKENSllm.zai.max_tokensMax response tokens
RESPONDENT_LLM_ZAI_BASE_URLllm.zai.base_urlCustom API base URL
RESPONDENT_LLM_ZAI_TIMEOUTllm.zai.timeoutPer-request HTTP timeout (default 120s)
RESPONDENT_LLM_ZAI_ENABLE_THINKINGllm.zai.enable_thinkingEnable the GLM reasoning phase (default false)

Ollama

VariableConfig KeyDescription
RESPONDENT_LLM_OLLAMA_MODELllm.ollama.modelModel name
RESPONDENT_LLM_OLLAMA_BASE_URLllm.ollama.base_urlOllama server URL (required)

LM Studio

VariableConfig KeyDescription
RESPONDENT_LLM_LMSTUDIO_MODELllm.lmstudio.modelModel name
RESPONDENT_LLM_LMSTUDIO_MAX_TOKENSllm.lmstudio.max_tokensMax response tokens
RESPONDENT_LLM_LMSTUDIO_BASE_URLllm.lmstudio.base_urlLM Studio server URL (required)

Logging

VariableConfig KeyTypeDefaultDescription
RESPONDENT_LOGGING_LEVELlogging.levelstringinfoLog level: debug, info, warn, error
Log format is always console
The community binary always emits human-readable console output; there is no log-format setting. RESPONDENT_LOGGING_FORMAT is not honored.

Source Credentials

Source definitions use the ${VAR} pattern for credential injection. When the YAML loader encounters ${MY_API_KEY} in a source file, it resolves it from the environment variable RESPONDENT_MY_API_KEY.

This applies to:

  • URL paths: url: "https://api.example.com/data/${MY_KEY}/endpoint"
  • Auth env_var fields: env_var: "MY_API_TOKEN" resolves from RESPONDENT_MY_API_TOKEN
  • OAuth2 credentials: env_var: "MY_CLIENT_SECRET" resolves from RESPONDENT_MY_CLIENT_SECRET
# Source YAML
transport:
  url: "https://api.example.com/data"
  auth:
    type: bearer
    env_var: "NASA_FIRMS_MAP_KEY"
# Environment
export RESPONDENT_NASA_FIRMS_MAP_KEY="your-api-key-here"
Never hardcode secrets
Secrets are never stored in YAML source files. The env_var field stores only the variable name (without the RESPONDENT_ prefix). The actual value is resolved at runtime from the environment.
Docker Compose
In the Docker Compose deployment, set source credentials in a .env file or directly in the environment section of the feeder service. All variables must use the RESPONDENT_ prefix.
Edit this page on GitHub