Skip to content

id: design: hosted provisioning + SSO→ID binding spec — account/binding records, challenge ceremony, delayed rebind, metering, export (from #2045) #2258

Closed

Description

@dezren39

From the #2045 investigation (hosted data option)

Investigation #2045 (queue task 3354, result posted on that issue 2026-10-29) designed the hosted offer on top of #2044's Workers fit: lazy per-user Durable Object provisioning with structural isolation, R2 for blobs, the Google sub → Iroh ID binding ceremony (key-signed challenge; sign-in alone never binds), a deliberately slow delayed-rebind recovery path, shape comparison (static/local, per-user DO, per-world DO, containers rejected as a tier), and cost guardrails (idle = $0, per-user metering, ephemeral-container rule, signed-object export). This issue is the implementation spec. Spec only — no permanent feature on an unreviewed investigation (program rule, epic #2056).

Spec to produce (doc in pkgs/id/doc/ per repo convention, linked from this issue)

  1. Account + binding records: schemas keyed on Google sub; binding record format (key-signed challenge proof + service attestation); device-grant linkage to the existing groups layer.
  2. Binding ceremony flow: challenge issuance/verification, in-browser and from-own-node variants, failure and retry semantics.
  3. Delayed-rebind protocol: request, notification, waiting period, publication of the rebind record; what the old key can do to cancel it.
  4. Provisioning + metering: lazy DO creation, schema bootstrap, per-user request/storage metering, budget ceilings and graceful-degradation behaviour (read-only + export prompt at cap).
  5. Export format: full store export as signed objects + binding record, and the corresponding import verification on a self-hosted node.

Acceptance criteria


Program: ID platform expansion, epic #2056. Parent investigation: #2045. Related: #2044 (Workers fit), #2046 (serverless edition v1 synthesis — inputs now complete), #2032 (budgets), #2030.

Activity

  1. added
    priority/highImportant and time-sensitive
    app/idPackage/app: id (pkgs/ or apps/ in this repo)
    on Oct 29, 2026
  2. developing-today commented on Oct 29, 2026

    @developing-today
    Contributor
  3. added
    queue/claimedQueue worker lifecycle state
    work/assignedQueue worker lifecycle state
    and removed
    queue/queuedHas a queued task in the Supabase agent queue
    on Oct 30, 2026
  4. dezren39 commented on Oct 30, 2026

    @dezren39
    MemberAuthor

    🤖 Agent note · picked up

  5. dezren39 commented on Oct 30, 2026

    @dezren39
    MemberAuthor

    🤖 Agent note · done (triage)

  6. added
    queue/queuedHas a queued task in the Supabase agent queue
    and removed on Oct 30, 2026
  7. 20 remaining items

  8. dezren39 commented on Oct 30, 2026

    @dezren39
    MemberAuthor

    🤖 Agent note · parked

  9. chatgpt-codex-connector commented on Oct 30, 2026

    @chatgpt-codex-connector
  10. added
    queue/claimedQueue worker lifecycle state
    and removed
    status/parkedDeliberately paused with a recorded resume condition
    queue/parkedQueue task is parked (waiting on CI, time, or an event)
    on Oct 30, 2026
  11. dezren39 commented on Oct 30, 2026

    @dezren39
    MemberAuthor

    Resumed by repo queue worker (lane E) as queue task 3955 — reading the Codex re-review of PR #2853 head 7ac3439 and fresh check state; merge if no undispositioned findings and checks are green.

  12. added 2 commits that reference this issue on Oct 30, 2026
  13. dezren39 commented on Oct 30, 2026

    @dezren39
    MemberAuthor

    Done — PR #2853 merged (merge commit f666f18). Resumed at the Codex gate: round-2 re-review had two undispositioned P2 findings; both were fixed in 1556094 (§5.4 now permits space-reclaiming user-confirmed deletes at the storage cap; §1.2/§4.2 now require service_attestation regeneration on every binding-record mutation) and answered on their threads. Codex round-3 review of the new head completed with zero findings.

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

Metadata

Metadata

Assignees

Labels

app/idPackage/app: id (pkgs/ or apps/ in this repo)priority/highImportant and time-sensitive

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions