Skip to content

Service account Cirrus library #204

Description

@simnaut

Hello- I wanted to float the idea/need for a super light weight Cloudflare-native pds for headless services. Though Cirrus is already the lightest PDS, it could get even lighter by factoring out the people-hosting services such that a headless service (think an atproto labeler) could grab a cirrus subset package for hosting its own identity and publishing its own records.

The refactoring could possibly look like:

@getcirrus/repo-core        runtime-agnostic: repo engine (wraps @atproto/repo),
  ├─ RepoEngine             firehose sequencer, sync-endpoint logic. Depends only on a
  ├─ Sequencer              RepoStorage interface + a Keypair — no Cloudflare, no auth.
  └─ syncHandlers()

@getcirrus/service          Cloudflare kit: DO-SQLite RepoStorage, did:web document,
  ├─ SqliteRepoStorage      requestCrawl, and a mountable Worker/DO facade.
  ├─ ServiceAccountDO
  ├─ didWebDocument()
  └─ createServiceRouter()

@getcirrus/pds              (existing) refactors to build on @getcirrus/repo-core, adding
                            the person-hosting layers: OAuth, passkeys, blobs, migration.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions