full diff

io.atcr.manifest

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": 1
207207}