1
0
mirror of https://codeberg.org/fediverse/fep.git synced 2026-08-08 13:35:51 +00:00

FEP-7628: Update proposal (#735)

- Removed outdated comment about nomadic identity.
- Clarified that `alsoKnownAs` is the most popular linking method.
- Removed unnecessary SHOULD from the description of pull mode.
- Require to publish an `Update` activity after adding `movedTo` / `copiedTo`.
- Updated ActivityPub author list.
- Added RFC-2119 to references.
- Updated `discussionsTo` URL.
- Added `type` metadata attribute.

Reviewed-on: https://codeberg.org/fediverse/fep/pulls/735
Co-authored-by: silverpill <silverpill@firemail.cc>
Co-committed-by: silverpill <silverpill@firemail.cc>
This commit is contained in:
silverpill
2025-12-05 18:52:38 +01:00
committed by silverpill
parent 0d2ab46e2a
commit cbaa1b5c51
+12 -9
View File
@@ -1,10 +1,11 @@
---
slug: "7628"
authors: silverpill <silverpill@firemail.cc>
authors: silverpill <@silverpill@mitra.social>
type: informational
status: DRAFT
dateReceived: 2023-09-20
trackingIssue: https://codeberg.org/fediverse/fep/issues/168
discussionsTo: https://codeberg.org/fediverse/fep/issues/168
discussionsTo: https://socialhub.activitypub.rocks/t/fep-7628-move-actor/3583
---
# FEP-7628: Move actor
@@ -18,17 +19,15 @@ Migration of followers from one [ActivityPub][ActivityPub] actor to another.
Mastodon started using [`Move`](https://docs.joinmastodon.org/spec/activitypub/#Move) activity for migrating accounts [in 2019](https://github.com/mastodon/mastodon/pull/11846). The activity is sent by the old server to actor's followers and actors who receive this activity un-follow the old account and follow the new account.
[Streams](https://codeberg.org/streams/streams) implements [Nomadic Identity](https://codeberg.org/streams/streams/src/commit/11f5174fdd3dfcd8714974f93d8b8fc50378a193/FEDERATION.md?display=source#L54-L59) mechanism, that makes identity independent from a server. Nomadic accounts are currently not supported by ActivityPub but are available via the [Nomad protocol](https://codeberg.org/streams/streams/src/commit/11f5174fdd3dfcd8714974f93d8b8fc50378a193/spec/Nomad/Home.md).
## Requirements
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in [RFC-2119](https://tools.ietf.org/html/rfc2119.html).
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in [RFC-2119].
## Linked actors
One persona can be represented by one or more actors. Different actors are considered associated with one persona if and only if they are **linked**. Possible ways to link actors:
- `alsoKnownAs` property of an actor object. This method is used by [Mastodon](https://docs.joinmastodon.org/user/moving/#aliases).
- `alsoKnownAs` property of an actor object. This method is the most popular, it is used by [Mastodon](https://docs.joinmastodon.org/user/moving/#aliases) and many other ActivityPub servers.
- [FEP-c390][FEP-c390] identity proofs. Actors are linked if they have identity proofs with the same `subject` property.
- [rel-me][rel-me] links. Actors are linked if their profile metadata contains verified rel-me links pointing to the same website.
@@ -52,7 +51,7 @@ Upon receiving valid `Move` activity, all actors following `object` MAY un-follo
This activity comes in two sub-types:
1. `Move` sent by the old actor (**push mode**). In this case, the old server needs to be online.
2. `Move` sent by the new actor (**pull mode**). In this case, the old server doesn't need to be online, but the person using the actor SHOULD have a reserve copy of the follower list.
2. `Move` sent by the new actor (**pull mode**). In this case, the old server doesn't need to be online, but the person using the actor needs to have a reserve copy of the follower list.
Example (activity subtype 1, push mode):
@@ -86,10 +85,12 @@ Example (activity subtype 2, pull mode):
## `movedTo` and `copiedTo` properties
If previous primary actor is deactivated after migration, it MUST have `movedTo` property containing the ID of the new primary actor. Publishers SHOULD NOT deliver activities to actor's inbox if `movedTo` property is present.
If previous primary actor was deactivated after migration, it MUST have `movedTo` property containing the ID of the new primary actor. Publishers SHOULD NOT deliver activities to actor's inbox if `movedTo` property is present.
If previous primary actor is not deactivated, `copiedTo` property MUST be used.
After adding the `movedTo` or `copiedTo` property, the actor SHOULD notify its followers about the change by publishing an `Update` activity.
<dl>
<dt id="movedTo">movedTo</dt>
<dd>
@@ -109,13 +110,15 @@ If previous primary actor is not deactivated, `copiedTo` property MUST be used.
## References
- Christine Lemmer Webber, Jessica Tallon, [ActivityPub][ActivityPub], 2018
- Christine Lemmer-Webber, Jessica Tallon, Erin Shepherd, Amy Guy, Evan Prodromou, [ActivityPub], 2018
- James M Snell, Evan Prodromou, [Activity Vocabulary][ActivityVocabulary], 2017
- S. Bradner, [Key words for use in RFCs to Indicate Requirement Levels][RFC-2119], 1997
- silverpill, [FEP-c390: Identity Proofs][FEP-c390], 2022
- indieweb.org editors, [rel-me][rel-me], 2013
[ActivityPub]: https://www.w3.org/TR/activitypub/
[ActivityVocabulary]: https://www.w3.org/TR/activitystreams-vocabulary/
[RFC-2119]: https://tools.ietf.org/html/rfc2119.html
[FEP-c390]: https://codeberg.org/fediverse/fep/src/branch/main/fep/c390/fep-c390.md
[rel-me]: https://indieweb.org/rel-me