Skip to content

Environment variables

Every KYMA_* variable read by the kyma engine (kyma-bin), the local CLI engine (kyma mcp / kyma serve), or the node daemon (kyma worker run). Defaults are the values the binary falls back to when the variable is absent. Areas group related flags so a deploy config stays coherent.

Side legend: S = server / engine only; C = CLI / local engine / node daemon; SC = both.

Catalog

NameSideDefaultPurpose
KYMA_CATALOG_URLSCpostgres://kyma:kyma_dev@localhost:5433/kymaPostgres connection URL for the catalog. Used by kyma-bin and admin subcommands.
KYMA_PG_MAX_CONNSS16Catalog connection-pool size. Raise for many concurrent query/ingest nodes against one catalog.
KYMA_PG_ACQUIRE_TIMEOUT_SECSS10How long a request waits for a free pool connection before erroring.

Roles and scale-out

Knobs for running more than one engine pod against a catalog. By default a node is all_in_one (single-writer); see Deploy with Helm → role split.

NameSideDefaultPurpose
KYMA_ROLESall_in_oneWhich components this node runs. all_in_one (or unset/unknown) = everything; edge/query/ingest = stateless HTTP only (no committer, no background jobs); committer = the commit loop only; worker/compaction = background jobs only.
KYMA_INGEST_MODESsyncSet to staged to stage writes to object storage and ack immediately, leaving the commit to the (possibly separate) committer node. Required for the role split to offload commits.
KYMA_WRITE_FORMATStlmSegment format for newly written extents: tlm (Arrow IPC) or parquet (ZSTD + encodings + blooms). Reads dispatch per-extent, so old extents stay readable after a flip; compaction migrates them.

HTTP server

NameSideDefaultPurpose
KYMA_HTTP_ADDRS0.0.0.0:8080HTTP listen address. Serves query, ingest, agent, etc.
KYMA_LOCAL_HTTP_ADDRC127.0.0.1:7777Listen address for kyma serve (local single-binary).
KYMA_SCHEMA_CACHE_TTL_SECSS5TTL for the GET /v1/catalog/schema server-side cache.
KYMA_CORS_ALLOWED_ORIGINSSpermissive (dev)Comma-separated allowed origins for CORS. Unset → permissive (dev only); always set in production.

Query limits & admission control

Per-query resource ceilings and node-level backpressure. The budget caps are deployment-wide defaults; per-request headers may lower them further. Admission limits are off by default (unset/0 ⇒ unlimited) — set them to convert overload into a fast 429 Too Many Requests + Retry-After instead of OOM or latency collapse.

NameSideDefaultPurpose
KYMA_QUERY_MEMORY_BYTESS4294967296 (4 GiB)Per-query DataFusion memory pool. Over-budget queries spill instead of OOM-ing.
KYMA_QUERY_WALL_MSS300000 (5 min)Per-query wall-clock deadline (ms).
KYMA_QUERY_OBJECT_STORE_BYTESS10737418240 (10 GiB)Per-query cap on bytes fetched from object storage.
KYMA_QUERY_MAX_CONCURRENTS0 (unlimited)Max in-flight queries on this node. Excess → 429 + Retry-After.
KYMA_QUERY_RETRY_AFTER_SECSS1Retry-After advertised when query admission rejects.
KYMA_QUERY_MAX_CONCURRENT_PER_TENANTS0 (unlimited)Per-tenant in-flight query cap — one tenant saturating its budget can't starve others.
KYMA_AGENT_MAX_CONCURRENTS0 (unlimited)Max concurrent agent runs on this node.
KYMA_AGENT_RETRY_AFTER_SECSS1Retry-After advertised when agent-run admission rejects.
KYMA_AGENT_MAX_CONCURRENT_PER_TENANTS0 (unlimited)Per-tenant concurrent agent-run cap.

gRPC (Arrow Flight)

NameSideDefaultPurpose
KYMA_GRPC_ADDRS0.0.0.0:9090Arrow Flight listen address. Set to off to disable the gRPC server entirely.

OTLP gRPC

NameSideDefaultPurpose
KYMA_OTLP_ADDRSoffOTLP gRPC listen address (conventional 0.0.0.0:4317). off disables the receiver.
KYMA_OTLP_DATABASESdefaultTarget database for OTLP-received logs. Tables auto-created as otel_logs.

Object store

S3-compatible (works with MinIO, AWS S3, R2, GCS via S3 API). When KYMA_LOCAL_MODE=1 or no S3 env vars are set, the local filesystem is used instead (set automatically by kyma serve).

NameSideDefaultPurpose
KYMA_PATH_PREFIXSkymaPath prefix prepended to every object key.
KYMA_LOCAL_MODESCunset1 forces the local filesystem store (auto-set by kyma serve).
KYMA_S3_ENDPOINTSunsetS3 endpoint URL (e.g. http://localhost:9000 for MinIO). Empty → AWS S3.
KYMA_S3_REGIONSus-east-1Region passed to the S3 client.
KYMA_S3_BUCKETSkymaBucket name.
KYMA_S3_ACCESS_KEY_IDSunsetAccess key. Falls back to the AWS credential chain when unset.
KYMA_S3_SECRET_ACCESS_KEYSunsetSecret key. When both key vars are unset, the standard AWS provider chain applies (ECS/Fargate task role, web identity, AWS_* env, IMDS) — keyless IAM-role deployments set only bucket + region.
KYMA_S3_PATH_STYLEStruePath-style addressing (vs. virtual-hosted). Set false for virtual-host style.
KYMA_S3_ALLOW_HTTPStrueAllow plain HTTP (for local MinIO). Set false to require TLS.

Local engine data paths

Read by kyma mcp, kyma serve, and kyma sync. Data lives under ~/.kyma by default.

NameSideDefaultPurpose
KYMA_HOMEC~/.kymaRoot data directory for the local engine.
KYMA_LOCAL_DBC$KYMA_HOME/catalog.dbSQLite catalog path (local engine only).
KYMA_LOCAL_DATAC$KYMA_HOME/dataLocal object-store root directory.
KYMA_LOCAL_USERCadminDefault admin username for kyma serve.
KYMA_LOCAL_PASSWORDCadminDefault admin password for kyma serve. Override in shared envs.

Auth

NameSideDefaultPurpose
KYMA_AUTH_BACKENDSenvenv = static KYMA_AUTH_TOKENS; session = username/password login backed by the catalog; supabase = Supabase Auth JWTs; oidc = generic OIDC.
KYMA_AUTH_TOKENSSunset(env backend) Comma-separated token:role pairs (e.g. alice-tok:admin,reader-tok:read). Empty / unset disables auth.
KYMA_ADMIN_USERSunset(session backend) Seed an admin user on first boot if no users exist yet. Requires KYMA_ADMIN_PASSWORD.
KYMA_ADMIN_PASSWORDSunsetPassword for the seeded admin user. Only used when no users exist.
KYMA_ACCESS_TTL_SECSS3600Access-token lifetime (1 hour). Applies to the session and supabase backends.
KYMA_REFRESH_TTL_SECSS2592000Refresh-token lifetime (30 days).
KYMA_INTERNAL_BEARERSCautoBearer token used by the local engine to call itself (e.g. dreaming). Auto-derived from KYMA_AUTH_TOKENS; override only when embedding the server.

Roles: readwriteadmin. A higher role grants everything below it.

Supabase Auth (KYMA_AUTH_BACKEND=supabase)

Validates Supabase-issued JWTs (project JWKS by default, with kid-rotation refetch) and JIT-provisions kyma users from them. Opaque tokens (static keys, kyma session/API tokens) still authenticate through the session backend, so CLI/MCP/CI clients keep working. Used by the production deployment.

NameSideDefaultPurpose
KYMA_SUPABASE_URLSrequiredProject base URL, e.g. https://<ref>.supabase.co. JWKS is fetched under it.
KYMA_SUPABASE_ANON_KEYSunsetPublishable anon key, served to the web login page via GET /v1/auth/config.
KYMA_SUPABASE_JWT_SECRETSunsetLegacy HS256 shared secret. Unset → asymmetric JWKS validation (preferred).
KYMA_SUPABASE_JWT_AUDSauthenticatedExpected aud claim.
KYMA_SUPABASE_PROVIDERSSunsetOAuth buttons to render on the login page (e.g. google,github); enable them in Supabase too.
KYMA_ADMIN_EMAILSSunsetComma-separated emails granted the kyma admin role on sign-in.
KYMA_ALLOWED_EMAIL_DOMAINSSunsetWhen set, only these email domains may sign in — guards projects with open signup.
KYMA_SUPABASE_DEFAULT_ROLESreadRole for users matching neither the admin list nor an app_metadata.role claim.
KYMA_SUPABASE_API_BASEChttps://api.supabase.comSupabase Management API base URL. Override in tests or private deployments. Used by kyma deploy.
KYMA_SUPABASE_OAUTH_CLIENT_IDCunsetOAuth app client id for the kyma deploy browser OAuth flow against Supabase.
KYMA_SUPABASE_OAUTH_CLIENT_SECRETCunsetOAuth app client secret for the kyma deploy browser OAuth flow.

OIDC backend (KYMA_AUTH_BACKEND=oidc)

Validates JWTs from any standards-compliant OIDC issuer (Okta, Auth0, Keycloak, etc.) and maps claims to kyma roles.

NameSideDefaultPurpose
KYMA_OIDC_ISSUERSSunsetComma-separated issuer URLs. Unset / empty disables OIDC.
KYMA_OIDC_AUDIENCESkymaRequired aud claim value.
KYMA_OIDC_ROLE_CLAIMSkyma_roleJWT claim to map to the kyma role.
KYMA_OIDC_SUBJECT_CLAIMSsubJWT claim to use as the kyma username.
KYMA_OIDC_DATABASES_CLAIMSkyma_databasesJWT claim containing an allowlist of database names this token may access.

Ingest staging (group commit)

NameSideDefaultPurpose
KYMA_STAGING_DISABLEDSunset (off)Set to 1 or true to disable group-commit. Each ingest request becomes one extent.
KYMA_FLUSH_MAX_ROWSS8000Per-table flush trigger — row count.
KYMA_FLUSH_MAX_BYTESS16777216Per-table flush trigger — bytes (16 MiB).
KYMA_FLUSH_MAX_AGE_MSS50Per-table flush trigger — wall-clock age.
KYMA_COMMIT_WINDOW_MSS5Commit-coordinator window. Flushes within this window land in one snapshot.
KYMA_COMMIT_MAX_EXTENTSS128Maximum extents the coordinator collapses into a single snapshot.

Ingest rate limiting

Per-database token bucket on the ingest path. Off by default — set the rate to turn ingest overload into a 429 + Retry-After instead of unbounded queueing.

NameSideDefaultPurpose
KYMA_INGEST_RATE_RPSS0 (off)Steady-state requests/sec per database. 0 or unset ⇒ unlimited.
KYMA_INGEST_RATE_BURSTS2 × rpsToken-bucket burst cap (min 1). Only meaningful when KYMA_INGEST_RATE_RPS is set.

Compaction, retention, GC

NameSideDefaultPurpose
KYMA_COMPACTION_IDLE_SLEEP_MSSbin defaultSleep between work polls when the compaction queue is empty.
KYMA_COMPACTION_POLL_SECSSbin defaultScheduler poll interval (seconds).
KYMA_COMPACTION_MIN_EXTENTSSbin defaultMinimum extent count per (table, time-bucket) before compaction fires.
KYMA_RETENTION_POLL_SECSSbin defaultRetention sweeper poll interval (seconds).
KYMA_PHYSICAL_GC_POLL_SECSSbin defaultPhysical-delete worker poll interval (seconds).
KYMA_PHYSICAL_GC_GRACE_SECSSbin defaultGrace period between soft-delete and hard-delete (seconds).
KYMA_ARTIFACT_GC_POLL_SECSS300Poll interval for the artifact-retention sweeper + artifact-graph/content-index sync.
KYMA_ARTIFACT_GC_GRACE_SECSSbin defaultGrace period before expired object-store artifacts are physically deleted.

All of these run only on job-running roles (all_in_one / worker); see Roles & scale-out.

File-drop

NameSideDefaultPurpose
KYMA_FILEDROP_ENABLEDSunset1 or true enables the file-drop watcher.
KYMA_FILEDROP_PREFIXESSingestComma-separated object-store prefixes to watch.
KYMA_FILEDROP_PREFIXSunsetLegacy single-prefix form. KYMA_FILEDROP_PREFIXES wins when both are set.
KYMA_FILEDROP_POLL_SECSS5Watcher poll interval.
KYMA_FILEDROP_DELETE_AFTER_INGESTSfalseDelete the source object after it commits. Off by default — replays remain idempotent.
KYMA_FILEDROP_AUTO_CREATEStrueCreate the database + table on first sight.
KYMA_FILEDROP_SCHEMA_EVOLVEStrueAdd new columns mid-batch.

Kafka

NameSideDefaultPurpose
KYMA_KAFKA_ENABLEDSunset1 or true enables the Kafka consumer.
KYMA_KAFKA_BROKERSSlocalhost:9092Comma-separated broker list.
KYMA_KAFKA_GROUPSkyma-ingestConsumer group id.
KYMA_KAFKA_TOPICSSunsetComma-separated topic:database.table mappings. Required to enable.
KYMA_KAFKA_BATCH_SIZES500Per-batch row count.
KYMA_KAFKA_BATCH_TIMEOUT_MSS500Per-batch wall-clock timeout.

Data sources

NameSideDefaultPurpose
KYMA_DATA_SOURCE_WORKERSS4Number of data-source-runner tasks. Also the fallback for KYMA_FABRIC_WORKERS when unset.
KYMA_DISCOVER_MAX_SOURCESSbin defaultCap on sources returned by the discovery endpoint.
KYMA_GH_PATSunsetGitHub personal-access token injected into git clone credentials for private-repo data sources.

Per-data-source secrets are resolved through the EnvSecretStore — config values written as $env:VAR_NAME resolve to whatever std::env::var("VAR_NAME") returns at fetch time.

Credentials & OAuth

The typed credentials store (PATs, OAuth tokens, connection URLs) is encrypted at rest; the OAuth connect flow needs a public origin and a client app per provider.

NameSideDefaultPurpose
KYMA_SECRET_KEYSunset (required for credentials)AES-256-GCM key for the credentials store. Base64 of 32 random bytes (openssl rand -base64 32); shorter values are SHA-256 stretched (dev only).
KYMA_OAUTH_REDIRECT_BASEShttp://localhost:8080Externally reachable origin. Builds the provider redirect_uri (<base>/v1/oauth/<provider>/callback).
KYMA_OAUTH_UI_RETURN_BASES= redirect baseWhere the callback sends the browser back to (the web UI origin).
KYMA_OAUTH_<PROVIDER>_CLIENT_IDSunsetOperator client id. <PROVIDER>GOOGLE, NOTION, ATLASSIAN, SLACK.
KYMA_OAUTH_<PROVIDER>_CLIENT_SECRETSunsetOperator client secret. A per-tenant bring-your-own app (set in the UI) takes precedence over these.

Worker fabric

The server-side job dispatch layer that routes work to registered worker nodes.

NameSideDefaultPurpose
KYMA_FABRIC_WORKERSS4Goroutine-pool size for the fabric dispatcher. Falls back to KYMA_DATA_SOURCE_WORKERS.
KYMA_FABRIC_LEASE_SECSS300How long a job lease is held before the fabric considers it expired (5 minutes).
KYMA_FABRIC_SWEEP_SECSS30How often the fabric sweeps for expired leases.
KYMA_FABRIC_OFFLINE_SECSS90Seconds without a heartbeat before a node is marked offline.

Node daemon / local sync

Variables read by kyma worker run (the fabric node daemon) and kyma sync / kyma worker install (the CC-memory sync service). These are client-side — the running server reads none of them.

NameSideDefaultPurpose
KYMA_SERVER_URLCrequiredControl-plane URL. Required for kyma worker run; also overrides the saved client endpoint for all kyma subcommands.
KYMA_TOKENCunsetBearer token override for all client subcommands (wins over ~/.kyma/config.json).
KYMA_WORKER_TOKENCrequiredNode authentication token minted by kyma worker create. Required for kyma worker run.
KYMA_WORKER_INSECURECunsetSet to 1 to allow HTTP (non-TLS) connections from the node daemon to the server. Tokens ride this channel.
KYMA_CC_SYNC_POLL_SECSC30Poll interval (seconds) for kyma sync --watch and the background worker service.
KYMA_CC_WATCHC0 (off)Set to 1 to enable the continuous CC-file sync watcher inside kyma serve.
KYMA_CC_FILE_SYNCC1 (on)Set to 0 to disable the Claude Code file-memory phase of sync entirely.
KYMA_CC_SYNC_ON_MCPC1 (on)Set to 0 to skip the one-shot file sync that fires when the MCP server initialises.
KYMA_CC_HOMEC~/.claudeRoot directory that kyma treats as the Claude Code home (scans CLAUDE.md, projects/*/memory).
KYMA_CLOUD_URLCunsetURL of the kyma control plane to push/pull memories to. Unset → local-only sync.
KYMA_CLOUD_TOKENCunsetBearer token for the cloud control plane.
KYMA_SYNC_REALMCunsetMemory realm to sync to/from on the control plane. Unset → server default.
KYMA_NO_UPDATE_CHECKCunsetSet to any value to suppress the background update-available nudge in kyma status / kyma version.

CC-memory curation

Knobs for the Claude Code memory curation pass (promotion and LLM-curated deduplication / staleness review).

NameSideDefaultPurpose
KYMA_CC_CURATESC1 (on)Master switch. Set to 0 to disable all curation.
KYMA_CC_PROMOTESC1 (on)Write high-importance memories back as native .md files for Claude Code to load.
KYMA_CC_PROMOTE_MAXSC15Max number of memories promoted to files per project.
KYMA_CC_PROMOTE_MIN_IMPORTANCESC0.6Minimum importance score a memory needs to be eligible for promotion.
KYMA_CC_QUIET_WINDOWSC300Seconds of inactivity before a promotion pass is allowed (prevents churn during edits).
KYMA_CC_LOCK_TTLC300Seconds before a stale curation lock is forcibly released.
KYMA_CC_STALE_DAYSSC90Age in days before a memory is considered stale for LLM review.
KYMA_CC_DUP_COSINESC0.90–0.97 bandCosine-similarity range where duplication is plausible but not certain — the model decides.

Agentic memory

NameSideDefaultPurpose
KYMA_MEMORY_ASYNCSC1 (on)0 makes memory writes synchronous (blocks until the embedding + save complete).
KYMA_MEMORY_QUEUE_DURABLESC0 (local) / 1 (server)1 persists the in-flight memory queue to the catalog so it survives restarts. Defaults on for the server binary, off for local/stdio.
KYMA_MEMORY_CONSOLIDATIONS1 (on)0 disables the background memory-consolidation worker.
KYMA_MEMORY_CONSOLIDATION_POLL_SECSSbin defaultPoll interval for the memory consolidation background task.
KYMA_SESSION_SUMMARY_EVERYS12Refresh the rolling session summary every N turns.
KYMA_CI_CORRELATES1 (on)0 disables the CI failure-correlation pipeline (writes recurring-failure memories).
KYMA_CI_CORRELATE_POLL_SECSSbin defaultPoll interval for the CI-correlation pipeline.
KYMA_FILE_PROMOTES1 (on)0 disables the file-candidate promotion pipeline (stitches contributed File nodes to live repo nodes).
KYMA_FILE_PROMOTE_POLL_SECSSbin defaultPoll interval for the file-promotion pipeline.
KYMA_MEMORY_PPRS0 (off)1/true rescores recall with personalized PageRank over the memory graph (else hop-decay proximity). Capability is shipped; enabling-by-default is gated on benchmark uplift.
KYMA_MEMORY_CLASS_DECAYS0 (off)1/true applies memory-class-aware recency decay (episodic short half-life, semantic invalidation-only). Default keeps the uniform recency term.

The consolidation / CI-correlate / file-promote pipelines run only on job-running roles (all_in_one / worker); see Roles & scale-out.

Agent

NameSideDefaultPurpose
KYMA_AGENT_MCP_URLSauto (derived from HTTP addr)Override the MCP endpoint the agent routes tool calls to. off disables.
KYMA_OLLAMA_HOSTShttp://localhost:11434Ollama host the server-side agent uses.

Embeddings

For dense-vector ingestion + nearest-neighbour scan. Selects the embedding backend at startup.

NameSideDefaultPurpose
KYMA_EMBED_PROVIDERSCfastembedOne of fastembed, ollama, openai-compat, gemini.
KYMA_EMBED_MODEL_IDSCprovider-specific (e.g. bge-small-en-v1.5)Model id passed to the provider.
KYMA_EMBED_BASE_URLSCprovider-specificBase URL for HTTP-based providers (Ollama, OpenAI-compat).
KYMA_EMBED_MODEL_PATHSCunsetLocal model path for fastembed (overrides id).
KYMA_EMBED_API_KEY_ENVSCOPENAI_API_KEYEnv var to read the API key from (for openai-compat).

gemini reads the API key from GOOGLE_API_KEY (fixed).

Cross-encoder reranker

Optional final reranking stage for hybrid search + memory recall. Off unless KYMA_RERANK_MODEL is set; when configured, the top fused results are re-scored by a cross-encoder before returning.

NameSideDefaultPurpose
KYMA_RERANK_MODELSCunsetfastembed reranker model id (e.g. bge-reranker-base). Unset ⇒ no reranking.
KYMA_RERANK_MODEL_PATHSCunsetLocal model path override for the reranker.
KYMA_RERANK_POOL_SIZESC1Number of reranker inference instances (parallel ONNX sessions).
NameSideDefaultPurpose
KYMA_ICON_GALLERYSunsetPath to a JSON file that extends or overrides the built-in icon gallery ({"kinds":{...},"vendors":{...}}).

Debug / verbose flags

These are CLI-side flags that increase output verbosity for specific operations. They are not set in production.

NameSideDefaultPurpose
KYMA_INGEST_VERBOSECunsetPrint per-row ingest detail from kyma ingest push.
KYMA_DISTILL_VERBOSECunsetPrint distillation progress from kyma distill.

Logging

tracing-subscriber reads the standard RUST_LOG env var. The default filter is info,sqlx=warn,hyper=warn,h2=warn.

An open-source project · MIT licensed.