list_product_vex_entries
Page through the VEX vulnerability entries of one of the caller's products.
Returns COMPLETE CycloneDX vulnerability objects for one bounded page
— never the root document, never all entries — plus ``returned``,
``total_matching``, and a ``next_cursor`` to continue with. Every
result is bounded to 256 KiB: the page stops before the byte limit and
returns a cursor when necessary. Entries are ordered by CVE id
(ascending) and carry the same live ``kernelscan.io:exploit_maturity``
/ ``kernelscan.io:kev`` properties as the REST download (backend#337).
Filters (all optional, combinable):
- ``statuses``: ``affected`` / ``not_affected`` / ``in_triage``
- ``severities``: ``critical`` / ``high`` / ``medium`` / ``low`` / ``none``
- ``kev``: true/false — CISA KEV listing only / non-KEV only
- ``exploit_maturity``: ``poc`` / ``weaponized``
- ``cve_ids``: exact-match list of CVE ids
``limit`` defaults to 25, maximum 100. ``cursor`` is the opaque
continuation token from a previous page — it is tied to the product,
the active filters, AND the current document + threat-overlay
revision: changing filters, a regenerated cache, or a KEV/PoC signal
that moved since the last page invalidates it (start a fresh page
without a cursor — re-using a stale one is rejected, never silently
re-applied). Within one revision, concatenating all pages yields
each matching CVE exactly once.
The COMPLETE multi-megabyte CycloneDX document is served by the
authenticated REST endpoint ``GET /api/products/{product_id}/vex``
(same ks_live_ key) — the canonical way to retrieve the full artifact.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| kev | No | ||
| limit | No | ||
| cursor | No | ||
| cve_ids | No | ||
| statuses | No | ||
| product_id | Yes | ||
| severities | No | ||
| exploit_maturity | No |