diff --git a/sql/schema.sql b/sql/schema.sql index 76a1c6e..58150b5 100644 --- a/sql/schema.sql +++ b/sql/schema.sql @@ -35,3 +35,22 @@ ADD COLUMN node_id TEXT REFERENCES cpe_nodes(id); CREATE INDEX IF NOT EXISTS idx_cpe_matches_node ON cpe_matches(node_id); -- Conditions expressed as AND, OR and negate are deliberately NOT converted into independent vulnerability assertions. + +-- Preserve original Red Hat CSAF product IDs, relationships and status rules. +CREATE TABLE IF NOT EXISTS redhat_advisories ( + id TEXT PRIMARY KEY, + title TEXT, + initial_release_date TEXT, + current_release_date TEXT, + product_tree_json TEXT NOT NULL +); +CREATE TABLE IF NOT EXISTS redhat_advisory_cves ( + id TEXT PRIMARY KEY, + advisory_id TEXT NOT NULL REFERENCES redhat_advisories(id) ON DELETE CASCADE, + cve_id TEXT NOT NULL REFERENCES vulnerabilities(id) ON DELETE CASCADE, + product_status_json TEXT NOT NULL, + remediations_json TEXT NOT NULL, + UNIQUE(advisory_id,cve_id) +); +CREATE INDEX IF NOT EXISTS idx_redhat_advisory_cves_cve + ON redhat_advisory_cves(cve_id);