Files
SocialPub/PrivaPub/Models/Federation/RelaySubscription.cs
T
thepraandClaude Opus 5.5 f6fc0c535c Relays: PrivaPub reads from the relays its configuration names
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
2026-10-05 23:11:59 +02:00

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
}
}