- Wire relay handler to increment_usage() for JSON responses (tokens + relay_requests)
- Wire relay handler to increment_dimension("relay_requests") for SSE streams
- Add increment_dimension() function for hand_executions/pipeline_runs dimensions
- Schedule AggregateUsageWorker hourly for reconciliation (run_on_start=true)
- Mount mock payment routes in dev mode (ZCLAW_SAAS_DEV=true)
Previously the quota middleware always allowed requests because usage
counters were never incremented. Now relay requests update billing_usage_quotas
in real-time, with the aggregator providing hourly reconciliation.
36 lines
1021 B
TOML
36 lines
1021 B
TOML
# ZCLAW SaaS 开发环境配置
|
|
# 通过 ZCLAW_ENV=development 或默认使用此配置
|
|
|
|
[server]
|
|
host = "0.0.0.0"
|
|
port = 8080
|
|
cors_origins = [] # 空 = 开发模式允许所有来源
|
|
trusted_proxies = ["127.0.0.1", "::1"]
|
|
|
|
[database]
|
|
url = "postgres://postgres:123123@localhost:5432/zclaw"
|
|
|
|
[auth]
|
|
jwt_expiration_hours = 24
|
|
totp_issuer = "ZCLAW SaaS (dev)"
|
|
refresh_token_hours = 168
|
|
|
|
[relay]
|
|
max_queue_size = 1000
|
|
max_concurrent_per_provider = 5
|
|
batch_window_ms = 50
|
|
retry_delay_ms = 1000
|
|
max_attempts = 3
|
|
|
|
[rate_limit]
|
|
requests_per_minute = 120
|
|
burst = 20
|
|
|
|
[scheduler]
|
|
jobs = [
|
|
{ name = "cleanup_rate_limit", interval = "5m", task = "cleanup_rate_limit", run_on_start = false },
|
|
{ name = "cleanup_refresh_tokens", interval = "1h", task = "cleanup_refresh_tokens", run_on_start = false },
|
|
{ name = "cleanup_devices", interval = "24h", task = "cleanup_devices", run_on_start = false },
|
|
{ name = "aggregate_usage", interval = "1h", task = "aggregate_usage", run_on_start = true, args = { account_id = null } },
|
|
]
|