Hi

On Mon, 17 Mar 2025 at 09:39, Aditya Toshniwal <
aditya.toshni...@enterprisedb.com> wrote:

> 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?
>


If that’s what Akshay wants you working on, then sure :-)


>>
>>> 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"
>

Reply via email to