Add credits store, metering on create/destroy, extension routing resolver, metered SaaS stub extension, burst/saas profiles, credits CLI, docs, and tests.
1.7 KiB
id, type, title, domain, repo, status, owner, topic_slug, created, updated
| id | type | title | domain | repo | status | owner | topic_slug | created | updated |
|---|---|---|---|---|---|---|---|---|---|
| SAND-WP-0006 | workplan | SaaS extensions and payments layer | infotech | sand-boxer | finished | codex | custodian | 2026-06-23 | 2026-06-23 |
SaaS extensions and payments layer
Deliver INTENT pillar 4 (payments/metering) and routing engine v0 for self-hosted vs SaaS backend selection.
Predecessor: SAND-WP-0005 (extension SDK — finished)
Follow-on: SAND-WP-0007 (snapshots), real E2B/Modal adapters
Payments and credits
id: SAND-WP-0006-T01
status: done
priority: high
CreditsStore, estimate_cost / settle_usage, pre-create balance check,
post-destroy debit, SandboxStatus.meter field. Docs: docs/payments.md.
CLI: sandboxer credits show|add.
Routing engine
id: SAND-WP-0006-T02
status: done
priority: high
RouteSpec on profiles, resolve_extension with strategies
(prefer-self-hosted, lowest-cost, lowest-latency, explicit).
Docs: docs/routing.md.
ext.saas-stub
id: SAND-WP-0006-T03
status: done
priority: high
Metered SaaS stub extension — estimate_cost, meter_actual, no external API.
Profiles: profile.saas-stub, profile.burst-sandbox.
Manager integration
id: SAND-WP-0006-T04
status: done
priority: high
SandboxManager uses routing resolver; destroy loads status.extension_id;
meter settlement on destroy; meter events to State Hub.
Tests
id: SAND-WP-0006-T05
status: done
priority: high
test_routing.py, test_payments.py, test_saas_stub.py.
Deferred
id: SAND-WP-0006-T06
status: wait
priority: low
Real ext.e2b / ext.modal adapters, BYOK via OpenBao, fin-hub export.