Files
gh-jezweb-claude-skills-ski…/templates/wrangler.jsonc
2025-11-30 08:24:01 +08:00

81 lines
1.5 KiB
JSON

// wrangler.jsonc - Cloudflare Workers configuration for Claude API
{
"name": "claude-api-worker",
"main": "src/index.ts",
"compatibility_date": "2025-01-01",
// Bindings
"vars": {
"ENVIRONMENT": "production"
},
// Environment variables (secrets)
// Set with: wrangler secret put ANTHROPIC_API_KEY
// "ANTHROPIC_API_KEY": "sk-ant-..." // Never commit this!
// KV namespace (optional - for caching)
"kv_namespaces": [
{
"binding": "CACHE",
"id": "your-kv-namespace-id",
"preview_id": "your-kv-preview-id"
}
],
// D1 database (optional - for conversation storage)
"d1_databases": [
{
"binding": "DB",
"database_name": "claude-conversations",
"database_id": "your-d1-database-id"
}
],
// Durable Objects (optional - for rate limiting)
"durable_objects": {
"bindings": [
{
"name": "RATE_LIMITER",
"class_name": "RateLimiter",
"script_name": "claude-api-worker"
}
]
},
"migrations": [
{
"tag": "v1",
"new_classes": ["RateLimiter"]
}
],
// Routes (if deploying to custom domain)
"routes": [
{
"pattern": "api.example.com/chat/*",
"zone_name": "example.com"
}
],
// Limits and features
"limits": {
"cpu_ms": 50 // 50ms CPU time
},
"compatibility_flags": [
"nodejs_compat" // If using Node.js APIs
],
// Observability
"observability": {
"enabled": true
},
// Tail consumers (for logging)
"tail_consumers": [
{
"service": "logging-worker"
}
]
}