Compare commits

...
605 Commits
Author SHA1 Message Date
Rahul Shirsat ab04b30726 1. Unverified email id is getting locked.
2. Admin should be able to lock the user, as currently it only unlocks it via
   user management dialog.
3. There were some indefinite login page loading issues when trying to log in
   with invalid password, where it should redirect to the login page again instead.

refs #6337 (Initial patch by Khushboo Vashi)
2021-08-09 21:04:49 +05:30
Yogesh Mahajan dc4f59e664 Handle null values more correctly.
refs #5198
2021-08-09 20:11:39 +05:30
Akshay Joshi 8738f6dd98 Update version for release. 2021-08-09 14:44:52 +05:30
Akshay Joshi 039766b492 Update DEPENDENCIES. 2021-08-09 14:42:24 +05:30
Libor M 2da970a26c Update Czech translation. 2021-08-09 14:34:32 +05:30
fn ln 86e1f33231 Update Japanese translation. 2021-08-09 14:33:02 +05:30
Domenico Sgarbossa 702fbac1c0 Update Italian translation. 2021-08-09 14:31:37 +05:30
Pradip Parkale 7483ddf2b2 Added support to copy SQL from main window to query tool. Fixes #4904 2021-08-09 14:29:31 +05:30
Khushboo Vashi 78b041465e Fixed an issue where even if the user is locked, he can reset the password and can login into pgAdmin. Fixes #6664 2021-08-09 14:24:26 +05:30
Akshay Joshi 5e3aa305fd Update message catalogs. 2021-08-06 19:35:30 +05:30
Nikhil Mohite 703478c13d Fixed an issue where the titles in query tabs are different. Fixes #6618 2021-08-06 19:09:39 +05:30
Yogesh Mahajan 8d53c10643 Fixed styling for JSON Editor to match with pgAdmin4 style.
refs #5198
2021-08-06 18:01:50 +05:30
Akshay Joshi 025c98ced8 1) Flash warning message of N no of attempts left for the unsuccessful login attempt.
2) Updated some strings in the Preferences for the "Maximum column width" option.
2021-08-03 17:06:06 +05:30
Yogesh Mahajan 8e214ca8fb Added support for formatted JSON viewer/editor when interacting with data in a JSON column. Fixes #5198 2021-08-03 11:36:45 +05:30
Akshay Joshi 23265061b2 Fixed an issue where an empty SQLite database file is created when try to get the version. 2021-07-30 15:44:46 +05:30
Aditya Toshniwal 9d985d3d8f Fixed potential bug in the table node. 2021-07-30 13:28:07 +05:30
Akshay Joshi 03477d407e Fixed dashboard server activity issue when active_since parameter is None. Fixes #6650 2021-07-29 11:49:27 +05:30
Rahul Shirsat 2dd88e5a4e Ensure that all the required options should be loaded when the Range data type
is selected while creating a custom data type.

Fixes #6643
2021-07-29 10:43:27 +05:30
Aditya Toshniwal 2452d90300 Fixed incorrect tablespace options in the drop-down for move objects dialog. Fixes #6586 2021-07-27 17:28:38 +05:30
Akshay Joshi 508f97b08e Rename the "Resize by data?" to "Columns sized by" and disabled the 'Maximum column width'
button if 'Columns sized by' is set to 'Column data'. Fixes #6622
2021-07-27 15:17:06 +05:30
Akshay Joshi 3f67f512ec Fixed incorrect binary path issue when the user deletes the binary path from the preferences. Fixes #6619 2021-07-26 11:49:48 +05:30
Akshay Joshi fdc3028124 Fixed linter error. 2021-07-23 12:57:40 +05:30
zhangjie2@fujitsu.com 3a3eea0320 Correct the string for shared server test case. 2021-07-23 12:44:16 +05:30
Nikhil Mohite d95a6f2af7 Fixed an issue where paste is not working through Right-Click option on PSQL. Fixes #6574 2021-07-23 12:41:48 +05:30
Florian Sabonchi a3d3c74e67 Ensure that the login account should be locked after N number of attempts. N is configurable using the 'MAX_LOGIN_ATTEMPTS' parameter. Fixes #6337 2021-07-22 12:24:43 +05:30
Dave Page c2db647379 Run apt update before doing anything else. 2021-07-21 15:48:59 +01:00
Rahul Shirsat 6cc3423cbe Fixed session expiration API test case. 2021-07-20 16:29:03 +05:30
Akshay Joshi eb658a75ab Modified the bulk insert logic to the user table in the migration file. 2021-07-20 13:27:03 +05:30
Pradip Parkale b2205fc6e1 Fixed an issue in the search object when searching in 'all types' or 'subscription' if the user doesn't have access to the subscription. Fixes #6448 2021-07-19 14:11:10 +05:30
Nikhil Mohite 5768ade198 Added exception handling for SQLAlchemy function to check the table exists or not. 2021-07-19 14:01:45 +05:30
Rahul Shirsat b0727cc532 Fixed CSRF errors for stale sessions by increasing the session expiration time for desktop mode. Fixes #6369 2021-07-15 17:49:42 +05:30
Rahul Shirsat 9e8af67202 Fixed TypeError 'NoneType' object is not sub scriptable. Fixes #6580 2021-07-15 17:46:31 +05:30
Fred Escallier 69d0fbe419 Update French translation. 2021-07-15 17:38:57 +05:30
Akshay Joshi 7b050a4c31 Update version for release. 2021-07-12 16:35:25 +05:30
Akshay Joshi 96085213fe Update Dependencies. 2021-07-12 16:26:00 +05:30
Domenico Sgarbossa 2ce2b457bf Update Italian translation. 2021-07-12 14:12:12 +05:30
Identifier Anonymous a2171aa27b Update Japanese translation. 2021-07-12 14:10:22 +05:30
Libor M ea3d71c0df Update Czech translation. 2021-07-12 14:08:58 +05:30
Akshay Joshi b154be24ec Update message catalog. 2021-07-09 21:53:33 +05:30
Khushboo Vashi 3590c9172c Fixed an issue where the user unable to login with OAuth2 when LDAP & OAuth2 configured as login sources. Fixes #6594 2021-07-09 21:50:50 +05:30
Khushboo Vashi e981868246 Fixed an issue where the user unable to add server in Kerberos Authentication Mode with Master Password. Fixes #6595 2021-07-09 21:47:34 +05:30
Khushboo Vashi 5ee8045916 Informative error should be shown if Oauth2 profile does not have email id registered. Fixes #6590 2021-07-07 17:58:49 +05:30
Khushboo Vashi 36086722b3 RESQL testcase fixes for Triggers. 2021-07-07 17:56:30 +05:30
Rahul Shirsat 8edd5946e5 1) Modified some labels and controls.
2) Fixed issue where the same user is showing in SQL query.

3) Added SQL tab in the dialog.

refs #3893
2021-07-07 10:44:02 +05:30
Akshay Joshi a0b2a28ee2 1) Set the default value of the long-running threshold to 2 minutes for warning and 5 minutes for the alert.
2) Use $color-danger for the alert threshold.
2021-07-06 19:52:37 +05:30
Identifier Anonymous 39a845ad31 Remove extra brackets in CREATE script and DDL comparison for trigger node. 2021-07-06 19:07:35 +05:30
Nikhil Mohite 669bdc7e38 Resolved the issue when the user selects the folder 'Select' button is not getting enabled for 'Select folder' dialog.
refs #6536
2021-07-06 19:00:08 +05:30
Pradip Parkale 5d4c073730 Fixed an issue where Schema Diff and Debugger give a blank white panel.
refs #6398
2021-07-06 18:56:21 +05:30
Khushboo Vashi 48ca83f31d Added support for OAuth 2 authentication. Fixes #5940
Initial patch sent by: Florian Sabonchi
2021-07-06 13:22:58 +05:30
Dave Page fff4060b31 Don't use fuzzy matching when updating message catalogs, to avoid issues where the number string substitution placeholders changes, per discussion. 2021-07-05 09:49:56 +01:00
Rahul Shirsat 9fdda038a9 Resolve the log in issue for a user having a non-existing email id
1) Added CHECK_EMAIL_DELIVERABILITY & SECURITY_EMAIL_VALIDATOR_ARGS.
  2) Added test cases for deliverability check.

Fixes #6550
2021-07-05 12:55:40 +05:30
Akshay Joshi ef67409d61 Highlighted long running queries on the dashboards. Fixes #1975 2021-07-01 18:10:55 +05:30
Dave Page d90472014d Remove leading whitespace and replace it with '[...] ' in the Query Tool data grid so cells don't look empty.
Fixes #6427
2021-07-01 09:17:35 +01:00
Dave Page a2b67b933e PEP-8 fix. 2021-06-30 11:04:50 +01:00
Dave Page b98e881d84 Disable email deliverability check that was introduced in flask-security-too by default to maintain backwards compatibility.
Fixes #6550
2021-06-30 10:46:32 +01:00
Dave Page e978621597 Fix typo in filename. 2021-06-28 15:23:18 +01:00
Rahul Shirsat 5fe52b9cfe Added support for Reassign/Drop Owned for login roles. Fixes #3893 2021-06-28 18:55:52 +05:30
Nikhil Mohite 5c6d00d545 Fixed directory selection issue with the folder dialog. Fixes #6536 2021-06-28 18:55:52 +05:30
Dave Page 6429a5b31a Clarify when container config envvars may be ignored. 2021-06-28 09:48:24 +01:00
Akshay Joshi e68c8305a2 Added option to provide maximum width of the column when 'Resize by data?’ option in the preferences is set to True. Fixes #6559 2021-06-28 11:51:21 +05:30
Pradip Parkale e095d382b3 Fixed an issue where incorrect column name listed in the properties of Index. Fixes #6557 2021-06-27 19:00:16 +05:30
Akshay Joshi 25ada15546 Temporary comment the logic to check API test cases are fixed for EPAS/PG 9.6 2021-06-25 19:40:52 +05:30
Pradip Parkale 5581f0909a Fixed an issue where Debugger and ERD tool panel give a blank white panel, missing from the last patch.
refs #6398
2021-06-25 11:38:02 +05:30
Pradip Parkale 462b86df8d Remove some configuration from the about dialog. 2021-06-25 11:11:28 +05:30
Nikhil Mohite 6645625e6b Fixed copy/paste issues for PSQL tool terminal. Fixes #6547. 2021-06-24 20:00:52 +05:30
Ashesh Vashi cfb68d73a0 Fixed server mode api test case failure. 2021-06-24 19:41:58 +05:30
Ashesh Vashi 9574f43f87 Refactor the registry class logic and remove duplicate code for the same functionality. 2021-06-24 11:30:11 +05:30
Akshay Joshi a53be65ab0 Fixed Czech translation string for 'Login' keyword. Fixes #6555
Patch sent by: Waclaw
2021-06-24 11:19:26 +05:30
Libor M cc989c5c08 Added missing gettexts and text space improvements. 2021-06-24 11:15:50 +05:30
Nikhil Mohite 313224e6f5 Ensure that Data Output panel can be snapped back after it is detached. Fixes #4189 2021-06-23 15:06:06 +05:30
Nikhil Mohite 2adb29ffc0 Fixed an issue where the New Connection Drop Down has lost default maintenance database, auto-select, and tab-through functionality. Fixes #6505 2021-06-23 12:48:17 +05:30
Pradip Parkale 80ccd62d38 Fixed an issue in the search object when searching in 'all types' or 'subscription' if the user doesn't have access to the subscription. Fixes #6448 2021-06-23 12:39:55 +05:30
Aditya Toshniwal b81ff45d34 Fixed replace keyboard shortcut issue in the query tool on the normal keyboard layout. Fixes #6388 2021-06-23 12:34:01 +05:30
Aditya Toshniwal 81b78dd2b2 Do not block the query editor window when running a query. Fixes #3920 2021-06-23 12:22:24 +05:30
Nikhil Mohite e2302a6c9b Ensure that setting 'Open in new browser tab' should be visible, it should not be based on the value of 'ENABLE_PSQL'. Fixes #6541 2021-06-23 11:59:56 +05:30
Yogesh Mahajan 2486b79450 Fixed feature tests failure issue due to binary path feature. 2021-06-23 11:55:27 +05:30
Pradip Parkale 0b52ef6eb0 Fixed an issue where detaching the query editor panel gives a blank white panel. Fixes #6398 2021-06-23 11:49:40 +05:30
Nikhil Mohite a533620684 Fixed an issue where Execute/Refresh button should not be disabled when we run the empty query. Fixes #6489 2021-06-23 11:49:40 +05:30
Dave Page 09d8d0f362 Fix path on windows. Fixes #6558 2021-06-23 07:04:59 +01:00
Dave Page 4e067835c3 Revert "Fixed API test cases for PG/EPAS 9.6" per Khushboo.
This reverts commit 37278f2cd3.
2021-06-17 13:27:33 +01:00
Khushboo Vashi 37278f2cd3 Fixed API test cases for PG/EPAS 9.6 2021-06-17 16:22:53 +05:30
Akshay Joshi 16d2a3096a 1) Fixed an issue where the binary path is not correctly parsed for version 9.6. Fixes #6534
2) Added the default binary path in the container. 
3) Fixed the typo in the documentation.
2021-06-15 19:49:46 +05:30
Dave Page 083509eb97 Show the full range of options for the default binary path dict. 2021-06-15 14:32:05 +01:00
Dave Page 0c154deeec Fix dict definition. 2021-06-15 14:19:31 +01:00
Akshay Joshi 082c9707c0 Fixed documentation issue 'Definition list ends without a blank line; unexpected unindent.' 2021-06-15 16:45:16 +05:30
Akshay Joshi 15798ee168 Updated DEFAULT_BINARY_PATHS for container. 2021-06-15 16:08:15 +05:30
Dave Page e37b7eae3f Cleanup psql docs. 2021-06-15 11:09:52 +01:00
Akshay Joshi ae2d588f46 Update version for release. 2021-06-14 21:00:26 +05:30
Akshay Joshi 12d93d0805 Update DEPENDENCIES. 2021-06-14 20:59:05 +05:30
Nikhil Mohite 2549688bdf 1) Disable the PSQL feature entirely in server mode by default.
2) Remove the code that attempts to filter out commands.

refs #2341
2021-06-14 20:53:11 +05:30
Akshay Joshi c2ed799113 If the binary path contains '' then show as it is on GUI if the path contains valid utilities. 2021-06-14 19:23:26 +05:30
Nikhil Mohite 71526ac79f Ensure that the calendar control should be disabled in the properties panel for Role. Fixes #6469. 2021-06-14 16:59:04 +05:30
Pradip Parkale 3d685ef96c Updated variable name as per review comments. 2021-06-14 16:42:27 +05:30
Akshay Joshi 2fdde6218a Fixed binary path issue on Windows platform. refs #5370 2021-06-14 15:01:49 +05:30
Nikhil Mohite 09693d14d1 Added check if the Windows version is not supporting the ConPty or WinPty disable the PSQL for that version.
refs #2341
2021-06-14 11:47:40 +05:30
Fred Escallier dcaeb20e29 Update French translation. 2021-06-14 11:47:40 +05:30
fn ln d93ec3bb91 Update Japanese translation. 2021-06-14 11:47:40 +05:30
Libor M f29852f6f0 Update Czech translation. 2021-06-14 11:47:40 +05:30
Domenico Sgarbossa 7d5fc84747 Update Italian translation. 2021-06-14 11:47:40 +05:30
Dave Page 4a3a5174b2 Disable browser password saving in the runtime. Fixes #6473 2021-06-11 15:10:38 +01:00
Pradip Parkale e0d094b2aa Fixed issues related to About dialog:
1) On resizing, the server configuration text area should be resized.
2) Any password should not be visible in the configuration.
3) Configurations are not properly quoted.
4) Added the "Copy" button so that the user can copy the configuration directly.

refs #6231
2021-06-11 19:30:32 +05:30
Pradip Parkale e3190b86ab Fixed an issue where a decimal number is appended for character varying fields while downloading the data in CSV format. Fixes #6520 2021-06-11 19:29:20 +05:30
Akshay Joshi b9b0a573e5 Update message catalogs. 2021-06-11 19:17:40 +05:30
Akshay Joshi 0dbfbd8dfc 1) Fixed Selenoid test cases.
2) Fixed RESQL test case failing on Jenkins.
2021-06-11 15:34:12 +05:30
Aditya Toshniwal 6e42d9113b Fixed user password-related issues.
refs #6225
2021-06-10 22:56:38 +05:30
Khushboo Vashi 460fb7ec29 Fixed an issue where pgAdmin does not open after password reset in server mode. Fixes #6513 2021-06-10 22:55:31 +05:30
Akshay Joshi c86a2b643a 1) Binary path set to the default location in which we install the binaries.
2) Validate path not working if there is a space in the binary path.
3) Handle the case when the path contains '$DIR'. 

refs #5370
2021-06-10 22:49:05 +05:30
Yogesh Mahajan b2042f48cd Added RESQL/MSQL test cases for Table and its child nodes. Fixes #4622 2021-06-09 18:16:50 +05:30
Dave Page d276f37e87 Support non-admin installation on Windows. Fixes #6524 2021-06-09 13:32:48 +01:00
Nikhil Mohite 7c88ee7cff Added a mechanism to detect a corrupt/broken config database file. Fixes #6460 2021-06-08 19:41:47 +05:30
Nikhil Mohite 93ddc4a5ba Ensure that the user should be able to add members in Login/Role group while creating it. Fixes #6466 2021-06-08 19:33:03 +05:30
Nikhil Mohite 9f12747d9b Added PSQL tool support for the Windows platform.
Fixed following issues:
1. If the database name contains escape characters then PSQL unable to connect.
2. If the user terminates the connection by typing the 'exit' command, PSQL
   will show the connection termination msg.

Fixes #2341
2021-06-08 14:58:43 +05:30
Akshay Joshi 5a086a9173 Fixed API test cases failed due to wrong handling of default binary path. 2021-06-08 13:24:17 +05:30
Nikhil Mohite e1067ffe67 Ensure that the Query Tool connection string should not be changed as per the 'Query Tool tab title'. Fixes #6404 2021-06-07 22:07:51 +05:30
Rahul Shirsat d5f537aae4 Added extra check for verifying the rename of the database.
refs #4203
2021-06-07 21:11:28 +05:30
Nikhil Mohite 5b12483416 Fixed an issue where the Foreground Color property of server dialog does not work. Fixes #6482 2021-06-07 21:09:04 +05:30
Akshay Joshi 07eb541806 1) Added logic to set the appropriate default binary path if DEFAULT_BINARY_PATH is
set in the config and the user not updated the preferences.
2) Remove 'gpdb' from DEFAULT_BINARY_PATH.
3) Fixed API test cases. 

refs #5370
2021-06-07 20:36:34 +05:30
Aditya Toshniwal 065a3aa2f5 Updated Flask-Security-Too to the latest v4. Fixes #6225 2021-06-06 13:58:06 +05:30
Akshay Joshi 2aa2d79de2 Fixed Jenkins build, added 'user-agents' in requirements.txt which was missing in the last patch. 2021-06-04 18:49:19 +05:30
Pradip Parkale a0deab901d Fixed OS detail issue for Linux and MacOS Big Sur. Fixes #6231. 2021-06-04 17:57:58 +05:30
Akshay Joshi 4bc4ca1ba9 1) Added browse button to select the binary path in the Preferences. Fixes #1561
2) Added support to set the binary path for the different database server versions. Fixes #5370
2021-06-04 17:55:35 +05:30
Rahul Shirsat ac8e8961ce Added Grant Wizard option under Package node. Fixes #1591 2021-06-04 12:47:37 +05:30
Pradip Parkale 2c51925638 Added OS, Browser, Configuration details in the About dialog. Fixes #6231 2021-06-01 20:18:24 +05:30
Nikhil Mohite e0eac875b6 Disable the PSQL tool for Windows, the 'fcntl' module is not working on Windows. 2021-06-01 20:04:43 +05:30
Rahul Shirsat 9ac08c263b Fixed duplicate SQL issue for tables with more than one partition. Fixes #6478 2021-05-31 12:46:07 +05:30
Rahul Shirsat 658a2de619 Fixed the issue of renaming the database by another user. Fixes #4203 2021-05-31 12:41:09 +05:30
Ashesh Vashi a487a51135 Fixes SonarQube issues. 2021-05-29 12:55:59 +05:30
Yogesh Mahajan 2d58f60a53 Modifies the way to execute feature tests in parallel and it should be configured in Server Mode. 2021-05-27 11:01:25 +05:30
Yogesh Mahajan faa49687be Added support to rotate the pgadmin log file on the basis of Size and Age. Fixes #6395 2021-05-25 20:18:46 +05:30
Nikhil Mohite 3ddf941cd7 Added support to launch PSQL for the connected database server. Fixes #2341 2021-05-25 20:12:57 +05:30
Rahul Shirsat 37dece2cd8 Added window maximize/restore functionality for properties dialog. Fixes #4064 2021-05-24 22:08:23 +05:30
Dave Page 1ead82f9b8 Various fixes to the setup process description. 2021-05-24 17:03:42 +01:00
Libor M 48dbf5a3dc Update Czech translation. 2021-05-18 13:42:49 +05:30
Akshay Joshi 0a95550fc0 Hardcoded 'itsdangerous' version to <=1.1.0, as the latest version not working correctly for pgAdmin. 2021-05-18 13:41:14 +05:30
Akshay Joshi 1c2b312d49 Update version for release. 2021-05-17 19:15:27 +05:30
Akshay Joshi 62e08d2b7e Update Dependencies. 2021-05-17 19:09:29 +05:30
Aditya Toshniwal f34adaca41 Fixed column sizing issue when there are no rows in a table.
refs #5954
2021-05-17 17:55:13 +05:30
Identifier Anonymous aaf5d64fe0 Update Japanese translation. 2021-05-17 13:13:23 +05:30
Fred Escallier 3f5fb4b61c Update French translation. 2021-05-17 13:12:05 +05:30
Domenico Sgarbossa f9254126e5 Update Italian translation. 2021-05-17 13:10:38 +05:30
Pradip Parkale 4676d7ef02 Fixed an issue where the Help message not displaying correctly on Login/Group role. Fixes #6414 2021-05-17 13:08:38 +05:30
Akshay Joshi 42b8dbb58f Update message catalog. 2021-05-14 17:38:30 +05:30
Aditya Toshniwal b7c0914f33 Fixed 'No password supplied' error occurring on auto-detected servers. 2021-05-14 15:14:18 +05:30
Aditya Toshniwal c8a2057410 Fixed JS audit warnings 2021-05-14 13:24:45 +05:30
Akshay Joshi 64e42bebe2 Update the correct redmine numbers, wrongly added in the last commit. 2021-05-14 12:42:06 +05:30
Khushboo Vashi 7275ce906e 1) Fixed an issue where the user is not warned if Kerberos ticket expiration
is less than 30 min while initiating a global backup. Fixes #6444

2) Ensure that proper identification should be there when the server is
   connected using Kerberos or without Kerberos. Fixes #6445
2021-05-14 12:33:01 +05:30
Pradip Parkale 7ed97eeec4 Fixed an issue where file dialog showing incorrect files for the selected file types. Fixes #6443 2021-05-14 12:12:17 +05:30
Pradip Parkale 0bb40de1c4 Ensure that the user should not be able to add duplicate panels. Fixes #6399 2021-05-12 15:19:41 +05:30
Akshay Joshi bd7808a104 Fixed an issue where the filter 'Include/Exclude By Selection' not working for null values. Fixes #6392 2021-05-11 19:12:43 +05:30
Akshay Joshi 4842d589a6 Added missing validation for data type. Fixes #6407 2021-05-11 18:21:53 +05:30
Akshay Joshi 11c541adc6 Update document and screenshot for 'Resize by data?' option. 2021-05-11 17:55:22 +05:30
Dave Page c746cfddfe Fix width of table row. 2021-05-11 11:47:38 +01:00
Dave Page 2b7f8d8298 Improve some strings. 2021-05-11 11:31:14 +01:00
huangj.fnst@fujitsu.com fe6f9aae61 Fix a number of typos. 2021-05-11 11:16:38 +01:00
Dave Page 8bc07c45f5 Cleanup the install-node target so it just calls yarn. 2021-05-11 09:44:48 +01:00
Aditya Toshniwal 058afad9eb Added support for cache bust webpack chunk files. Fixes #5477 2021-05-11 13:48:53 +05:30
Akshay Joshi 1e6eca1787 Ensure that pgAdmin4 shut down completely on the Quit command. Fixes #6420 2021-05-10 15:28:45 +05:30
Khushboo Vashi 89b0028684 Update Kerberos docs for phase 2. 2021-05-10 10:20:47 +01:00
Akshay Joshi d80087f6d5 Added support to set auto width of columns by content size in the data output window. Fixes #5954 2021-05-07 17:18:50 +05:30
Yogesh Mahajan b0df4d3604 Added support for the creation of Nested Table and Varying Array Type for Advanced Server. Fixes #6407 2021-05-07 12:39:54 +05:30
Dave Page c32ff3a7ee Expect the yum repo metadata to be GPG signed. 2021-05-06 15:27:22 +01:00
Murtuza Zabuawala 4c55044440 Remove duplicate code and avoid DOM search operation.
refs #6355
2021-05-06 10:53:32 +05:30
Akshay Joshi b13627398b Fixed API test cases 2021-05-05 13:12:20 +05:30
Khushboo Vashi b30ec71098 Ensure that while connecting to the server using SSPI login, it should not prompt for the password. Fixes #5776 2021-05-05 11:40:48 +05:30
Dave Page 649ca2eeac Make the error messages on exit show something useful. 2021-05-04 14:12:13 +01:00
Murtuza Zabuawala 98546e1876 Update require.js library to the latest version. 2021-05-04 17:48:13 +05:30
Akshay Joshi 7e79814cb0 Added 'IF NOT EXISTS' clause while creating tables and partition tables which is convenient while using the ERD tool. Fixes #6397 2021-05-04 15:59:34 +05:30
Akshay Joshi ac403d0dfa Fixed an issue where the current debug line is not visible in the 'Dark' theme. Fixes #6409 2021-05-04 12:34:03 +05:30
Khushboo Vashi 72f3730c34 Added support to connect PostgreSQL servers via Kerberos authentication. Fixes #6158 2021-05-03 16:10:45 +05:30
Akshay Joshi aa9a4c30d3 Fixed an issue where duplicate columns are visible in the browser tree, which is owned by two sequences. Fixes #6413 2021-05-03 14:53:21 +05:30
Pradip Parkale 3a2145e5fa Fixed an issue where query editor is not being closed if the user clicks on the 'Don't Save' button. Fixes #6417 2021-05-03 12:52:28 +05:30
Pradip Parkale 333a22496c Fixed an issue where drag and drop object is not correct in codemirror for properties dialog. Fixes #4436 2021-04-29 13:19:36 +05:30
Rahul Shirsat 488dc1849d Fixed an issue where data is displayed in the wrong order when executing the query repeatedly. Fixes #5555 2021-04-29 13:13:52 +05:30
Akshay Joshi e718be72e3 Added comment column in the properties panel for View and Materialized View collection node. Fixes #6416 2021-04-28 18:44:28 +05:30
Pradip Parkale 9dd1bae3c7 Ensure that pgAdmin should not allow opening external files that are dragged into it. Fixes #6355 2021-04-28 11:59:45 +05:30
Cyril Jouve 718ac02806 Fixed ModuleNotFoundError when running setup.py from outside of the root. Fixes #6408 2021-04-27 12:54:57 +05:30
Pradip Parkale 7bab200e4d Added more checks so that it will pick the correct shared server.
refs #6385
2021-04-27 11:58:47 +05:30
Rahul Shirsat f5ef022ef5 Fixed an issue where indexes showing TABLESPACE pg_default for partition SQL, which should not be shown.
refs #6329
2021-04-27 11:54:56 +05:30
Pradip Parkale 5a302684f7 Fixed an issue where long float values cause the rendering issue on the UI side.
It's a regression of the original commit for 6341.

refs #6341
2021-04-26 17:16:48 +05:30
Akshay Joshi 7d6f077cf8 Fixed an issue where schema diff does not create DROP DEFAULT statement for columns. Fixes #6377 2021-04-26 16:41:20 +05:30
Rahul Shirsat b853bda2a2 Fixed an issue where the wrong SQL is showing for the child partition tables. Fixes #6329 2021-04-26 14:32:34 +05:30
Pradip Parkale abdd3190fe Fixed some SonarQube issues. 2021-04-22 17:40:41 +05:30
Pradip Parkale 5894001eb2 Fixed an issue where CSV download quotes the numeric columns. Fixes #6341 2021-04-22 17:35:51 +05:30
Pradip Parkale 8ae8fea6d2 Ensure that Backup and Restore should work on shared servers as some cases were failing due to initial changes.
Fixes #6385
2021-04-22 17:29:04 +05:30
Akshay Joshi 81e077da5e Update version for release. 2021-04-19 17:10:57 +05:30
Yogesh Mahajan dc65cbb08c Fixed an issue where foreign data wrapper properties are not visible if the host option contains two host addresses. Fixes #6379 2021-04-19 11:08:21 +05:30
Identifier Anonymous 8596f15ae7 Update Japanese translation. 2021-04-19 10:49:27 +05:30
Fred Escallier a302269bb4 Update French translation. 2021-04-19 10:47:07 +05:30
Domenico Sgarbossa d7491ca14d Update Italian translation. 2021-04-19 10:44:05 +05:30
Libor M 700a2e8df1 Update Czech translation. 2021-04-19 10:42:24 +05:30
Akshay Joshi e5b2ec7e2f Update message catalogs. 2021-04-16 18:26:56 +05:30
Aditya Toshniwal 2b1910c1c1 Better fix for the black screen issues, reverted the old fix.
refs #6334
2021-04-16 18:23:29 +05:30
Aditya Toshniwal d046a2800d Fixed build errors which are occurring after updating sass-resources-loader package. 2021-04-15 16:42:25 +05:30
Akshay Joshi b4d44541bb Fixed SQL panel black screen issue when detaching it in runtime. Fixes #6334 2021-04-15 16:40:35 +05:30
Pradip Parkale cb7bcaf939 Ensure that Backup and Restore should work on shared servers. Fixes #6385 2021-04-14 12:11:55 +05:30
Yogesh Mahajan 4ee40e348c Fixed an issue where a long time is taken to launch pgAdmin in debug mode for feature tests. 2021-04-14 11:56:38 +05:30
Rahul Shirsat f07463024c Fixed flickering issue of the input box on check constraints. Fixes #6107 2021-04-12 12:34:36 +05:30
Yogesh Mahajan 9853d8bfd6 Fixed an issue while selecting the row which was deleted just before the selection operation. Fixes #6306 2021-04-12 11:45:04 +05:30
Pradip Parkale 0ed47fcd2b Fixed an issue where the Save button is enabled by default when open the table's properties dialog on PG 9.5. Fixes #6367 2021-04-12 11:36:16 +05:30
Nidhi Bhammar 098ab9e428 Updated docs and screenshots to cover the Notifications tab on the Query Tool. Fixes #4001 2021-04-12 11:28:48 +05:30
Rahul Shirsat 49095ccba6 1) Fixed an issue where shortcut keys are not working with manage macro. Fixes #5908
2) Fixed an issue where the cursor shifts its focus to the wrong window for all the query tool related model dialogs. Fixes #6161
2021-04-09 12:41:13 +05:30
Akshay Joshi 1f4affcb1e Fixed an issue where a connection warning should be displayed when the user
clicks on explain or explain analyze and the database server is disconnected
from the browser tree. Fixes #6376
2021-04-08 18:49:31 +05:30
Khushboo Vashi 437f0df0f3 Ensure that the strings in the LDAP auth module are translatable. Fixes #6274 2021-04-08 18:15:34 +05:30
Yogesh Mahajan 14dcb70b95 Ensure that the user should not be to change the connection when a long query is running. Fixes #6082 2021-04-08 18:09:13 +05:30
Aditya Toshniwal c88a63edf8 Included JSX files in the linter check. 2021-04-08 17:56:18 +05:30
Pradip Parkale ffdd58ffb4 Fixed some SonarQube issues. 2021-04-08 12:27:03 +05:30
Pradip Parkale 3a797b1efa Ensure that the file format for the storage manager should be 'All files' and for other dialogs, it should remember the last selected format. Fixes #6325 2021-04-08 12:23:57 +05:30
Akshay Joshi 8aea86613e Fixed an issue where users are unable to see data of the partition table using the View/Edit data option. Fixes #6375. 2021-04-07 16:25:21 +05:30
Akshay Joshi 7f59463e3b Corrected the syntax for 'CREATE TRIGGER', use 'EXECUTE FUNCTION' instead of 'EXECUTE PROCEDURE' from v11 onwards. Fixes #6220 2021-04-07 12:01:37 +05:30
Rahul Shirsat 585ba81492 Fixed sizing issue of help dialog for Query Tool and ERD Tool when open in the new browser tab. Fixes #6333 2021-04-06 15:26:25 +05:30
Akshay Joshi c1ba645dce 'xdg-util' has been added to the server mode instead of desktop mode in the previous patch, corrected it.
refs #6338
2021-04-02 14:01:17 +05:30
Fahar Abbas 811ac6eb6c Added missing dependency 'xdg-utils' for the desktop packages in RPM and Debian. Fixes #6338 2021-04-02 13:53:05 +05:30
Yogesh Mahajan 53f5562468 Fixed an issue where correct error not thrown while importing servers and JSON file has incorrect/insufficient keys. Fixes #6076 2021-04-02 08:58:43 +05:30
Akshay Joshi c84df9cc0f Ensure that while comparing domains check function dependencies should be considered in schema diff. Fixes #6327 2021-04-01 16:31:12 +05:30
Akshay Joshi e5d97e72e4 Fixed PEP8 issue. 2021-04-01 14:08:06 +05:30
Yogesh Mahajan fe236316de Rename the video and log file created by Selenium tests. 2021-04-01 13:07:28 +05:30
Yogesh Mahajan 27bb7d8c7a Fixed feature tests. 2021-04-01 12:16:33 +05:30
Pradip Parkale 566f03beca Ensure that the query tool tab should be closed after server disconnection when auto-commit/auto-rollback is set to false. Fixes #5519 2021-04-01 11:58:59 +05:30
Akshay Joshi 07f2df7e66 Fixed cannot unpack non-iterable response object error when selecting any partition. Fixes #6344 2021-03-31 12:08:01 +05:30
Akshay Joshi fb0d8c348a Remove the alertify error message as no need to show it when the user presses
the keyboard shortcut to open the View/Edit data on unsupported nodes.

refs #6206
2021-03-30 16:21:22 +05:30
Rahul Shirsat f0c86741a4 Improve code coverage and API test cases for Server module. Fixes #5319 2021-03-30 11:12:33 +05:30
Akshay Joshi a29890368c Fixed an issue where the procedure creation is failed when providing the Volatility option. Fixes #6293 2021-03-30 10:58:32 +05:30
Dave Page 9c69c1a277 Mark the Apache HTTPD config file as such in the web DEB and RPM packages. Fixes #6356 2021-03-29 10:35:50 +01:00
Nikhil Mohite be31fb08f1 Fix following scroll bar issues:
1) Stop overwriting the text in the scroll bar area.
2) Make scroll bars functional.
2021-03-23 19:17:01 +05:30
Akshay Joshi 1321a623bd Update version for release. 2021-03-22 18:05:13 +05:30
Fred Escallier fde8d17e8d Update French translation. 2021-03-22 18:02:01 +05:30
Identifier Anonymous c43185ce3f Update Japanese translation. 2021-03-22 17:59:01 +05:30
Domenico Sgarbossa 3d80ec1f47 Update Italian translation. 2021-03-22 17:57:23 +05:30
Libor M 86ba622455 Update Czech translation. 2021-03-22 17:53:41 +05:30
Akshay Joshi 2872b5c5d3 1) Ensure that the zoom level should be set for the newly opened window.
2) Ensure that if the zoom level is changed on the main window then it should
   be applicable for all the opened windows.

refs #6271
2021-03-22 17:50:26 +05:30
Akshay Joshi 723d97971d 1) Ensure that SQL formatter should not add extra tabs and format the SQL correctly. Fixes #5869
2) Ensure that SQL formatter should not use tab size if 'Use spaces?' set to false. Fixes #6233
2021-03-22 14:47:19 +05:30
Akshay Joshi 7d758d401e Update message catalogs. 2021-03-19 16:23:39 +05:30
Nikhil Mohite 15b8d4711e Hide the checkbox on the role property tab for 'Members of' and 'Members'.
refs #5404
2021-03-19 15:48:05 +05:30
Akshay Joshi 3f63f65674 Ensure that the view/edit data panel should not be opened for unsupported nodes using the keyboard shortcut. Fixes #6206 2021-03-19 15:38:40 +05:30
Pradip Parkale 24dc7f4a91 Fixed some issues reported by SonarQube. 2021-03-19 11:56:12 +05:30
Rahul Shirsat f5cc1d1c7e Fixed cognitive complexity reported by SonarQube. 2021-03-19 11:51:45 +05:30
Khushboo Vashi b973d6055d Ensure that toggle buttons are accessible by most screen readers. Fixes #6317 2021-03-19 11:44:57 +05:30
Dave Page ded65340fe Ensure the Python interpreter used by the runtime ignores user site-packages. Fixes #6269
Significant debugging by Peter Buckner.
2021-03-17 15:20:20 +00:00
Akshay Joshi 4bb71c56ad Fixed an issue where the top menu disappears when entering into the full screen for minimum screen resolution. Fixes #6322 2021-03-17 18:47:25 +05:30
Pradip Parkale ff06a18155 1) Fixed an issue where the incorrect values visible in the dependents tab for publication. Fixes #6307
2) Ensure that the primary key should be visible properly in the table dialog. Fixes #6316
2021-03-16 11:43:27 +05:30
Nikhil Mohite 9395ce3fda Fixed an issue where copy/paste rows in view data paste the wrong value for boolean type. Fixes #6312 2021-03-16 11:29:47 +05:30
Dave Page 60dbb81883 Improve the shebang in the venv, so they work from any directory. 2021-03-15 15:27:17 +00:00
Dave Page d4348bd726 Fixup shebangs in the venv scripts so they at least work if you're in the same directory. 2021-03-15 13:47:55 +00:00
Aditya Toshniwal 3d7ecd16aa Upgrade the React version from 16 to 17 and also update other dependent libraries. 2021-03-15 15:47:21 +05:30
Akshay Joshi 49a59f8929 Added zoom scaling options with keyboard shortcuts in runtime. Fixes #6271 2021-03-15 14:26:11 +05:30
Dave Page bf6ee28dae Cleanup naming/title consistency 2021-03-12 16:04:09 +00:00
Dave Page 80032e9658 Make the container distribution a multi-arch build with x86_64 and Arm64 support. Fixes #6212 2021-03-12 15:54:30 +00:00
Dave Page 7780cbfb83 Cleanup some code warnings. 2021-03-12 15:20:57 +00:00
Dave Page 47e9ef070e Include the environment in the runtime log. 2021-03-12 15:07:08 +00:00
Dave Page ec199e5e49 String tidy-up. 2021-03-12 14:52:41 +00:00
Nikhil Mohite 8031961205 Fixed alignment issue under preferences for the German language. Fixes #4014 2021-03-12 13:33:04 +05:30
Nikhil Mohite 7bad4ca535 Show the login roles that are members of a group role be shown when examining a group role. Fixes #5404 2021-03-12 13:11:09 +05:30
Nikhil Mohite 68132e2a8f Fixed an issue where adding/updating records fails if the table name contains percent sign.
refs #4438
2021-03-12 11:59:45 +05:30
Pradip Parkale 408df750be Fixed color issue on the statistics tab for collection node in the safari browser. Fixes #4020 2021-03-12 11:49:58 +05:30
Rahul Shirsat 03d3b8c03c 1) Fixed an issue where % displayed twice in explain analyze for query and table. Fixes #4847
2) Rename text 'table' with 'relation' in the statistic tab for explain analyze. Fixes #4849
2021-03-12 11:40:17 +05:30
Rahul Shirsat 9d8360641f Use schema qualification while accessing the catalog objects.
refs #3976
2021-03-12 11:17:25 +05:30
Pradip Parkale d6ee715d83 Ensure that autovacuum and analyze scale factors should be editable with more than two decimals. Fixes #4784 2021-03-09 18:48:32 +05:30
Akshay Joshi 351d86e149 Fixed string index out of range error where the dependent tab is in focus and selecting any publication or table. Fixes #6292 2021-03-09 18:43:04 +05:30
Akshay Joshi 0f62fecca2 Fixed an issue where the dependent tab throwing an error when selecting any login/group role. Fixes #6294 2021-03-09 14:32:16 +05:30
Chethana Kumar 6ffb82fb6d Make the 'Save Data Changes' icon to be more intuitive. Fixes #6176 2021-03-09 13:58:17 +05:30
Rahul Shirsat a2be30d257 Use schema qualification while accessing the catalog objects. Fixes #3976 2021-03-09 13:18:45 +05:30
Nikhil Mohite 8cf7c41ad9 Fixed an issue where adding/updating records fails if the table name contains percent sign. Fixes #4438. 2021-03-09 12:40:59 +05:30
Dave Page 5e40f9904d Make 'kerberos' an optional feature in the Python wheel, to avoid the need to install MIT Kerberos on the system by default. Tidy up the Python versioning a little whilst passing. Fixes #6268 2021-03-08 11:33:08 +00:00
Dave Page 059dad747d Ensure our venv uses the correct python interpreter, even if the user has set a different version using update-alternatives or similar. Partially fixes #6279 2021-03-08 11:17:55 +00:00
Dave Page 7d3903463c Fixup hash bangs in the venv. Partially fixes #6279 2021-03-05 10:15:45 +00:00
Dave Page 04a24680a6 Ensure that the venv activation scripts have the correct path in them on Linux. Partially fixes #6279 2021-03-05 09:58:30 +00:00
Nikhil Mohite d70dea5072 Ensure that the template database should be visible while creating the database. Fixes #6286 2021-03-04 17:48:52 +05:30
Nikhil Mohite 778e0cd402 Ensure that cell content being autoselected when editing the cell data. Fixes #5810 2021-03-04 13:53:23 +05:30
Nikhil Mohite 9317fe21b2 Fixed an issue where the user is not able to change the connection in Query Tool when any SQL file is opened. Fixes #6272 2021-03-04 13:17:31 +05:30
Nikhil Mohite 8be3517c6d Fixed an issue where hanging symlinks in a directory cause select file dialog to break. Fixes #5119 2021-03-04 12:48:56 +05:30
Dave Page ed6ddbb8de Fix README name. 2021-03-03 16:58:35 +00:00
Dave Page 77949ac4f7 Improve the web setup script for Linux to make the platform detection more robust and overrideable. Fixes #6228 2021-03-03 09:06:37 +00:00
Akshay Joshi 8c7417b735 Fixed regressions from the last commit. 2021-03-03 11:46:47 +05:30
Akshay Joshi 008bc6da28 Fixed some SonarQube issues. 2021-03-02 14:53:05 +05:30
Alessandro De Maria faa66f1636 Added '--replace' option in Import server to replace the list of servers with the newly imported one. Fixes #6270 2021-03-01 18:00:06 +05:30
Nikhil Mohite cb5d7190c4 Fixed SonarQube issues. 2021-03-01 18:00:06 +05:30
Dave Page 6cf3913c8e Clarify docs around configuration. 2021-03-01 10:47:50 +00:00
Huangj 9225493a93 Fixed an issue where schema diff showing wrong SQL when comparing triggers with different when clause. Fixes #6281. 2021-03-01 13:20:43 +05:30
Pradip Parkale 4267207c7f 1) Fixed an issue where the user is unable to create a subscription if the host/IP address for connection is 127.0.0.1. Fixes #6253
2) Ensure that proper error message should be shown on the properties and statistics tab in case of insufficient privileges for a subscription. Fixes #6259
3) Fixed an issue where the 'Create Slot' option is disabled in case of the same IP/host provided but the port is different. Fixes #6260
2021-03-01 12:08:33 +05:30
Dave Page cafd2af96d Ensure PGADMIN_DEFAULT_EMAIL looks sane when initialising a container deployment. Fixes #6227 2021-02-26 16:57:09 +00:00
Dave Page 544483ae1f Remove the "launch now" option in the Windows installer, as UAC could cause it to run as an elevated user. Fixes #5628
While we're passing, fix a couple of InnoSetup build warnings and remove some unnecessary code.
2021-02-26 16:24:39 +00:00
Dave Page e8114b5dc6 Allow underscores in the Windows installation path. Fixes #5467 2021-02-26 12:27:39 +00:00
Rahul Shirsat 87b9549ff4 Fixed encoding issue when database encoding set to SQL_ASCII and name of the column is in ASCII character. Fixes #6018 2021-02-26 13:23:07 +05:30
Rahul Shirsat 5a5a9314f3 Fixed an issue where the Save button is enabled for functions/procedures by default when open the properties dialog. Fixes #5073 2021-02-26 13:15:29 +05:30
Nikhil Mohite 4fc36a9053 Fixed an issue where the properties tab for collection nodes is unresponsive after switching the tabs. Fixes #4959 2021-02-26 12:50:30 +05:30
Nikhil Mohite 8279e7e01c Ensure that the user should be able to kill the session from Dashboard if the user has a 'pg_signal_backend' role. Fixes #6159 2021-02-26 12:50:30 +05:30
Fred Escallier f77fceb1b2 Update French translation. 2021-02-26 12:50:30 +05:30
Dave Page 4ea2246333 Remove the executable bit form images. 2021-02-25 09:12:16 +00:00
Dave Page 832b8fc038 Ensure we can build the node modules on ARM. 2021-02-23 16:12:55 +00:00
Akshay Joshi 2d537b6909 Updated release note 2021-02-22 16:47:16 +05:30
Nidhi Bhammar ea33ab308e Runtime docs. Fixes #6195 2021-02-22 10:47:13 +00:00
Aditya Toshniwal e0639602e6 Fixed ERD API test case failing for PG13 2021-02-22 15:01:01 +05:30
Akshay Joshi 296c23784f Fixed an issue where the python server is not closed when the user quits the
application from the top menu bar on OSX.

Python server will not be closed if the user quits the application from Dock,
for this we have updated the issue https://github.com/nwjs/nw.js/issues/7365

refs #6244
2021-02-22 14:58:04 +05:30
Nikhil Mohite 3132fa175a Added missing updated shared server owner name in the 'sharedserver' table
while the user changing the ownership of the shared server.

refs #6143
2021-02-22 14:49:34 +05:30
Libor M 20637bcacc Update Czech translation. 2021-02-22 11:13:06 +05:30
Identifier Anonymous a01ee87749 Update Japanese translation. 2021-02-22 11:11:16 +05:30
Domenico Sgarbossa 4c86079654 Update Italian translation. 2021-02-22 11:08:15 +05:30
Pradip Parkale 291e645d77 1) Updated documentation for SSL support in Subscription dialog.
2) Fixed API test cases.

refs #6201
2021-02-22 11:02:16 +05:30
Akshay Joshi 8e467788a3 Update message catalogs. 2021-02-19 16:05:11 +05:30
Akshay Joshi 71e40a7299 Update Dependencies. 2021-02-19 16:01:00 +05:30
Nikhil Mohite d9847ed1f3 Fixed an issue where the user is not able to use the query tool when
any other long-running operation is in progress.

refs #5793
2021-02-19 15:57:55 +05:30
Akshay Joshi db95414cf1 Fixed an issue where 'sys.executable' returns the path of 'httpd.exe' instead of the python interpreter on Windows with WSGI. 2021-02-19 15:45:00 +05:30
Dave Page df7de2ef71 Ensure RPMs & DEBs depend on matching versions of each other. Fixes #6250 2021-02-19 10:09:41 +00:00
Pradip Parkale 731ba32e81 1) Added SSL support for creating a subscription. Fixes #6201
2) Fixed an issue where the user is not able to create the subscription. Fixes #6230
3) Fixed a couple of issues raised during testing of logical replication.
2021-02-19 14:56:45 +05:30
Aditya Toshniwal 32197a8405 Fix explain plan and geometry viewer issue. It's a regression of SonarQube fixes. Fixes #6239 2021-02-19 14:29:43 +05:30
Akshay Joshi 2570f7d75c Fixed an issue where the user can't change the connection timeout setting if the fixed port number is enabled. Fixes #6249 2021-02-19 14:24:16 +05:30
Nikhil Mohite f65eb546b7 Fixed codemirror black screen issue on OSX. 2021-02-19 11:14:49 +05:30
Dave Page aeb42b1059 A little code tidying. 2021-02-18 16:13:45 +00:00
Dave Page 0d3cd2d466 Update supported platforms list. 2021-02-18 13:18:43 +00:00
Akshay Joshi 76217ffa8f Fixed ERDTables API test case. 2021-02-18 14:23:30 +05:30
Nidhi Bhammar b27a884bda Documentation of Logical Replication. Fixes #6145 2021-02-18 11:37:56 +05:30
Dave Page 85d1459372 The source location for cacert.pem has changed. 2021-02-17 15:43:02 +00:00
Pradip Parkale e5a91d30bf Fixed API test cases. 2021-02-15 18:29:49 +05:30
Akshay Joshi 3fc0cc3e92 Fixed SonarQube issues 2021-02-15 17:31:20 +05:30
Pradip Parkale 44cc7a308a Added publication and subscription support in Schema Diff. Fixes #6153 2021-02-15 16:05:40 +05:30
Aditya Toshniwal c1e80ac38a Fixed an issue where the ERD image is not properly downloaded. Fixes #6197 2021-02-15 15:24:57 +05:30
Nidhi Bhammar be090552f8 Documentation of Quick Search support. Fixes #6196 2021-02-15 14:56:50 +05:30
Dave Page e54ccb1302 Fix library path rewriting to avoid an issue with Cryptogrpahy's Rust module as described at https://github.com/PyO3/setuptools-rust/issues/106 2021-02-10 13:28:16 +00:00
Rahul Shirsat 2036e9d9a8 Fixed an issue where the user is unable to update column-level privileges from the security tab. Fixes #6117 2021-02-10 17:56:26 +05:30
Nikhil Mohite 1b850ff616 Fixed an issue where strikeout is getting removed on scrolling of index column of the table.
refs #6157
2021-02-10 17:40:54 +05:30
Aditya Toshniwal a5a83da045 Fixed an issue where preview images for the themes are not visible.
refs #6207
2021-02-10 17:40:54 +05:30
Dave Page 751b6c28b5 libtool is required for the container appbuild now. 2021-02-10 10:21:12 +00:00
Yogesh Mahajan 4c660f2155 Fixed an issue where roles are not deleted after API test execution. 2021-02-10 13:50:16 +05:30
Aditya Toshniwal 701f21186b Remove 'imagemin-gifsicle' package which is used to compress gif images. The latest version of imagemin-gifsicle requires the binaries to be built from the source. 2021-02-10 13:46:42 +05:30
Aditya Toshniwal 1317e4254b Updated the JS dependencies to the latest
1) Migrate from webpack 4 to webpack 5. This had a lot of breaking changes,
   so updated multiple webpack plugins and changed the config accordingly.
2) Replaced iconfont-webpack-plugin with a more maintained webfonts-loader.
3) Replaced deprecated babel-eslint with @babel/eslint-parser.
4) Replaced optimize-css-assets-webpack-plugin with a more maintained css-minimizer-webpack-plugin.
5) Updated all other JS packages and made the required code changes.

Fixes #6207
2021-02-10 12:47:52 +05:30
Dave Page 589663d7d9 Fix filenames. 2021-02-09 16:15:13 +00:00
Dave Page 884d9db54b A bunch of size optimisation for the container.
The new Rust requirement for the Cryptography module bloated it significantly.
2021-02-09 13:12:26 +00:00
Aditya Toshniwal 617440e1db Ensure that ajax request for Dashboard, Statistics, Dependencies, and Dependents
should not be raised until the panel will be in focus.

refs #5091
2021-02-09 15:31:26 +05:30
Akshay Joshi 5372467569 Use 'sys.executable' to get the absolute path of the executable binary for the Python interpreter instead of existing complex logic. 2021-02-09 15:27:12 +05:30
Yogesh Mahajan 9089750e21 Fixed feature test failures. 2021-02-08 16:43:34 +05:30
Dave Page 2f9a29f663 Handle the new Rust dependency in the Python Cryptography module. 2021-02-08 11:13:29 +00:00
Dave Page 447a1c9dd7 Update Docker container build to handle the new Rust requirement in thePython Cryptography module. 2021-02-08 11:00:41 +00:00
Dave Page 530eb3972b Convert READMEs to lightly formatted markdown, so they display nicely on Github etc. 2021-02-05 16:18:50 +00:00
Dave Page 5d098fe4b0 Remove a few files from the appbundle that aren't required. 2021-02-05 12:51:27 +00:00
Akshay Joshi 3a50c17110 Ensure that the pgAdmin server should not be closed if the user clicks on the Cancel button of the 'Leave site' message box. 2021-02-05 14:41:23 +05:30
Nikhil Mohite 85b40ee4f0 Fixed an issue where the user unable to change the background color for a server. Fixes #6178 2021-02-05 14:15:37 +05:30
Nikhil Mohite 9e85fb3de3 Fixed an issue where strike-through is not visible for rows selected for deletion after scrolling. Fixes #6157 2021-02-05 13:57:35 +05:30
Aditya Toshniwal 181bec62ce Fixed API test cases by making the connection id unique for ERD. 2021-02-04 16:14:55 +05:30
Akshay Joshi 9c7691c891 Fixed an issue where utility(Backup, Maintenance, ...) jobs are failing when the log level is set to DEBUG. Fixes #6208 2021-02-04 14:50:26 +05:30
Nikhil Mohite 14036b7aeb Fixed an issue where the focus is not properly set on the filter text editor after closing the error dialog. Fixes #5809 2021-02-04 11:45:16 +05:30
Nikhil Mohite 02c3863e8c Fixed an issue where shared server entries not getting deleted from SQLite database if the user gets deleted. Fixes #6143 2021-02-04 11:31:39 +05:30
Dave Page 6683522491 Try to make the NWJS download a little more reliable. 2021-02-03 13:00:25 +00:00
Aditya Toshniwal ee679e39e5 Use unique database name in ERD API test cases. 2021-02-03 16:49:17 +05:30
Dave Page db1eb75298 Don't include unnecessary doc files in the build. 2021-02-03 11:17:43 +00:00
Dave Page cb3801a5e8 Upgrade pip in a windows compatible way. 2021-02-03 10:47:48 +00:00
Aditya Toshniwal 73b6b95fbc Make Statistics, Dependencies, Dependants tabs closable and the user can add them back using the 'Add panel' option. Fixes #5091 2021-02-03 12:46:32 +05:30
Aditya Toshniwal 18f055fa5e 1) Ensure that all the python packages will take the latest until a major version.
2) Removed few packages which were dependencies of some other package.
2021-02-03 12:29:57 +05:30
Pramod Ahire 9e90350e44 Fixed jasmine test cases and added some missing messages for disabled menus. 2021-02-03 12:15:37 +05:30
Dave Page 65d9f88c63 Wait up to 30 minutes for notarisation - it can be very slow! 2021-02-02 16:59:58 +00:00
Akshay Joshi eca8e706dd Fixed SearchObjectsApiSearch test cases failed for EPAS 9.5 and 9.6 2021-02-02 19:47:06 +05:30
Dave Page b41557b54b Instead of rotating logs, don't write them to the container in the first place.
This is inline with container best practices (logs go to the container console).

Fixes #6170
2021-02-02 13:45:49 +00:00
Dave Page 0ccf2dad22 Use unzip to properly unpack nwjs. 2021-02-02 12:17:14 +00:00
Dave Page 2097d37f76 Wait longer for notarisation results. 2021-02-02 11:44:52 +00:00
Dave Page 0ca4426dd0 Move the macOS notarization into the build system and out of Jenkins. 2021-02-02 11:20:18 +00:00
Dave Page bc3c857b35 Ensure libatomic is installed. Fixes #6198 2021-02-02 09:40:08 +00:00
Pramod Ahire b948f43dda Added Quick Search functionality for menu items and help articles. Fixes #6148 2021-02-02 14:47:58 +05:30
Khushboo Vashi f7214b7cfe Fixed dependency tab loading issue when database name having special characters.
refs #6087
2021-02-02 11:49:51 +05:30
Aditya Toshniwal 75f887f5dc Ensure that ERD throws a warning before closing unsaved changes if open in a new tab. Fixes #6193 2021-02-02 11:47:10 +05:30
Dave Page e10dd6a80f Rotate the logfile in the container distribution. Fixes #6170 2021-02-01 17:35:23 +00:00
Dave Page 960433dd90 Use the latest Gunicorn. 2021-02-01 17:29:06 +00:00
Dave Page 32e3da7857 Make sure pgAdmin can find the root certificates for upgrade checks. 2021-02-01 17:26:39 +00:00
Dave Page 2a4ba132ad Remove the PG 9.5 utilities, as it'll be out of support by the next release. 2021-02-01 17:20:24 +00:00
Dave Page 6e7ca8c4b0 Remove some unnecessary files from the doc build to save space. 2021-02-01 16:55:03 +00:00
Dave Page 7dc6181d1e Ensure the bundle identifier matches what's in Info.plist. 2021-02-01 15:19:10 +00:00
Dave Page 921c0ac71a Make sure the doc builder has the dependencies it needs. 2021-02-01 10:52:41 +00:00
Dave Page ad656a9d41 Use the same retry logic we use on Linux for grabbing nwjs. 2021-02-01 10:48:52 +00:00
Dave Page 56cc1f0aaf Default to Python 3.9.1 2021-02-01 10:02:19 +00:00
Pradip Parkale bf56a6723b Added support for Logical Replication. Fixes #5912 2021-02-01 15:12:43 +05:30
Akshay Joshi 179bac3fd0 Fixed API test cases failed due to SonarQube fixes. 2021-01-31 18:19:14 +05:30
Dave Page 08df09af96 Limit the upgrade check to run once per day. Fixes #6187 2021-01-29 16:01:35 +00:00
Dave Page 3c1dc18656 Fix typo 2021-01-29 15:40:23 +00:00
Dave Page 12276b6033 Fix typo 2021-01-29 15:34:51 +00:00
Dave Page a12a02cc14 We need python3 to be the default for building. 2021-01-29 10:31:29 +00:00
Dave Page 740d411524 Use Python3 to create the Python env. 2021-01-29 10:19:09 +00:00
Akshay Joshi 2e68c6ff75 Fixed Definition list ends without a blank line; unexpected unindent. 2021-01-29 14:56:18 +05:30
Akshay Joshi 102ffd141c Implemented runtime using NWjs to open pgAdmin4 in a standalone window
instead of the system tray and web browser. Used NWjs to get rid of QT
and C++. Fixes #5967

Use cheroot as the default production server for pgAdmin4. Fixes #5017
2021-01-29 13:38:27 +05:30
Aditya Toshniwal a0271c7656 Fixed an issue while downloading ERD images in Safari and Firefox. Fixes #6177 2021-01-29 12:19:24 +05:30
Akshay Joshi 358af42c50 Fixed an issue where the dependencies tab showing multiple owners for the objects having shared dependencies. Fixes #6087 2021-01-29 12:10:21 +05:30
Aditya Toshniwal 48e257e5af 1) Fixed an issue where Zoom to fit button only works if the diagram is larger than the canvas. Fixes #6163
2) Ensure that the diagram should not vanish entirely if zooming out too far in ERD. Fixes #6164
3) Fixed an issue where Generate SQL displayed twice in the ERD tool. Fixes #6179
4) Updated missing documentation for the 'Download Image' option in ERD. Fixes #6180
2021-01-29 11:54:50 +05:30
Nikhil Mohite 36f76f5e2c Fixed autocomplete issue where it is not showing any suggestions if the schema name contains escape characters. Fixes #6045. 2021-01-29 11:45:38 +05:30
Rahul Shirsat ab642344d4 Ensure that username should be visible in the 'Connect to Server' popup when service and user name both specified. Fixes #5871 2021-01-29 11:32:27 +05:30
Rahul Shirsat e230787f21 Fixed SonarQube issues. 2021-01-29 11:06:59 +05:30
Akshay Joshi b563040cf3 Ensure that the Flask-Security-Too version should be less than 4.0.0 2021-01-27 16:39:19 +05:30
Dave Page addcf2c6e2 Fix typo 2021-01-27 10:02:28 +00:00
Aditya Toshniwal 3f563d8cbf 1) Fixed an issue where the Save button is disabled due to the existing table check in ERD.
2) Fix warnings given by webpack.
2021-01-25 19:44:24 +05:30
Khushboo Vashi 88c0968cab Some minor updates to Kerberos documentation. 2021-01-25 19:32:53 +05:30
Akshay Joshi e5407ab2bd Update version for release. 2021-01-25 17:32:56 +05:30
Aditya Toshniwal 13db981445 Fixed following issues in ERD:
1) After opening an existing project, the first table is already selected but the edit, clone, delete buttons are disabled.
 2) ERD project title gets changed when 2 ERD projects are open & anyone of it edited.
 3) Closing the ERD tab does not ask for a confirmation pop-up.
 4) Shortcut for 'Show more/Fewer details' is missing.
 5) Deleting the primary key does not delete associated links.
 6) The long table & schema name are getting out of the box.
 7) The long table name in the notes pop-up needs re-alignment.
 8) The same table name present in ERD/canvas is allowed in Add Table dialogue. Added validation in the dialog.
 9) Download image option is added, but it is not perfect yet. Image icons (table, schema, etc.) are not showing up.
 10) Rename panel option should be disabled by default. It should be enabled for the tools which implement rename functionality.
 11) The Toolbar is not visible in Safari for the ERD tool.

refs #1802
2021-01-25 17:32:56 +05:30
Dave Page 446c2a19a5 Fix Windows build. 2021-01-25 09:09:36 +00:00
Identifier Anonymous 0e03712a85 Update Japanese translation. 2021-01-25 12:45:25 +05:30
Fred Escallier b18001ce57 Update French translation. 2021-01-25 12:43:14 +05:30
Domenico Sgarbossa f46cab6862 Update Italian translation. 2021-01-25 12:40:26 +05:30
Libor M 20c9082b8d Update Czech translation. 2021-01-25 12:38:15 +05:30
Nidhi Bhammar e20f26c500 Documentation of ERD Diagram support. Fixes #6152 2021-01-25 12:18:47 +05:30
Nidhi Bhammar 048c90a695 Documentation of Kerberos support. Fixes #6147 2021-01-25 12:11:08 +05:30
Akshay Joshi dca9745e97 Update message catalogs. 2021-01-22 20:04:45 +05:30
Khushboo Vashi 45fa74ae46 Updated Windows installer script for Kerberos support. 2021-01-21 16:29:03 +05:30
Akshay Joshi f92b0961ee Revert "Fixed an issue where shared server entries not getting deleted from SQLite database if the user gets deleted. Fixes #6143"
This reverts commit 57ed02a9aa.
2021-01-21 15:23:03 +05:30
Nikhil Mohite 57ed02a9aa Fixed an issue where shared server entries not getting deleted from SQLite database if the user gets deleted. Fixes #6143 2021-01-21 14:23:02 +05:30
Akshay Joshi 3e09f1bf40 Ensure that the current value of the sequence should be ignored while comparing using schema diff. Fixes #6144 2021-01-21 14:18:06 +05:30
Dave Page 91ca746c27 Fix menu text (the Query tool option doesn't open a dialogue, so should not have ...). 2021-01-20 15:52:34 +00:00
Dave Page a2f626046a Fix labels. 2021-01-20 15:47:41 +00:00
Dave Page 32cdfa2969 Include PostgreSQL 13 utilities in the container. Fixes #6162 2021-01-20 13:17:27 +00:00
Khushboo Vashi c71315f8cd 1) Added RPM/DEB dependency for Kerberos to the server package.
2) Handle the OSError while importing the gssapi, it fixes the Windows error.

refs #5457
2021-01-20 18:09:07 +05:30
Aditya Toshniwal 57a2559f11 1) Fixes the broken explain GUI test case.
2) Displays a tooltip "Click for details..." on hover over explain plan nodes.

refs #5488
2021-01-20 17:49:23 +05:30
Dave Page 850afd7402 Add a container option (PGADMIN_DISABLE_POSTFIX) to disable the Postfix server. 2021-01-20 11:50:05 +00:00
Dave Page ddf7f04c94 Update instructions to include KfW build. 2021-01-20 11:37:12 +00:00
Khushboo Vashi 9bee91b6f6 1) Fixed an issue where the Save button is enabled by default in Macro. Fixes #5905
2) Remove extra line after Manage Macros menu while clearing all macros. Fixes #5906
3) Ensure that 'Clear All Rows' should not work if there is no existing macro available and the user does not specify any value. Fixes #5907
4) Fixed an issue where the server is disconnected error message displayed if the user creates Macro with invalid SQL. Fixes #5929
2021-01-20 13:52:00 +05:30
Rahul Shirsat b3ca172f3a Fixed an issue of deleting records when the user tries to delete multiple records. Fixes #6098 2021-01-20 12:39:12 +05:30
Akshay Joshi 9fa29457a4 Update copyright notice for ERD and Kerberos files. 2021-01-19 16:22:53 +05:30
Akshay Joshi 459c6ab796 1) Handle the version conflict exception in dependency inventory.
2) Update Dependencies.
2021-01-19 16:18:09 +05:30
Nikhil Mohite da9f9017a9 Fixed cognitive complexity reported by SonarQube. 2021-01-19 13:34:14 +05:30
Nikhil Mohite 94d2ad9584 Fixed API test cases for Kerberose. 2021-01-19 13:28:55 +05:30
Aditya Toshniwal 9229156cf6 One more attempt to fix jasmine test cases of ERD Tool. 2021-01-18 17:14:19 +05:30
Aditya Toshniwal 02f9b72d3e Fixed jasmine test cases of ERD Tool. 2021-01-18 16:39:58 +05:30
Khushboo Vashi c0ef0a893d 1) Added support for Kerberos authentication, using SPNEGO to forward the Kerberos tickets through a browser. Fixes #5457
2) Fixed incorrect log information for AUTHENTICATION_SOURCES. Fixes #5829
2021-01-18 16:32:10 +05:30
Huang Jun a60cfd3cc3 Fixed an issue while checking the major version of servers in schema diff. 2021-01-18 14:40:07 +05:30
Nikhil Mohite d4a3e4d92c Fixed issues reported by SonarQube. 2021-01-18 13:02:19 +05:30
Aditya Toshniwal 5afa4f1995 Remove few dependencies which are not required for ERD Tool. 2021-01-18 12:53:58 +05:30
Aditya Toshniwal 0c8226ff39 Added ERD Diagram support with basic table fields, primary key, foreign key, and DDL SQL generation. Fixes #1802 2021-01-16 17:06:50 +05:30
Nikhil Mohite 065bda37b4 Added informative message when there is no difference found for schema diff. Fixes #6122 2021-01-15 14:03:22 +05:30
Nikhil Mohite a2edf317a9 Ensure that the user should be able to specify an older date for the account expiration of the role/user. Fixes #6120 2021-01-15 11:38:08 +05:30
Akshay Joshi f86f58dc56 Revert "Ensure that the account expiration date for role/user can’t be older than the current date. Fixes #6120"
This reverts commit 9a47e574e3.
2021-01-14 14:47:52 +05:30
Akshay Joshi f0debdd513 Revert "1) Added support for Kerberos authentication, using SPNEGO to forward the Kerberos tickets through a browser. Fixes #5457"
This reverts commit 6ead597b43.
2021-01-14 14:46:59 +05:30
Khushboo Vashi 6ead597b43 1) Added support for Kerberos authentication, using SPNEGO to forward the Kerberos tickets through a browser. Fixes #5457
2) Fixed incorrect log information for AUTHENTICATION_SOURCES. Fixes #5829
2021-01-14 13:46:48 +05:30
Nikhil Mohite 9a47e574e3 Ensure that the account expiration date for role/user can’t be older than the current date. Fixes #6120 2021-01-14 12:09:03 +05:30
Dave Page 0bd77937de Timestamp servers are few and far between now :-/ 2021-01-13 15:02:54 +00:00
Dave Page 6a43c3d90b Use a working timestamp server. 2021-01-13 11:40:11 +00:00
Akshay Joshi 9dd357a9ee Fixed syntax error in print function 2021-01-13 16:03:28 +05:30
Nikhil Mohite 1a756efe82 Fixed an issue where Non-admin user is unable to view shared server created using service. Fixes #6075 2021-01-13 12:18:16 +05:30
Rahul Shirsat 18e4b30634 Reverting fix for #4892, updated the RM with the workaround. 2021-01-13 11:05:46 +05:30
Aditya Toshniwal 6589f82e77 Improve the explain plan details by showing popup instead of tooltip on clicking of the specified node. Fixes #5488 2021-01-12 16:43:30 +05:30
Huang, Jun 3f089f31a3 Fixed an issue where target connection is wrong while checking version compatibility in schema diff. 2021-01-12 15:09:57 +05:30
Nikhil Mohite 0fcfe63092 Fixed an issue on refreshing files in Query Tool. Fixes #6069 2021-01-11 17:40:13 +05:30
Rahul Shirsat d55555c544 Fixed an issue where sequences are not created. Fixes #6128
refs #6084
2021-01-11 17:29:08 +05:30
Akshay Joshi 90004119af Ensure that verbose logs should be visible for Utility(Backup, Maintenance) jobs. Fixes #6140 2021-01-11 16:35:44 +05:30
Nikhil Mohite f8497d4e7a Fixed an issue where the database list in the new connection window is not visible. Fixes #6121 2021-01-11 13:03:15 +05:30
Akshay Joshi eb3cd689a1 1) Update release date.
2) Update copyright notice.
2021-01-07 17:05:56 +05:30
Dave Page 3687472201 The qt5-default package has been deprecated from Debian Bullseye. 2021-01-07 11:14:46 +00:00
Akshay Joshi b372f08a59 Update copyright notices for 2021 2021-01-04 15:34:45 +05:30
Aditya Toshniwal 5198a881b7 Added 'Count Rows' option to the partition sub tables. Fixes #5282 2021-01-04 15:25:05 +05:30
Aditya Toshniwal 233736897d Added 'CREATE TABLE' SQL missed in the last patch for #5571
refs #5571
2021-01-04 15:06:28 +05:30
Nikhil Mohite cd5243ac6d Fixed RESQL test cases for schema 2020-12-31 13:54:19 +05:30
Yogesh Mahajan d1f5511566 Improve code coverage and API test cases for pgAgent. Fixes #5338 2020-12-31 13:52:14 +05:30
Nikhil Mohite 6fce58f2ad Updated Flask-BabelEx to the latest. Fixes #5997 2020-12-31 13:48:35 +05:30
Nikhil Mohite 26bbc0e877 Fixed RESQL test cases for Column. 2020-12-30 12:25:07 +05:30
Akshay Joshi 98b7603ebd Close query tool connection for API test cases. 2020-12-25 18:32:01 +05:30
Aditya Toshniwal f9087475d4 Fixed RESQL test cases for exclusion constraints.
refs #5571
2020-12-24 14:03:07 +05:30
Nikhil Mohite dbb4a46d46 Fixed accessibility issues in various dialogs. Fixes #6077 2020-12-24 13:26:25 +05:30
Akshay Joshi 3012778def Updated deployment documentation, refer correctly to uWSGI where Gunicorn had been referenced. Fixes #6096
Patch By: Thomas Levine
2020-12-24 13:20:08 +05:30
Rahul Shirsat 4c9853f10d Fixed an issue where pressing the back button will show another instance of the main page inside of the Query Tool tab. Fixes #4892 2020-12-24 13:13:57 +05:30
Aditya Toshniwal 5448de2d3f Added support for expression in exclusion constraints. Fixes #5571 2020-12-24 12:50:57 +05:30
Nikhil Mohite a92595012f Fixed extra parentheses issue around joins for Views. Fixes #6061 2020-12-23 13:02:16 +05:30
Nikhil Mohite c933771016 Fixed accessibility issues in schema diff module. Fixes #6065 2020-12-23 12:57:16 +05:30
Rahul Shirsat ed5fc20ee2 Fixed TypeError exception in schema diff when selected any identical object. Fixes #6084 2020-12-21 15:06:01 +05:30
Nikhil Mohite a0ff0e30fb Fixed Debugger API test cases.
refs #5343
2020-12-17 18:59:44 +05:30
Rahul Shirsat 3def9792be Added appropriate help message and a placeholder for letting users know about the account password expiry for Login/Group Role. Fixes #5973 2020-12-17 12:02:32 +05:30
Nikhil Mohite a7b8d77ed7 Fixed an issue where the state of the Save File icon does not match the dirty editor indicator. Fixes #6046 2020-12-17 11:37:03 +05:30
Rahul Shirsat cb0a914099 Ensure that the 'template1' database should not be visible after pg_upgrade. Fixes #5875 2020-12-16 11:37:19 +05:30
Akshay Joshi 21333490ef 1. Added check to skip debugger test case if the plugin is not installed.
2. Added code to delete the existing "pldbgapi" extension and create a new extension.
3. Updated a few test cases that are falling on specific servers.
4. Fixed test cases for pgAgent.

Fixed by: Nikhil & Yogesh
2020-12-16 11:25:16 +05:30
Akshay Joshi 5f5818ba78 Updated mimetype from 'text/javascript' to 'application/javascript' as 'text/javascript' is obsolete. Fixes #6079 2020-12-14 12:34:19 +05:30
Akshay Joshi c4d9ef9210 Added connected pgAdmin user and connection name in the log file. Fixes #6052
Patch By: Nico T
2020-12-14 12:24:06 +05:30
Nikhil Mohite 52780079f3 Fixed an issue where the dirty indicator stays active even if all changes were undone. Fixes #6047 2020-12-14 12:02:02 +05:30
Rahul Shirsat 6475a70514 Ensure that the macro query result should be download properly. Fixes #5965 2020-12-14 11:58:53 +05:30
Akshay Joshi 296d22ad83 Updated version of 'sqlparse' as pgcli updated and tested it. 2020-12-14 11:39:50 +05:30
Nikhil Mohite c79614786f Ensure that the rename panel should be disabled when the SQL file opened in the query tool. Fixes #6058 2020-12-10 18:13:04 +05:30
Nikhil Mohite c7ae5024d5 Added random function name generation logic for the debugger test cases. 2020-12-09 13:36:52 +05:30
Akshay Joshi f403e61b66 Fixed Windows issue with the combination of Python 3.8, bcrypt 3.1.7, and Cryptography 3.0 2020-12-09 13:03:28 +05:30
Akshay Joshi 86fb879a0e No success by lowering down the Cryptography version, so reverting back to the last changes. 2020-12-08 19:13:04 +05:30
Akshay Joshi ab5632d5eb One more attempt to fix Windows build by lower down the version of Cryptography. 2020-12-08 18:17:09 +05:30
Akshay Joshi eee23aa642 Fixed DLL load failed while importing bcrypt. Fixes #6072 2020-12-08 14:40:37 +05:30
Akshay Joshi bb25e85834 Update version for release. 2020-12-07 15:51:22 +05:30
Rahul Shirsat 375e2e0d13 Fixed minor issue of the add-folder icon in the file manager. 2020-12-07 15:48:11 +05:30
Nikhil Mohite 9450065850 1. Resolved the issues related to the database connection.
2. Updated the create "pldbgapi" extension for the debugger.

refs #5343
2020-12-07 15:44:56 +05:30
Fred Escallier 98ce8a298a Update French translation. 2020-12-07 10:53:02 +05:30
Identifier Anonymous 7286d13d19 Update Japanese translation. 2020-12-06 19:24:45 +05:30
Domenico Sgarbossa 530cc19f58 Update Italian translation. 2020-12-06 19:20:15 +05:30
Libor M bfa26be7f0 Update Czech translation. 2020-12-06 19:17:51 +05:30
Aditya Toshniwal ca4db8871e Ensure that code coverage should cover class and function declarations. Fixes #6062 2020-12-06 19:16:17 +05:30
Akshay Joshi 146da066b0 Update message catalogs. 2020-12-04 17:59:59 +05:30
Nikhil Mohite 12dc2c418d Fixed documentation issue where JSON is not valid. Fixes #5982 2020-12-03 10:46:36 +05:30
Nikhil Mohite 1c5cb63aff Fixed an issue where shared servers import is failing. Fixes #6022 2020-12-03 10:40:52 +05:30
Nikhil Mohite 794bd50ed1 Improve code coverage and API test cases for Debugger. Fixes #5343 2020-12-03 10:31:24 +05:30
Yogesh Mahajan 26b3bc3f74 Fixed an issue where an illegal argument is showing for trigger SQL when a trigger is created for View. Fixes #6003 2020-12-02 10:55:23 +05:30
Akshay Joshi 64e6570f00 Fixed an issue where schema diff doesn't show the result of compare if source schema has tables with RLS. Fixes #5998 2020-12-01 13:46:19 +05:30
Yogesh Mahajan 783b7516a7 Fixed false error is shown while adding a new foreign key from the table dialog when a foreign key already exists with Auto FK Index set to true. Fixes #5886 2020-12-01 11:35:01 +05:30
Nikhil Mohite abd0748a77 Ensure that dirty indicator (*) should not be visible when renaming the tabs. Fixes #5991 2020-12-01 11:28:10 +05:30
Nikhil Mohite fb51ef569e Fixed an issue where escape character is shown when the server/database name has some special characters. Fixes #5992 2020-12-01 11:19:07 +05:30
Yogesh Mahajan b54cf2edca Improve code coverage and API test cases for Foreign Tables. Fixes #5328 2020-11-26 11:52:06 +05:30
Aditya Toshniwal 55e50144f3 Update the cryptography python package for Python 3.5 and above. Fixes #6033 2020-11-26 11:43:08 +05:30
Akshay Joshi a2f4628590 Explicitly set the mime-types so that a corrupted windows registry will not affect pgAdmin 4 to be load properly. 2020-11-23 11:46:09 +05:30
Yogesh Mahajan ce14696165 Improve code coverage and API test cases for Views and Materialized Views. Fixes #5337 2020-11-20 10:04:30 +05:30
Khushboo Vashi 29c3c0cf7f Fixed BatchProcessTest cases failing on Jenkins. 2020-11-19 18:09:35 +05:30
Rahul Shirsat 3e2a1c4eca Ensure that folder rename should work properly in Storage Manager. Fixes #5943 2020-11-19 10:33:05 +05:30
Nikhil Mohite 17ce84dd0a Fixed an issue where dynamic tab title has not applied the first time for debugger panel. Fixes #5978 2020-11-19 10:25:20 +05:30
Murtuza Zabuawala 5839e7cda8 Added validation in schema diff which will not allow the user to compare the same objects. 2020-11-12 18:08:40 +05:30
Nikhil Mohite ebf5e871e0 Fixed an issue where the debugger's custom tab title not applied when opened in the new browser tab. Fixes #5974 2020-11-12 17:59:13 +05:30
Nikhil Mohite 5370bb4515 Added the appropriate server icon based on the server type in the new connection dialog. Fixes #5983 2020-11-12 17:52:54 +05:30
Rahul Shirsat be386e77f2 1) Fixed an issue where the process watcher dialog throws an error for
the database server which is already removed. Fixes #5985
2) Fixed cognitive complexity reported by SonarQube.
2020-11-12 17:47:21 +05:30
Nikhil Mohite a026f339c3 Fixed cognitive complexity reported by SonarQube. 2020-11-12 17:20:58 +05:30
Akshay Joshi 552a1bfaa6 Update version for release. 2020-11-09 14:35:55 +05:30
Akshay Joshi 6089dcd09a Fixed 'positional format placeholders are unbalanced' error in translation. 2020-11-09 13:12:24 +05:30
Nikhil Mohite 64964f82cf Ensure that Grant Wizard should include foreign tables. Fixes #5959 2020-11-09 12:44:00 +05:30
navnath gadakh 3a38f6b147 Added ALLOWED_HOSTS support.
refs #5919
2020-11-09 12:35:19 +05:30
Akshay Joshi 1dca4313f7 Fixed an issue where Query Tool/View Data panel closed event is not registered for changes.
It's a regression of #4231.

refs #4231
2020-11-08 19:14:08 +05:30
Ma Yanhong f664b71565 Update Chinese translation. 2020-11-08 16:43:34 +05:30
Fred Escallier b12690703f Update French translation. 2020-11-08 16:35:43 +05:30
Identifier Anonymous 8a96e8a673 Update Japanese translation. 2020-11-08 16:33:23 +05:30
Libor M 31b0791ab9 Update Czech translation. 2020-11-08 16:31:24 +05:30
Domenico Sgarbossa 4486f4d3ab Update Italian translation. 2020-11-08 16:30:02 +05:30
Akshay Joshi 719b6e8c37 Update Dependencies. 2020-11-06 16:41:13 +05:30
Akshay Joshi 18bc7a6eaf Update message catalogs. 2020-11-06 16:38:40 +05:30
Akshay Joshi 9e2127b2a5 Removed ALLOWED_HOSTS support as it requires 'netaddr' which doesn't support Python 3.5 2020-11-05 12:43:11 +05:30
Nikhil Mohite 2793747d3c 1) Added support for dynamic tab size. Fixes #4231
2) Fixed an issue where a long file name is not visible on the process watcher dialog. Fixes #5950
2020-11-04 17:45:28 +05:30
Nidhi Bhammar 749ba4a25c Documentation of Storage Manager. Fixes #5938 2020-11-04 17:31:21 +05:30
Akshay Joshi e4823e9099 Fixed PEP8 2020-10-31 17:04:01 +05:30
Pradip Parkale 91c5ff4a90 Fixed feature test failure. 2020-10-31 17:00:05 +05:30
Pradip Parkale 25fcdab9db Fixed an issue where a mismatch in the value of 'Estimated row' for functions. Fixes #5914 2020-10-30 15:09:40 +05:30
Khushboo Vashi 14a5d05b80 Ensure that non-superuser should be able to debug the function. Fixes #5760 2020-10-30 15:03:18 +05:30
Rahul Shirsat 183c83f0d2 Fixed an issue where the validation error message is shown twice. Fixes #5736 2020-10-30 14:59:22 +05:30
Akshay Joshi df31fe7dc4 Updated schema diff script generation message as we have removed the Beta keyword. 2020-10-29 14:32:37 +05:30
Nidhi Bhammar 1126ee77ec Updated documentation for pgAgent. 2020-10-28 12:33:56 +05:30
Nikhil Mohite 6c723a7e43 Fixed an issue where connection to the server is on wait state if a different user is provided. Fixes #5953 2020-10-28 12:32:22 +05:30
Akshay Joshi 71a8c0f317 One more attempt to fix Jasmin test cases. 2020-10-27 18:05:30 +05:30
Akshay Joshi b76bb58378 Added support to compare schemas and databases in schema diff. Fixes #5891 2020-10-27 16:36:10 +05:30
Akshay Joshi 5284a1c66b Fixed API test cases. 2020-10-27 11:15:45 +05:30
Nikhil Mohite b5f9fffadd Fixed the following issues:
RM-4232:
1. If the user adds a percentage (other than for placeholders) then it is stripped off.
2. Backslash is getting removed in the connection string if we provide the backslash(\) in placeholders or the database name contains it.
3. If the user added only spaces( )in placeholders it is not getting reset to default values.

RM-4230:
1. Rename panel option is not working in the debugger.
2. Added Rename panel for schema diff.

Fixes #4232 #4230
2020-10-27 11:03:00 +05:30
Murtuza Zabuawala 892fb83907 Remove commented code. 2020-10-27 10:53:18 +05:30
Libor M 7648bd9646 Added missing gettext. 2020-10-27 10:51:35 +05:30
Nikhil Mohite c86a3d64fc Added support to rename query tool and debugger tabs. Fixes #4230
Fixed an issue where non-closeable tabs are getting closed. Fixes #5923
2020-10-23 17:16:31 +05:30
Rahul Shirsat c2ad97d0ab Added support to download utility files at the client-side. Fixes #3318 2020-10-23 16:14:55 +05:30
Pradip Parkale 7573fac29f Ensure that query history should be listed by date/time in descending order. Fixes #5842 2020-10-23 15:06:56 +05:30
Khushboo Vashi 9b4317fb25 Fixed Jasmine test cases. 2020-10-21 22:14:10 +05:30
Nikhil Mohite 275d13d40f Following issues have been resolved for the new connection feature:
1. Show servers with server groups in the dropdown.
  2. Highlighted current selected connection in the new connection dropdown.
  3. Notify the user before changing the connection.

refs #3794
2020-10-21 17:14:59 +05:30
Ganesh Jaybhay 08c4deba5a Added following security enhancements:
1) Added ALLOWED_HOSTS list to limit the host address.
  2) Added CSP and HSTS security header.
  3) Hide the webserver/ development framework version.

Fixes #5919
2020-10-20 17:14:45 +05:30
Pradip Parkale 3413a42af4 Ensure that some fields should be disabled for the trigger in edit mode. Fixes #4639
Fixed illegal argument issue in the trigger for EPAS servers. Fixes #5799
2020-10-20 16:18:34 +05:30
Pradip Parkale 7b9504bdfb Fixed an issue where the suffix for Toast table size is not visible in the Statistics tab. Fixes #5895 2020-10-20 15:57:32 +05:30
Nikhil Mohite 18cad32bd4 Added tab title placeholder for Query Tool, View/Edit Data, and Debugger. Fixes #4232 2020-10-20 15:41:54 +05:30
Aditya Toshniwal 38b90f7b00 Ensure that search object functionality works with case insensitive string. Fixes #5858 2020-10-15 16:17:54 +05:30
Khushboo Vashi 6addd207af Ensure that macros should be run on the older version of Safari and Chrome. Fixes #5911 2020-10-15 15:59:53 +05:30
Libor M 98817a718f Update Czech translation. 2020-10-15 15:52:30 +05:30
Akshay Joshi 9898e114f1 Update version for release. 2020-10-12 18:03:27 +05:30
Aditya Toshniwal 67242862c4 Fixed an issue where extensions are getting added multiple times when the user uses the "Save As" option.
refs #4855
2020-10-12 18:01:53 +05:30
Nikhil Mohite 2b7e3ce64e Fixed an issue on a new connection when the server is disconnected and we are trying to connect it using the new connection model. 2020-10-12 17:14:42 +05:30
Khushboo Vashi 49b139bb75 Added escape and unescape for the strings used in query tool and new connection support. Fixes #5899. 2020-10-12 16:20:33 +05:30
Nidhi Bhammar b11a0d50e6 Fixed documentation review comments for Macro support.
refs #5857
2020-10-12 16:13:34 +05:30
Domenico Sgarbossa 33e9b74388 Update Italian translation. 2020-10-12 14:09:17 +05:30
Fred Escallier cc282b3585 Update French translation. 2020-10-12 14:07:45 +05:30
Identifier Anonymous 92f9ad48a8 Update Japanese translation. 2020-10-12 14:05:44 +05:30
Pradip Parkale 1bb510cdd4 Fixed following issues in the function module:
1) The volatility option is not reflecting. It stays volatile always when creating the function.
2) Set "Returns as set" to true and enter estimated rows like 12. Now set returns as set to false and save.
   It gives ERROR: ROWS is not applicable when the function does not return a set.
   Need to clear estimated rows when returns as set is false.
3) If estimated rows are added and support function is selected then SQL looks ugly.

Fixes #5843
2020-10-12 14:01:04 +05:30
Nikhil Mohite fa267805c9 Fixed fg_color and bg_color issue for connection string on query tool.
refs #3794
2020-10-12 13:51:48 +05:30
Akshay Joshi 556278dbc5 Added support to view trigger function under the respective trigger node. Fixes #2519 2020-10-12 13:49:54 +05:30
Pradip Parkale 365ec0ba9f Fixed an issue where 'Rows X' column values were not visible properly for Explain Analyze in Dark theme. Fixes #5853. 2020-10-09 18:17:27 +05:30
Akshay Joshi 4587cf73c2 Update Dependencies. 2020-10-09 18:03:47 +05:30
Akshay Joshi 65aba21c14 Update message catalogs. 2020-10-09 18:00:25 +05:30
Akshay Joshi 0bf6e81faa Fixed linter error. 2020-10-09 12:09:23 +05:30
Khushboo Vashi f4d6290b50 Update the macro help link. 2020-10-09 11:52:46 +05:30
Aditya Toshniwal ca8dc42d14 Updated the packages and yarn.lock file. 2020-10-09 11:49:03 +05:30
Aditya Toshniwal a4e746c5a4 Ensure that '.sql' extension is added when saving a file with SQL format.
refs #4855
2020-10-09 11:46:32 +05:30
Nikhil Mohite 1c796720be Fixed the following issues for RM 3794:
1. Updated connection success message. (Added database name in the success message.)
2. Resolve issue of the mouse pointer and dropdown will show below the connection string only.
3. Added loader for both new connections and load existing connections.
4. Removed async: false for update connection.

refs #3794
2020-10-08 11:38:05 +05:30
Murtuza Zabuawala 483eeeca39 Added gettext and escape around Macro name and label. Fixes #5894 2020-10-08 11:23:45 +05:30
Akshay Joshi f27527a614 Fixed API test cases failed for PG 9.5 due to change in the order of ACL. 2020-10-07 08:41:21 +05:30
Nidhi Bhammar 609904cfb3 Added documentation for Macro support. Fixes #5857 2020-10-06 17:35:04 +05:30
Pradip Parkale 82e912ffad Fixed 'can't execute an empty query' message if the user change the option of Auto FK Index. Fixes #5835 2020-10-06 17:20:43 +05:30
Akshay Joshi 6c4049f29a Added RESQL/MSQL test cases for Functions. Fixes #5395
Initial patch sent by Nikhil Mohite.
2020-10-06 17:13:41 +05:30
Akshay Joshi 9466278be2 Fixed invalid literal issue when fetching dependencies for Materialized View. Fixed #5882 2020-10-05 17:53:47 +05:30
Pradip Parkale e4029cca04 Ensure that the user should be able to change the start value of the existing sequence. Fixes #5855 2020-10-05 16:38:16 +05:30
Akshay Joshi bcb2f833cd Fixed PEP8 2020-10-05 15:09:39 +05:30
Akshay Joshi a0a15fa643 Fixed feature tests for autocomplete. 2020-10-05 15:08:09 +05:30
Khushboo Vashi c28509ac28 Fixed an issue where the user is unable to change the macro name. Fixes #5885 2020-10-05 14:40:21 +05:30
Akshay Joshi 542be2b2d4 Fixed issues where the 'pg_pltemplate' system catalog is removed from PG 13 and it gives error while creating the language. 2020-10-05 14:35:48 +05:30
Pradip Parkale 9a77d4dc1a Allow users to modify the option settings of the procedure.
refs #5843
2020-10-05 09:02:27 +05:30
Akshay Joshi 558d25fabc Updated 'sqlparse' and 'pytz' module to the latest version. 2020-10-01 16:02:30 +05:30
Nikhil Mohite be7bb81a19 Allow user to change the database connection from an open query tool tab. Fixes #3794 2020-10-01 13:29:46 +05:30
Khushboo Vashi 228d4bb321 Fixed SQLAlchemy operation error with the boolean value as true/false for Python version < 3.7 2020-10-01 13:29:46 +05:30
Pradip Parkale 656e239e55 Fixed API test cases introduce in the commit for #5867.
refs #5867
2020-10-01 13:29:46 +05:30
Akshay Joshi 300de05a20 Merged the latest code of 'pgcli' used for the autocomplete feature. Fixes #5497 2020-10-01 13:29:46 +05:30
Dave Page 3f817494f8 Use PostgreSQL 13 libs. 2020-09-30 09:49:59 +01:00
Pradip Parkale b097cec45e Fixed an issue where some properties are not being updated correctly for the shared server. Fixes #5867 2020-09-30 12:29:59 +05:30
Akshay Joshi a707d818f5 Removed (Beta) keyword from Schema Diff and High Contrast theme. 2020-09-29 18:27:28 +05:30
Akshay Joshi 1c70a43b91 Fixed code smells 'Define a constant instead of duplicating this literal' reported by SonarQube. 2020-09-29 15:08:14 +05:30
Aditya Toshniwal c7c199210d Fixed an issue where file extension is stripped on renaming a file. Fixes #4855 2020-09-29 11:03:38 +05:30
Aditya Toshniwal 3e7cdcdf90 Ensure that 'ctrl + a' shortcut does not move the cursor in SQL editor. Fixes #5131 2020-09-29 10:56:57 +05:30
Aditya Toshniwal 1fc06b8d57 Added useful message when the explain plan is not used and empty. Fixes #4806 2020-09-28 17:51:59 +05:30
Azad Salahli 43f1953aa7 Fixed incorrect import in setup.py 2020-09-28 17:47:38 +05:30
Khushboo Vashi 4616a74029 Added Macro support. Fixes #1402 2020-09-28 15:26:45 +05:30
Akshay Joshi 952197f130 Added support to ignore the owner while comparing objects in the Schema Diff tool. Fixes #5200. 2020-09-28 15:22:46 +05:30
Akshay Joshi 68588fbb44 Fixed an issue where schema diff is showing identical table as different due to default vacuum settings. Fixes #5826 2020-09-24 13:24:25 +05:30
Pradip Parkale c1d04747a1 Ensure that the 'Remove Server' option should be visible in the context menu. Fixes #5861 2020-09-24 10:58:30 +05:30
Pradip Parkale f8611416ec Added the 'PARALLEL UNSAFE' option to the missing SQL files.
refs #5843
2020-09-24 10:47:42 +05:30
Pradip Parkale 2e55b1f660 Fixed an issue where the 'PARALLEL UNSAFE' option is missing from reverse engineering SQL of function/procedure node. Fixes #5843. 2020-09-23 13:21:50 +05:30
Aditya Toshniwal f3462e36a4 Fixed cognitive complexity issues reported by SonarQube. 2020-09-23 11:59:14 +05:30
Nikhil Mohite 43d97b0e6f Improve code coverage and API test cases for Functions. Fixes #5330 2020-09-22 14:43:46 +05:30
Pradip Parkale 458036ad6b Fixed an issue where the server is not able to connect using the service. Fixes #5841 2020-09-22 13:14:40 +05:30
Pradip Parkale 1ee9cddceb Ensure that the import/export feature should work with SSH Tunnel. Fixes #5739 2020-09-22 09:40:59 +05:30
Aditya Toshniwal ed3c692b1f Fixed an issue where the query tool is not fetching more than 1000 rows for the table does not have any primary key. Fixes #5845 2020-09-21 15:36:19 +05:30
Ganesh Jaybhay b0475566ca Fixed reverse engineering SQL where parenthesis is not properly arranged for View/MView definition. Fixes #5830 2020-09-21 11:05:56 +05:30
Akshay Joshi 3489f94ca7 Ensure that multiple extensions can be dropped from the properties tab. Fixes #5839. 2020-09-21 10:09:41 +05:30
Aditya Toshniwal 553be14000 Fixed an issue where a column is renamed and then removed, then the drop SQL query takes the wrong column name. Fixes #5807. 2020-09-21 09:40:45 +05:30
Aditya Toshniwal  a25e808e06 Remove maximum length on the password field in the server dialog. Fixes #5802 2020-09-17 20:21:00 +05:30
Aditya Toshniwal  bf183bdcff Change the explain plan SVG colors based on the theme. Fixed some minor color issues in the analysis tab. 2020-09-17 20:17:54 +05:30
Aditya Toshniwal  95a5b1e459 Some more accessibility fixes.
refs #5732
2020-09-17 20:16:38 +05:30
Murtuza Zabuawala  9e69e13468 Fixed typo in 'get_storage_directory' function. 2020-09-17 20:15:42 +05:30
Fred Escallier ae4924995a Update French translation. 2020-09-17 20:13:15 +05:30
Akshay Joshi 55b5080c77 Fixed and improve API test cases for the schema diff tool. Fixes #5417 2020-09-17 20:10:01 +05:30
3944 changed files with 174555 additions and 73018 deletions

No files matched your search

+8
View File
@@ -0,0 +1,8 @@
.git
web/node_modules
web/*.log
web/regression
web/**/tests/
.DS_Store
web/pgadmin/messages.pot
web/pgadmin/translations/??/LC_MESSAGES/messages.po
+7 -2
View File
@@ -19,11 +19,12 @@
/redhat-build
/src-build
/win-build
/win-temp
_build
/build-*
pgadmin4.log
pkg/win32/installer.iss
pkg/mac/codesign.conf
pkg/mac/codesign.confx
pkg/mac/framework.conf
runtime/.qmake.cache
runtime/.qmake.stash
@@ -51,4 +52,8 @@ auditjs.html
auditpy.txt
/venv/
.scannerwork/
web/coverage/
web/coverage/
web/.coverage
web/regression/.coverage
web/regression/covhtml/
web/regression/htmlcov/
+259 -1268
View File
File diff suppressed because it is too large. Load diff
+68 -69
View File
@@ -12,19 +12,22 @@
# and clean up the web/ source code
#########################################################################
FROM node:12-alpine3.11 AS app-builder
FROM alpine:3.13 AS app-builder
RUN apk add --no-cache \
autoconf \
automake \
bash \
g++ \
git \
libc6-compat \
libjpeg-turbo-dev \
libpng-dev \
libtool \
make \
nasm \
git \
nodejs \
yarn \
zlib-dev
# Create the /pgadmin4 directory and copy the source into it. Explicitly
@@ -41,15 +44,8 @@ RUN rm -rf /pgadmin4/web/*.log \
WORKDIR /pgadmin4/web
# Build the JS vendor code in the app-builder, and then remove the vendor source.
RUN npm install && \
npm audit fix && \
rm -f yarn.lock && \
yarn import && \
# Commented the below line to avoid vulnerability in lodash package.
# Refer https://www.npmjs.com/advisories/1523.
# Once fixed we will uncomment it.
# yarn audit && \
rm -f package-lock.json && \
RUN export CPPFLAGS="-DPNG_ARM_NEON_OPT=0" && \
yarn install && \
yarn run bundle && \
rm -rf node_modules \
yarn.lock \
@@ -60,28 +56,39 @@ RUN npm install && \
karma.conf.js \
./pgadmin/static/js/generated/.cache
#########################################################################
# Next, create the base environment for Python
#########################################################################
FROM alpine:3.13 as env-builder
# Install dependencies
COPY requirements.txt /
RUN apk add --no-cache \
make \
python3 \
py3-pip && \
apk add --no-cache --virtual build-deps \
build-base \
openssl-dev \
libffi-dev \
postgresql-dev \
krb5-dev \
rust \
cargo \
python3-dev && \
python3 -m venv --system-site-packages --without-pip /venv && \
/venv/bin/python3 -m pip install --no-cache-dir -r requirements.txt && \
apk del --no-cache build-deps
#########################################################################
# Now, create a documentation build container for the Sphinx docs
#########################################################################
FROM python:3.8-alpine3.11 as docs-builder
FROM env-builder as docs-builder
# Install only dependencies absolutely required for documentation building
RUN apk add --no-cache \
make \
build-base \
openssl-dev \
libffi-dev && \
pip install --no-cache-dir \
sphinx \
flask_security_too \
flask_paranoid \
python-dateutil \
flask_sqlalchemy \
flask_gravatar \
flask_migrate \
simplejson \
cryptography
# Install Sphinx
RUN /venv/bin/python3 -m pip install --no-cache-dir sphinx
# Copy the docs from the local tree. Explicitly remove any existing builds that
# may be present
@@ -90,26 +97,26 @@ COPY web /pgadmin4/web
RUN rm -rf /pgadmin4/docs/en_US/_build
# Build the docs
RUN LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 make -C /pgadmin4/docs/en_US -f Makefile.sphinx html
RUN LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 /venv/bin/sphinx-build /pgadmin4/docs/en_US /pgadmin4/docs/en_US/_build/html
# Cleanup unwanted files
RUN rm -rf /pgadmin4/docs/en_US/_build/html/.doctrees
RUN rm -rf /pgadmin4/docs/en_US/_build/html/_sources
RUN rm -rf /pgadmin4/docs/en_US/_build/html/_static/*.png
#########################################################################
# Create additional builders to get all of the PostgreSQL utilities
#########################################################################
FROM postgres:9.5-alpine as pg95-builder
FROM postgres:9.6-alpine as pg96-builder
FROM postgres:10-alpine as pg10-builder
FROM postgres:11-alpine as pg11-builder
FROM postgres:12-alpine as pg12-builder
FROM postgres:13-alpine as pg13-builder
FROM alpine:3.11 as tool-builder
FROM alpine:3.13 as tool-builder
# Copy the PG binaries
COPY --from=pg95-builder /usr/local/bin/pg_dump /usr/local/pgsql/pgsql-9.5/
COPY --from=pg95-builder /usr/local/bin/pg_dumpall /usr/local/pgsql/pgsql-9.5/
COPY --from=pg95-builder /usr/local/bin/pg_restore /usr/local/pgsql/pgsql-9.5/
COPY --from=pg95-builder /usr/local/bin/psql /usr/local/pgsql/pgsql-9.5/
COPY --from=pg96-builder /usr/local/bin/pg_dump /usr/local/pgsql/pgsql-9.6/
COPY --from=pg96-builder /usr/local/bin/pg_dumpall /usr/local/pgsql/pgsql-9.6/
COPY --from=pg96-builder /usr/local/bin/pg_restore /usr/local/pgsql/pgsql-9.6/
@@ -130,12 +137,21 @@ COPY --from=pg12-builder /usr/local/bin/pg_dumpall /usr/local/pgsql/pgsql-12/
COPY --from=pg12-builder /usr/local/bin/pg_restore /usr/local/pgsql/pgsql-12/
COPY --from=pg12-builder /usr/local/bin/psql /usr/local/pgsql/pgsql-12/
COPY --from=pg13-builder /usr/local/bin/pg_dump /usr/local/pgsql/pgsql-13/
COPY --from=pg13-builder /usr/local/bin/pg_dumpall /usr/local/pgsql/pgsql-13/
COPY --from=pg13-builder /usr/local/bin/pg_restore /usr/local/pgsql/pgsql-13/
COPY --from=pg13-builder /usr/local/bin/psql /usr/local/pgsql/pgsql-13/
#########################################################################
# Assemble everything into the final container.
#########################################################################
FROM python:3.8-alpine3.11
FROM alpine:3.13
# Copy in the Python packages
COPY --from=env-builder /venv /venv
# Copy in the tools
COPY --from=tool-builder /usr/local/pgsql /usr/local/
WORKDIR /pgadmin4
@@ -144,53 +160,36 @@ ENV PYTHONPATH=/pgadmin4
# Copy in the code and docs
COPY --from=app-builder /pgadmin4/web /pgadmin4
COPY --from=docs-builder /pgadmin4/docs/en_US/_build/html/ /pgadmin4/docs
COPY requirements.txt /pgadmin4/requirements.txt
COPY pkg/docker/run_pgadmin.py /pgadmin4
COPY pkg/docker/gunicorn_config.py /pgadmin4
COPY pkg/docker/entrypoint.sh /entrypoint.sh
# License files
COPY LICENSE /pgadmin4/LICENSE
COPY DEPENDENCIES /pgadmin4/DEPENDENCIES
# Install build-dependencies, build & install C extensions and purge deps in
# one RUN step
RUN apk add --no-cache --virtual \
build-deps \
build-base \
postgresql-dev \
libffi-dev \
linux-headers && \
apk add \
# Install runtime dependencies and configure everything in one RUN step
RUN apk add \
python3 \
py3-pip \
postfix \
postgresql-client \
postgresql-libs \
krb5-libs \
shadow \
sudo \
libedit \
libcap && \
pip install --upgrade pip && \
pip install --no-cache-dir -r requirements.txt && \
pip install --no-cache-dir gunicorn==19.9.0 && \
apk del --no-cache build-deps && \
echo "pgadmin ALL = NOPASSWD: /usr/sbin/postfix start" > /etc/sudoers.d/postfix
# We need the v12 libpq, which is only in the 'edge' build of Alpine at present
COPY --from=pg12-builder /usr/local/lib/libpq.so.5.12 /usr/lib/
RUN ln -sf /usr/lib/libpq.so.5.12 /usr/lib/libpq.so.5
# Copy the runner script
COPY pkg/docker/run_pgadmin.py /pgadmin4
COPY pkg/docker/entrypoint.sh /entrypoint.sh
# Precompile and optimize python code to save time and space on startup
RUN python -O -m compileall -x node_modules /pgadmin4
RUN groupadd -g 5050 pgadmin && \
/venv/bin/python3 -m pip install --no-cache-dir gunicorn && \
find / -type d -name '__pycache__' -exec rm -rf {} + && \
groupadd -g 5050 pgadmin && \
useradd -r -u 5050 -g pgadmin pgadmin && \
mkdir -p /var/lib/pgadmin && \
chown pgadmin:pgadmin /var/lib/pgadmin && \
mkdir -p /var/log/pgadmin && \
chown pgadmin:pgadmin /var/log/pgadmin && \
touch /pgadmin4/config_distro.py && \
chown pgadmin:pgadmin /pgadmin4/config_distro.py && \
setcap CAP_NET_BIND_SERVICE=+eip /usr/local/bin/python3.8
setcap CAP_NET_BIND_SERVICE=+eip /usr/bin/python3.8 && \
echo "pgadmin ALL = NOPASSWD: /usr/sbin/postfix start" > /etc/sudoers.d/postfix
USER pgadmin
# Finish up
+1 -1
View File
@@ -1,6 +1,6 @@
pgAdmin 4
Copyright (C) 2013 - 2020, The pgAdmin Development Team
Copyright (C) 2013 - 2021, The pgAdmin Development Team
Permission to use, copy, modify, and distribute this software and its
documentation for any purpose, without fee, and without a written agreement is
+111 -121
View File
@@ -3,6 +3,7 @@ SETLOCAL
SET WD=%CD%
SET "BUILDROOT=%WD%\win-build"
SET "TMPDIR=%WD%\win-temp"
SET "DISTROOT=%WD%\dist"
SET CMDOPTIONS=""
@@ -18,19 +19,13 @@ IF "%1" == "clean" (
EXIT /B %ERRORLEVEL%
)
set "ARCHITECTURE=x64"
if "%Platform%" == "X86" (
set "ARCHITECTURE=x86"
)
REM Main build sequence
CALL :SET_ENVIRONMENT
CALL :VALIDATE_ENVIRONMENT || EXIT /B 1
CALL :CLEAN || EXIT /B 1
CALL :CREATE_VIRTUAL_ENV || EXIT /B 1
CALL :CREATE_RUNTIME_ENV || EXIT /B 1
CALL :CREATE_PYTHON_ENV || EXIT /B 1
CALL :CLEANUP_ENV || EXIT /B 1
CALL :CREATE_RUNTIME_ENV || EXIT /B 1
CALL :CREATE_INSTALLER || EXIT /B 1
CALL :SIGN_INSTALLER || EXIT /B 1
@@ -42,7 +37,10 @@ REM Main build sequence Ends
ECHO Removing build directory...
IF EXIST "%BUILDROOT%" RD "%BUILDROOT%" /S /Q > nul || EXIT /B 1
ECHO Removing temp build directory...
ECHO Removing tmp directory...
IF EXIST "%TMPDIR%" RD "%TMPDIR%" /S /Q > nul || EXIT /B 1
ECHO Removing installer build directory...
IF EXIST "%WD%\pkg\win32\Output" rd "%WD%\pkg\win32\Output" /S /Q > nul || EXIT /B 1
ECHO Removing installer configuration script...
@@ -54,14 +52,14 @@ REM Main build sequence Ends
:SET_ENVIRONMENT
ECHO Configuring the environment...
IF "%PGADMIN_PYTHON_DIR%" == "" SET "PGADMIN_PYTHON_DIR=C:\Python38"
IF "%PGADMIN_QT_DIR%" == "" SET "PGADMIN_QT_DIR=C:\Qt\5.14.2\msvc2017_64"
IF "%PGADMIN_KRB5_DIR%" == "" SET "PGADMIN_KRB5_DIR=C:\Program Files\MIT\Kerberos"
IF "%PGADMIN_POSTGRES_DIR%" == "" SET "PGADMIN_POSTGRES_DIR=C:\Program Files (x86)\PostgreSQL\12"
IF "%PGADMIN_INNOTOOL_DIR%" == "" SET "PGADMIN_INNOTOOL_DIR=C:\Program Files (x86)\Inno Setup 6"
IF "%PGADMIN_VCREDIST_DIR%" == "" SET "PGADMIN_VCREDIST_DIR=C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\VC\Redist\MSVC\14.16.27012"
IF "%PGADMIN_SIGNTOOL_DIR%" == "" SET "PGADMIN_SIGNTOOL_DIR=C:\Program Files (x86)\Windows Kits\10\bin\10.0.17763.0\x64"
REM Set REDIST_NAME (the filename)
set "VCREDIST_FILE=vcredist_%ARCHITECTURE%.exe"
set "VCREDIST_FILE=vcredist_x64.exe"
REM Set additional variables we need
FOR /F "tokens=3" %%a IN ('findstr /C:"APP_RELEASE =" %WD%\web\config.py') DO SET APP_MAJOR=%%a
@@ -73,13 +71,13 @@ REM Main build sequence Ends
FOR /F "tokens=2* DELims='" %%a IN ('findstr /C:"APP_NAME =" web\config.py') DO SET APP_NAME=%%a
FOR /f "tokens=1 DELims=." %%G IN ('%PGADMIN_PYTHON_DIR%/python.exe -c "print('%APP_NAME%'.lower().replace(' ', ''))"') DO SET APP_SHORTNAME=%%G
SET APP_VERSION=%APP_MAJOR%.%APP_MINOR%
SET INSTALLERNAME=%APP_SHORTNAME%-%APP_MAJOR%.%APP_MINOR%-%APP_VERSION_SUFFIX%-%ARCHITECTURE%.exe
IF "%APP_VERSION_SUFFIX%" == "" SET INSTALLERNAME=%APP_SHORTNAME%-%APP_MAJOR%.%APP_MINOR%-%ARCHITECTURE%.exe
SET INSTALLERNAME=%APP_SHORTNAME%-%APP_MAJOR%.%APP_MINOR%-%APP_VERSION_SUFFIX%-x64.exe
IF "%APP_VERSION_SUFFIX%" == "" SET INSTALLERNAME=%APP_SHORTNAME%-%APP_MAJOR%.%APP_MINOR%-x64.exe
REM get Python version for the runtime build ex. 2.7.1 will be 27
REM get Python version for the runtime build ex. 3.9.2 will be 39
FOR /f "tokens=1 DELims=." %%G IN ('%PGADMIN_PYTHON_DIR%/python.exe -c "import sys; print(sys.version.split(' ')[0])"') DO SET PYTHON_MAJOR=%%G
FOR /f "tokens=2 DELims=." %%G IN ('%PGADMIN_PYTHON_DIR%/python.exe -c "import sys; print(sys.version.split(' ')[0])"') DO SET PYTHON_MINOR=%%G
SET "PYTHON_VERSION=%PYTHON_MAJOR%%PYTHON_MINOR%"
FOR /f "tokens=3 DELims=." %%G IN ('%PGADMIN_PYTHON_DIR%/python.exe -c "import sys; print(sys.version.split(' ')[0])"') DO SET PYTHON_REVISION=%%G
EXIT /B 0
@@ -93,10 +91,9 @@ REM Main build sequence Ends
ECHO Installer name: %INSTALLERNAME%
ECHO.
ECHO Python directory: %PGADMIN_PYTHON_DIR%
ECHO Python DLL: %PGADMIN_PYTHON_DIR%\Python%PYTHON_VERSION%.dll
ECHO Python version: %PYTHON_MAJOR%.%PYTHON_MINOR%
ECHO Python version: %PYTHON_MAJOR%.%PYTHON_MINOR%.%PYTHON_REVISION%
ECHO.
ECHO Qt directory: %PGADMIN_QT_DIR%
ECHO KRB5 directory: %PGADMIN_KRB5_DIR%
ECHO PostgreSQL directory: %PGADMIN_POSTGRES_DIR%
ECHO.
ECHO VC++ redist directory: %PGADMIN_VCREDIST_DIR%
@@ -123,15 +120,9 @@ REM Main build sequence Ends
EXIT /B 1
)
IF NOT EXIST "%PGADMIN_QT_DIR%" (
ECHO !PGADMIN_QT_DIR! does not exist.
ECHO Please install Qt and set the PGADMIN_QT_DIR environment variable.
EXIT /B 1
)
IF NOT EXIST "%PGADMIN_QT_DIR%\bin\qmake.exe" (
ECHO !QMAKE! does not exist.
ECHO Please install Qt and set the PGADMIN_QT_DIR environment variable.
IF NOT EXIST "%PGADMIN_KRB5_DIR%" (
ECHO !PGADMIN_KRB5_DIR! does not exist.
ECHO Please install MIT Kerberos for Windows and set the PGADMIN_KRB5_DIR environment variable.
EXIT /B 1
)
@@ -141,12 +132,6 @@ REM Main build sequence Ends
EXIT /B 1
)
IF NOT EXIST "%PGADMIN_PYTHON_DIR%\Python%PYTHON_VERSION%.dll" (
ECHO !PGADMIN_PYTHON_DIR!\Python!PYTHON_VERSION!.dll does not exist.
ECHO Please check your Python installation is complete.
EXIT /B 1
)
IF NOT EXIST "%PGADMIN_POSTGRES_DIR%" (
ECHO !PGADMIN_POSTGRES_DIR! does not exist.
ECHO Please install PostgreSQL and set the PGADMIN_POSTGRES_DIR environment variable.
@@ -166,47 +151,75 @@ REM Main build sequence Ends
:CREATE_VIRTUAL_ENV
ECHO Creating virtual environment...
IF NOT EXIST "%BUILDROOT%" MKDIR "%BUILDROOT%"
CD "%BUILDROOT%"
IF NOT EXIST "%TMPDIR%" MKDIR "%TMPDIR%"
CD "%TMPDIR%"
REM Note that we must use virtualenv.exe here, as the venv module doesn't allow python.exe to relocate.
"%PGADMIN_PYTHON_DIR%\Scripts\virtualenv.exe" venv
XCOPY /S /I /E /H /Y "%PGADMIN_PYTHON_DIR%\DLLs" "%BUILDROOT%\venv\DLLs" > nul || EXIT /B 1
XCOPY /S /I /E /H /Y "%PGADMIN_PYTHON_DIR%\Lib" "%BUILDROOT%\venv\Lib" > nul || EXIT /B 1
XCOPY /S /I /E /H /Y "%PGADMIN_PYTHON_DIR%\DLLs" "%TMPDIR%\venv\DLLs" > nul || EXIT /B 1
XCOPY /S /I /E /H /Y "%PGADMIN_PYTHON_DIR%\Lib" "%TMPDIR%\venv\Lib" > nul || EXIT /B 1
ECHO Activating virtual environment - %BUILDROOT%\venv...
CALL "%BUILDROOT%\venv\Scripts\activate" || EXIT /B 1
ECHO Activating virtual environment - %TMPDIR%\venv...
CALL "%TMPDIR%\venv\Scripts\activate" || EXIT /B 1
ECHO Installing dependencies...
CALL pip install -r "%WD%\requirements.txt" || EXIT /B 1
CALL pip install sphinx || EXIT /B 1
REM If this is Python 3.6+, we need to remove the hack above or it will break qmake. Sigh.
IF %PYTHON_VERSION% GEQ 36 SET CL=
CALL python -m pip install --upgrade pip || EXIT /B 1
CALL pip install --only-binary=cryptography -r "%WD%\requirements.txt" || EXIT /B 1
CD %WD%
EXIT /B 0
:CREATE_PYTHON_ENV
ECHO Staging Python...
MKDIR "%BUILDROOT%\python\Lib" || EXIT /B 1
ECHO Downloading embedded Python...
REM Get the python embeddable and extract it to %BUILDROOT%\python
CD "%TMPDIR%
%PGADMIN_PYTHON_DIR%\python -c "import sys; from urllib.request import urlretrieve; urlretrieve('https://www.python.org/ftp/python/' + sys.version.split(' ')[0] + '/python-' + sys.version.split(' ')[0] + '-embed-amd64.zip', 'python-embedded.zip')" || EXIT /B 1
%PGADMIN_PYTHON_DIR%\python -c "import zipfile; z = zipfile.ZipFile('python-embedded.zip', 'r'); z.extractall('../win-build/python/')" || EXIT /B 1
ECHO Copying site-packages...
XCOPY /S /I /E /H /Y "%TMPDIR%\venv\Lib\site-packages" "%BUILDROOT%\python\Lib\site-packages" > nul || EXIT /B 1
REM NOTE: There is intentionally no space after "site" in the line below, to prevent Python barfing if there's one in the file
ECHO import site>> "%BUILDROOT%\python\python%PYTHON_MAJOR%%PYTHON_MINOR%._pth"
ECHO Staging Kerberos components...
COPY "%PGADMIN_KRB5_DIR%\bin\kinit.exe" "%BUILDROOT%\python" > nul || EXIT /B 1
COPY "%PGADMIN_KRB5_DIR%\bin\krb5_64.dll" "%BUILDROOT%\python" > nul || EXIT /B 1
COPY "%PGADMIN_KRB5_DIR%\bin\comerr64.dll" "%BUILDROOT%\python" > nul || EXIT /B 1
COPY "%PGADMIN_KRB5_DIR%\bin\k5sprt64.dll" "%BUILDROOT%\python" > nul || EXIT /B 1
COPY "%PGADMIN_KRB5_DIR%\bin\gssapi64.dll" "%BUILDROOT%\python" > nul || EXIT /B 1
ECHO Cleaning up unnecessary .pyc and .pyo files...
FOR /R "%BUILDROOT%\python" %%f in (*.pyc *.pyo) do DEL /q "%%f" 1> nul 2>&1
ECHO Removing tests...
FOR /R "%BUILDROOT%\python\Lib" %%f in (test tests) do RD /Q /S "%%f" 1> nul 2>&1
EXIT /B 0
:CREATE_RUNTIME_ENV
IF NOT EXIST "%BUILDROOT%" MKDIR "%BUILDROOT%"
MKDIR "%BUILDROOT%\runtime"
CD "%WD%\web"
ECHO Installing javascript dependencies...
CALL yarn install || EXIT /B 1
ECHO Bundling javascript...
CALL yarn run bundle || EXIT /B 1
ECHO Removing webpack caches...
RD /Q /S "%WD%\web\pgadmin\static\js\generated\.cache" 1> nul 2>&1
ECHO Copying web directory...
XCOPY /S /I /E /H /Y "%WD%\web" "%BUILDROOT%\web" > nul || EXIT /B 1
ECHO Installing javascript dependencies...
CD "%BUILDROOT%\web"
CALL yarn install || EXIT /B 1
ECHO Bundling javascript...
CALL yarn run bundle || EXIT /B 1
ECHO Cleaning up unnecessary .pyc and .pyo files...
FOR /R "%BUILDROOT%\web" %%f in (*.pyc *.pyo) do DEL /q "%%f" 1> nul 2>&1
ECHO Removing tests, Python caches and node modules...
@@ -232,51 +245,59 @@ REM Main build sequence Ends
ECHO } >> "%BUILDROOT%\web\config_distro.py"
ECHO Building docs...
CALL pip install sphinx || EXIT /B 1
MKDIR "%BUILDROOT%\docs\en_US\html"
CD "%WD%\docs\en_US"
CALL "%BUILDROOT%\venv\Scripts\python.exe" build_code_snippet.py || EXIT /B 1
CALL "%BUILDROOT%\venv\Scripts\sphinx-build.exe" "%WD%\docs\en_US" "%BUILDROOT%\docs\en_US\html" || EXIT /B 1
CALL "%TMPDIR%\venv\Scripts\python.exe" build_code_snippet.py || EXIT /B 1
CALL "%TMPDIR%\venv\Scripts\sphinx-build.exe" "%WD%\docs\en_US" "%BUILDROOT%\docs\en_US\html" || EXIT /B 1
ECHO Removing Sphinx
CALL pip uninstall -y sphinx Pygments alabaster colorama docutils imagesize requests snowballstemmer
REM Remove unnecessary doc files
DEL /q "%BUILDROOT%\docs\en_US\html\_static\*.png" 1> nul 2>&1
RD /Q /S "%BUILDROOT%\docs\en_US\html\_sources" 1> nul 2>&1
ECHO Assembling runtime environment...
CD "%WD%\runtime"
ECHO Staging runtime components...
XCOPY /S /I /E /H /Y "%WD%\runtime\assets" "%BUILDROOT%\runtime\assets" > nul || EXIT /B 1
XCOPY /S /I /E /H /Y "%WD%\runtime\src" "%BUILDROOT%\runtime\src" > nul || EXIT /B 1
ECHO Running qmake...
CALL set "PGADMIN_PYTHON_DIR=%PGADMIN_PYTHON_DIR%" && "%PGADMIN_QT_DIR%\bin\qmake.exe" || EXIT /B 1
COPY "%WD%\runtime\package.json" "%BUILDROOT%\runtime\" > nul || EXIT /B 1
CD "%BUILDROOT%\runtime\"
CALL yarn install --production=true || EXIT /B 1
ECHO Cleaning the build directory...
CALL nmake clean || EXIT /B 1
ECHO Downloading NWjs to %TMPDIR%...
REM Get a fresh copy of nwjs.
REM NOTE: The nw download servers seem to be very unreliable, so at the moment we're using wget which retries
ECHO Running make...
CALL nmake || EXIT /B 1
REM YARN
REM CALL yarn --cwd "%TMPDIR%" add nw || EXIT /B
REM YARN END
ECHO Staging pgAdmin4.exe...
COPY "%WD%\runtime\release\pgAdmin4.exe" "%BUILDROOT%\runtime" > nul || EXIT /B 1
REM WGET
FOR /f "tokens=2 delims='" %%i IN ('yarn info nw ^| findstr "latest: "') DO SET "NW_VERSION=%%i"
:GET_NW
wget https://dl.nwjs.io/v%NW_VERSION%/nwjs-v%NW_VERSION%-win-x64.zip -O "%TMPDIR%\nwjs-v%NW_VERSION%-win-x64.zip"
IF %ERRORLEVEL% NEQ 0 GOTO GET_NW
ECHO Staging Qt components...
COPY "%PGADMIN_QT_DIR%\bin\Qt5Core.dll" "%BUILDROOT%\runtime" > nul || EXIT /B 1
COPY "%PGADMIN_QT_DIR%\bin\Qt5Gui.dll" "%BUILDROOT%\runtime" > nul || EXIT /B 1
COPY "%PGADMIN_QT_DIR%\bin\Qt5Widgets.dll" "%BUILDROOT%\runtime" > nul || EXIT /B 1
COPY "%PGADMIN_QT_DIR%\bin\Qt5Network.dll" "%BUILDROOT%\runtime" > nul || EXIT /B 1
COPY "%PGADMIN_QT_DIR%\bin\Qt5Svg.dll" "%BUILDROOT%\runtime" > nul || EXIT /B 1
MKDIR "%BUILDROOT%\runtime\platforms" > nul || EXIT /B 1
COPY "%PGADMIN_QT_DIR%\plugins\platforms\qwindows.dll" "%BUILDROOT%\runtime\platforms" > nul || EXIT /B 1
MKDIR "%BUILDROOT%\runtime\imageformats" > nul || EXIT /B 1
COPY "%PGADMIN_QT_DIR%\plugins\imageformats\qsvg.dll" "%BUILDROOT%\runtime\imageformats" > nul || EXIT /B 1
ECHO [Paths] > "%BUILDROOT%\runtime\qt.conf"
ECHO Plugins=plugins >> "%BUILDROOT%\runtime\qt.conf"
tar -C "%TMPDIR%" -xvf "%TMPDIR%\nwjs-v%NW_VERSION%-win-x64.zip" || EXIT /B 1
REM WGET END
REM YARN
REM XCOPY /S /I /E /H /Y "%TMPDIR%\node_modules\nw\nwjs\*" "%BUILDROOT%\runtime" > nul || EXIT /B 1
REM YARN END
REM WGET
XCOPY /S /I /E /H /Y "%TMPDIR%\nwjs-v%NW_VERSION%-win-x64\*" "%BUILDROOT%\runtime" > nul || EXIT /B 1
REM WGET END
MOVE "%BUILDROOT%\runtime\nw.exe" "%BUILDROOT%\runtime\pgAdmin4.exe"
ECHO Replacing executable icon...
CALL yarn --cwd "%TMPDIR%" add winresourcer || EXIT /B
"%TMPDIR%\node_modules\winresourcer\bin\Resourcer.exe" -op:upd -src:"%BUILDROOT%\runtime\pgAdmin4.exe" -type:Icongroup -name:IDR_MAINFRAME -file:"%WD%\pkg\win32\Resources\pgAdmin4.ico"
ECHO Staging PostgreSQL components...
COPY "%PGADMIN_POSTGRES_DIR%\bin\libpq.dll" "%BUILDROOT%\runtime" > nul || EXIT /B 1
IF "%ARCHITECTURE%" == "x64" (
COPY "%PGADMIN_POSTGRES_DIR%\bin\libcrypto-1_1-x64.dll" "%BUILDROOT%\runtime" > nul || EXIT /B 1
COPY "%PGADMIN_POSTGRES_DIR%\bin\libssl-1_1-x64.dll" "%BUILDROOT%\runtime" > nul || EXIT /B 1
) ELSE (
COPY "%PGADMIN_POSTGRES_DIR%\bin\libcrypto-1_1.dll" "%BUILDROOT%\runtime" > nul || EXIT /B 1
COPY "%PGADMIN_POSTGRES_DIR%\bin\libssl-1_1.dll" "%BUILDROOT%\runtime" > nul || EXIT /B 1
)
COPY "%PGADMIN_POSTGRES_DIR%\bin\libcrypto-1_1-x64.dll" "%BUILDROOT%\runtime" > nul || EXIT /B 1
COPY "%PGADMIN_POSTGRES_DIR%\bin\libssl-1_1-x64.dll" "%BUILDROOT%\runtime" > nul || EXIT /B 1
IF EXIST "%PGADMIN_POSTGRES_DIR%\bin\libintl-*.dll" COPY "%PGADMIN_POSTGRES_DIR%\bin\libintl-*.dll" "%BUILDROOT%\runtime" > nul
IF EXIST "%PGADMIN_POSTGRES_DIR%\bin\libiconv-*.dll" COPY "%PGADMIN_POSTGRES_DIR%\bin\libiconv-*.dll" "%BUILDROOT%\runtime" > nul
COPY "%PGADMIN_POSTGRES_DIR%\bin\zlib.dll" "%BUILDROOT%\runtime" > nul || EXIT /B 1
@@ -291,22 +312,6 @@ REM Main build sequence Ends
CD %WD%
EXIT /B 0
:CREATE_PYTHON_ENV
ECHO Staging Python...
COPY %PGADMIN_PYTHON_DIR%\python%PYTHON_VERSION%.dll "%BUILDROOT%\runtime" > nul || EXIT /B 1
COPY %PGADMIN_PYTHON_DIR%\python.exe "%BUILDROOT%\runtime" > nul || EXIT /B 1
COPY %PGADMIN_PYTHON_DIR%\pythonw.exe "%BUILDROOT%\runtime" > nul || EXIT /B 1
ECHO Cleaning up unnecessary .pyc and .pyo files...
FOR /R "%BUILDROOT%\venv" %%f in (*.pyc *.pyo) do DEL /q "%%f" 1> nul 2>&1
ECHO Removing tests...
FOR /R "%BUILDROOT%\venv\Lib" %%f in (test tests) do RD /Q /S "%%f" 1> nul 2>&1
ECHO Removing TCL...
RD /Q /S "%BUILDROOT%\venv\tcl" 1> nul 2>&1
EXIT /B 0
:CREATE_INSTALLER
@@ -319,16 +324,9 @@ REM Main build sequence Ends
CD "%WD%\pkg\win32"
ECHO Processing installer configuration script...
CALL "%PGADMIN_PYTHON_DIR%\python" "%WD%\pkg\win32\replace.py" "-i" "%WD%\pkg\win32\installer.iss.in" "-o" "%WD%\pkg\win32\installer.iss.in_stage1" "-s" MYAPP_NAME -r """%APP_NAME%"""
CALL "%PGADMIN_PYTHON_DIR%\python" "%WD%\pkg\win32\replace.py" "-i" "%WD%\pkg\win32\installer.iss.in_stage1" "-o" "%WD%\pkg\win32\installer.iss.in_stage2" "-s" MYAPP_FULLVERSION -r """%APP_VERSION%"""
CALL "%PGADMIN_PYTHON_DIR%\python" "%WD%\pkg\win32\replace.py" "-i" "%WD%\pkg\win32\installer.iss.in_stage2" "-o" "%WD%\pkg\win32\installer.iss.in_stage3" "-s" MYAPP_VERSION -r """v%APP_MAJOR%"""
SET ARCMODE=
IF "%ARCHITECTURE%" == "x64" (
set ARCMODE="x64"
)
CALL "%PGADMIN_PYTHON_DIR%\python" "%WD%\pkg\win32\replace.py" "-i" "%WD%\pkg\win32\installer.iss.in_stage3" "-o" "%WD%\pkg\win32\installer.iss.in_stage4" "-s" MYAPP_ARCHITECTURESMODE -r """%ARCMODE%"""
CALL "%PGADMIN_PYTHON_DIR%\python" "%WD%\pkg\win32\replace.py" "-i" "%WD%\pkg\win32\installer.iss.in_stage4" "-o" "%WD%\pkg\win32\installer.iss" "-s" MYAPP_VCDIST -r """%PGADMIN_VCREDIST_DIRNAME%\%VCREDIST_FILE%"""
CALL "%PGADMIN_PYTHON_DIR%\python" "%WD%\pkg\win32\replace.py" "-i" "%WD%\pkg\win32\installer.iss.in" "-o" "%WD%\pkg\win32\installer.iss.in_stage1" "-s" MYAPP_FULLVERSION -r """%APP_VERSION%"""
CALL "%PGADMIN_PYTHON_DIR%\python" "%WD%\pkg\win32\replace.py" "-i" "%WD%\pkg\win32\installer.iss.in_stage1" "-o" "%WD%\pkg\win32\installer.iss.in_stage2" "-s" MYAPP_VERSION -r """v%APP_MAJOR%"""
CALL "%PGADMIN_PYTHON_DIR%\python" "%WD%\pkg\win32\replace.py" "-i" "%WD%\pkg\win32\installer.iss.in_stage2" "-o" "%WD%\pkg\win32\installer.iss" "-s" MYAPP_VCDIST -r """%PGADMIN_VCREDIST_DIRNAME%\%VCREDIST_FILE%"""
ECHO Cleaning up...
DEL /s "%WD%\pkg\win32\installer.iss.in_stage*" > nul
@@ -337,7 +335,7 @@ REM Main build sequence Ends
CALL "%PGADMIN_INNOTOOL_DIR%\ISCC.exe" /q "%WD%\pkg\win32\installer.iss" || EXIT /B 1
ECHO Renaming installer...
MOVE "%WD%\pkg\win32\Output\Setup.exe" "%DISTROOT%\%INSTALLERNAME%" > nul || EXIT /B 1
MOVE "%WD%\pkg\win32\Output\pgadmin4-setup.exe" "%DISTROOT%\%INSTALLERNAME%" > nul || EXIT /B 1
ECHO Location - %DISTROOT%\%INSTALLERNAME%
ECHO Installer generated successfully.
@@ -348,7 +346,7 @@ REM Main build sequence Ends
:SIGN_INSTALLER
ECHO Attempting to sign the installer...
CALL "%PGADMIN_SIGNTOOL_DIR%\signtool.exe" sign /t http://timestamp.verisign.com/scripts/timstamp.dll "%DISTROOT%\%INSTALLERNAME%"
CALL "%PGADMIN_SIGNTOOL_DIR%\signtool.exe" sign /t http://time.certum.pl "%DISTROOT%\%INSTALLERNAME%"
IF %ERRORLEVEL% NEQ 0 (
ECHO.
ECHO ************************************************************
@@ -360,14 +358,6 @@ REM Main build sequence Ends
EXIT /B 0
:CLEANUP_ENV
ECHO Cleaning the build environment...
RD "%BUILDROOT%\venv\Include" /S /Q 1> nul 2>&1
DEL /s "%BUILDROOT%\venv\pip-selfcheck.json" 1> nul 2>&1
EXIT /B 0
:USAGE
ECHO Invalid command line options.
ECHO Usage: "Make.bat [clean]"
+3 -12
View File
@@ -20,20 +20,11 @@ APP_REVISION := $(shell grep ^APP_REVISION web/config.py | awk -F"=" '{print $$N
# Include only platform-independent builds in all
all: docs pip src runtime
appbundle: docs
appbundle:
./pkg/mac/build.sh
install-node:
cd web && npm install
cd web && npm audit fix
rm -f web/yarn.lock
cd web && yarn import
# Commented the below line to avoid vulnerability in lodash package.
# Refer https://www.npmjs.com/advisories/1523.
# Once fixed we will uncomment it.
# cd web && yarn audit
rm -f package-lock.json
rm -f web/package-lock.json
cd web && yarn install
bundle:
cd web && yarn run bundle
@@ -151,7 +142,7 @@ msg-extract:
cd web && pybabel extract -F babel.cfg -o pgadmin/messages.pot pgadmin
msg-update:
cd web && pybabel update -i pgadmin/messages.pot -d pgadmin/translations
cd web && pybabel update --no-fuzzy-matching -i pgadmin/messages.pot -d pgadmin/translations
.PHONY: docs
-321
View File
@@ -1,321 +0,0 @@
pgAdmin 4
=========
pgAdmin 4 is a rewrite of the popular pgAdmin3 management tool for the
PostgreSQL (http://www.postgresql.org) database.
In the following documentation and examples, "$PGADMIN4_SRC/" is used to denote
the top-level directory of a copy of the pgAdmin source tree, either from a
tarball or a git checkout.
Architecture
------------
pgAdmin 4 is written as a web application in Python, using jQuery and Bootstrap
for the client side processing and UI. On the server side, Flask is being
utilised.
Although developed using web technologies, pgAdmin 4 can be deployed either on
a web server using a browser, or standalone on a workstation. The runtime/
subdirectory contains a QT based runtime application intended to allow this -
it is essentially a Python application server that runs in the system tray
and allows the user to connect to the application using their web browser.
Building the Runtime
--------------------
To build the runtime, the following packages must be installed:
- QT 5 (Use the VC++ build on Windows, not MinGW).
- Python 3.4+
An environment variable named PGADMIN_PYTHON_DIR must be set to the directory
in which Python has been installed, for example:
- /usr
- /usr/local/python-3.8
- C:\Python38
Assuming both qmake is in the path:
dpage@hal:~/git/pgadmin4$ cd runtime
dpage@hal:~/git/pgadmin4/runtime$ export PGADMIN_PYTHON_DIR=/opt/local
dpage@hal:~/git/pgadmin4/runtime$ qmake
Project MESSAGE: ==================================
Project MESSAGE: Configuring the pgAdmin 4 runtime.
Project MESSAGE: ==================================
Project MESSAGE: Qt version: 5
Project MESSAGE: Platform: macOS
Project MESSAGE: Python executable: /opt/local/bin/python3
Project MESSAGE: Python version: 3.8 (38)
Project MESSAGE: Python config: /opt/local/bin/python3-config
Project MESSAGE: CXXFLAGS: -pipe -stdlib=libc++ -I/opt/local/Library/Frameworks/Python.framework/Versions/3.8/include/python3.8 -I/opt/local/Library/Frameworks/Python.framework/Versions/3.8/include/python3.8
Project MESSAGE: LDFLAGS: -stdlib=libc++ -L/opt/local/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/config-3.8-darwin -ldl -framework CoreFoundation
Project MESSAGE: LIBS: -lpython3.8 -ldl -framework CoreFoundation
dpage@hal:~/git/pgadmin4/runtime$ make
...
To build the runtime in debug mode, use the option below with qmake:
$ qmake CONFIG+=debug
To build the runtime in release mode, use the option below with qmake:
$ qmake CONFIG+=release
By default, the runtime application will be built in release mode.
On Linux, an executable called 'pgAdmin4' will be built, on Windows,
'pgAdmin4.exe', and on Mac OS X, an app bundle called pgAdmin4.app will be
created.
You can also use Qt Creator to build, develop and debug the runtime. Simply
open the $PGADMIN4_SRC/runtime/pgAdmin4.pro project file in Qt Creator and
configure the project with a supported version of Qt when prompted.
Create Database Migrations
--------------------------
In order to make changes to the SQLite DB, navigate to the 'web' directory:
(pgadmin4) $ cd $PGADMIN4_SRC/web
Create a migration file with the following command:
(pgadmin4) $ FLASK_APP=pgAdmin4.py flask db revision
This will create a file in: $PGADMIN4_SRC/web/migrations/versions/ .
Add any changes to the 'upgrade' function.
Increment the SCHEMA_VERSION in $PGADMIN4_SRC/web/pgadmin/model/__init__.py file.
There is no need to increment the SETTINGS_SCHEMA_VERSION.
Configuring the Python Environment
----------------------------------
In order to run the Python code, a suitable runtime environment is required.
Python version 3.4 and later are currently supported. It is recommended that a
Python Virtual Environment is setup for this purpose, rather than using the
system Python environment. On Linux and Mac systems, the process is fairly
simple - adapt as required for your distribution:
1) Install the virtualenv packages into the system Python environment
$ sudo pip install virtualenv virtualenvwrapper
2) Source the virtualenv wrapper tools script. You may want to add this command
to your ~/.bash_profile file for future convenience:
$ source /usr/local/bin/virtualenvwrapper.sh
3) Create a virtual environment:
$ mkvirtualenv pgadmin4
To make use of the virtual environment in the future, use the following
command to re-activate it:
$ workon pgadmin4
4) Ensure that a PostgreSQL installation's bin/ directory is in the path (so
pg_config can be found for building psycopg2), and install the required
packages:
(pgadmin4) $ PATH=$PATH:/usr/local/pgsql/bin pip install -r $PGADMIN4_SRC/requirements.txt
If you are planning to run the regression tests, you also need to install
additional requirements from web/regression/requirements.txt:
(pgadmin4) $ pip install -r $PGADMIN4_SRC/web/regression/requirements.txt
5) Create a local configuration file for pgAdmin. Edit
$PGADMIN4_SRC/web/config_local.py and add any desired configuration options
(use the config.py file as a reference - any settings duplicated in
config_local.py will override those in config.py). A typical development
configuration may look like:
from config import *
# Debug mode
DEBUG = True
# App mode
SERVER_MODE = True
# Enable the test module
MODULE_BLACKLIST.remove('test')
# Log
CONSOLE_LOG_LEVEL = DEBUG
FILE_LOG_LEVEL = DEBUG
DEFAULT_SERVER = '127.0.0.1'
UPGRADE_CHECK_ENABLED = True
# Use a different config DB for each server mode.
if SERVER_MODE == False:
SQLITE_PATH = os.path.join(
DATA_DIR,
'pgadmin4-desktop.db'
)
else:
SQLITE_PATH = os.path.join(
DATA_DIR,
'pgadmin4-server.db'
)
This configuration allows easy switching between server and desktop modes
for testing.
6) The initial setup of the configuration database is interactive in server
mode, and non-interactive in desktop mode. You can run it either by
running:
(pgadmin4) $ python $PGADMIN4_SRC/web/setup.py
or by starting pgAdmin 4:
(pgadmin4) $ python $PGADMIN4_SRC/web/pgAdmin4.py
Whilst it is possible to automatically run setup in desktop mode by running
the runtime, that will not work in server mode as the runtime doesn't allow
command line interaction with the setup program.
At this point you will be able to run pgAdmin 4 from the command line in either
server or desktop mode, and access it from a web browser using the URL shown in
the terminal once pgAdmin has started up.
Setup of an environment on Windows is somewhat more complicated unfortunately,
please see pkg/win32/README.txt for complete details.
Once a virtual environment has been created and enabled, setup can continue
from step 4 above.
Building the Web Assets
-----------------------
pgAdmin is dependent on a number of third party Javascript libraries. These,
along with it's own Javascript code, SCSS/CSS code and images must be
compiled into a "bundle" which is transferred to the browser for execution
and rendering. This is far more efficient than simply requesting each
asset as it's needed by the client.
To create the bundle, you will need the 'yarn' package management tool to be
installed. Then, you can run the following commands on a *nix system to
download the required packages and build the bundle:
(pgadmin4) $ cd $PGADMIN4_SRC
(pgadmin4) $ make install-node
(pgadmin4) $ make bundle
On Windows systems (where "make" is not available, the following commands
can be used:
C:\> cd $PGADMIN4_SRC\web
C:\$PGADMIN4_SRC\web> yarn install
C:\$PGADMIN4_SRC\web> yarn run bundle
Creating pgAdmin themes
-----------------------
To create a pgAdmin theme, you need to create a directory under
web/pgadmin/static/scss/resources.
Copy the sample file _theme.variables.scss.sample to the new directory and
rename it to _theme.variables.scss. Change the desired hexadecimal values of
the colors and bundle pgAdmin. You can also add a preview image in the theme
directory with the name as <dir name>_preview.png. It is recommended that the
preview image should not be larger in size as it may take time to load on slow
networks. Run the yarn run bundle and you're good to go. No other changes are
required, pgAdmin bundle will read the directory and create other required
entries to make them available in preferences.
The name of the theme is derived from the directory name. Underscores (_) and
hyphens (-) will be replaced with spaces and the result will be camel cased.
Configuring the Runtime
-----------------------
The pgAdmin 4 Runtime maintains it's own Python Path to avoid conflicts with
packages or other issues in the system Python installation. It will also search
a number of known locations for the pgAdmin4.py file needed to run pgAdmin
(including relative locations in a source code tree), however you can specify
an alternate path if needed.
If either a working environment or pgAdmin4.py cannot be found at startup, the
runtime will prompt for the locations. Alternatively, you can click the try
icon and select the Configuration option to open the configuration dialogue.
On a Linux/Mac system, the Python Path will typically consist of a single path
to the virtual environment's site-packages directory, e.g.
/Users/<USERNAME>/.virtualenvs/pgadmin4/lib/python3.8/site-packages
On Windows, multiple paths are likely to be required, e.g.
C:\Users\dpage\.virtualenvs\pgadmin4\Lib\site-packages;C:\Users\dpage\.virtualenvs\pgadmin4\Lib;C:\Users\dpage\.virtualenvs\pgadmin4\Lib\lib-tk;C:\Users\dpage\.virtualenvs\pgadmin4\DLLs
If you wish to specify a specific copy of the Python code to run, you can set
the Application Path to a directory containing pgAdmin4.py, e.g.
/Users/<USERNAME>/git/pgadmin4-test/web/
Building the documentation
--------------------------
In order to build the docs, an additional Python package is required in the
virtual environment. This can be installed with the pip package manager:
$ workon pgadmin4
(pgadmin4) $ pip install Sphinx
The docs can then be built using the Makefile in $PGADMIN4_SRC, e.g.
(pgadmin4) $ make docs
The output can be found in $PGADMIN4_SRC/docs/en_US/_build/html/index.html
Building packages
-----------------
Most packages can be built using the Makefile in $PGADMIN4_SRC, provided all
the setup and configuration above has been completed.
To build a source tarball:
(pgadmin4) $ make src
To build a PIP Wheel, activate either a Python 2 or Python 3 virtual
environment as desired, configured with all the required packages, and then
run:
(pgadmin4) $ make pip
To build the macOS AppBundle, please see pkg/mac/README.
To build the Windows installer, please see pkg/win32/README.txt.
Support
-------
See https://www.pgadmin.org/support/ for support options.
Project info
------------
The source code repository can be found here:
http://git.postgresql.org/gitweb/?p=pgadmin4.git;a=summary
A Redmine project for pgAdmin 4 can be found at the address below. A PostgreSQL
community account is required to access this site. Please note that at present
only project developers can log bug and feature requests:
https://redmine.postgresql.org/projects/pgadmin4
If you wish to discuss pgAdmin 4, or contribute to the project, please use the
pgAdmin Hackers mailing list:
pgadmin-hackers@postgresql.org
--
Dave Page
pgAdmin Project Lead
+251
View File
@@ -0,0 +1,251 @@
# pgAdmin 4
pgAdmin 4 is a rewrite of the popular pgAdmin3 management tool for the
PostgreSQL (http://www.postgresql.org) database.
In the following documentation and examples, *$PGADMIN4_SRC/* is used to denote
the top-level directory of a copy of the pgAdmin source tree, either from a
tarball or a git checkout.
## Architecture
pgAdmin 4 is written as a web application in Python, using jQuery and Bootstrap
for the client side processing and UI. On the server side, Flask is being
utilised.
Although developed using web technologies, pgAdmin 4 can be deployed either on
a web server using a browser, or standalone on a workstation. The runtime/
subdirectory contains an NWjs based runtime application intended to allow this,
which will execute the Python server and display the UI.
## Building the Runtime
To build the runtime, the following packages must be installed:
* NodeJS 12+
* Yarn
Change into the runtime directory, and run *yarn install*. This will install the
dependencies required.
In order to use the runtime in a development environment, you'll need to copy
*dev_config.json.in* file to *dev_config.json*, and edit the paths to the Python
executable and *pgAdmin.py* file, otherwise the runtime will use the default
paths it would expect to find in the standard package for your platform.
You can then execute the runtime by running something like:
node_modules/nw/nwjs/nw .
or on macOS:
node_modules/nw/nwjs/nwjs.app/Contents/MacOS/nwjs .
# Create Database Migrations
In order to make changes to the SQLite DB, navigate to the 'web' directory:
(pgadmin4) $ cd $PGADMIN4_SRC/web
Create a migration file with the following command:
(pgadmin4) $ FLASK_APP=pgAdmin4.py flask db revision
This will create a file in: $PGADMIN4_SRC/web/migrations/versions/ .
Add any changes to the 'upgrade' function.
Increment the SCHEMA_VERSION in $PGADMIN4_SRC/web/pgadmin/model/__init__.py file.
There is no need to increment the SETTINGS_SCHEMA_VERSION.
# Configuring the Python Environment
In order to run the Python code, a suitable runtime environment is required.
Python version 3.6 and later are currently supported. It is recommended that a
Python Virtual Environment is setup for this purpose, rather than using the
system Python environment. On Linux and Mac systems, the process is fairly
simple - adapt as required for your distribution:
1. Install the virtualenv packages into the system Python environment
$ sudo pip install virtualenv virtualenvwrapper
2. Source the virtualenv wrapper tools script. You may want to add this command
to your ~/.bash_profile file for future convenience:
$ source /usr/local/bin/virtualenvwrapper.sh
3. Create a virtual environment:
$ mkvirtualenv pgadmin4
To make use of the virtual environment in the future, use the following
command to re-activate it:
$ workon pgadmin4
4. Ensure that a PostgreSQL installation's bin/ directory is in the path (so
pg_config can be found for building psycopg2), and install the required
packages:
(pgadmin4) $ PATH=$PATH:/usr/local/pgsql/bin pip install -r $PGADMIN4_SRC/requirements.txt
If you are planning to run the regression tests, you also need to install
additional requirements from web/regression/requirements.txt:
(pgadmin4) $ pip install -r $PGADMIN4_SRC/web/regression/requirements.txt
5. Create a local configuration file for pgAdmin. Edit
$PGADMIN4_SRC/web/config_local.py and add any desired configuration options
(use the config.py file as a reference - any settings duplicated in
config_local.py will override those in config.py). A typical development
configuration may look like:
```python
from config import *
# Debug mode
DEBUG = True
# App mode
SERVER_MODE = True
# Enable the test module
MODULE_BLACKLIST.remove('test')
# Log
CONSOLE_LOG_LEVEL = DEBUG
FILE_LOG_LEVEL = DEBUG
DEFAULT_SERVER = '127.0.0.1'
UPGRADE_CHECK_ENABLED = True
# Use a different config DB for each server mode.
if SERVER_MODE == False:
SQLITE_PATH = os.path.join(
DATA_DIR,
'pgadmin4-desktop.db'
)
else:
SQLITE_PATH = os.path.join(
DATA_DIR,
'pgadmin4-server.db'
)
```
This configuration allows easy switching between server and desktop modes
for testing.
6. The initial setup of the configuration database is interactive in server
mode, and non-interactive in desktop mode. You can run it either by
running:
(pgadmin4) $ python $PGADMIN4_SRC/web/setup.py
or by starting pgAdmin 4:
(pgadmin4) $ python $PGADMIN4_SRC/web/pgAdmin4.py
Whilst it is possible to automatically run setup in desktop mode by running
the runtime, that will not work in server mode as the runtime doesn't allow
command line interaction with the setup program.
At this point you will be able to run pgAdmin 4 from the command line in either
server or desktop mode, and access it from a web browser using the URL shown in
the terminal once pgAdmin has started up.
Setup of an environment on Windows is somewhat more complicated unfortunately,
please see *pkg/win32/README.txt* for complete details.
Once a virtual environment has been created and enabled, setup can continue
from step 4 above.
## Building the Web Assets
pgAdmin is dependent on a number of third party Javascript libraries. These,
along with it's own Javascript code, SCSS/CSS code and images must be
compiled into a "bundle" which is transferred to the browser for execution
and rendering. This is far more efficient than simply requesting each
asset as it's needed by the client.
To create the bundle, you will need the 'yarn' package management tool to be
installed. Then, you can run the following commands on a *nix system to
download the required packages and build the bundle:
(pgadmin4) $ cd $PGADMIN4_SRC
(pgadmin4) $ make install-node
(pgadmin4) $ make bundle
On Windows systems (where "make" is not available), the following commands
can be used:
C:\> cd $PGADMIN4_SRC\web
C:\$PGADMIN4_SRC\web> yarn install
C:\$PGADMIN4_SRC\web> yarn run bundle
## Creating pgAdmin themes
To create a pgAdmin theme, you need to create a directory under
*web/pgadmin/static/scss/resources*.
Copy the sample file *_theme.variables.scss.sample* to the new directory and
rename it to *_theme.variables.scss*. Change the desired hexadecimal values of
the colors and bundle pgAdmin. You can also add a preview image in the theme
directory with the name as *\<dir name>_preview.png*. It is recommended that the
preview image should not be larger in size as it may take time to load on slow
networks. Run the *yarn run bundle* and you're good to go. No other changes are
required, pgAdmin bundle will read the directory and create other required
entries to make them available in preferences.
The name of the theme is derived from the directory name. Underscores (_) and
hyphens (-) will be replaced with spaces and the result will be camel cased.
# Building the documentation
In order to build the docs, an additional Python package is required in the
virtual environment. This can be installed with the pip package manager:
$ workon pgadmin4
(pgadmin4) $ pip install Sphinx
The docs can then be built using the Makefile in *$PGADMIN4_SRC*, e.g.
(pgadmin4) $ make docs
The output can be found in *$PGADMIN4_SRC/docs/en_US/_build/html/index.html*
# Building packages
Most packages can be built using the Makefile in $PGADMIN4_SRC, provided all
the setup and configuration above has been completed.
To build a source tarball:
(pgadmin4) $ make src
To build a PIP Wheel, activate either a Python 3 virtual environment, configured
with all the required packages, and then run:
(pgadmin4) $ make pip
To build the macOS AppBundle, please see *pkg/mac/README*.
To build the Windows installer, please see *pkg/win32/README.txt*.
## Support
See https://www.pgadmin.org/support/ for support options.
## Project info
The source code repository can be found here:
http://git.postgresql.org/gitweb/?p=pgadmin4.git;a=summary
A Redmine project for pgAdmin 4 can be found at the address below. A PostgreSQL
community account is required to access this site. Please note that at present
only project developers can log bug and feature requests:
https://redmine.postgresql.org/projects/pgadmin4
If you wish to discuss pgAdmin 4, or contribute to the project, please use the
pgAdmin Hackers mailing list:
pgadmin-hackers@postgresql.org
+7 -6
View File
@@ -4,7 +4,7 @@
`Backup Dialog`:index:
**********************
Using the *pg_dump* utility, *pgAdmin* provides an easy way to create a backup
*pgAdmin* uses the *pg_dump* utility to provide an easy way to create a backup
in a plain-text or archived format. You can then use a client application (like
*psql* or the *Query Tool*) to restore a plain-text backup file, or use the
Postgres *pg_restore* utility to restore an archived backup. The *pg_dump*
@@ -205,14 +205,15 @@ command:
Use the **Stop Process** button to stop the Backup process.
If the backup is successful, a popup window will confirm success. Click *Click
here for details* on the popup window to launch the *Process Watcher*. The
*Process Watcher* logs all the activity associated with the backup and provides
additional information for troubleshooting.
If the backup is successful, a popup window will confirm success. Click *More details* on the popup window to launch the *Process Watcher*. The *Process Watcher* logs all the activity associated with the backup and provides additional information for troubleshooting.
.. image:: images/backup_process_watcher.png
:alt: Backup process watcher
:align: center
If the backup is unsuccessful, you can review the error messages returned by the
backup command on the *Process Watcher*.
backup command on the *Process Watcher*.
.. note:: If you are running *pgAdmin* in *Server Mode* you can click on the |sm_icon| icon in the process watcher window to open the file location in the Storage Manager. You can use the :ref:`Storage Manager <storage_manager>` to download the backup file on the client machine .
.. |sm_icon| image:: images/sm_icon.png
+5 -1
View File
@@ -50,4 +50,8 @@ additional information for troubleshooting.
:align: center
If the backup is unsuccessful, review the error message returned by the
*Process Watcher* to resolve any issue.
*Process Watcher* to resolve any issue.
.. note:: If you are running *pgAdmin* in *Server Mode* you can click on the |sm_icon| icon in the process watcher window to open the file location in the Storage Manager. You can use the :ref:`Storage Manager <storage_manager>` to download the backup file on the client machine .
.. |sm_icon| image:: images/sm_icon.png
+5 -1
View File
@@ -135,4 +135,8 @@ additional information for troubleshooting.
:align: center
If the backup is unsuccessful, review the error message returned by the
*Process Watcher* to resolve any issue.
*Process Watcher* to resolve any issue.
.. note:: If you are running *pgAdmin* in *Server Mode* you can click on the |sm_icon| icon in the process watcher window to open the file location in the Storage Manager. You can use the :ref:`Storage Manager <storage_manager>` to download the backup file on the client machine .
.. |sm_icon| image:: images/sm_icon.png
+5 -5
View File
@@ -7,14 +7,14 @@
The bulk of pgAdmin is a Python web application written using the Flask framework
on the backend, and HTML5 with CSS3, Bootstrap and jQuery on the front end. A
desktop runtime is also included for users that prefer a desktop application to
a web application, which is written in C++ using the QT framework.
a web application, which is written using NWjs (Node Webkit).
Runtime
*******
The runtime is essentially a Python webserver and browser in a box. Found in the
**/runtime** directory in the source tree, it is a relatively simple QT
application that is most easily modified using the **QT Creator** application.
The runtime is based on NWjs which integrates a browser and the Python server
creating a standalone application. The source code can be found in the
**/runtime** directory in the source tree.
Web Application
***************
@@ -213,4 +213,4 @@ divided each module in small chunks as much as possible. Not all javascript
modules are required to be loaded (i.e. loading a javascript module for
database will make sense only when a server node is loaded completely.) Please
look at the the javascript files node.js, browser.js, menu.js, panel.js, etc for
better understanding of the code.
better understanding of the code.
+17 -17
View File
@@ -16,46 +16,46 @@ review process for any patches submitted for inclusion in pgAdmin.
bulk updates every year). The start date should always be 2013, and the end year
the current year, e.g.
Copyright (C) 2013 - 2020, The pgAdmin Development Team
Copyright (C) 2013 - 2021, The pgAdmin Development Team
* Ensure there's a blank line immediately following any copyright headers.
* Include PyDoc comments for functions, classes and modules. Node modules should
* Include PyDoc comments for functions, classes and modules. Node modules should
be """Implements the XXXX node""".
* Ensure that any generated SQL does not have any leading or trailing blank lines
and consistently uses 4 space indents for nice formatting.
* Don't special-case any Slony objects. pgAdmin 4 will have no direct knowledge
* Don't special-case any Slony objects. pgAdmin 4 will have no direct knowledge
of Slony, unlike pgAdmin 3.
* If you copy/paste modules, please ensure any comments are properly updated.
* If you copy/paste modules, please ensure any comments are properly updated.
* Read all comments, and ensure they make sense and provide useful commentary on
the code.
* Ensure that field labels both use PostgreSQL parlance, but also are descriptive.
A good example is the "Init" field on an FTS Template - Init is the PG term, but
* Ensure that field labels both use PostgreSQL parlance, but also are descriptive.
A good example is the "Init" field on an FTS Template - Init is the PG term, but
adding the word "Function" after it makes it much more descriptive.
* Re-use code whereever possible, but factor it out into a suitably central
location - don't copy and paste it unless modifications are required!
* Format code nicely to make it readable. Break up logical chunks of code with
blank lines, and comment well to describe what different sections of code are
* Format code nicely to make it readable. Break up logical chunks of code with
blank lines, and comment well to describe what different sections of code are
for or pertain to.
* Ensure that form validation works correctly and is consistent with other
* Ensure that form validation works correctly and is consistent with other
dialogues in the way errors are displayed.
* On dialogues with Schema or Owner fields, pre-set the default values to the
current schema/user as appropriate. In general, if there are common or sensible
default values available, put them in the fields for the user.
* On dialogues with Schema or Owner fields, pre-set the default values to the
current schema/user as appropriate. In general, if there are common or sensible
default values available, put them in the fields for the user.
* 1 patch == 1 feature. If you need to fix/update existing infrastructure in
* 1 patch == 1 feature. If you need to fix/update existing infrastructure in
your patch, it's usually easier if it's in a separate patch. Patches containing
multiple new features or unrelated changes are likely to be rejected.
* Ensure the patch is fully functional, and works! If a patch is being sent as
a work in progress, not intended for commit, clearly state that it's a WIP,
and note what does or does not yet work.
* Ensure the patch is fully functional, and works! If a patch is being sent as
a work in progress, not intended for commit, clearly state that it's a WIP,
and note what does or does not yet work.
+17 -65
View File
@@ -4,7 +4,7 @@
`Coding Standards`:index:
*************************
pgAdmin uses multiple technologies and multiple languages, each of which have
pgAdmin uses multiple technologies and multiple languages, each of which have
their own coding standards.
General
@@ -16,24 +16,24 @@ lines wrapped where appropriate to ensure they can be read on smaller displays
as it's quite wasteful on modern displays). Typically lines should not be longer
than 120 characters.
Comments should be included in all code where required to explain its
Comments should be included in all code where required to explain its
purpose or how it works if not obvious from a quick review of the code itself.
CSS 3
*****
CSS3 is used for styling and layout throughout the application. Extensive use is
made of the Bootstrap Framework to aid in that process, however additional
made of the Bootstrap Framework to aid in that process, however additional
styles must still be created from time to time.
Most custom styling comes from individual modules which may advertise static
stylesheets to be included in the module that is loading them via hooks.
Styling overrides (for example, to alter the Bootstrap look and feel) will
Styling overrides (for example, to alter the Bootstrap look and feel) will
typically be found in the **overrides.css** file in the main static file
directory for the application.
Styling should never be applied inline in HTML, always through an external
Styling should never be applied inline in HTML, always through an external
stylesheet, which should contain comments as appropriate to explain the usage
or purpose for the style.
@@ -48,16 +48,16 @@ Styles should be specified clearly, one per line. For example:
/* Ensure the codemirror editor displays full height gutters when resized */
.CodeMirror, .CodeMirror-gutters {
height: 100% !important;
}
height: 100% !important;
}
All stylesheets must be CSS3 compliant.
HTML 5
******
HTML 5 is used for page structure throughout the application, in most cases
being rendered from templates by the Jinja2 template engine in Flask.
HTML 5 is used for page structure throughout the application, in most cases
being rendered from templates by the Jinja2 template engine in Flask.
All HTML must be HTML 5 compliant.
@@ -109,68 +109,20 @@ names.
.. note:: From version 3.0 onwards, new or refactored code should be written using
ES6 features and conventions.
C++
***
C++ code is used in the desktop runtime for the application, primarily with the
QT framework and an embedded Python interpreter. Note the use of hanging braces,
which may be omitted if on a single statement is present:
.. code-block:: c++
// Ping the application server to see if it's alive
bool PingServer(QUrl url)
{
QNetworkAccessManager manager;
QEventLoop loop;
QNetworkReply *reply;
QVariant redirectUrl;
url.setPath("/utils/ping");
do
{
reply = manager.get(QNetworkRequest(url));
QObject::connect(reply, SIGNAL(finished()), &loop, SLOT(quit()));
loop.exec();
redirectUrl = reply->attribute(QNetworkRequest::RedirectionTargetAttribute);
url = redirectUrl.toUrl();
if (!redirectUrl.isNull())
delete reply;
} while (!redirectUrl.isNull());
if (reply->error() != QNetworkReply::NoError)
return false;
QString response = reply->readAll();
if (response != "PING")
{
qDebug() << "Failed to connect, server response: " << response;
return false;
}
return true;
}
Python
******
Python is used for the backend web server. All code must be compatible with
Python is used for the backend web server. All code must be compatible with
Python 2.7 and should include PyDoc comments whilst following the official
Python coding standards defined in
`PEP 8 <https://www.python.org/dev/peps/pep-0008/>`_. An example function along
Python coding standards defined in
`PEP 8 <https://www.python.org/dev/peps/pep-0008/>`_. An example function along
with the required file header is shown below::
##########################################################################
#
# pgAdmin 4 - PostgreSQL Tools
#
# Copyright (C) 2013 - 2020, The pgAdmin Development Team
# Copyright (C) 2013 - 2021, The pgAdmin Development Team
# This software is released under the PostgreSQL Licence
#
##########################################################################
@@ -185,12 +137,12 @@ with the required file header is shown below::
def get_nodes():
"""Return a JSON document listing the server groups for the user"""
groups = ServerGroup.query.filter_by(user_id=current_user.id)
value = ''
for group in groups:
value += '{"id":%d,"label":"%s","icon":"icon-server-group","inode":true},' \
% (group.id, group.name)
value = value[:-1]
return value
return value
+1 -1
View File
@@ -109,7 +109,7 @@ Click the *Variables* tab to continue.
:alt: Column dialog variables tab
:align: center
Use the *Variables* tab to to specify the number of distinct values that may be
Use the *Variables* tab to specify the number of distinct values that may be
present in the column; this value overrides estimates made by the ANALYZE
command. Click the *Add* icon (+) to add a *Name*/*Value* pair:
+17 -5
View File
@@ -5,7 +5,16 @@
***************************
There are multiple configuration files that are read at startup by pgAdmin. These
are as follows:
files are used for configuration options that:
* may be required to be set prior to startup of pgAdmin as they control how
the application will operate.
* system administrators may wish to control across an organisation to enforce
security policies.
* are so rarely or unlikely to be changed that it doesn't
make sense to allow them to be changed through the user interface.
The configuration files are as follows:
* ``config.py``: This is the main configuration file, and should not be modified.
It can be used as a reference for configuration settings, that may be overridden
@@ -27,11 +36,14 @@ are as follows:
intended for system administrators to include settings that are configured
system-wide from a secure location that users cannot normally modify and that
is outside of the pgAdmin installation. The location for this file varies
based on the platform, and only needs to be created if desired:
based on the platform, and only needs to be created if desired.
* Linux: ``/etc/pgadmin/config_system.py``
* macOS: ``/Library/Preferences/pgadmin/config_system.py``
* Windows: ``%CommonProgramFiles%\pgadmin\config_system.py``
.. csv-table::
:header: "**Platform**", "**File Location**"
Linux,/etc/pgadmin/config_system.py
macOS,/Library/Preferences/pgadmin/config_system.py
Windows,%CommonProgramFiles%\\pgadmin\\config_system.py
.. note:: If the SERVER_MODE setting is changed in ``config_distro.py``,
``config_local.py``, or ``config_system.py`` you will most likely need to
+35 -4
View File
@@ -17,14 +17,25 @@ maintenance functions to be executed. Multiple versions are included in the
following directories to allow use with different versions of the database
server:
* PostgreSQL 9.5: */usr/local/pgsql-9.5*
* PostgreSQL 9.6: */usr/local/pgsql-9.6*
* PostgreSQL 10: */usr/local/pgsql-10*
* PostgreSQL 11: */usr/local/pgsql-11*
* PostgreSQL 12: */usr/local/pgsql-12*
* PostgreSQL 13: */usr/local/pgsql-13*
The most recent version of the utilities is used by default; this may be
changed in the :ref:`preferences`.
The default binary paths set in the container are as follows:
.. code-block:: bash
DEFAULT_BINARY_PATHS = {
'pg-13': '/usr/local/pgsql-13'
'pg-12': '/usr/local/pgsql-12'
'pg-11': '/usr/local/pgsql-11'
'pg-10': '/usr/local/pgsql-10'
'pg-9.6': '/usr/local/pgsql-9.6'
}
this may be changed in the :ref:`preferences`.
Environment Variables
*********************
@@ -41,6 +52,20 @@ to login to pgAdmin. This variable is required and must be set at launch time.
This is the password used when setting up the initial administrator account to
login to pgAdmin. This variable is required and must be set at launch time.
**PGADMIN_DISABLE_POSTFIX**
*Default: <null>*
If left unset, a Postfix server will be started to deliver password reset
emails.
If set to any value, the Postfix server will not be started, and pgAdmin will
need to be configured to use an external mail server using the *PGADMIN_CONFIG_*
options below.
This option is useful if you're running in an environment that prevents the use
of sudo to start Postfix, or if you wish to use an external mail server.
**PGADMIN_ENABLE_TLS**
*Default: <null>*
@@ -90,7 +115,7 @@ Adjust the number of threads the Gunicorn server uses to handle incoming
requests. This should typically be left as-is, except in highly loaded systems
where it may be increased.
**PGADMIN_CONFIG_**
**PGADMIN_CONFIG_***
This is a variable prefix that can be used to override any of the configuration
options in pgAdmin's *config.py* file. Add the *PGADMIN_CONFIG_* prefix to any
@@ -103,6 +128,12 @@ is read after */pgadmin4/config.py* and before */pgadmin4/config_local.py*.
Any settings given will therefore override anything in config.py, but can be
overridden by settings in config_local.py.
Settings are only written to */pgadmin4/config_distro.py* once, typically on
first launch of the container. If */pgadmin4/config_distro.py* contains one or
more lines, then no changes are made; for example, if the container instance is
restarted, or */pgadmin4/config_distro.py* is mapped to a file on persistent
storage (not recommended - use */pgadmin4/config_local.py* instead)!
See :ref:`config_py` for more information on the available configuration settings.
Mapped Files and Directories
+85 -31
View File
@@ -8,13 +8,8 @@ pgAdmin may be deployed as a desktop application by configuring the application
to run in desktop mode and then utilising the desktop runtime to host the
program on a supported Windows, Mac OS X or Linux installation.
The desktop runtime is a system-tray application that when launched, runs the
pgAdmin server and launches a web browser to render the user interface. If
additional instances of pgAdmin are launched, a new browser tab will be opened
and be served by the existing instance of the server in order to minimise system
resource utilisation. Clicking the icon in the system tray will present a menu
offering options to open a new pgAdmin window, configure the runtime, view the
server log and shut down the server.
The desktop runtime is a standalone application that when launched, runs the
pgAdmin server and opens a window to render the user interface.
.. note:: Pre-compiled and configured installation packages are available for
a number of platforms. These packages should be used by end-users whereever
@@ -24,7 +19,7 @@ server log and shut down the server.
.. seealso:: For detailed instructions on building and configuring pgAdmin from
scratch, please see the README file in the top level directory of the source code.
For convenience, you can find the latest version of the file
`here <https://git.postgresql.org/gitweb/?p=pgadmin4.git;a=blob_plain;f=README>`_,
`here <https://git.postgresql.org/gitweb/?p=pgadmin4.git;a=blob;f=README.md>`_,
but be aware that this may differ from the version included with the source code
for a specific version of pgAdmin.
@@ -38,25 +33,53 @@ settings.
See :ref:`config_py` for more information on configuration settings.
Runtime
*******
Desktop Runtime Standalone Application
======================================
When executed, the runtime will automatically try to execute the pgAdmin Python
application. If execution fails, it will prompt you to adjust the Python Path
to include the directories containing the pgAdmin code as well as any additional
Python dependencies. You can enter a list of paths by separating them with a
semi-colon character, for example:
The Desktop Runtime is based on `NWjs <https://nwjs.io/>`_ which integrates a
browser and the Python server creating a standalone application.
.. code-block:: bash
.. image:: images/runtime_standalone.png
:alt: Runtime Standalone
:align: center
/Users/dpage/.virtualenvs/pgadmin4/lib/python2.7/site-packages/;/Users/dpage/python-libs/
Runtime Menu
------------
The configuration settings are stored using the QSettings class in Qt, which
will use an INI file on Unix systems (~/.config/pgadmin/pgadmin4.conf),
a plist file on Mac OS X (~/Library/Preferences/org.pgadmin.pgadmin4.plist),
and the registry on Windows (HKEY_CURRENT_USER\\Software\\pgadmin\\pgadmin4).
.. image:: images/runtime_menu.png
:alt: Runtime Menu
:align: center
The configuration settings:
Use the *File Menu* to access the *Runtime Menu*:
+-------------------------+---------------------------------------------------------------------------------------------------------+
| Option | Action |
+=========================+=========================================================================================================+
| *Configure...* | Click to open configuration dialog to configure fixed port, port number and connection timeout. |
+-------------------------+---------------------------------------------------------------------------------------------------------+
| *View log...* | Click to open the view log dialog to view the pgAdmin 4 logs. |
+-------------------------+---------------------------------------------------------------------------------------------------------+
| *Enter Full Screen* | Click to enter/exit the full screen mode. Keyboard Shortcuts: OSX (Cmd + Ctrl + F), Other OS (F10). |
+-------------------------+---------------------------------------------------------------------------------------------------------+
| *Actual Size* | Click to change the window size to it original size. Keyboard Shortcuts: OSX (Cmd + 0), |
| | Other OS (Ctrl + 0). |
+-------------------------+---------------------------------------------------------------------------------------------------------+
| *Zoom In* | Click to increase the zoom level. Keyboard Shortcuts: OSX (Cmd + +), Other OS (Ctrl + +). |
+-------------------------+---------------------------------------------------------------------------------------------------------+
| *Zoom Out* | Click to decrease the zoom level. Keyboard Shortcuts: OSX (Cmd + -), Other OS (Ctrl + -). |
+-------------------------+---------------------------------------------------------------------------------------------------------+
Configuration Dialog
--------------------
Use the *Runtime Menu* to access the *Configuration* dialog:
.. image:: images/runtime_configuration.png
:alt: Runtime Configuration
:align: center
Following are the details of the *Fixed port number?*, *Port Number*, and *Connection
Timeout* configuration parameters:
.. table::
:class: longtable
@@ -65,18 +88,49 @@ The configuration settings:
+--------------------------+--------------------+---------------------------------------------------------------+
| Key | Type | Purpose |
+==========================+====================+===============================================================+
| ApplicationPath | String | The directory containing pgAdmin4.py |
+--------------------------+--------------------+---------------------------------------------------------------+
| BrowserCommand | String | An alternate command to run instead of the default browser. |
+--------------------------+--------------------+---------------------------------------------------------------+
| ConnectionTimeout | Integer | The number of seconds to wait for application server startup. |
+--------------------------+--------------------+---------------------------------------------------------------+
| FixedPort | Boolean | Use a fixed network port number rather than a random one. |
+--------------------------+--------------------+---------------------------------------------------------------+
| OpenTabAtStartup | Boolean | Open a browser tab at startup. |
+--------------------------+--------------------+---------------------------------------------------------------+
| PortNumber | Integer | The port number to use, if using a fixed port. |
+--------------------------+--------------------+---------------------------------------------------------------+
| PythonPath | String | The Python module search path |
| ConnectionTimeout | Integer | The number of seconds to wait for application server startup. |
+--------------------------+--------------------+---------------------------------------------------------------+
Log dialog
----------
Use the *Runtime Menu* to access the *Log* dialog:
.. image:: images/runtime_view_log.png
:alt: Runtime View Log
:align: center
Click on the *Reload* button at the bottom to view the latest logs of pgAdmin 4
Server.
When executed, the runtime will automatically try to execute the pgAdmin Python
application. If execution fails, it will prompt you with error message
displaying a *Configure* button at the bottom. You can configure a fixed port
number to avoid clashes of the default random port number with other
applications and a connection timeout if desired.
.. image:: images/runtime_error.png
:alt: Runtime Error
:align: center
If the error is related to Python Path or pgAdmin Python file then you need to
create a file named 'dev_config.json' and specify the following entries:
.. code-block:: json
{
"pythonPath": "/path/to/python.exe",
"pgadminFile": "/path/to/pgAdmin4.py"
}
Note that the *dev_config.py* file should only be required by developers who are
working outside of a standard installation.
The configuration settings are stored in *runtime_config.json* file, which
will be available on Unix systems (~/.local/share/pgadmin/),
on Mac OS X (~/Library/Preferences/pgadmin),
and on Windows (%APPDATA%/pgadmin).
+2
View File
@@ -15,3 +15,5 @@ PL/SQL code.
query_tool
editgrid
schema_diff
erd_tool
psql_tool
+80
View File
@@ -107,6 +107,86 @@ properties of the geometries directly in map, just click the specific geometry:
- *Internet access:* An internet connection is required for the Geometry Viewer
to function correctly.
**JSON Data Editor**
A built in json editor is provided for *JSON/JSONB Data*.Double clicking on json/jsonb
data type cell in data grid will open JSON Editor.Editor provides different mode to
view and edit json data.
.. image:: images/json_editor_modes.png
:alt: Json Editor
:align: center
*Code Mode*:
Provides way to format & compact json data.Also provides ability to repair json data
by fixing quotes and escape characters, removing comments and JSONP notation and
turn JavaScript objects into JSON.
*Tree Mode*:
Enabled to change, add, move, remove, and duplicate fields and values.Provides ability
to searh & hilight data.
*Form Mode*:
Allows only to edit values in json data there by providing ability to keep data structure
unchanged while editing.
*Preview Mode*:
Provides ability to check data before saving and also shows size of current json data.
Format and compact json data as well.
*Editor Toolbar*
Different options are provided to manipulate json data.
Code/Preview mode:
.. image:: images/json_editor_code_preview_tool_bar.png
:alt: Json Editor Code/Preview mode Tool Bar
:align: center
Tree/Form mode:
.. image:: images/json_editor_tree_form_mode_tool_bar.png
:alt: Json Editor Tree/Form mode Tool Bar
:align: center
.. table::
:class: longtable
:widths: 1 3 2
+----------------------+----------------------------------------------------------------------------------------+---------------------------+
| Icon | Behavior | Available in mode |
+======================+========================================================================================+===========================+
| *Format Json* | Click to *Format Json* format json data with proper indentation. | Code, Preview |
+----------------------+----------------------------------------------------------------------------------------+---------------------------+
| *Compact Json* | Click to *Compact Json* get compacted json data. | Code, Preview |
+----------------------+----------------------------------------------------------------------------------------+---------------------------+
| *Sort* | Click to *Sort* icon to set sorting criteria for the data using file values. | Code, Preview, Tree |
+----------------------+----------------------------------------------------------------------------------------+---------------------------+
| *Transform* | Click to *Transform* to filter data using JSME query language. | Code, Preview, Tree |
+----------------------+----------------------------------------------------------------------------------------+---------------------------+
| *Undo* | Click to *Undo* to undo last action performed on data . | Code, Preview, Tree, From |
+----------------------+----------------------------------------------------------------------------------------+---------------------------+
| *Redo* | Click to *Redo* to repat last action performed on data . | Code, Preview, Tree, From |
+----------------------+----------------------------------------------------------------------------------------+---------------------------+
| *Mode* | Click to *Mode* dropdown to change dipaly mode of editor.Different modes avaialble | Code, Tree, From, Preview |
| | are Code, Preview, Tree, From. | |
+----------------------+----------------------------------------------------------------------------------------+---------------------------+
| *Expand All* | Click to *Expand All* to expand json data. | Tree, From |
+----------------------+----------------------------------------------------------------------------------------+---------------------------+
| *Collapse All* | Click to *Redo* to collapse json data. | Tree, From |
+----------------------+----------------------------------------------------------------------------------------+---------------------------+
| *Search Box* | Enter partial/complete string to search in data. | Tree, From |
+----------------------+----------------------------------------------------------------------------------------+---------------------------+
Sort/Filter options dialog
**************************
+235
View File
@@ -0,0 +1,235 @@
.. _erd_tool:
*****************
`ERD Tool`:index:
*****************
The Entity-Relationship Diagram (ERD) tool is a database design tool that provides a graphical representation of database tables, columns, and inter-relationships. ERD can give sufficient information for the database administrator to follow when developing and maintaining the database. The ERD Tool allows you to:
* Design and visualize the database tables and their relationships.
* Add notes to the diagram.
* Auto-align the tables and links for cleaner visualization.
* Save the diagram and open it later to continue working on it.
* Generate ready to run SQL from the database design.
* Generate the database diagram for an existing database.
.. image:: images/erd_tool.png
:alt: ERD tool window
:align: center
You can open multiple copies of the ERD tool in individual tabs simultaneously. To close a copy of the ERD tool, click the *X* in the upper-right hand corner of the tab bar.
Toolbar
*******
The *ERD Tool* toolbar uses context-sensitive icons that provide shortcuts to frequently performed tasks. The option is enabled for the highlighted icon and is disabled for the grayed-out icon.
.. image:: images/erd_tool_toolbar.png
:alt: ERD tool toolbar
:align: center
Hover over an icon on Toolbar to display a tooltip that describes the icon's functionality.
File Options
************
.. table::
:class: longtable
:widths: 1 4 1
+----------------------+---------------------------------------------------------------------------------------------------+----------------+
| Icon | Behavior | Shortcut |
+======================+===================================================================================================+================+
| *Open File* | Click the *Open File* icon to load a previously saved diagram. | Ctrl + O |
+----------------------+---------------------------------------------------------------------------------------------------+----------------+
| *Save* | Click the *Save* icon to perform a quick-save of a previously saved diagram, or to save the | Ctrl + S |
| | diagram to a file. | |
+----------------------+---------------------------------------------------------------------------------------------------+----------------+
| *Save as* | Click the *Save As* to open a new browser dialog and specify a new location to save the diagram. | Ctrl + Shift + |
| | | S |
+----------------------+---------------------------------------------------------------------------------------------------+----------------+
Export Options
**************
.. table::
:class: longtable
:widths: 1 4 1
+----------------------+---------------------------------------------------------------------------------------------------+----------------+
| Icon | Behavior | Shortcut |
+======================+===================================================================================================+================+
| *Generate SQL* | Click the *Generate SQL* icon to generate the DDL SQL for the diagram and open a query tool | Option + Ctrl +|
| | with the generated SQL ready for execution. | S |
+----------------------+---------------------------------------------------------------------------------------------------+----------------+
| *Download image* | Click the *Download image* icon to save the ERD diagram in a image formate | Option + Ctrl +|
| | | I |
+----------------------+---------------------------------------------------------------------------------------------------+----------------+
Editing Options
***************
.. table::
:class: longtable
:widths: 1 4 1
+----------------------+---------------------------------------------------------------------------------------------------+----------------+
| Icon | Behavior | Shortcut |
+======================+===================================================================================================+================+
| *Add table* | Click this button to add a new table to the diagram. On clicking, this will open a table dialog | Option/Alt + |
| | where you can put the table details. | Ctrl + A |
+----------------------+---------------------------------------------------------------------------------------------------+----------------+
| *Edit table* | Click this button to edit a table on the diagram. On clicking, this will open a table dialog | Option/Alt + |
| | where you can change table details. This will enable when a table is selected. | Ctrl + E |
+----------------------+---------------------------------------------------------------------------------------------------+----------------+
| *Clone table* | Click this button to clone the complete table structure, name it with a auto generated name and | Option/Alt + |
| | put it in the diagram. | Ctrl + C |
+----------------------+---------------------------------------------------------------------------------------------------+----------------+
| *Drop table/link* | You can drop a table or link using this button. You need to select a table or link and click on | Option/Alt + |
| | this button to drop it. | Ctrl + D |
+----------------------+---------------------------------------------------------------------------------------------------+----------------+
Table Relationship Options
**************************
.. table::
:class: longtable
:widths: 1 4 1
+----------------------+---------------------------------------------------------------------------------------------------+----------------+
| Icon | Behavior | Shortcut |
+======================+===================================================================================================+================+
| *1M* | Click this button to open a one-to-many relationship dialog to add a relationship between the | Option/Alt + |
| | two tables. The selected table becomes the referencing table and will have the *many* endpoint of | Ctrl + O |
| | the link. | |
+----------------------+---------------------------------------------------------------------------------------------------+----------------+
| *MM* | Click this button to open a many-to-many relationship dialog to add a relationship between the | Option/Alt + |
| | two tables. This option will create a new table based on the selected columns for the two relating| Ctrl + M |
| | tables and link them. | |
+----------------------+---------------------------------------------------------------------------------------------------+----------------+
Utility Options
***************
.. table::
:class: longtable
:widths: 1 4 1
+----------------------+---------------------------------------------------------------------------------------------------+----------------+
| Icon | Behavior | Shortcut |
+======================+===================================================================================================+================+
| *Add/Edit note* | Click this button to make notes on tables nodes while designing the database. | Option/Alt + |
| | | Ctrl + N |
+----------------------+---------------------------------------------------------------------------------------------------+----------------+
| *Auto align* | Click this button to auto align all tables and links to make it look more cleaner. | Option/Alt + |
| | | Ctrl + L |
+----------------------+---------------------------------------------------------------------------------------------------+----------------+
| *Show details* | Click this button to toggle the column details visibility. It allows you to show few or more | Option/Alt + |
| | column details. | Shift + D |
+----------------------+---------------------------------------------------------------------------------------------------+----------------+
Zoom Options
************
.. table::
:class: longtable
:widths: 1 4 1
+----------------------+---------------------------------------------------------------------------------------------------+----------------+
| Icon | Behavior | Shortcut |
+======================+===================================================================================================+================+
| *Zoom to fit* | Click this button to zoom in/out automatically and fit all the tables to the view. | Option/Alt + |
| | | Shift + F |
+----------------------+---------------------------------------------------------------------------------------------------+----------------+
| *Zoom in* | Click this button to zoom in the diagram. | Option/Alt + |
| | | Shift + "+" |
+----------------------+---------------------------------------------------------------------------------------------------+----------------+
| *Zoom out* | Click this button to zoom out the diagram. | Option/Alt + |
| | | Shift + "-" |
+----------------------+---------------------------------------------------------------------------------------------------+----------------+
Table Dialog
************
.. image:: images/erd_table_dialog.png
:alt: ERD tool table dialog
:align: center
The table dialog allows you to:
* Change the table structure details.
* It can be used edit an existing table or add a new one.
* Refer :ref:`table dialog <table_dialog>` for information on different fields.
Table Node
**********
.. image:: images/erd_table_node.png
:alt: ERD tool table node
:align: center
The table node shows table details in a graphical representation:
* The top bar has a *details toggle button* that is used to toggle column details visibility. There is also a *note button* that is visible only if there is some note added. you can click on this button to quickly change the note.
* The first row shows the schema name of the table. Eg. *public* in above image.
* The second row shows the table name. Eg. *users* in above image.
* All other rows below the table name are the columns of the table along with data type. If the column is a primary key then it will have lock key icon eg. id is the primary key in above image. Otherwise, it will have column icon.
* you can click on the node and drag to move on the canvas.
* Upon double click on the table node or by clicking the edit button from the toolbar, the table dialog opens where you can change the table details. Refer :ref:`table dialog <table_dialog>` for information on different fields.
The One to Many Link Dialog
***************************
.. image:: images/erd_1m_dialog.png
:alt: ERD tool 1M dialog
:align: center
The one to many link dialog allows you to:
* Add a foreign key relationship between two tables.
* *Local Table* is the table that references a table and has the *many* end point.
* *Local Column* the column that references.
* *Referenced Table* is the table that is being referred and has the *one* end point.
* *Referenced Column* the column that is being referred.
The Many to Many Link Dialog
****************************
.. image:: images/erd_mm_dialog.png
:alt: ERD tool MM dialog
:align: center
The many to many link dialog allows you to:
* Add a many to many relationship between two tables.
* It creates a relationship tables having columns derived from the two tables and link them to the tables.
* *Left Table* is the first table that is to be linked. It will receive the *one* endpoint of the link with the new relation table.
* *Left Column* the column of the first table, that will always be a primary key.
* *Right Table* is the second table that is to be linked. It will receive the *one* endpoint of the link with the new relation table.
* *Right Column* the column of the second table, that will always be a primary key.
The Table Link
**************
.. image:: images/erd_table_link.png
:alt: ERD tool table link
:align: center
The table link shows relationship between tables:
* The single line endpoint of the link shows the column that is being referred.
* The three line endpoint of the link shows the column that refers.
* If one of the columns that is being referred or that refers is removed from the table then the link will get dropped.
* you can click on the link and drag to move on the canvas.
The Table Notes
***************
.. image:: images/erd_table_note.png
:alt: ERD tool table note
:align: center
* You can use the notes popup to mark some notes while designing the database.
* You open the pop-up using the toolbar note button.
* If some note is added to a table then it will have notes button on the table node. You can click on the button to check/update notes.
+8 -6
View File
@@ -58,13 +58,15 @@ Click the *Columns* tab to continue.
:alt: Exclusion constraint dialog columns tab
:align: center
Use the fields in the *Columns* tab to to specify the column(s) to which the
constraint applies. Use the drop-down listbox next to *Column* to select a
column and click the *Add* icon (+) to provide details of the action on the
column:
Use the fields in the *Columns* tab to specify the column(s) or expression(s)
to which the constraint applies. Use the *Is expression ?* switch to enable
expression text input. Use the drop-down listbox next to *Column*
to select a column. Once the *Column* is selected or the *Expression* is
entered then click the *Add* icon (+) to provide details of the action on the
column/expression:
* The *Column* field is populated with the selection made in the *Column*
drop-down listbox.
* The *Col/Exp* field is populated with the selection made in the *Column*
drop-down listbox or the *Expression* entered.
* If applicable, use the drop-down listbox in the *Operator class* to specify
the operator class that will be used by the index for the column.
* Move the *DESC* switch to *DESC* to specify a descending sort order. The
+1 -1
View File
@@ -49,7 +49,7 @@ Click the *Columns* tab to continue.
:alt: Foreign table dialog columns tab
:align: center
Use the fields in the *Columns* tab to to add columns and their attributes to
Use the fields in the *Columns* tab to add columns and their attributes to
the table. Click the *Add* icon (+) to define a column:
* Use the *Name* field to add a descriptive name for the column.
+4 -1
View File
@@ -35,7 +35,10 @@ Mode is pre-configured for security.
login
user_management
change_user_password
enabling_ldap_authentication
restore_locked_user
ldap
kerberos
oauth2
.. note:: Pre-compiled and configured installation packages are available for
View File
File mode changed.

Before

Width:  |  Height:  |  Size: 15 KiB

After

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 62 KiB

After

Width:  |  Height:  |  Size: 47 KiB

View File
File mode changed.

Before

Width:  |  Height:  |  Size: 26 KiB

After

Width:  |  Height:  |  Size: 26 KiB

View File
File mode changed.

Before

Width:  |  Height:  |  Size: 36 KiB

After

Width:  |  Height:  |  Size: 36 KiB

View File
File mode changed.

Before

Width:  |  Height:  |  Size: 44 KiB

After

Width:  |  Height:  |  Size: 44 KiB

View File
File mode changed.

Before

Width:  |  Height:  |  Size: 58 KiB

After

Width:  |  Height:  |  Size: 58 KiB

View File
File mode changed.

Before

Width:  |  Height:  |  Size: 44 KiB

After

Width:  |  Height:  |  Size: 44 KiB

View File
File mode changed.

Before

Width:  |  Height:  |  Size: 299 KiB

After

Width:  |  Height:  |  Size: 299 KiB

View File
File mode changed.

Before

Width:  |  Height:  |  Size: 46 KiB

After

Width:  |  Height:  |  Size: 46 KiB

View File
File mode changed.

Before

Width:  |  Height:  |  Size: 48 KiB

After

Width:  |  Height:  |  Size: 48 KiB

View File
File mode changed.

Before

Width:  |  Height:  |  Size: 32 KiB

After

Width:  |  Height:  |  Size: 32 KiB

View File
File mode changed.

Before

Width:  |  Height:  |  Size: 166 KiB

After

Width:  |  Height:  |  Size: 166 KiB

View File
File mode changed.

Before

Width:  |  Height:  |  Size: 50 KiB

After

Width:  |  Height:  |  Size: 50 KiB

View File
File mode changed.

Before

Width:  |  Height:  |  Size: 29 KiB

After

Width:  |  Height:  |  Size: 29 KiB

View File
File mode changed.

Before

Width:  |  Height:  |  Size: 25 KiB

After

Width:  |  Height:  |  Size: 25 KiB

View File
File mode changed.

Before

Width:  |  Height:  |  Size: 35 KiB

After

Width:  |  Height:  |  Size: 35 KiB

View File
File mode changed.

Before

Width:  |  Height:  |  Size: 35 KiB

After

Width:  |  Height:  |  Size: 35 KiB

View File
File mode changed.

Before

Width:  |  Height:  |  Size: 39 KiB

After

Width:  |  Height:  |  Size: 39 KiB

View File
File mode changed.

Before

Width:  |  Height:  |  Size: 48 KiB

After

Width:  |  Height:  |  Size: 48 KiB

View File
File mode changed.

Before

Width:  |  Height:  |  Size: 28 KiB

After

Width:  |  Height:  |  Size: 28 KiB

View File
File mode changed.

Before

Width:  |  Height:  |  Size: 184 KiB

After

Width:  |  Height:  |  Size: 184 KiB

View File
File mode changed.

Before

Width:  |  Height:  |  Size: 39 KiB

After

Width:  |  Height:  |  Size: 39 KiB

View File
File mode changed.

Before

Width:  |  Height:  |  Size: 39 KiB

After

Width:  |  Height:  |  Size: 39 KiB

View File
File mode changed.

Before

Width:  |  Height:  |  Size: 22 KiB

After

Width:  |  Height:  |  Size: 22 KiB

Executable → Regular
View File
File mode changed.

Before

Width:  |  Height:  |  Size: 28 KiB

After

Width:  |  Height:  |  Size: 28 KiB

View File
File mode changed.

Before

Width:  |  Height:  |  Size: 47 KiB

After

Width:  |  Height:  |  Size: 47 KiB

View File
File mode changed.

Before

Width:  |  Height:  |  Size: 54 KiB

After

Width:  |  Height:  |  Size: 54 KiB

View File
File mode changed.

Before

Width:  |  Height:  |  Size: 41 KiB

After

Width:  |  Height:  |  Size: 41 KiB

Executable → Regular
View File
File mode changed.

Before

Width:  |  Height:  |  Size: 13 KiB

After

Width:  |  Height:  |  Size: 13 KiB

View File
File mode changed.

Before

Width:  |  Height:  |  Size: 31 KiB

After

Width:  |  Height:  |  Size: 31 KiB

View File
File mode changed.

Before

Width:  |  Height:  |  Size: 30 KiB

After

Width:  |  Height:  |  Size: 30 KiB

View File
File mode changed.

Before

Width:  |  Height:  |  Size: 24 KiB

After

Width:  |  Height:  |  Size: 24 KiB

Executable → Regular
View File
File mode changed.

Before

Width:  |  Height:  |  Size: 35 KiB

After

Width:  |  Height:  |  Size: 35 KiB

View File
File mode changed.

Before

Width:  |  Height:  |  Size: 22 KiB

After

Width:  |  Height:  |  Size: 22 KiB

View File
File mode changed.

Before

Width:  |  Height:  |  Size: 22 KiB

After

Width:  |  Height:  |  Size: 22 KiB

View File
File mode changed.

Before

Width:  |  Height:  |  Size: 31 KiB

After

Width:  |  Height:  |  Size: 31 KiB

View File
File mode changed.

Before

Width:  |  Height:  |  Size: 34 KiB

After

Width:  |  Height:  |  Size: 34 KiB

View File
File mode changed.

Before

Width:  |  Height:  |  Size: 39 KiB

After

Width:  |  Height:  |  Size: 39 KiB

Executable → Regular
View File
File mode changed.

Before

Width:  |  Height:  |  Size: 48 KiB

After

Width:  |  Height:  |  Size: 48 KiB

View File
File mode changed.

Before

Width:  |  Height:  |  Size: 30 KiB

After

Width:  |  Height:  |  Size: 30 KiB

View File
File mode changed.

Before

Width:  |  Height:  |  Size: 37 KiB

After

Width:  |  Height:  |  Size: 37 KiB

View File
File mode changed.

Before

Width:  |  Height:  |  Size: 50 KiB

After

Width:  |  Height:  |  Size: 50 KiB

View File
File mode changed.

Before

Width:  |  Height:  |  Size: 31 KiB

After

Width:  |  Height:  |  Size: 31 KiB

View File
File mode changed.

Before

Width:  |  Height:  |  Size: 34 KiB

After

Width:  |  Height:  |  Size: 34 KiB

View File
File mode changed.

Before

Width:  |  Height:  |  Size: 65 KiB

After

Width:  |  Height:  |  Size: 65 KiB

View File
File mode changed.

Before

Width:  |  Height:  |  Size: 79 KiB

After

Width:  |  Height:  |  Size: 79 KiB

View File
File mode changed.

Before

Width:  |  Height:  |  Size: 48 KiB

After

Width:  |  Height:  |  Size: 48 KiB

View File
File mode changed.

Before

Width:  |  Height:  |  Size: 39 KiB

After

Width:  |  Height:  |  Size: 39 KiB

Executable → Regular
View File
File mode changed.

Before

Width:  |  Height:  |  Size: 39 KiB

After

Width:  |  Height:  |  Size: 39 KiB

View File
File mode changed.

Before

Width:  |  Height:  |  Size: 43 KiB

After

Width:  |  Height:  |  Size: 43 KiB

View File
File mode changed.

Before

Width:  |  Height:  |  Size: 30 KiB

After

Width:  |  Height:  |  Size: 30 KiB

View File
File mode changed.

Before

Width:  |  Height:  |  Size: 39 KiB

After

Width:  |  Height:  |  Size: 39 KiB

View File
File mode changed.

Before

Width:  |  Height:  |  Size: 38 KiB

After

Width:  |  Height:  |  Size: 38 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.3 KiB

View File
File mode changed.

Before

Width:  |  Height:  |  Size: 28 KiB

After

Width:  |  Height:  |  Size: 28 KiB

View File
File mode changed.

Before

Width:  |  Height:  |  Size: 26 KiB

After

Width:  |  Height:  |  Size: 26 KiB

View File
File mode changed.

Before

Width:  |  Height:  |  Size: 34 KiB

After

Width:  |  Height:  |  Size: 34 KiB

View File
File mode changed.

Before

Width:  |  Height:  |  Size: 27 KiB

After

Width:  |  Height:  |  Size: 27 KiB

View File
File mode changed.

Before

Width:  |  Height:  |  Size: 43 KiB

After

Width:  |  Height:  |  Size: 43 KiB

View File
File mode changed.

Before

Width:  |  Height:  |  Size: 34 KiB

After

Width:  |  Height:  |  Size: 34 KiB

View File
File mode changed.

Before

Width:  |  Height:  |  Size: 28 KiB

After

Width:  |  Height:  |  Size: 28 KiB

Executable → Regular
View File
File mode changed.

Before

Width:  |  Height:  |  Size: 55 KiB

After

Width:  |  Height:  |  Size: 55 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 36 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 41 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 37 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 78 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 53 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 102 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 310 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 29 KiB

View File
File mode changed.

Before

Width:  |  Height:  |  Size: 30 KiB

After

Width:  |  Height:  |  Size: 30 KiB

View File
File mode changed.

Before

Width:  |  Height:  |  Size: 33 KiB

After

Width:  |  Height:  |  Size: 33 KiB

View File
File mode changed.

Before

Width:  |  Height:  |  Size: 63 KiB

After

Width:  |  Height:  |  Size: 63 KiB

Loaded 100 of 3944 files, more files were not shown because too many files have changed in this diff. Show more