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 1lj1Nw-0007v0-QE for pgadmin-hackers@arkaria.postgresql.org; Tue, 18 May 2021 15:11:53 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.92) (envelope-from ) id 1lj1Nv-0008Da-9J for pgadmin-hackers@arkaria.postgresql.org; Tue, 18 May 2021 15:11:51 +0000 Received: from makus.postgresql.org ([2001:4800:3e1:1::229]) by malur.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1lj1Nu-0008DR-1D for pgadmin-hackers@lists.postgresql.org; Tue, 18 May 2021 15:11:51 +0000 Received: from mail-ed1-x532.google.com ([2a00:1450:4864:20::532]) by makus.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.92) (envelope-from ) id 1lj1Nq-0005f7-Dj for pgadmin-hackers@postgresql.org; Tue, 18 May 2021 15:11:49 +0000 Received: by mail-ed1-x532.google.com with SMTP id i13so11625576edb.9 for ; Tue, 18 May 2021 08:11:45 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=pgadmin.org; s=google; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=iKSmbFZ/IzUtmcWRX6d7DQazvwJVwqdqM/JdnVZtvjI=; b=EQBHHGAdDUQfsT+7bU4tSUNG5SmLPWzYuNl0+rFWAziLJ54RnF7g6B750Kits2qLcw +JvoYEhdWTqVBIwxUdrRnwCdLLGtV/cBvj59m+lMu0ydH/rWxIeZugSfr49VUgwHMvFc fd7wuJcefZZJ+TGsP190zksaGiuf8ZnQTaZVX/IgkrMX0cjfBkQjtOSHPkZwlbl+NNv8 4qR23EWDu7cwmtYtMp6jN3n0IBg1QDbl2b9oA8fnNoID/tGJQdHkE6gMDXItpOKBMyFV mCTFmhWHixHi7N5Wz7R3ZLhn6sxm/dlgpFCB0LrBBIH9hahgFeWsI6zZO+oHaoKwUO1j h5aQ== 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=iKSmbFZ/IzUtmcWRX6d7DQazvwJVwqdqM/JdnVZtvjI=; b=lSkFf9xJt7F5Shwqd46pWNP/d5iUDuKlzEXu1+s+hQ+2GG4GE8OuVgPGTX3cMSvSWr Dq1vVfwDoZ/mychBclGy0Ga/oOIAeBkzDrnWblc7MBCoCJooIEi8cdM++0PXiQRrHQRI +qe7CKxx7VdbZFBDWt1pekuPlp96eNMsmPPQJLIaneVvT2iY5R/+SrA97/ibkI40GQSO QCrTsGHeoo9iu4f8+HVdXaldGy+IqfGYtOjG3ExZNy3ZhPAaz+h3+lrng9/1j/YNpdy/ Dt/8gO6O+utcaaRLUZEIbVimyDL56wguOZSuvv74opkXjWp7WivkfKlhZMLa47kzawG4 2S/w== X-Gm-Message-State: AOAM530PdgXNnRLiPNgXUQQYzx58TEZvk7qShPxHTEqXCH944rizX5Hk 7rFC1LLmeiQJ29eW6KFdG7vQM75znfRmMUVstVgWbw== X-Google-Smtp-Source: ABdhPJys4oDOtRVg+18gs9TyIr7703pZQz8x5w5Z8rwWQv/xnq5Qcz+wwPqDjiOSJ6rPAEN4pw586Zrxfyc2hvCyMbU= X-Received: by 2002:a05:6402:20f:: with SMTP id t15mr7686906edv.370.1621350703412; Tue, 18 May 2021 08:11:43 -0700 (PDT) MIME-Version: 1.0 References: In-Reply-To: From: Dave Page Date: Tue, 18 May 2021 16:11:32 +0100 Message-ID: Subject: Re: [pgAdmin][RM-2341]: Add menu option for starting PSQL To: Nikhil Mohite Cc: Akshay Joshi , pgadmin-hackers Content-Type: multipart/alternative; boundary="000000000000bbd19305c29c2083" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --000000000000bbd19305c29c2083 Content-Type: text/plain; charset="UTF-8" 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 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 have a mix of style, layout and code in this file which needs to be cleaned up. 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 psql >> 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=# 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 also > 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={'TERM': 'xterm'} to the subprocess.Popen() call. I noticed while I was playing with that, that you are passing the password 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'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=# 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 difficult 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 pgAdmin4.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=# 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=xxx' in conn_attr: >>>> conn_attr = conn_attr.replace('password=xxx', '') >>>> >>>> - 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 config.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 related 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 guessing 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 configuration >>>>>>> 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_modules/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_modules/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_modules/local-echo.jsx >>>>>>> doesn't exist >>>>>>> as directory >>>>>>> >>>>>>> /Users/dpage/git/pgadmin4/web/Users/dpage/git/pgadmin4/web/node_modules/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 exist >>>>>>> .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 --000000000000bbd19305c29c2083 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
Hi

On Tue, May 18, 2021 at 12:12 PM Nikhil Mohit= e <nikhil.mohite@enter= prisedb.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 &= lt;nikh= il.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 i= n editor_template.html on line 138 - it splits a string across two lines wh= ich throws an error. Having fixed that...

I also n= ote there's a lot of Javascript in that HTML file. That should be pushe= d 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. Ple= ase move them into the css for the themes. You=C2=A0have a mix of style, la= yout and code in this file which needs to be cleaned up.

Speaking of themes, the background colour for selected text doesn= 9;t seem right (it's barely visible) in the dark theme. Can you fix tha= t to match the colouring in the SQL text boxes please?
=C2=A0

=
A couple of other things I noticed:

- T= he button is enabled if the treeview has a Server selected. It could be arg= ued that the query tool should do the same (defaulting to the maintenance d= atabase), however, that would be a separate change, and psql should be cons= istent 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 no= t 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 also 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 subprocess.Pope= n() call.

I noticed while I was playing with that,= that you are passing the password as part of the connection string. As I&#= 39;ve mentioned in the past, that is absolutely not acceptable; it will exp= ose the password to all manner of tools (such as ps -ef). You *must* pass t= he password to psql using the PGPASSWORD environment variable.
= =C2=A0
if=C2=A0we try to load data from the table containing millions of recor= ds, UI gets=C2=A0very slow.

Is xtermjs=C2=A0discarding the older buffer contents when it fills up? C= an you tell where the memory usage is?

=C2=A0

<= /div>
- I'm sure using \q in the previous version displayed a messa= ge saying the session exited (the one on line=C2=A0138 of editor_template.h= tml). It no longer seems to do so.=C2=A0=C2=A0

In addition to the iss= ue above, it looks like the \! blocking may have lost it's ability to i= gnore quoted strings:

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


On Tue, May 11, 2021 at 3:40 PM Dave Page <dpage@pgadmin.org> wrote:=
Hi

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

Following are the = review comments:

GUI specific:
  • We need a panel icon for PSQL like query tool, we can also add that o= n the browser tree toolbar.
  • PSQL Tool menu should be visible for al= l 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 chan= ge the database/user from PSQL command, so it's been difficult to updat= e the tab title.
  • PSQL connection is still open even if we disconnec= t the database server from the browser tree.
  • Code sp= ecific:
    • Remove an extra space from requirements.txt a= nd package.json
    • Documentation needs to be updated to let the user k= now from where the PSQL tool will open and on which node it is applicable.<= /li>
    • psql/__init__.py check there are so many unused imports please remo= ve them.
    • We are not using cheroot so it should be removed from requ= irements.txt and also remove the import statement from pgAdmin4.py=C2=A0
    • Test cases are showing=C2=A0successful but actually, there are so= me routing errors please check.
    A fe= w other things I noticed:

    - I was prompted to ente= r 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 compatib= ility (which I didn't have on my prototype):

    <= div>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 shou= ld 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 a= s the treeview.
    - I spotted at least one print() statement that s= houldn't be there (debug output should go through the logger) - psql/__= init__.py:235
    - This seems suspect - why would there be a passwor= d in a connection string we've built? And why would it be xxx?

    =C2=A0 =C2=A0 if 'password=3Dxxx' in conn_att= r:
    =C2=A0 =C2=A0 =C2=A0 =C2=A0 conn_attr =3D conn_attr.replace(&#= 39;password=3Dxxx', '')

    - There&= #39;s a thick white line at the bottom of the panel, where a horizontal scr= ollbar might be if there was one.
    - The trailing semi-colon=C2=A0= should be removed from: "ERROR: Shell commands are disabled in psql fo= r security;"

    Once we're happy with the pa= tch in general, I'll do a string review before committing. In particula= r, I want to be sure the text in config.py is appropriately worded.

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

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

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

    On Mon, May 10, 2021 at 7:10 PM Dave Pa= ge <dpage@pgadmin= .org> wrote:
    Hi

    On Mon, May 10, 2021 at 1:45 PM Nikhil Mohite <<= a href=3D"mailto:nikhil.mohite@enterprisedb.com" target=3D"_blank">nikhil.m= ohite@enterprisedb.com> wrote:
    Hi Hackers,

    Please find the attached patch for RM-23= 41:=C2=A0Add Menu option for starting PSQL.
    1. Added new Opti= on PSQL Tool in Tools menu.
    2. Added the same option for Server a= nd Database nodes from the tree view.

    Unfortunately=C2=A0there's a trailing comma in package.json that= makes it invalid. If I fix that, then I get the error below, so I'm gu= essing 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/p= sql/static/js'
    resolve 'local-echo-controller' in = 9;/Users/dpage/git/pgadmin4/web/pgadmin/tools/psql/static/js'
    =C2=A0 Parsed request is a module
    =C2=A0 using description file:= /Users/dpage/git/pgadmin4/web/package.json (relative path: ./pgadmin/tools= /psql/static/js)
    =C2=A0 =C2=A0 aliased with mapping 'local-ec= ho-controller': '/Users/dpage/git/pgadmin4/web/node_modules/local-e= cho' to '/Users/dpage/git/pgadmin4/web/node_modules/local-echo'=
    =C2=A0 =C2=A0 =C2=A0 using description file: /Users/dpage/git/pg= admin4/web/package.json (relative path: ./pgadmin/tools/psql/static/js)
    =C2=A0 =C2=A0 =C2=A0 =C2=A0 Field 'browser' doesn't cont= ain 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/package.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' 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/p= gadmin4/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 al= ias 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.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 configuration
    =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 /Users/dpage/git/pg= admin4/web/Users/dpage/git/pgadmin4/web/node_modules/local-echo.jsx doesn&#= 39;t exist
    =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 as directory=
    =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 /Users/dpage/gi= t/pgadmin4/web/Users/dpage/git/pgadmin4/web/node_modules/local-echo doesn&#= 39;t exist
    =C2=A0 =C2=A0 =C2=A0 =C2=A0 using description file: /U= sers/dpage/git/pgadmin4/web/package.json (relative path: ./node_modules/loc= al-echo)
    =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 no extension
    =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 Field 'browser' doesn&#= 39;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/local-echo doe= sn't exist
    =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 .js
    = =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/local-echo.js = doesn't exist
    =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 .jsx
    =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 Field 'browser' doesn&= #39;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/local-echo.= jsx doesn't exist
    =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 as direc= tory
    =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 /Users/dpage/git/p= gadmin4/web/node_modules/local-echo doesn't exist
    =C2=A0@ ./p= gadmin/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
    =C2=A0
    --
    Dave Page=
    Blog: https:= //pgsnake.blogspot.com
    Twitter: @pgsnake

    EDB: https://www.enterprisedb.com

    Nikhil Mohite=C2=A0


    --


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


    --
    <= /div>
    --000000000000bbd19305c29c2083--