Skip to content

Migrate Vulnerability models to Advisory models #1796

@TG1999

Description

@TG1999

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.

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
No labels

Type

No type

Projects

Status

In Progress

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions