From e78b1ecb671de4a5016b76c3f894f9499c816e72 Mon Sep 17 00:00:00 2001 From: lesion Date: Wed, 27 Dec 2023 16:09:04 +0100 Subject: [PATCH] docs: federation --- FEDERATION.md | 54 ++++++++++++++++++++++++++++++++++++++++++++++ docs/federation.md | 24 +++++++++++++++------ 2 files changed, 71 insertions(+), 7 deletions(-) create mode 100644 FEDERATION.md diff --git a/FEDERATION.md b/FEDERATION.md new file mode 100644 index 00000000..6d7affe3 --- /dev/null +++ b/FEDERATION.md @@ -0,0 +1,54 @@ + +## Federation / ActivityPub + +Gancio largely follows ActivityPub's server-to-server specification. + + +## Supported federation protocols and standards + +- [ActivityPub](https://www.w3.org/TR/activitypub/) (Server-to-Server) +- [WebFinger](https://webfinger.net/) +- [HTTP Signatures](https://datatracker.ietf.org/doc/html/draft-cavage-http-signatures) +- [NodeInfo](https://nodeinfo.diaspora.software/) + +## Supported FEPs + +- [FEP-f1d5: NodeInfo in Fediverse Software](https://codeberg.org/fediverse/fep/src/branch/main/fep/f1d5/fep-f1d5.md) +- [FEP-67ff: FEDERATION.md](https://codeberg.org/fediverse/fep/src/branch/main/fep/67ff/fep-67ff.md) +- [FEP-fb2a: Actor metadata](https://codeberg.org/fediverse/fep/src/branch/main/fep/fb2a/fep-fb2a.md) +- [FEP-2677: Identifying the Application Actor](https://codeberg.org/fediverse/fep/src/branch/main/fep/2677/fep-2677.md) + +## ActivityPub + +Each instance has only one [AP Actor](https://www.w3.org/TR/activitypub/#actors) of type `Application` named `relay@instance.tld` by default, which publishes each event as [Event](https://www.w3.org/TR/activitystreams-vocabulary/#dfn-event) type. +Each AP enabled software could decide how to interact with coming events, e.g. on Mastodon and forks you can see it with minimal information, with Friendica events are added into your own calendar, GoToSocial does not support [Event](https://www.w3.org/TR/activitystreams-vocabulary/#dfn-event) type. + +We are considering the introduction of other `Actor` but they will not be linked to users, rather to places, tags or collections. +There are no personal timeline of people you follow, everyone has a sort of local timeline of the instance, it’s an anti filter-bubble feature. + +Since v1.9.0 each instance could follow other instances or actors (`Admin > Federation > Add trusted node`) and use the events coming from the federation to fill choosen collections (`Admin > Collections`). + +Note that events coming from the federation will be removed after the end. + +All federation's related operations uses `/federation` as endpoint. You can disable it via a specific setting (`Admin > Federation > Disable federation`). + + +### Supported operations + +| **Operation** | **Since** | **Note** | +| Follow Gancio from Fediverse | 0.15.0 | | +| Send an Event | 0.15.0 | Sent as [Event](https://www.w3.org/TR/activitystreams-vocabulary/#dfn-event) type.| +| Receive a Note | 0.21.0 | Adds images, audio and notes to an event with a simple reply | +| Delete a Note | 0.21.0 | +| Update a Note | 0.21.0 | +| Follow an Actor | 1.9.0 | | +| Receive an Event | 1.9.0 | +| Update an Event | 1.9.0 | +| Delete an Event | 1.9.0 | + + +### Moderation + +- Hide or remove a remote event +- Block a remote user +- Block a remote instance \ No newline at end of file diff --git a/docs/federation.md b/docs/federation.md index d63fef73..26796e64 100644 --- a/docs/federation.md +++ b/docs/federation.md @@ -26,25 +26,35 @@ Gancio largely follows ActivityPub's server-to-server specification. ## ActivityPub -Each instance has only one [AP Actor](https://www.w3.org/TR/activitypub/#actors) of type `Application` named `relay@instance.tld` by default, which publishes each event as [Event](https://www.w3.org/TR/activitystreams-vocabulary/#dfn-event) type. +Each instance has only one [AP Actor](https://www.w3.org/TR/activitypub/#actors) of type `Application` named `relay@instance.tld` by default, which publishes each event as [Event](https://www.w3.org/TR/activitystreams-vocabulary/#dfn-event) type. Each AP enabled software could decide how to interact with coming events, e.g. on Mastodon and forks you can see it with minimal information, with Friendica events are added into your own calendar, GoToSocial does not support [Event](https://www.w3.org/TR/activitystreams-vocabulary/#dfn-event) type. We are considering the introduction of other `Actor` but they will not be linked to users, rather to places, tags or collections. There are no personal timeline of people you follow, everyone has a sort of local timeline of the instance, it’s an anti filter-bubble feature. -Since v2.0 each instance could follow other instances or actors (`Admin > Federation > Add trusted node`) and use the events coming from the federation to fill choosen collections (`Admin > Collections`). +Since v1.9.0 each instance could follow other instances or actors (`Admin > Federation > Add trusted node`) and use the events coming from the federation to fill choosen collections (`Admin > Collections`). Note that events coming from the federation will be removed after the end. -#### Supported operations All federation's related operations uses `/federation` as endpoint. You can disable it via a specific setting (`Admin > Federation > Disable federation`). -#### Getting followed +### Supported operations -#### Received a reply +| **Operation** | **Since** | **Note** | +| Follow Gancio from Fediverse | 0.15.0 | | +| Send an Event | 0.15.0 | Sent as [Event](https://www.w3.org/TR/activitystreams-vocabulary/#dfn-event) type.| +| Receive a Note | 0.21.0 | Adds images, audio and notes to an event with a simple reply | +| Delete a Note | 0.21.0 | +| Update a Note | 0.21.0 | +| Follow an Actor | 1.9.0 | | +| Receive an Event | 1.9.0 | +| Update an Event | 1.9.0 | +| Delete an Event | 1.9.0 | -#### Follow someone -#### Receive an event +### Moderation +- Hide or remove a remote event +- Block a remote user +- Block a remote instance