You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
vcio-api-v3: Create the API v3 structure, align with DejaCode #2057
The current API has a lot's of different endpoints that can be combined into one, instead of supporting vulnerabilities can support advisories and group advisories into using heuristics like common identifiers and affected package range.
changed the title [-]vcio-api-v3: Review the API structure for advisories[/-][+]vcio-api-v3: Review the API structure for advisories, align with DejaCode[/+]on May 12, 2026
changed the title [-]vcio-api-v3: Review the API structure for advisories, align with DejaCode[/-][+]vcio-api-v3: Create the API v3 structure, align with DejaCode[/+]on May 12, 2026
The "fetch 101 IDs to count, then run the queryset again" pattern loads the same data twice. Use .count() with a cap, or reuse the rows already loaded.
When we fetch 101 IDs to count, we already capping our count 101, from what I found
to_representation builds both the inline data and the URL fields for every object, then drops half. Pick one upfront.
This is not possible to pick one upfront, it depends on data. If a package has more than 100 advisories then only we give a URL, otherwise we give advisories as is. For that we need to do computations at package level first.
This has been a major re-architecture on how we mark advisories as completely imported and usable. We have added a new pipeline mark_unfurl_version_range_v2 that can mark the completely unfurled advisories as usable and do grouping and risk score calculation only once an advisory is completely unfurled. This is an approach to ensure data is consistent, consumable and user friendly as well.
We have also added SSVC trees, resource_url support in our API
Activity
TG1999 commentedon Dec 23, 2025
Use cases:
Minimal set of useful data:
For advisory
For package
Research other APIs like vulnerabilitylookup, osv.dev
The current API mostly looks fine. We will get it reviewed by other consumers
TG1999 commentedon Jan 28, 2026
We will be grouping advisories on basis of content these are the fields summary, severity and packages.
TG1999 commentedon Feb 16, 2026
This is done now
Reference:
Advisory structure is changed from now
13 remaining items
TG1999 commentedon May 7, 2026
Currently this is the biggest advisory_id we store, we can reduce from 500 to 200 for now and increase if needed in future
[-]Review the API structure for advisories[/-][+]vcio-api-v3: Review the API structure for advisories[/+][-]vcio-api-v3: Review the API structure for advisories[/-][+]vcio-api-v3: Review the API structure for advisories, align with DejaCode[/+][-]vcio-api-v3: Review the API structure for advisories, align with DejaCode[/-][+]vcio-api-v3: Create the API v3 structure, align with DejaCode[/+]TG1999 commentedon May 28, 2026
When we fetch 101 IDs to count, we already capping our count 101, from what I found
translates to
We can do qs[100:101] for even a more faster check if needed
TG1999 commentedon May 28, 2026
This is not possible to pick one upfront, it depends on data. If a package has more than 100 advisories then only we give a URL, otherwise we give advisories as is. For that we need to do computations at package level first.
TG1999 commentedon Jun 4, 2026
Dev work is done: #2287
PR is in review now after testing it on staging
TG1999 commentedon Jun 10, 2026
All comments have been reviewed in #2287, hence we can review this on staging and close it once verfied and tested
TG1999 commentedon Jun 10, 2026
This is done now
Reference:
New response for grouped advisories, usage of API is here in https://github.com/aboutcode-org/vulnerablecode/blob/main/api_v3_usage.rst and https://public.vulnerablecode.io/api/docs/#/v3
This has been a major re-architecture on how we mark advisories as completely imported and usable. We have added a new pipeline
mark_unfurl_version_range_v2that can mark the completely unfurled advisories as usable and do grouping and risk score calculation only once an advisory is completely unfurled. This is an approach to ensure data is consistent, consumable and user friendly as well.We have also added SSVC trees, resource_url support in our API