{ "$schema": "node_modules/wrangler/config-schema.json", "name": "gitfor", "compatibility_date": "2026-10-08", "compatibility_flags": ["nodejs_compat"], "main": "src/server.ts", "observability": { "enabled": true }, "vars": { "FORGE_NAME": "gitfor", "ARTIFACTS_NAMESPACE": "stig", "ARTIFACTS_SHARDS": "1", "ARTIFACTS_ORPHAN_SWEEP": "report", "ARTIFACTS_NAMESPACE_EXCLUSIVE": "false", "SIGNUPS_ENABLED": "true", "PUBLIC_URL": "http://localhost:3000", "CLOUD_JOBS_PER_OWNER": "4", "CLOUD_MINUTES_PER_DAY": "600", "LFS_STORAGE_BYTES_PER_OWNER": "10737418240", "LFS_BANDWIDTH_BYTES_PER_MONTH": "10737418240", "LFS_MAX_OBJECT_BYTES": "104857600", "RELEASE_ASSET_BYTES_PER_OWNER": "10737418240", "PAGES_DOMAIN": "", "PAGES_ZONE_ID": "", "SITES_DOMAIN": "", "EDITOR_ORIGIN": "", "USERCONTENT_ORIGIN": "", "EDITOR_OPEN_VSX": "off", "EDITOR_CONTAINERS": "on", "EDITOR_CONTAINER_IDLE_MINUTES": "15", "EDITOR_CONTAINER_CAP_HOURS": "8", "EDITOR_CONTAINERS_PER_ACCOUNT": "3", "EMAIL_FROM": "gitfor ", "EMAIL_REPLY_DOMAIN": "mail.gitfor.dev", "TURNSTILE_SITEKEY": "0x4AAAAAAFUg9PmDIBH5nisz", "TURNSTILE_HOSTNAMES": "", "EMAIL_DEV_SINK": "", "ABUSE_FORWARD_TO": "", "NOTIFY_DIGEST_DELAY_MS": "", "CACHE_BYTES_PER_REPO": "2147483648", "MIN_SCHEDULE_INTERVAL_MINUTES": "15", "MERGEFIX_PROVIDER": "workers-ai", "MERGEFIX_GATEWAY_ID": "default", "MERGEFIX_MODEL": "@cf/zai-org/glm-5.3-flash", "MERGEFIX_CLEF_MODEL": "clef", "PR_DESCRIBE_MODEL": "@cf/meta/llama-3.1-8b-instruct-fast", "METERING_PLANS": "" }, "analytics_engine_datasets": [{ "binding": "USAGE", "dataset": "gitfor_usage" }], "worker_loaders": [{ "binding": "LOADER" }], "ai": { "binding": "AI", "remote": true }, "send_email": [{ "name": "EMAIL", "remote": true }], "images": { "binding": "IMAGES" }, "artifacts": [ { "binding": "ARTIFACTS", "namespace": "stig", "remote": true } ], "ratelimits": [ { "name": "AUTH_LIMITER", "namespace_id": "1001", "simple": { "limit": 10, "period": 60 } }, { "name": "WRITE_LIMITER", "namespace_id": "1002", "simple": { "limit": 30, "period": 60 } }, { "name": "HEAVY_LIMITER", "namespace_id": "1003", "simple": { "limit": 30, "period": 60 } }, { "name": "GIT_LIMITER", "namespace_id": "1004", "simple": { "limit": 120, "period": 60 } } ], "d1_databases": [ { "binding": "DB", "database_name": "gitfor", "database_id": "00000000-0000-0000-0000-000000000000", "migrations_dir": "migrations" } ], "kv_namespaces": [ { "binding": "KV", "id": "00000000000000000000000000000000" } ], "r2_buckets": [ { "binding": "BUCKET", "bucket_name": "gitfor" } ], "queues": { "producers": [ { "binding": "EVENTS", "queue": "gitfor-events" }, { "binding": "SECURITY_QUEUE", "queue": "gitfor-security" }, { "binding": "INTEGRATIONS", "queue": "gitfor-integrations" } ], "consumers": [ { "queue": "gitfor-events", "max_batch_size": 10, "max_batch_timeout": 2, "max_retries": 8, "dead_letter_queue": "gitfor-events-dlq" }, { "queue": "gitfor-security", "max_batch_size": 4, "max_batch_timeout": 5, "max_retries": 5, "dead_letter_queue": "gitfor-security-dlq" }, { "queue": "gitfor-integrations", "max_batch_size": 10, "max_batch_timeout": 2, "max_retries": 6, "dead_letter_queue": "gitfor-integrations-dlq" }, { "queue": "gitfor-integrations-dlq", "max_batch_size": 10, "max_batch_timeout": 5, "max_retries": 1 } ] }, "workflows": [ { "name": "gitfor-push", "binding": "PUSH_WORKFLOW", "class_name": "PushWorkflow" }, { "name": "gitfor-repo-provision", "binding": "REPO_PROVISION", "class_name": "RepoProvisionWorkflow" }, { "name": "gitfor-ci-run", "binding": "CI_WORKFLOW", "class_name": "CiRunWorkflow" }, { "name": "gitfor-pages-deploy", "binding": "PAGES_WORKFLOW", "class_name": "PagesDeployWorkflow" }, { "name": "gitfor-sites-deploy", "binding": "SITES_WORKFLOW", "class_name": "SitesDeployWorkflow" }, { "name": "gitfor-mergefix", "binding": "MERGEFIX_WORKFLOW", "class_name": "MergeFixWorkflow" } ], "durable_objects": { "bindings": [ { "name": "RUNNER", "class_name": "Runner" }, { "name": "PROJECT_ROOM", "class_name": "ProjectRoom" }, { "name": "EDITOR_ROOM", "class_name": "EditorRoom" }, { "name": "EDITOR_CONTAINER", "class_name": "EditorContainer" }, { "name": "MERGE_QUEUE", "class_name": "MergeQueue" }, { "name": "RUNNER_LARGE", "class_name": "RunnerLarge" }, { "name": "RUNNER_XLARGE", "class_name": "RunnerXLarge" }, { "name": "MCP_HUB", "class_name": "McpHub" }, { "name": "REPO_INSIGHTS", "class_name": "RepoInsights" }, { "name": "COUNTERS", "class_name": "Counters" }, { "name": "USER_INBOX", "class_name": "UserInbox" }, { "name": "WEBHOOK_LOG", "class_name": "WebhookLog" }, { "name": "METER_BUFFER", "class_name": "MeterBuffer" }, { "name": "JOB_DOORBELL", "class_name": "JobDoorbell" } ] }, "containers": [ { "class_name": "Runner", "image": "./runner/Dockerfile", "instance_type": "standard-1", "max_instances": 20 }, { "class_name": "RunnerLarge", "image": "./runner/Dockerfile", "instance_type": "standard-2", "max_instances": 10 }, { "class_name": "RunnerXLarge", "image": "./runner/Dockerfile", "instance_type": "standard-4", "max_instances": 5 }, { "class_name": "EditorContainer", "image": "./editor-container/Dockerfile", "instance_type": "standard-1", "max_instances": 20 } ], "secrets_store_secrets": [ { "binding": "OIDC_SIGNING_KEY", "store_id": "00000000000000000000000000000000", "secret_name": "gitfor-oidc-signing-key" } ], "migrations": [ { "tag": "v1", "new_sqlite_classes": ["Runner"] }, { "tag": "issues-v1", "new_sqlite_classes": ["ProjectRoom"] }, { "tag": "pulls-merge-queue", "new_sqlite_classes": ["MergeQueue"] }, { "tag": "v2", "new_sqlite_classes": ["RunnerLarge", "RunnerXLarge"] }, { "tag": "mcp-v1", "new_sqlite_classes": ["McpHub"] }, { "tag": "editor-v1", "new_sqlite_classes": ["EditorRoom", "EditorContainer"] }, { "tag": "insights-v1", "new_sqlite_classes": ["RepoInsights"] }, { "tag": "scale-v1", "new_sqlite_classes": ["Counters", "UserInbox", "WebhookLog", "MeterBuffer"] }, { "tag": "ci-doorbell-v1", "new_sqlite_classes": ["JobDoorbell"] } ], "triggers": { "crons": ["*/5 * * * *"], "events": [ { "type": "cf.artifacts.repo.pushed", "filter": { "namespace": "stig" }, "targets": [ { "type": "workflow", "workflow_name": "gitfor-push" } ] }, { "type": "cf.artifacts.repo.forked", "filter": { "namespace": "stig" }, "targets": [ { "type": "workflow", "workflow_name": "gitfor-repo-provision" } ] } ] } }