mirror of
https://gitlab.com/spritely/ocappub.git
synced 2024-11-22 21:23:02 +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
|
*** 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
|
** The power of proxying
|
||||||
|
|
||||||
|
|
||||||
** True names, public profiles, private profiles
|
** True names, public profiles, private profiles
|
||||||
|
|
||||||
** Rights amplification and group-style permissions
|
** Rights amplification and group-style permissions
|
||||||
|
|
||||||
** MultiBox vs sharedInbox
|
** MultiBox vs sharedInbox
|
||||||
|
|
||||||
|
** Requested policies
|
||||||
|
|
||||||
* Limitations
|
* Limitations
|
||||||
|
|
||||||
* Future work
|
* Future work
|
||||||
|
Loading…
Reference in New Issue
Block a user