feat(dsheet): un-fence durable + edit-permission planes, keyed on owner-identity bind - #31
Merged
Merged
Conversation
…er-identity bind A session's bound ownerIdentityDid is the activation switch: unbound rooms (all existing dsheet rooms and everything legacy clients create) behave exactly as before, while bound rooms - only creatable by a client presenting a verified identityToken - get full ddoc parity. - create binds-if-presented for dsheet (ddoc still hard-requires; invalid proof is always 401), join role resolution and heal un-gated - portal pin runs for all dsheet creates (dsheet-typed creates previously skipped the anti-hijack pin entirely) - DocumentMeta gains insert-only appType, returned by /list-my-documents so recovery can route sheet vs document - createUpdate stamps appType from the session row instead of trusting callers (/flush previously mislabeled dsheet rows) - terminate no longer hard-deletes dsheet update/commit rows; orphan GC goes app-agnostic with a live-sibling-session guard and now sweeps commit rows - rail admission and the update/snapshot/awareness revocation rechecks key on socket.data.editPlaneEnforced (ddoc always, dsheet iff bound); a heal kicks pre-heal unenforced sockets - backfill-apptype.ts extended to stamp DocumentMeta (run post-deploy)
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
A session's bound ownerIdentityDid is the activation switch: unbound
rooms (all existing dsheet rooms and everything legacy clients create)
behave exactly as before, while bound rooms - only creatable by a
client presenting a verified identityToken - get full ddoc parity.
invalid proof is always 401), join role resolution and heal un-gated
previously skipped the anti-hijack pin entirely)
/list-my-documents so recovery can route sheet vs document
trusting callers (/flush previously mislabeled dsheet rows)
GC goes app-agnostic with a live-sibling-session guard and now
sweeps commit rows
rechecks key on socket.data.editPlaneEnforced (ddoc always,
dsheet iff bound); a heal kicks pre-heal unenforced sockets