Federation:Relays names relays by their actor (or inbox) address; the instance actor follows Public at each, as Mastodon subscribes, a minute after start and every six hours (asked again a day after no answer or a refusal, undone when a relay is no longer named). What an accepted relay passes on comes to the federated timeline and nobody's home: a public post it forwards (Activity-Relay), read again from its origin like any forwarded post, and a post it announces (aode-relay), kept as its author's and never as the relay's boost. Nothing of a persona's is sent to a relay; sending public posts there waits for the owner. The pasture gains both relays (peers/relay.sh, peers/aoderelay.sh) and scenarios/relay.sh, 13 checks. The village backlog is clean: 2574 checks pass, one known gap (Misskey's). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01LsXgEaXee4GCU1hwYgPJXw
25 lines
743 B
C#
25 lines
743 B
C#
using MongoDB.Entities;
|
|
|
|
namespace PrivaPub.Models.Federation
|
|
{
|
|
// a relay the instance actor subscribes to (Federation:Relays): it passes on the public posts its other subscribers
|
|
// send it. PrivaPub only reads from it, and sends it nothing of its personas.
|
|
public class RelaySubscription : Entity
|
|
{
|
|
public string Configured { get; set; }//as the configuration names it
|
|
public string ActorURI { get; set; }
|
|
public string InboxURL { get; set; }
|
|
public string FollowActivityURI { get; set; }
|
|
public RelayState State { get; set; } = RelayState.Pending;
|
|
public DateTime RequestedAt { get; set; } = DateTime.UtcNow;
|
|
public DateTime? AnsweredAt { get; set; }
|
|
}
|
|
|
|
public enum RelayState
|
|
{
|
|
Pending,
|
|
Accepted,
|
|
Rejected
|
|
}
|
|
}
|