Skip to content

Commit d7e648b

Browse files
author
Doug Davis
committed
Add some text about extensions
Signed-off-by: Doug Davis <[email protected]>
1 parent 45e8036 commit d7e648b

File tree

1 file changed

+22
-4
lines changed

1 file changed

+22
-4
lines changed

manifest.md

Lines changed: 22 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)