Environment variable index
A consolidated catalogue of environment variables consumed by Delphi services. Each row carries a source badge (where the value comes from) and an optional scope badge.
env— set in.envfiles or compose; the canonical local override.SSM— AWS SSM Parameter Store; expanded into env at boot.Secrets Manager— AWS Secrets Manager; expanded into env or files at boot.Code default— value baked in code if nothing overrides it.TelWeb · Team/TelWeb · Admin/TelWeb · Platform— DB-backed setting changed via TelWeb UI.DB row—PlatformSettingor domain table (not exposed in TelWeb UI).Redis (runtime)— ephemeral runtime cache.
The standalone bot give-up variables below are proposed in platform PR #473 (internal implementation reference), which was open and draft when reviewed on 2026-09-25. They are Next-only and do not establish release or live-call acceptance.
Voice and SIP
| Name | Source | Scope | Default | Description |
|---|---|---|---|---|
JANUS_WS_PORT | env | all | 8188 (local) / 443 (prod) | Janus WebSocket port; required for WebRTC bridging. |
TELPHI_MEDIA_HOST | env | all | host.docker.internal / TelPhi private IP | TelSys → TelPhi media plane host. |
TELPHI_MEDIA_PORT | env | all | 12001 | TelSys → TelPhi media plane port. |
TELPHI_MEDIA_SCHEME | env | all | ws | Scheme for TelPhi media WebSocket. |
TELPHI_MEDIA_PATH | env | all | /media | Path for TelPhi media WebSocket. |
RTPENGINE_HOST | env | all | 10.30.0.10 (local) | RTPEngine control endpoint. |
RTPENGINE_NG_PORT | env | all | 22222 | RTPEngine ng control port. |
KAMAILIO_SIP_DOMAIN | SSM | prod | — | Public SIP domain Kamailio (https://www.kamailio.org/wikidocs/) serves. |
REFER_TARGET_HOST | env | all | — | Kamailio REFER_SBC_HOST (TelPro). Defaults to DOMAIN_TELPRO. Align with TelPhi transfer REFER configuration. |
COTURN_SHARED_SECRET | Secrets Manager | prod | — | Shared secret for TURN credentials. |
HEALTH_PROBE_ENABLED | env | telpro | false | Enable per-trunk SIP OPTIONS from the edge; health alarms do not change routing. |
HEALTH_PROBE_INTERVAL | env | telpro | 60 | Seconds between OPTIONS probe cycles. |
HEALTH_PROBE_TARGET_PORT | env | telpro | 5060 | SIP target port for the first allowed source-IP entry of each enabled trunk. Verify CIDR-derived targets against the carrier. The probe uses the 45-second SIP transaction timer; the legacy HEALTH_PROBE_TIMEOUT example is not applied. |
AMI_HOST | env | voice | 127.0.0.1 | Asterisk Manager Interface host for integrations that use AMI. Since 0.9.17-patch1, trunk health uses edge SIP OPTIONS instead. |
AMI_PORT | env | voice | 8038 | Asterisk Manager Interface port. TelSys listens on 8038 (`MYAMIPORT`). AMI clients must use the same port. The edge OPTIONS trunk monitor does not use AMI. Provisioned via `services/voice/vars.yaml`; the compose maps it to both TelSys (`MYAMIPORT`) and TelPhi. |
AMI_USER | env | voice | asterisk | AMI login user for integrations that use AMI. One value feeds both sides: TelSys (`AMIUSER`) and TelPhi (`AMI_USER`) via the voice compose. Mismatched values fail with "AMI login failed: Authentication failed" for AMI clients. |
AMI_SECRET | voice | telsys image default (override per environment) | AMI login secret, provisioned via Secrets Manager (`services/voice/vars.yaml`, sensitive). Must match on TelSys (`AMISECRET`) and TelPhi (`AMI_SECRET`); the compose maps one value to both. | |
SIP_TRUNK_HEALTH_INTERVAL_MS | env | voice | 30000 | How often the TelPhi monitor reads edge probe results from Redis, in milliseconds. Lower values detect trunk changes faster and read more Redis keys; the edge probes on its own HEALTH_PROBE_INTERVAL cycle. |
SIP_TRUNK_HEALTH_FAILURE_THRESHOLD | env | voice | 2 | Consecutive monitor evaluations of failed or missing edge probe results before an inbound SIP trunk is marked `unavailable`. Higher values reduce false alarms on transient probe timeouts. |
SIP_TRUNK_HEALTH_DEGRADED_RTT_MS | env | voice | 500 | Probe RTT in milliseconds above which a reachable inbound SIP trunk is marked `degraded`. See [SIP trunk health monitoring](/platform/observability/sip-trunk-health-monitoring). |
SIP_TRUNK_HEALTH_REDIS_TTL_MS | env | voice | 60000 | Freshness window for an edge probe result, in milliseconds. Older results are treated as `unavailable` (`no probe result from edge`); keep in sync with the edge `voiceai:trunk-probe:*` TTL (60 s). |
AUDIOPROC_ENABLED | SSM | voice | false | Start the AudioProc preprocessor used for denoising. Also controlled by the `audioPreprocessing` feature flag. See [Voice operations](/platform/operations/voice). |
AUDIOPROC_URL | env | voice | ws://127.0.0.1:8790 | WebSocket URL TelPhi uses to reach the AudioProc container when AUDIOPROC_ENABLED is true. |
TELAPI_SWAGGER_UI_ENABLED | env | api | true in development, false in production and staging | When false, TelAPI serves neither `/documentation` (Swagger UI) nor the OpenAPI JSON under it, and `GET /` reports `docs: null`. Customer-facing and staging API hosts keep this false and use the versioned [API reference](/api/reference) instead of a live Swagger UI. |
SIP_100REL_MODE | env | all | off | TelSys PJSIP 100rel mode: off (default) | peer_supported | yes | required — PRACK / reliable provisional responses toward TelPro. Synonyms accepted (e.g. no→off, on→yes). See Voice operations. |
VAIASTERISKCONSOLELOGFORMAT | env | all | json | TelSys/Asterisk console log format. Use json for structured logging and log-to-span parsing; default/plain text is mainly for ad-hoc troubleshooting. |
TELSYS_LOG_LEVEL | env | all | info | Pino-aligned TelSys/Asterisk log level: trace | debug | info | warn | error | fatal. SIP capture remains available independently. |
TELPRO_LOG_LEVEL | env | all | LOG_LEVEL | Pino-aligned TelPro/Kamailio log level. Replaces generated DEBUG_LEVEL overrides. |
RTPENGINE_LOG_LEVEL | env | all | LOG_LEVEL | Pino-aligned RTPEngine log level, mapped to RTPEngine syslog verbosity. Replaces RTP_LOG_LEVEL. |
WEBRTC_LOG_LEVEL | env | all | LOG_LEVEL | Pino-aligned Janus WebRTC log level, mapped to Janus verbosity. Replaces JANUS_*LOG_LEVEL overrides. |
SIP_CAPTURE_ENABLE_PJSIP_LOGGER | env | all | 1 | Enables detailed TelSys PJSIP SIP message logging for SIP ladder and log-to-span diagnostics. |
MAX_CALL_DURATION_SECONDS | env | voice | 7200 | Fallback max call duration (seconds) used when a flow does not set its own. TelPhi force-hangs-up any call older than this and classifies the hangup as max_call_duration. A per-flow sessionConfig.maxCallDurationSeconds value overrides this; the per-flow value is validated by FlowDefinitionSchema, not clamped against this env here. |
MAX_CALL_DURATION_WARNING_MESSAGE | env | voice | (empty) | Fallback warning text spoken ~10s before the max-duration hangup, used when a flow sets no warning of its own. Empty = silent hangup. A per-flow sessionConfig.maxDurationWarningMessage value takes precedence. |
BOT_NO_INPUT_GIVE_UP_TIMEOUT_MS | env | voice | 15000 | Fallback bot no-input give-up timeout (ms) used when a flow does not set its own. If the bot has not responded within this window, TelPhi transfers the call (when a transfer target is configured) or force-hangs-up, classifying the termination as bot_no_input_give_up. Unlike the failover watchdog, this fires even when gatewayProfile.failover.enabled is false. A per-flow sessionConfig.botNoInputGiveUpTimeoutMS value overrides this outright and is not clamped against this env value. Bounds are enforced differently per layer: this env var is rejected at boot outside 1000–120000, the update_bot_delay_config runtime command rejects out-of-range values, and the flow schema clamps an out-of-range per-flow value into 1000–120000 on parse. The timeout is read once at flow load and is not updated by the mid-call update_bot_delay_config event. Unreleased: proposed in platform PR #473, open and draft when reviewed on 2026-09-25. |
BOT_NO_INPUT_GIVE_UP_WARNING_MESSAGE | env | voice | (empty) | Fallback warning text spoken just before the bot no-input give-up terminal action (transfer or hangup), used when a flow sets no warning of its own. Empty = silent. A per-flow sessionConfig.botNoInputGiveUpWarningMessage value takes precedence. Text-to-speech only — there is no audio-file URL fallback for the give-up warning. |
Database and Redis
| Name | Source | Scope | Default | Description |
|---|---|---|---|---|
DATABASE_URL | Secrets Manager | all | — | Postgres connection string. Keep `ssl*` query params out of the URL; TLS policy comes from `DATABASE_SSL_MODE` and the CA file (see [Internal encryption](https://docs.delphi.ki-kombinat.com/platform/security/internal-encryption)). |
DATABASE_SSL_MODE | SSM | all | disable (local) | Client SSL policy: `disable` | `require` | `verify-ca` | `verify-full`. |
DATABASE_SSL_CA_BUNDLE_B64 | Secrets Manager | prod | — | Base64 PEM CA bundle for Postgres TLS verification; decoded to `./tls/database-ca.crt` and mounted at `/etc/ssl/database/ca.crt`. Use the CA that signs PgBouncer’s cert (or the RDS/Aurora global CA when connecting straight to AWS). |
DATABASE_SSL_CA_FILE | env | all | /etc/ssl/database/ca.crt | In-container path to the decoded Postgres CA bundle. |
MIGRATION_DATABASE_URL | Secrets Manager | prod | — | Privileged direct Postgres URL for the Ops db-migrate one-shot only (DDL / migrations / delphi-setup). Separate from runtime DATABASE_URL. See Database credentials. |
DATABASE_SECRET_ARN | env | prod | — | Optional Secrets Manager ARN for runtime DB credential refresh on long-running Node services (day-2 rotation of the CRUD user, not the migration user). See Database credentials. |
DATABASE_SECRET_REGION | env | prod | AWS_REGION | AWS region for DATABASE_SECRET_ARN when it differs from the deployment region. |
REDIS_URL | Secrets Manager | all | — | Redis connection string; rediss:// when TLS is enabled. |
REDIS_TLS_CA_BUNDLE_B64 | Secrets Manager | prod | — | Base64 PEM CA bundle for Redis TLS; decoded to `./tls/redis-ca.crt` and mounted at `/etc/ssl/redis/ca.crt`. Often empty when relying on the system trust store (e.g. ElastiCache). |
REDIS_TLS_CA_FILE | env | all | /etc/ssl/redis/ca.crt | In-container path to the decoded Redis CA bundle. |
AWS and infrastructure
| Name | Source | Scope | Default | Description |
|---|---|---|---|---|
AWS_REGION | env | all | eu-central-1 | AWS region for SSM / Secrets Manager / S3 calls. |
ENVIRONMENT | env | all | — | Deployment identifier from bootstrap. Used for instance labels and default team Secrets Manager paths (`{ENVIRONMENT}/teams/{slug}/secrets`). Must reach TelWeb and TelAPI containers. |
NAMESPACE | env | all | — | Bootstrap SSM/Secrets Manager namespace for the deployment (e.g. `voiceai/staging` or a customer env id). Fallback for platform secret paths when `PLATFORM_SECRETS_NAMESPACE` is unset. Must reach TelWeb and TelAPI. |
PLATFORM_SECRETS_NAMESPACE | all | NAMESPACE, else voiceai/local | Preferred prefix for platform Secrets Manager collections (`{namespace}/platform/secrets`, `{namespace}/platform/trunk-tls`). Seeded per web/api service; required when multiple deployments share one AWS account. | |
NEXT_PUBLIC_ENVIRONMENT | env | all | — | Legacy build-time client hint. Team secret path suggestions now use runtime `/api/config` (`deploymentEnvironment` / `platformSecretsNamespace`) instead of this value. |
HTTP_PROXY | env | prod | — | Forward proxy for outbound HTTP, including AWS and LLM provider paths. |
HTTPS_PROXY | env | prod | — | Forward proxy for outbound HTTPS. |
NO_PROXY | env | prod | — | Hosts to bypass the proxy. |
EGRESS_TLS_REJECT_UNAUTHORIZED | env | all | true | Whether outbound HTTPS/WSS egress (STT/TTS/LLM providers) verifies remote TLS certificates. Applies to both proxied and direct (`NO_PROXY`) connections. Set `false` only in dev/staging when flows target mock providers with self-signed certificates; relaxed direct requests are logged as `fetch_direct_tls_relaxed`. |
SSM_PARAM_PREFIX | env | all | /delphi/<env>/ | Prefix under which Delphi SSM params live. |
S3_CONFIG_BUCKET | env | prod | — | S3 bucket where the deployment config bundles live; consumed by fetch-config on every host. Bundles include `.config-manifest.json` for checksum verification. |
CONFIG_BASE_PATH | env | prod | /opt/services | Optional base path used by fetch-config when promoting verified config bundles on a host. |
BASTION_HOST | env | ops | — | Bastion host used by Tasker service-refresh jobs to reach API, Voice, and TelPro instances. |
BASTION_SSH_KEY_B64 | Secrets Manager | ops | — | Base64 private SSH key used by Tasker service-refresh jobs when the key is not already present on disk. |
BASTION_SSH_KEY_PATH | env | ops | — | Optional filesystem path to the SSH key used by Tasker service-refresh jobs. |
EDGE_TLS_FULLCHAIN_B64 | Secrets Manager | api,telpro | — | Base64 PEM full-chain certificate for public edge TLS listeners on API and TelPro. |
EDGE_TLS_PRIVKEY_B64 | Secrets Manager | api,telpro | — | Base64 PEM private key matching EDGE_TLS_FULLCHAIN_B64 for public edge TLS listeners. |
EDGE_TLS_CA_BUNDLE_B64 | Secrets Manager | api,telpro | — | Optional CA bundle for edge TLS verification chains and trust material. |
EDGE_TLS_VERSION | SSM | api,telpro | — | Monotonic edge TLS material version. Service refresh uses it to detect and roll certificate changes. |
EDGE_TLS_RENEWAL_THRESHOLD_DAYS | env | ops | 30 | Tasker renewal threshold; certificates expiring within this many days are renewed by EDGE_TLS_RENEW. |
EDGE_TLS_CERTBOT_STAGING | env | ops | false | Use the ACME staging endpoint for edge TLS renewal tests. |
API_TLS_ENABLED | SSM | api | false | Enables the API public edge TLS listener once edge certificate secrets are available. |
CERTBOT_EMAIL | env | ops | — | ACME account email used by Tasker edge TLS renewal jobs. |
Observability
| Name | Source | Scope | Default | Description |
|---|---|---|---|---|
OTEL_EXPORTER_OTLP_ENDPOINT | env | all | 10.0.1.10:4317 (prod) | OTLP collector endpoint. |
OTEL_SERVICE_NAME | env | all | — | Service identifier in spans / logs. |
OTEL_ENABLED | env | web | true | Enables TelWeb OpenTelemetry instrumentation in generated Web service config. |
SIGNOZ_URL | env | all | https://signoz.<env>.delphi/ | URL TelWeb queries for the Debug tab. |
SIGNOZ_API_TOKEN | Secrets Manager | prod | — | API token for SigNoz Logs / Traces queries. |
SIGNOZ_API_KEY | Secrets Manager | all | — | Editor or Admin SigNoz service-account key used by apply-alert-rules.sh on the SigNoz host (header SIGNOZ-API-KEY). Not the same as SIGNOZ_API_TOKEN (TelWeb Debug queries). See SigNoz operations → Upgrade. |
SIGNOZ_VERSION | SSM | all | 0.139.0 | signoz/signoz image tag (v prefix added). /opt/deployment/.env wins over SSM. Bump with ./update.sh --signoz-version on the SigNoz host. |
SIGNOZ_OTLP_ENDPOINT | env | dev | — | Optional OTLP endpoint override for local or tunneled SigNoz collection. |
LOG_TO_SPAN_OTLP_ENDPOINT | env | all | localhost:4318 | OTLP HTTP endpoint used by the TelPro log-to-span sidecar to send SIP ladder spans through the local collector. |
LOG_TO_SPAN_EXPORT_LOGS | env | all | false | When true, exports parsed SIP capture logs as OTLP logs in addition to spans. Keep false unless the collector/parser path is sized for the volume. |
ENABLE_PII_LOGGING | env | all | false | When not true, enables PII redaction: OTel collector transform/pii (and transform/pii_traces on Voice) scrubs logs/traces before SigNoz export; TelPhi redacts transcript + caller number on DB persist; TelAPI redacts browser-action transcripts. SIP ladder logs (event=sip_message) stay unmasked. Does not control transcript retention — full text is still written to S3 when app Recording is on. Production: keep false except short support sessions. Staging/dev: may set true for debugging. See Monitoring in SigNoz — PII redaction and Conversations — Recording and transcript retention. |
MSISDN_UNMASKED_DIGITS | env | all | 4 | Trailing phone-number digits kept when masking MSISDNs in collector logs/traces, TelPhi DB writes, and callerNumber attributes (for example ***3456). Must match on voiceai-telphi, telapi, and voiceai-otel-collector on each host. |
LOG_INTEGRATION_PAYLOADS | env | all | false | When true, application transaction records (records carrying logpoint) also log their request/response payload and headers on successful legs. Failed legs always log them, whatever this value says. Set per service, so it can be raised for one service and one short support window. A volume control, not a privacy control: redaction still applies (transcripts and TTS bodies stay [REDACTED] unless ENABLE_PII_LOGGING is true), and the collector replaces every payload value with [REDACTED] while ENABLE_PII_LOGGING is not true. Expect higher log volume and cost. |
Service log levels
All values use the Pino labels trace, debug, info, warn, error, and fatal. Service-specific variables override the global LOG_LEVEL for that service.
| Name | Source | Scope | Default | Description |
|---|---|---|---|---|
LOG_LEVEL | env | all | info | Global fallback log level when a service-specific override is unset. |
TELPHI_LOG_LEVEL | env | voice | LOG_LEVEL | TelPhi conversation engine log level. |
TELAPI_LOG_LEVEL | env | api | LOG_LEVEL | TelAPI HTTP/WebSocket service log level. |
TELWEB_LOG_LEVEL | env | web | LOG_LEVEL | TelWeb server-side log level. |
TASKER_LOG_LEVEL | env | ops | LOG_LEVEL | Tasker worker and scheduler log level. |
SCALER_LOG_LEVEL | env | ops | LOG_LEVEL | Scaler decision-loop log level. |
AUDIOPROC_LOG_LEVEL | env | voice | LOG_LEVEL | AudioProc log level. Pino labels are mapped to Python logging levels. |
Feature flags
| Name | Source | Scope | Default | Description |
|---|---|---|---|---|
FEATURE_AI_FLOW_BUILDER | env | all | true | AI Flow Builder UI + runtime. |
FEATURE_QA_SCORING | env | all | true | QA scoring jobs and tab. |
FEATURE_AUDIO_PREPROCESSING | env | all | true | AudioProc container in the voice stack. |
FEATURE_TTS_MEDIA_CACHE | env | all | true | TTS cache lookups and writes. |
FEATURE_REGISTRATION | env | all | false | Public registration flow. |
FEATURE_SUBSCRIPTIONS | env | all | false | Subscription / billing guards. |
FEATURE_SMS | env | all | false | SMS dispatch through seven.io. |
FEATURE_WEBRTC | env | all | true | Janus + TURN WebRTC stack. When false, browser SDK session/runtime/endpoint TelAPI surfaces are not registered. |
FEATURE_API_ACCESS | env | all | true | External REST/SDK access and related TelWeb API surfaces. When false, deployments keep health/webhooks but hide API keys, API Server Config, and SDK session/runtime routes. |
FEATURE_ADDITIONAL_PROVIDERS | env | all | true | Additional provider catalogue entries beyond the core set, including Gemini Live, Inworld, Grok, Pythia. |
FEATURE_SUBSCRIPTION_MANAGEMENT | env | all | false | Self-service subscription UI, custom deals, and related billing administration surfaces. |
FEATURE_ALGOLIA_ASK_AI | env | all | false | Optional TelWeb Ask AI docs assistant. |
SMS delivery
| Name | Source | Scope | Default | Description |
|---|---|---|---|---|
SMS_API_KEY | Secrets Manager | ops | — | Single provider credential, scoped to the Tasker SMS worker. Required only when FEATURE_SMS is enabled. |
TelWeb public UI
| Name | Source | Scope | Default | Description |
|---|---|---|---|---|
LEGAL_BANNER_HTML | env | all | — | Trusted operator-provided HTML shown as a legal notice on unauthenticated/public TelWeb pages. Takes precedence over LEGAL_BANNER_TEXT. |
LEGAL_BANNER_TEXT | env | all | — | Plain-text legal notice shown on unauthenticated/public TelWeb pages when LEGAL_BANNER_HTML is unset. |
Sessions and passwords
| Name | Source | Scope | Default | Description |
|---|---|---|---|---|
NEXTAUTH_URL | env | all | — | Public TelWeb origin used for sign-in cookies and for password-expiry / usage-notification links. Set the same value on TelWeb, Tasker, TelAPI, and TelPhi. |
SESSION_TIMEOUT | env | all | 1800000 | Main session timeout used for server cookies and client idle logout. |
MAX_CONCURRENT_SESSIONS | env | all | 2 in prod; unlimited outside prod | Maximum active sessions allowed for one user. Positive integers set a cap; 0 or negative disables the cap. Verify the Web bundle exposes this var before overriding. |
SESSION_HEARTBEAT_TTL | env | all | SESSION_TIMEOUT | TTL in milliseconds for session heartbeat records used by concurrent-session enforcement. Must stay between 60000 and SESSION_TIMEOUT. |
LOGIN_MAX_ATTEMPTS_CREDENTIALS | env | all | 5 | Failed credentials-login attempts before an account is locked. Set to 3 to enforce a three-attempt policy; verify the Web bundle exposes this var before overriding. |
LOGIN_LOCKOUT_MINUTES_CREDENTIALS | env | all | 30 | Credentials-login counting window and displayed lockout duration. Locked accounts stay locked until reset-password unlocks them. |
LOGIN_MAX_ATTEMPTS_AZURE_AD | env | all | 10 | Failed Microsoft Entra ID attempts before an account is locked when that provider is enabled. |
LOGIN_LOCKOUT_MINUTES_AZURE_AD | env | all | 60 | Microsoft Entra ID lockout window reported to users and audit events. |
PASSWORD_MAX_AGE_DAYS | env | all | 90 | Password age after which users must change their password. Set on TelWeb and Tasker (must match). |
PASSWORD_WARNING_DAYS | env | all | 10 | Days before password expiry when users see warnings and Tasker sends reminder emails. Set on TelWeb and Tasker (must match). |
PLATFORM_ROLE_EMAIL_CODE_SECRET | Secrets Manager | web | — | Dedicated HMAC secret for Super Admin / Super Viewer role-change email codes. Required on TelWeb and Tasker in production (at least 32 characters). Local non-production processes may fall back to NEXTAUTH_SECRET. |
PLATFORM_ROLE_EMAIL_TASKER_READY | env | web | false | Set true on TelWeb only after every Tasker replica can send PLATFORM_ROLE_CHANGE_CODE_EMAIL. Leave false during a rolling Tasker upgrade or role-change emails 412. |
API credential jail
| Name | Source | Scope | Default | Description |
|---|---|---|---|---|
API_CREDENTIAL_JAIL_ENABLED | env | api | true | When true, TelAPI temporarily blocks a client IP after repeated credential failures. See API server config → API credential retry jail for installation steps. |
API_CREDENTIAL_MAX_RETRIES | env | api | 5 | Failure count within API_CREDENTIAL_RETRY_WINDOW_MS that triggers an IP jail (the fifth failure by default). |
API_CREDENTIAL_RETRY_WINDOW_MS | env | api | 300000 | Window (ms) from the first credential failure; later failures do not extend it (default 5 minutes). |
API_CREDENTIAL_JAIL_MS | env | api | 300000 | How long a jailed client IP stays blocked (default 5 minutes). API_CREDENTIAL_JAIL_DURATION_MS is not supported. |
Microsoft Entra SSO
See Microsoft Entra SSO.
| Name | Source | Scope | Default | Description |
|---|---|---|---|---|
AUTH_WITH_MICROSOFT | env | web | false | When true, TelWeb registers the Microsoft Entra (azure-ad) auth provider. |
AUTH_MICROSOFT_ENTRA_ID_ID | env | web | — | Entra application (client) ID for the Delphi app registration. |
AUTH_MICROSOFT_ENTRA_ID_SECRET | Secrets Manager | web | — | Entra client secret value for the Delphi app registration. |
AUTH_MICROSOFT_ENTRA_ID_ISSUER | env | web | — | OIDC issuer URL, typically https://login.microsoftonline.com/<directory-tenant-id>/v2.0 |
AUTH_WITH_CREDENTIALS | env | web | true | When false, password login is omitted server-side and from the login page. |
Scaling and background jobs
| Name | Source | Scope | Default | Description |
|---|---|---|---|---|
SCALING_EVALUATION_INTERVAL_MS | env | all | 30000 | How often the Scaler leader evaluates API and Voice scaling rules. |
SCALING_DRAIN_TIMEOUT_MS | env | all | 3600000 | Maximum time in milliseconds a Voice instance may drain active calls during scale-down. |
SCALING_MAX_PARALLEL_BELOW_MIN_SCALE_UPS | env | all | 8 | Maximum replacement instances the Scaler may provision in one evaluation when a group is below minInstances. |
AUDIT_LOG_RETENTION_DAYS | env | all | 180 | Days of AuditLog rows retained by the Tasker audit-log cleanup cron. Must be a positive integer. |
STALE_SERVER_HEARTBEAT_SECONDS | env | all | 3600 | How long a Voice/API host must stay silent after it has already heartbeated before Tasker STALE_SERVER_CLEANUP deletes its inventory row. Minimum 300. Scale-up placeholders are never deleted by this job. |
Billing
| Name | Source | Scope | Default | Description |
|---|---|---|---|---|
STRIPE_SECRET_KEY | Secrets Manager | prod | — | Stripe API key for checkout / subscriptions. |
STRIPE_WEBHOOK_SECRET | Secrets Manager | prod | — | Verifies inbound Stripe webhook signatures. |
BILLING_DEFAULT_PLAN | TelWeb · Platform | all | — | Default plan assigned on registration; mutable in TelWeb. |
Removed or deprecated
v0.9.17
| Variable | Removed from | Replacement |
|---|---|---|
VONAGE_SMS_FROM_NAME | Ops / Tasker | Flow from (optional) or the platform default sender |
VONAGE_SMS_API_KEY | Ops / Tasker | SMS_API_KEY |
VONAGE_SMS_API_SECRET | Ops / Tasker | unused — seven.io uses a single API key |
See SMS delivery.
v0.9.14-patch3
| Variable | Replaced in generated configs | Replacement |
|---|---|---|
DEBUG_LEVEL | TelPro / Kamailio | TELPRO_LOG_LEVEL |
RTP_LOG_LEVEL | RTPEngine | RTPENGINE_LOG_LEVEL |
JANUS_LOG_LEVEL | Janus WebRTC | WEBRTC_LOG_LEVEL |
JANUS_DEBUG_LEVEL | Janus WebRTC | WEBRTC_LOG_LEVEL |
JANUS_JSON_LOG_LEVEL | Janus WebRTC | WEBRTC_LOG_LEVEL |
The lower-level variables may still appear in container internals, but generated service configuration now takes the Pino-aligned service variables above.
v0.9.13-patch3
| Variable | Removed from | Replacement |
|---|---|---|
RATE_LIMIT_MAX | TelAPI | Admin Settings → API Server Config → API Rate Limit Max |
RATE_LIMIT_WINDOW_MS | TelAPI | Admin Settings → API Server Config → API Rate Limit Window (ms) |
TelAPI also dropped the rateLimitPerApiKey database flag — limits are always per client IP by route tier.