|
8 | 8 |
|
9 | 9 | # CycloneDX Transparency Exchange API Standard |
10 | 10 |
|
11 | | -The Transparency Exchange API is being worked on within the CycloneDX community with the goal to standardise the API in |
12 | | -ECMA. A working group within ECMA TC54 has been formed - TC54 TG1. The working group has a slack channel in the |
| 11 | +The Transparency Exchange API is being worked on within the CycloneDX community |
| 12 | +with the goal to standardise the API in ECMA. A working group within ECMA TC54 |
| 13 | +has been formed - TC54 TG1. The working group has a slack channel in the |
13 | 14 | CycloneDX slack space. |
14 | 15 |
|
15 | 16 |  |
16 | 17 |
|
17 | 18 | ## Introduction |
18 | 19 |
|
19 | | -This specification defines a standard, format agnostic, API for the exchange of product related artefacts, like BOMs, |
20 | | -between systems. The work includes: |
| 20 | +This specification defines a standard, format agnostic, API for the exchange of |
| 21 | +product related artefacts, like BOMs, between systems. The work includes: |
21 | 22 |
|
22 | | -- [Discovery of servers](/discovery/readme.md): Describes discovery using the Transparency Exchange Identifier (TEI) |
| 23 | +- [Discovery of servers](/discovery/readme.md): Describes discovery using the |
| 24 | + Transparency Exchange Identifier (TEI) |
23 | 25 | - Retrieval of artefacts |
24 | 26 | - Publication of artefacts |
25 | 27 | - Authentication and authorization |
26 | 28 | - Querying |
27 | 29 |
|
28 | | -System and tooling implementors are encouraged to adopt this API standard for sending/receiving transparency artefacts |
29 | | -between systems. This will enable more widespread "out of the box" integration support in the BOM ecosystem. |
| 30 | +System and tooling implementors are encouraged to adopt this API standard for |
| 31 | +sending/receiving transparency artefacts between systems. This will enable more |
| 32 | +widespread "out of the box" integration support in the BOM ecosystem. |
30 | 33 |
|
31 | 34 | ## Use cases and requirements |
32 | 35 |
|
33 | | -The working group has produced a list of use cases and requirements for the protocol. |
| 36 | +The working group has produced a list of use cases and requirements for the |
| 37 | +protocol. |
34 | 38 |
|
35 | 39 | - [TEA requirements](doc/tea-requirements.md) |
36 | 40 | - [TEA use cases](doc/tea-usecases.md) |
37 | 41 |
|
38 | 42 | ## Data model |
39 | 43 |
|
40 | | -- [TEA Product index](tea-index/tea-index.md): This is the starting point. A "product" is something for sale. The |
41 | | - [Transparency Exchange Identifier, TEI](/discovery/readme.md) points to a single product. |
42 | | -- [TEA Leaf index](tea-leaf/tea-leaf.md): A leaf is a version entry. The leaf index has one entry per version of the |
43 | | - product. |
44 | | -- [TEA Collection](tea-collection/tea-collection.md): The collection is a list of artefacts for a specific version. The |
45 | | - collection can be dynamic or static, depending on the implemenation. |
| 44 | +- [TEA Product index](tea-index/tea-index.md): This is the starting point. A |
| 45 | + "product" is something for sale. The |
| 46 | + [Transparency Exchange Identifier, TEI](/discovery/readme.md) points to a |
| 47 | + single product. |
| 48 | +- [TEA Leaf index](tea-leaf/tea-leaf.md): A leaf is a version entry. The leaf |
| 49 | + index has one entry per version of the product. |
| 50 | +- [TEA Collection](tea-collection/tea-collection.md): The collection is a list |
| 51 | + of artefacts for a specific version. The collection can be dynamic or static, |
| 52 | + depending on the implemenation. |
46 | 53 |
|
47 | 54 | ## Artefacts available of the API |
48 | 55 |
|
49 | | -The Transparency Exchange API (TEA) supports publication and retrieval of a set of transparency exchange artefacts. The |
50 | | -API itself should not be restricting the types of the artefacts. A few examples: |
| 56 | +The Transparency Exchange API (TEA) supports publication and retrieval of a set |
| 57 | +of transparency exchange artefacts. The API itself should not be restricting the |
| 58 | +types of the artefacts. A few examples: |
51 | 59 |
|
52 | 60 | ### xBOM |
53 | 61 |
|
54 | | -Bill of materials for any type of component and service are supported. This includes, but is not limited to, SBOM, HBOM, |
55 | | -AI/ML-BOM, SaaSBOM, and CBOM. The API provides a BOM format agnostic way of publishing, searching, and retrieval of xBOM |
56 | | -artifacts. |
| 62 | +Bill of materials for any type of component and service are supported. This |
| 63 | +includes, but is not limited to, SBOM, HBOM, AI/ML-BOM, SaaSBOM, and CBOM. The |
| 64 | +API provides a BOM format agnostic way of publishing, searching, and retrieval |
| 65 | +of xBOM artifacts. |
57 | 66 |
|
58 | 67 | ### CDXA |
59 | 68 |
|
60 | | -Standards and requirements along with attestations to those standards and requirements are captured and supported by |
61 | | -CycloneDX Attestations (CDXA). Much like xBOM, these are supply chain artifacts that are captured allowing for |
| 69 | +Standards and requirements along with attestations to those standards and |
| 70 | +requirements are captured and supported by CycloneDX Attestations (CDXA). Much |
| 71 | +like xBOM, these are supply chain artifacts that are captured allowing for |
62 | 72 | consistent publishing, searching, and retrieval. |
63 | 73 |
|
64 | 74 | ### VDR/VEX |
65 | 75 |
|
66 | | -Vulnerability Disclosure Reports (VDR) and Vulnerability Exploitability eXchange (VEX) are supported artifact types. |
67 | | -Like the xBOM element, the VDR/VEX support is format agnostic. However, CSAF has its own distribution requirements that |
68 | | -may not be compatible with APIs. Therefore, the initial focus will be on CycloneDX (VDR and VEX) and OpenVEX. |
| 76 | +Vulnerability Disclosure Reports (VDR) and Vulnerability Exploitability eXchange |
| 77 | +(VEX) are supported artifact types. Like the xBOM element, the VDR/VEX support |
| 78 | +is format agnostic. However, CSAF has its own distribution requirements that may |
| 79 | +not be compatible with APIs. Therefore, the initial focus will be on CycloneDX |
| 80 | +(VDR and VEX) and OpenVEX. |
69 | 81 |
|
70 | 82 | ### CLE |
71 | 83 |
|
72 | | -Product lifecycle events that are captured and communicated through the Common Lifecycle Enumeration will be supported. |
73 | | -This includes product rebranding, repackaging, mergers and acquisitions, and product milestone events such as |
| 84 | +Product lifecycle events that are captured and communicated through the Common |
| 85 | +Lifecycle Enumeration will be supported. This includes product rebranding, |
| 86 | +repackaging, mergers and acquisitions, and product milestone events such as |
74 | 87 | end-of-life and end-of-support. |
75 | 88 |
|
76 | 89 | ### Insights |
77 | 90 |
|
78 | | -Much of the focus on Software Transparency from the U.S. Government and others center around the concept of "full |
79 | | -transparency". Consumers often need to ingest, process, and analyze SBOMs or VEXs just to be able to answer simple |
| 91 | +Much of the focus on Software Transparency from the U.S. Government and others |
| 92 | +center around the concept of "full transparency". Consumers often need to |
| 93 | +ingest, process, and analyze SBOMs or VEXs just to be able to answer simple |
80 | 94 | questions such as: |
81 | 95 |
|
82 | 96 | - Do any of my licensed products from Vendor A use Apache Struts? |
83 | | -- Are any of my licensed products from Vendor A vulnerable to log4shell and is there any action I need to take? |
| 97 | +- Are any of my licensed products from Vendor A vulnerable to log4shell and is |
| 98 | + there any action I need to take? |
84 | 99 |
|
85 | | -Insights allows for "limited transparency" that can be asked and answered using an expression language that can be |
86 | | -tightly scoped or outcome-driven. Insights also removes the complexities of BOM format conversion away from the |
87 | | -consumers. An object model derived from CycloneDX will be an integral part of this API, since the objects within |
88 | | -CycloneDX are self-contained (thus API friendly) and the specification supports all the necessary xBOM types along with |
89 | | -CDXA. |
| 100 | +Insights allows for "limited transparency" that can be asked and answered using |
| 101 | +an expression language that can be tightly scoped or outcome-driven. Insights |
| 102 | +also removes the complexities of BOM format conversion away from the consumers. |
| 103 | +An object model derived from CycloneDX will be an integral part of this API, |
| 104 | +since the objects within CycloneDX are self-contained (thus API friendly) and |
| 105 | +the specification supports all the necessary xBOM types along with CDXA. |
90 | 106 |
|
91 | 107 | ## Presentations and videos |
92 | 108 |
|
93 | | -- You can find presentations in the repository in the [Presentations](/presentations) directory |
| 109 | +- You can find presentations in the repository in the |
| 110 | + [Presentations](/presentations) directory |
94 | 111 | - Our biweekly meetings are available on |
95 | 112 | [YouTube playlist: Project Koala](https://www.youtube.com/playlist?list=PLqjEqUxHjy1XtSzGYL7Dj_WJbiLu_ty58) |
96 | 113 | - KoalaCon 2024 - an introduction to the project - can be |
|
0 commit comments