On Mon, Mar 17, 2025 at 3:39 PM Dave Page <dp...@pgadmin.org> wrote:

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

I was waiting for confirmation if the pgAdmin team would accept it or not :)

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

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