{
"id": "io.atcr.hold.captain",
"defs": {
"main": {
"key": "literal:self",
"type": "record",
"record": {
"type": "object",
"required": [
"owner",
"public",
"allowAllCrew",
"enableBlueskyPosts",
"deployedAt"
],
"properties": {
"owner": {
"type": "string",
"format": "did",
"description": "DID of the hold owner"
},
"public": {
"type": "boolean",
"description": "Whether this hold allows public blob reads (pulls) without authentication"
},
"region": {
"type": "string",
"maxLength": 64,
"description": "S3 region where blobs are stored"
},
"successor": {
"type": "string",
"format": "did",
"description": "DID of successor hold for migration redirect"
},
"deployedAt": {
"type": "string",
"format": "datetime",
"description": "RFC3339 timestamp of when the hold was deployed"
},
"allowAllCrew": {
"type": "boolean",
"description": "Allow any authenticated user to register as crew"
},
"enableBlueskyPosts": {
"type": "boolean",
"description": "Enable Bluesky posts when manifests are pushed"
}
}
},
"description": "Represents the hold's ownership and metadata. Stored as a singleton record at rkey 'self' in the hold's embedded PDS."
}
},
"$type": "com.atproto.lexicon.schema",
"lexicon": 1
}