Assessor_2.0/server/postgres/migrations/021_cve_enrichment.sql

17 lines
624 B
SQL

CREATE TABLE assessor_cve_enrichments (
cve_id text PRIMARY KEY CHECK (cve_id ~ '^CVE-[0-9]{4}-[0-9]{4,}$'),
source text NOT NULL CHECK (source = 'nvd'),
last_modified_at timestamptz NOT NULL,
fetched_at timestamptz NOT NULL,
data jsonb NOT NULL CHECK (jsonb_typeof(data) = 'object')
);
CREATE INDEX assessor_cve_enrichments_last_modified_idx
ON assessor_cve_enrichments (last_modified_at DESC);
CREATE INDEX assessor_cve_enrichments_search_idx
ON assessor_cve_enrichments USING gin (
to_tsvector('simple'::regconfig,
coalesce(data->>'cveId', '') || ' ' || coalesce(data->>'description', ''))
);