1- ---
2- jsonSchemaDialect : https://spec.openapis.org/oas/3.1/dialect/base
31openapi : 3.1.1
2+ jsonSchemaDialect : https://spec.openapis.org/oas/3.1/dialect/base
43info :
54 title : Transparency Exchange API
65 summary : The OWASP Transparency Exchange API specification for consumers and publishers
@@ -85,10 +84,10 @@ paths:
8584 $ref : " #/components/responses/404-object-by-id-not-found"
8685 tags :
8786 - TEA Component
88- /component/{uuid}/versions :
87+ /component/{uuid}/releases :
8988 get :
90- description : Get all TEA Component versions that match the given criteria
91- operationId : getCollectionsByComponentId
89+ description : Get releases of the component
90+ operationId : getReleasesByComponentId
9291 parameters :
9392 - name : uuid
9493 in : path
@@ -99,34 +98,91 @@ paths:
9998 format : uuid
10099 responses :
101100 ' 200 ' :
102- description : Requested TEA Component found and returned
101+ description : Requested Releases of TEA Component found and returned
103102 content :
104103 application/json :
105104 schema :
106105 type : array
107- items :
108- " $ref " : " #/components/schemas/component-version "
106+ items :
107+ " $ref " : " #/components/schemas/release "
109108 ' 400 ' :
110109 $ref : " #/components/responses/400-invalid-request"
111110 ' 404 ' :
112111 $ref : " #/components/responses/404-object-by-id-not-found"
113112 tags :
114- - TEA Leaf
115- /collection /{uuid} :
113+ - TEA Component
114+ /release /{uuid}/collection :
116115 get :
117- description : Get a TEA Collection by its identifier
118- operationId : getTeaCollectionById
116+ description : Get the latest TEA Collection belonging to the TEA Release
117+ operationId : getLatestCollectionByReleaseId
119118 parameters :
120119 - name : uuid
121120 in : path
122121 required : true
123- description : UUID of TEA Collection in the TEA server
122+ description : UUID of TEA Release in the TEA server
123+ schema :
124+ type : string
125+ format : uuid
126+ responses :
127+ ' 200 ' :
128+ description : Requested TEA Collection found and returned
129+ content :
130+ application/json :
131+ schema :
132+ " $ref " : " #/components/schemas/collection"
133+ ' 400 ' :
134+ $ref : " #/components/responses/400-invalid-request"
135+ ' 404 ' :
136+ $ref : " #/components/responses/404-object-by-id-not-found"
137+ tags :
138+ - TEA Release
139+ /release/{uuid}/collections :
140+ get :
141+ description : Get the TEA Collections belonging to the TEA Release
142+ operationId : getCollectionsByReleaseId
143+ parameters :
144+ - name : uuid
145+ in : path
146+ required : true
147+ description : UUID of TEA Release in the TEA server
124148 schema :
125149 type : string
126150 format : uuid
127151 responses :
128152 ' 200 ' :
129153 description : Requested TEA Collection found and returned
154+ content :
155+ application/json :
156+ schema :
157+ type : array
158+ items :
159+ " $ref " : " #/components/schemas/collection"
160+ ' 400 ' :
161+ $ref : " #/components/responses/400-invalid-request"
162+ ' 404 ' :
163+ $ref : " #/components/responses/404-object-by-id-not-found"
164+ tags :
165+ - TEA Release
166+ /release/{uuid}/collection/{version} :
167+ get :
168+ description : Get all versions of a TEA Collection by its UUID
169+ operationId : getTeaCollectionVersionByCollectionIdAndVersion
170+ parameters :
171+ - name : uuid
172+ in : path
173+ required : true
174+ description : UUID of TEA Collection in the TEA server
175+ schema :
176+ " $ref " : " #/components/schemas/uuid"
177+ - name : version
178+ in : path
179+ required : true
180+ description : Version of TEA Collection
181+ schema :
182+ type : integer
183+ responses :
184+ ' 200 ' :
185+ description : Requested TEA Collection Version found and returned
130186 content :
131187 application/json :
132188 schema :
@@ -136,7 +192,31 @@ paths:
136192 ' 404 ' :
137193 $ref : " #/components/responses/404-object-by-id-not-found"
138194 tags :
139- - TEA Collection
195+ - TEA Release
196+ /artifact/{uuid} :
197+ get :
198+ description : Get metadata for specific TEA artifact
199+ operationId : getArtifact
200+ parameters :
201+ - name : uuid
202+ in : path
203+ required : true
204+ description : UUID of TEA Artifact in the TEA server
205+ schema :
206+ " $ref " : " #/components/schemas/uuid"
207+ responses :
208+ ' 200 ' :
209+ description : Requested TEA Artifact metadata found and returned
210+ content :
211+ application/json :
212+ schema :
213+ " $ref " : " #/components/schemas/artifact"
214+ ' 400 ' :
215+ $ref : " #/components/responses/400-invalid-request"
216+ ' 404 ' :
217+ $ref : " #/components/responses/404-object-by-id-not-found"
218+ tags :
219+ - TEA Artifact
140220components :
141221 schemas :
142222 #
@@ -218,36 +298,31 @@ components:
218298 - name
219299 - identifiers
220300 - versions
221- component-version :
301+ #
302+ # TEA Release and related objects
303+ #
304+ release :
222305 type : object
223- description : A specific version of a TEA component
224306 properties :
225- collection_uuid :
307+ uuid :
226308 " $ref " : " #/components/schemas/uuid"
227309 version :
228310 type : string
229- description : Version number of TEA component
230- identifiers :
231- type : array
232- description : List of identifiers for this component version
233- items :
234- " $ref " : " #/components/schemas/identifier"
235311 release_date :
236312 " $ref " : " #/components/schemas/date-time"
237- description : Release date
238313 pre_release :
239314 type : boolean
240315 description : Marks if the version is a pre-release version
241- classifier :
242- type : object
243- description : Optional classifier to distinguish between artifacts
316+ identifiers :
317+ type : array
318+ description : List of identifiers for the component
319+ items :
320+ " $ref " : " #/components/schemas/identifier"
321+ # add lifecycle here
244322 required :
245323 - uuid
246324 - version
247- - identifiers
248- - release_date
249- - pre_release
250-
325+ - release_date
251326 #
252327 # TEA Collection and related objects
253328 #
@@ -257,11 +332,12 @@ components:
257332 properties :
258333 uuid :
259334 " $ref " : " #/components/schemas/uuid"
260- description : Must match the UUID of the corresponding `component_version ` object
335+ description : Must match the UUID of the corresponding `release ` object
261336 version :
262337 type : integer
263- default : 1
264338 description : Collection version, incremented each time its content changes.
339+ release_date :
340+ " $ref " : " #/components/schemas/date-time"
265341 update_reason :
266342 " $ref " : " #/components/schemas/collection-update-reason"
267343 artifacts :
@@ -270,7 +346,7 @@ components:
270346 " $ref " : " #/components/schemas/artifact"
271347 collection-update-reason :
272348 type : object
273- description : Reason for the last update to the TEA collection
349+ description : Reason for the update to the TEA collection
274350 properties :
275351 type :
276352 " $ref " : " #/components/schemas/collection-update-reason-type"
@@ -281,10 +357,11 @@ components:
281357 type : string
282358 description : Type of TEA collection update
283359 enum :
284- - product_released
285- - vulnerability_disclosed
286- - attestation_added
287- - document_fixed
360+ - INITIAL_RELEASE
361+ - VEX_UPDATED
362+ - ARTIFACT_UPDATED
363+ - ARTIFACT_ADDED
364+ - ARTIFACT_REMOVED
288365
289366 #
290367 # TEA Artifact and related objects
@@ -367,105 +444,10 @@ components:
367444 - digital-signature
368445 - rfc-9116
369446 - other
370- meta:enum :
371- vcs : Version Control System
372- issue-tracker : Issue or defect tracking system, or an Application Lifecycle
373- Management (ALM) system
374- website : Website
375- advisories : Security advisories
376- bom : Bill of Materials (SBOM, OBOM, HBOM, SaaSBOM, etc)
377- mailing-list : Mailing list or discussion group
378- social : Social media account
379- chat : Real-time chat platform
380- documentation : Documentation, guides, or how-to instructions
381- support : Community or commercial support
382- source-distribution :
383- description : The location where the source code distributable can be obtained.
384- This is often an archive format such as zip or tgz. The source-distribution
385- type complements use of the version control (vcs) type.
386- distribution : Direct or repository download location
387- distribution-intake : The location where a component was published to. This
388- is often the same as "distribution" but may also include specialized publishing
389- processes that act as an intermediary.
390- license : The reference to the license file. If a license URL has been defined
391- in the license node, it should also be defined as an external reference
392- for completeness.
393- build-meta : Build-system specific meta file (i.e. pom.xml, package.json, .nuspec,
394- etc)
395- build-system : Reference to an automated build system
396- release-notes : Reference to release notes
397- security-contact : Specifies a way to contact the maintainer, supplier, or
398- provider in the event of a security incident. Common URIs include links
399- to a disclosure procedure, a mailto (RFC-2368) that specifies an email address,
400- a tel (RFC-3966) that specifies a phone number, or dns (RFC-4501) that specifies
401- the records containing DNS Security TXT.
402- model-card : A model card describes the intended uses of a machine learning
403- model, potential limitations, biases, ethical considerations, training parameters,
404- datasets used to train the model, performance metrics, and other relevant
405- data useful for ML transparency.
406- log : A record of events that occurred in a computer system or application,
407- such as problems, errors, or information on current operations.
408- configuration : Parameters or settings that may be used by other components
409- or services.
410- evidence : Information used to substantiate a claim.
411- formulation : Describes how a component or service was manufactured or deployed.
412- attestation : Human or machine-readable statements containing facts, evidence,
413- or testimony.
414- threat-model : An enumeration of identified weaknesses, threats, and countermeasures,
415- dataflow diagram (DFD), attack tree, and other supporting documentation
416- in human-readable or machine-readable format.
417- adversary-model : The defined assumptions, goals, and capabilities of an adversary.
418- risk-assessment : Identifies and analyzes the potential of future events that
419- may negatively impact individuals, assets, and/or the environment. Risk
420- assessments may also include judgments on the tolerability of each risk.
421- vulnerability-assertion : A Vulnerability Disclosure Report (VDR) which asserts
422- the known and previously unknown vulnerabilities that affect a component,
423- service, or product including the analysis and findings describing the impact
424- (or lack of impact) that the reported vulnerability has on a component,
425- service, or product.
426- exploitability-statement : A Vulnerability Exploitability eXchange (VEX) which
427- asserts the known vulnerabilities that do not affect a product, product
428- family, or organization, and optionally the ones that do. The VEX should
429- include the analysis and findings describing the impact (or lack of impact)
430- that the reported vulnerability has on the product, product family, or organization.
431- pentest-report : Results from an authorized simulated cyberattack on a component
432- or service, otherwise known as a penetration test.
433- static-analysis-report : SARIF or proprietary machine or human-readable report
434- for which static analysis has identified code quality, security, and other
435- potential issues with the source code.
436- dynamic-analysis-report : Dynamic analysis report that has identified issues
437- such as vulnerabilities and misconfigurations.
438- runtime-analysis-report : Report generated by analyzing the call stack of a
439- running application.
440- component-analysis-report : Report generated by Software Composition Analysis
441- (SCA), container analysis, or other forms of component analysis.
442- maturity-report : Report containing a formal assessment of an organization,
443- business unit, or team against a maturity model.
444- certification-report : Industry, regulatory, or other certification from an
445- accredited (if applicable) certification body.
446- codified-infrastructure : Code or configuration that defines and provisions
447- virtualized infrastructure, commonly referred to as Infrastructure as Code
448- (IaC).
449- quality-metrics : Report or system in which quality metrics can be obtained.
450- poam : Plans of Action and Milestones (POAM) complement an "attestation" external
451- reference. POAM is defined by NIST as a "document that identifies tasks
452- needing to be accomplished. It details resources required to accomplish
453- the elements of the plan, any milestones in meeting the tasks and scheduled
454- completion dates for the milestones".
455- electronic-signature : An e-signature is commonly a scanned representation
456- of a written signature or a stylized script of the person's name.
457- digital-signature : A signature that leverages cryptography, typically public/private
458- key pairs, which provides strong authenticity verification.
459- rfc-9116 : Document that complies with RFC-9116 (A File Format to Aid in Security
460- Vulnerability Disclosure)
461- other : Use this if no other types accurately describe the purpose of the external
462- reference.
463447 artifact-format :
464448 type : object
465449 description : A security-related document in a specific format
466450 properties :
467- uuid :
468- " $ref " : " #/components/schemas/uuid"
469451 mimeType :
470452 type : string
471453 description : The MIME type of the document
@@ -509,7 +491,6 @@ components:
509491 - BLAKE2b-384
510492 - BLAKE2b-512
511493 - BLAKE3
512-
513494 #
514495 # Types used in API responses
515496 #
@@ -606,9 +587,10 @@ security:
606587 - bearerAuth : []
607588 - basicAuth : []
608589tags :
609- - name : TEA Collection
610- - name : TEA Component
611590 - name : TEA Product
591+ - name : TEA Component
592+ - name : TEA Release
593+ - name : TEA Artifact
612594externalDocs :
613595 description : Transparency Exchange API specification
614596 url : https://github.com/CycloneDX/transparency-exchange-api
0 commit comments