Skip to content

Commit 1726b76

Browse files
Merge pull request #195 from taleodor/2025-09-TEA-improvements-post-merge
TEA Improvements Post Product-Component model merge - 2025-09
2 parents 6faaffa + 9621647 commit 1726b76

File tree

1 file changed

+130
-41
lines changed

1 file changed

+130
-41
lines changed

spec/openapi.yaml

Lines changed: 130 additions & 41 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ info:
1212
license:
1313
name: Apache 2.0
1414
url: https://github.com/CycloneDX/transparency-exchange-api/blob/main/LICENSE
15-
version: 0.1.0-beta.1
15+
version: 0.2.0-beta.2
1616
servers:
1717
- url: http://localhost/tea/v1
1818
description: Local development
@@ -52,15 +52,11 @@ paths:
5252
description: UUID of TEA Product in the TEA server
5353
schema:
5454
"$ref": "#/components/schemas/uuid"
55+
- $ref: "#/components/parameters/page-offset"
56+
- $ref: "#/components/parameters/page-size"
5557
responses:
5658
'200':
57-
description: Requested Releases of TEA Product found and returned
58-
content:
59-
application/json:
60-
schema:
61-
type: array
62-
items:
63-
"$ref": "#/components/schemas/productRelease"
59+
$ref: "#/components/responses/paginated-product-release"
6460
'400':
6561
$ref: "#/components/responses/400-invalid-request"
6662
'404':
@@ -94,7 +90,7 @@ paths:
9490
/productReleases:
9591
get:
9692
description: Returns a list of TEA product releases. Note that multiple product releases may match.
97-
operationId: getTeaProductReleaseByIdentifier
93+
operationId: queryTeaProductReleases
9894
parameters:
9995
- $ref: "#/components/parameters/page-offset"
10096
- $ref: "#/components/parameters/page-size"
@@ -111,7 +107,7 @@ paths:
111107
get:
112108
description: Returns a list of TEA products. Note that multiple products may
113109
match.
114-
operationId: getTeaProductByIdentifier
110+
operationId: queryTeaProducts
115111
parameters:
116112
- $ref: "#/components/parameters/page-offset"
117113
- $ref: "#/components/parameters/page-size"
@@ -174,15 +170,39 @@ paths:
174170
$ref: "#/components/responses/404-object-by-id-not-found"
175171
tags:
176172
- TEA Component
177-
/release/{uuid}/collection/latest:
173+
/componentRelease/{uuid}:
174+
get:
175+
description: Get the TEA Component Release with its latest collection
176+
operationId: getComponentReleaseById
177+
parameters:
178+
- name: uuid
179+
in: path
180+
required: true
181+
description: UUID of TEA Component Release in the TEA server
182+
schema:
183+
"$ref": "#/components/schemas/uuid"
184+
responses:
185+
'200':
186+
description: Requested TEA Component Release and its latest Collection found and returned
187+
content:
188+
application/json:
189+
schema:
190+
"$ref": "#/components/schemas/component-release-with-collection"
191+
'400':
192+
$ref: "#/components/responses/400-invalid-request"
193+
'404':
194+
$ref: "#/components/responses/404-object-by-id-not-found"
195+
tags:
196+
- TEA Component Release
197+
/componentRelease/{uuid}/collection/latest:
178198
get:
179-
description: Get the latest TEA Collection belonging to the TEA Release
199+
description: Get the latest TEA Collection belonging to the TEA Component Release
180200
operationId: getLatestCollection
181201
parameters:
182202
- name: uuid
183203
in: path
184204
required: true
185-
description: UUID of TEA Release in the TEA server
205+
description: UUID of TEA Component Release in the TEA server
186206
schema:
187207
"$ref": "#/components/schemas/uuid"
188208
responses:
@@ -197,7 +217,7 @@ paths:
197217
'404':
198218
$ref: "#/components/responses/404-object-by-id-not-found"
199219
tags:
200-
- TEA Release
220+
- TEA Component Release
201221
/productRelease/{uuid}/collection/latest:
202222
get:
203223
description: Get the latest TEA Collection belonging to the TEA Product Release
@@ -222,15 +242,15 @@ paths:
222242
$ref: "#/components/responses/404-object-by-id-not-found"
223243
tags:
224244
- TEA Product Release
225-
/release/{uuid}/collections:
245+
/componentRelease/{uuid}/collections:
226246
get:
227-
description: Get the TEA Collections belonging to the TEA Release
247+
description: Get the TEA Collections belonging to the TEA Component Release
228248
operationId: getCollectionsByReleaseId
229249
parameters:
230250
- name: uuid
231251
in: path
232252
required: true
233-
description: UUID of TEA Release in the TEA server
253+
description: UUID of TEA Component Release in the TEA server
234254
schema:
235255
"$ref": "#/components/schemas/uuid"
236256
responses:
@@ -247,7 +267,7 @@ paths:
247267
'404':
248268
$ref: "#/components/responses/404-object-by-id-not-found"
249269
tags:
250-
- TEA Release
270+
- TEA Component Release
251271
/productRelease/{uuid}/collections:
252272
get:
253273
description: Get the TEA Collections belonging to the TEA Product Release
@@ -282,7 +302,7 @@ paths:
282302
- name: uuid
283303
in: path
284304
required: true
285-
description: UUID of TEA Release in the TEA server
305+
description: UUID of TEA Product Release in the TEA server
286306
schema:
287307
"$ref": "#/components/schemas/uuid"
288308
- name: collectionVersion
@@ -304,9 +324,9 @@ paths:
304324
$ref: "#/components/responses/404-object-by-id-not-found"
305325
tags:
306326
- TEA Product Release
307-
/release/{uuid}/collection/{collectionVersion}:
327+
/componentRelease/{uuid}/collection/{collectionVersion}:
308328
get:
309-
description: Get a specific Collection (by version) for a TEA Release by its UUID
329+
description: Get a specific Collection (by version) for a TEA Component Release by its UUID
310330
operationId: getCollection
311331
parameters:
312332
- name: uuid
@@ -333,7 +353,7 @@ paths:
333353
'404':
334354
$ref: "#/components/responses/404-object-by-id-not-found"
335355
tags:
336-
- TEA Release
356+
- TEA Component Release
337357
/artifact/{uuid}:
338358
get:
339359
description: Get metadata for specific TEA artifact
@@ -436,6 +456,10 @@ components:
436456
product:
437457
description: UUID of the TEA Product this release belongs to
438458
"$ref": "#/components/schemas/uuid"
459+
productName:
460+
description: Name of the TEA Product this release belongs to
461+
type: string
462+
example: Apache Log4j 2
439463
version:
440464
description: Version number of the product release
441465
type: string
@@ -542,7 +566,7 @@ components:
542566

543567

544568
#
545-
# TEA Release and related objects
569+
# TEA Component Release and related objects
546570
#
547571
release:
548572
type: object
@@ -554,6 +578,10 @@ components:
554578
component:
555579
description: UUID of the TEA Component this release belongs to
556580
"$ref": "#/components/schemas/uuid"
581+
componentName:
582+
description: Name of the TEA Component this release belongs to
583+
type: string
584+
example: tomcat
557585
version:
558586
description: Version number
559587
type: string
@@ -707,6 +735,57 @@ components:
707735
url: https://dlcdn.apache.org/tomcat/tomcat-11/v11.0.7/bin/apache-tomcat-11.0.7.exe
708736
signatureUrl: https://downloads.apache.org/tomcat/tomcat-11/v11.0.7/bin/apache-tomcat-11.0.7.exe.asc
709737

738+
component-release-with-collection:
739+
type: object
740+
description: A TEA Component Release combined with its latest collection
741+
properties:
742+
release:
743+
description: The TEA Component Release information
744+
$ref: "#/components/schemas/release"
745+
latestCollection:
746+
description: The latest TEA Collection for this component release
747+
$ref: "#/components/schemas/collection"
748+
required:
749+
- release
750+
- latestCollection
751+
examples:
752+
- release:
753+
uuid: 605d0ecb-1057-40e4-9abf-c400b10f0345
754+
version: "11.0.7"
755+
createdDate: 2025-05-07T18:08:00Z
756+
releaseDate: 2025-05-12T18:08:00Z
757+
identifiers:
758+
- idType: PURL
759+
idValue: pkg:maven/org.apache.tomcat/[email protected]
760+
latestCollection:
761+
uuid: 605d0ecb-1057-40e4-9abf-c400b10f0345
762+
version: 2
763+
date: 2025-05-12T18:08:00Z
764+
belongsTo: COMPONENT_RELEASE
765+
updateReason:
766+
type: INITIAL_RELEASE
767+
comment: Initial collection for this release
768+
artifacts:
769+
- uuid: 1cb47b95-8bf8-3bad-a5a4-0d54d86e10ce
770+
name: Build SBOM
771+
type: BOM
772+
formats:
773+
- mimeType: application/vnd.cyclonedx+xml
774+
description: CycloneDX SBOM (XML)
775+
url: https://repo.maven.apache.org/maven2/org/apache/tomcat/tomcat/11.0.7/tomcat-11.0.7-cyclonedx.xml
776+
checksums:
777+
- algType: SHA-256
778+
algValue: 9da736a1cdd27231e70187cbc67398d29ca0b714f885e7032da9f1fb247693c1
779+
- uuid: dfa35519-9734-4259-bba1-3e825cf4be06
780+
name: Vulnerability Disclosure Report
781+
type: VULNERABILITIES
782+
formats:
783+
- mimeType: application/vnd.cyclonedx+xml
784+
description: CycloneDX VDR (XML)
785+
url: https://tomcat.apache.org/cyclonedx/vdr.xml
786+
checksums:
787+
- algType: SHA-256
788+
algValue: 75b81020b3917cb682b1a7605ade431e062f7a4c01a412f0b87543b6e995ad2a
710789

711790
#
712791
# TEA Collection and related objects
@@ -797,7 +876,7 @@ components:
797876
type: string
798877
description: Indicates whether a collection belongs to a component release or a product release
799878
enum:
800-
- RELEASE
879+
- COMPONENT_RELEASE
801880
- PRODUCT_RELEASE
802881

803882
#
@@ -921,6 +1000,30 @@ components:
9211000
- pageStartIndex
9221001
- pageSize
9231002
- totalResults
1003+
1004+
paginated-product-response:
1005+
type: object
1006+
description: A paginated response containing TEA Products
1007+
allOf:
1008+
- $ref: "#/components/schemas/pagination-details"
1009+
- type: object
1010+
properties:
1011+
results:
1012+
type: array
1013+
items:
1014+
$ref: "#/components/schemas/product"
1015+
1016+
paginated-product-release-response:
1017+
type: object
1018+
description: A paginated response containing TEA Product Releases
1019+
allOf:
1020+
- $ref: "#/components/schemas/pagination-details"
1021+
- type: object
1022+
properties:
1023+
results:
1024+
type: array
1025+
items:
1026+
$ref: "#/components/schemas/productRelease"
9241027
responses:
9251028
204-common-delete:
9261029
description: Object deleted successfully
@@ -943,27 +1046,13 @@ components:
9431046
content:
9441047
application/json:
9451048
schema:
946-
allOf:
947-
- $ref: "#/components/schemas/pagination-details"
948-
- type: object
949-
properties:
950-
results:
951-
type: array
952-
items:
953-
"$ref": "#/components/schemas/product"
1049+
$ref: "#/components/schemas/paginated-product-response"
9541050
paginated-product-release:
9551051
description: A paginated response containing TEA Product Releases
9561052
content:
9571053
application/json:
9581054
schema:
959-
allOf:
960-
- $ref: "#/components/schemas/pagination-details"
961-
- type: object
962-
properties:
963-
results:
964-
type: array
965-
items:
966-
"$ref": "#/components/schemas/productRelease"
1055+
$ref: "#/components/schemas/paginated-product-release-response"
9671056
parameters:
9681057
# Pagination
9691058
page-offset:
@@ -1037,7 +1126,7 @@ tags:
10371126
- name: TEA Product
10381127
- name: TEA Product Release
10391128
- name: TEA Component
1040-
- name: TEA Release
1129+
- name: TEA Component Release
10411130
- name: TEA Artifact
10421131
externalDocs:
10431132
description: Transparency Exchange API specification

0 commit comments

Comments
 (0)