Hi Dave, On Mon, Mar 17, 2025 at 3:00 PM Dave Page <dp...@pgadmin.org> wrote:
> Hi > > On Mon, 17 Mar 2025 at 09:11, Aditya Toshniwal < > aditya.toshni...@enterprisedb.com> wrote: > >> Hi Dave, >> >> Essentially, the permissions can be based on the menus: >> >> Object Explorer >> >> 1. Manage Server Create/Edit/Remove. >> 2. Create database object (user could still be able to create using >> query tool) >> >> Definitely not the second one. We shouldn't do anything that is enforced > in the database server - it's unlikely the two permissions systems will > remain in sync for more than a few minutes, and we shouldn't be duplicating > server functionality anyway. > Yeah. So should I proceed with the implementation? > > >> Tools >> >> 1. Tool access like query tool, backup, etc. >> >> Storage Manager: >> >> 1. Create/Edit/Delete file. >> 2. Create/Edit/Delete folders. >> >> >> On Thu, Mar 13, 2025 at 8:47 PM Aditya Toshniwal < >> aditya.toshni...@enterprisedb.com> wrote: >> >>> >>> >>> On Thu, Mar 13, 2025 at 7:25 PM Dave Page <dp...@pgadmin.org> wrote: >>> >>>> >>>> >>>> On Thu, 13 Mar 2025 at 13:19, Aditya Toshniwal < >>>> aditya.toshni...@enterprisedb.com> wrote: >>>> >>>>> >>>>> >>>>> On Thu, Mar 13, 2025 at 4:54 PM Dave Page <dp...@pgadmin.org> wrote: >>>>> >>>>>> >>>>>> >>>>>> On Thu, 13 Mar 2025 at 11:07, Aditya Toshniwal < >>>>>> aditya.toshni...@enterprisedb.com> wrote: >>>>>> >>>>>>> Hi Dave, >>>>>>> >>>>>>> On Thu, Mar 13, 2025 at 4:27 PM Dave Page <dp...@pgadmin.org> wrote: >>>>>>> >>>>>>>> >>>>>>>> >>>>>>>> On Thu, 13 Mar 2025 at 10:26, Aditya Toshniwal < >>>>>>>> aditya.toshni...@enterprisedb.com> wrote: >>>>>>>> >>>>>>>>> Hi Dave, >>>>>>>>> >>>>>>>>> On Thu, Mar 13, 2025 at 3:36 PM Dave Page <dp...@pgadmin.org> >>>>>>>>> wrote: >>>>>>>>> >>>>>>>>>> Hi >>>>>>>>>> >>>>>>>>>> On Thu, 13 Mar 2025 at 06:16, Aditya Toshniwal < >>>>>>>>>> aditya.toshni...@enterprisedb.com> wrote: >>>>>>>>>> >>>>>>>>>>> Hi Hackers, >>>>>>>>>>> >>>>>>>>>>> I have started looking into a feature where users have requested >>>>>>>>>>> for custom roles. The roles can then be assigned permissions. >>>>>>>>>>> Here's what I >>>>>>>>>>> think how it can be done: >>>>>>>>>>> >>>>>>>>>>> 1. Create a framework for roles based access control. >>>>>>>>>>> 2. Allow adding/editing/deleting roles from UI. >>>>>>>>>>> 3. User management dialog can be converted to a tab to get >>>>>>>>>>> extra space for other stuff. >>>>>>>>>>> 4. pgAdmin can have some predefined permissions. The >>>>>>>>>>> permissions can then be used to validate at the API levels and >>>>>>>>>>> UI. >>>>>>>>>>> 5. New permissions cannot be added from UI as it will >>>>>>>>>>> require code changes. They can be added based on user requests. >>>>>>>>>>> 6. Admin can allow these permissions to the roles and roles >>>>>>>>>>> can be assigned to users. >>>>>>>>>>> 7. Permissions will be used to >>>>>>>>>>> 8. Admin role remains static with no changes allowed. >>>>>>>>>>> >>>>>>>>>>> Let me know your thoughts on this. If everything looks good then >>>>>>>>>>> I will proceed. >>>>>>>>>>> >>>>>>>>>> >>>>>>>>>> What permissions would we support initially? >>>>>>>>>> >>>>>>>>> >>>>>>>>> Based on https://github.com/pgadmin-org/pgadmin4/issues/7310, we >>>>>>>>> can start with not allowing users to register a server. We'll start 1 >>>>>>>>> or 2 >>>>>>>>> may be, the intention is to create a framework which will allow us to >>>>>>>>> keep >>>>>>>>> adding permissions on future requests. >>>>>>>>> >>>>>>>> >>>>>>>> The reason I ask is that there's no point in creating a framework >>>>>>>> if we just end up with a single permission for adding/removing >>>>>>>> servers. I >>>>>>>> think it makes sense to be sure there are likely to be other >>>>>>>> permissions >>>>>>>> before committing to something likely to be a lot more complex than >>>>>>>> just >>>>>>>> adding an attribute to a user. >>>>>>>> >>>>>>> >>>>>>> I understand, but there have been many user requests for custom >>>>>>> roles. I agree that adding a complex thing like RBAC just for one single >>>>>>> permission is an overkill. But based on my past experience - users will >>>>>>> come up with more permissions once they see that they can tweak the >>>>>>> permissions now. >>>>>>> What do you suggest we can do? >>>>>>> >>>>>> >>>>>> I do agree, there is the possibility for additional roles to come up, >>>>>> however, I'm struggling to think what makes sense right now. RBAC access >>>>>> to >>>>>> tools like psql or the Query Tool don't make much sense - if you can >>>>>> login >>>>>> to the database server, then there's nothing to stop you just running >>>>>> psql >>>>>> anyway and bypassing any RBAC we might implement. I suppose there might >>>>>> be >>>>>> an argument that pgAdmin is being used as a "gateway" to a server on an >>>>>> otherwise inaccessible network, but then I worry that that opens a whole >>>>>> other can of worms around locking down ways for users to execute queries >>>>>> through pgAdmin that we might never have previously considered to be a >>>>>> problem. >>>>>> >>>>>> You say there have been many user requests for custom roles. What >>>>>> roles were they asking for? >>>>>> >>>>> Roles similar to what Grafana provides >>>>> https://grafana.com/docs/grafana/latest/administration/roles-and-permissions/, >>>>> but majorly restrictions around server nodes. >>>>> >>>> >>>> Many of those aren't relevant to pgAdmin, but one that did stand out is >>>> the ability to create/delete folders. That might well be useful to control. >>>> >>> >>> So we have 2-3 now. Let me dig in all the modules if I can find more >>> useful permissions. >>> >>>> >>>> -- >>>> Dave Page >>>> pgAdmin: https://www.pgadmin.org >>>> PostgreSQL: https://www.postgresql.org >>>> pgEdge: https://www.pgedge.com >>>> >>>> >>> >>> -- >>> Thanks, >>> Aditya Toshniwal >>> pgAdmin Hacker | Sr. Staff SDE II | *enterprisedb.com* >>> <https://www.enterprisedb.com/> >>> "Don't Complain about Heat, Plant a TREE" >>> >> >> >> -- >> Thanks, >> Aditya Toshniwal >> pgAdmin Hacker | Sr. Staff SDE II | *enterprisedb.com* >> <https://www.enterprisedb.com/> >> "Don't Complain about Heat, Plant a TREE" >> > > > -- > Dave Page > pgAdmin: https://www.pgadmin.org > PostgreSQL: https://www.postgresql.org > pgEdge: https://www.pgedge.com > > -- Thanks, Aditya Toshniwal pgAdmin Hacker | Sr. Staff SDE II | *enterprisedb.com* <https://www.enterprisedb.com/> "Don't Complain about Heat, Plant a TREE"