pulse_channel


Description

{“what”:“A delivery channel configuration attached to a pulse, defining how and when to send.”,“why”:“Without it, pulses have no delivery targets or schedules, so notifications cannot be sent.”,“by”:“fleet-annotator-worker”,“at”:“2026-09-23T00:05:26.211306476+00:00”}

Columns

Column Type Size Nulls Auto Default Children Parents Comments
id int4 10 √ null
pulse_channel_recipient.pulse_channel_id fk_pulse_channel_recipient_ref_pulse_channel_id C

{“what”:“Integer primary key; unique ID for this channel.”,“why”:“Without it, cannot uniquely identify a channel for updates or foreign key references.”,“by”:“fleet-annotator-worker”,“at”:“2026-09-23T00:05:26.225607014+00:00”}

pulse_id int4 10 null
pulse.id fk_pulse_channel_ref_pulse_id C

{“what”:“Integer ID referencing the pulse that owns this channel.”,“why”:“Without it, cannot determine which pulse this channel serves, breaking per-pulse configuration.”,“by”:“fleet-annotator-worker”,“at”:“2026-09-23T00:05:26.243277847+00:00”}

channel_type varchar 32 null

{“what”:“Type of channel, e.g., email, SMS, webhook; determines how details are interpreted.”,“why”:“Without it, the format of details and delivery method are unknown, so messages cannot be sent.”,“by”:“fleet-annotator-worker”,“at”:“2026-09-23T00:05:26.258450635+00:00”}

details text 2147483647 null

{“what”:“Free-form configuration for the channel, e.g., URL or phone number, parsed according to channel_type.”,“why”:“Without it, the channel lacks the target or settings needed to send a pulse.”,“by”:“fleet-annotator-worker”,“at”:“2026-09-23T00:05:26.272505111+00:00”}

schedule_type varchar 32 null

{“what”:“Recurrence pattern type, e.g., daily, weekly, hourly; controls how schedule_hour/day/frame are used.”,“why”:“Without it, the schedule fields have no meaning, so the channel cannot be triggered at the right time.”,“by”:“fleet-annotator-worker”,“at”:“2026-09-23T00:05:26.286570375+00:00”}

schedule_hour int4 10 √ null

{“what”:“Hour of day (0-23) for scheduled delivery, when schedule_type requires it.”,“why”:“Without it, the exact time of day for the schedule is unknown, so delivery may occur at wrong hour or not at all.”,“by”:“fleet-annotator-worker”,“at”:“2026-09-23T00:05:26.312552613+00:00”}

schedule_day varchar 64 √ null

{“what”:“Day(s) of week or month for schedule, e.g., ‘MON’ or ‘1,15’, depending on schedule_type.”,“why”:“Without it, the day of recurrence is unspecified, so the schedule cannot be computed.”,“by”:“fleet-annotator-worker”,“at”:“2026-09-23T00:05:26.332459469+00:00”}

created_at timestamptz 35,6 null

{“what”:“Timestamp with time zone when the channel was created.”,“why”:“Without it, cannot track when a channel was added, which is needed for auditing and lifecycle management.”,“by”:“fleet-annotator-worker”,“at”:“2026-09-23T00:05:26.350547894+00:00”}

updated_at timestamptz 35,6 null

{“what”:“Timestamp with time zone of the last update to this channel row.”,“why”:“Without it, cannot know if configuration changed, leading to stale data and inability to detect drift.”,“by”:“fleet-annotator-worker”,“at”:“2026-09-23T00:05:26.371450366+00:00”}

schedule_frame varchar 32 √ null

{“what”:“Optional time window or frame for scheduling, e.g., ‘business_hours’ or ‘night’, further constrains schedule.”,“why”:“Without it, the schedule may fire outside allowed periods, causing unwanted deliveries.”,“by”:“fleet-annotator-worker”,“at”:“2026-09-23T00:05:26.388812864+00:00”}

enabled bool 1 true

{“what”:“Whether this channel is active and eligible for delivery; default true.”,“why”:“Without it, cannot disable a channel without deleting it, so temporary suspension is impossible.”,“by”:“fleet-annotator-worker”,“at”:“2026-09-23T00:05:26.406546679+00:00”}

entity_id bpchar 21 √ null

{“what”:“Character string identifying an external entity (e.g., user ID) that this channel belongs to.”,“why”:“Without it, cannot map a channel to a specific entity, breaking per-entity configuration.”,“by”:“fleet-annotator-worker”,“at”:“2026-09-23T00:05:26.422765849+00:00”}

channel_id int4 10 √ null
channel.id fk_pulse_channel_channel_id C

{“what”:“Numeric ID of a related channel, possibly for grouping or parent-child relationships.”,“why”:“Without it, cannot associate this channel with another channel, so hierarchical or grouped channel logic is unavailable.”,“by”:“fleet-annotator-worker”,“at”:“2026-09-23T00:05:26.436132688+00:00”}

Indexes

Constraint Name Type Sort Column(s)
pulse_channel_pkey Primary key Asc id
idx_pulse_channel_pulse_id Performance Asc pulse_id
idx_pulse_channel_schedule_type Performance Asc schedule_type
pulse_channel_entity_id_key Must be unique Asc entity_id

Relationships