Description
Validate and deploy advisories dedupe
- Use same models for staging and production
- Take backup of production, copy to staging and restore on staging
- Deploy advisory dedupe, merged with Fast content ID migration #1795
- Run improver only to dedupe advisories
- Review that everything is okay and see if advisories are deduped (reduced). We had 119 million advisories earlier now we have 18 million advisories after running the dedupe pipeline
- And deploy on production
Add advisory ID
- Add advisory ID field to Advisory model, create schema migration
- Move url field position just below the advisory_id field.
- Add improver pipeline to populate advisory ID, each advisory created_by different importers implies a different treatment to determine the advisory ID in one of the aliases, the URL or the references.
- Update all importers and improvers to account for the new advisory ID field. (import_runner and improve_runner as well)
- Test improver on staging and deploy on production
Add other fields ...
- Aliases: Create a new model for AdvisoryAlias, we migrate aliases from advisory models to the new models with improver. Ignoring the alias that are part of advisory ID. VCIO-next: Migrate Advisory aliases from JSON field to M2M relationship #1777
- Affected Packages: Create a relationship between a package and advisory and migrate
- References: Create AdvisoryReferences, and migrate
- Severities: Severities needs to be refactored. Create new advisory severities. So they do not go through references. WIll be like VulnerabilitySeverity but will be directly associated with an advisory
- Weakness: Create AdvisoryWeakness, and migrate.
Design how to relate to a vulnerability
Update API (v2) and UI.
- VCIO-next: Design and Add API for AdvisoryV2 Models #1882
- VCIO-next: Design and Add UI for AdvisoryV2 Models #1883
Remove old models, old fields and old data.
QnA
-
How to decide advisory ID when all importers share exact same aliases. for example 2 importers only have alias: CVE-XXXX-YYYY, then what should be the heuristic?
Ans: Advisory ID will not be a unique field, but will be part of a unique together: (url, advisory_id, created_by etc...) -
Complete the migration and API on the basis of data models.
Metadata
Metadata
Assignees
Labels
No labels
Type
Projects
Status
In Progress