Required
Authentication
SMTP
Required whenAUTH_MODE is otp or password+otp. Skip entirely for password mode (airgapped deployments).
Application
Rate Limiting
Function Execution
Optional Features
Both default on. Turning one off removes the capability — affected endpoints reject explicitly rather than half-working.Usage Metering (Optional)
Default off. When enabled, every operation (function execution, code execution, query, agent invocation, file upload, other tool calls) increments a live counter; the scheduler snapshots it durably and pushes the cumulative period-to-date total to an external collector. Pure emission — nothing is enforced on the instance, no limits are pulled down, and an unreachable collector or Redis blip never affects platform behavior (the next heartbeat self-heals). Intended for managed/multi-instance operators.
Meter integrity: sandbox and shared executor containers/pods receive no Redis/database credentials, so code they run cannot alter the count.
TRUSTED_EXECUTOR=inprocess breaks that guarantee (client code runs inside a credential-bearing process) — enabling metering in that mode logs a warning. Metered instances should use docker_shared (Docker) or k8s_shared (Kubernetes), or disabled if shared-pool functions aren’t needed.
Executors
How Sinas runs user code.SANDBOX_EXECUTOR handles untrusted code
(untrusted functions and agent code execution) and must isolate every
execution; TRUSTED_EXECUTOR handles admin-approved functions
(shared_pool=true).
On Kubernetes,
SANDBOX_EXECUTOR=k8s_pod with TRUSTED_EXECUTOR=k8s_shared
is the Helm chart’s default: no process needs a Docker socket, and trusted
code runs in warm pods that carry no platform credentials (dispatch latency
is an exec round-trip, not a pod cold-start). inprocess remains the
smallest-footprint option, but it runs trusted code with the worker’s own
environment and credentials — only enable shared_pool on functions you’d
trust with them, and don’t combine it with usage metering.
Kubernetes executor (SANDBOX_EXECUTOR=k8s_pod)
Requires running in-cluster with a ServiceAccount that can create/get/
list/delete pods and use pods/exec in the sandbox namespace (the Helm
chart provisions this).
Sandbox Containers
Used bySANDBOX_EXECUTOR=docker_pool (the warm pool).
Agent Processing
Tool Results
Scaling
Resource Limits (Docker)
Database
ClickHouse (Optional)
Declarative Config
The simplest useful setup requires the required variables plus a configured LLM provider. Everything else (functions, skills, state, etc.) is optional and can be added incrementally.