DomainBlock (domain, severity, reject-media, public and private comment)
covers the domain and its subdomains. Admins manage them under
/clientapi/admin/domainblocks/{list,insert,delete}; the set is kept in
memory, reloaded on every change and at most five minutes stale.
A suspended domain is refused by FederationHttp.IsAllowed, so nothing is
fetched from it and no job delivers to it, and the inbox drops its
activities with a 202 before fetching any key. Reject-media strips the
attachments of posts from that domain. Silence is recorded for the
timelines and notifications that arrive in P1.2.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_012CzABvBkbcFqoHdmi8b9WB
22 lines
455 B
C#
22 lines
455 B
C#
using MongoDB.Entities;
|
|
|
|
namespace PrivaPub.Models.Federation
|
|
{
|
|
public class DomainBlock : Entity
|
|
{
|
|
public string Domain { get; set; }
|
|
public DomainBlockSeverity Severity { get; set; }
|
|
public bool RejectMedia { get; set; }
|
|
public string PublicComment { get; set; }
|
|
public string PrivateComment { get; set; }
|
|
public DateTime CreatedAt { get; set; } = DateTime.UtcNow;
|
|
}
|
|
|
|
public enum DomainBlockSeverity
|
|
{
|
|
None,
|
|
Silence,
|
|
Suspend
|
|
}
|
|
}
|