Skip to content

feat: resource-based list sharing via did:webvh#135

Merged
brianorwhatever merged 1 commit intomainfrom
feat/did-resource-sharing
Feb 19, 2026
Merged

feat: resource-based list sharing via did:webvh#135
brianorwhatever merged 1 commit intomainfrom
feat/did-resource-sharing

Conversation

@krusty-agent
Copy link
Copy Markdown
Collaborator

Summary

Lists are now Originals resources under the user's DID, not separate DIDs or service endpoints.

Resource DID pattern:

did:webvh:{scid}:trypoo.app:user-abc123/resources/list-{listId}

Resolution URL:

https://trypoo.app/user-abc123/resources/list-{listId}

What's included

Backend (Convex)

  • didLogs table + mutations for storing/retrieving DID logs
  • POST /api/did/log — store DID log (auth required, used during signup)
  • GET /{userPath}/did.jsonl — public DID resolution endpoint
  • GET /{userPath}/resources/list-{id} — public list resource endpoint (returns JSON with list metadata + items)
  • Publication mutation now accepts optional didDocument/didLog (no separate DID created for lists)

Frontend

  • ShareModal + PublishModal updated to use resource DID URIs
  • New SharedListResource component — read-only view of shared lists
  • Route: /:userPath/resources/list-:listId
  • Removed old addListServiceToDid / createListWebVHDid approaches

DID Infrastructure

  • User DID log stored in Convex on account creation
  • Served at canonical path for did:webvh resolution
  • buildListResourceDid() and buildListResourceUrl() helpers

Still needed (follow-up)

  • Domain proxying: trypoo.app/{path}/did.jsonl needs to proxy to Convex HTTP (hosting config)
  • List edit capability on shared view (currently read-only)
  • VC issuance for list creation/sharing provenance

Lists are now Originals resources under the user's DID:
  did:webvh:{scid}:trypoo.app:user-abc123/resources/list-{id}

Instead of creating separate DIDs per list or using service endpoints,
lists are addressable resources at a sub-path of the user's DID.

Changes:
- Add DID log storage in Convex (didLogs table + HTTP endpoints)
- Add public resource serving at /{userPath}/resources/list-{id}
- Add DID log resolution at /{userPath}/did.jsonl
- Update ShareModal and PublishModal to use resource DID URIs
- Add SharedListResource component for read-only shared list view
- Remove old addListServiceToDid/createListWebVHDid approaches
- Make didDocument/didLog optional in publication mutation
@brianorwhatever brianorwhatever merged commit 00e4234 into main Feb 19, 2026
2 of 3 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants