15:06:32 RRSAgent has joined #social 15:06:32 logging to https://www.w3.org/2018/04/11-social-irc 15:06:48 evanp has joined #social 15:06:50 trackbot has joined #social 15:06:53 trackbot, start meeting 15:06:53 Sorry, but no Tracker is associated with this channel. 15:06:55 huh yeah 15:06:57 Huh 15:07:45 trackbot, we're starting without you 15:07:45 Sorry, aaronpk, I don't understand 'trackbot, we're starting without you'. Please refer to for help. 15:08:33 TOPIC: OAuth 2 15:08:49 evanp: pump.io has been implementing OAuth 2 15:08:56 to get C2S and S2S working 15:09:15 getting a few tens of thousands more users on activitypub 15:09:19 oh woops 15:09:20 one sec 15:09:23 we did not have scopes in the previous api based on oauth 1.0 15:09:30 there were some questions around that from users 15:09:44 you either have the choice of giving total control or no control, which is a stark choice 15:09:57 for pump.io, with the existing api, there are 4 classes of clients that use the api 15:10:16 1) "normal" clients, android/ios, some web clients, that are giving you a full social networking experience 15:10:32 you read the inbox, post items, post text or files, etc, follow, unfollow, etc 15:10:52 the pump.io web UI is a client in that way, it requests authorization the same way any other client would 15:11:34 2) read-only clients like bridges, pushing your data out to other networks, doing analysis, etc. 15:12:06 3) a group of projects that operate on their own data, play a game and generate activities where all the data is related to that game 15:12:12 openfarmgame is the best example 15:12:29 4) web browser utilities, a "like" button in your web browser 15:12:36 focused on one kind of activity but operating across the web 15:12:56 that doesn't cover everything but those are the kinds we had 15:13:20 another that operates only on its own data, you can log into a pump.io site from another pump.io site and then follow people and comment and share 15:13:27 that remote pump.io site acts just like any other client 15:13:50 looking at OAuth 2.0 scopes for activitypub and thinking about what scopes we want to support, activitypub doesn't define scopes yet 15:14:01 which is kind of a bummer because people implementing clients, knowing a fixed group of scopes is useful 15:14:21 if I direct my android client at something that supports activitypub it would be nice if it understood when I askf or certain types of access 15:14:26 it seems there are two ways people do scopes 15:14:49 one is in super fine grained detail. other companies do this down to giving access to certain parts of your account, who you're following, post this kind of activity, etc 15:15:05 that gives a lot of control to the user, but also is a lot of overhead to the user 15:15:15 there is some cognitive load that has the unfortunate side effect that people just click through 15:15:37 the other path that other implementers take is a very minimal set of scopes. 15:16:17 after some discussion in #social with aaron, we worked on a first version of scopes, a fairly minimal set of scopes 15:16:43 we want to put these up and say hey everyone should implement these scopes 15:16:49 we took a look at our existing clients and came up with four scopes 15:17:07 1) login authorization. no read or write access, just identification 15:17:22 2) "read": gives full read access to your account 15:17:28 anything that the user can read the application can read 15:17:36 user profile, user social graph, user's inbox feed, and outbox feed 15:18:05 jankusanagi_ has joined #social 15:18:08 3) "writeown": the client can post activities that are related to the client's own server 15:18:35 so if it's a game, the targets of the activities are on the same domain as the game 15:18:53 so a game at openfarm.example, the IDs of the targets would be on openfarm.example otherwise refused 15:19:23 activitystreams objects are kind of complex, so we're imagining a little flexibility, but the general expectation is things like "reply to" "like" "follow" the activity would be closely related to the originating client 15:19:40 4) "writeall": for full-featured client applications, like an android client 15:19:49 that is implemented in pump.io right now 15:19:55 in the master branch 15:20:04 we'll be rolling out 5.2 version in the next few weeks 15:20:16 so we'll have that implementation available to start testing 15:20:36 the question is will clients say it's too much hassle to ask for certain types of scope and ask for maximum and expect people to click through 15:20:43 our hope is that the scopes will be useful for our clients 15:21:05 my goal is to write this up as a wiki page or note for the CG so as other folks are implementing C2S for activitypub they can use similar scopes 15:22:52 aaronpk: that sounds great. i'd love to see this documented on the wiki, and once there is one or more client implementations, publish as whatever report format the community group can publish 15:24:00 puckipedia: one question I had was how abusable this could be, like writing a reply to a post on that server... (unintelligible) 15:24:18 evanp: are you saying we have a hostile client that attempts to write posts in reply to IDs that it knows it has access to 15:24:34 ... yeah that's a risk of the "writeown" is that there's a lot of flexibility for the third party client to fudge around 15:24:52 ... I don't think it's an iron-clad security system, that's not the goal here, it's to set a scope for what's okay and not okay 15:25:50 puckipedia: it might also be possible to be able to pre-set some scope, like all the posts this client makes can be public or private, etc 15:26:12 ... for example when you log in to an app on facebook you can choose whether the app can make public posts 15:27:24 Mumble kicked me off 15:27:44 I was saying, yes, we could go REALLY fine grained in scopes 15:27:56 Which gives much more end user control 15:28:07 aaronpk: that mechanism is different from scopes. scope is an agreement between clients and servers, and for that example you actually don't want the client to know that they've been limited so the posts are only visible to the user 15:28:13 At the cost of UI complexity 15:28:36 ... my point is that a server can implement that limitation without scopes 15:28:42 Ah, that's fair! 15:29:10 So, for pump.io, we're going to go with a coarse-grained set of scopes out of the box, which reflects the actual use we've seen from third-party clients 15:29:35 And if the community goes more down the path of fine-grained scopes, we'll probably still support our high-level ones for developers who've come to depend on them 15:29:46 ...or phase them out over time 15:32:04 aaronpk: has this been written up anywhere besides the pump.io docs yet? 15:32:15 evanp: not yet, i'll give myself a task to create a wiki page describing this before our next meeting 15:32:47 TOPIC: Activity Streams context 15:33:04 evanp: at our last meeting we had discussed updating the context to add some properties that hadn't been caught. 15:33:16 ... I did an update to the doc and it's in the github repository and sent an email to sandro and amy 15:33:31 I haven't heard from either of them about it, I was hoping they'd be on the call, since it'd be useful to get that finished up 15:34:51 [end of meeting] 15:35:02 RRSAgent, end meeting 15:35:02 I'm logging. I don't understand 'end meeting', aaronpk. Try /msg RRSAgent help 15:35:47 RRSAgent, create minutes 15:35:47 I have made the request to generate https://www.w3.org/2018/04/11-social-minutes.html aaronpk 15:36:09 RRSAgent, bye 15:36:14 RRSAgent, make minutes public 15:36:14 I'm logging. I don't understand 'make minutes public', aaronpk. Try /msg RRSAgent help 15:36:20 ffs 15:36:37 RRSAgent, make logs public 15:37:03 RRSAgent, bye 15:37:03 I see no action items