io.atcr.manifest

atcr.io

Documentation

A container image manifest following OCI specification, stored in ATProto

main record

A container image manifest following OCI specification, stored in ATProto

Record Key tid Timestamp-based ID

Properties

annotations unknown Optional

Optional OCI annotation metadata. Map of string keys to string values (e.g., org.opencontainers.image.title → 'My App').

config ref #blobReference Optional

Reference to image configuration blob

createdAt string datetime Required

Record creation timestamp

digest string Required

Content digest (e.g., 'sha256:abc123...')

maxLength: 128 bytes
holdDid string did Optional

DID of the hold service where blobs are stored (e.g., 'did:web:hold01.atcr.io'). Primary reference for hold resolution.

holdEndpoint string uri Optional

Hold service endpoint URL where blobs are stored. DEPRECATED: Use holdDid instead. Kept for backward compatibility.

layers array of ref #blobReference Optional

Filesystem layers (for image manifests)

manifestBlob blob Optional

The full OCI manifest stored as a blob in ATProto.

manifests array of ref #manifestReference Optional

Referenced manifests (for manifest lists/indexes)

mediaType string Required

OCI media type

maxLength: 128 bytes
Known values: 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 string Required

Repository name (e.g., 'myapp'). Scoped to user's DID.

maxLength: 255 bytes
schemaVersion integer Required

OCI schema version (typically 2)

subject ref #blobReference Optional

Optional reference to another manifest (for attestations, signatures)

View raw schema
{
  "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"
}
blobReference object

Reference to a blob stored in S3 or external storage

Properties

annotations unknown Optional

Optional OCI annotation metadata. Map of string keys to string values.

digest string Required

Content digest (e.g., 'sha256:...')

maxLength: 128 bytes
mediaType string Required

MIME type of the blob

maxLength: 128 bytes
size integer Required

Size in bytes

urls array of stringuri Optional

Optional direct URLs to blob (for BYOS)

View raw schema
{
  "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 object

Reference to a manifest in a manifest list/index

Properties

annotations unknown Optional

Optional OCI annotation metadata. Map of string keys to string values.

digest string Required

Content digest (e.g., 'sha256:...')

maxLength: 128 bytes
mediaType string Required

Media type of the referenced manifest

maxLength: 128 bytes
platform ref #platform Optional

Platform information for this manifest

size integer Required

Size in bytes

View raw schema
{
  "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"
}
platform object

Platform information describing OS and architecture

Properties

architecture string Required

CPU architecture (e.g., 'amd64', 'arm64', 'arm')

maxLength: 32 bytes
os string Required

Operating system (e.g., 'linux', 'windows', 'darwin')

maxLength: 32 bytes
osFeatures array of string Optional

Optional OS features

osVersion string Optional

Optional OS version

maxLength: 64 bytes
variant string Optional

Optional CPU variant (e.g., 'v7' for ARM)

maxLength: 32 bytes
View raw schema
{
  "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"
}

Lexicon Garden

@