You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: annotations.md
+8-2
Original file line number
Diff line number
Diff line change
@@ -16,8 +16,11 @@ This property contains arbitrary metadata.
16
16
17
17
## Pre-Defined Annotation Keys
18
18
19
-
This specification defines the following annotation keys, intended for but not limited to [image index](image-index.md) and image [manifest](manifest.md) authors:
20
-
***org.opencontainers.image.created** date and time on which the image was built (string, date-time as defined by [RFC 3339](https://tools.ietf.org/html/rfc3339#section-5.6)).
19
+
This specification defines the following annotation keys, intended for but not limited to [image index](image-index.md), image [manifest](manifest.md), [artifact](artifact.md), and [descriptor](descriptor.md) authors.
20
+
21
+
***org.opencontainers.artifact.created** date and time on which the artifact was built, conforming to [RFC 3339][rfc3339].
22
+
***org.opencontainers.artifact.description**: human readable description for the artifact (string)
23
+
***org.opencontainers.image.created** date and time on which the image was built, conforming to [RFC 3339][rfc3339].
21
24
***org.opencontainers.image.authors** contact details of the people or organization responsible for the image (freeform string)
22
25
***org.opencontainers.image.url** URL to find more information on the image (string)
23
26
***org.opencontainers.image.documentation** URL to get documentation on the image (string)
@@ -49,6 +52,7 @@ This specification defines the following annotation keys, intended for but not l
49
52
* This SHOULD be the immediate image sharing zero-indexed layers with the image, such as from a Dockerfile `FROM` statement.
50
53
* This SHOULD NOT reference any other images used to generate the contents of the image (e.g., multi-stage Dockerfile builds).
51
54
* If the `image.base.name` annotation is specified, the `image.base.digest` annotation SHOULD be the digest of the manifest referenced by the `image.ref.name` annotation.
55
+
* **org.opencontainers.referrers.filtersApplied** Comma separated list of filters applied by the registry in the [referrers listing](https://github.com/opencontainers/distribution-spec/blob/main/spec.md#listing-referrers) (string)
52
56
53
57
## Back-compatibility with Label Schema
54
58
@@ -74,3 +78,5 @@ While users are encouraged to use the **org.opencontainers.image** keys, tools M
74
78
| | `docker.*`, `rkt.*` | No equivalent in the OCI Image Spec |
The goal of the Artifact Manifest Specification is to define content addressable artifacts in order to store them along side container images in a registry.
4
+
Like [OCI Images](manifest.md), OCI Artifacts may be referenced by the hash of their manifest.
5
+
Unlike OCI Images, OCI Artifacts are not meant to be used by any container runtime.
6
+
7
+
Examples of artifacts that may be stored along with container images are Software Bill of Materials (SBOM), Digital Signatures, Provenance data, Supply Chain Attestations, scan results, and Helm charts.
8
+
9
+
This section defines the `application/vnd.oci.artifact.manifest.v1+json`[media type](media-types.md).
10
+
For the media type(s) that this is compatible with see the [matrix](media-types.md#compatibility-matrix).
11
+
12
+
# Artifact Manifest
13
+
14
+
## *Artifact Manifest* Property Descriptions
15
+
16
+
-**`mediaType`***string*
17
+
18
+
This property MUST be used and contain the media type `application/vnd.oci.artifact.manifest.v1+json`.
19
+
20
+
-**`artifactType`***string*
21
+
22
+
This property SHOULD be used and contain the mediaType of the referenced artifact.
23
+
If defined, the value MUST comply with [RFC 6838][rfc6838], including the [naming requirements in its section 4.2][rfc6838-s4.2], and MAY be registered with [IANA][iana].
24
+
25
+
-**`blobs`***array of objects*
26
+
27
+
This OPTIONAL property is an array of objects and each item in the array MUST be a [descriptor](descriptor.md).
28
+
Each descriptor represents an artifact of any IANA mediaType.
29
+
The list MAY be ordered for certain artifact types like scan results.
30
+
31
+
-**`refers`***[descriptor](descriptor.md)*
32
+
33
+
This OPTIONAL property specifies a [descriptor](descriptor.md) of another manifest.
34
+
This value, used by the [`referrers` API](https://github.com/opencontainers/distribution-spec/blob/main/spec.md#listing-referrers), indicates a relationship to the specified manifest.
35
+
36
+
-**`annotations`***string-string map*
37
+
38
+
This OPTIONAL property contains additional metadata for the artifact manifest.
39
+
This OPTIONAL property MUST use the [annotation rules](annotations.md#rules).
40
+
41
+
See [Pre-Defined Annotation Keys](annotations.md#pre-defined-annotation-keys).
42
+
43
+
Annotations MAY be used to filter the response from the [`referrers` API](https://github.com/opencontainers/distribution-spec/blob/main/spec.md#listing-referrers).
44
+
45
+
## Examples
46
+
47
+
*Example showing an artifact manifest for an example SBOM referencing an image:*
Copy file name to clipboardExpand all lines: descriptor.md
+31-8
Original file line number
Diff line number
Diff line change
@@ -1,11 +1,12 @@
1
1
# OCI Content Descriptors
2
2
3
-
* An OCI image consists of several different components, arranged in a [Merkle Directed Acyclic Graph (DAG)](https://en.wikipedia.org/wiki/Merkle_tree).
4
-
* References between components in the graph are expressed through _Content Descriptors_.
5
-
* A Content Descriptor (or simply _Descriptor_) describes the disposition of the targeted content.
6
-
* A Content Descriptor includes the type of the content, a content identifier (_digest_), and the byte-size of the raw content.
7
-
* Descriptors SHOULD be embedded in other formats to securely reference external content.
8
-
* Other formats SHOULD use descriptors to securely reference external content.
3
+
- An OCI image consists of several different components, arranged in a [Merkle Directed Acyclic Graph (DAG)](https://en.wikipedia.org/wiki/Merkle_tree).
4
+
- References between components in the graph are expressed through _Content Descriptors_.
5
+
- A Content Descriptor (or simply _Descriptor_) describes the disposition of the targeted content.
6
+
- A Content Descriptor includes the type of the content, a content identifier (_digest_), and the byte-size of the raw content.
7
+
Optionally, it includes the type of artifact it is describing.
8
+
- Descriptors SHOULD be embedded in other formats to securely reference external content.
9
+
- Other formats SHOULD use descriptors to securely reference external content.
9
10
10
11
This section defines the `application/vnd.oci.descriptor.v1+json`[media type](media-types.md).
11
12
@@ -51,8 +52,16 @@ The following fields contain the primary properties that constitute a Descriptor
51
52
The decoded data MUST be identical to the referenced content and SHOULD be verified against the [`digest`](#digests) and `size` fields by content consumers.
52
53
See [Embedded Content](#embedded-content) for when this is appropriate.
53
54
55
+
-**`artifactType`***string*
56
+
57
+
This OPTIONAL property contains the type of an artifact when the descriptor points to an artifact.
58
+
This is the value of `artifactType` when the descriptor references an [artifact manifest](artifact.md).
59
+
This is the value of the config descriptor `mediaType` when the descriptor references an [image manifest](manifest.md).
60
+
54
61
Descriptors pointing to [`application/vnd.oci.image.manifest.v1+json`](manifest.md) SHOULD include the extended field `platform`, see [Image Index Property Descriptions](image-index.md#image-index-property-descriptions) for details.
55
62
63
+
Descriptors pointing to [`application/vnd.oci.artifact.manifest.v1+json`](artifact.md) SHOULD include the extended field `artifactType`.
64
+
56
65
### Reserved
57
66
58
67
Extended _Descriptor_ field additions proposed in other OCI specifications SHOULD first be considered for addition into this specification.
@@ -68,7 +77,7 @@ The _algorithm_ specifies the cryptographic hash function and encoding used for
68
77
69
78
A digest string MUST match the following [grammar](considerations.md#ebnf):
Copy file name to clipboardExpand all lines: manifest.md
+10
Original file line number
Diff line number
Diff line change
@@ -65,6 +65,11 @@ Unlike the [image index](image-index.md), which contains information about a set
65
65
66
66
Entries in this field will frequently use the `+gzip` types.
67
67
68
+
-**`refers`***[descriptor](descriptor.md)*
69
+
70
+
This OPTIONAL property specifies a [descriptor](descriptor.md) of another manifest.
71
+
This value, used by the [`referrers` API](https://github.com/opencontainers/distribution-spec/blob/main/spec.md#listing-referrers), indicates a relationship to the specified manifest.
72
+
68
73
-**`annotations`***string-string map*
69
74
70
75
This OPTIONAL property contains arbitrary metadata for the image manifest.
@@ -101,6 +106,11 @@ Unlike the [image index](image-index.md), which contains information about a set
Copy file name to clipboardExpand all lines: media-types.md
+1
Original file line number
Diff line number
Diff line change
@@ -13,6 +13,7 @@ The following media types identify the formats described here and their referenc
13
13
-`application/vnd.oci.image.layer.nondistributable.v1.tar`: ["Layer", as a tar archive with distribution restrictions](layer.md#non-distributable-layers)
14
14
-`application/vnd.oci.image.layer.nondistributable.v1.tar+gzip`: ["Layer", as a tar archive with distribution restrictions](layer.md#gzip-media-types) compressed with [gzip][rfc1952]
15
15
-`application/vnd.oci.image.layer.nondistributable.v1.tar+zstd`: ["Layer", as a tar archive with distribution restrictions](layer.md#zstd-media-types) compressed with [zstd][rfc8478]
0 commit comments