Files
sand-boxer/workplans/SAND-WP-0006-saas-extensions-and-payments.md
tegwick 1415e17230 Implement SAND-WP-0006: SaaS payments, routing, and ext.saas-stub
Add credits store, metering on create/destroy, extension routing resolver,
metered SaaS stub extension, burst/saas profiles, credits CLI, docs, and tests.
2026-06-24 07:52:20 +02:00

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.