diff --git a/docs/en_US/images/subscription_connection.png b/docs/en_US/images/subscription_connection.png
index b1d05a7996a157ff360ece983d092281c3cc75e7..7b7fc5c33415c1547290eefb110fa12ff6f14b27 100644
GIT binary patch
diff --git a/docs/en_US/images/subscription_general.png b/docs/en_US/images/subscription_general.png
index 01f7f9ed31b9bd1a21719d66273edc6de24b4e4d..3698c7f979b3879d34cb65e64ea47e0e47eaa1d0 100644
GIT binary patch
diff --git a/docs/en_US/images/subscription_sql.png b/docs/en_US/images/subscription_sql.png
index 13faad390018739f4ba09df6dfcbe33c7989916b..64bcb75c17123613064e6ac6694cc30007e00406 100644
GIT binary patch
diff --git a/docs/en_US/images/subscription_ssl.png b/docs/en_US/images/subscription_ssl.png
new file mode 100644
index 0000000000000000000000000000000000000000..a86784bb3e98f1c6a1ba760209a58e330cccb49b
GIT binary patch
diff --git a/docs/en_US/images/subscription_with.png b/docs/en_US/images/subscription_with.png
index c5d154c4bc931499122bf7ac2c493dc0f6be4989..8933ff150aa79a0fe217743558abb7cd96d86377 100644
GIT binary patch
diff --git a/docs/en_US/subscription_dialog.rst b/docs/en_US/subscription_dialog.rst
index 106fbacf5..c421362bf 100644
--- a/docs/en_US/subscription_dialog.rst
+++ b/docs/en_US/subscription_dialog.rst
@@ -34,6 +34,53 @@ Use the *Connection* tab to define the connection string to the publisher:
 * Use the *Passfile* field to specify the location of a password file (.pgpass). A .pgpass file allows a user to login without providing a password when they connect.  For more information, see `Section 33.15 of the Postgres documentation <https://www.postgresql.org/docs/current/libpq-pgpass.html>`_.
 * Use the *Publication* field to specify the publication name on the publishers to subscribe to. Click on the refresh button at the end to load the names of the existing publications and then select from the list. You can also write the name of the known publication in the field.
 
+Click the *SSL* tab to continue.
+
+.. image:: images/subscription_ssl.png
+    :alt: Subscription dialog ssl tab
+    :align: center
+
+Use the fields in the *SSL* tab to configure SSL:
+
+* Use the drop-down list box in the *SSL* field to select the type of SSL
+  connection the server should use. For more information about using SSL
+  encryption, see
+  `Section 33.18 of the Postgres documentation <https://www.postgresql.org/docs/current/libpq-ssl.html>`_.
+
+If pgAdmin is installed in Server mode (the default mode), you can use the
+platform-specific File manager dialog to upload files that support SSL
+encryption to the server.  To access the File manager dialog, click the
+icon that is located to the right of each of the following fields.
+
+* Use the *Client certificate* field to specify the file containing the client
+  SSL certificate.  This file will replace the default
+  *~/.postgresql/postgresql.crt* if pgAdmin is installed in Desktop mode, and
+  *<STORAGE_DIR>/<USERNAME>/.postgresql/postgresql.crt* if pgAdmin is installed
+  in Web mode. This parameter is ignored if an SSL connection is not made.
+* Use the *Client certificate key* field to specify the file containing the
+  secret key used for the client certificate.  This file will replace the
+  default *~/.postgresql/postgresql.key* if pgAdmin is installed in Desktop
+  mode, and *<STORAGE_DIR>/<USERNAME>/.postgresql/postgresql.key* if pgAdmin
+  is installed in Web mode. This parameter is ignored if an SSL connection is
+  not made.
+* Use the *Root certificate* field to specify the file containing the SSL
+  certificate authority.  This file will replace the default
+  *~/.postgresql/root.crt*. This parameter is ignored if an SSL connection is
+  not made.
+* Use the *Certificate revocation list* field to specify the file containing
+  the SSL certificate revocation list.  This list will replace the default list,
+  found in *~/.postgresql/root.crl*. This parameter is ignored if an SSL
+  connection is not made.
+* When *SSL compression?* is set to *True*, data sent over SSL connections will
+  be compressed.  The default value is *False* (compression is disabled).  This
+  parameter is ignored if an SSL connection is not made.
+
+.. warning:: In Server mode, certificates, private keys, and the revocation list
+    are stored in the per-user file storage area on the server, which is owned
+    by the user account under which the pgAdmin server process is run. This
+    means that administrators of the server may be able to access those files;
+    appropriate caution should be taken before choosing to use this feature.
+
 Click the *With* tab to continue.
 
 .. image:: images/subscription_with.png
diff --git a/web/pgadmin/browser/server_groups/servers/databases/publications/tests/13_plus/alter_publication.sql b/web/pgadmin/browser/server_groups/servers/databases/publications/tests/13_plus/alter_publication.sql
new file mode 100644
index 000000000..4f1defa55
--- /dev/null
+++ b/web/pgadmin/browser/server_groups/servers/databases/publications/tests/13_plus/alter_publication.sql
@@ -0,0 +1,7 @@
+-- Publication: alterd_publication
+
+-- DROP PUBLICATION alterd_publication;
+
+CREATE PUBLICATION alterd_publication
+    FOR ALL TABLES
+    WITH (publish = 'insert, update', publish_via_partition_root = false);
diff --git a/web/pgadmin/browser/server_groups/servers/databases/publications/tests/13_plus/alter_publication_event.sql b/web/pgadmin/browser/server_groups/servers/databases/publications/tests/13_plus/alter_publication_event.sql
new file mode 100644
index 000000000..a870d5c21
--- /dev/null
+++ b/web/pgadmin/browser/server_groups/servers/databases/publications/tests/13_plus/alter_publication_event.sql
@@ -0,0 +1,7 @@
+-- Publication: alterd_publication
+
+-- DROP PUBLICATION alterd_publication;
+
+CREATE PUBLICATION alterd_publication
+    FOR ALL TABLES
+    WITH (publish = 'insert, update, delete', publish_via_partition_root = false);
diff --git a/web/pgadmin/browser/server_groups/servers/databases/publications/tests/13_plus/alter_publication_event_msql.sql b/web/pgadmin/browser/server_groups/servers/databases/publications/tests/13_plus/alter_publication_event_msql.sql
new file mode 100644
index 000000000..61cd73d7e
--- /dev/null
+++ b/web/pgadmin/browser/server_groups/servers/databases/publications/tests/13_plus/alter_publication_event_msql.sql
@@ -0,0 +1,2 @@
+ALTER PUBLICATION alterd_publication_event SET
+(publish = 'insert, update', publish_via_partition_root = false);
diff --git a/web/pgadmin/browser/server_groups/servers/databases/publications/tests/13_plus/alter_publication_msql.sql b/web/pgadmin/browser/server_groups/servers/databases/publications/tests/13_plus/alter_publication_msql.sql
new file mode 100644
index 000000000..30869d2a8
--- /dev/null
+++ b/web/pgadmin/browser/server_groups/servers/databases/publications/tests/13_plus/alter_publication_msql.sql
@@ -0,0 +1 @@
+ALTER PUBLICATION test_publication_to_alter RENAME TO alterd_publication;
diff --git a/web/pgadmin/browser/server_groups/servers/databases/publications/tests/13_plus/create_publication.sql b/web/pgadmin/browser/server_groups/servers/databases/publications/tests/13_plus/create_publication.sql
new file mode 100644
index 000000000..26f29fc43
--- /dev/null
+++ b/web/pgadmin/browser/server_groups/servers/databases/publications/tests/13_plus/create_publication.sql
@@ -0,0 +1,7 @@
+-- Publication: test_publication_create
+
+-- DROP PUBLICATION test_publication_create;
+
+CREATE PUBLICATION test_publication_create
+    FOR ALL TABLES
+    WITH (publish = 'insert, update', publish_via_partition_root = false);
diff --git a/web/pgadmin/browser/server_groups/servers/databases/publications/tests/13_plus/create_publication_msql.sql b/web/pgadmin/browser/server_groups/servers/databases/publications/tests/13_plus/create_publication_msql.sql
new file mode 100644
index 000000000..948ab8f7a
--- /dev/null
+++ b/web/pgadmin/browser/server_groups/servers/databases/publications/tests/13_plus/create_publication_msql.sql
@@ -0,0 +1,3 @@
+CREATE PUBLICATION test_publication_create
+    FOR ALL TABLES
+    WITH (publish = 'insert, update', publish_via_partition_root = false);
diff --git a/web/pgadmin/browser/server_groups/servers/databases/publications/tests/13_plus/create_publication_update.sql b/web/pgadmin/browser/server_groups/servers/databases/publications/tests/13_plus/create_publication_update.sql
new file mode 100644
index 000000000..70b985c9c
--- /dev/null
+++ b/web/pgadmin/browser/server_groups/servers/databases/publications/tests/13_plus/create_publication_update.sql
@@ -0,0 +1,7 @@
+-- Publication: test_publication_with_update
+
+-- DROP PUBLICATION test_publication_with_update;
+
+CREATE PUBLICATION test_publication_with_update
+    FOR ALL TABLES
+    WITH (publish = 'update', publish_via_partition_root = false);
diff --git a/web/pgadmin/browser/server_groups/servers/databases/publications/tests/13_plus/create_publication_update_msql.sql b/web/pgadmin/browser/server_groups/servers/databases/publications/tests/13_plus/create_publication_update_msql.sql
new file mode 100644
index 000000000..4378accc1
--- /dev/null
+++ b/web/pgadmin/browser/server_groups/servers/databases/publications/tests/13_plus/create_publication_update_msql.sql
@@ -0,0 +1,3 @@
+CREATE PUBLICATION test_publication_with_update
+    FOR ALL TABLES
+    WITH (publish = 'update', publish_via_partition_root = false);
diff --git a/web/pgadmin/browser/server_groups/servers/databases/publications/tests/13_plus/test.json b/web/pgadmin/browser/server_groups/servers/databases/publications/tests/13_plus/test.json
new file mode 100644
index 000000000..1876eb9d7
--- /dev/null
+++ b/web/pgadmin/browser/server_groups/servers/databases/publications/tests/13_plus/test.json
@@ -0,0 +1,80 @@
+{
+  "scenarios": [
+    {
+      "type": "create",
+      "name": "Create Table For publication",
+      "endpoint": "NODE-table.obj",
+      "sql_endpoint": "NODE-table.sql_id",
+      "data": {
+        "name": "test_publication",
+        "columns": [
+          {
+            "name": "emp_id",
+            "cltype": "integer",
+            "is_primary_key": true
+          },
+          {
+            "name": "name",
+            "cltype": "text"
+          },
+          {
+            "name": "salary",
+            "cltype": "bigint"
+          }
+        ],
+        "is_partitioned": false,
+        "schema": "public",
+        "spcname": "pg_default"
+      },
+      "store_object_id": true
+    },
+    {
+      "type": "create",
+      "name": "Create  Publication",
+      "endpoint": "NODE-publication.obj",
+      "sql_endpoint": "NODE-publication.sql_id",
+      "msql_endpoint": "NODE-publication.msql",
+      "data": {
+        "name": "test_publication_create",
+        "evnt_insert": true,
+        "evnt_update": true,
+        "evnt_delete": false,
+        "evnt_truncate": false,
+        "pubowner": "postgres",
+        "publish_via_partition_root": false,
+        "all_table": true,
+        "pubtable": ""
+      },
+      "expected_sql_file": "create_publication.sql",
+      "expected_msql_file": "create_publication_msql.sql"
+    },
+    {
+      "type": "alter",
+      "name": "Alter  Publication name",
+      "endpoint": "NODE-publication.obj_id",
+      "sql_endpoint": "NODE-publication.sql_id",
+      "data": {
+        "name": "alterd_publication"
+      },
+      "expected_sql_file": "alter_publication.sql"
+    },
+    {
+      "type": "alter",
+      "name": "Alter  Publication event",
+      "endpoint": "NODE-publication.obj_id",
+      "sql_endpoint": "NODE-publication.sql_id",
+      "data": {
+        "evnt_delete": true
+      },
+      "expected_sql_file": "alter_publication_event.sql"
+    },
+    {
+      "type": "delete",
+      "name": "Drop publication",
+      "endpoint": "NODE-publication.delete_id",
+      "data": {
+        "name": "alterd_publication_event"
+      }
+    }
+  ]
+}
diff --git a/web/pgadmin/browser/server_groups/servers/databases/publications/tests/publication_test_data.json b/web/pgadmin/browser/server_groups/servers/databases/publications/tests/publication_test_data.json
index da08408db..ba3473eb4 100644
--- a/web/pgadmin/browser/server_groups/servers/databases/publications/tests/publication_test_data.json
+++ b/web/pgadmin/browser/server_groups/servers/databases/publications/tests/publication_test_data.json
@@ -10,6 +10,7 @@
         "evnt_update": true,
         "evnt_delete": false,
         "evnt_truncate": false,
+        "publish_via_partition_root": false,
         "pubowner": "postgres",
         "all_table": true,
         "pubtable": ""
@@ -31,6 +32,7 @@
         "evnt_update": true,
         "evnt_delete": false,
         "evnt_truncate": false,
+        "publish_via_partition_root": false,
         "pubowner": "postgres",
         "all_table": false,
         "pubtable": "PLACE_HOLDER"
