From
bafyreibqqkjhn4r5nxh3jpsrtkifjfcz3xqpde52hvmjnuzse6h4xogs6q
indexed 2026-09-06 01:26 UTC
View this version
To
bafyreibqqkjhn4r5nxh3jpsrtkifjfcz3xqpde52hvmjnuzse6h4xogs6q
indexed 2026-09-06 01:26 UTC
View this version
Compatibility
backward compatible No changes detected.
Changes
11
{22
"$type": "com.atproto.lexicon.schema",33
"defs": {44
"blobReference": {55
"description": "Reference to a blob stored in S3 or external storage",66
"properties": {77
"annotations": {88
"description": "Optional OCI annotation metadata. Map of string keys to string values.",99
"type": "unknown"1010
},1111
"digest": {1212
"description": "Content digest (e.g., 'sha256:...')",1313
"maxLength": 128,1414
"type": "string"1515
},1616
"mediaType": {1717
"description": "MIME type of the blob",1818
"maxLength": 128,1919
"type": "string"2020
},2121
"size": {2222
"description": "Size in bytes",2323
"type": "integer"2424
},2525
"urls": {2626
"description": "Optional direct URLs to blob (for BYOS)",2727
"items": {2828
"format": "uri",2929
"type": "string"3030
},3131
"type": "array"3232
}3333
},3434
"required": [3535
"mediaType",3636
"size",3737
"digest"3838
],3939
"type": "object"4040
},4141
"main": {4242
"description": "A container image manifest following OCI specification, stored in ATProto",4343
"key": "tid",4444
"record": {4545
"properties": {4646
"annotations": {4747
"description": "Optional OCI annotation metadata. Map of string keys to string values (e.g., org.opencontainers.image.title → 'My App').",4848
"type": "unknown"4949
},5050
"config": {5151
"description": "Reference to image configuration blob",5252
"ref": "#blobReference",5353
"type": "ref"5454
},5555
"createdAt": {5656
"description": "Record creation timestamp",5757
"format": "datetime",5858
"type": "string"5959
},6060
"digest": {6161
"description": "Content digest (e.g., 'sha256:abc123...')",6262
"maxLength": 128,6363
"type": "string"6464
},6565
"holdDid": {6666
"description": "DID of the hold service where blobs are stored (e.g., 'did:web:hold01.atcr.io'). Primary reference for hold resolution.",6767
"format": "did",6868
"type": "string"6969
},7070
"holdEndpoint": {7171
"description": "Hold service endpoint URL where blobs are stored. DEPRECATED: Use holdDid instead. Kept for backward compatibility.",7272
"format": "uri",7373
"type": "string"7474
},7575
"layers": {7676
"description": "Filesystem layers (for image manifests)",7777
"items": {7878
"ref": "#blobReference",7979
"type": "ref"8080
},8181
"type": "array"8282
},8383
"manifestBlob": {8484
"description": "The full OCI manifest stored as a blob in ATProto.",8585
"type": "blob"8686
},8787
"manifests": {8888
"description": "Referenced manifests (for manifest lists/indexes)",8989
"items": {9090
"ref": "#manifestReference",9191
"type": "ref"9292
},9393
"type": "array"9494
},9595
"mediaType": {9696
"description": "OCI media type",9797
"knownValues": [9898
"application/vnd.oci.image.manifest.v1+json",9999
"application/vnd.docker.distribution.manifest.v2+json",100100
"application/vnd.oci.image.index.v1+json",101101
"application/vnd.docker.distribution.manifest.list.v2+json"102102
],103103
"maxLength": 128,104104
"type": "string"105105
},106106
"repository": {107107
"description": "Repository name (e.g., 'myapp'). Scoped to user's DID.",108108
"maxLength": 255,109109
"type": "string"110110
},111111
"schemaVersion": {112112
"description": "OCI schema version (typically 2)",113113
"type": "integer"114114
},115115
"subject": {116116
"description": "Optional reference to another manifest (for attestations, signatures)",117117
"ref": "#blobReference",118118
"type": "ref"119119
}120120
},121121
"required": [122122
"repository",123123
"digest",124124
"mediaType",125125
"schemaVersion",126126
"createdAt"127127
],128128
"type": "object"129129
},130130
"type": "record"131131
},132132
"manifestReference": {133133
"description": "Reference to a manifest in a manifest list/index",134134
"properties": {135135
"annotations": {136136
"description": "Optional OCI annotation metadata. Map of string keys to string values.",137137
"type": "unknown"138138
},139139
"digest": {140140
"description": "Content digest (e.g., 'sha256:...')",141141
"maxLength": 128,142142
"type": "string"143143
},144144
"mediaType": {145145
"description": "Media type of the referenced manifest",146146
"maxLength": 128,147147
"type": "string"148148
},149149
"platform": {150150
"description": "Platform information for this manifest",151151
"ref": "#platform",152152
"type": "ref"153153
},154154
"size": {155155
"description": "Size in bytes",156156
"type": "integer"157157
}158158
},159159
"required": [160160
"mediaType",161161
"size",162162
"digest"163163
],164164
"type": "object"165165
},166166
"platform": {167167
"description": "Platform information describing OS and architecture",168168
"properties": {169169
"architecture": {170170
"description": "CPU architecture (e.g., 'amd64', 'arm64', 'arm')",171171
"maxLength": 32,172172
"type": "string"173173
},174174
"os": {175175
"description": "Operating system (e.g., 'linux', 'windows', 'darwin')",176176
"maxLength": 32,177177
"type": "string"178178
},179179
"osFeatures": {180180
"description": "Optional OS features",181181
"items": {182182
"maxLength": 64,183183
"type": "string"184184
},185185
"type": "array"186186
},187187
"osVersion": {188188
"description": "Optional OS version",189189
"maxLength": 64,190190
"type": "string"191191
},192192
"variant": {193193
"description": "Optional CPU variant (e.g., 'v7' for ARM)",194194
"maxLength": 32,195195
"type": "string"196196
}197197
},198198
"required": [199199
"architecture",200200
"os"201201
],202202
"type": "object"203203
}204204
},205205
"id": "io.atcr.manifest",206206
"lexicon": 1207207
}