chadtmiller.com/pds.js
An atproto PDS in JavaScript, for Cloudflare Workers and Node
0
0
'@pdsjs/spaces': patch '@pdsjs/core': minor '@pdsjs/storage-sqlite': patch '@pdsjs/cloudflare': patch
Spaces follow the reference's 0.0.0-spaces-alpha-20261029171913.
com.atproto.simplespace.* is gone, with every older spelling it accepted.
- Policies. A space holds one policy:
com.atproto.personalspace.policy,com.atproto.memberspace.policy(publicRead,publicWrite,allowedApps,publishPolicy,publishMembers) orcom.atproto.managedspace.policy(managingApp,publishPolicy).com.atproto.space.createSpace,updateSpace,deleteSpaceandgetSpacemanage it;updateSpacereplaces it whole and a change of type drops every member. The authority is no longer a member of its own space and is always admitted. - Members.
com.atproto.memberspace.putMember(readandwriterequired),removeMemberandlistMembersanswerPolicyMismatchoutside a memberspace. Removing a member, or taking itswrite, drops it from the writer set, ascom.atproto.space.removeWriterdoes for any writer. - Credentials.
getSpaceCredentialchecks the user before the app. A user the policy refuses getsSpaceNotFound; an app the space does not allow getsAppNotAuthorized. A managedspace asks its app throughcom.atproto.managedspace.checkUserAccess. - Published records.
publishPolicywritescom.atproto.space.policy/selfandpublishMemberswrites onecom.atproto.memberspace.memberper member into the authority's repo in the space. Direct writes to either collection are refused. - clearRecords.
com.atproto.space.clearRecordsdeletes every record the caller holds in a space. - Storage.
SpaceRowcarriespolicyin place of the six read, write and app fields, andSpaceStoragePortgainsremoveAllMembersandremoveSpaceWriter. SQLite and Durable Object storage convert existing spaces on start: one with a managing app becomes a managedspace and loses its members, and any other becomes a memberspace that keeps them. - Account migration of spaces (
importRepo,exportSpaceMeta,importSpaceMeta) is not implemented.