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 |
|
|
{“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 |