Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1ljH68-00012w-1k for pgadmin-hackers@arkaria.postgresql.org; Wed, 19 May 2021 07:58:32 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.92) (envelope-from ) id 1ljH65-0000tA-3v for pgadmin-hackers@arkaria.postgresql.org; Wed, 19 May 2021 07:58:29 +0000 Received: from magus.postgresql.org ([2a02:c0:301:0:ffff::29]) by malur.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1ljH64-0000t2-Nf for pgadmin-hackers@lists.postgresql.org; Wed, 19 May 2021 07:58:28 +0000 Received: from mail-yb1-xb29.google.com ([2607:f8b0:4864:20::b29]) by magus.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.92) (envelope-from ) id 1ljH60-0007cF-KA for pgadmin-hackers@postgresql.org; Wed, 19 May 2021 07:58:28 +0000 Received: by mail-yb1-xb29.google.com with SMTP id d14so8963411ybe.3 for ; Wed, 19 May 2021 00:58:23 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=enterprisedb-com.20150623.gappssmtp.com; s=20150623; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=ViTf9ZxdtlKF/7U0gevc50+RvC1qRdgGbzUd05PdfGg=; b=egPdGVwhZ6QL5JUqnAFYwUieysIciV8scRfEE8UQZrUlZ9IGJNQawYYSLbROlG/47x VMA6T6qLyJnYdkjWiu9BpQ2r6VHIwkzOWv6nb2R34yKuq7nACu1dCNlmmYDMmIGDq//2 qcohmMJFKFx9MNliAeuAWAGUyKhSFe0riMWuYlFROBGkxHBu8/eEt4+biCvljtUBw0rO bl1hYblOSDX8lZ57MqPSsBLfafp+v+2ANTVKHIp8M/ZZKbp4gXyBPM2hIoZrs9TIKdvo +sni+GZ0wcUz8wiUVjgacHbIaw+FCQbke+PUQ2QTvsUxNpf9GNU7rzl5wlme/uOXcr4q 8A+Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=ViTf9ZxdtlKF/7U0gevc50+RvC1qRdgGbzUd05PdfGg=; b=TNvXdq3BNTWPWB8AYQMbdCR8AgUgYB/dkB32IcRg2cPF2mtufBWu2+P+825+gUDkA5 WOlYgHfP0aJtOQX5IIrKbjE/FNZwI9Pg9+yoXNo6rgxbN+25aP+N50DJ58XJBY1BPHl2 Q4XYwVBCObKH9Hi0KhD8hPRlOhWjGU9VqoPkyX0++U3NKq+4/eLYKZXjTHDLOWYl7cU/ MaleH9CBPAdodiGItrt3hHUcv0p48mFiNj5uD4sY2K4jHY3bYUlpOYdC+sCwrAsIi7mS G3OR/KquTld1SUs4Jkh9hRnIRAg7ECITJ0GQW8nl309PmCgKqDPEnFCqH/yQNKn1Ldtg SzBA== X-Gm-Message-State: AOAM532+ok7auI0SYGIimLcYm9wLX3+Ts7zR1gDWwlIy22bHbRhVkJvM m9llNnG7sHK3H2Qf1HcoZ10O97hrqCZONfoPrGkFyl7Qjom8lofknGY+7ftcdLsvWnVd4BX67g/ Rnm1nmD4d1smbpBei2IYlqke/rD9HKsr0GFVgKD5br+6c7UPTw4e3gFVeKFoO/IWnqP12ao72VV pxGSATvHabOgTX4Q38R5306MzWwEAUxXPR2ojn7DZ95Jy+qBeWkqnJ/7qQCQ== X-Google-Smtp-Source: ABdhPJxPv2AW752Z55aQPRKUOXdq1IFTQe/FweYrH/eMs+NUYPwBSB7Fda7cvlJ+CVvBCLcfpqFUzh5xI7JsibGHlD8= X-Received: by 2002:a25:b74d:: with SMTP id e13mr13533935ybm.372.1621411101095; Wed, 19 May 2021 00:58:21 -0700 (PDT) MIME-Version: 1.0 References: In-Reply-To: From: Nikhil Mohite Date: Wed, 19 May 2021 13:28:09 +0530 Message-ID: Subject: Re: [pgAdmin][RM-2341]: Add menu option for starting PSQL To: Dave Page Cc: Akshay Joshi , pgadmin-hackers Content-Type: multipart/alternative; boundary="000000000000b75aad05c2aa30f9" X-CLOUD-SEC-AV-Info: enterprisedb,google_mail,monitor X-CLOUD-SEC-AV-Sent: true X-Gm-Spam: 0 X-Gm-Phishy: 0 List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --000000000000b75aad05c2aa30f9 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Hi Dave/ Team, On Tue, May 18, 2021 at 8:41 PM Dave Page wrote: > Hi > > On Tue, May 18, 2021 at 12:12 PM Nikhil Mohite < nikhil.mohite@enterprisedb.com> wrote: > Hi Dave/Team, > > > On Mon, May 17, 2021 at 6:47 PM Dave Page wrote: > >> Hi >> >> On Mon, May 17, 2021 at 11:01 AM Nikhil Mohite < >> nikhil.mohite@enterprisedb.com> wrote: >> >>> Hi Akshay/ Team, >>> >>> Please find the attached updated patch for the psql tool. >>> >> >> Hmm, this version is also broken. There's a typo in editor_template.html >> on line 138 - it splits a string across two lines which throws an error. >> Having fixed that... >> >> I also note there's a lot of Javascript in that HTML file. That should b= e >> pushed into the webpacked bundle I think, and not included inline in HTM= L. >> > I have moved most of the code in the js file, few things are still in HTM= L. > Hmm, yes - in particular, colours for the different themes. Please move them into the css for the themes. You have a mix of style, layout and code in this file which needs to be cleaned up. xterm V3 onwards they have provided the API to set the theme and other settings, earlier I tried with CSS to override the theme but couldn=E2=80= =99t able to apply the theme properly as some style get applied as in-line style for the HTML, so used the API to set the theme. > Speaking of themes, the background colour for selected text doesn't seem > right (it's barely visible) in the dark theme. Can you fix that to match > the colouring in the SQL text boxes please? > > >> >>> A couple of other things I noticed: >>> >>> - The button is enabled if the treeview has a Server selected. It could >>> be argued that the query tool should do the same (defaulting to the >>> maintenance database), however, that would be a separate change, and ps= ql >>> should be consistent with the query tool. >>> >> It is now consistent with the query tool. >> >>> >>> - If I do a "select * from pg_class;" I still get: >>> >>> postgres=3D# select * from pg_class; >>> WARNING: terminal is not fully functional >>> >> I am not able to reproduce the warning for the terminal (I am working on >> Catalina 10.15.7), I checked on browsers (chrome, firefox, Safari) and a= lso >> checked on local nwjs runtime but still not able to reproduce the warnin= g. >> but found one limitation: >> > > It looks like that can be fixed by adding: > > env=3D{'TERM': 'xterm'} > > to the subprocess.Popen() call. > > I noticed while I was playing with that, that you are passing the passwor= d > as part of the connection string. As I've mentioned in the past, that is > absolutely not acceptable; it will expose the password to all manner of > tools (such as ps -ef). You *must* pass the password to psql using the > PGPASSWORD environment variable. > > >> if we try to load data from the table containing millions of records, UI >> gets very slow. >> > > Is xtermjs discarding the older buffer contents when it fills up? Can you > tell where the memory usage is? > I checked the psql memory consumption in terminal and pgAdmin psql tool memory consumption is the similar. Also tested the performance and query execution timing is also similar. > > > >> >>> - I'm sure using \q in the previous version displayed a message saying >>> the session exited (the one on line 138 of editor_template.html). It no >>> longer seems to do so. >>> >> > In addition to the issue above, it looks like the \! blocking may have > lost it's ability to ignore quoted strings: > > pgweb=3D# select '\!'; > ERROR: Shell commands are disabled in psql for security > > >>> >>>> >>>> >>>> On Tue, May 11, 2021 at 3:40 PM Dave Page wrote: >>>> >>>>> Hi >>>>> >>>>> On Tue, May 11, 2021 at 9:02 AM Akshay Joshi < >>>>> akshay.joshi@enterprisedb.com> wrote: >>>>> >>>>>> Hi Nikhil >>>>>> >>>>>> Following are the review comments: >>>>>> >>>>>> *GUI specific*: >>>>>> >>>>>> - We need a panel icon for PSQL like query tool, we can also add >>>>>> that on the browser tree toolbar. >>>>>> - PSQL Tool menu should be visible for all the child nodes of the >>>>>> database node. Follow the same as Query Tool. >>>>>> - PSQL tab title should be only database server name as the user >>>>>> can change the database/user from PSQL command, so it's been diff= icult to >>>>>> update the tab title. >>>>>> - PSQL connection is still open even if we disconnect the >>>>>> database server from the browser tree. >>>>>> >>>>>> *Code specific:* >>>>>> >>>>>> - Remove an extra space from requirements.txt and package.json >>>>>> - Documentation needs to be updated to let the user know from >>>>>> where the PSQL tool will open and on which node it is applicable. >>>>>> - psql/__init__.py check there are so many unused imports please >>>>>> remove them. >>>>>> - We are not using cheroot so it should be removed from >>>>>> requirements.txt and also remove the import statement from pgAdmi= n4.py >>>>>> - Test cases are showing successful but actually, there are some >>>>>> routing errors please check. >>>>>> >>>>>> A few other things I noticed: >>>>> >>>>> - I was prompted to enter a password. This should be passed in the >>>>> environment to psql as it is for pg_dump etc. >>>>> - There seems to be an issue with terminal compatibility (which I >>>>> didn't have on my prototype): >>>>> >>>>> ml=3D# select * from pg_class; >>>>> WARNING: terminal is not fully functional >>>>> -[ RECORD 1 ]-------+---------------------------------------------- >>>>> oid | 79354 >>>>> relname | housing >>>>> ... >>>>> >>>>> - The panel should honour the styleguide. I'm running in dark mode, >>>>> and see a jet black background. I would expect to see the same >>>>> background/foreground colours as the treeview. >>>>> - I spotted at least one print() statement that shouldn't be there >>>>> (debug output should go through the logger) - psql/__init__.py:235 >>>>> - This seems suspect - why would there be a password in a connection >>>>> string we've built? And why would it be xxx? >>>>> >>>>> if 'password=3Dxxx' in conn_attr: >>>>> conn_attr =3D conn_attr.replace('password=3Dxxx', '') >>>>> >>>>> - There's a thick white line at the bottom of the panel, where a >>>>> horizontal scrollbar might be if there was one. >>>>> - The trailing semi-colon should be removed from: "ERROR: Shell >>>>> commands are disabled in psql for security;" >>>>> >>>>> Once we're happy with the patch in general, I'll do a string review >>>>> before committing. In particular, I want to be sure the text in confi= g.py >>>>> is appropriately worded. >>>>> >>>>> This is shaping up nicely! Good work. >>>>> >>>>> >>>>>> >>>>>> On Mon, May 10, 2021 at 7:32 PM Nikhil Mohite < >>>>>> nikhil.mohite@enterprisedb.com> wrote: >>>>>> >>>>>>> Hi Dave/ Team, >>>>>>> >>>>>>> PFA updated patch, sorry for the inconvenience, while cleanup I >>>>>>> removed the unwanted libraries but forgot to remove the code relate= d to >>>>>>> them. >>>>>>> >>>>>>> On Mon, May 10, 2021 at 7:10 PM Dave Page wrote= : >>>>>>> >>>>>>>> Hi >>>>>>>> >>>>>>>> On Mon, May 10, 2021 at 1:45 PM Nikhil Mohite < >>>>>>>> nikhil.mohite@enterprisedb.com> wrote: >>>>>>>> >>>>>>>>> Hi Hackers, >>>>>>>>> >>>>>>>>> Please find the attached patch for RM-2341 >>>>>>>>> : Add Menu option for >>>>>>>>> starting PSQL. >>>>>>>>> 1. Added new Option PSQL Tool in Tools menu. >>>>>>>>> 2. Added the same option for Server and Database nodes from the >>>>>>>>> tree view. >>>>>>>>> >>>>>>>> >>>>>>>> Unfortunately there's a trailing comma in package.json that makes >>>>>>>> it invalid. If I fix that, then I get the error below, so I'm gues= sing the >>>>>>>> intention was to actually include another package there? >>>>>>>> >>>>>>>> ERROR in ./pgadmin/tools/psql/static/js/psql_module.js 23:50-82 >>>>>>>> Module not found: Error: Can't resolve 'local-echo-controller' in >>>>>>>> '/Users/dpage/git/pgadmin4/web/pgadmin/tools/psql/static/js' >>>>>>>> resolve 'local-echo-controller' in >>>>>>>> '/Users/dpage/git/pgadmin4/web/pgadmin/tools/psql/static/js' >>>>>>>> Parsed request is a module >>>>>>>> using description file: >>>>>>>> /Users/dpage/git/pgadmin4/web/package.json (relative path: >>>>>>>> ./pgadmin/tools/psql/static/js) >>>>>>>> aliased with mapping 'local-echo-controller': >>>>>>>> '/Users/dpage/git/pgadmin4/web/node_modules/local-echo' to >>>>>>>> '/Users/dpage/git/pgadmin4/web/node_modules/local-echo' >>>>>>>> using description file: >>>>>>>> /Users/dpage/git/pgadmin4/web/package.json (relative path: >>>>>>>> ./pgadmin/tools/psql/static/js) >>>>>>>> Field 'browser' doesn't contain a valid alias configuratio= n >>>>>>>> root path /Users/dpage/git/pgadmin4/web >>>>>>>> using description file: >>>>>>>> /Users/dpage/git/pgadmin4/web/package.json (relative path: >>>>>>>> ./Users/dpage/git/pgadmin4/web/node_modules/local-echo) >>>>>>>> no extension >>>>>>>> Field 'browser' doesn't contain a valid alias >>>>>>>> configuration >>>>>>>> >>>>>>>> /Users/dpage/git/pgadmin4/web/Users/dpage/git/pgadmin4/web/node_mo= dules/local-echo >>>>>>>> doesn't exist >>>>>>>> .js >>>>>>>> Field 'browser' doesn't contain a valid alias >>>>>>>> configuration >>>>>>>> >>>>>>>> /Users/dpage/git/pgadmin4/web/Users/dpage/git/pgadmin4/web/node_mo= dules/local-echo.js >>>>>>>> doesn't exist >>>>>>>> .jsx >>>>>>>> Field 'browser' doesn't contain a valid alias >>>>>>>> configuration >>>>>>>> >>>>>>>> /Users/dpage/git/pgadmin4/web/Users/dpage/git/pgadmin4/web/node_mo= dules/local-echo.jsx >>>>>>>> doesn't exist >>>>>>>> as directory >>>>>>>> >>>>>>>> /Users/dpage/git/pgadmin4/web/Users/dpage/git/pgadmin4/web/node_mo= dules/local-echo >>>>>>>> doesn't exist >>>>>>>> using description file: >>>>>>>> /Users/dpage/git/pgadmin4/web/package.json (relative path: >>>>>>>> ./node_modules/local-echo) >>>>>>>> no extension >>>>>>>> Field 'browser' doesn't contain a valid alias >>>>>>>> configuration >>>>>>>> /Users/dpage/git/pgadmin4/web/node_modules/local-echo >>>>>>>> doesn't exist >>>>>>>> .js >>>>>>>> Field 'browser' doesn't contain a valid alias >>>>>>>> configuration >>>>>>>> >>>>>>>> /Users/dpage/git/pgadmin4/web/node_modules/local-echo.js doesn't e= xist >>>>>>>> .jsx >>>>>>>> Field 'browser' doesn't contain a valid alias >>>>>>>> configuration >>>>>>>> >>>>>>>> /Users/dpage/git/pgadmin4/web/node_modules/local-echo.jsx doesn't = exist >>>>>>>> as directory >>>>>>>> /Users/dpage/git/pgadmin4/web/node_modules/local-echo >>>>>>>> doesn't exist >>>>>>>> @ ./pgadmin/tools/psql/static/js/index.js 17:19-43 >>>>>>>> >>>>>>>> 2021-05-10 14:38:37: webpack 5.21.2 compiled with 1 error in 60041 >>>>>>>> ms >>>>>>>> >>>>>>>> -- >>>>>>>> Dave Page >>>>>>>> Blog: https://pgsnake.blogspot.com >>>>>>>> Twitter: @pgsnake >>>>>>>> >>>>>>>> EDB: https://www.enterprisedb.com >>>>>>>> >>>>>>> >>>>>>> Regards, >>>>>>> Nikhil Mohite >>>>>>> >>>>>> >>>>>> >>>>>> -- >>>>>> *Thanks & Regards* >>>>>> *Akshay Joshi* >>>>>> *pgAdmin Hacker | Principal Software Architect* >>>>>> *EDB Postgres * >>>>>> >>>>>> *Mobile: +91 976-788-8246* >>>>>> >>>>> >>>>> >>>>> -- >>>>> Dave Page >>>>> Blog: https://pgsnake.blogspot.com >>>>> Twitter: @pgsnake >>>>> >>>>> EDB: https://www.enterprisedb.com >>>>> >>>>> Regards, >>>> Nikhil Mohite >>>> >>> >>> >>> -- >>> Dave Page >>> Blog: https://pgsnake.blogspot.com >>> Twitter: @pgsnake >>> >>> EDB: https://www.enterprisedb.com >>> >> >> Regards, >> Nikhil Mohite >> > > > -- > Dave Page > Blog: https://pgsnake.blogspot.com > Twitter: @pgsnake > > EDB: https://www.enterprisedb.com > Regards, Nikhil Mohite > > > -- *Thanks & Regards,* *Nikhil Mohite* *Software Engineer.* *EDB Postgres* *Mob.No: +91-7798364578.* --000000000000b75aad05c2aa30f9 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
Hi Dave/ Team,

On Tue, May 18, 2021 at 8:41 PM Dave Page <dpage@pgadmin.org> wrote:
=
Hi

=
On Tue, May 18, 2021 at 12:12 PM Nikhil Moh= ite <nikhil.mohite@enterprisedb.com> wrote:
=
Hi Dave/Team,


On= Mon, May 17, 2021 at 6:47 PM Dave Page <dpage@pgadmin.org> wrote:
Hi

On Mon, May 17, 2021 at 11= :01 AM Nikhil Mohite <nikhil.mohite@enterprisedb.com> wrote:
Hi Akshay/ Team,

<= /div>
Please find the attached updated patch for the psql tool.

Hmm, this version is also broken= . There's a typo in editor_template.html on line 138 - it splits a stri= ng across two lines which throws an error. Having fixed that...
<= br>
I also note there's a lot of Javascript in that HTML file= . That should be pushed into the webpacked bundle I think, and not included= inline in HTML.
I have moved most= of the code in the js file, few things are still in HTML.

Hmm, yes - in particular, colours for the= different themes. Please move them into the css for the themes. You=C2=A0h= ave a mix of style, layout and code in this file which needs to be cleaned = up.
xterm V3 onwards they have prov= ided the API to set the theme and other settings, earlier I tried with CSS = to override the theme but couldn=E2=80=99t able to apply the theme properly= as some style get applied as in-line style for the HTML, so used the API t= o set the theme.


Speaking of the= mes, the background colour for selected text doesn't seem right (it'= ;s barely visible) in the dark theme. Can you fix that to match the colouri= ng in the SQL text boxes please?=C2=A0
<= /div>
=C2=A0
=

A couple of other things I noticed:

- The button is enabled if the treeview has a Server selected. It = could be argued that the query tool should do the same (defaulting to the m= aintenance database), however, that would be a separate change, and psql sh= ould be consistent with the query tool.
It is now consistent with the query tool.

- If I do a "select * from pg_class;" I still get:
postgres=3D# select * from pg_class;
WARNING: te= rminal is not fully functional
I am not able to reproduce the warning for the terminal (I am working on= Catalina 10.15.7), I checked on browsers (chrome, firefox, Safari) and als= o checked on local nwjs runtime but still not able to reproduce the warning= . but found one limitation:

It looks like that can be fixed by adding:

env= =3D{'TERM': 'xterm'}

to the su= bprocess.Popen() call.

I noticed while I was playi= ng with that, that you are passing the password as part of the connection s= tring. As I've mentioned in the past, that is absolutely not acceptable= ; it will expose the password to all manner of tools (such as ps -ef). You = *must* pass the password to psql using the PGPASSWORD environment variable.=
=C2=A0
if=C2=A0we try to load data from the table containing millio= ns of records, UI gets=C2=A0very slow.
<= br>
Is xtermjs=C2=A0discarding the older buffer contents when it = fills up? Can you tell where the memory usage is?
I checked the psql memory consumption in= terminal and pgAdmin psql tool memory consumption is the similar. Also tes= ted the performance and query execution timing is also =C2=A0similar.
=

=C2=A0

- I'm sure using \q in the previous version displayed a message sayin= g the session exited (the one on line=C2=A0138 of editor_template.html). It= no longer seems to do so.=C2=A0=C2=A0
=

In addition to the issue above= , it looks like the \! blocking may have lost it's ability to ignore qu= oted strings:

pgweb=3D# select '\!';
=
ERROR: Shell commands are disabled in psql for security=C2=A0
=C2=A0
=C2=A0


On Tue, May 11, 2021 at 3:40 PM Dave Page <= ;dpage@pgadmin.org> wrote:
<= div dir=3D"ltr">
Hi

On Tue, May 11, 202= 1 at 9:02 AM Akshay Joshi <akshay.joshi@enterprisedb.com> wrote:
Hi Nikhil=C2=A0

Follo= wing are the review comments:

GUI specific:=
  • We need a panel icon for PSQL like query tool, we can al= so add that on the browser tree toolbar.
  • PSQL Tool menu should be v= isible for all the child nodes of the database node. Follow the same as Que= ry Tool.
  • PSQL tab title should be only database server name as the = user can change the database/user from PSQL command, so it's been diffi= cult to update the tab title.
  • PSQL connection is still open even if= we disconnect the database server from the browser tree.
Code specific:
  • Remove an extra space from requi= rements.txt and package.json
  • Documentation needs to be updated to l= et the user know from where the PSQL tool will open and on which node it is= applicable.
  • psql/__init__.py check there are so many unused import= s please remove them.
  • We are not using cheroot so it should be remo= ved from requirements.txt and also remove the import statement from pgAdmin= 4.py=C2=A0
  • Test cases are showing=C2=A0successful but actually,= there are some routing errors please check.
A few other things I noticed:

- I was pro= mpted to enter a password. This should be passed in the environment to psql= as it is for pg_dump etc.
- There seems to be an issue with term= inal compatibility (which I didn't have on my prototype):
ml=3D# select * from pg_class;
WARNING: terminal= is not fully functional
-[ RECORD 1 ]-------+-------------------= ---------------------------
oid =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0 | 79354
relname =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 | housing
...

- = The panel should honour the styleguide. I'm running in dark mode, and s= ee a jet black background. I would expect to see the same background/foregr= ound colours as the treeview.
- I spotted at least one print() st= atement that shouldn't be there (debug output should go through the log= ger) - psql/__init__.py:235
- This seems suspect - why would ther= e be a password in a connection string we've built? And why would it be= xxx?

=C2=A0 =C2=A0 if 'password=3Dxxx= 9; in conn_attr:
=C2=A0 =C2=A0 =C2=A0 =C2=A0 conn_attr =3D conn_a= ttr.replace('password=3Dxxx', '')

- There's a thick white line at the bottom of the panel, where a = horizontal scrollbar might be if there was one.
- The trailing se= mi-colon=C2=A0should be removed from: "ERROR: Shell commands are disab= led in psql for security;"

Once we're hap= py with the patch in general, I'll do a string review before committing= . In particular, I want to be sure the text in config.py is appropriately w= orded.

This is shaping up nicely! Good work.
=
=C2=A0

On Mon, May 10, 2021 at 7:32 PM Nikhil Mohite= <ni= khil.mohite@enterprisedb.com> wrote:
Hi Dave/ Team,

PFA updated patch,= sorry for the inconvenience, while cleanup I removed the unwanted librarie= s but forgot to remove the code related to them.

On Mon, May 10, 2021 at 7:1= 0 PM Dave Page <d= page@pgadmin.org> wrote:
=
Hi

On Mon, May 10, 2021 at 1:45 PM Nikhil = Mohite <nikhil.mohite@enterprisedb.com> wrote:
Hi Hackers,

Please find the attached p= atch for RM-2341:=C2=A0Add Menu option for starting PSQL.
1. Ad= ded new Option PSQL Tool in Tools menu.
2. Added the same option = for Server and Database nodes from the tree view.
<= div>
Unfortunately=C2=A0there's a trailing comma in packa= ge.json that makes it invalid. If I fix that, then I get the error below, s= o I'm guessing the intention was to actually include another package th= ere?

ERROR in ./pgadmin/tools/psql/static/js/= psql_module.js 23:50-82
Module not found: Error: Can't resolv= e 'local-echo-controller' in '/Users/dpage/git/pgadmin4/web/pga= dmin/tools/psql/static/js'
resolve 'local-echo-controller= ' in '/Users/dpage/git/pgadmin4/web/pgadmin/tools/psql/static/js= 9;
=C2=A0 Parsed request is a module
=C2=A0 using descr= iption file: /Users/dpage/git/pgadmin4/web/package.json (relative path: ./p= gadmin/tools/psql/static/js)
=C2=A0 =C2=A0 aliased with mapping &= #39;local-echo-controller': '/Users/dpage/git/pgadmin4/web/node_mod= ules/local-echo' to '/Users/dpage/git/pgadmin4/web/node_modules/loc= al-echo'
=C2=A0 =C2=A0 =C2=A0 using description file: /Users/= dpage/git/pgadmin4/web/package.json (relative path: ./pgadmin/tools/psql/st= atic/js)
=C2=A0 =C2=A0 =C2=A0 =C2=A0 Field 'browser' does= n't contain a valid alias configuration
=C2=A0 =C2=A0 =C2=A0 = =C2=A0 root path /Users/dpage/git/pgadmin4/web
=C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 using description file: /Users/dpage/git/pgadmin4/web/pac= kage.json (relative path: ./Users/dpage/git/pgadmin4/web/node_modules/local= -echo)
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 no extension
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 Field 'browser&= #39; doesn't contain a valid alias configuration
=C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 /Users/dpage/git/pgadmin4/web/Users/= dpage/git/pgadmin4/web/node_modules/local-echo doesn't exist
= =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 .js
=C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 Field 'browser' doesn't contain= a valid alias configuration
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0 =C2=A0 /Users/dpage/git/pgadmin4/web/Users/dpage/git/pgadmin4/web/no= de_modules/local-echo.js doesn't exist
=C2=A0 =C2=A0 =C2=A0 = =C2=A0 =C2=A0 =C2=A0 .jsx
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 Field 'browser' doesn't contain a valid alias config= uration
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 /Users/d= page/git/pgadmin4/web/Users/dpage/git/pgadmin4/web/node_modules/local-echo.= jsx doesn't exist
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 a= s directory
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 /Use= rs/dpage/git/pgadmin4/web/Users/dpage/git/pgadmin4/web/node_modules/local-e= cho doesn't exist
=C2=A0 =C2=A0 =C2=A0 =C2=A0 using descripti= on file: /Users/dpage/git/pgadmin4/web/package.json (relative path: ./node_= modules/local-echo)
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 no extensi= on
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 Field 'browser&#= 39; doesn't contain a valid alias configuration
=C2=A0 =C2=A0= =C2=A0 =C2=A0 =C2=A0 =C2=A0 /Users/dpage/git/pgadmin4/web/node_modules/loc= al-echo doesn't exist
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 .js<= /div>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 Field 'browser'= doesn't contain a valid alias configuration
=C2=A0 =C2=A0 = =C2=A0 =C2=A0 =C2=A0 =C2=A0 /Users/dpage/git/pgadmin4/web/node_modules/loca= l-echo.js doesn't exist
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 .j= sx
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 Field 'browser&#= 39; doesn't contain a valid alias configuration
=C2=A0 =C2=A0= =C2=A0 =C2=A0 =C2=A0 =C2=A0 /Users/dpage/git/pgadmin4/web/node_modules/loc= al-echo.jsx doesn't exist
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 = as directory
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 /Users/dpa= ge/git/pgadmin4/web/node_modules/local-echo doesn't exist
=C2= =A0@ ./pgadmin/tools/psql/static/js/index.js 17:19-43

<= div>2021-05-10 14:38:37: webpack 5.21.2 compiled with 1 error in 60041 ms
=C2=A0
--
D= ave Page
Blog: https://pgsnake.blogspot.com
Twitter: @pgsnake

EDB: https://www.enterprised= b.com

Regards,<= /div>
Nikhil Mohite=C2=A0


--
Thanks & Regards
Akshay Joshi
pgAdmin Hacker | Principal Software ArchitectE= DB Postgres
Mobile: +91 976-788-8246



--
Dave Page
Blog: https://pgsnake.blogspot.com
Twitter: @pgsnake<= br>
EDB: http= s://www.enterprisedb.com

Regards,
Nikhil Mohite=C2=A0


--
Dave Page
Blog: https://pgsnake.blogspot.com
Twitter: @pgsnake<= br>
EDB: http= s://www.enterprisedb.com

<= /div>
Regards,
Nikhil Mohite=C2=A0


--
Dave Page
Blog: https://pgsnake.blogspot.com
Twitter: @pgsnake<= br>
EDB: http= s://www.enterprisedb.com


Regards,
Nikhil Mohite
=


--
Than= ks & Regards,
Nikh= il Mohite
Softwa= re Engineer.
Mob.No: +91-77983= 64578.
--000000000000b75aad05c2aa30f9--