1
0
mirror of https://codeberg.org/fediverse/fep.git synced 2026-08-08 21:45:52 +00:00

FEP-7628: Update proposal (#875)

- Changed terminlogy: persona -> subject
- Added `id` to the list of required properties.
- Specified activity audience for push and pull modes.
- Added "Future work" section.
- Improved grammar.
- Removed old .jsonld file

Reviewed-on: https://codeberg.org/fediverse/fep/pulls/875
This commit is contained in:
silverpill
2026-07-02 12:11:30 +02:00
committed by silverpill
parent 1b058a091d
commit 13c93b1baf
2 changed files with 16 additions and 20 deletions
-12
View File
@@ -1,12 +0,0 @@
{
"@context": {
"movedTo": {
"@id": "https://w3id.org/fep/7628#movedTo",
"@type": "@id"
},
"copiedTo": {
"@id": "https://w3id.org/fep/7628#copiedTo",
"@type": "@id"
}
}
}
+16 -8
View File
@@ -17,7 +17,7 @@ Migration of followers from one [ActivityPub][ActivityPub] actor to another.
`Move` activity is defined in [Activity Vocabulary](https://www.w3.org/TR/activitystreams-vocabulary/#dfn-move).
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.
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 old account sends this activity to its followers. Actors who receive the activity un-follow the old account and follow the new one.
## Requirements
@@ -25,7 +25,7 @@ The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "S
## 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:
One subject can be represented by one or more actors. Different actors are considered associated with one subject if and only if they are **linked**. Possible ways to link actors:
- `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.
@@ -33,12 +33,13 @@ One persona can be represented by one or more actors. Different actors are consi
## Migration
Among actors associated with a persona, there MUST be one **primary** actor. **Migration** of an account means the change of a primary actor.
Among actors associated with a subject, there MUST be one **primary** actor. **Migration** of an account means the change of a primary actor.
## Move activity
`Move` activity is used to notify other actors about the migration. It MUST have the following properties:
- `id`: the unique identifier of an activity.
- `type`: the type of activity MUST be `Move`.
- `actor`: the actor performing the migration.
- `object`: the old primary actor ID.
@@ -50,8 +51,8 @@ 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 needs to have a reserve copy of the follower list.
1. `Move` sent by the old actor (**push mode**). In this case, the old server needs to be online. The activity MUST be addressed to the followers of the old actor.
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. The activity MUST be addressed to the followers of the new actor.
Example (activity subtype 1, push mode):
@@ -85,9 +86,9 @@ Example (activity subtype 2, pull mode):
## `movedTo` and `copiedTo` properties
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 the old primary actor was deactivated after migration, it MUST have a `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.
If the old primary actor is not deactivated, the `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.
@@ -108,6 +109,13 @@ After adding the `movedTo` or `copiedTo` property, the actor SHOULD notify its f
</dd>
</dl>
## Future work
The `Move` activity described in this document migrates followers, but not other user data. To address this shortcoming, other mechanisms have been proposed:
- [FEP-ef61: Portable Objects](https://codeberg.org/fediverse/fep/src/branch/main/fep/ef61/fep-ef61.md)
- [FEP-1580: Move Actor Objects with a migration Collection](https://codeberg.org/fediverse/fep/src/branch/main/fep/1580/fep-1580.md)
## References
- Christine Lemmer-Webber, Jessica Tallon, Erin Shepherd, Amy Guy, Evan Prodromou, [ActivityPub], 2018
@@ -118,7 +126,7 @@ After adding the `movedTo` or `copiedTo` property, the actor SHOULD notify its f
[ActivityPub]: https://www.w3.org/TR/activitypub/
[ActivityVocabulary]: https://www.w3.org/TR/activitystreams-vocabulary/
[RFC-2119]: https://tools.ietf.org/html/rfc2119.html
[RFC-2119]: https://datatracker.ietf.org/doc/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