1
0
mirror of https://codeberg.org/fediverse/fep.git synced 2026-08-09 14:05:53 +00:00

FEP-f06f: Update proposal (#512)

- Requiring observers to have `observerOf` property.
- Described creation of object observer (C2S).
- Allowed key re-use.
- Added example.

Reviewed-on: https://codeberg.org/fediverse/fep/pulls/512
Co-authored-by: silverpill <silverpill@firemail.cc>
Co-committed-by: silverpill <silverpill@firemail.cc>
This commit is contained in:
silverpill
2025-02-24 15:34:36 +00:00
committed by silverpill
parent ee95fc71a8
commit 194a162fa0
+22 -3
View File
@@ -21,11 +21,15 @@ The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "S
## Observers
Object observer can be specified using the `observer` property.
Object observer is a followable actor. It doesn't perform any activities on its own, but activities that affect the observed object are [forwarded][InboxForwarding] to its followers. Only objects and collections can be observed.
It MUST be a followable actor and SHOULD have an `Application` type. Observer doesn't perform any activities on its own, but [forwards][InboxForwarding] to its followers all activities that affect the observed object.
Object observer MUST have an `observerOf` property specifying the observed object, and it SHOULD have an `Application` type.
It SHOULD have a WebFinger address (consumers should be able to follow it even if they don't understand `observer` property).
Objects can specify their observers using the `observer` property.
Object observer can be created with [ActivityPub] client by publishing a `Create` activity with user's actor as its `actor` and with observer actor as its `object`.
Implementers MAY use a single cryptographic key for signing all HTTP requests made by observers on a server.
## Use case: subscribing to a conversation
@@ -37,6 +41,21 @@ This actor can be attached to a collection via `observer` property, and can forw
If forwarding is not desirable, object observers can use `Announce` activity to distribute observed activities.
## Examples
Example of an observer actor:
```json
{
"@context": "https://www.w3.org/ns/activitystreams",
"type": "Application",
"id": "https://server.example/objects/123456/observer",
"inbox": "https://server.example/objects/123456/observer/inbox",
"outbox": "https://server.example/objects/123456/observer/outbox",
"observerOf": "https://server.example/objects/123456"
}
```
## References
- Christine Lemmer Webber, Jessica Tallon, [ActivityPub][ActivityPub], 2018