Moderation¶
Everything that arrives waits for a person. This page is about that person's tools.
Inbox is the queue: newest first, filterable by state, kind, rating and tags.
States¶
stateDiagram-v2
[*] --> pending: arrives
pending --> approved: you approve
pending --> rejected: you reject
pending --> spam: you mark as spam
approved --> pending: restore
rejected --> pending: restore
approved --> withdrawn: consent withdrawn
| State | Meaning |
|---|---|
| Pending | Arrived, nobody has looked |
| Approved | A person approved it. Publishable, if consent allows |
| Rejected | Not wanted. Kept, not deleted |
| Spam | Rejected, and counted as abuse |
| Draft | A video reservation exists but the visitor has not submitted yet |
Rejecting keeps the item. You can restore it later, and you can read it while deciding — a rejection is a decision about publishing, not a deletion.
The invariants¶
Three rules are structural rather than settings. None of them can be switched off, which is the point:
- No automatic publication. There is no configuration that approves things for you. AI moderation and the CAPTCHA score produce signals; approval is an action a person takes.
- Approval cannot be done by a machine. The approval path structurally
refuses AI and system actors. A bot cannot approve on your behalf even with a
token that carries
moderate:submissions. - Approved is not the same as displayable. Display also needs the person's consent. Both facts are stored, separately, and the public queries require both.
The audit trail¶
Every transition records who did it, when, and from what state. Bulk actions record one entry per item, not one for the batch.
State changes are compare-and-set: approving something already approved is not an error and does not fire a second webhook, so a double-click or a retried API call is harmless.
AI moderation¶
Optional, per project, and off by default. When it is on, incoming text is classified and the inbox shows a badge — spam, abuse, a likely duplicate.
It is triage. It reorders your queue; it does not empty it.
Switching it on discloses something to your visitors
AI moderation sends submitted text to a third-party model. That is a disclosure your privacy notice should carry, which is why the setting says so and why it starts off.
Video¶
A pending video is private. Moderators watch it through a short-lived signed URL; no public URL exists until approval promotes the file. Reject it, or the person withdraws consent, and the object is deleted and the CDN edge purged.