DockerComms v1.0 provides secure file transport over OCI registries. It is not a messaging system; it transports files as OCI artifacts with signing and verification.
application/vnd.dockercomms.message.v1- Message artifactapplication/vnd.dockercomms.receipt.v1- Receipt artifactapplication/vnd.dev.sigstore.bundle.v0.3+json- Sigstore bundle (configurable)
- Manifest:
application/vnd.oci.image.manifest.v1+json - Chunk layer (gzip):
application/vnd.dockercomms.chunk.v1.tar+gzip - Chunk layer (zstd):
application/vnd.dockercomms.chunk.v1.tar+zstd
dockercomms.version= 1.0dockercomms.senderdockercomms.recipientdockercomms.created_at(RFC3339)dockercomms.ttl_seconds(int)dockercomms.filename(basename only)dockercomms.total_bytesdockercomms.chunk_bytesdockercomms.chunk_countdockercomms.compression= gzip | zstd
dockercomms.message.id(UUID)
dockercomms.receipt.for(full digest sha256:...)dockercomms.receipt.status= accepted | rejecteddockercomms.receipt.verified= true | falsedockercomms.receipt.reason(optional)
- Message:
inbox-<recipient_tag>-<YYYYMMDD>-<sid8>-<mid8> - Receipt:
receipt-<hexDigest12>-<ts>-<rand> - Bundle:
bundle-<hexDigest12>-<ts>-<rand>
recipient_tag = lower(base32hex(sha256(recipient)))[:26]
hexDigest12 = first 12 hex chars of manifest digest without "sha256:"
- mediaType:
application/vnd.oci.empty.v1+json - digest:
sha256:44136fa355b3678a1146ad16f7e8649e94fb4fc21fe77e8310c060f61caaff8a - size: 2
- content: {}
Each layer is a tar stream with exactly one file: chunk_<index>.bin
Descriptor annotation: dockercomms.chunk.index = 0..N-1