Skip to content

Actors' inbox and outboxΒ #7

@srosset81

Description

@srosset81

What MUST be implemented ?

  • Attach a as:outbox endpoint to the WebID (ref.)
    • POST allow the actor (WebID owner) to post activities, which are then forwarded to recipients' inboxes with a HTTP signature authentication
    • GET return an OrderedCollection with a dereferenced list of activities that the authenticated user has the right to see
  • Attach a as:inbox endpoint to the WebID (ref.)
    • POST allow other servers to send activities to the actor, with a HTTP signature authentication.
    • GET return an OrderedCollection with a dereferenced list of activities that the authenticated user has the right to see
  • Handle side effects
    • Persist activities sent through the outbox somewhere where they can be fetched (reachable URI)
    • Give acl:Read permission to the recipients (if the as:Public addressing is used, give anonymous read permission)

What SHOULD be implemented ?

  • Handle side effects
    • Persist objects that are created with a as:Create activity (ref.)
    • Update objects that are updated with a as:Update activity (ref.)
    • Replace objects that are deleted with a as:Delete with a as:Tombstone (ref.)

Other things to consider

In the scenario of an ActivityPub agent, the inbox and outbox endpoints would necessarily need to be on the server of this agent, because the POST endpoint is very specific and the GET must return an AS OrderedCollection, which is IMO impossible to handle as a regular Solid resource (more about this in this issue).

This may not be a problem. But the inbox and outbox are important aspects of ActivityPub so they must be accessible by any user and also applications registered through SAI. It must be possible to fetch or listen to them, if we have the authorizations. So I wonder how well two Solid agents (SAI Authorization Agent + the ActivityPub agent) could work together, especially on endpoints which are outside of the user's Pod ? This would require more discussions and thinking.

Another thing to consider is that it would mean the content of the inbox and outbox (ie. the URIs of related activities) would be stored outside of the Pod, in the ActivityPub agent server. I'm not sure if that's such a good practice. If another ActivityPub agent is created, and the Pod owner wants to switch to this agent, they will lose their inbox and outbox content.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions