Skip to content

app.notifications

TablePartitioned by monthRow level security on

Inbox notifications (Section 7.3), one per recipient, in monthly partitions. Readable only by the recipient while they belong to the org (invariant 3). Copy is rendered from the i18n catalogs by kind with message_args.

Primary key: id, created_at

Columns of app.notifications
ColumnTypeNullableDescription
iduuidNoNotification id, UUID v7.
org_iduuidNoOwning org. A row never moves to another org.References app.organizations.id
recipient_person_iduuidNoPerson the notification is for.References app.people.id
kindtextNoNotification kind from app.notification_templates.
actor_person_iduuidYesPerson whose action caused it, when one did.References app.people.id
subject_tabletextYesTable of the record it is about.
subject_iduuidYesId of the record it is about.
project_iduuidYesProject of the record, when it belongs to one.References app.projects.id
message_argsjsonbNoICU message arguments for the kind's catalog messages (display values such as a record title). Never relational data.
read_attimestamp with time zoneYesWhen the recipient read it.
archived_attimestamp with time zoneYesWhen the recipient archived it.
created_attimestamp with time zoneNoWhen the row was inserted. Set by the database.
created_byuuidYesPerson who inserted the row, or null for a platform process. Set by the database.References app.people.id
updated_attimestamp with time zoneNoWhen the row last changed. Set by the database.
updated_byuuidYesPerson who last changed the row, or null for a platform process. Set by the database.References app.people.id
deleted_attimestamp with time zoneYesSoft delete time. A row with deleted_at set is ignored by every access helper.