activitypub icon indicating copy to clipboard operation
activitypub copied to clipboard

Support multiple actor models--site, user, group

Open nedjo opened this issue 6 years ago • 4 comments

Roughly parallel issue on Indieweb: https://github.com/swentel/indieweb/issues/458

Who should a site's content be assigned to? There are probably at least three common models:

  • @[email protected]: the site has a single actor/author of type Organization. Appropriate for organizational websites. Fediverse clients can follow the organization as a whole.
  • @[email protected]: each user is a separate actor of type Person.
  • @[email protected]: each group (per Groups or Organic Groups modules) is an actor of type Group.

nedjo avatar Dec 20 '19 20:12 nedjo

I had no idea these types existed. I would probably separate this issue and start with the common one being @[email protected] - at least, that's what I think is the most common one :)

swentel avatar Dec 21 '19 14:12 swentel

I would probably separate this issue and start with the common one being @[email protected]

Group can definitely wait. But ideally we'd ship an initial version with both the Organization and the Person models covered.

Say we're taking about the site of a nonprofit organization. Typically they'll have a "Follow us on [Twitter/Facebook/whatever, etc.]" button where all the organization's content is in one place, rather than scattered between separate streams, one for each staff member. For that organization use case, we need a single actor for the site.

Is that model mutually exclusive from per-user, or are they compatible on a given site? Part of that question probably comes down to: is it okay to provide the same content in multiple streams?

nedjo avatar Dec 21 '19 17:12 nedjo

Ok, been reading https://w3c.github.io/activitypub/#actors and https://www.w3.org/TR/activitystreams-vocabulary/#actor-types - especially the 'Note' at #actors is interesting - and typically AP in the end in terms of "well we don't know, you decide" :)

I don't have a strong opinion on this at the moment, but I feel like the organisation could simply be a dedicated drupal account where the (fediverse) username is the name of the organisation no? From that perspective, there's no difference from a technical point of view between organisation user and person user as far as I can see. Which means less code to write and maintain :)

I could be missing things. I'll take a peek at mastodon and others to see if they make a difference between both - my gut feeling is that they probably don't even make that distinction so far, but who knows :)

swentel avatar Dec 21 '19 17:12 swentel

So my initial use case was (organic) groups as the actors. They are the ones organising, and publicising events.

Avoiding name clashes for the webfinger was one of the reasons to make a activitypub actor with a unique acct:[email protected], where name has to unique over all actor types. The paths to the actor themselves, their inbox, outbox, followers etc. can be /type/machine_name/inbox for example, so there it doesn't matter, only for the webfinger.

[Aside I had wondered about (for D8) using the same paths as the entities themselves '/user/123' and just switching on the HTTP Accept Content Type 'application/activity+json'. In D7 way that's way too funky. So I ended up with /activitypub/type/machine_name[/{outbox|inbox|followers}]... which actually follows much what Mastodon does, it even redirects you based on you content type accept headers].

ekes avatar Jan 11 '20 13:01 ekes