app.content_moderation_decisions
TableRow level security on
Append-only decisions by an org's moderators on reported posts, comments and messages (ADR 0033 decision 57), with A90's statement of reasons in parts (1473). Written only through app.decide_content_report; one decision decides every open report on the item. Read by the org's moderators only, never about their own content; the reporters and the author receive the outcome as a notice.
Primary key: id
| Column | Type | Nullable | Description |
|---|---|---|---|
| id | uuid | No | Primary key, UUID v7. |
| org_id | uuid | No | Owning org. A row never moves to another org.References app.organizations.id |
| subject_kind | app.content_subject_kind | No | Feed Post, Comment or Chat Message. |
| feed_post_id | uuid | Yes | Post decided, when the item is a post. No foreign key: the decision stays after the post is purged. |
| comment_id | uuid | Yes | Comment decided, when the item is a comment on a post. No foreign key: the decision stays after the comment is purged. |
| chat_message_id | uuid | Yes | Message decided, when the item is a chat message. No foreign key: the decision stays after the org's message retention purges the message (1324). |
| author_person_id | uuid | Yes | Person who wrote the item, who receives the statement of reasons on removal.References app.people.id |
| action | app.content_moderation_action | No | Removed or No Action. |
| ground | app.moderation_ground | No | Illegal Content or Terms Violation for a removal, No Violation for no action. |
| rule_reference | text | No | The law or the clause of the terms, policies or the org's own rules relied on, for example Acceptable Use Policy 1. |
| facts | text | No | The facts and circumstances the decision rests on. |
| statement_of_reasons | text | No | The statement the reporters and, on removal, the author receive. |
| decided_by | uuid | No | Moderator who decided, from the session; never the author.References app.people.id |
| decided_at | timestamp with time zone | No | When the decision was made, set by the database. |
| created_at | timestamp with time zone | No | When the row was inserted. Set by the database. |
| created_by | uuid | Yes | Person who inserted the row, or null for a platform process. Set by the database.References app.people.id |
| updated_at | timestamp with time zone | No | When the row last changed. Set by the database. |
| updated_by | uuid | Yes | Person who last changed the row, or null for a platform process. Set by the database.References app.people.id |
| deleted_at | timestamp with time zone | Yes | Soft delete time. A row with deleted_at set is ignored by every access helper. |