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:
@@ -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
@@ -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
|
||||
|
||||
|
||||
Reference in New Issue
Block a user