feat: moderation tools #112

Closed
opened 2026-05-25 04:18:15 +00:00 by treadful · 4 comments
Owner

There should be some moderation controls to the system to prevent abuse or ToS violating content. Some requirements off the top of my head:

  • mods should be able to see the latest updates
  • mods can delete files
  • mods can prevent entire sites from being served
  • mods can prevent sites from being included in discovery
  • mods can revoke the ability for keys to do any operations (ban)
  • mods can ban IPs
  • there should be some kind of audit log that can see user actions (uploads, deletes, registrations, etc)

Should this be a web and/or CLI interface? For ease of dev, it could first be implemented in the jot client (behind an env var feature flag, maybe).

There should be some moderation controls to the system to prevent abuse or ToS violating content. Some requirements off the top of my head: - mods should be able to see the latest updates - mods can delete files - mods can prevent entire sites from being served - mods can prevent sites from being included in discovery - mods can revoke the ability for keys to do any operations (ban) - mods can ban IPs - there should be some kind of audit log that can see user actions (uploads, deletes, registrations, etc) Should this be a web and/or CLI interface? For ease of dev, it could first be implemented in the jot client (behind an env var feature flag, maybe).
Author
Owner

Audit log initially implemented in #114

Audit log initially implemented in #114
Author
Owner

Here's a loose spec:

List latest user activity:

$ jot mod activity 
~dadbeef    Put https://jot.run/~dadbeef/index.md
~abdf123    Put https://jot.run/~dadbeef/haxx.exe
~ha777er    Put https://jot.run/~dadbeef/img/boobs.jpg

List the latest activity for a specific key:

$ jot mod activity ~dadbeef
~dadbeef    Put https://jot.run/~dadbeef/index.md
~dadbeef    Put https://jot.run/~dadbeef/index2.md
~dadbeef    Put https://jot.run/~dadbeef/img/logo.jpg

Delete a file from the server.

$ jot mod rm https://jot.run/~dadbeef/haxx.exe

Lock a file to prevent it from being removed, overwritten, or served.

$ jot mod lock https://jot.run/~dadbeef/img/boobs.jpg

Ban a key from performing any operation on the server.

$ jot mod ban ~dadbeef

Ban an IP from the server (write ops only?).

$ jot mod ban 127.0.0.1

Prevents a key from being used in server discovery.

$ jot mod block ~dadbeef

Show moderator actions for a server (this should be public).

$ jot mod log
~1234567    Ban ~dadbeef 
~1234567    Ban 127.0.0.1
~1234567    Lock https://jot.run/~dadbeef/img/boobs.jpg
~1234567    Rm https://jot.run/~dadbeef/haxx.exe

Will probably break (some of) these into their own issues. Some are less urgent than others.

Here's a loose spec: List latest user activity: ``` $ jot mod activity ~dadbeef Put https://jot.run/~dadbeef/index.md ~abdf123 Put https://jot.run/~dadbeef/haxx.exe ~ha777er Put https://jot.run/~dadbeef/img/boobs.jpg ``` List the latest activity for a specific key: ``` $ jot mod activity ~dadbeef ~dadbeef Put https://jot.run/~dadbeef/index.md ~dadbeef Put https://jot.run/~dadbeef/index2.md ~dadbeef Put https://jot.run/~dadbeef/img/logo.jpg ``` Delete a file from the server. ``` $ jot mod rm https://jot.run/~dadbeef/haxx.exe ``` Lock a file to prevent it from being removed, overwritten, or served. ``` $ jot mod lock https://jot.run/~dadbeef/img/boobs.jpg ``` Ban a key from performing any operation on the server. ``` $ jot mod ban ~dadbeef ``` Ban an IP from the server (write ops only?). ``` $ jot mod ban 127.0.0.1 ``` Prevents a key from being used in server discovery. ``` $ jot mod block ~dadbeef ``` Show moderator actions for a server (this should be public). ``` $ jot mod log ~1234567 Ban ~dadbeef ~1234567 Ban 127.0.0.1 ~1234567 Lock https://jot.run/~dadbeef/img/boobs.jpg ~1234567 Rm https://jot.run/~dadbeef/haxx.exe ``` Will probably break (some of) these into their own issues. Some are less urgent than others.
Author
Owner

Implemented jot mod activity in #125.

Implemented `jot mod activity` in #125.
Author
Owner

Broke out the rest into separate issues. Closing this one as complete.

Broke out the rest into separate issues. Closing this one as complete.
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
treadful/jot#112
No description provided.