@@ -84,14 +84,23 @@ A client will distinguish a manifest list from an image manifest based on the Co
8484- ** ` annotations ` ** * string-string hashmap*
8585
8686 This OPTIONAL property contains arbitrary metadata for the manifest list.
87- Annotations is a key-value, unordered hashmap.
88- Keys are unique, and best practice is to namespace the keys.
87+ Annotations MUST BE a key-value, unordered hashmap where both the key and value MUST be strings.
88+ While the key and value MUST be present, they MAY be empty strings.
89+ Keys MUST be unique, and best practice is to namespace the keys.
90+ Keys SHOULD be named using a reverse domain notation - e.g. `com.example.myKey`.
91+ Keys starting with the `org.opencontainers` namespace are reserved and MUST NOT be used.
92+ If there are no annotations then this property MAY either be absent or be an empty hashmap.
93+ Implementations that are reading/processing manifest lists MUST NOT generate an error if they encounter an unknown annotation key.
8994 Common annotation keys include:
9095 * **created** date on which the image was built (string, timestamps type)
9196 * **authors** contact details of the people or organization responsible for the image (freeform string)
9297 * **homepage** URL to find more information on the image (string, must be a URL with scheme HTTP or HTTPS)
9398 * **documentation** URL to get documentation on the image (string, must be a URL with scheme HTTP or HTTPS)
9499
100+ ### Extensibility
101+ The ` annotations ` property MAY be used as an extension point to include additional information that is not defined as part of this specification.
102+ Implementations that are reading/processing manifest lists MUST NOT generate an error if they encounter an unknown property.
103+ Instead they MUST ignore unknown properties.
95104
96105## Example Manifest List
97106
@@ -193,16 +202,25 @@ Unlike the [Manifest List](#manifest-list), which contains information about a s
193202
194203- ** ` annotations ` ** * hashmap*
195204
196- This OPTIONAL property contains arbitrary metadata for the manifest list.
197- Annotations is a key-value, unordered hashmap.
205+ This OPTIONAL property contains arbitrary metadata for the image manifest.
206+ Annotations MUST be a key-value, unordered hashmap where both the key and value MUST be strings.
207+ While the key and value MUST be present, they MAY be empty strings.
198208 Keys MUST be unique within the hashmap, and best practice is to namespace the keys.
209+ Keys SHOULD be named using a reverse domain notation - e.g. `com.example.myKey`.
210+ Keys starting with the `org.opencontainers` namespace are reserved and MUST NOT be used.
211+ If there are no annotations then this property MAY either be absent or be an empty hashmap.
212+ Implementations that are reading/processing the image manifest MUST NOT generate an error if they encounter an unknown annotation key.
199213 Common annotation keys include:
200214 * **created** date on which the image was built (string, timestamps type)
201215 * **authors** contact details of the people or organization responsible for the image (freeform string)
202216 * **homepage** URL to find more information on the image (string, must be a URL with scheme HTTP or HTTPS)
203217 * **documentation** URL to get documentation on the image (string, must be a URL with scheme HTTP or HTTPS)
204218 * **source** URL to get the source code for the binary files in the image (string, must be a URL with scheme HTTP or HTTPS)
205219
220+ ### Extensibility
221+ The ` annotations ` property MAY be used as an extension point to include additional information that is not defined as part of this specification.
222+ Implementations that are reading/processing image manifests MUST NOT generate an error if they encounter an unknown property.
223+ Instead they MUST ignore unknown properties.
206224
207225## Example Image Manifest
208226
0 commit comments