swentel / activitypub

ActivityPub for Drupal
GNU General Public License v2.0
20 stars 3 forks source link

Support multiple actor models--site, user, group #4

Open nedjo opened 4 years ago

nedjo commented 4 years ago

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:

swentel commented 4 years ago

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

nedjo commented 4 years ago

I would probably separate this issue and start with the common one being @username@example.com

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?

swentel commented 4 years ago

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 :)

ekes commented 4 years ago

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:name@domain.example.com, 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].