Export a product's VEX
When you assess an alert and decide it does not affect your product, your customers' scanners do not know that, and raise the same finding again. A VEX document tells them. Declara builds one per product from the decisions you have already made.
What goes in
- An alert you decided not applicable becomes
not_affected. If you answered that the component is not used in the shipped product, the justification iscomponent_not_present; if the vulnerable code is not reachable, it isvulnerable_code_not_in_execute_path. Otherwise your rationale is the impact statement. - An alert you decided reportable becomes
affected. - A statement you imported is used as it is, and wins over a triage decision for the same vulnerability.
- Optionally, alerts still being assessed become
under_investigation.
Product versions are named by pkg:generic package URLs Declara derives from the product
name; matched components keep their own package URLs.
Exporting changes nothing about what suppresses a match or an alert.
Steps
-
Open the product. In Exploitability statements, use OpenVEX, CycloneDX, or with open alerts as under investigation. The card appears once the product has an SBOM or a statement.
-
Or fetch it in a pipeline with an API key carrying
products:read:curl -H "Authorization: Bearer $DECLARA_API_KEY" \ "https://your-declara-host/api/v1/products/$PRODUCT_ID/vex?format=openvex"formatisopenvex(the default) orcyclonedx;include_open=trueadds alerts still being assessed.
What you should see
An OpenVEX 0.2.0 document, or a CycloneDX 1.6 document carrying only vulnerabilities and the components they affect. Both validate against their published schemas.
Related
- Suppress a false match with a VEX statement
- API reference
- Publish a product's Trust Center: publish the same statements publicly, as an opt-in