[Patch] Bug #5836 - LDAP auth - Case Sensitive

2022-03-29 Thread Yogesh Mahajan
Hello,

Attached patch adds a new ldap authentication configuration parameter
which indicates case sensitivity of the ldap schema/server.


Thanks,
Yogesh Mahajan
EnterpriseDB
diff --git a/docs/en_US/ldap.rst b/docs/en_US/ldap.rst
index 16cfb3fcf..371ba2394 100644
--- a/docs/en_US/ldap.rst
+++ b/docs/en_US/ldap.rst
@@ -73,17 +73,19 @@ There are 3 ways to configure LDAP:
limits the search to the base object. A *level* search is restricted to the immediate
children of a base object, but excludes the base object itself. A *subtree* search
includes all child objects as well as the base object."
+   "LDAP_DN_CASE_SENSITIVE", "Indicates whether the DN (Distinguished Names) are case sensitive or not.
+   Possible values are True or False. By default is set to False."
"LDAP_USE_STARTTLS","Specifies if you want to use Transport Layer Security (TLS)
for secure communication between LDAP clients and LDAP servers. If you specify
the connection protocol in *LDAP_SERVER_URI* as *ldaps*, this parameter is ignored."
"LDAP_CA_CERT_FILE","Specifies the path to the trusted CA certificate file. This
-   parameter is applicable only if you are using *ldaps* as connection protocol and
+   parameter is applicable only if you are using *ldaps* as connection protocol or
you have set *LDAP_USE_STARTTLS* parameter to *True*."
"LDAP_CERT_FILE","Specifies the path to the server certificate file. This parameter
-   is applicable only if you are using *ldaps* as connection protocol and you have
+   is applicable only if you are using *ldaps* as connection protocol or you have
set *LDAP_USE_STARTTLS* parameter to *True*."
"LDAP_KEY_FILE","Specifies the path to the server private key file. This parameter
-   is applicable only if you are using *ldaps* as connection protocol and you have
+   is applicable only if you are using *ldaps* as connection protocol or you have
set *LDAP_USE_STARTTLS* parameter to *True*."
"**Bind as pgAdmin user**"
"LDAP_BASE_DN","Specifies the base DN from where a server will start the search
diff --git a/web/config.py b/web/config.py
index f75f97130..af375e235 100644
--- a/web/config.py
+++ b/web/config.py
@@ -649,6 +649,10 @@ LDAP_BASE_DN = ''
 # It can be optional while bind as pgAdmin user
 LDAP_SEARCH_BASE_DN = ''
 
+# The LDAP attribute indicates whether the DN (Distinguished Names)
+# are case sensitive or not
+LDAP_DN_CASE_SENSITIVE = False
+
 # Filter string for the user search.
 # For OpenLDAP, '(cn=*)' may well be enough.
 # For AD, you might use '(objectClass=user)' (REQUIRED)
diff --git a/web/pgadmin/authenticate/ldap.py b/web/pgadmin/authenticate/ldap.py
index c1d6fea65..2c022caef 100644
--- a/web/pgadmin/authenticate/ldap.py
+++ b/web/pgadmin/authenticate/ldap.py
@@ -24,7 +24,8 @@ from pgadmin.model import User, ServerGroup, db, Role
 from flask import current_app
 from pgadmin.tools.user_management import create_user
 from pgadmin.utils.constants import LDAP
-
+from sqlalchemy import func
+from flask_security import login_user
 
 ERROR_SEARCHING_LDAP_DIRECTORY = gettext(
 "Error searching the LDAP directory: {}")
@@ -133,7 +134,8 @@ class LDAPAuthentication(BaseAuthentication):
 except LDAPBindError as e:
 current_app.logger.exception(
 "Error binding to the LDAP server.")
-return False, gettext("Error binding to the LDAP server.")
+return False, gettext("Error binding to the LDAP server: {}\n".
+  format(e.args[0]))
 except LDAPStartTLSError as e:
 current_app.logger.exception(
 "Error starting TLS: {}\n".format(e))
@@ -146,11 +148,38 @@ class LDAPAuthentication(BaseAuthentication):
 
 return True, None
 
+def login(self, form):
+user = getattr(form, 'user', None)
+if user is None:
+if config.LDAP_DN_CASE_SENSITIVE:
+user = User.query.filter_by(username=self.username).first()
+else:
+user = User.query.filter(
+func.lower(User.username) == func.lower(
+self.username)).first()
+
+if user is None:
+current_app.logger.exception(
+self.messages('USER_DOES_NOT_EXIST'))
+return False, self.messages('USER_DOES_NOT_EXIST')
+
+# Login user through flask_security
+status = login_user(user)
+if not status:
+current_app.logger.exception(self.messages('LOGIN_FAILED'))
+return False, self.messages('LOGIN_FAILED')
+return True, None
+
 def __auto_create_user(self, user_email):
 """Add the ldap user to the internal SQLite database."""
 if config.LDAP_AUTO_CREATE_USER:
-user = User.query.filter_by(
-username=self.username).first()
+if config.LDAP_DN_CASE_SENSITIVE:
+user = User.query.filter_by(username=self.username).first()
+ 

[pgAdmin][RM-7239]: Tables node is not loading the new tables on refresh

2022-03-29 Thread Nikhil Mohite
Hi Hackers,

Please find attached the patch for RM-7239
: Tables node is not loading
the new tables on refresh


-- 
*Thanks & Regards,*
*Nikhil Mohite*
*Senior Software Engineer.*
*EDB Postgres* 
*Mob.No: +91-7798364578.*


RM-7239.patch
Description: Binary data


Re: [Patch] Bug #5836 - LDAP auth - Case Sensitive

2022-03-29 Thread Khushboo Vashi
I have done the code review and it looks good to me.

On Tue, Mar 29, 2022 at 12:58 PM Yogesh Mahajan <
yogesh.maha...@enterprisedb.com> wrote:

> Hello,
>
> Attached patch adds a new ldap authentication configuration parameter
> which indicates case sensitivity of the ldap schema/server.
>
>
> Thanks,
> Yogesh Mahajan
> EnterpriseDB
>


Re: [Patch] Bug #4256 - ALTER DEFAULT PRIVILEGES FOR ROLE some_role REVOKE EXECUTE ON FUNCTIONS FROM PUBLIC:

2022-03-29 Thread Yogesh Mahajan
Hello,

Please find the attached patch which fixes resql test failures due to the
above patch.

Thanks,
Yogesh Mahajan
EnterpriseDB


On Mon, Mar 28, 2022 at 5:37 PM Akshay Joshi 
wrote:

> Thanks, the patch applied
>
> On Mon, Mar 28, 2022 at 4:43 PM Yogesh Mahajan <
> yogesh.maha...@enterprisedb.com> wrote:
>
>> Hello Team,
>>
>> Please find the updated patch which fixes sql revoke statements shown for
>> databases.
>>
>>
>> Thanks,
>> Yogesh Mahajan
>> EnterpriseDB
>>
>>
>> On Tue, Mar 1, 2022 at 12:50 PM Aditya Toshniwal <
>> aditya.toshni...@enterprisedb.com> wrote:
>>
>>> Hi Yogesh,
>>>
>>> The original bug is not fixed with the patch. You might have fixed the
>>> related ones.
>>>
>>> On Mon, Feb 28, 2022 at 6:24 PM Akshay Joshi <
>>> akshay.jo...@enterprisedb.com> wrote:
>>>
 Hi Aditya

 Can you please review it?

 On Mon, Feb 28, 2022 at 6:03 PM Yogesh Mahajan <
 yogesh.maha...@enterprisedb.com> wrote:

> Hi Team,
>
> Please find a patch which fixes sql for alter default privileges.
>
> Thanks,
> Yogesh Mahajan
> EnterpriseDB
>


 --
 *Thanks & Regards*
 *Akshay Joshi*
 *pgAdmin Hacker | Principal Software Architect*
 *EDB Postgres *

 *Mobile: +91 976-788-8246*

>>>
>>>
>>> --
>>> Thanks,
>>> Aditya Toshniwal
>>> pgAdmin Hacker | Software Architect | *edbpostgres.com*
>>> 
>>> "Don't Complain about Heat, Plant a TREE"
>>>
>>
>
> --
> *Thanks & Regards*
> *Akshay Joshi*
> *pgAdmin Hacker | Principal Software Architect*
> *EDB Postgres *
>
> *Mobile: +91 976-788-8246*
>


RM_4256_v3.patch
Description: Binary data


pgAdmin 4 commit: Fixed an issue where the newly added table is not vis

2022-03-29 Thread Akshay Joshi
Fixed an issue where the newly added table is not visible under the Tables node 
on refresh. Fixes #7239

Branch
--
master

Details
---
https://git.postgresql.org/gitweb?p=pgadmin4.git;a=commitdiff;h=08e00ccebc7bbbfff903a7a7802454d0fff4a9ad
Author: Nikhil Mohite 

Modified Files
--
docs/en_US/release_notes_6_8.rst   | 1 +
web/pgadmin/static/js/tree/tree.js | 4 
2 files changed, 5 insertions(+)



pgAdmin 4 commit: Fixed RESQL test cases for PG14.

2022-03-29 Thread Akshay Joshi
Fixed RESQL test cases for PG14.

Branch
--
master

Details
---
https://git.postgresql.org/gitweb?p=pgadmin4.git;a=commitdiff;h=02e799c9173c7a8b1ec17eea2259fae56b5387aa
Author: Yogesh Mahajan 

Modified Files
--
.../servers/databases/templates/databases/sql/9.3_plus/defacl.sql | 4 ++--
.../tests/pg/default/alter_default_db_privileges_sequences.sql| 4 ++--
.../databases/tests/pg/default/alter_default_db_privileges_types.sql  | 4 ++--
.../tests/ppas/default/alter_default_db_privileges_tables.sql | 4 ++--
4 files changed, 8 insertions(+), 8 deletions(-)



pgAdmin 4 commit: Adds a new LDAP authentication configuration paramete

2022-03-29 Thread Akshay Joshi
Adds a new LDAP authentication configuration parameter that indicates the case 
sensitivity of the LDAP schema/server. Fixes #5836

Branch
--
master

Details
---
https://git.postgresql.org/gitweb?p=pgadmin4.git;a=commitdiff;h=0957670d4ea8627f79f65d88c89b5c24380aca58
Author: Yogesh Mahajan 

Modified Files
--
docs/en_US/ldap.rst  |  8 +---
docs/en_US/release_notes_6_8.rst |  1 +
web/config.py|  4 
web/pgadmin/authenticate/ldap.py | 37 +
4 files changed, 43 insertions(+), 7 deletions(-)



Re: [Patch] Bug #4256 - ALTER DEFAULT PRIVILEGES FOR ROLE some_role REVOKE EXECUTE ON FUNCTIONS FROM PUBLIC:

2022-03-29 Thread Akshay Joshi
Thanks, the patch applied.

On Tue, Mar 29, 2022 at 2:52 PM Yogesh Mahajan <
yogesh.maha...@enterprisedb.com> wrote:

> Hello,
>
> Please find the attached patch which fixes resql test failures due to the
> above patch.
>
> Thanks,
> Yogesh Mahajan
> EnterpriseDB
>
>
> On Mon, Mar 28, 2022 at 5:37 PM Akshay Joshi <
> akshay.jo...@enterprisedb.com> wrote:
>
>> Thanks, the patch applied
>>
>> On Mon, Mar 28, 2022 at 4:43 PM Yogesh Mahajan <
>> yogesh.maha...@enterprisedb.com> wrote:
>>
>>> Hello Team,
>>>
>>> Please find the updated patch which fixes sql revoke statements shown
>>> for databases.
>>>
>>>
>>> Thanks,
>>> Yogesh Mahajan
>>> EnterpriseDB
>>>
>>>
>>> On Tue, Mar 1, 2022 at 12:50 PM Aditya Toshniwal <
>>> aditya.toshni...@enterprisedb.com> wrote:
>>>
 Hi Yogesh,

 The original bug is not fixed with the patch. You might have fixed the
 related ones.

 On Mon, Feb 28, 2022 at 6:24 PM Akshay Joshi <
 akshay.jo...@enterprisedb.com> wrote:

> Hi Aditya
>
> Can you please review it?
>
> On Mon, Feb 28, 2022 at 6:03 PM Yogesh Mahajan <
> yogesh.maha...@enterprisedb.com> wrote:
>
>> Hi Team,
>>
>> Please find a patch which fixes sql for alter default privileges.
>>
>> Thanks,
>> Yogesh Mahajan
>> EnterpriseDB
>>
>
>
> --
> *Thanks & Regards*
> *Akshay Joshi*
> *pgAdmin Hacker | Principal Software Architect*
> *EDB Postgres *
>
> *Mobile: +91 976-788-8246*
>


 --
 Thanks,
 Aditya Toshniwal
 pgAdmin Hacker | Software Architect | *edbpostgres.com*
 
 "Don't Complain about Heat, Plant a TREE"

>>>
>>
>> --
>> *Thanks & Regards*
>> *Akshay Joshi*
>> *pgAdmin Hacker | Principal Software Architect*
>> *EDB Postgres *
>>
>> *Mobile: +91 976-788-8246*
>>
>

-- 
*Thanks & Regards*
*Akshay Joshi*
*pgAdmin Hacker | Principal Software Architect*
*EDB Postgres *

*Mobile: +91 976-788-8246*


Re: [pgAdmin][RM-7239]: Tables node is not loading the new tables on refresh

2022-03-29 Thread Akshay Joshi
Thanks, the patch applied.

On Tue, Mar 29, 2022 at 1:02 PM Nikhil Mohite <
nikhil.moh...@enterprisedb.com> wrote:

> Hi Hackers,
>
> Please find attached the patch for RM-7239
> : Tables node is not loading
> the new tables on refresh
>
>
> --
> *Thanks & Regards,*
> *Nikhil Mohite*
> *Senior Software Engineer.*
> *EDB Postgres* 
> *Mob.No: +91-7798364578.*
>


-- 
*Thanks & Regards*
*Akshay Joshi*
*pgAdmin Hacker | Principal Software Architect*
*EDB Postgres *

*Mobile: +91 976-788-8246*


Re: [Patch] Bug #5836 - LDAP auth - Case Sensitive

2022-03-29 Thread Akshay Joshi
Thanks, the patch applied.

On Tue, Mar 29, 2022 at 2:30 PM Khushboo Vashi <
khushboo.va...@enterprisedb.com> wrote:

> I have done the code review and it looks good to me.
>
> On Tue, Mar 29, 2022 at 12:58 PM Yogesh Mahajan <
> yogesh.maha...@enterprisedb.com> wrote:
>
>> Hello,
>>
>> Attached patch adds a new ldap authentication configuration parameter
>> which indicates case sensitivity of the ldap schema/server.
>>
>>
>> Thanks,
>> Yogesh Mahajan
>> EnterpriseDB
>>
>

-- 
*Thanks & Regards*
*Akshay Joshi*
*pgAdmin Hacker | Principal Software Architect*
*EDB Postgres *

*Mobile: +91 976-788-8246*


Re: [pgAdmin][RM-7149]: [React] Port preferences dialog to React.

2022-03-29 Thread Nikhil Mohite
Hi Akshay,

PFA updated patch resolved the following issues in the preferences dialog:

   1. Show a single note in the binary path.
   2. Resolved issue in the keyboard shortcut.



On Wed, Mar 23, 2022 at 12:14 PM Nikhil Mohite <
nikhil.moh...@enterprisedb.com> wrote:

> Hi Akshay,
>
> Please find the updated patch, resolved the following issues in the
> preferences dialog.
>
>1. Add server mode validation in the binary path.
>2. Updated preferences tree rendering to avoid using the ReactDOM
>render.
>3. Updated CSS for keyboard shortcuts checkbox border makes it
>consistent with input box border.
>4. Fixed jasmine test case and improved code coverage.
>5. Fixed sonarqube issues.
>6. Added validation to disable "*Maximum column with" option *if "*Column
>**sized by" option *is set to *"Column name"* in *Query Tool -> Result
>grid*.
>7. Updated documentation with the latest screenshots.
>8. Updated documentation to fix issue #7261
>: Typo on the document.
>
>
>
> On Mon, Mar 21, 2022 at 1:31 PM Akshay Joshi <
> akshay.jo...@enterprisedb.com> wrote:
>
>> Thanks, the patch applied. Screenshots are still not the latest. Take all
>> the screenshots with the latest changes and send them back.
>>
>> On Mon, Mar 21, 2022 at 10:00 AM Nikhil Mohite <
>> nikhil.moh...@enterprisedb.com> wrote:
>>
>>> Hi Akshay,
>>>
>>> PFA patch v2 resolved all the review comments.
>>>
>>> On Wed, Mar 9, 2022 at 5:48 PM Akshay Joshi <
>>> akshay.jo...@enterprisedb.com> wrote:
>>>
 Hi Nikhil

 Below are the review comments:
 *GUI:*

- By default, all nodes should be expanded, and at least one node
should be selected (Check existing behavior).
- Reduce the space between the expand/collapse (>) icon and the
tress node label. It is most likely icons that are taking up that space.
- Unable to select parent node. With old behavior when we select
the parent node its immediate first child is selected and the 
 appropriate
page is displayed on the right side.
- The maximize button should be consistent with all other dialogs.
- Maximize not working properly, move the dialog bit up, and then
click Maximize button, dialog is not visible correctly.
- The help button is missing at the bottom.
- A documentation update is missing.
- Keyboard Shortcuts (Browser, Debugger, Query Tool, and ERD Tool) *Fix
for all*
   - Between the 'Key' label and control, there should be a margin.
   - Reduce the width of the key control.
   - The key control loses focus when the key is pressed. Verify
   old behavior.
- Nodes: Can we add a message or label at the top about settings?
Previously, we had a switch control with a 'Show/Hide' label that was 
 clear
to the end-user.
- Dashboard -> Display -> Long-running query thresholds:
   - Between the 'Warning'/'Alert' label and their control, there
   should be a margin.
   - There is no '*in minutes*' label at the end.
- Miscellaneous -> Themes: Themes preview is not visible.
- Binary Paths:
   - 'Set as default' should be disabled until a path is provided.
   - 'Set as default' must be a radio button, only one binary path
   can be set to default not all.
   - Unable to select binary path as select dialog is hidden behind
   the preferences dialog. It seems the preferences dialog is the modal 
 dialog.
   - Adjust the validation icon properly, space should not be there
   at the end.
   - [image: Screenshot 2022-03-09 at 4.34.08 PM.png]
- Query Tool: CSV/TXT Output node should be after Auto completion.
- Browser -> Tab settings and Storage -> Options have identical
right side page. Remove the controls appropriately.

  I tried but was unable to reproduce the issue.
>>>

 *Code:*

- Add comments/function header for all the new functions created.


 On Mon, Mar 7, 2022 at 5:54 PM Nikhil Mohite <
 nikhil.moh...@enterprisedb.com> wrote:

> Hi Hackers,
>
> Please find attached the patch for RM-7149
> : [React] Port
> preferences dialog to React.
>
> --
> *Thanks & Regards,*
> *Nikhil Mohite*
> *Senior Software Engineer.*
> *EDB Postgres* 
> *Mob.No: +91-7798364578.*
>


 --
 *Thanks & Regards*
 *Akshay Joshi*
 *pgAdmin Hacker | Principal Software Architect*
 *EDB Postgres *

 *Mobile: +91 976-788-8246*

>>>
>>> Regards,
>>> Nikhil Mohite
>>>
>>
>>
>> --
>> *Thanks & Regards*
>> *Akshay Joshi*
>> *pgAdmin Hacker | Principal Software Architect*
>> *EDB Postgres 

pgAdmin 4 commit: Fixed issues in the Preferences:

2022-03-29 Thread Akshay Joshi
Fixed issues in the Preferences:
  1) Show a single note in the binary path.
  2) Resolved issue in the keyboard shortcut.

refs #7149

Branch
--
master

Details
---
https://git.postgresql.org/gitweb?p=pgadmin4.git;a=commitdiff;h=931a399890b3aabc66ec023e4d422b0ad760ee9d
Author: Nikhil Mohite 

Modified Files
--
.../static/js/components/PreferencesComponent.jsx|  6 +-
web/pgadmin/static/js/components/KeyboardShortcuts.jsx   |  4 ++--
.../javascript/components/KeyboardShortcuts.spec.js  | 12 ++--
3 files changed, 13 insertions(+), 9 deletions(-)



pgAdmin 4 commit: 1) Port Properties panel for collection node, Dashboa

2022-03-29 Thread Akshay Joshi
1) Port Properties panel for collection node, Dashboard, and SQL panel in 
React. Fixes #7132
2) Added transaction start time to Server activity sessions view. Fixes #7215

Branch
--
master

Details
---
https://git.postgresql.org/gitweb?p=pgadmin4.git;a=commitdiff;h=cb052f1988e001fd0756b2eff170945c7a5ece60
Author: Pradip Parkale 

Modified Files
--
docs/en_US/release_notes_6_8.rst   |2 +
web/package.json   |9 +
.../servers/databases/casts/static/js/cast.js  |   19 -
.../event_triggers/static/js/event_trigger.js  |  131 +--
.../databases/extensions/static/js/extension.js|  108 +-
.../foreign_servers/static/js/foreign_server.js|   43 +-
.../static/js/foreign_data_wrapper.js  |   44 +-
.../databases/languages/static/js/language.js  |   36 +-
.../publications/static/js/publication.js  |   81 +-
.../publications/static/js/publication.ui.js   |2 +-
.../publications/sql/default/get_tables.sql|5 +-
.../schemas/aggregates/static/js/aggregate.js  |   31 -
.../columns/static/js/catalog_object_column.js |   26 -
.../catalog_objects/static/js/catalog_object.js|   25 -
.../schemas/collations/static/js/collation.js  |   36 -
.../static/js/domain_constraints.js|   37 -
.../databases/schemas/domains/static/js/domain.js  |   32 -
.../foreign_tables/static/js/foreign_table.js  |  620 +-
.../static/js/fts_configuration.js |   26 -
.../fts_dictionaries/static/js/fts_dictionary.js   |   25 -
.../schemas/fts_parsers/static/js/fts_parser.js|  102 --
.../fts_templates/static/js/fts_template.js|   59 -
.../schemas/functions/static/js/function.js|   38 -
.../schemas/functions/static/js/procedure.js   |  121 --
.../functions/static/js/trigger_function.js|  145 ---
.../schemas/operators/static/js/operator.js|   31 -
.../schemas/packages/edbvars/static/js/edbvar.js   |   10 -
.../schemas/packages/static/js/package.js  |   35 -
.../schemas/sequences/static/js/sequence.js|   35 -
.../servers/databases/schemas/static/js/catalog.js |   19 -
.../servers/databases/schemas/static/js/schema.js  |   30 -
.../schemas/synonyms/static/js/synonym.js  |   48 -
.../schemas/tables/columns/static/js/column.js |   30 -
.../static/js/compound_trigger.js  |   10 -
.../tables/constraints/static/js/constraints.js|   18 -
.../schemas/tables/indexes/static/js/index.js  |   23 -
.../tables/partitions/static/js/partition.js   |   43 -
.../static/js/row_security_policy.js   |   58 -
.../schemas/tables/rules/static/js/rule.js |   48 -
.../schemas/tables/triggers/static/js/trigger.js   |  462 
.../databases/schemas/types/static/js/type.js  |   42 -
.../databases/schemas/views/static/js/mview.js |   87 --
.../databases/schemas/views/static/js/view.js  |  157 ---
.../servers/databases/static/js/database.js|   39 -
.../servers/databases/static/js/database.ui.js |6 +-
.../subscriptions/static/js/subscription.js|  101 +-
.../subscriptions/static/js/subscription.ui.js |2 +-
.../subscriptions/sql/default/properties.sql   |1 +
.../server_groups/servers/roles/static/js/role.js  |  146 ---
web/pgadmin/browser/static/js/collection.js|  402 +--
web/pgadmin/browser/static/js/node.js  |   16 +-
web/pgadmin/browser/static/js/node_ajax.js |3 +-
web/pgadmin/browser/static/js/node_view.jsx|1 -
web/pgadmin/browser/static/js/panel.js |   59 +-
web/pgadmin/browser/static/js/panel_view.jsx   |   62 +-
web/pgadmin/dashboard/static/js/ActiveQuery.ui.js  |   67 ++
web/pgadmin/dashboard/static/js/Dashboard.jsx  |  907 +++
web/pgadmin/dashboard/static/js/Graphs.jsx |2 +-
web/pgadmin/dashboard/static/js/PgAdminLogo.jsx|  219 
.../dashboard/static/js/WelcomeDashboard.jsx   |  249 
web/pgadmin/dashboard/static/js/dashboard.js   | 1209 
.../dashboard/static/js/dashboard_components.jsx   |   74 --
.../templates/dashboard/database_dashboard.html|   59 -
.../templates/dashboard/server_dashboard.html  |   67 --
.../templates/dashboard/sql/10_plus/activity.sql   |1 +
.../templates/dashboard/sql/9.6_plus/activity.sql  |1 +
.../templates/dashboard/sql/default/activity.sql   |1 +
.../templates/dashboard/welcome_dashboard.html |  135 ---
.../misc/dependencies/static/js/Dependencies.jsx   |   21 +-
.../misc/dependents/static/js/Dependents.jsx   |   21 +-
.../misc/properties/CollectionNodeProperties.jsx   |  331 ++
web/pgadmin/misc/sql/static/js/SQL.jsx |  114 ++
web/pgadmin/misc/sql/static/js/sql.js  |  207 
.../misc/statistics/static/js/Statistics.jsx   |   37 +-
web/pgadmin/static/js/Theme/dark.js|3 +-
web/pgadmin/static/js/T