pithos/hosted/theseus-id
Local Dev 1673e8f018 pithos-hosted: link a Theseus ID; a console session that cannot read data
A hosted account is its Ed25519 storage key, and that stays so: the key is
what owns and decrypts the data. A Theseus ID is added as a way to look at
the account (usage, sign-up, sign-out) from a browser that does not hold the
key, which is the account-level login DESIGN-theseus-id.md §11.3 asks for.

The owner links an ID with a normal session plus a Theseus ID sign-in for
project "pithos" (POST /hosted/v1/theseus-id). The ID then signs in to
POST /hosted/v1/console/session and gets a "console" token, which reaches
/hosted/v1/me, its own sign-out and the link status, and is refused
everything else: files, rules, moves and the forwarded owner API. Sessions
stored before scopes existed read as owner sessions. A move to a new ID in
Theseus carries the account along.

The verifier is TheseusID/lib's message.mjs and verify.mjs, copied verbatim
into hosted/theseus-id/ with libauth doing the curve maths, so the gateway
adds no dependency; a test fails if the copy drifts.
2026-10-06 20:34:52 +02:00
..
index.js pithos-hosted: link a Theseus ID; a console session that cannot read data 2026-10-06 20:34:52 +02:00
message.mjs pithos-hosted: link a Theseus ID; a console session that cannot read data 2026-10-06 20:34:52 +02:00
verify.mjs pithos-hosted: link a Theseus ID; a console session that cannot read data 2026-10-06 20:34:52 +02:00