Environment Variables

Semua variabel .env yang dipakai CAF Orchestrator, dikumpulkan di satu halaman.

Referensi lengkap variabel .env yang dipakai CAF Orchestrator — secret dan toggle operasional. Config struktural (non-secret) ada di caf.config.yaml; salin dari caf.config.example.yaml. Lihat Config struktural di bawah untuk field yang paling sering dicari di sini.

CAF Initiator tidak butuh environment variable.

Core

VariableWajibDeskripsi
REDIS_URLYaKoneksi ke instance Redis yang dipakai queue BullMQ
LINEAR_WEBHOOK_SECRETYaSecret untuk memverifikasi payload webhook Linear yang masuk
LINEAR_API_KEYYaAPI key Linear, dipakai untuk membaca ticket dan memposting comment

Git host

VariableWajibDeskripsi
GITHUB_TOKENYaFine-grained PAT untuk push branch, membuka PR, dan memposting comment/review. Tidak pernah ditulis ke workspace; dikirim ke git per perintah lewat header environment (butuh git 2.31+)
GITHUB_WEBHOOK_SECRETYaSecret untuk memverifikasi payload webhook GitHub yang masuk (/webhooks/github)

Claude Code / model auth

Salah satu dari berikut ini wajib, kalau tidak Orchestrator gagal start:

VariableDeskripsi
CLAUDE_CODE_OAUTH_TOKENAuth native Claude Code CLI, diteruskan apa adanya ke agent yang di-spawn. Dipakai kalau openai.useOpenai bernilai false (default)
OPENAI_API_KEYWajib kalau openai.useOpenai di caf.config.yaml bernilai true — mengarahkan agent lewat endpoint kompatibel-Anthropic (default OpenRouter)

Feature flags

VariableWajibDefaultDeskripsi
ENABLE_PIPELINE_TRIGGERTidaktrueKill switch untuk semua trigger webhook (pipeline ticket, resume, dan PR review)
AGENT_SKIP_ENABLEDTidakfalseMenghormati section ## Skip Agents di tasks.md untuk melewati agent yang tidak relevan bagi sebuah ticket

Nilai yang diterima: true, false, 1, 0.

Opsional

VariableWajibDeskripsi
TELEGRAM_BOT_TOKEN / TELEGRAM_CHAT_IDDua-duanya, atau tidak sama sekaliNotifikasi pipeline mulai/selesai/gagal
DASHBOARD_BASIC_AUTH_PASSWORDKalau dashboard.enabled: true di caf.config.yamlPassword untuk halaman login dashboard di /dashboard/login
DASHBOARD_DEFAULT_VIEWTidakIsi /dashboard: dashboard (default) atau agent-floor
TUNNEL_NAME, TUNNEL_URL, TUNNEL_TARGET_URL, CLOUDFLARED_BINTidakCloudflare tunnel untuk pnpm tunnel dan Terminal UI: nama tunnel, hostname https:// publik, origin lokal yang diekspos, dan binary cloudflared
NODE_ENV, LOG_LEVELTidakEnvironment runtime dan tingkat log

CAF_HEADLESS tidak bisa dikonfigurasi: Orchestrator selalu men-set-nya ke 1 di setiap agent yang di-spawn. Jangan taruh di .env.

caf-validator berjalan tanpa REDIS_URL, LINEAR_WEBHOOK_SECRET, LINEAR_API_KEY, GITHUB_TOKEN, GITHUB_WEBHOOK_SECRET, TELEGRAM_BOT_TOKEN, TELEGRAM_CHAT_ID, dan DASHBOARD_BASIC_AUTH_PASSWORD di environment-nya (lihat Validator terbatas).

Config struktural (caf.config.yaml)

Ini bukan environment variable:

FieldWajibDeskripsi
linear.readyStateIdYaUUID workflow state Linear yang memicu pipeline (state "Ready for AI" kamu)
projects:Ya, minimal satuticketPrefix, repoCloneUrl, baseBranch, workspaceDir per project
github.readyLabelTidak (default ready-for-ai)Label yang memicu pipeline dari GitHub Issue
linear.specGateLabel / github.specGateLabelTidak (default spec-approval)Label yang menghentikan ticket di Draft PR persetujuan spec; bisa di-override per project
agents.validator.restrictBash / agents.validator.allowedCommandsTidak (default true / allowlist pnpm dan npm)Membatasi apa yang boleh dijalankan caf-validator
server.portTidak (default 3000 di contoh config; setup Docker memakai 3030)Port web server
dashboard.enabled / dashboard.basicAuthUserTidakMengaktifkan dashboard dan menentukan username-nya

Lihat CAF Orchestrator untuk sisanya.

Belum tersedia

Jira dan GitLab ada di roadmap tapi belum diimplementasikan — belum ada variabel JIRA_* atau GITLAB_TOKEN saat ini. Lihat Jira dan GitHub / GitLab untuk status terkini.

Detail cara mendapatkan tiap credential ada di halaman masing-masing: Linear dan GitHub / GitLab.