summaryrefslogtreecommitdiff
path: root/docs/development/ap_extensions.md
diff options
context:
space:
mode:
authorAlex Gleason <alex@alexgleason.me>2021-04-29 11:14:32 -0500
committerAlex Gleason <alex@alexgleason.me>2021-04-29 11:14:32 -0500
commit762be6ce10d2145e8e31d42c5d1a0bab93dbe7b0 (patch)
tree0416ef7020ba2b333cb223200d7108928f714fde /docs/development/ap_extensions.md
parentb7b05a074867c1444dd539d6d2331f6d5504f6e6 (diff)
parent115673bce773f91630c3bd4fd2d0023f92bee163 (diff)
downloadpleroma-762be6ce10d2145e8e31d42c5d1a0bab93dbe7b0.tar.gz
pleroma-762be6ce10d2145e8e31d42c5d1a0bab93dbe7b0.zip
Merge remote-tracking branch 'upstream/develop' into block-behavior
Diffstat (limited to 'docs/development/ap_extensions.md')
-rw-r--r--docs/development/ap_extensions.md65
1 files changed, 65 insertions, 0 deletions
diff --git a/docs/development/ap_extensions.md b/docs/development/ap_extensions.md
new file mode 100644
index 000000000..3d1caeb3e
--- /dev/null
+++ b/docs/development/ap_extensions.md
@@ -0,0 +1,65 @@
+# AP Extensions
+## Actor endpoints
+
+The following endpoints are additionally present into our actors.
+
+- `oauthRegistrationEndpoint` (`http://litepub.social/ns#oauthRegistrationEndpoint`)
+- `uploadMedia` (`https://www.w3.org/ns/activitystreams#uploadMedia`)
+
+### oauthRegistrationEndpoint
+
+Points to MastodonAPI `/api/v1/apps` for now.
+
+See <https://docs.joinmastodon.org/methods/apps/>
+
+### uploadMedia
+
+Inspired by <https://www.w3.org/wiki/SocialCG/ActivityPub/MediaUpload>, it is part of the ActivityStreams namespace because it used to be part of the ActivityPub specification and got removed from it.
+
+Content-Type: multipart/form-data
+
+Parameters:
+- (required) `file`: The file being uploaded
+- (optionnal) `description`: A plain-text description of the media, for accessibility purposes.
+
+Response: HTTP 201 Created with the object into the body, no `Location` header provided as it doesn't have an `id`
+
+The object given in the reponse should then be inserted into an Object's `attachment` field.
+
+## ChatMessages
+
+`ChatMessage`s are the messages sent in 1-on-1 chats. They are similar to
+`Note`s, but the addresing is done by having a single AP actor in the `to`
+field. Addressing multiple actors is not allowed. These messages are always
+private, there is no public version of them. They are created with a `Create`
+activity.
+
+They are part of the `litepub` namespace as `http://litepub.social/ns#ChatMessage`.
+
+Example:
+
+```json
+{
+ "actor": "http://2hu.gensokyo/users/raymoo",
+ "id": "http://2hu.gensokyo/objects/1",
+ "object": {
+ "attributedTo": "http://2hu.gensokyo/users/raymoo",
+ "content": "You expected a cute girl? Too bad.",
+ "id": "http://2hu.gensokyo/objects/2",
+ "published": "2020-02-12T14:08:20Z",
+ "to": [
+ "http://2hu.gensokyo/users/marisa"
+ ],
+ "type": "ChatMessage"
+ },
+ "published": "2018-02-12T14:08:20Z",
+ "to": [
+ "http://2hu.gensokyo/users/marisa"
+ ],
+ "type": "Create"
+}
+```
+
+This setup does not prevent multi-user chats, but these will have to go through
+a `Group`, which will be the recipient of the messages and then `Announce` them
+to the users in the `Group`.