14:01:17 #startmeeting Pulp Triage 2019-12-03 14:01:17 #info dkliban has joined triage 14:01:17 !start 14:01:17 Meeting started Tue Dec 3 14:01:17 2019 UTC. The chair is dkliban. Information about MeetBot at http://wiki.debian.org/MeetBot. 14:01:17 Useful Commands: #action #agreed #help #info #idea #link #topic. 14:01:17 The meeting name has been set to 'pulp_triage_2019-12-03' 14:01:17 dkliban: dkliban has joined triage 14:01:18 dkliban: An error has occurred and has been logged. Check the logs for more information. 14:01:41 #info dkliban has joined triage 14:01:41 !start 14:01:41 dkliban: Error: Can't start another meeting, one is in progress. 14:01:42 dkliban: dkliban has joined triage 14:01:43 dkliban: An error has occurred and has been logged. Check the logs for more information. 14:01:50 ok ... i think we are good 14:01:58 thank you 14:02:07 here is a link to the document with the use cases from last time https://docs.google.com/document/d/1byC3kXNqK0b4vA7iwkS9FDUdU60gfofixzxCMfLBt8E/edit# 14:02:12 lmk if you don't have edit rights 14:02:37 I just enabled edit rights so you may have to reload 14:02:40 https://docs.google.com/document/d/1byC3kXNqK0b4vA7iwkS9FDUdU60gfofixzxCMfLBt8E/edit?usp=sharing 14:03:44 I was reading over these and I thought of at least two use cases I wanted to also throw out there 14:04:44 the first hsa to do with permissions assignment to new objects created 14:05:25 yep 14:05:46 so a user receives a permission to create a new object, but what users get perms on that new object? 14:06:07 I wanted to see if there were any strong expectations in this area from others 14:06:51 i would expect all users in my 'group' to have access 14:07:13 however, there might not be any users in my group 14:07:21 and it's just me in that group 14:07:50 can we be more specific, I think for different object the logic of which perms to assign might be different 14:08:06 e.g. uploaded file/artifact and repository 14:08:20 can they follow the same perms startegy 14:08:22 ? 14:08:29 i think so 14:09:00 ok 14:09:43 I create a repo and I want it to be managed by any users, not only from my group 14:10:08 yes ^ is the second thing I was also pondering 14:11:25 permissions upon creation - it's only available to my group. To make it public, I need to explicitly set perms that way. 14:11:26 ? 14:11:37 yes, i think so 14:11:39 +1 14:11:52 I guess the strictest perms should be applied by default 14:11:58 to be safe 14:12:21 can I be a part of multiple perm groups? 14:12:32 yes you should be able to be 14:12:36 i think so 14:12:54 then it's trickier :/ 14:13:18 will I be able to provide permissions in the same call as I create a resource? 14:13:49 I don't think so 14:13:52 If I'm in multiple groups and I want the resource to be available only for one of them,how do I deal with that? 14:13:55 although I don't have a clear suggestion on what to do 14:14:01 this is also what I'm wondering 14:14:39 I think there will be defaults probably, and the perms need to know the concept of "my user", "my group", "these groups" etc 14:14:57 and this is kind of like a conceptual isolation level 14:15:39 yeah 14:16:08 +1 14:16:32 so now we need to express this as a use case 14:16:32 +1 for having defaults defined explicitly 14:16:56 dkliban: this is what I was going for with "As a user, when I create new objects they are assigned expected permissions" 14:17:15 As a user, I can configure default permissions for newly created objects? 14:17:55 the persona there is a 'user' but then we need to talk about users having the right to make such changes 14:18:40 As an administrator, I can configure default permissions for newly created object 14:18:47 As a user, when I create new objects they are assigned default permissions 14:19:09 this sounds pretty good 14:19:19 assuming only admins can changes default perms 14:19:26 *change 14:19:28 well very good, there are just more open questions 14:19:34 lol 14:19:38 let's use those two use cases 14:19:38 (: 14:19:43 yes, let's 14:20:04 added 14:21:24 which questions do you think we need to answer now? 14:21:25 ok what other use cases do folks want to discuss? 14:21:43 I was hoping for a last call for use cases, and then a quick chat about next steps 14:22:33 i just have questions about existing use cases 14:22:48 Does it make sense? As an administrator, I can grant the existing set of permissions to a user or a group of users. 14:23:00 or is it covered by use case #2 from the last time 14:23:38 I think slightly different, one is a specificaiton of not-yet-created object perms the other is a specification of an existing set 14:24:41 ttereshc: what is 'set of permissions' ? 14:24:42 I can imagine that it would be convenient to create some sets of permissions and then grant different combinations to a user or a group 14:25:39 e.g. set#1 - read access to all repos, set#2 - write access to repoA and repoB 14:26:05 ttereshc: cool ... so i think there is 2 use cases there 14:26:18 As an administrator I can create a permission set. 14:26:32 As an administrator I can assign a permission set to a user or a group. 14:26:50 my concern with this use csae is that I think it's going to preclude a lot of existing implementations 14:27:13 as a nice to have this sounds great 14:28:06 what do you think ttereshc ? 14:28:27 to clarify I hope these use cases are used to evaluate existing django/drf based rbac softwares so if it goes on the list to help inform that evaluation then +1 14:28:34 I agree to keep it in nice-to-have category 14:28:52 bmbouter, yeah, I understand 14:29:00 cool ... let's record then 14:29:06 ttereshc: I feel like I'm stifling the convo, sorry for that 14:29:18 +1 to record 14:29:27 not at all, all good :) 14:29:32 :) 14:29:53 ty to Anynomous Blobfish for writing these out 14:30:20 lol 14:31:07 ok other questions/convo? 14:31:30 As a user, I can grant a user/group of users permissions to promote to some environments (dev/test), but not others (production) 14:31:44 ^ do we want to make this use case more specific? 14:32:04 we should probably define what the environment is in pulp 14:32:30 i can see one user saying that a repository is an environment. another user saying that a distribution is an environment 14:32:43 I think they both are 14:32:45 lol 14:32:53 or both together 14:33:15 this is similar to the grouping of permissions, at some point there is a convenience factor in grouping things together 14:33:37 but I am concerned if we focus on that we'll miss the actual raw permissions in all their detail 14:34:10 yep 14:34:26 I think of this as calling out the need for "view-level permissions support" in that syncing on a repository is an action, not a CRUD perm on the repository 14:34:44 CRUD on a distirbution though is just CRUD so I think of that as "object level permissions" 14:34:58 and my takeaway is I'm seeing use cases for both 14:35:18 yep ... so we need a use case that specifies the view level permissions 14:37:42 I'm a bit confused what is view-level. view as read, or view as django views - other actions than crud? 14:38:35 think "action endpoints" as view-level 14:38:36 ttereshc: view as in django view 14:38:40 yes 14:38:54 user is allowed or not allowed to sync 14:39:00 for example sync, you're not actually modifying the repo's data itself 14:39:02 cool, thanks 14:39:17 do we have any other action endpoints? 14:39:24 modify 14:39:30 yep 14:39:51 upload 14:39:57 copy 14:40:02 ah it's modify 14:41:41 It's hard to separate crud perms from action perms, because to publish a repo, you need to Create a publication and/or distribution. 14:41:59 I mean from the user point of view 14:43:15 I think they'll get all those 14:43:27 get meaning receive the ability to control 14:43:49 I'm thinking how to phrase properly the use case :) 14:44:27 the permission is more the creation/deletion of repository versions 14:44:46 and that isn't a CRUD operaiton on a repository, and we don't want users to think about repository versions directly 14:45:34 As an administrator, permissions are available to allow/deny the creation/deletion of a repository version as a repository permission 14:46:37 this basically handles all repository content change operation RBAC checking 14:47:14 maybe it can be "As a administrator, I can allow/deny modification of repository content"? 14:47:36 if we don't want users to think about repo versions 14:47:39 let's go with that 14:48:27 ok other thoughts on this list? 14:49:03 And in the use case #4, there are "permissions to promote". Does it mean permission to create publication/distribution for a specific repo? 14:50:18 I'm just thinking that it's likely not easy to implement those. 14:50:41 I think of it as publication creation for the repo, that is another view level 14:50:59 promoting can mean 2 things: permission to copy repo A to a repo i have permission to control. or permission to create a publication using repo A 14:51:19 ok 14:51:21 thanks 14:51:30 I don't have any other questions at the moment 14:53:00 bmbouter: do you have any questions at this time? 14:53:22 I don't. I'd like to look at some of the permission options and write up and send it to the list 14:53:29 s/options/softwares/ 14:53:48 so we can conclude if there are no other discussions 14:54:10 +1 14:54:18 that would be great 14:54:21 go for it 14:54:25 #endmeeting 14:54:25 !end