@@ -50,56 +50,111 @@ to implement this:
5050
5151### Collection object
5252
53- The TEA Collection object has the following parts
54-
55- * Preamble
56- * UUID of the TEA collection release object (TCO). Note that this
57- is the same UUID as the release object for this version. When updating
58- a collection, the version is changed.
59- * Product Release date (timestamp)
60- * Collection version release date (timestamp)
61- * _ Version_ of this collection object. Starting with 1.
62- * Reason for update/release of TCO
63- * ENUM reason
64- See below
65- * clear text description of change
66- * "New product release"
67- * "Corrected dependency in SBOM that was faulty"
68- * "Added missing In-Toto build attestation"
69- * List of artifact objects (see below)
70- * Optional Signature of the collection object
71-
72- The artifact object has the following parts
73-
74- * Artifact UUID
75- * Artifact name
76- * Author of the artifact object
77- * Name
78- * Email
79- * Organisation
80- * List of objects with the same content, but in different formats.
53+ The TEA Collection object has the following parts:
54+
55+ - Preamble
56+ - __ uuid__ : UUID of the TEA Collection object.
57+ Note that this is equal to the UUID of the associated TEA Component Release object.
58+ When updating a collection, only the ` version ` is changed.
59+ - __ version__ : TEA Collection version, incremented each time its content changes.
60+ Versions start with 1.
61+ - __ release_date__ : TEA Collection version release date.
62+ - __ update_reason__ : Reason for the update/release of the TEA Collection object.
63+ - __ type__ : Type of update reason.
64+ See [ reasons for TEA Collection update] ( #the-reason-for-tco-update-enum ) below.
65+ - __ comment__ : Free text description.
66+ - __ artifacts__ : List of TEA artifact objects.
67+ See [ below] ( #artifact-object ) .
68+
69+ ### Artifact object
70+
71+ The TEA Artifact object has the following parts:
72+
73+ - __ uuid__ : UUID of the TEA Artifact object.
74+ - __ name__ : Artifact name.
75+ - __ author__ : Author of the TEA Artifact object:
76+ - __ name__ : The name of the author.
77+ - __ email__ : The e-mail address of the author.
78+ - __ organization__ : Organization
79+ - __ type__ : Type of artifact.
80+ See [ TEA Artifact types] ( ../tea-artifact/tea-artifact.md ) for a list.
81+ - __ formats__ : List of objects with the same content, but in different formats.
8182 The order of the list has no significance.
82- * UUID for subdoc
83- * Optional BOM identifier
84- * SPDX or CycloneDX reference to BOM
85- * MIME media type
86- * Artifact category (enum)
87- * < https://cyclonedx.org/docs/1.6/json/#externalReferences_items_type >
88- * Description in clear text
89- * Direct URL for downloads of artefact
90- * Direct URL for download of external signature
91- * Size in bytes
92- * SHA384 checksum
83+ - __ mime_type__ : The MIME type of the document
84+ - __ description__ : A free text describing the artifact
85+ - __ url__ : Direct download URL for the artifact
86+ - __ signature_url__ : Direct download URL for an external signature of the artifact
87+ - __ checksums__ : List of checksums for the artifact
88+ - __ algType__ : Checksum algorithm
89+ See [ CycloneDX checksum algorithms] ( https://cyclonedx.org/docs/1.6/json/#components_items_hashes_items_alg ) for a list of supported values.
90+ - __ algValue__ : Checksum value
9391
9492### The reason for TCO update enum
9593
96- | ENUM | Explanation |
97- | -------------| --------------------------------|
98- | INITIAL_RELEASE | Initial release of the collection |
99- | VEX_UPDATED | Updated the VEX artifact(s) |
100- | ARTIFACT_UPDATED | Updated the artifact(s) other than VEX |
101- | ARTIFACT_REMOVED | Removal of artifact |
102- | ARTIFACT_ADDED | Addition of an artifact |
94+ | ENUM | Explanation |
95+ | ------------------ | -------- --------------------------------|
96+ | INITIAL_RELEASE | Initial release of the collection |
97+ | VEX_UPDATED | Updated the VEX artifact(s) |
98+ | ARTIFACT_UPDATED | Updated the artifact(s) other than VEX |
99+ | ARTIFACT_REMOVED | Removal of artifact |
100+ | ARTIFACT_ADDED | Addition of an artifact |
103101
104102Updates of VEX (CSAF) files may be handled in a different way by a TEA client,
105103producing different alerts than other changes of a collection.
104+
105+ ### Examples
106+
107+ ``` json
108+ {
109+ "uuid" : " 4c72fe22-9d83-4c2f-8eba-d6db484f32c8" ,
110+ "version" : 1 ,
111+ "release_date" : " 2024-12-13T00:00:00Z" ,
112+ "update_reason" : {
113+ "type" : " ARTIFACT_UPDATED" ,
114+ "comment" : " VDR file updated"
115+ },
116+ "artifacts" : [
117+ {
118+ "uuid" : " 1cb47b95-8bf8-3bad-a5a4-0d54d86e10ce" ,
119+ "name" : " Build SBOM" ,
120+ "type" : " bom" ,
121+ "formats" : [
122+ {
123+ "mime_type" : " application/vnd.cyclonedx+xml" ,
124+ "description" : " CycloneDX SBOM (XML)" ,
125+ "url" : " https://repo.maven.apache.org/maven2/org/apache/logging/log4j/log4j-core/2.24.3/log4j-core-2.24.3-cyclonedx.xml" ,
126+ "signature_url" : " https://repo.maven.apache.org/maven2/org/apache/logging/log4j/log4j-core/2.24.3/log4j-core-2.24.3-cyclonedx.xml.asc" ,
127+ "checksums" : [
128+ {
129+ "algType" : " MD5" ,
130+ "algValue" : " 2e1a525afc81b0a8ecff114b8b743de9"
131+ },
132+ {
133+ "algType" : " SHA-1" ,
134+ "algValue" : " 5a7d4caef63c5c5ccdf07c39337323529eb5a770"
135+ }
136+ ]
137+ }
138+ ]
139+ },
140+ {
141+ "uuid" : " dfa35519-9734-4259-bba1-3e825cf4be06" ,
142+ "name" : " Vulnerability Disclosure Report" ,
143+ "type" : " vulnerability-assertion" ,
144+ "formats" : [
145+ {
146+ "mime_type" : " application/vnd.cyclonedx+xml" ,
147+ "description" : " CycloneDX VDR (XML)" ,
148+ "url" : " https://logging.apache.org/cyclonedx/vdr.xml" ,
149+ "checksums" : [
150+ {
151+ "algType" : " SHA-256" ,
152+ "algValue" : " 75b81020b3917cb682b1a7605ade431e062f7a4c01a412f0b87543b6e995ad2a"
153+ }
154+ ]
155+ }
156+ ]
157+ }
158+ ]
159+ }
160+ ```
0 commit comments