Cloud adapters (E2B/Modal/BYOK/fin-hub), reachability and consumer profiles, Packer orchestration; update gap analysis and SCOPE.
3.2 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-0010 | workplan | Cloud adapters and billing export | infotech | sand-boxer | ready | codex | custodian | 2026-06-24 | 2026-06-24 |
Cloud adapters and billing export
Replace ext.saas-stub with real metered cloud backends (E2B, Modal) and wire
BYOK credential routing plus fin-hub billing export.
Gap analysis P5/P10: history/2026-06-24-post-wp0007-intent-scope-gap-analysis.md
Carries forward: SAND-WP-0006-T06 (deferred)
Predecessor: SAND-WP-0009 (TTL — finished)
Follow-on: SAND-WP-0011 (reachability + consumer profiles)
Credential routing and BYOK
id: SAND-WP-0010-T01
status: todo
priority: high
Document provider key paths via warden route find (OpenBao custody — never in
Git). Extension config secret_ref fields; loader resolves at provision time
into env/handle only (not persisted on SandboxStatus). Docs: docs/payments.md
BYOK section.
ext.e2b adapter
id: SAND-WP-0010-T02
status: todo
priority: high
extensions/ext.e2b.yaml, sandboxer.extensions.e2b:E2BExtension — provision,
wait_ready, teardown, estimate_cost, meter_actual. Profile
profile.e2b-burst with pricing_model: metered. Unit tests with mocked HTTP
client (no live API in CI).
ext.modal adapter
id: SAND-WP-0010-T03
status: todo
priority: high
extensions/ext.modal.yaml, sandboxer.extensions.modal:ModalExtension —
same contract as E2B. Profile profile.modal-gpu (or shared burst profile with
routing). Mocked tests.
Routing and credits integration
id: SAND-WP-0010-T04
status: todo
priority: high
Update profile.burst-sandbox route list to prefer real adapters when credentials
present; fall back to ext.saas-stub. Pre-create balance check and post-destroy
debit unchanged. Emit meter events with extension_id discriminator.
fin-hub billing export
id: SAND-WP-0010-T05
status: todo
priority: medium
On metered destroy, optional export hook (SANDBOXER_FIN_HUB_URL or disabled by
default) posting usage record (sandbox_id, extension_id, duration_s, actual_usd).
Stub/mock in tests; operator runbook for railiance-platform path.
Docs and capability registry
id: SAND-WP-0010-T06
status: todo
priority: medium
docs/cloud-adapters.md, runbook per provider, registry maturity bump (A5/C5
when adapters ship). Update SCOPE.md, docs/routing.md.
Tests and smoke
id: SAND-WP-0010-T07
status: todo
priority: high
tests/test_e2b.py, tests/test_modal.py, routing fallback tests. Optional
operator smoke script (gated on credentials, not CI). make check green.
Out of scope
| Item | Track |
|---|---|
| Coulomb-native runtime (phase 5) | Backlog |
| Daytona OSS adapter | Future WP |
| Cross-host snapshot transfer | Future |
Acceptance criteria
- At least one real cloud adapter provisions/teardown via CLI with mocked CI
- BYOK documented; no secrets in repo or State Hub payloads
profile.burst-sandboxroutes to real adapter when creds available- fin-hub export hook callable (stub OK in v0)
- SAND-WP-0006-T06 superseded; cancel or mark done when complete