A container registry that uses the AT Protocol for manifest storage and S3 for blob storage.
0
fork

Configure Feed

Select the types of activity you want to include in your feed.

at main 84 lines 3.3 kB view raw view rendered
1# Hold Service XRPC Endpoints 2 3This document lists all XRPC endpoints implemented in the Hold service (`pkg/hold/`). 4 5## PDS Endpoints (`pkg/hold/pds/xrpc.go`) 6 7### Public (No Auth Required) 8 9| Endpoint | Method | Description | 10|----------|--------|-------------| 11| `/xrpc/_health` | GET | Health check | 12| `/xrpc/com.atproto.server.describeServer` | GET | Server metadata | 13| `/xrpc/com.atproto.repo.describeRepo` | GET | Repository information | 14| `/xrpc/com.atproto.repo.getRecord` | GET | Retrieve a single record | 15| `/xrpc/com.atproto.repo.listRecords` | GET | List records in a collection (paginated) | 16| `/xrpc/com.atproto.sync.listRepos` | GET | List all repositories | 17| `/xrpc/com.atproto.sync.getRecord` | GET | Get record as CAR file | 18| `/xrpc/com.atproto.sync.getRepo` | GET | Full repository as CAR file | 19| `/xrpc/com.atproto.sync.getRepoStatus` | GET | Repository hosting status | 20| `/xrpc/com.atproto.sync.subscribeRepos` | GET | WebSocket firehose | 21| `/xrpc/com.atproto.identity.resolveHandle` | GET | Resolve handle to DID | 22| `/xrpc/app.bsky.actor.getProfile` | GET | Get actor profile | 23| `/xrpc/app.bsky.actor.getProfiles` | GET | Get multiple profiles | 24| `/.well-known/did.json` | GET | DID document | 25| `/.well-known/atproto-did` | GET | DID for handle resolution | 26 27### Conditional Auth (based on captain.public) 28 29| Endpoint | Method | Description | 30|----------|--------|-------------| 31| `/xrpc/com.atproto.sync.getBlob` | GET/HEAD | Get blob (routes OCI vs ATProto) | 32 33### Owner/Crew Admin Required 34 35| Endpoint | Method | Description | 36|----------|--------|-------------| 37| `/xrpc/com.atproto.repo.deleteRecord` | POST | Delete a record | 38| `/xrpc/com.atproto.repo.uploadBlob` | POST | Upload ATProto blob | 39 40### DPoP Auth Required 41 42| Endpoint | Method | Description | 43|----------|--------|-------------| 44| `/xrpc/io.atcr.hold.requestCrew` | POST | Request crew membership | 45 46--- 47 48## OCI Multipart Upload Endpoints (`pkg/hold/oci/xrpc.go`) 49 50All require `blob:write` permission via service token: 51 52| Endpoint | Method | Description | 53|----------|--------|-------------| 54| `/xrpc/io.atcr.hold.initiateUpload` | POST | Start multipart upload | 55| `/xrpc/io.atcr.hold.getPartUploadUrl` | POST | Get presigned URL for part | 56| `/xrpc/io.atcr.hold.uploadPart` | PUT | Direct buffered part upload | 57| `/xrpc/io.atcr.hold.completeUpload` | POST | Finalize multipart upload | 58| `/xrpc/io.atcr.hold.abortUpload` | POST | Cancel multipart upload | 59| `/xrpc/io.atcr.hold.notifyManifest` | POST | Notify manifest push (creates layer records + optional Bluesky post) | 60 61--- 62 63## Standard ATProto Endpoints (excluding io.atcr.hold.*) 64 65| Endpoint | 66|----------| 67| /xrpc/_health | 68| /xrpc/com.atproto.server.describeServer | 69| /xrpc/com.atproto.repo.describeRepo | 70| /xrpc/com.atproto.repo.getRecord | 71| /xrpc/com.atproto.repo.listRecords | 72| /xrpc/com.atproto.repo.deleteRecord | 73| /xrpc/com.atproto.repo.uploadBlob | 74| /xrpc/com.atproto.sync.listRepos | 75| /xrpc/com.atproto.sync.getRecord | 76| /xrpc/com.atproto.sync.getRepo | 77| /xrpc/com.atproto.sync.getRepoStatus | 78| /xrpc/com.atproto.sync.getBlob | 79| /xrpc/com.atproto.sync.subscribeRepos | 80| /xrpc/com.atproto.identity.resolveHandle | 81| /xrpc/app.bsky.actor.getProfile | 82| /xrpc/app.bsky.actor.getProfiles | 83| /.well-known/did.json | 84| /.well-known/atproto-did |