diff --git a/docs/en_US/images/subscription_connection.png b/docs/en_US/images/subscription_connection.png index b1d05a799..7b7fc5c33 100644 Binary files a/docs/en_US/images/subscription_connection.png and b/docs/en_US/images/subscription_connection.png differ diff --git a/docs/en_US/images/subscription_general.png b/docs/en_US/images/subscription_general.png index 01f7f9ed3..3698c7f97 100644 Binary files a/docs/en_US/images/subscription_general.png and b/docs/en_US/images/subscription_general.png differ diff --git a/docs/en_US/images/subscription_sql.png b/docs/en_US/images/subscription_sql.png index 13faad390..64bcb75c1 100644 Binary files a/docs/en_US/images/subscription_sql.png and b/docs/en_US/images/subscription_sql.png differ diff --git a/docs/en_US/images/subscription_ssl.png b/docs/en_US/images/subscription_ssl.png new file mode 100644 index 000000000..a86784bb3 Binary files /dev/null and b/docs/en_US/images/subscription_ssl.png differ diff --git a/docs/en_US/images/subscription_with.png b/docs/en_US/images/subscription_with.png index c5d154c4b..8933ff150 100644 Binary files a/docs/en_US/images/subscription_with.png and b/docs/en_US/images/subscription_with.png differ 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 `_. * 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 `_. + +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 + *//.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 *//.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"