Proposal: Infrastructure Abuse Notices

@bnewbold.net has written up a proposal about sending abuse notices between organizations, announced on bsky.

This proposal describes a simple mechanism for moderation services to send abuse notices across organizational boundaries to other infrastructure operators. For example, a large moderation service could send abuse notices to small independent PDS operators. It is as much a protocol for inter-organizational cooperation as it is a technical mechanism.

Summary

“Abuse Notices” are voluntary messages sent from participating AT moderation services to independent AT infrastructure operators, via authenticated XRPC Procedure (HTTP POST) requests. Notices could also be sent to other services (such as AppView and Relays), or from small mod services to large operators. But for simplicity this proposal will describe the “large moderation service, small PDS operator” use case.

PDS operators would configure which moderation services (“authorities”) they accept notices from, and what actions to take when receiving a valid notice: forward to admin email, forward via webhook to another system, and/or take automated moderation interventions.

Moderation services would set their own policies around which notices to send to which operators based on their own policy scopes and resources. Notices might be sent on a best-effort basis, or organizations might negotiate formal agreements out-of-band. It should be expected that some notices will be rejected or ignored by operators, who hold ultimate control. This proposed system should be flexible to multiple arrangements and evolution over time. See further discussion below.

This proposal is intentionally minimal about configuration of automated actions. There is not a complete “rules engine”, just some basic built-in filters and behaviors. Operators wanting more flexibility can use the webhook mechanism to do more granular policy customization. Consistent interfaces make it possible for operators to collaborate on modular tooling.

Discussion on Github: