forked from molecule-ai/molecule-core
- Migration 025: ADD COLUMN budget_limit BIGINT DEFAULT NULL and monthly_spend BIGINT NOT NULL DEFAULT 0 to workspaces table - Models: BudgetLimit *int64 in CreateWorkspacePayload; MonthlySpend int64 in HeartbeatPayload - workspace.go: scanWorkspaceRow, workspaceListQuery, Get, Create, and Update all handle budget_limit/monthly_spend; budget_limit is gated as a sensitiveUpdateField - registry.go: heartbeat conditionally writes monthly_spend only when payload.MonthlySpend > 0 (avoids overwriting with zero) - a2a_proxy.go: checkWorkspaceBudget() returns 429 when monthly_spend >= budget_limit (NULL = no limit; fail-open on DB error) - Tests: 8 new workspace_budget_test.go tests + patched existing tests for the 20-column scanWorkspaceRow and 10-param CREATE INSERT Field type: BIGINT (int64), units: USD cents (budget_limit=500 = $5.00/month) Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> |
||
|---|---|---|
| .. | ||
| 001_workspaces.sql | ||
| 002_agents.sql | ||
| 003_events.sql | ||
| 004_secrets.sql | ||
| 005_canvas_layouts.sql | ||
| 006_workspace_config_memory.sql | ||
| 007_approvals.sql | ||
| 008_agent_memories.sql | ||
| 009_activity_logs.sql | ||
| 010_workspace_awareness.sql | ||
| 011_workspace_runtime.sql | ||
| 012_global_secrets.sql | ||
| 013_workspace_dir.sql | ||
| 014_indexes.sql | ||
| 015_workspace_schedules.sql | ||
| 016_workspace_channels.sql | ||
| 017_memories_fts_namespace.down.sql | ||
| 017_memories_fts_namespace.up.sql | ||
| 018_secrets_encryption_version.down.sql | ||
| 018_secrets_encryption_version.up.sql | ||
| 019_workspace_access.down.sql | ||
| 019_workspace_access.up.sql | ||
| 020_workspace_auth_tokens.down.sql | ||
| 020_workspace_auth_tokens.up.sql | ||
| 021_delegation_idempotency.down.sql | ||
| 021_delegation_idempotency.up.sql | ||
| 022_workspace_schedules_source.down.sql | ||
| 022_workspace_schedules_source.up.sql | ||
| 023_workspace_memory_version.down.sql | ||
| 023_workspace_memory_version.up.sql | ||
| 024_channel_budget.down.sql | ||
| 024_channel_budget.up.sql | ||
| 025_workspace_budget.down.sql | ||
| 025_workspace_budget.up.sql | ||
| 025_workspace_token_usage.down.sql | ||
| 025_workspace_token_usage.up.sql | ||
| 026_org_plugin_allowlist.down.sql | ||
| 026_org_plugin_allowlist.up.sql | ||