Environment Variables and Governance
The 7 Kept Legacy Exceptions
Exactly 7 widely deployed operational environment variables are explicitly exempted from mechanical CSI_<SECTION>_<KEY> renaming (ConfigEntry.env_override = Some(...)). These 7 variables retain their concise top level CSI_* names across all repositories, Docker Compose overlays, ECS task definitions, and Helm charts:
| Kept Exception Variable | Backing sys_config Key | Governance Bucket | Type | Default | Purpose |
|---|---|---|---|---|---|
CSI_CONFIG_PATH | Bootstrap Locator | bootstrap | string | "/etc/caber/config.json" | Absolute filesystem path or URI to the active JSON configuration file. |
CSI_DISABLE_SSL_VERIFY | GLOBAL.tlsVerify (inverted) | config-selection | boolean | "false" | When set to "1" or "true", disables outbound TLS certificate verification (GLOBAL.tlsVerify = false) for local self signed testing. |
CSI_DOC_PARSER_PORT | DocParser.port | config-selection | integer | "8084" | TCP listen port for the Document Parser HTTP/gRPC server. |
CSI_DOC_PARSER_WORKERS | DocParser.workers | config-selection | integer | "4" | Worker process or thread count for the Document Parser service. |
CSI_LOG_FILE | GLOBAL.logFile | bootstrap | string | "" | File path for structured JSON or text log output (empty writes to stdout/stderr). |
CSI_LOG_LEVEL | GLOBAL.logLevel | bootstrap | string | "INFO" | Minimum log severity filter ("TRACE", "DEBUG", "INFO", "WARN", "ERROR"). |
CSI_NO_RESTART | ENV_Manager.noRestart | bootstrap | boolean | "false" | Prevents supervisor loops and container entrypoints from automatically restarting exited worker processes during debugging. |
Complete Environment_Variables Catalog
The table below lists the primary bootstrap, credential-source, and high traffic config-selection environment variables across PyCaber and its companion services. Any sys_config key not listed individually below uses its mechanical CSI_<SECTION_UPPER_SNAKE>_<KEY_UPPER_SNAKE> name.
| Environment Variable | Bucket | Backing json_config Key | Sensitivity | Description |
|---|---|---|---|---|
CSI_CONFIG_PATH | bootstrap | None (Kept Exception) | none | Path to the active JSON configuration file. |
CSI_CONFIG_SIGNING_PUBKEY | bootstrap | None | internal | Hex or base64 encoded Ed25519 public key used by ConfigSource.RemoteSigned to verify control plane configuration envelopes. |
CSI_DISABLE_SSL_VERIFY | config-selection | GLOBAL.tlsVerify | none | Kept exception that disables outbound TLS certificate verification when true. |
CSI_DOC_PARSER_PORT | config-selection | DocParser.port | none | Kept exception setting the Document Parser listen port. |
CSI_DOC_PARSER_WORKERS | config-selection | DocParser.workers | none | Kept exception setting the Document Parser worker count. |
CSI_LOG_FILE | bootstrap | GLOBAL.logFile | none | Kept exception specifying the log output file path. |
CSI_LOG_LEVEL | bootstrap | GLOBAL.logLevel | none | Kept exception specifying the process log level. |
CSI_NO_RESTART | bootstrap | ENV_Manager.noRestart | none | Kept exception disabling automatic process restart on exit. |
CSI_AWS_REGION | config-selection | AWS.region | none | Overrides the AWS region for S3 and KMS operations. |
CSI_AWS_S3_MAX_RETRIES | config-selection | AWS.s3MaxRetries | none | Overrides maximum S3 client retry attempts. |
CSI_GLOBAL_ACCOUNT_ID | config-selection | GLOBAL.accountId | internal | Overrides the active Caber customer account identifier. |
CSI_GLOBAL_CORI_ID | config-selection | GLOBAL.coriId | internal | Overrides the canonical CORI prefix. |
CSI_GLOBAL_CSI_BUCKET | config-selection | GLOBAL.csiBucket | none | Overrides the default shared storage bucket name. |
CSI_GLOBAL_DEPLOYMENT_MODE | config-selection | GLOBAL.deploymentMode | none | Selects deployment topology ("docker-compose", "ecs-ec2", "ecs-fargate", "eks", "standalone"). |
CSI_GLOBAL_LOCAL_PREFIX | config-selection | GLOBAL["localPrefix"] | none | Base filesystem path prefix used by get_global_output_directory(). |
CSI_GLOBAL_LOCAL_STORAGE | config-selection | GLOBAL["localStorage"] | none | Enables local filesystem storage mode instead of remote S3 or MinIO. |
CSI_GLOBAL_SERVICE_API_KEY | credential-source | GLOBAL.serviceApiKey | secret | Shared secret key for authenticating internal service to service requests. |
CSI_GLOBAL_SDK_AUTO_APPROVE | config-selection | GLOBAL.sdk.autoApprove | none | Controls automatic approval of newly registered pycaber.auto SDK instances. |
CSI_GLOBAL_SDK_INSTANCE_EXPIRY_SECS | config-selection | GLOBAL.sdk.instanceExpirySecs | none | Heartbeat expiration window in seconds for active SDK instances. |
CSI_GLOBAL_SDK_EXPIRED_RETENTION_HOURS | config-selection | GLOBAL.sdk.expiredRetentionHours | none | Retention window in hours before expired SDK instance records are purged. |
CSI_GLOBAL_SDK_SEED_API_KEY | credential-source | GLOBAL.sdk.seedApiKey | secret | Bootstrap API key used by pycaber.auto instances during initial registration. |
CSI_GLOBAL_SDK_REQUIRE_API_KEY | config-selection | GLOBAL.sdk.requireApiKey | none | Enforces API key authentication on all inbound SDK telemetry and policy calls. |
CSI_GLOBAL_SDK_NOPATCH_MODULES | config-selection | GLOBAL.sdk.noPatchModules | none | Comma separated list of Python modules skipped by pycaber.auto wrapt.when_imported hooks. |
CSI_GLOBAL_SDK_AGENT_FRAMEWORK_CREWAI | config-selection | GLOBAL.sdk.agentFramework.crewai | none | Prefix skip list for crewai in process adapter instrumentation. |
CSI_GLOBAL_SDK_AGENT_FRAMEWORK_LANGCHAIN | config-selection | GLOBAL.sdk.agentFramework.langchain | none | Prefix skip list for langchain in process adapter instrumentation. |
CSI_GLOBAL_SDK_AGENT_FRAMEWORK_LANGGRAPH | config-selection | GLOBAL.sdk.agentFramework.langgraph | none | Prefix skip list for langgraph in process adapter instrumentation. |
CSI_GLOBAL_SDK_AGENT_FRAMEWORK_LLAMAINDEX | config-selection | GLOBAL.sdk.agentFramework.llamaindex | none | Prefix skip list for llamaindex in process adapter instrumentation. |
CSI_GLOBAL_SDK_AGENT_FRAMEWORK_AUTOGEN | config-selection | GLOBAL.sdk.agentFramework.autogen | none | Prefix skip list for autogen in process adapter instrumentation. |
CSI_DOC_PARSER_NER_ENGINE | config-selection | DocParser.nerEngine | none | Selects the active NER engine ("gliner2" default). |
CSI_DOC_PARSER_GLINER_ENDPOINT | config-selection | DocParser.glinerEndpoint | none | Endpoint URL for the host GPU gliner2 model server (http://127.0.0.1:8765). |
CSI_DOC_PARSER_DOCLING_ENDPOINT | config-selection | DocParser.doclingEndpoint | none | Endpoint URL for the host GPU docling_serve_wrapper.py server (http://127.0.0.1:8766). |
CSI_DOC_PARSER_FORMAT_ROUTER_FALLBACK_GATE_MIN_TEXT_CHARS | config-selection | DocParser.formatRouter.fallbackGate.minTextChars | none | Minimum extracted text character floor (200) before triggering a docling fallback retry. |
CSI_DOC_PARSER_FORMAT_ROUTER_FALLBACK_GATE_MIN_INPUT_BYTES | config-selection | DocParser.formatRouter.fallbackGate.minInputBytes | none | Minimum raw input size in bytes (10240) at which the sparse extraction fallback gate activates. |
CSI_LINK_DATA_SEPARATE_CLUSTER_GROUPS | config-selection | Link_Data.separateClusterGroups | none | Isolates fresh vs stale similarity cluster group evaluations during incremental graph linking. |