17 lines
624 B
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', ''))
|
|
);
|