Environment Variables Reference
This reference documents all environment variables available for configuring Simba Intelligence. Variables are grouped by function and include defaults and descriptions.
📝 Note: LLM provider credentials are not configured via environment variables. They are managed per-tenant through the web interface at /llm-configuration. See the LLM Provider Configuration guide.
Application Mode
APP_MODE Values
⚠️ Important:fullmode starts a beat scheduler, so exactly one container may run it. Do not scale afull-mode deployment.
Full Mode Options
These apply only whenAPP_MODE=full.
Core Infrastructure
📝 Note:COMPOSER_HOSTandCOMPOSER_PUBLIC_URLare distinct and both required. The first is the in-cluster service address; the second is what a user’s browser can reach. Simba Intelligence is always served directly below Composer’s context path (<context-path>/intelligence) — that location is derived fromCOMPOSER_PUBLIC_URLand is not configurable, because Composer scopes its session cookie to its own context path.
Database Connection via Components
WhenMAIN_DB_URL is not set, the connection URL is constructed from these variables instead. This is how the Helm chart wires the database, since it handles URL-encoding of passwords containing special characters (@, :, /).
⚠️ Important: If neitherMAIN_DB_URLnor the full set ofPOSTGRES_USER,POSTGRES_PASSWORD,POSTGRES_HOST, andPOSTGRES_DATABASEis provided, startup fails immediately.
Web Server (Gunicorn)
These variables tune the Gunicorn web server that runs the main application (APP_MODE=web).
💡 Pro Tip: For memory-constrained environments, reduceGUNICORN_WORKERSandGUNICORN_MAX_REQUESTS. For high-throughput deployments, increase workers and threads proportionally to available CPU cores.
MCP Server
These variables configure the MCP server container (APP_MODE=mcp).
See the MCP Server Guide for full deployment details.
Database Migrations
⚠️ Important: In production Kubernetes deployments, it is recommended to setDISABLE_DB_MIGRATIONS=trueon the web container and run migrations via the dedicatedsimba-intelligence-db-migrate-jobHelm job instead. This prevents migration race conditions when running multiple web replicas.
CORS Configuration
Cross-Origin Resource Sharing settings for the web application.📝 Note: CORS is disabled by default, which is the most secure configuration for same-origin deployments. Only enable CORS if your frontend is hosted on a different domain than the Simba Intelligence API.
Content Security Policy (CSP)
These variables control the Content-Security-Policy response headers.⚠️ Important: If you embed Simba Intelligence in an iframe or load external resources (e.g., custom fonts from a CDN), you must adjust the relevant CSP directives. Overly restrictive CSP values can break frontend functionality.
Logging
Example
LOG_LEVELS configuration:
Celery (Background Tasks)
📝 Note: REDIS_URL (listed under Core Infrastructure) is also used as the Celery broker and result backend.
Data Retention
These control how long Simba Intelligence keeps historical records. Both are read by the worker process from inside the purge task body, so they only need to be set on worker pods — beat merely publishes the job on its schedule and never reads them.📝 Note: These are minimums, not exact expiries. The purge jobs run once a day (3:00 AM server time), so a record can survive up to roughly 24 hours past its retention deadline — until the next purge run. See Scheduled Tasks.In the Helm chart these map to
simbaIntelligence.celery.worker.purgeTaskResultsDays and simbaIntelligence.celery.worker.questionRecordRetentionDays. Both default to "", which omits the environment variable entirely and leaves the application defaults above in effect — only set a number to override.
Composer Integration
⚠️ Important: In Helm deployments you do not set the admin credentials directly — the chart injects both from the same admin-credentials Secret that Composer itself uses, driven byzoomdataWeb.adminPassword(orzoomdataWeb.existingSecret). Composer leaves that password unset by default, so the chart fails the install or upgrade whensimbaIntelligence.enabledis true and no admin password is configured. Without it, Simba Intelligence pods start healthy but cannot call Composer’s API.
Caching
The field-value cache stores the distinct values seen for each data-source attribute field (e.g., the list of values in a “Region” or “Status” column), so the Query Agent can match user text against real values without re-fetching them from Composer on every query.📝 Note:FIELD_VALUE_CACHE_BUDGET_MBsizes only this one cache — it is not a limit on Redis’s total memory usage. Redis also holds the semantic/question-record cache, suggestions cache, and Celery broker data, none of which count against this budget. It is set viaextraEnvson both thewebandworkerdeployments (seeAPP_MODEabove) in the Helm chart’svalues.yaml. Keep the value identical across both — the cache is shared/tenant-scoped in Redis, not tuned per pod type.