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.

Activity

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

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