signals


Description

{“what”:“Signal observations linking a profile and/or contact to a type, with optional intensity and expiry.”,“why”:“Without it, signal history and its attributes are lost, breaking any feature that relies on past signals.”,“by”:“fleet-annotator-worker”,“at”:“2026-09-23T04:16:52.730103956+00:00”}

Columns

Column Type Size Nulls Auto Default Children Parents Comments
id serial 10 √ nextval('signals_id_seq'::regclass)

{“what”:“Auto-incrementing integer that uniquely identifies a signal.”,“why”:“Without it, rows cannot be referenced uniquely for updates or joins.”,“by”:“fleet-annotator-worker”,“at”:“2026-09-23T04:16:52.748677894+00:00”}

profile_id int4 10 √ null
profiles.id signals_profile_id_fkey R

{“what”:“Integer referencing the profile associated with this signal; null when no profile is linked.”,“why”:“Without it, it is unknown which profile a signal belongs to, breaking profile-scoped queries.”,“by”:“fleet-annotator-worker”,“at”:“2026-09-23T04:16:52.772862895+00:00”}

contact_id int4 10 √ null
contacts.id signals_contact_id_fkey R

{“what”:“Integer referencing the contact associated with this signal; null when no contact is linked.”,“why”:“Without it, signals cannot be linked to a contact, making contact-specific signal history impossible.”,“by”:“fleet-annotator-worker”,“at”:“2026-09-23T04:16:52.791676428+00:00”}

signal_type_slug text 2147483647 null
signal_types.slug signals_signal_type_slug_fkey R

{“what”:“Text slug that classifies the signal into a known type.”,“why”:“Without it, signal types are indistinguishable, so filtering or aggregating by type is impossible.”,“by”:“fleet-annotator-worker”,“at”:“2026-09-23T04:16:52.803644319+00:00”}

raw_text text 2147483647 null

{“what”:“Unprocessed text payload of the signal as received.”,“why”:“Without it, the original content is lost, preventing later parsing or re-analysis.”,“by”:“fleet-annotator-worker”,“at”:“2026-09-23T04:16:52.829651668+00:00”}

intensity float4 8,8 √ null

{“what”:“Numeric intensity value of the signal, as a real number; null if not measured.”,“why”:“Without it, the strength or magnitude of the signal is unknown, affecting prioritization or scoring.”,“by”:“fleet-annotator-worker”,“at”:“2026-09-23T04:16:52.872770159+00:00”}

source_url text 2147483647 √ null

{“what”:“URL where the signal originated or was observed.”,“why”:“Without it, the origin of the signal cannot be traced for verification or attribution.”,“by”:“fleet-annotator-worker”,“at”:“2026-09-23T04:16:52.912031794+00:00”}

observed_at timestamptz 35,6 now()

{“what”:“Timestamp (with time zone) when the signal was observed; defaults to current time.”,“why”:“Without it, the timing of the signal is unknown, breaking time-based analysis and ordering.”,“by”:“fleet-annotator-worker”,“at”:“2026-09-23T04:16:52.943566623+00:00”}

expires_at timestamptz 35,6 √ null

{“what”:“Timestamp (with time zone) after which the signal is considered expired; null if never expires.”,“why”:“Without it, it is unknown when a signal becomes stale, so expiry-based filtering or cleanup is impossible.”,“by”:“fleet-annotator-worker”,“at”:“2026-09-23T04:16:52.980322425+00:00”}

Indexes

Constraint Name Type Sort Column(s)
signals_pkey Primary key Asc id
idx_signals_observed Performance Asc observed_at
idx_signals_profile Performance Asc profile_id
idx_signals_type Performance Asc signal_type_slug

Check Constraints

Constraint Name Constraint
signals_intensity_check ((intensity >= (0)::double precision) AND (intensity <= (100)::double precision))

Relationships