@@ -38,7 +38,7 @@ The following Package Managers are currently supported:
3838- Go Modules (` gomodules ` )
3939- Pip (` pip ` )
4040
41- ## Dependency Analysis ` /api/v3 /analysis `
41+ ## Dependency Analysis ` /api/v4 /analysis `
4242
4343The expected input data format is a Software Bill of Materials (SBOM) containing the aggregate of all direct and transitive
4444dependencies of a project.
@@ -60,7 +60,7 @@ The generated file will be located under `./target/bom.json`. Make sure the requ
6060Then you can analyise the vulnerabilities with the following command:
6161
6262``` bash
63- $ http :8080/api/v3 /analysis Content-Type:" application/vnd.cyclonedx+json" Accept:" application/json" @' target/bom.json'
63+ $ http :8080/api/v4 /analysis Content-Type:" application/vnd.cyclonedx+json" Accept:" application/json" @' target/bom.json'
6464```
6565
6666### Verbose Mode
@@ -69,22 +69,39 @@ When the Dependency Graph Analysis returns a JSON report it contains all vulnera
6969in order to retrieve just a Summary. Use the ` verbose=false ` Query parameter to disable it.
7070
7171``` bash
72- $ http :8080/api/v3 /analysis Content-Type:" application/vnd.cyclonedx+json" Accept:" application/json" @' target/sbom.json' verbose==false
72+ $ http :8080/api/v4 /analysis Content-Type:" application/vnd.cyclonedx+json" Accept:" application/json" @' target/sbom.json' verbose==false
7373
7474{
75- " dependencies" : [],
76- " summary" : {
77- " dependencies" : {
78- " scanned" : 11,
79- " transitive" : 217
80- },
81- " vulnerabilities" : {
82- " critical" : 1,
83- " direct" : 6,
84- " high" : 4,
85- " low" : 5,
86- " medium" : 10,
87- " total" : 20
75+ " scanned" : {
76+ " total" : 9,
77+ " direct" : 2,
78+ " transitive" : 7
79+ },
80+ " providers" : {
81+ " oss-index" : {
82+ " status" : {
83+ " ok" : true,
84+ " name" : " oss-index" ,
85+ " code" : 200,
86+ " message" : " OK"
87+ },
88+ " sources" : {
89+ " oss-index" : {
90+ " summary" : {
91+ " direct" : 0,
92+ " transitive" : 3,
93+ " total" : 3,
94+ " dependencies" : 1,
95+ " critical" : 0,
96+ " high" : 3,
97+ " medium" : 0,
98+ " low" : 0,
99+ " remediations" : 0,
100+ " recommendations" : 0
101+ },
102+ " dependencies" : []
103+ }
104+ }
88105 }
89106 }
90107}
@@ -98,15 +115,22 @@ that specific provider will not show all the details.
98115To provide the client authentication tokens use HTTP Headers in the request. The format for the tokens Headers is ` ex-provider-token ` . e.g. ` ex-snyk-token ` :
99116
100117``` bash
101- http :8080/api/v3 /analysis Content-Type:" application/vnd.cyclonedx+json" Accept:" text/html" @' target/sbom.json' ex-snyk-token:the-client-token
118+ http :8080/api/v4 /analysis Content-Type:" application/vnd.cyclonedx+json" Accept:" text/html" @' target/sbom.json' ex-snyk-token:the-client-token
102119```
103120
104121In case the vulnerability provider requires of Basic Authentication the headers will be ` ex-provider-user ` and ` ex-provider-token ` .
105122
106123``` bash
107- http :8080/api/v3 /analysis Content-Type:" application/vnd.cyclonedx+json" Accept:" text/html" @' target/sbom.json' ex-oss-index-user:the-client-username ex-oss-index-token:the-client-token
124+ http :8080/api/v4 /analysis Content-Type:" application/vnd.cyclonedx+json" Accept:" text/html" @' target/sbom.json' ex-oss-index-user:the-client-username ex-oss-index-token:the-client-token
108125```
109126
127+ ### V3 Support
128+
129+ As long as clients consume V3 we will keep backwards compatible responses. The main difference between V4 and V3 is the multisource data model where providers
130+ can report vulnerabilities from multiple sources. In V3, all vulnerabilities will be merged and counted together.
131+
132+ The HTML report will always be multisource using V4 data.
133+
110134### HTML Report
111135
112136By default the response Content-Type will be ` application/json ` but if the ` text/html ` media type is requested instead, the response
@@ -118,7 +142,7 @@ The HTML report will show limited information:
118142- Private vulnerabilities (i.e. vulnerabilities reported by the provider) will not be displayed.
119143
120144``` bash
121- $ http :8080/api/v3 /analysis Content-Type:" application/vnd.cyclonedx+json" Accept:" text/html" @' target/sbom.json'
145+ $ http :8080/api/v4 /analysis Content-Type:" application/vnd.cyclonedx+json" Accept:" text/html" @' target/sbom.json'
122146
123147< html>
124148...
@@ -132,7 +156,7 @@ For that, use the `Accept: multipart/mixed` request header.
132156
133157
134158``` bash
135- http :8080/api/v3 /analysis Content-Type:" application/vnd.cyclonedx+json" Accept:" multipart/mixed" @' target/sbom.json'
159+ http :8080/api/v4 /analysis Content-Type:" application/vnd.cyclonedx+json" Accept:" multipart/mixed" @' target/sbom.json'
136160HTTP/1.1 200 OK
137161 boundary=" ----=_Part_2_2047647971.1682593849895"
138162Content-Type: multipart/mixed;
@@ -147,23 +171,37 @@ Content-Type: application/json
147171Content-Transfer-Encoding: binary
148172
149173{
150- " summary" : {
151- " dependencies" : {
152- ...
153- },
154- " vulnerabilities" : {
155- ...
156- }
157- },
158- " dependencies" : [
159- {
160- " ref" : {
161- " name" : " log4j:log4j" ,
162- " version" : " 1.2.17"
163- },
164- ...
174+ {
175+ " scanned" : {
176+ " total" : 9,
177+ " direct" : 2,
178+ " transitive" : 7
179+ },
180+ " providers" : {
181+ " oss-index" : {
182+ " status" : {
183+ " ok" : true,
184+ " name" : " oss-index" ,
185+ " code" : 200,
186+ " message" : " OK"
187+ },
188+ sources" : {
189+ " oss-index" : {
190+ " summary" : {
191+ ...
192+ },
193+ " dependencies" : [
194+ {
195+ " ref" : {
196+ " name" : " log4j:log4j" ,
197+ " version" : " 1.2.17"
198+ },
199+ ...
200+ }
201+ }
202+ }
165203 }
166- ]
204+ }
167205}
168206------=_Part_2_2047647971.1682593849895
169207Content-Type: text/html
@@ -192,7 +230,7 @@ The request will be a GET to the `/token` path containing the HTTP header with t
192230other HTTP requests. i.e. ` ex-<provider>-token`
193231
194232` ` ` bash
195- http -v :8080/api/v3 /token ex-snyk-token==example-token
233+ http -v :8080/api/v4 /token ex-snyk-token==example-token
196234` ` `
197235
198236The possible responses are:
0 commit comments