security_advisory


Description

{“what”:“A security advisory record with metadata, remediation, and processing state.”,“why”:“Without it, there is no persistent record of advisories to evaluate or act on.”,“by”:“fleet-annotator-worker”,“at”:“2026-09-23T04:12:34.519873248+00:00”}

Columns

Column Type Size Nulls Auto Default Children Parents Comments
id int4 10 √ null

{“what”:“Unique numeric identifier for this advisory row.”,“why”:“Primary key for stable references from other tables; without it rows cannot be uniquely addressed.”,“by”:“fleet-annotator-worker”,“at”:“2026-09-23T04:12:34.535565927+00:00”}

advisory_id varchar 255 null

{“what”:“External advisory identifier (e.g., CVE) as published by the source.”,“why”:“Matches against source feeds and deduplicates; without it the same advisory could be ingested multiple times.”,“by”:“fleet-annotator-worker”,“at”:“2026-09-23T04:12:34.577474427+00:00”}

severity varchar 32 null

{“what”:“Severity rating from the source, e.g., critical, high, medium, low.”,“why”:“Drives prioritization of remediation; without it all advisories would be treated equally.”,“by”:“fleet-annotator-worker”,“at”:“2026-09-23T04:12:34.649920898+00:00”}

title varchar 255 null

{“what”:“Short human-readable summary of the vulnerability.”,“why”:“Identifies the advisory in lists and notifications; without it only the ID is shown.”,“by”:“fleet-annotator-worker”,“at”:“2026-09-23T04:12:34.774136601+00:00”}

description text 2147483647 null

{“what”:“Full technical description of the vulnerability and its impact.”,“why”:“Provides context needed to assess applicability; without it engineers cannot judge relevance.”,“by”:“fleet-annotator-worker”,“at”:“2026-09-23T04:12:34.834462637+00:00”}

advisory_url varchar 2048 √ null

{“what”:“URL to the original advisory page on the source site.”,“why”:“Links to authoritative details; without it users must search externally.”,“by”:“fleet-annotator-worker”,“at”:“2026-09-23T04:12:34.862701781+00:00”}

remediation text 2147483647 null

{“what”:“Instructions or version ranges that fix the vulnerability.”,“why”:“Tells engineers what action to take; without it no fix guidance exists.”,“by”:“fleet-annotator-worker”,“at”:“2026-09-23T04:12:34.938555427+00:00”}

affected_versions text 2147483647 null

{“what”:“Version range or pattern of affected software versions.”,“why”:“Determines if a given installed version is vulnerable; without it matching is impossible.”,“by”:“fleet-annotator-worker”,“at”:“2026-09-23T04:12:34.956266702+00:00”}

matching_query text 2147483647 √ null

{“what”:“Custom query or expression used to match this advisory against inventory.”,“why”:“Overrides default version matching when affected_versions is insufficient; without it only default matching applies.”,“by”:“fleet-annotator-worker”,“at”:“2026-09-23T04:12:35.071669285+00:00”}

published_at timestamptz 35,6 null

{“what”:“Timestamp when the advisory was published by the source.”,“why”:“Sorts advisories by age and triggers time-based policies; without it recency is unknown.”,“by”:“fleet-annotator-worker”,“at”:“2026-09-23T04:12:35.127805524+00:00”}

fetched_at timestamptz 35,6 now()

{“what”:“Timestamp when this advisory was first fetched into the system.”,“why”:“Tracks ingestion time for auditing and freshness; without it data provenance is lost.”,“by”:“fleet-annotator-worker”,“at”:“2026-09-23T04:12:35.216532292+00:00”}

match_status varchar 32 null

{“what”:“Current matching state, e.g., pending, matched, not_matched.”,“why”:“Drives workflow and reporting; without it it’s unclear which advisories need attention.”,“by”:“fleet-annotator-worker”,“at”:“2026-09-23T04:12:35.284261007+00:00”}

last_evaluated_at timestamptz 35,6 √ null

{“what”:“Timestamp of the last time this advisory was evaluated against inventory.”,“why”:“Shows staleness of matching; without it cannot know if evaluation is current.”,“by”:“fleet-annotator-worker”,“at”:“2026-09-23T04:12:35.331594308+00:00”}

acknowledged_by int4 10 √ null
core_user.id fk_security_advisory_acknowledged_by N

{“what”:“User ID who acknowledged this advisory.”,“why”:“Tracks accountability for handling; without it responsibility is unknown.”,“by”:“fleet-annotator-worker”,“at”:“2026-09-23T04:12:35.372039220+00:00”}

acknowledged_at timestamptz 35,6 √ null

{“what”:“Timestamp when the advisory was acknowledged.”,“why”:“Records when acknowledgment occurred; without it cannot measure response time.”,“by”:“fleet-annotator-worker”,“at”:“2026-09-23T04:12:35.386313335+00:00”}

last_notified_at timestamptz 35,6 √ null

{“what”:“Timestamp of the last notification sent about this advisory.”,“why”:“Prevents duplicate notifications; without it users may be spammed.”,“by”:“fleet-annotator-worker”,“at”:“2026-09-23T04:12:35.466589860+00:00”}

updated_at timestamptz 35,6 null

{“what”:“Timestamp of the last update to this row.”,“why”:“Tracks changes for auditing and sync; without it modification history is lost.”,“by”:“fleet-annotator-worker”,“at”:“2026-09-23T04:12:35.535473772+00:00”}

Indexes

Constraint Name Type Sort Column(s)
security_advisory_pkey Primary key Asc id
idx_security_advisory_acknowledged_by Performance Asc acknowledged_by
idx_security_advisory_match_status Performance Asc match_status
uq_security_advisory_advisory_id Must be unique Asc advisory_id

Relationships