Skip to content

Session Vault Phase B: hosted vault on overdeck.ai (encrypted, user-keyed) #4297

Open

Description

@eltmon

Part of PAN-2350 (Overdeck Anywhere). Split out of PAN-2609 on 2026-09-28, as its PRD directs ("Phase B … separate issue; do not build under PAN-2609").

PRD: .pan/drafts/pan-2609.md, section "Phase B — hosted vault on overdeck.ai"

What

A hosted Session Vault backend on overdeck.ai: pan vault setup overdeck://… stores the vault's encrypted chunks and refs at overdeck.ai instead of in a user-owned git remote. The service stores ciphertext it cannot read; the vault key stays on the user's devices.

Architecture from the PRD (decision D-4: an object store with a compare-and-swap ref service, not a git server):

  • storage: Cloudflare R2 (no egress fees; adoption and restore are download-heavy);
  • refs and CAS: one Cloudflare Durable Object per vault;
  • API: a Worker at vault.overdeck.ai implementing VaultStore over HTTPS (PUT/GET/HEAD /objects/:id, GET/PUT /refs/:name with If-Match: <version>);
  • identity and billing: the shared overdeck.ai account and the Anywhere subscription (sold through Creem as merchant of record); quota on stored bytes.

Why

Phase A (PAN-2609) needs the user to own and configure a private git remote. A hosted backend makes the vault one command for users who don't want to run storage, and it is the anchor product of the Anywhere subscription.

Requirements (carried from the PRD)

  • HB-1 The overdeck:// backend passes the same VaultStore contract tests as git and dir.
  • HB-2 The server never receives plaintext or the vault key (acceptance by traffic capture).
  • HB-3 Account deletion deletes all objects within 24 h.
  • HB-4 Export: pan vault migrate <new-backend> copies every object and ref, so users are never locked in.
  • HB-5 Web viewing, if ever built, decrypts in the browser with the key entered locally and never uploads it.

Dependencies

  • PAN-2609 Phase A (format, encryption, VaultStore interface).
  • PAN-4293 overdeck.ai account service.
  • PAN-4294 subscription and billing.
  • Epic decision D-7 as amended 2026-09-28: overdeck.ai may store encrypted, user-keyed data it cannot read (PAN-2350).
  • Pricing: decided 2026-09-28; see "Pricing" below. (The earlier ~$5/month placeholder is superseded.)
  • Order: step 6 (paid tier) of the PAN-2350 sequence, after the account service and billing, before the PAN-2356 relay.

Pricing (decided 2026-09-28)

Operator-approved. Not yet available.

Plan Price Includes
Self-hosted (open source) $0 forever Unlimited on your own backend (git, dir); all of Session Vault Phase A
Vault Free (hosted) $0 1 GB stored, 2 machines, end-to-end encrypted
Anywhere $96/yr (shown as $8/mo), or $10 month-to-month 100 GB hosted vault, unlimited machines, relay (PAN-2356) and push (PAN-2354) as they ship; hosted compute (PAN-4298) billed separately by usage
Founding price $60/yr, annual only, locked while subscribed Same as Anywhere; first 500 subscribers or until the relay ships, whichever comes first
Storage add-on +$3/mo or +$30/yr per +100 GB
Team Not at launch Needs a key-sharing design and PAN-658
  • The vault is not sold separately; it anchors the one Anywhere subscription.
  • Payment provider: Creem as merchant of record. Creem is the legal seller and collects and remits VAT, GST and sales tax. Fees: 3.9% + $0.40 per successful charge, no international card fee; payouts on the 1st and 15th at the higher of $7 or 1% of the payout (pricing, payouts, checked 2026-09-28).
  • Fees per charge: $96/yr: $4.14 (4.3%); $60/yr: $2.74 (4.6%); $10/mo: $0.79 (7.9%). A $5 monthly price would lose 11.9%, which is why the plan pushes annual billing.
  • Cost basis: Cloudflare R2 at $0.015/GB-month; all-in cost per user is about $0.10-0.24/month at 5 GB and $1.52-1.66/month at 100 GB. A heavy user adds about 4 GB stored per month (zstd about 3.2x).
  • Margins (vault only, Creem fees with payout at 1%): Anywhere annual about 92% typical / 74% at the 100 GB cap; $10 monthly 89% / 75%; founding 90% / 61%. Relay and push cost is not modeled yet and will lower the bundle margin.
  • At the cap nothing is deleted: uploads stop, local copies stay, and the user is offered a retention rule, the add-on, or migration. Version history is never gated.
  • Public reasoning, for operator review before publishing: docs page PR #4309.
  • PRD: .pan/drafts/pan-2609.md "Phase B pricing (decided 2026-09-28)".

Part of PAN-2350.

Activity

  1. eltmon commented on Sep 29, 2026

    @eltmon
    OwnerAuthor

    Additions: serve keywrap/v1 (PAN-4328, #4328) only to authenticated devices; add GET /v1/vault discovery so a newly signed-in device knows a vault exists; ship first in tester mode behind a tester entitlement stub (10 GB, unlimited machines) whose signature PAN-4294 later implements; WIP snapshot objects (PAN-4329, #4329) count toward quota.

    Design: .pan/drafts/anywhere-accounts.md

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions