{"uri":"at://did:web:lexicon.atcr.io/com.atproto.lexicon.schema/io.atcr.manifest","cid":"bafyreibqqkjhn4r5nxh3jpsrtkifjfcz3xqpde52hvmjnuzse6h4xogs6q","value":{"id":"io.atcr.manifest","defs":{"main":{"key":"tid","type":"record","record":{"type":"object","required":["repository","digest","mediaType","schemaVersion","createdAt"],"properties":{"config":{"ref":"#blobReference","type":"ref","description":"Reference to image configuration blob"},"digest":{"type":"string","maxLength":128,"description":"Content digest (e.g., 'sha256:abc123...')"},"layers":{"type":"array","items":{"ref":"#blobReference","type":"ref"},"description":"Filesystem layers (for image manifests)"},"holdDid":{"type":"string","format":"did","description":"DID of the hold service where blobs are stored (e.g., 'did:web:hold01.atcr.io'). Primary reference for hold resolution."},"subject":{"ref":"#blobReference","type":"ref","description":"Optional reference to another manifest (for attestations, signatures)"},"createdAt":{"type":"string","format":"datetime","description":"Record creation timestamp"},"manifests":{"type":"array","items":{"ref":"#manifestReference","type":"ref"},"description":"Referenced manifests (for manifest lists/indexes)"},"mediaType":{"type":"string","maxLength":128,"description":"OCI media type","knownValues":["application/vnd.oci.image.manifest.v1+json","application/vnd.docker.distribution.manifest.v2+json","application/vnd.oci.image.index.v1+json","application/vnd.docker.distribution.manifest.list.v2+json"]},"repository":{"type":"string","maxLength":255,"description":"Repository name (e.g., 'myapp'). Scoped to user's DID."},"annotations":{"type":"unknown","description":"Optional OCI annotation metadata. Map of string keys to string values (e.g., org.opencontainers.image.title → 'My App')."},"holdEndpoint":{"type":"string","format":"uri","description":"Hold service endpoint URL where blobs are stored. DEPRECATED: Use holdDid instead. Kept for backward compatibility."},"manifestBlob":{"type":"blob","description":"The full OCI manifest stored as a blob in ATProto."},"schemaVersion":{"type":"integer","description":"OCI schema version (typically 2)"}}},"description":"A container image manifest following OCI specification, stored in ATProto"},"platform":{"type":"object","required":["architecture","os"],"properties":{"os":{"type":"string","maxLength":32,"description":"Operating system (e.g., 'linux', 'windows', 'darwin')"},"variant":{"type":"string","maxLength":32,"description":"Optional CPU variant (e.g., 'v7' for ARM)"},"osVersion":{"type":"string","maxLength":64,"description":"Optional OS version"},"osFeatures":{"type":"array","items":{"type":"string","maxLength":64},"description":"Optional OS features"},"architecture":{"type":"string","maxLength":32,"description":"CPU architecture (e.g., 'amd64', 'arm64', 'arm')"}},"description":"Platform information describing OS and architecture"},"blobReference":{"type":"object","required":["mediaType","size","digest"],"properties":{"size":{"type":"integer","description":"Size in bytes"},"urls":{"type":"array","items":{"type":"string","format":"uri"},"description":"Optional direct URLs to blob (for BYOS)"},"digest":{"type":"string","maxLength":128,"description":"Content digest (e.g., 'sha256:...')"},"mediaType":{"type":"string","maxLength":128,"description":"MIME type of the blob"},"annotations":{"type":"unknown","description":"Optional OCI annotation metadata. Map of string keys to string values."}},"description":"Reference to a blob stored in S3 or external storage"},"manifestReference":{"type":"object","required":["mediaType","size","digest"],"properties":{"size":{"type":"integer","description":"Size in bytes"},"digest":{"type":"string","maxLength":128,"description":"Content digest (e.g., 'sha256:...')"},"platform":{"ref":"#platform","type":"ref","description":"Platform information for this manifest"},"mediaType":{"type":"string","maxLength":128,"description":"Media type of the referenced manifest"},"annotations":{"type":"unknown","description":"Optional OCI annotation metadata. Map of string keys to string values."}},"description":"Reference to a manifest in a manifest list/index"}},"$type":"com.atproto.lexicon.schema","lexicon":1}}