mirror of
https://gitlab.com/spritely/ocappub.git
synced 2024-12-26 13:49:48 +00:00
ocap meets activitypub objects/actors
This commit is contained in:
parent
c5b4ad2ec2
commit
f71ad175b8
83
README.org
83
README.org
@ -1080,16 +1080,99 @@ for human viewing.
|
||||
|
||||
*** Ocaps meet ActivityPub objects/actors
|
||||
|
||||
Finally we can get to the point of understanding how to apply ocaps to
|
||||
ActivityPub directly.
|
||||
It's actually extremely trivial: we can just use traditional capability
|
||||
URLs or bearcaps anywhere we would put a normal link.
|
||||
|
||||
Let's start with a simple capability URL example.
|
||||
(We're intentionally pairing down this example; signatures are
|
||||
not shown.)
|
||||
|
||||
#+BEGIN_SRC javascript
|
||||
{"@type": "Create",
|
||||
"actor": "https://chatty.example/ben/",
|
||||
"to": ["https://chatty.example/ben/followers"],
|
||||
"object": {
|
||||
"@id": "https://chatty.example/obj/fQFWD9bZf1GKc3E09gt8W4MlChVxoiMAjgzhqxP9KhE",
|
||||
"@type": "Note",
|
||||
"attributedTo": "https://chatty.example/ben/",
|
||||
"content": "Hello, fediverse! I'm new here. Who should I be chatting with?"}}
|
||||
#+END_SRC
|
||||
|
||||
There is no way to retrieve this object unless you know its address,
|
||||
but knowing its address allows you to see/refer to it, not unlike the
|
||||
Google Docs example we referred to earlier.
|
||||
Ben distributes this message to his local friend group of Alyssa and
|
||||
Lem.
|
||||
|
||||
Alyssa thinks that Ben would like to meet her friends and composes
|
||||
a reply which refers to his message.
|
||||
|
||||
#+BEGIN_SRC javascript
|
||||
{"@type": "Create",
|
||||
"actor": "https://social.example/alyssa/",
|
||||
"to": ["https://social.example/alyssa/collections/my-friends"],
|
||||
"object": {
|
||||
"@id": "https://social.example/obj/Aj1k_Phx4uAgCXOMZ7KP9omJXXnOUySlhP-WXYE0obw",
|
||||
"@type": "Note",
|
||||
"attributedTo": "https://social.example/alyssa/",
|
||||
"inReplyTo": "https://chatty.example/obj/fQFWD9bZf1GKc3E09gt8W4MlChVxoiMAjgzhqxP9KhE",
|
||||
"content": "Hey Ben!! Welcome to the network. I want to introduce you to my friends."}}
|
||||
#+END_SRC
|
||||
|
||||
In the former message, Ben shared his message amongst his followers
|
||||
(which maybe he curates).
|
||||
In the latter message, Alyssa sent her message, which also provided
|
||||
a path to Ben's, amongst her friends, encouraging people she knows
|
||||
to establish a social connection with Ben.
|
||||
Alyssa and Ben were able to coordinate to spread this communication
|
||||
amongst people they trust, but it is not spread further.
|
||||
|
||||
This is mildly interesting, but things get much more interesting when
|
||||
we realize that inboxes can also themselves be capabilities.
|
||||
|
||||
Alyssa is a member of a group of pixel art enthusiasts.
|
||||
|
||||
#+BEGIN_SRC javascript
|
||||
{"@type": "Group",
|
||||
"@id": "bear:?u=https://groupchats.example/group&t=eQshu8RiJ-9ozh2GKRATXN5-J6dcBVf_AYSMrJ6UEzE",
|
||||
"url": "https://groupchats.example/group/public/pixel-artists",
|
||||
"name": "Pixel Art Enthusiasts",
|
||||
"inbox": "bear:?u=https://groupchats.example/group/inbox&t=eQshu8RiJ-9ozh2GKRATXN5-J6dcBVf_AYSMrJ6UEzE"}
|
||||
#+END_SRC
|
||||
|
||||
This pixel art enthusiast group has a public page that anyone can
|
||||
view at =https://groupchats.example/group/public/pixel-artists=.
|
||||
However, not everyone who can see that URL has the authority to
|
||||
post to the group.
|
||||
At present, Alyssa has the authority to make posts to this group,
|
||||
which automatically disseminates them to all members.
|
||||
However, Alyssa cannot moderate the group (including its membership
|
||||
list).
|
||||
She has limited access.
|
||||
|
||||
We will worry about how the limited access is accomplished in a
|
||||
moment, but for the moment we can say that Alyssa posting to the
|
||||
group is as simple as referencing its =@id=:
|
||||
|
||||
#+BEGIN_SRC javascript
|
||||
|
||||
#+END_SRC
|
||||
|
||||
|
||||
|
||||
** The power of proxying
|
||||
|
||||
|
||||
** True names, public profiles, private profiles
|
||||
|
||||
** Rights amplification and group-style permissions
|
||||
|
||||
** MultiBox vs sharedInbox
|
||||
|
||||
** Requested policies
|
||||
|
||||
* Limitations
|
||||
|
||||
* Future work
|
||||
|
Loading…
Reference in New Issue
Block a user