Compare commits

..
400 Commits
Author SHA1 Message Date
Aditya Toshniwal 7c74b7cdb7 - Pin Electron to v35.4.0 as the v36 is not working on many OS.
- Pin html-to-image to v1.11.11 as latest version breaks ERD image downloads.
2025-05-27 13:02:11 +05:30
Khushboo Vashi e8826863e0 Updated version for v9.4 2025-05-26 18:47:53 +05:30
Pravesh Sharma 4f79deac0b Fixed CSS issue found during testing of issue 6510 2025-05-26 18:32:07 +05:30
Akshay Joshi 695166bde5 Revert "Trying to fix pip error on Windows build machine. pin the pip version to 24.2"
This reverts commit 9ce0e77e61.
2025-05-26 18:10:31 +05:30
Akshay Joshi 9ce0e77e61 Trying to fix pip error on Windows build machine. pin the pip version to 24.2 2025-05-26 13:28:28 +05:30
Libor M. 0b911bf58c Updated Czech translation for v9.4. 2025-05-26 11:14:34 +05:30
yuki 15ca0ba1b6 Updated Portuguese (Brazilian) translation for v9.4 2025-05-26 11:13:57 +05:30
Aditya Toshniwal c6183c9d03 Fixed more issues found while testing changes for large file download. #3369 2025-05-24 15:25:07 +05:30
Aditya Toshniwal dfd896db10 Fixed an issue where pgAdmin failed to focus when previously unfocused and then quit. #8760 2025-05-24 15:23:17 +05:30
yuki ac8f8fb0b0 Updated Portuguese (Brazilian) translation for v9.4
Added new translations there were missing.
2025-05-23 11:31:42 +05:30
Domenico Sgarbossa d6ae6b2773 Updated Italian translation for v9.4 2025-05-22 18:51:25 +05:30
Akshay Joshi a42f789ff0 Fixed an issue where correct error message not displayed when sql statement contains Arabic letters. #7926 2025-05-22 18:49:42 +05:30
Aditya Toshniwal 5d8ec6e5b0 Fix issues found while testing changes for large file download. #3369 2025-05-22 16:41:17 +05:30
Akshay Joshi e711a1bbc6 Updated message catalogs for v9.4 2025-05-22 15:58:58 +05:30
Pravesh Sharma b6e1223e88 Fixed an issue where the result grid slowed down when any column contained a large amount of data. #6510 2025-05-21 18:57:47 +05:30
Akshay Joshi 28921be00f Updated Python and Javascript dependencies. 2025-05-20 14:07:38 +05:30
Anil Sahoo 4e8f29f328 Fixed an issue where light theme briefly appears when pgAdmin loads or tools open, even when a dark or system UI theme is preferred. #8711 2025-05-20 10:36:29 +05:30
Aditya Toshniwal 126e1fb53d Enabled large file downloads for desktop users within the query tool. #3369 2025-05-14 15:30:17 +05:30
Allen HernandezandAllen Hernandez ebf4963758 Fixes venv notations for web build
2) Removes venv notation from web bundling directions
3) Add venv notation after activation

---------
Co-authored-by: Allen Hernandez <2349718+AllenSH12@users.noreply.github.com>
2025-05-14 14:17:13 +05:30
Akshay Joshi eece396b30 Fixed an issue where the PSQL tool would hang when the database encoding was set to SQL_ASCII and certain commands were executed. 2025-05-14 14:05:29 +05:30
Anil Sahoo abcb5f8830 Fixed an issue where the options key was not working as expected in the PSQL tool. #6968 2025-05-14 13:46:16 +05:30
Akshay Joshi ebb4c9994f Update Python and Javascript dependencies. 2025-05-13 12:59:25 +05:30
Aditya Toshniwal 971eee32ea Update MUI from v6 to v7. 2025-05-13 12:51:00 +05:30
Rohit Bhati af84d6b1e0 Handle result grid data changes in View/Edit Data mode by automatically reconnecting to the server if a disconnection occurs. #8608 2025-05-13 11:35:58 +05:30
Koren Peretz 2cb69f09b9 Update the Dockerfile to use UID 5050 instead of the pgadmin user to prevent Kubernetes deployments from failing when securityContext.runAsNonRoot is set to true without specifying securityContext.runAsUser. 2025-05-09 15:24:42 +05:30
Akshay Joshi 0403079a4b 1) Fixed an issue where the Cancel button did not work when attempting to delete a user from the User Management.
2) Fixed an issue where automatic user creation via LDAP failed if an existing Internal user with the same username was already present.
2025-05-09 13:28:23 +05:30
Anil Sahoo 97984eb3ec Fix an issue where, after a database disconnection, the server would disconnect, and the reconnect dialog would repeatedly appear when clicking the Execute button. #8607 2025-05-08 15:48:49 +05:30
Aditya Toshniwal c46fd30446 Fix JS test cases failing because of latest version of @tanstack/react-virtual. 2025-05-07 17:07:56 +05:30
Rohit Bhati ff8a301f6a Enhance contrast for selected and hovered items in the Object Explorer to improve visibility and accessibility. #8595 2025-05-07 12:33:04 +05:30
Aditya Toshniwal 27bd28ee97 Replace Grid with Grid2 as the former is deprecated by MUI 2025-05-06 19:39:33 +05:30
Akshay Joshi fb4d25d907 1) Updated Python and JavaScript dependencies.
2) Updated release note.
2025-05-06 19:07:29 +05:30
Pravesh Sharma ca6f52e7c7 Fixed issues related to column range selection using shift + click. #8713 2025-05-06 15:52:20 +05:30
Yogesh Mahajan 3bdeb9ace1 Implement API fetch error display for select dropdown. #8668 2025-05-06 10:52:42 +05:30
Akshay Joshi f64b59e735 Updated release note. 2025-05-05 14:59:48 +05:30
Pravesh Sharma 5d78f4a89f Fix the issue where an error is displayed when a table is dropped while a query is running. #6564 2025-05-02 14:12:06 +05:30
Anil Sahoo 695f870ce1 Fixed an issue where the query tool returns "cannot unpack non-iterable Response object" when running any query with a database name change. #8607 2025-05-02 10:57:43 +05:30
Akshay Joshi 593b111fdf Add all missing options to the Import/Export Data functionality, and update the syntax of the COPY command to align with the latest standards. #8583
Add support for exporting table data based on a custom query. #8681
2025-04-30 17:51:04 +05:30
Aditya Toshniwal 82efd188c4 Fix pep8 issues from the last commit 2025-04-30 15:38:44 +05:30
Aditya Toshniwal 9df7275429 Add a python script to parse a release note file and convert to Email, Markdown and HTML formats required for pgAdmin release 2025-04-30 15:31:20 +05:30
Akshay Joshi 829876c2e0 1) Sorted requirements.txt alphabetically.
2) Remove packages for Python 3.8.
3) Update JavaScript dependencies.
4) Update Python packages.
2025-04-30 12:43:02 +05:30
Akshay Joshi 41ba6bd1f4 Delete .python-version file 2025-04-29 15:07:31 +05:30
Khushboo Vashi aa282711f8 Try to fix the Fedora build failure. 2025-04-28 14:33:46 +05:30
Akshay Joshi 5a501603ac Updated version for v9.3 2025-04-28 11:00:39 +05:30
Libor M. e7f8cb4ea3 Czech translation for version 9.3 2025-04-28 10:58:35 +05:30
Pravesh Sharma 78d9aa5b76 Fixed issue found while testing PostGIS spatial type constructor support. #2256 2025-04-25 11:13:18 +05:30
Domenico Sgarbossa 038029eb2d Italian translation for v9.3 2025-04-24 18:43:33 +05:30
Aditya Toshniwal a14cc1bd77 Updated message catalogs for v9.3. 2025-04-24 16:19:42 +05:30
Yogesh Mahajan 33389fc48e Fix feature test failures for PG servers. 2025-04-24 15:57:48 +05:30
Aditya Toshniwal d468c16ca2 Fixed more issues found while testing role permissions feature. #7310 2025-04-23 15:47:51 +05:30
Khushboo Vashi fcf7cf5eb2 Update release notes. 2025-04-23 15:41:43 +05:30
Pravesh Sharma b08e90ea88 Add support for type constructors for PostGIS spatial types. #2256 2025-04-23 15:35:42 +05:30
Yogesh Mahajan 75dc42cf24 Allow OAuth 2 login using the username claim if the email is absent from the user profile. #8652 2025-04-23 15:21:25 +05:30
Aditya Toshniwal ec3d142ad9 Fix issues while testing role permissions feature. #7310 2025-04-21 15:14:18 +05:30
Aditya Toshniwal 280f0b0038 Revert "Rebase fork pgadmin-org/react-data-grid to get latest changes and update pgAdmin package.json"
It requires React 19.

This reverts commit 7307c52250.
2025-04-21 15:12:27 +05:30
Aditya Toshniwal 7307c52250 Rebase fork pgadmin-org/react-data-grid to get latest changes and update pgAdmin package.json 2025-04-21 13:48:43 +05:30
Aditya Toshniwal e8cb962890 Add Cache-Control no-cache,no-store,must-revalidate header to dynamically generated utils.js file. #3688 2025-04-16 11:23:35 +05:30
Akshay Joshi 934f17c65e Ensure that the server list is alphabetically sorted in the Query Tool/PSQL workspace. #8636 2025-04-15 16:12:49 +05:30
Akshay Joshi 55f36912f9 Updated JavaScript dependencies. 2025-04-15 11:52:44 +05:30
Akshay Joshi 7b1ad5fa67 Fixed an issue where changes to foreign key constraints were not detected in the schema diff. #8627 2025-04-15 11:46:12 +05:30
Aditya Toshniwal 7d8a915ee0 Add support for custom roles and role permissions management in pgAdmin. #7310 2025-04-15 11:25:31 +05:30
Aditya Toshniwal 8b4df8beb1 Change the shortcut for canceling a running query as it conflicts with the shortcut to open a new query tool. #8628 2025-04-14 13:46:59 +05:30
Aditya Toshniwal f98a74b526 Fixed an issue where the user management tab is not opening in the classic layout. #8651 2025-04-14 13:32:05 +05:30
Aditya Toshniwal 8a0eae2bb0 Fixed an issue where drag and drop function with no parameters does not work. #8613 2025-04-14 12:57:26 +05:30
Aditya Toshniwal 18f47a59c5 Fixed an issue where the query tool went blank when converting history dates to the appropriate locale format. #8632 2025-04-14 12:43:05 +05:30
Akshay Joshi 31b1af2f84 Fixed an issue where filtering on a view caused an error. #8630 2025-04-09 19:00:32 +05:30
Akshay Joshi 4c56e49c66 Updated Javascript dependencies. 2025-04-09 11:56:07 +05:30
Rohit Bhati 2de2c30545 Fixed an issue where Ctrl/Cmd+A in cell editor would select all rows. #8572 2025-04-08 18:29:05 +05:30
Kijong Han 51897dc804 Fixed an issue where shift + click on rows/columns for range selection did not work in the query tool data output window. #5266 2025-04-08 12:43:05 +05:30
Akshay Joshi bbef00a151 Fixed an issue where the scroll position in the Object Explorer was not retained when switching workspaces. #8497 2025-04-07 13:31:00 +05:30
Akshay Joshi 627aa5d695 Added ability to use SQL in the 'DB Restriction' field. #2767 2025-04-04 15:53:12 +05:30
Akshay Joshi 0d8b3c4389 Ensure that graph data is updated even when the Dashboard tab is inactive. #8556 2025-04-04 11:39:37 +05:30
Khushboo Vashi 8031c35160 Fixed an issue where the debugger hangs when stepping into nested function/procedure. #8443 2025-04-03 19:20:28 +05:30
Akshay Joshi 8cf14222ff Updated Javascript dependencies. 2025-04-03 19:07:02 +05:30
Mike Christensen 10b15b3986 Added support for font ligatures. #8629 2025-04-03 19:06:40 +05:30
Aditya Toshniwal 73fefb8603 Fixed an issue where query tool is crashing on macOS 15.4 due to a locale issue. #8623 2025-04-02 15:15:23 +05:30
Akshay Joshi af6c1a24cf 1) Upgraded Gunicorn to version 23.0.0 to address a security vulnerability present in Gunicorn.
2) Resolved an issue where an empty PSQL panel would open if the psql utility was not found in the binary path.
2025-04-01 16:33:50 +05:30
Aditya Toshniwal cfca6f6218 Fixed issues while testing multiple popups issue. #8316 2025-03-31 14:28:56 +05:30
Akshay Joshi c001b7b50a Fixed an issue where closing the pgAdmin main window did not automatically close the View Logs and Configure Runtime dialogs. 2025-03-31 12:59:03 +05:30
Akshay Joshi bd259cda42 Updated version for release v9.2 2025-03-31 11:34:12 +05:30
Akshay Joshi 75be0bc22d Fixed a remote code execution issue in the Query Tool and Cloud Deployment (CVE-2025-2945). #8603 2025-03-31 11:33:37 +05:30
Akshay Joshi 1305d9910b Fixed an XSS vulnerability issue in the Query Tool and View/Edit Data (CVE-2025-2946). #8602 2025-03-31 11:30:26 +05:30
Libor M. 6a850fff10 Czech translation for version 9.2 2025-03-31 11:10:19 +05:30
Aditya Toshniwal 6b9f002366 Fixed an issue where user management tab was not focussed when opened from a non default workspace. #8574 2025-03-28 15:31:51 +05:30
Domenico Sgarbossa 0eb8d6c8d6 Italian translation update for v9.2 2025-03-28 12:18:00 +05:30
Aditya Toshniwal 8a2a5fda1d Update release notes. 2025-03-28 10:42:00 +05:30
Rohit Bhati a2b35b35f3 Fixed an issue where the query tool data grid did not respect the default value for columns of domain type when the domain had a default value. #8483 2025-03-28 10:38:30 +05:30
Aditya Toshniwal f250f5de5e Fixed an issue where delete/rename was done on the wrong file after sorting in Storage Manager. #8597 2025-03-28 10:31:11 +05:30
Akshay Joshi fa60ab0f6a Updated message catalogs. 2025-03-27 19:23:57 +05:30
Akshay Joshi 1d3e0a4455 Revert the fix for #8006 2025-03-27 12:32:46 +05:30
Aditya Toshniwal 82c5febde6 Font family should fallback to Source Code Pro if not valid. #392
Update user management docs.
2025-03-27 11:03:39 +05:30
Akshay Joshi 0914ec24ad Updated release note. 2025-03-26 15:54:52 +05:30
Aditya Toshniwal 57d757d4de Fixed an issue where pgAdmin should fallback to main screen if the last opened screen is disconnected. #8362 2025-03-26 09:21:53 +05:30
Akshay Joshi 7edaac1da7 1) Updated Security.md file.
2) Updated release note.
2025-03-25 12:40:46 +05:30
Aditya Toshniwal 9ab451e163 Open user management in a separate tab instead of a dialog to enhance UI/UX. #8574 2025-03-25 12:33:49 +05:30
jackfromeast 213be44e29 Create SECURITY.md file. 2025-03-25 12:32:10 +05:30
Anil Sahoo cb597d0acb Fixed an issue where the upgrade_check API returned an unexpected keyword argument 'cafile' due to changes in the urllib package supporting Python v3.13. #8577 2025-03-25 11:44:23 +05:30
Akshay Joshi badc6f33bf Updated JavaScript Dependencies. 2025-03-24 17:42:37 +05:30
Akshay Joshi a5993549b8 Disable controls for shared servers that cannot be edited by the users. 2025-03-24 14:30:56 +05:30
Mike Christensen 13b44fffc7 Add an ability to configure the font family for SQL editors. #392 2025-03-24 11:08:49 +05:30
Akshay Joshi fc1a1610a3 Ensure the newly added parameters in the server dialog are incorporated into the Import/Export Servers functionality. #8514 2025-03-20 15:49:43 +05:30
Rohit Bhati 47eca9a19c Fixed an issue where updating the grantee was not correctly applying the privileges. #8546 2025-03-20 15:35:46 +05:30
Akshay Joshi f635df6ccf Added support for post-connection SQL execution, which will be run automatically on each connection made to any database of the server. #4503 2025-03-18 16:54:38 +05:30
Yogesh Mahajan b2669930f5 Ensure that modal dialogs are not triggered more than once to avoid duplicates. #8316 2025-03-18 15:58:16 +05:30
Akshay Joshi f25cde8c5f 1) Unpin the electron version for RHEL 8 as respective issue is fixed.
2) Updated Javascript dependencies.
2025-03-18 10:27:21 +05:30
Rohit Bhati 797bdb8696 Fixed directory owner update & UI issues. #8034 2025-03-17 12:22:06 +05:30
Akshay Joshi c80be9b3a3 1) Align cancel query icon properly on the Dashboard.
2) Update release note.
2025-03-13 16:37:24 +05:30
Pravesh Sharma 84e2b844e0 Removed the pre-install script from the Red Hat build function as it was causing a No such file or directory warning during the update. #8006 2025-03-13 16:35:21 +05:30
Rohit Bhati be534be674 Update the stop/terminate icon at all the places for better UX. #8473 2025-03-12 12:31:23 +05:30
Chris Bandy 846d0eafe6 Change session files garbage collection strategy. #8335
Currently GC for session files is done by the /misc/cleanup endpoint which requires browser UI
to be running. With this change, the pgAdmin server will open a separate thread at a fixed frequency
which will take care of GC independently.
2025-03-11 16:32:30 +05:30
Akshay Joshi cd179a3e9f Updated release note. 2025-03-11 16:17:58 +05:30
Lau Ernebjerg Josefsen 2d10e95311 Add an option to load/replace the servers.json file on each container startup. #8540 2025-03-11 16:14:06 +05:30
Pravesh Sharma f9af74529c Fixed an issue where geometries in the geometry viewer will render partially when the container was resized. #8462 2025-03-10 18:44:24 +05:30
Akshay Joshi 8c9ab2afd9 Update Javascript dependencies. 2025-03-10 17:22:36 +05:30
Yogesh Mahajan 708a570ba0 On the Ubuntu runner, uninstall the default PostgreSQL version before installing any other PostgreSQL version. 2025-03-10 15:39:41 +05:30
Akshay Joshi 074db05f7a Updated release note. 2025-03-10 11:42:43 +05:30
Pravesh Sharma 73b437c0f5 Added support to automatically open a file after it is downloaded in the desktop mode. #4194 2025-03-10 11:38:13 +05:30
Rohit Bhati df5dced926 Change icon buttons to show tooltip even when disabled. #8449 2025-03-08 11:48:08 +05:30
Rohit Bhati 1590df8dfd Change the stop/terminate icon at all the places for better UX. #8473 2025-03-07 11:26:13 +05:30
Akshay Joshi 5ee33cf162 Fixed an issue where the PSQL terminal displays keyname for non alphanumeric keys. #8437 2025-03-05 18:31:49 +05:30
Aditya Toshniwal 7a25da9b06 Add support for restoring plain SQL database dumps. #5871 2025-03-05 18:22:44 +05:30
Akshay Joshi d7faa85338 Pin the electron version to 33.3.2 for RHEL 8 2025-03-05 12:37:50 +05:30
Akshay Joshi cf2328d2cd Fixed PEP8 2025-03-04 15:49:41 +05:30
Akshay Joshi 4e52a8664c Updated Javascript dependencies. 2025-03-03 19:00:59 +05:30
Rohit Bhati 7bae1eb663 Added support for creating Directory nodes in EPAS. #8034 2025-03-03 18:45:21 +05:30
Akshay Joshi 4791897578 Fixed an issue where the Schema Diff was not displaying the difference query when a table had a UNIQUE NULLS NOT DISTINCT constraint. #8479 2025-03-03 18:39:09 +05:30
Aditya Toshniwal 1cbdb435df Update the README.md file based on latest requirements. #8345 2025-02-25 17:06:49 +05:30
Akshay Joshi b59495603a 1) By Default 'Open in a new tab?' should be false.
2) Updated version for release v9.1
3) Updated the release note
2025-02-25 16:50:45 +05:30
Akshay Joshi 58f86a3c32 Updated Javascript dependencies. 2025-02-25 11:38:37 +05:30
Akshay Joshi adcf089357 Updated release note. 2025-02-21 15:00:01 +05:30
Yogesh Mahajan 636821f2ac Added an option to open the file in a new tab within the query tool. #1235 2025-02-21 14:45:41 +05:30
Pravesh Sharma b983b094a3 Fixed an issue where drop-down menus were hidden behind the dock. #8439 2025-02-20 12:12:29 +05:30
Akshay Joshi 53077b6c04 1) Updated chart.js to 4.4.7
2) Fixed an issue where Default Workspace and Preferences button is disabled when
   selecting any node from object explorer.
2025-02-19 16:12:17 +05:30
Aditya Toshniwal a0ddfad655 Fixed an issue where deleting rows in the query tool would delete all rows in the table when 'Select All Remaining Rows' was used. #8460 2025-02-18 17:34:24 +05:30
Yogesh Mahajan 39f92ffae4 Fixed GUI test cases failures on Github actions. 2025-02-18 14:44:32 +05:30
Akshay Joshi 84a5467a5e Updated Sphinx to 7.4.7 2025-02-18 13:34:20 +05:30
Akshay Joshi 35d6277f00 Rename all '10_plus' folders to 'default' as modulewise RESQL tests are not running. 2025-02-18 13:07:03 +05:30
Pravesh Sharma 85290d4e61 Fixed an issue where the column order displayed was incorrect for exclusion constraints with multiple columns. #8430 2025-02-18 11:57:42 +05:30
Yogesh Mahajan 48a26e8979 Ensure the saved passwords are decrypted with the correct encryption key for external authentication in server mode. #8435 2025-02-18 11:54:57 +05:30
Akshay Joshi 53a8cac7f8 Update Javascript dependencies. 2025-02-17 18:37:48 +05:30
Akshay Joshi 96128f6a15 1) Enable the ability to close the 'Welcome' tab in the Query Tool/PSQL Workspace. #8436
2) Fixed an issue where the User Management and Change Password dialogs were hidden when selecting a menu while a workspace other than 'Default' was active. #8418
3) Revert the change of OS from Ubuntu 22.04 to 24.04 for github action failure.
2025-02-17 18:28:56 +05:30
Anil Sahoo e2a80b2465 Fixed an issue where pasting text containing JSON data into the query tool grid would result in incorrect parsing. #8296 2025-02-17 17:41:05 +05:30
Pravesh SharmaandAditya Toshniwal 6dd91c8277 Fixed an issue where the ERD tool fails to open a saved file containing parent-child relationship within the same table. #8389
Fixed an issue in ERD where link notation end-points were not rendering occasionally.

---------

Co-authored-by: Aditya Toshniwal <aditya.toshniwal@enterprisedb.com>
2025-02-17 17:37:30 +05:30
Michal Charemza 83ade5dcc2 Update the query that fetches roles to be faster with many roles.
This changes the query that fetches roles from using the
pg_catalog.shobj_description function to using an explicit join on
pg_catalog.pg_shdescription. In my specific case, in a production system with
over 20k roles, this reduces the query time down from 8 minutes(!) down to
~40ms. Just in case it was a locking issue, I did use pg_activity to
investigate locks, and nothing was being blocked during the 8 minutes.

This fixes a problem that exists only for certain users, and specifically in my
case where the user that runs the query is themselves a member (directly and
indirectly) of a high number of roles. Running the existing query as a user
that has a low number of roles (and specifically, the master user in an AWS RDS
database), the existing query is fairly performant.

My best explanation as to the performance difference comes from the definition
of shobj_description
https://github.com/postgres/postgres/blob/2a8a00674e973dec4d7d74d5e16c7d7cdedf2be5/src/backend/catalog/system_functions.sql#L303-L312.
Each time it's called it runs a query against pg_shdescription and pg_class,
and so in my case runs 20k times, compared to the equivalent of once when doing
the explicit join on pg_shdescription. It should also be noted that in my case
pg_class is quite big - currently about 500k rows (although it has grown to ~5
million in the past, but that was borderline a mistake).

See https://github.com/pgadmin-org/pgadmin4/pull/8457#issue-2853052114 for
EXPLAIN ANALYZE results of the existing query and the updated query.
2025-02-17 17:20:28 +05:30
Akshay Joshi 5c257fe1b9 Change the Operating System from Ubuntu 22.04 to 24.04 to test whether it fixes the github actions. 2025-02-17 12:38:28 +05:30
Yogesh Mahajan 740a50680e Fix the following SonarQube issues:
1. Do not use the Array index in keys
2. Visible, non-interactive elements with click handlers must have at least one keyboard listener.
3. Add replacement fields or use a normal string instead of an f-string.
4. Add a parameter to the parent lambda function
2025-02-13 11:56:10 +05:30
Matthias Wilhelm 706eec0d5b Fix wrong parameter description for Password Exec Command
The documentation mentions that `%HOST%` can be used as a replacement parameter for the Password Exec Field in the Advanced tab of the Server Dialog, but the parameter is actually `%HOSTNAME%`:
2025-02-12 18:12:02 +05:30
Akshay Joshi f63190dc93 Fixed an issue where pgAdmin does not support pg_vector column length/precision. #8181 2025-02-12 16:14:31 +05:30
Akshay Joshi 58bb14253e Revert changes from the previous commit to restore the 'Object Explorer' title. 2025-02-11 20:18:10 +05:30
Akshay Joshi eb7c3ef361 Workspace Layout Update - Enhanced Query Tool and PSQL Behaviour:
With these changes, the Query Tool and PSQL tabs will now open in the same active workspace where the action is initiated.
2025-02-11 15:36:03 +05:30
Pravesh Sharma 2c37ff2893 Fixing following SonarQube Issues:
1. Ternary operators should not be nested.
2. "Exception" and "BaseException" should not be raised.
2025-02-11 12:03:43 +05:30
Akshay Joshi a30a722e11 Update release note. 2025-02-10 15:07:35 +05:30
Aditya Toshniwal 650a15beec Fixed an issue where the query tool was not treating IDENTITY columns as columns with default values when inserting new rows. #8341 2025-02-10 15:05:09 +05:30
Pravesh Sharma 2fc65589c8 Add support for one to one relationship in the ERD tool. #5128 2025-02-10 14:40:20 +05:30
Akshay Joshi bf7f8cdd73 1) Added missing GLOBALLY_DELIVERABLE config parameter in the config.py from the last commit.
2) Fixed API test cases for DBMS_JOB_SCHEDULER
2025-02-07 13:36:11 +05:30
Igor Serko ae76ea3585 Fixed Docker image entrypoint.sh email validation. #8410
Introduces a GLOBALLY_DELIVERABLE variable so that it can be passed to the email validator library
and ultimately allowing the email admin@localhost to be valid, as long as False is passed in.

Also:
* Adjusted the indentation of a command above it in the entrypoint.sh
* Added printing out the output of the validation library so that we can better find what the actual issue is
2025-02-07 12:34:23 +05:30
Akshay Joshi 0b46bdf901 1) Updated Javascript and Python dependencies.
2) Added release note for v9.1
2025-02-07 11:52:08 +05:30
Khushboo Vashi b02e210c68 Python v3.8 does not support parenthesized context expressions. 2025-02-06 14:42:29 +05:30
Aditya Toshniwal e6d2334753 Pin Electron version to 33.3.2 as the versions above it fails to start on RHEL 8/Rocky 8 2025-02-05 19:10:39 +05:30
Akshay Joshi 9f4ce1e7d1 Use HKA registry key instead of HKLM/HKEY_LOCAL_MACHINE in Windows installer.iss.in file. 2025-02-05 15:47:59 +05:30
Akshay Joshi efd0dd2ac0 1) Fixed an issue where selecting all rows and copying using shortcut only, the first attempt fails to copy.
2) Fixed an issue where a single row is copied first and then clicked on "Select All", the previously copied row's highlight color changes.
3) Fixed an issue where non-shared servers are visible in the Existing Servers list on the Welcome page and New Connection dialog.
2025-02-05 10:26:51 +05:30
Akshay Joshi b90a390d5c 1) Run the uninstaller first only if the v8 version is already installed.
2) Delete the MyAppVersion key from the Windows registry during the installation or upgrade.
3) Remove the logic that checks if a 32-bit or 64-bit version of the installer is already installed.
2025-02-05 10:17:46 +05:30
Akshay Joshi 2f495006ea 1) Fixed an issue where the server shows disconnected on the Welcome page, even after the password was provided.
2) Updated the release notes and version information.
2025-02-03 14:26:57 +05:30
Pravesh Sharma dd09986f71 Fixed an issue where quotes were missing in the CREATE script for the tablespace. #8408 2025-02-03 11:50:50 +05:30
Libor M. 41873de29e Czech translation for version 9.0 2025-02-03 10:31:31 +05:30
Akshay Joshi 92c9e59c1f 1) Update version for v9.0
2) Update message catalogs for v9.0
2025-01-30 18:16:05 +05:30
Akshay Joshi d5101b7568 1) Disable PSQL Workspace in Server mode.
2) Fixed an issue where empty binary path throwing an error instead of proper error message.
2025-01-30 17:59:18 +05:30
Anil Sahoo e7888c5265 Fixed an issue where the server without a saved password did not persist the user's latest filter dialog input after disconnection. #6044 2025-01-30 11:10:25 +05:30
Yogesh Mahajan ebeb768a53 Ensure the double-click event is listened to even if the user clicks after the label. 2025-01-30 10:26:11 +05:30
Akshay Joshi 228156d0b6 1) Fixed an issue where the ad-hoc server with SSH Tunnel repeatedly prompted for the password.
2) Fixed an issue where the SSH Tunnel password was not being saved in the External Database if its encoded length exceeded 64 characters.
3) 'Save Password' check box should be hidden for SSH Tunnel password on the Welcome page.
2025-01-29 19:43:23 +05:30
Akshay Joshi 1607875a08 Fixed issues for Workspaces:
1) Unable to add ad-hoc server with External Database.
2) Server list not updating when password is saved on the Welcome page.
3) Icons for Query Tool and PSQL missing on the Welcome page.
4) Error when removing connection parameters.
2025-01-29 17:14:25 +05:30
Akshay Joshi 707d0372ba Update JavaScript Dependencies. 2025-01-29 11:53:58 +05:30
Akshay Joshi 1317e5a921 Change the logic of setval function, so that the next nextval of sequence will return exactly the specified value. #3273 2025-01-28 17:52:21 +05:30
Kristof Hauser 1e00611792 Add support for OAuth2 profile array response, which also takes care of the GitHub Private Email ID issue. #8391 2025-01-28 16:53:56 +05:30
Akshay Joshi 22b7ae6cdc 1) Fixed an issue where loadingText message is not shown in SchemaView.
2) Fixed SonarQube Bugs and Code Smells.
2025-01-24 13:58:21 +05:30
Akshay Joshi 684818def1 Ensure that the Server List on the Welcome page is refreshed only when there are changes in the Object Explorer. 2025-01-23 14:51:39 +05:30
Yogesh Mahajan 5ee0328063 Fix an error during logout from pgAdmin when using OAuth2 authentication with the query tool open. 2025-01-22 21:05:06 +05:30
Akshay Joshi ab98e5f6bb Update Python and Javascript dependecies. 2025-01-22 19:49:35 +05:30
Akshay Joshi 84a8a522e3 1) Fixed an issue where Default Privileges and Privileges not working correctly. #8369
2) Fixed <br/> tag visible issue.
2025-01-22 19:40:13 +05:30
Anil Sahoo 133a59c71b Fixed an issue where filter dialog save fails when the PostgreSQL server/database connection is lost. #6044 2025-01-22 10:06:56 +05:30
Aditya Toshniwal 168aaa227a Update the server list on welcome page when workspace is changed to get the latest server connection info. #7708 2025-01-20 18:45:51 +05:30
Suall1969 74e776ba21 Psycopg binary packages are now available for macOS version < 14.0. 2025-01-20 17:27:08 +05:30
Khushboo Vashi 90eff9a596 Pass an empty string for the table cell tooltip if the cell value is an object. 2025-01-20 16:53:01 +05:30
Akshay Joshi cd86ce08cf Fixed an issue where pgadmin cannot install into path with non ASCII characters. #5204 2025-01-20 16:04:07 +05:30
Akshay Joshi 7e20bf5b75 Remove function call IsPathValid to test non-ascii characters in the path for Windows installer. 2025-01-20 12:25:16 +05:30
Yogesh Mahajan 98f6b1ff12 Ensure the double-click event is not ignored in the browser tree. 2025-01-20 11:21:21 +05:30
Akshay Joshi a410b15e30 Fixed an issue where <br/> tag is visible in the error message when delete any database and it is in use. 2025-01-17 17:16:36 +05:30
Khushboo Vashi 72a3ed9068 Do not display the tooltip if the table cell value is an object. 2025-01-17 15:32:11 +05:30
Rohit Bhati 1be0ff13db Update prop on confirmDelete to fix TypeError. #6513 2025-01-17 14:53:51 +05:30
Aditya Toshniwal 1216f075ce Fixed an issue where PSQL tool is not opening if database name have HTML characters in the name. #8365 2025-01-17 14:53:24 +05:30
Akshay Joshi 99e1f005fc Update Python version to 3.13 2025-01-15 13:44:34 +05:30
Akshay Joshi bf69b16f1f 1) Added the MAINTAIN privilege for PostgreSQL version 17 and above. #8332
2) Updated JavaScript Dependecies.
2025-01-14 14:18:07 +05:30
Khushboo Vashi 36df6d5c8a Fix an issue where using the binary cursor, utf-8 decode error comes up. #8199 2025-01-13 12:23:50 +05:30
Aditya Toshniwal a9974b418c Fixed an issue where cell background color is removed when copied in query tool data output grid. #8273 2025-01-09 15:37:20 +05:30
Rohit Bhati de6fbe7725 Fixed a button focus issue found while testing the dialog button changes. #6513 2025-01-08 17:22:11 +05:30
Khushboo Vashi 172edaa227 Fix an issue where wrong information is shown after using the filter on the Dashboard> State tab. #8320 2025-01-08 12:43:50 +05:30
Akshay Joshi bac50e10f0 1) Fixed an issue where User Language is not getting changed.
2) Fixed an issue where Import/Export Server menu is disabled.
3) Update few JavaScript dependencies.
2025-01-07 13:55:02 +05:30
Yogesh Mahajan b9c7e7e9af Remove the option "With no data (concurrently)" from Refresh MATERIALIZED VIEW context menu. #8309 2025-01-07 12:22:07 +05:30
Akshay Joshi 8c461ffb86 Reverted changes for formatted exception message. #8165 2025-01-06 17:46:34 +05:30
Akshay Joshi 1934a75eee Updated Javascript packages. 2025-01-06 12:23:10 +05:30
Akshay Joshi 90cdeeff0a Modified logic for formatted exception message. #8165 2025-01-03 20:56:47 +05:30
Yogesh Mahajan 6d45dd4491 Ensure master password pop up is not shown on setting MASTER_PASSWORD_REQUIRED to false. #8299 2025-01-03 20:50:32 +05:30
Rohit Bhati b22bfdf74b Only the python version should be shown in the about dialog. #8249 2025-01-03 20:49:56 +05:30
Aditya Toshniwal 6dab60d9e4 Fixed an issue where copying query tool output cell is not working if any SQL text is selected. #8273
Rebase react-data-grid fork to latest.
2025-01-03 14:03:33 +05:30
Anil Sahoo 657bf08fb8 Fixed an issue where keys like Backspace, Enter, and Input keys were shown as text in the PSQL tool. #6968 2025-01-03 12:22:24 +05:30
Akshay Joshi ff1d9e20d1 Fixed an issue where error message from the database server need space between two sentences. #8165 2025-01-02 18:14:51 +05:30
Yogesh Mahajan d03553be7a Fix the error occurring while loading preferences on startup. #8256 2025-01-02 18:12:24 +05:30
Yogesh Mahajan 5dc52446f3 Fixed the issues reported while testing #8208 2025-01-02 15:47:25 +05:30
Akshay Joshi eb517e6df8 Fixed following issues for Workspace:
1. On the welcome page, the Password should be cleared when the user/db is changed.
2. Added a spinner when we tried to connect to the existing remote server.
3. Details should be cleared when we select the existing server but cancel when it asks for the password.
4) Return from the chageWorkspace function if clicking on the same workspace button multiple times.
2025-01-02 13:24:13 +05:30
Akshay Joshi 621d66fb57 Add correct validation for Authlib. 2025-01-01 11:58:10 +05:30
Akshay Joshi 964d211260 Copyright updated for 2025 2025-01-01 11:26:42 +05:30
Aditya Toshniwal c83d997f2f Make depedabot use Python v3.8.
Update release notes.
2025-01-01 10:42:49 +05:30
Rohit Bhati 7a9a45b065 Fixed an issue where tooltip on a dropdown button is blocking access to dropdown menu. #8255 2025-01-01 10:31:48 +05:30
Rohit Bhati 700ecaef4a Show the python version used for the pgAdmin server in the about dialog. #8249 2025-01-01 10:28:58 +05:30
Anil Sahoo 19c8fcd775 Fixed jest test cases failing due to an update of react-resize-detector package. 2024-12-30 17:22:07 +05:30
Rohit Bhati bcd6f3f429 Fix a formatting issue in View/Edit tool generated SQL where some filters are applied. #8254 2024-12-30 11:56:24 +05:30
dependabot[bot] 92e531db02 Javascript dependency: Bump react-resize-detector in /web 2024-12-24 11:35:26 +05:30
dependabot[bot] f81c546069 Javascript dependency: Bump @mui/icons-material in /web 2024-12-24 11:34:49 +05:30
dependabot[bot] 68f41dd5c6 Javascript dependency: Bump @tanstack/react-query in /web 2024-12-24 11:33:40 +05:30
dependabot[bot] 1be9dd4033 Python dependency: Update authlib requirement from ==1.3.* to ==1.4.* 2024-12-24 11:32:57 +05:30
dependabot[bot] 0c6776b713 Python dependency: Update flask-socketio requirement. 2024-12-24 11:32:36 +05:30
Akshay Joshi 9cd8492ec1 Fixed an issue where Schema Diff not produce difference script for Index definition with where condition. #8072 2024-12-19 16:40:18 +05:30
Akshay Joshi 6df5d14a60 Fixed an issue where properties dialog throwing an error for Materialized View. #8209 2024-12-19 15:55:23 +05:30
Anil Sahoo 91881ad6d3 Fixed an issue where option key was not registering in PSQL tool. #6968 2024-12-19 15:40:23 +05:30
Akshay Joshi e011ad02a5 Remove console log 2024-12-18 18:43:04 +05:30
Akshay Joshi fdf5d12196 1) Fixed schema diff workspace button is disabled for the first tab.
2) Adhoc servers should connect with service file and open the Query/PSQL tool.
2024-12-18 18:19:13 +05:30
Rohit Bhati 8af25ba0c1 Change button labels and color in delete confirmation dialog for all objects to improve UX. #6513 2024-12-18 17:25:36 +05:30
Akshay Joshi 2ba4f79a46 Package 'rc-resize-observer' throwing error on Windows so pin the version. 2024-12-18 12:46:18 +05:30
Akshay Joshi 185e0f61e2 Close the connection and delete adhoc server if all it's Query tool and PSQL connections are closed. 2024-12-17 17:57:25 +05:30
Aditya Toshniwal e84f4cd35b Fix an issue where view/edit tool is not opening in workspace layout.
Fixed few other theme related issues.
2024-12-17 17:03:37 +05:30
Yogesh Mahajan eef20dc5a9 Correct the documentation for the MFA configuration. #8142 2024-12-17 11:50:25 +05:30
Akshay Joshi 0b65dcd4ef Updated Javascript dependencies. 2024-12-17 11:36:18 +05:30
Akshay Joshi ba58b140d4 Updated version of liblz4 in Docker file. 2024-12-16 14:58:47 +05:30
Yogesh Mahajan a0cd6c6a88 Allow deleting the entry while creating/adding new label to enumeration type. #8208 2024-12-16 14:54:24 +05:30
Grégoire Bellon-Gervais 776e092a89 Fix in case of the file does not exist (#8258) 2024-12-16 14:53:18 +05:30
Akshay Joshi fe6e21a08b Enhanced pgAdmin 4 with support for Workspace layouts. #7708 2024-12-16 14:52:56 +05:30
Akshay Joshi 4e2fd404c0 pgagent extension should be created only EPAS < 17. 2024-12-12 16:49:11 +05:30
Akshay Joshi ae9d324f8f Updated Python & Javascript dependencies. 2024-12-12 14:54:31 +05:30
Akshay Joshi 6f8fb6f49d pgAgent for EPAS is no more supported from v17, so changing the github actions accordingly. 2024-12-11 18:56:24 +05:30
Akshay Joshi 52d6017ce5 Removed PG/EPAS 12 and Added PG/EPAS 17 for github actions. 2024-12-11 12:31:53 +05:30
Aditya Toshniwal 9e58717321 Fix text wrapping issue for tags feature. #8192 2024-12-09 18:04:47 +05:30
Akshay Joshi c3a334f8df 1) Update the repo to the version 2.0 for downloading EPAS.
2) Use 'ubuntu-22.04' instead of 'ubuntu-latest'.
2024-12-09 12:32:03 +05:30
Akshay Joshi 72a4f93e4f Updated version for release v8.14 2024-12-09 11:51:07 +05:30
Libor M. 09e13b2f37 Czech translation for version 8.14 2024-12-09 11:33:50 +05:30
Aditya Toshniwal 60078c37a3 Add a new config MAX_SERVER_TAGS_ALLOWED to limit the number of tags on server node. #8192 2024-12-06 12:16:15 +05:30
Yogesh Mahajan 1cf9ced260 Fixed the issues reported while testing #7330. 2024-12-06 12:08:24 +05:30
Domenico Sgarbossa 50cf6489b9 Italian translation updated for v8.14 2024-12-06 11:34:10 +05:30
Rohit Bhati 621a48c642 More fixes related to query tool prompting for unsaved changes when there are no changes. #8127 2024-12-05 19:03:31 +05:30
Akshay Joshi c841c82220 Update message catalogs for v8.14 2024-12-05 18:40:39 +05:30
Yogesh Mahajan 22b89265d6 Ensure CSRF errors handled to return unauthorized response. #8065 2024-12-05 16:54:35 +05:30
Anil Sahoo e2c20b5022 Fixed an issue where a column name change in the edit dialog of the table node does not show the updated column name. #7892 2024-12-05 16:53:50 +05:30
Aditya Toshniwal 2dd7de73b9 Update dependabot.yml to check for updates on a weekly basis instead of daily. 2024-12-05 16:31:38 +05:30
Khushboo Vashi bd227e03bd Fix an issue where pgAdmin crashes on accessing the dashboard state tab when database is super busy. #7809 2024-12-05 15:00:35 +05:30
Akshay Joshi 413202899f Update release note. 2024-12-05 12:23:29 +05:30
Aditya Toshniwal bd2a484c2f Added support for adding tags on a server node. #8192 2024-12-05 12:18:26 +05:30
Pravesh Sharma 5e8a75cdf9 Added escaping for the placeholder parameters before passing it to the passexec command. #6794 2024-12-04 15:42:45 +05:30
Yogesh Mahajan d8ed75dbfd Ensure correct custom SSL certificate passed in connection string. #8215 2024-12-04 15:38:27 +05:30
dependabot[bot] 4392b83a98 Javascript dependency: Bump @tanstack/react-query in /web 2024-12-04 11:41:29 +05:30
Aditya Toshniwal 256d1e55c8 Fixed an issue where doing Ctrl/Cmd+C on a selected text in a cell editor of data output in the query tool copied the complete text. #8157 2024-12-04 11:32:01 +05:30
Aditya Toshniwal c2dcfdb96f Update package.json and yarn.lock to use yarn v3.8.7 2024-12-04 09:47:45 +05:30
Khushboo Vashi 46c7562ed2 Update release note. 2024-12-03 17:52:39 +05:30
Yogesh Mahajan 42018e69a5 Add support to deploy pgAdmin in container with readOnlyRootFilesystem to true. #7330 2024-12-03 17:50:20 +05:30
Akshay Joshi 56c6fc6b72 Updated Javascript dependencies. 2024-12-03 11:58:25 +05:30
dependabot[bot] c0a6ff3029 Javascript dependency: Bump zustand from 4.5.5 to 5.0.1 in /web 2024-12-02 12:13:43 +05:30
dependabot[bot] 79f3db5ea5 Javascript dependency: Bump @tanstack/react-query in /web 2024-12-02 11:27:55 +05:30
dependabot[bot] b5327cbe17 Javascript dependency: Bump yarn-audit-html from 4.0.0 to 7.3.2 in /web 2024-12-02 11:24:41 +05:30
dependabot[bot] 217e9ed0b1 Python dependency: Update typer[all] requirement in /web/regression 2024-12-02 11:24:21 +05:30
dependabot[bot] 82c7a94023 Javascript dependency: Bump @tanstack/react-query in /web 2024-12-02 11:24:01 +05:30
dependabot[bot] 1a1b63f92a Javascript dependency: Bump @types/classnames 2024-12-02 11:23:40 +05:30
Pravesh Sharma 6810fa6ce6 Add support for passing connection details as placeholders in the passexec command. #6794
Added a fix where electron app menu was not refreshing when node selection changed.
2024-11-29 17:54:07 +05:30
Aditya Toshniwal 8876c4241f Update package.json to use yarn v3.8.6 2024-11-29 12:08:42 +05:30
Yogesh Mahajan 190574b3af Fix issues more scenarios related to crypt key missing on backend server restart. #8065 2024-11-29 12:05:46 +05:30
Akshay Joshi fac1857579 Updated yarn.lock 2024-11-29 11:27:03 +05:30
dependabot[bot] acedd38899 Javascript dependency: Bump imports-loader from 4.0.1 to 5.0.0 in /web 2024-11-29 11:08:59 +05:30
dependabot[bot] e3bf110f1f Javascript dependency: Bump style-loader from 3.3.4 to 4.0.0 in /web 2024-11-29 11:08:40 +05:30
dependabot[bot] 638d597061 Python dependency: Update cryptography requirement 2024-11-29 11:06:56 +05:30
dependabot[bot] 588aa88144 Python dependency: Update cryptography requirement in /web/regression 2024-11-29 11:06:36 +05:30
dependabot[bot] c918407eb3 Javascript dependency: Bump @testing-library/react in /web 2024-11-29 11:06:15 +05:30
dependabot[bot] f87c981974 Javascript dependency: Bump electron from 33.1.0 to 33.2.1 in /runtime 2024-11-29 11:05:52 +05:30
dependabot[bot] 360ec29963 Javascript dependency: Bump date-fns from 3.6.0 to 4.1.0 in /web 2024-11-29 11:05:31 +05:30
Aditya Toshniwal 657b0f82ec Fixed an issue where query tool throws syntax error if a newly added row is untouched and saved. #8028
Fixed an issue where auto-width of wide columns in data output is incorrectly calculated. #8158
2024-11-28 14:18:13 +05:30
dependabot[bot] 2813d82996 Javascript dependency: Bump ip-address from 9.0.5 to 10.0.1 in /web 2024-11-28 10:54:22 +05:30
dependabot[bot] b13dd2abc2 Javascript dependency: Bump axios from 1.7.7 to 1.7.8 in /runtime 2024-11-28 10:53:53 +05:30
dependabot[bot] a5a5503821 Python dependency: Bump selenium in /web/regression 2024-11-28 10:53:29 +05:30
Anil Sahoo cd2f48aeb1 Fixed an issue in schema diff where an error message popup was showing some garbage without any info. #8098 2024-11-28 10:16:41 +05:30
Aditya Toshniwal 88e515093c Show auto-complete column names in filtered rows dialog of table and filter options of view/edit data tool. #3751
Allow setting NULL ordering for columns in view/edit data filter dialog. #3317
2024-11-28 10:13:57 +05:30
Pravesh Sharma 9ef5a53790 Add a user preference to enable/disable alternating row background colors in the data output of query tool. #8134
Fixed some theme related issues.
2024-11-27 11:23:13 +05:30
Aditya Toshniwal da530824d6 Fixed an issue where indent with space was not aligning to next tab position. #7486 2024-11-25 16:42:07 +05:30
Aditya Toshniwal ea693396b8 Update MUI from v5 to v6 2024-11-25 16:36:21 +05:30
Khushboo Vashi f4cba74bf6 Fixed an issue where querying a foreign table gives the error 'ForeignTableCommand' object has no attribute 'auto_commit'. #7384 2024-11-25 14:40:26 +05:30
dependabot[bot] 8b68ea6465 Javascript dependency: Bump imagemin from 8.0.1 to 9.0.0 2024-11-25 11:48:04 +05:30
dependabot[bot] 69046a9429 Python dependency: Update jsonformatter requirement. 2024-11-25 11:46:46 +05:30
dependabot[bot] f3f8c1b7e8 Python dependency: Update jsonformatter requirement 2024-11-25 11:46:24 +05:30
Aditya Toshniwal 042888f5d7 Fixed an issue where ERD auto-layout should: #6592 (#8167)
- Always generate right-angled links
- Switch port to Left/Right for the best link route.
2024-11-22 16:26:50 +05:30
Akshay Joshi ec197c68b8 Updated release note. 2024-11-21 15:58:26 +05:30
Yogesh Mahajan 026c0d2389 Ensure the crypt key is retrieved correctly on backend server restart. #8065 2024-11-21 15:55:38 +05:30
Akshay Joshi 032583e280 Updated release note. 2024-11-21 11:56:30 +05:30
dependabot[bot] 57b3771450 Javascript dependency: Bump @testing-library/jest-dom 2024-11-21 11:22:04 +05:30
Pravesh Sharma 4dbfdd8740 Added an EPAS 17 resql test case for builtin locale provider. #8095 2024-11-21 11:21:05 +05:30
Aditya Toshniwal f23fe38e0b Update release notes. 2024-11-21 10:59:08 +05:30
Rohit Bhati 321366489d Fixed an issue where query tool should show results and messages only from the last executed query. #8010
Fixed an issue where query tool should not prompt for unsaved changes when there are no changes. #8127
2024-11-21 10:52:43 +05:30
Anil Sahoo 6d5b1673e6 Fix SonarQube code smells for PgTree directory. 2024-11-19 15:45:00 +05:30
Anil Sahoo 8be65ceb7b Fixed an issue related to the query tool update connection after the server disconnected from the object explorer. #7865 2024-11-19 15:44:40 +05:30
Akshay Joshi a8384a8826 Added new language Chinese (Traditional) and rename language code for Chinese (Simplified) 2024-11-19 14:20:25 +05:30
Akshay Joshi 9645bb3911 Upgrade Flask to 3.1.* for Python version >= 3.9 2024-11-18 20:59:38 +05:30
dependabot[bot] 847059b717 Javascript dependency: Bump mini-css-extract-plugin 2024-11-18 20:49:13 +05:30
dependabot[bot] 08c776e308 Javascript dependency: Bump @eslint/plugin-kit 2024-11-18 20:48:17 +05:30
dependabot[bot] 716ef2f0db Javascript dependency: Bump eslint from 9.14.0 to 9.15.0 2024-11-18 20:47:44 +05:30
Aditya Toshniwal c5d5fbdafd Fixed an issue where Ctrl/Cmd + A was not selecting all data in query tool data grid. #5099 2024-11-14 16:56:03 +05:30
Aditya Toshniwal 9a8d520abd Fix few issues found in menu rendering code and GUI test cases 2024-11-14 14:49:07 +05:30
Aditya Toshniwal 296befc881 Code refactoring at multiple places to improve re-usability 2024-11-14 14:16:38 +05:30
Aditya Toshniwal 00d3aaa1fd Refactor menu building code to support sub-menus of any depth 2024-11-14 13:36:42 +05:30
Akshay Joshi 64399901ad Added release note for 8.14 2024-11-14 13:23:58 +05:30
Pravesh Sharma 0aba9703cd Added support for a builtin locale provider in the Database dialog. #8095 2024-11-14 13:20:01 +05:30
Yogesh Mahajan f8192b82b8 Allow the use of a pgpass file in the pgAdmin container via Docker secrets. #5786 2024-11-14 13:09:21 +05:30
John (Haipeng) Jiang 040e988323 Schema Diff bug when comparing materialized views with indices: key 'indrelid' needs to be ignored. 2024-11-14 12:43:33 +05:30
dependabot[bot] 849cd65bb7 Javascript dependency: Bump valid-filename from 2.0.1 to 4.0.0 in /web 2024-11-14 12:42:46 +05:30
dependabot[bot] 382a35c25e Python dependency: Update typer[all] requirement 2024-11-14 12:42:21 +05:30
dependabot[bot] 0c22b78cf9 Python dependency: Update typer[all] requirement in /web/regression 2024-11-14 12:41:57 +05:30
dependabot[bot] 7d1a08f22f Javascript dependency: Bump @tanstack/react-query in /web 2024-11-14 12:41:16 +05:30
dependabot[bot] bce53e02e5 Javascript dependency: Bump exports-loader from 4.0.0 to 5.0.0 in /web 2024-11-14 12:40:55 +05:30
Kuo Chaoy 606b5287be Chinese (Simplified) translation for v8.14 2024-11-14 10:46:14 +05:30
Nicolas b278265005 French translation for v8.13 2024-11-11 15:03:29 +05:30
Aditya Toshniwal f9d881ffa6 Fix GUI test cases failing because of previous commit 2024-11-08 18:09:39 +05:30
Aditya Toshniwal 6fcc4ae6a2 More fixes for issues found while testing query tool pagination changes. #1780 2024-11-08 15:48:24 +05:30
Domenico Sgarbossa 67d3f14c3d Italian translation for v8.13 2024-11-08 11:45:16 +05:30
Aditya Toshniwal 947dbf6d0a Update release notes. 2024-11-07 22:02:18 +05:30
Rohit Bhati 173cfb72b2 Format dashboard graph metrics for better readability. #6016 2024-11-07 22:00:45 +05:30
Akshay Joshi 2e61eb0990 Updated message catalogs for v8.13 2024-11-07 19:08:40 +05:30
Aditya Toshniwal 3417186df7 Fix issues found while testing pagination changes. #1780 2024-11-07 18:02:39 +05:30
Aditya Toshniwal 772c6ecd84 Remove the dependency on python packages eventlet and greenlet. #8102 2024-11-07 16:45:18 +05:30
dependabot[bot] efe7f1de6a Javascript dependency: Bump electron from 33.0.2 to 33.1.0 in /runtime 2024-11-07 11:37:58 +05:30
Pravesh Sharma b51eef12b7 Add an object menu option to disconnect all server and database connections. #1984 2024-11-06 15:52:31 +05:30
Akshay Joshi 6cb71c9ae4 Werkzeug 3.1 requires python version >= 3.9. 2024-11-06 12:37:51 +05:30
dependabot[bot] 2e098c487a Python dependency: Bump selenium in /web/regression 2024-11-06 11:39:05 +05:30
dependabot[bot] e592dfde2a Javascript dependency: Bump eslint from 9.13.0 to 9.14.0 in /runtime 2024-11-06 11:38:32 +05:30
dependabot[bot] 7168499521 Python dependency: Update werkzeug requirement from ==3.0.* to ==3.1.* 2024-11-06 11:37:45 +05:30
Yogesh Mahajan f5f79a516a Fix SELinux permission issue. 2024-11-05 11:51:02 +05:30
Aditya Toshniwal 44dc78f4df - Update few JS dependencies.
- Update runtime documentation page.
2024-11-04 13:47:30 +05:30
Akshay Joshi 25c3142586 Updated python packages. 2024-11-02 17:39:15 +05:30
Aditya Toshniwal a44424d5fa Update release notes 2024-10-31 19:23:49 +05:30
Aditya Toshniwal bb4777578a Remove bootstrap from the runtime code and update both yarn.lock files. #8077 2024-10-31 18:07:26 +05:30
Pravesh Sharma 2f4cae35bd Updated the react-menu library from v2 to v4. #8061 2024-10-30 17:08:24 +05:30
Rohit Bhati a9bfa8a71d Fix multiple issues related to debugger params dialog input. #7883
- Handle multiple possible values for a boolean parameter.
- Disable value input when "Use default" is enabled.
2024-10-29 16:01:46 +05:30
Aditya Toshniwal 9e3f5f53cc Pin the python version for python tests git runners to 3.12 until pgAdmin supports latest 2024-10-28 14:12:29 +05:30
Khushboo Vashi 8b354aec1d Update Release Notes. 2024-10-19 10:48:18 +05:30
Pravesh Sharma 6101e72552 Fix the QR code generation issue for 2FA. 2024-10-18 19:34:31 +05:30
Yogesh Mahajan 898c7b27df Fix the Jinja2 error for python 3.8. 2024-10-18 19:30:42 +05:30
Pravesh Sharma 4d7fc8be52 Resolved issues reported during testing of #7655. 2024-10-18 13:05:59 +05:30
Akshay Joshi f819841430 Update the release note. 2024-10-17 17:33:08 +05:30
Pravesh Sharma 5d008f0525 Fixed an issue where the query tool was crashing when an empty geometry was being rendered. #7655 2024-10-17 14:13:40 +05:30
Aditya Toshniwal b0d4200aa0 Few UX improvements in query tool pagination. #1780 2024-10-15 16:25:39 +05:30
Akshay Joshi 167bbe100e Another attempt to fix signtool error on Windows 2024-10-15 14:48:14 +05:30
Akshay Joshi 4e7422ed4b Fixed an issue where the Windows Installer was missing a Digital Certificate. 2024-10-15 13:32:11 +05:30
Akshay Joshi 867b2a5149 Updated version for release v8.13 2024-10-14 16:20:54 +05:30
Yogesh Mahajan 2cc8f5f272 Ensure server connection is successful for sslrootcert=system in server configuration. #7907 2024-10-14 16:17:46 +05:30
Kira 9be0fef470 Indonesian translation for version 8.13 2024-10-14 11:33:52 +05:30
Nicolas b4759e776e French translation for version 8.13 2024-10-14 11:29:28 +05:30
Domenico Sgarbossa 1d8dfc110e Italian translation for version 8.13 2024-10-14 11:23:47 +05:30
Libor M. 6ed615a1fc Czech translation for version 8.13 2024-10-14 11:23:19 +05:30
Akshay Joshi 7d12dc3b80 Remove unused variable from Debugger. 2024-10-10 17:54:15 +05:30
Akshay Joshi 72a102aac8 Update message catalog for v8.13 2024-10-10 17:51:59 +05:30
Akshay Joshi 17883fbd84 Use PG17 as the default in the container. #8022 2024-10-10 15:55:43 +05:30
Pravesh Sharma 7a7782a350 Fixed an issue in the debugger where function arguments of the character data type were being truncated. #8007 2024-10-10 15:25:08 +05:30
Rohit Bhati b649094d36 Fix the issue where rows do not retain shading when scrolling. #8013 2024-10-10 15:19:24 +05:30
Aditya Toshniwal 8c45dea975 Fixed an issue where graphical explain keeps the node details open even after plan changed. #7993 2024-10-10 10:50:11 +05:30
Rohit Bhati 509c696aa3 Fixed an issue where the copy shortcut was not working in the Query Tool data grid. #7920 2024-10-09 17:06:51 +05:30
Yogesh Mahajan 866db40f48 Fixed the issues reported while testing. #5869 2024-10-09 17:05:34 +05:30
Aditya Toshniwal 9169d3d4bf Fixed an issue where cursor selection is not visible in the PSQL tool. #7957 2024-10-09 14:42:30 +05:30
Tomas Dabašinskas f1e48b719d Fix a typo in docs for google oauth2
It should probably be `userinfo`, not `useinfo` 🙂
2024-10-07 19:05:46 +05:30
Akshay Joshi 081bebaf80 Update release note. 2024-10-07 11:47:31 +05:30
Yogesh Mahajan 1fe840fcac Allow to pass PGADMIN_CONFIG_CONFIG_DATABASE_URI from docker secrets. #5869 2024-10-07 11:44:20 +05:30
Anil Sahoo 6cccb5da31 Fixed an issue where Dashboard tab showing 'Something went wrong'. #7955 2024-10-07 11:41:27 +05:30
Akshay Joshi 6c3f0a4606 1) Updated French Translation.
2) Updated release note.
2024-10-04 12:26:37 +05:30
Rohit Bhati d736f4266c Fixed an issue where default EOL in the query tool should be based on the OS. #7393 2024-10-03 17:29:58 +05:30
Rohit Bhati 33c88ceb68 - Move 'About pgAdmin 4' to app menu on macOS. #7289
- Add appropriate minimum width and height setting for desktop apps to avoid app accidentally going below visibility levels. #7988
2024-10-03 16:29:11 +05:30
Akshay Joshi a1f8e010b7 qrcode 8.* not available with Python 3.8. Fixed 2024-10-03 10:43:46 +05:30
dependabot[bot] d924a7fb8d Python dependency: Update qrcode requirement from ==7.* to ==8.* 2024-10-03 09:53:08 +05:30
dependabot[bot] 95905cfd5b Python dependency: Update flask-socketio requirement in /web/regression 2024-10-03 09:51:52 +05:30
Dave Page c0122a72c8 Update the Windows build to work with Meson-built PostgreSQL and winpgbuild. 2024-10-01 15:51:43 +01:00
Dave Page ff838e43df Make the vcredist filename configurable, as the name has changed in newer VC++ releases. 2024-10-01 12:38:47 +01:00
Aditya Toshniwal c6d7a0a8da Add missing eslint React rules and fix the linter errors. 2024-10-01 16:32:04 +05:30
Akshay Joshi 485c654c6e Updated release note. 2024-10-01 16:16:47 +05:30
dependabot[bot] 265bf61adf Python dependency: Bump psycopg[c] in web/regression 2024-10-01 15:51:42 +05:30
dependabot[bot] 0bcabd59d3 Python dependency: Bump psycopg[c] from 3.2.2 to 3.2.3 2024-10-01 15:51:03 +05:30
dependabot[bot] 6bda0d4891 Javascript dependency: Bump jsoneditor from 9.10.5 to 10.1.0 2024-10-01 15:50:43 +05:30
dependabot[bot] 97ddab93af Javascript dependency: Bump eslint from 9.11.0 to 9.11.1 2024-10-01 15:50:22 +05:30
Aditya Toshniwal 6322674d98 Replace infinite scrolling with pagination in query tool data output for better UX and performance. #1780 2024-10-01 14:47:12 +05:30
Rohit Bhati f8fb78be11 1) Alternate the background color of rows to enhance readability. #2874
2) Make the background color for the serial number and header cells distinct. #7863
2024-10-01 12:21:44 +05:30
Ashesh Vashi 15c37b620e Fixed issues reported in #7958
* Fixed issues reported in #7954

- Search wasn't working as we were using the wrong row-index, while
  rendering it.
- Fixed the CSS issue with the alignment of the search input box.
- Pass the row object while rendering the 'DataRow' component, to
  improve the performance as it repeatedly calls the filtering function for each row.
- Changed the order of the validators on a field to prioritize the
  'empty' string validator over the unique-id validator in a
  collection.
- Use 'row.index' instead of rowId, while rendering a grid row
2024-10-01 12:06:59 +05:30
Akshay Joshi 28eb2c0b4b Update release note. 2024-09-27 16:25:51 +05:30
Pravesh Sharma 535c7eeef8 Fixed an issue where the dock layout was not saved upon closing a tab. #7919 2024-09-27 16:22:48 +05:30
Pravesh Sharma f0ecc95ca9 Fixed an issue to allow the Enter key to save data in the result grid text editor. #5307 2024-09-27 12:18:07 +05:30
Rohit Bhati 0e63914ab3 Fixed an issue where the copy shortcut CTRL +C was not working in the Query Tool data grid. #7920 2024-09-27 12:17:21 +05:30
Yogesh Mahajan 9b64acb3d2 Allow OAuth2 params OAUTH2_NAME, OAUTH2_DISPLAY_NAME, OAUTH2_ICON, OAUTH2_BUTTON_COLOR to be optional. #7965 2024-09-27 10:35:21 +05:30
Akshay Joshi 0ab5e0d4ef Update release note. 2024-09-24 19:44:28 +05:30
Rohit Bhati 4cb0f87dfd Added support for auto-detecting and setting the End-of-line character (LF/CRLF) in the query tool editor. #7393 2024-09-24 16:39:08 +05:30
Pravesh Sharma fa64e8b38f Fixed an issue where role properties were not loading. #7837 2024-09-24 11:59:05 +05:30
Akshay Joshi fb6cca415d Updated yarn.lock 2024-09-23 17:02:24 +05:30
Akshay Joshi b757d26933 1) Update JS and Python dependencies from Dependabot.
2) Added new release note file.
2024-09-23 16:33:20 +05:30
Dave Page 9f64f5b8db Copy liblz4 and libzstd libraries if present in the PostgreSQL build. 2024-09-20 11:47:43 +01:00
2090 changed files with 97430 additions and 51550 deletions

No files matched your search

+6 -6
View File
@@ -3,7 +3,7 @@ updates:
- package-ecosystem: "docker"
directory: "/"
schedule:
interval: "daily"
interval: "weekly"
labels:
- "Dependencies"
commit-message:
@@ -12,7 +12,7 @@ updates:
- package-ecosystem: "pip"
directory: "/"
schedule:
interval: "daily"
interval: "weekly"
labels:
- "Dependencies"
commit-message:
@@ -21,7 +21,7 @@ updates:
- package-ecosystem: "pip"
directory: "/tools"
schedule:
interval: "daily"
interval: "weekly"
labels:
- "Dependencies"
commit-message:
@@ -30,7 +30,7 @@ updates:
- package-ecosystem: "pip"
directory: "/web/regression"
schedule:
interval: "daily"
interval: "weekly"
labels:
- "Dependencies"
commit-message:
@@ -39,7 +39,7 @@ updates:
- package-ecosystem: "npm"
directory: "/runtime"
schedule:
interval: "daily"
interval: "weekly"
labels:
- "Dependencies"
commit-message:
@@ -48,7 +48,7 @@ updates:
- package-ecosystem: "npm"
directory: "/web"
schedule:
interval: "daily"
interval: "weekly"
labels:
- "Dependencies"
commit-message:
+1 -1
View File
@@ -14,7 +14,7 @@ concurrency:
jobs:
build-container:
runs-on: ubuntu-latest
runs-on: ubuntu-22.04
steps:
- uses: actions/checkout@v4
+1 -1
View File
@@ -14,7 +14,7 @@ concurrency:
jobs:
build-docs:
runs-on: ubuntu-latest
runs-on: ubuntu-22.04
steps:
- uses: actions/checkout@v4
+1 -1
View File
@@ -14,7 +14,7 @@ concurrency:
jobs:
check-javascript-style:
runs-on: ubuntu-latest
runs-on: ubuntu-22.04
steps:
- uses: actions/checkout@v4
+1 -1
View File
@@ -14,7 +14,7 @@ concurrency:
jobs:
build-python-package:
runs-on: ubuntu-latest
runs-on: ubuntu-22.04
steps:
- uses: actions/checkout@v4
+1 -1
View File
@@ -14,7 +14,7 @@ concurrency:
jobs:
check-python-style:
runs-on: ubuntu-latest
runs-on: ubuntu-22.04
steps:
- uses: actions/checkout@v4
+1 -1
View File
@@ -14,7 +14,7 @@ concurrency:
jobs:
build-tarball:
runs-on: ubuntu-latest
runs-on: ubuntu-22.04
steps:
- uses: actions/checkout@v4
+1 -1
View File
@@ -14,7 +14,7 @@ concurrency:
jobs:
check-translations:
runs-on: ubuntu-latest
runs-on: ubuntu-22.04
steps:
- uses: actions/checkout@v4
+12 -7
View File
@@ -21,23 +21,26 @@ jobs:
strategy:
fail-fast: false
matrix:
pgver: [12, 13, 14, 15, 16]
pgver: [13, 14, 15, 16, 17]
runs-on: ubuntu-latest
runs-on: ubuntu-22.04
steps:
- uses: actions/checkout@v4
- name: Setup the EDB APT repo on Linux
run: |
sudo su -c 'echo "deb [arch=amd64] https://apt.enterprisedb.com/$(lsb_release -cs)-edb/ $(lsb_release -cs) main" > /etc/apt/sources.list.d/edb-$(lsb_release -cs).list'
sudo su -c 'echo "machine apt.enterprisedb.com login ${{ secrets.EDB_REPO_USERNAME }} password ${{ secrets.EDB_REPO_PASSWORD }}" > /etc/apt/auth.conf.d/edb.conf'
sudo wget -q -O - https://apt.enterprisedb.com/edb-deb.gpg.key | sudo apt-key add -
curl -1sLf 'https://downloads.enterprisedb.com/${{ secrets.CLOUDSMITH_TOKEN }}/enterprise/setup.deb.sh' | sudo -E bash
- name: Install platform dependencies
run: |
sudo apt update
sudo apt install -y libpq-dev libffi-dev libssl-dev libkrb5-dev zlib1g-dev edb-as${{ matrix.pgver }}-server edb-as${{ matrix.pgver }}-server-pldebugger edb-as${{ matrix.pgver }}-pgagent
sudo apt install -y libpq-dev libffi-dev libssl-dev libkrb5-dev zlib1g-dev edb-as${{ matrix.pgver }}-server edb-as${{ matrix.pgver }}-server-pldebugger
- name: Install pgagent on Linux
if: ${{ matrix.os == 'ubuntu-22.04' && matrix.pgver <= 16 }}
run: |
sudo apt install -y edb-as${{ matrix.pgver }}-pgagent
- name: Create the tablespace directory
run: |
@@ -58,7 +61,9 @@ jobs:
sleep 2
done
psql -U enterprisedb -d postgres -p 58${{ matrix.pgver }} -c 'CREATE EXTENSION IF NOT EXISTS pgagent;'
- name: Create pgagent extension on Linux
if: ${{ matrix.os == 'ubuntu-22.04' && matrix.pgver <= 16 }}
run: psql -U enterprisedb -d postgres -p 58${{ matrix.pgver }} -c 'CREATE EXTENSION IF NOT EXISTS pgagent;'
- name: Install Python dependencies
run: make install-python-testing
+15 -3
View File
@@ -20,9 +20,9 @@ jobs:
strategy:
fail-fast: false
matrix:
pgver: [12, 13, 14, 15, 16]
pgver: [13, 14, 15, 16, 17]
runs-on: ubuntu-latest
runs-on: ubuntu-22.04
steps:
- uses: actions/checkout@v4
@@ -32,6 +32,18 @@ jobs:
sudo sh -c 'echo "deb https://apt.postgresql.org/pub/repos/apt $(lsb_release -cs)-pgdg main" > /etc/apt/sources.list.d/pgdg.list'
wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add -
- name: Uninstall PostgreSQL if already present
run: |
if [ -n "$(ls /etc/postgresql/*/*/postgresql.conf 2>/dev/null)" ]; then
# Extract the major version from pg_config
installed_pg_version=$( pg_config --version | cut -d ' ' -f 2 | cut -d '.' -f 1 )
echo "Installed PostgreSQL version: $installed_pg_version"
if [ $installed_pg_version != ${{ matrix.pgver }} ]; then
sudo pg_dropcluster $installed_pg_version main --stop
sudo apt-get -y remove "postgresql-${installed_pg_version}"
fi
fi
- name: Install platform dependencies
run: |
sudo apt update
@@ -119,7 +131,7 @@ jobs:
"comment": "PostgreSQL ${{ matrix.pgver }} Server",
"db_username": "postgres",
"host": "/var/run/postgresql",
"db_password": "postgres",
"db_password": "",
"db_port": 59${{ matrix.pgver }},
"maintenance_db": "postgres",
"sslmode": "prefer",
+1 -1
View File
@@ -17,7 +17,7 @@ jobs:
strategy:
fail-fast: false
matrix:
os: [macos-latest, ubuntu-latest, windows-latest]
os: [macos-latest, ubuntu-22.04, windows-latest]
runs-on: ${{ matrix.os }}
+17 -8
View File
@@ -32,7 +32,7 @@ jobs:
fail-fast: false
matrix:
os: [ubuntu-22.04, windows-latest]
pgver: [12, 13, 14, 15, 16]
pgver: [13, 14, 15, 16, 17]
runs-on: ${{ matrix.os }}
@@ -42,15 +42,18 @@ jobs:
- name: Setup the EDB APT repo on Linux
if: ${{ matrix.os == 'ubuntu-22.04' }}
run: |
sudo su -c 'echo "deb [arch=amd64] https://apt.enterprisedb.com/$(lsb_release -cs)-edb/ $(lsb_release -cs) main" > /etc/apt/sources.list.d/edb-$(lsb_release -cs).list'
sudo su -c 'echo "machine apt.enterprisedb.com login ${{ secrets.EDB_REPO_USERNAME }} password ${{ secrets.EDB_REPO_PASSWORD }}" > /etc/apt/auth.conf.d/edb.conf'
sudo wget -q -O - https://apt.enterprisedb.com/edb-deb.gpg.key | sudo apt-key add -
curl -1sLf 'https://downloads.enterprisedb.com/${{ secrets.CLOUDSMITH_TOKEN }}/enterprise/setup.deb.sh' | sudo -E bash
- name: Install platform dependencies on Linux
if: ${{ matrix.os == 'ubuntu-22.04' }}
run: |
sudo apt update
sudo apt install -y libpq-dev libffi-dev libssl-dev libkrb5-dev zlib1g-dev edb-as${{ matrix.pgver }}-server edb-as${{ matrix.pgver }}-server-pldebugger edb-as${{ matrix.pgver }}-pgagent
sudo apt install -y libpq-dev libffi-dev libssl-dev libkrb5-dev zlib1g-dev edb-as${{ matrix.pgver }}-server edb-as${{ matrix.pgver }}-server-pldebugger edb-as${{ matrix.pgver }}-postgis34
- name: Install pgagent on Linux
if: ${{ matrix.os == 'ubuntu-22.04' && matrix.pgver <= 16 }}
run: |
sudo apt install -y edb-as${{ matrix.pgver }}-pgagent
- name: Install platform dependencies on Windows
if: ${{ matrix.os == 'windows-latest' }}
@@ -79,7 +82,7 @@ jobs:
shell: cmd
- name: Add edb_job_scheduler into config file.
if: ${{ matrix.os == 'ubuntu-22.04' && matrix.pgver == 16 }}
if: ${{ matrix.os == 'ubuntu-22.04' && matrix.pgver >= 16 }}
run: |
sudo sed -i "s/shared_preload_libraries = '/shared_preload_libraries = '\$libdir\/edb_job_scheduler,/g" /etc/edb-as/${{ matrix.pgver }}/main/postgresql.conf
sudo su -c "echo \"edb_job_scheduler.database_list = 'test_dbms_job_scheduler'\" >> /etc/edb-as/${{ matrix.pgver }}/main/postgresql.conf"
@@ -98,8 +101,14 @@ jobs:
>&2 echo "EPAS is unavailable - sleeping for 2 seconds"
sleep 2
done
psql -U enterprisedb -d postgres -p 58${{ matrix.pgver }} -c 'CREATE EXTENSION IF NOT EXISTS pgagent;'
- name: Create pgagent extension on Linux
if: ${{ matrix.os == 'ubuntu-22.04' && matrix.pgver <= 16 }}
run: psql -U enterprisedb -d postgres -p 58${{ matrix.pgver }} -c 'CREATE EXTENSION IF NOT EXISTS pgagent;'
- name: Create postgis extension on Linux
if: ${{ matrix.os == 'ubuntu-22.04' }}
run: psql -U enterprisedb -d postgres -p 58${{ matrix.pgver }} -c 'CREATE EXTENSION IF NOT EXISTS postgis;'
- name: Install Python dependencies on Linux
if: ${{ matrix.os == 'ubuntu-22.04' }}
+40 -26
View File
@@ -20,8 +20,8 @@ jobs:
strategy:
fail-fast: false
matrix:
os: [macos-latest, ubuntu-latest, windows-latest]
pgver: [12, 13, 14, 15, 16]
os: [macos-latest, ubuntu-22.04, windows-latest]
pgver: [13, 14, 15, 16, 17]
runs-on: ${{ matrix.os }}
@@ -29,16 +29,29 @@ jobs:
- uses: actions/checkout@v4
- name: Setup the PGDG APT repo on Linux
if: ${{ matrix.os == 'ubuntu-latest' }}
if: ${{ matrix.os == 'ubuntu-22.04' }}
run: |
sudo sh -c 'echo "deb https://apt.postgresql.org/pub/repos/apt $(lsb_release -cs)-pgdg main" > /etc/apt/sources.list.d/pgdg.list'
wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add -
- name: Uninstall PostgreSQL if already present on linux
if: ${{ matrix.os == 'ubuntu-22.04' }}
run: |
if [ -n "$(ls /etc/postgresql/*/*/postgresql.conf 2>/dev/null)" ]; then
# Extract the major version from pg_config
installed_pg_version=$( pg_config --version | cut -d ' ' -f 2 | cut -d '.' -f 1 )
echo "Installed PostgreSQL version: $installed_pg_version"
if [ $installed_pg_version != ${{ matrix.pgver }} ]; then
sudo pg_dropcluster $installed_pg_version main --stop
sudo apt-get -y remove "postgresql-${installed_pg_version}"
fi
fi
- name: Install platform dependencies on Linux
if: ${{ matrix.os == 'ubuntu-latest' }}
if: ${{ matrix.os == 'ubuntu-22.04' }}
run: |
sudo apt update
sudo apt install -y libpq-dev libffi-dev libssl-dev libkrb5-dev zlib1g-dev postgresql-${{ matrix.pgver }} postgresql-${{ matrix.pgver }}-pldebugger pgagent
sudo apt install -y libpq-dev libffi-dev libssl-dev libkrb5-dev zlib1g-dev postgresql-${{ matrix.pgver }} postgresql-${{ matrix.pgver }}-pldebugger pgagent postgresql-${{ matrix.pgver }}-postgis-3
- name: Install platform dependencies on macOS
if: ${{ matrix.os == 'macos-latest' }}
@@ -46,7 +59,7 @@ jobs:
brew install postgresql@${{ matrix.pgver }}
echo "/opt/homebrew/opt/postgresql@${{ matrix.pgver }}/bin" >> $GITHUB_PATH
- name: Uninstall PostgreSQL if already present
- name: Uninstall PostgreSQL if already present on windows
if: ${{ matrix.os == 'windows-latest' }}
run: |
if exist "C:\Program Files\PostgreSQL\{{ matrix.pgver }}\uninstall-postgresql.exe" (
@@ -62,13 +75,13 @@ jobs:
ECHO Running %INSTALLER_EXE%...
%INSTALLER_EXE% --prefix C:\PostgreSQL\${{ matrix.pgver }} --datadir C:\PostgreSQL\${{ matrix.pgver }}\data --serverport 59${{ matrix.pgver }} --superpassword postgres --install_runtimes 0 --mode unattended --unattendedmodeui none --disable-components pgAdmin,stackbuilder --enable-components server,commandlinetools"
choco install -y mitkerberos
REM Ignore error 3010 (reboot required)
IF %ERRORLEVEL% EQU 3010 cmd /c "exit /b 0"
shell: cmd
- name: Create the tablespace directory on Linux
if: ${{ matrix.os == 'ubuntu-latest' }}
if: ${{ matrix.os == 'ubuntu-22.04' }}
run: |
sudo mkdir -p /var/lib/postgresql/tablespaces/${{ matrix.pgver }}
sudo chown postgres:postgres /var/lib/postgresql/tablespaces/${{ matrix.pgver }}
@@ -86,20 +99,21 @@ jobs:
shell: cmd
- name: Start PostgreSQL on Linux
if: ${{ matrix.os == 'ubuntu-latest' }}
if: ${{ matrix.os == 'ubuntu-22.04' }}
run: |
sudo su -c "echo local all all trust > /etc/postgresql/${{ matrix.pgver }}/main/pg_hba.conf"
sudo sed -i "s/port = 543[0-9]/port = 59${{ matrix.pgver }}/g" /etc/postgresql/${{ matrix.pgver }}/main/postgresql.conf
sudo sed -i "s/#shared_preload_libraries = ''/shared_preload_libraries = '\$libdir\/plugin_debugger'/g" /etc/postgresql/${{ matrix.pgver }}/main/postgresql.conf
sudo su - postgres -c "/usr/lib/postgresql/${{ matrix.pgver }}/bin/postgres -D /var/lib/postgresql/${{ matrix.pgver }}/main -c config_file=/etc/postgresql/${{ matrix.pgver }}/main/postgresql.conf &"
until sudo runuser -l postgres -c "pg_isready -p 59${{ matrix.pgver }}" 2>/dev/null; do
>&2 echo "Postgres is unavailable - sleeping for 2 seconds"
sleep 2
done
psql -U postgres -p 59${{ matrix.pgver }} -c 'CREATE EXTENSION pgagent;'
psql -U postgres -p 59${{ matrix.pgver }} -c 'CREATE EXTENSION pldbgapi;'
psql -U postgres -p 59${{ matrix.pgver }} -c 'CREATE EXTENSION postgis;'
- name: Start PostgreSQL on macOS
if: ${{ matrix.os == 'macos-latest' }}
@@ -107,16 +121,16 @@ jobs:
echo local all all trust > /opt/homebrew/var/postgresql@${{ matrix.pgver }}/pg_hba.conf
sed -i '' "s/#port = 543[0-9]/port = 59${{ matrix.pgver }}/g" /opt/homebrew/var/postgresql@${{ matrix.pgver }}/postgresql.conf
brew services restart postgresql@${{ matrix.pgver }}
until /opt/homebrew/opt/postgresql@${{ matrix.pgver }}/bin/pg_isready -p 59${{ matrix.pgver }} 2>/dev/null; do
>&2 echo "Postgres is unavailable - sleeping for 2 seconds"
sleep 2
done
psql postgres -p 59${{ matrix.pgver }} -c 'CREATE ROLE postgres SUPERUSER LOGIN;'
- name: Install Python dependencies on Linux and macOS
if: ${{ matrix.os == 'macos-latest' || matrix.os == 'ubuntu-latest' }}
if: ${{ matrix.os == 'macos-latest' || matrix.os == 'ubuntu-22.04' }}
run: make install-python-testing
- name: Install Python dependencies on Windows
@@ -131,25 +145,25 @@ jobs:
shell: cmd
- name: Create the test configuration on Linux and macOS
if: ${{ matrix.os == 'macos-latest' || matrix.os == 'ubuntu-latest' }}
if: ${{ matrix.os == 'macos-latest' || matrix.os == 'ubuntu-22.04' }}
run: |
cat <<EOF > web/config_local.py
from config import *
# Debug mode
DEBUG = True
# App mode
SERVER_MODE = False
# Log
CONSOLE_LOG_LEVEL = DEBUG
FILE_LOG_LEVEL = DEBUG
DEFAULT_SERVER = '127.0.0.1'
UPGRADE_CHECK_ENABLED = False
LOG_FILE = "$(pwd)/var/pgadmin4.log"
SESSION_DB_PATH = "$(pwd)/var/sessions"
STORAGE_DIR = "$(pwd)/var/storage"
@@ -157,7 +171,7 @@ jobs:
TEST_SQLITE_PATH = "$(pwd)/var/pgadmin4.db"
AZURE_CREDENTIAL_CACHE_DIR = "$(pwd)/var/azurecredentialcache"
EOF
cat <<EOF > web/regression/test_config.json
{
"pgAdmin4_login_credentials": {
@@ -181,7 +195,7 @@ jobs:
"name": "PostgreSQL ${{ matrix.pgver }}",
"comment": "PostgreSQL ${{ matrix.pgver }} Server",
"db_username": "postgres",
"host": "${{ matrix.os == 'macos-latest' && '/tmp' || matrix.os == 'ubuntu-latest' && '/var/run/postgresql' || '127.0.0.1' }}",
"host": "${{ matrix.os == 'macos-latest' && '/tmp' || matrix.os == 'ubuntu-22.04' && '/var/run/postgresql' || '127.0.0.1' }}",
"db_password": "postgres",
"db_port": 59${{ matrix.pgver }},
"maintenance_db": "postgres",
@@ -206,7 +220,7 @@ jobs:
if: ${{ matrix.os == 'windows-latest' }}
run: |
FOR /f "delims=" %%D IN ('python -c "import os; print(os.getcwd().replace('\\', '\\\\'))"') DO SET WORKING_DIR=%%D
> web\config_local.py (
@echo.from config import *
@echo.
@@ -231,7 +245,7 @@ jobs:
@echo.TEST_SQLITE_PATH = "%WORKING_DIR%\\var\\test_pgadmin4.db"
@echo.AZURE_CREDENTIAL_CACHE_DIR = "%WORKING_DIR%\\var\\azurecredentialcache"
)
> web\regression\test_config.json (
@echo.{
@echo. "pgAdmin4_login_credentials": {
@@ -278,7 +292,7 @@ jobs:
shell: cmd
- name: Run the tests on Linux and macOS
if: ${{ matrix.os == 'macos-latest' || matrix.os == 'ubuntu-latest' }}
if: ${{ matrix.os == 'macos-latest' || matrix.os == 'ubuntu-22.04' }}
run: |
. venv/bin/activate
make check-python
+1 -1
View File
@@ -22,7 +22,7 @@ jobs:
# Only run if the project key is set
if: vars.SONARQUBE_PROJECT_KEY != null
runs-on: ubuntu-latest
runs-on: ubuntu-22.04
steps:
- uses: actions/checkout@v4
+16 -9
View File
@@ -2,7 +2,7 @@
#
# pgAdmin 4 - PostgreSQL Tools
#
# Copyright (C) 2013 - 2024, The pgAdmin Development Team
# Copyright (C) 2013 - 2025, The pgAdmin Development Team
# This software is released under the PostgreSQL Licence
#
#########################################################################
@@ -125,6 +125,7 @@ FROM postgres:13-alpine AS pg13-builder
FROM postgres:14-alpine AS pg14-builder
FROM postgres:15-alpine AS pg15-builder
FROM postgres:16-alpine AS pg16-builder
FROM postgres:17-alpine AS pg17-builder
FROM alpine:latest AS tool-builder
@@ -154,6 +155,11 @@ COPY --from=pg16-builder /usr/local/bin/pg_dumpall /usr/local/pgsql/pgsql-16/
COPY --from=pg16-builder /usr/local/bin/pg_restore /usr/local/pgsql/pgsql-16/
COPY --from=pg16-builder /usr/local/bin/psql /usr/local/pgsql/pgsql-16/
COPY --from=pg17-builder /usr/local/bin/pg_dump /usr/local/pgsql/pgsql-17/
COPY --from=pg17-builder /usr/local/bin/pg_dumpall /usr/local/pgsql/pgsql-17/
COPY --from=pg17-builder /usr/local/bin/pg_restore /usr/local/pgsql/pgsql-17/
COPY --from=pg17-builder /usr/local/bin/psql /usr/local/pgsql/pgsql-17/
#########################################################################
# Assemble everything into the final container.
#########################################################################
@@ -165,14 +171,14 @@ COPY --from=env-builder /venv /venv
# Copy in the tools
COPY --from=tool-builder /usr/local/pgsql /usr/local/
COPY --from=pg16-builder /usr/local/lib/libpq.so.5.16 /usr/lib/
COPY --from=pg16-builder /usr/lib/libzstd.so.1.5.6 /usr/lib/
COPY --from=pg16-builder /usr/lib/liblz4.so.1.9.4 /usr/lib/
COPY --from=pg17-builder /usr/local/lib/libpq.so.5.17 /usr/lib/
COPY --from=pg17-builder /usr/lib/libzstd.so.1.5.6 /usr/lib/
COPY --from=pg17-builder /usr/lib/liblz4.so.1.10.0 /usr/lib/
RUN ln -s libpq.so.5.16 /usr/lib/libpq.so.5 && \
ln -s libpq.so.5.16 /usr/lib/libpq.so && \
RUN ln -s libpq.so.5.17 /usr/lib/libpq.so.5 && \
ln -s libpq.so.5.17 /usr/lib/libpq.so && \
ln -s libzstd.so.1.5.6 /usr/lib/libzstd.so.1 && \
ln -s liblz4.so.1.9.4 /usr/lib/liblz4.so.1
ln -s liblz4.so.1.10.0 /usr/lib/liblz4.so.1
WORKDIR /pgadmin4
ENV PYTHONPATH=/pgadmin4
@@ -191,6 +197,7 @@ COPY DEPENDENCIES /pgadmin4/DEPENDENCIES
# Install runtime dependencies and configure everything in one RUN step
RUN apk add --no-cache \
python3 \
bash \
py3-pip \
postfix \
krb5-libs \
@@ -201,7 +208,7 @@ RUN apk add --no-cache \
libedit \
libldap \
libcap && \
/venv/bin/python3 -m pip install --no-cache-dir gunicorn==22.0.0 && \
/venv/bin/python3 -m pip install --no-cache-dir gunicorn==23.0.0 && \
find / -type d -name '__pycache__' -exec rm -rf {} + && \
useradd -r -u 5050 -g root -s /sbin/nologin pgadmin && \
mkdir -p /run/pgadmin /var/lib/pgadmin && \
@@ -215,7 +222,7 @@ RUN apk add --no-cache \
echo "pgadmin ALL = NOPASSWD: /usr/sbin/postfix start" > /etc/sudoers.d/postfix && \
echo "pgadminr ALL = NOPASSWD: /usr/sbin/postfix start" >> /etc/sudoers.d/postfix
USER pgadmin
USER 5050
# Finish up
VOLUME /var/lib/pgadmin
+1 -1
View File
@@ -4,7 +4,7 @@ pgAdmin 4
This software is released under the PostgreSQL licence.
-------------------------------------------------------------------------------
Copyright (C) 2013 - 2024, The pgAdmin Development Team
Copyright (C) 2013 - 2025, 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
+13 -12
View File
@@ -52,15 +52,13 @@ REM Main build sequence Ends
:SET_ENVIRONMENT
ECHO Configuring the environment...
IF "%PGADMIN_PYTHON_DIR%" == "" SET "PGADMIN_PYTHON_DIR=C:\Python38"
IF "%PGADMIN_PYTHON_DIR%" == "" SET "PGADMIN_PYTHON_DIR=C:\Python313"
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_POSTGRES_DIR%" == "" SET "PGADMIN_POSTGRES_DIR=C:\Program Files\PostgreSQL\17"
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_x64.exe"
IF "%PGADMIN_VCREDIST_DIR%" == "" SET "PGADMIN_VCREDIST_DIR=C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Redist\MSVC\14.40.33807"
IF "%PGADMIN_VCREDIST_FILE%" == "" SET "PGADMIN_VCREDIST_FILE=vc_redist.x64.exe"
IF "%PGADMIN_SIGNTOOL_DIR%" == "" SET "PGADMIN_SIGNTOOL_DIR=C:\Program Files (x86)\Windows Kits\10\bin\10.0.22621.0\x64"
REM Set additional variables we need
FOR /F "tokens=3" %%a IN ('findstr /C:"APP_RELEASE =" %WD%\web\version.py') DO SET APP_MAJOR=%%a
@@ -98,7 +96,7 @@ REM Main build sequence Ends
ECHO PostgreSQL directory: %PGADMIN_POSTGRES_DIR%
ECHO.
ECHO VC++ redist directory: %PGADMIN_VCREDIST_DIR%
ECHO VC++ redist file: %VCREDIST_FILE%
ECHO VC++ redist file: %PGADMIN_VCREDIST_FILE%
ECHO InnoTool directory: %PGADMIN_INNOTOOL_DIR%
ECHO signtool directory: %PGADMIN_SIGNTOOL_DIR%
ECHO.
@@ -286,6 +284,7 @@ REM Main build sequence Ends
REM WGET
FOR /f "tokens=*" %%i IN ('npm info electron version') DO SET "ELECTRON_VERSION=%%i"
SET ELECTRON_VERSION="35.4.0"
:GET_NW
wget https://github.com/electron/electron/releases/download/v%ELECTRON_VERSION%/electron-v%ELECTRON_VERSION%-win32-x64.zip -O "%TMPDIR%\electron-v%ELECTRON_VERSION%-win32-x64.zip"
IF %ERRORLEVEL% NEQ 0 GOTO GET_NW
@@ -310,7 +309,7 @@ REM Main build sequence Ends
%TMPDIR%\rcedit-x64.exe "%BUILDROOT%\runtime\pgAdmin4.exe" --set-product-version "%APP_VERSION%""
ECHO Attempting to sign the pgAdmin4.exe...
CALL "%PGADMIN_SIGNTOOL_DIR%\signtool.exe" sign /tr http://timestamp.digicert.com "%BUILDROOT%\runtime\pgAdmin4.exe"
CALL "%PGADMIN_SIGNTOOL_DIR%\signtool.exe" sign /fd certHash /tr http://timestamp.digicert.com /td SHA256 "%BUILDROOT%\runtime\pgAdmin4.exe"
IF %ERRORLEVEL% NEQ 0 (
ECHO.
ECHO ************************************************************
@@ -325,6 +324,8 @@ REM Main build sequence Ends
COPY "%PGADMIN_POSTGRES_DIR%\bin\libssl-*-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
IF EXIST "%PGADMIN_POSTGRES_DIR%\bin\liblz4.dll" COPY "%PGADMIN_POSTGRES_DIR%\bin\liblz4.dll" "%BUILDROOT%\runtime" > nul
IF EXIST "%PGADMIN_POSTGRES_DIR%\bin\libzstd.dll" COPY "%PGADMIN_POSTGRES_DIR%\bin\libzstd.dll" "%BUILDROOT%\runtime" > nul
COPY "%PGADMIN_POSTGRES_DIR%\bin\zlib1.dll" "%BUILDROOT%\runtime" > nul || EXIT /B 1
COPY "%PGADMIN_POSTGRES_DIR%\bin\pg_dump.exe" "%BUILDROOT%\runtime" > nul || EXIT /B 1
COPY "%PGADMIN_POSTGRES_DIR%\bin\pg_dumpall.exe" "%BUILDROOT%\runtime" > nul || EXIT /B 1L%
@@ -333,7 +334,7 @@ REM Main build sequence Ends
ECHO Staging VC++ runtime...
MKDIR "%BUILDROOT%\installer" || EXIT /B 1
COPY "%PGADMIN_VCREDIST_DIR%\%VCREDIST_FILE%" "%BUILDROOT%\installer" > nul || EXIT /B 1
COPY "%PGADMIN_VCREDIST_DIR%\%PGADMIN_VCREDIST_FILE%" "%BUILDROOT%\installer" > nul || EXIT /B 1
CD %WD%
EXIT /B 0
@@ -351,7 +352,7 @@ REM Main build sequence Ends
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_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%"""
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%\%PGADMIN_VCREDIST_FILE%"""
ECHO Cleaning up...
DEL /s "%WD%\pkg\win32\installer.iss.in_stage*" > nul
@@ -376,7 +377,7 @@ REM Main build sequence Ends
:SIGN_INSTALLER
ECHO Attempting to sign the installer...
CALL "%PGADMIN_SIGNTOOL_DIR%\signtool.exe" sign /tr http://timestamp.digicert.com "%DISTROOT%\%INSTALLERNAME%"
CALL "%PGADMIN_SIGNTOOL_DIR%\signtool.exe" sign /fd certHash /tr http://timestamp.digicert.com /td SHA256 "%DISTROOT%\%INSTALLERNAME%"
IF %ERRORLEVEL% NEQ 0 (
ECHO.
ECHO ************************************************************
+1 -1
View File
@@ -2,7 +2,7 @@
#
# pgAdmin 4 - PostgreSQL Tools
#
# Copyright (C) 2013 - 2024, The pgAdmin Development Team
# Copyright (C) 2013 - 2025, The pgAdmin Development Team
# This software is released under the PostgreSQL Licence
#
#########################################################################
+83 -85
View File
@@ -15,33 +15,51 @@ and ReactJS, HTML5 with CSS for the client side processing and UI.
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 Electron based runtime application intended to allow this,
which will execute the Python server and display the UI.
which will fork a Python server process and display the UI.
## Building the Runtime
## Prerequisites
1. Install Node.js 20 and above (https://nodejs.org/en/download)
2. yarn (https://yarnpkg.com/getting-started/install)
3. Python 3.8 and above (https://www.python.org/downloads/)
4. PostgreSQL server (https://www.postgresql.org/download)
To build the runtime, the following packages must be installed:
Start by enabling Corepack, if it isn't already;
this will add the yarn binary to your PATH:
```bash
corepack enable
```
* NodeJS 16+
* Yarn
# Building the Web Assets
Change into the runtime directory, and run *yarn install*. This will install the
dependencies required.
pgAdmin is dependent on a number of third party Javascript libraries. These,
along with it's own Javascript code, 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.
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:
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:
```bash
yarn run start
$ cd $PGADMIN4_SRC
$ make install-node
$ 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
```
# Configuring the Python Environment
In order to run the Python code, a suitable runtime environment is required.
Python version 3.7 and later are currently supported. It is recommended that a
Python version 3.8 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:
@@ -63,7 +81,7 @@ simple - adapt as required for your distribution:
so update that to the latest:
```bash
$ pip install --upgrade pip
(venv) $ pip install --upgrade pip
```
4. Ensure that a PostgreSQL installation's bin/ directory is in the path (so
@@ -88,36 +106,44 @@ simple - adapt as required for your distribution:
configuration may look like:
```python
from config import *
import os
import logging
# Debug mode
DEBUG = True
# Change pgAdmin data directory
DATA_DIR = '/Users/myuser/.pgadmin_dev'
# App mode
SERVER_MODE = True
#Change pgAdmin server and port
DEFAULT_SERVER = '127.0.0.1'
DEFAULT_SERVER_PORT = 5051
# Enable the test module
MODULE_BLACKLIST.remove('test')
# Switch between server and desktop mode
SERVER_MODE = True
# Log
CONSOLE_LOG_LEVEL = DEBUG
FILE_LOG_LEVEL = DEBUG
#Change pgAdmin config DB path in case external DB is used.
CONFIG_DATABASE_URI="postgresql://postgres:postgres@localhost:5436/pgadmin"
DEFAULT_SERVER = '127.0.0.1'
#Setup SMTP
MAIL_SERVER = 'smtp.gmail.com'
MAIL_PORT = 465
MAIL_USE_SSL = True
MAIL_USERNAME = 'user@gmail.com'
MAIL_PASSWORD = 'xxxxxxxxxx'
UPGRADE_CHECK_ENABLED = True
# Change log level
CONSOLE_LOG_LEVEL = logging.INFO
FILE_LOG_LEVEL = logging.INFO
# 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'
)
# 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
@@ -137,9 +163,9 @@ simple - adapt as required for your distribution:
(venv) $ python3 $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.
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
@@ -148,49 +174,6 @@ 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.
# 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:
```bash
(venv) $ cd $PGADMIN4_SRC
(venv) $ make install-node
(venv) $ 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
@@ -210,6 +193,21 @@ The docs can then be built using the Makefile in *$PGADMIN4_SRC*, e.g.
The output can be found in *$PGADMIN4_SRC/docs/en_US/_build/html/index.html*
## Building the Runtime
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:
```bash
yarn run start
```
# Building packages
Most packages can be built using the Makefile in $PGADMIN4_SRC, provided all
+82
View File
@@ -0,0 +1,82 @@
# Security Policy
## Supported Versions
Only the latest version receives security updates. Users are encouraged to upgrade to the latest stable release.
## Reporting a Vulnerability
We take security seriously and appreciate your efforts to responsibly disclose vulnerabilities. If you believe you have found a vulnerability, please follow the guidelines below to submit a report.
### **What to Include in Your Report**
To help us quickly understand and address the issue, please include the following sections in your report:
#### 1. **Summary**
- A brief description of the vulnerability.
#### 2. **Affected Versions**
- The version(s) of the project affected by the vulnerability.
- Example: "Affects versions 3.4.0 to 3.6.23."
#### 3. **Details**
- A detailed explanation of the vulnerability, including:
- How to reproduce the issue (step-by-step instructions).
- The code or component where the vulnerability exists.
- The expected vs. actual behavior.
#### 4. **Proof of Concept (PoC)**
- Provide a proof of concept to demonstrate the vulnerability. This could be:
- Code snippets.
- Screenshots or videos.
- A minimal reproducible example.
#### 5. **Patches (if applicable)**
- If you have a suggested fix or patch, include it in your report.
- Example: "Sanitize user input using `DOMPurify`."
#### 6. **Impact**
- Describe the potential impact of the vulnerability, such as:
- Remote Code Execution.
- CSRF.
- Data exposure.
- Denial of service.
### **What to Expect**
- **Acknowledgement**: You will receive an acknowledgement of your report within **48 hours**.
- **Timeline**: We will provide a timeline for investigating and addressing the issue.
- **Updates**: You will receive regular updates on the progress of the vulnerability resolution.
- **CVE ID**: If the vulnerability is confirmed, we will request a CVE ID to acknowledge the issue officially and include it in the release notes.
### **Out of Scope**
The following issues are considered out of scope for security reports:
- Vulnerabilities in outdated or unsupported versions.
- Issues related to non-security-impacting bugs or feature requests.
- Vulnerabilities requiring physical access to the device or social engineering.
## Security Updates
We are committed to providing timely security updates for supported versions. Here’s our process:
1. **Assessment**:
- All reported vulnerabilities are assessed for severity and impact.
2. **Patch Development**:
- Patches are developed and tested in a private repository to prevent premature disclosure.
3. **Release**:
- Security patches are released as soon as possible, along with a detailed advisory.
## Acknowledgments
We deeply appreciate the efforts of security researchers and users who help us improve the security of our project.
## Contact
For any questions or concerns regarding security, please contact us at `security@pgadmin.org`.
+1 -1
View File
@@ -16,7 +16,7 @@ review process for any changes 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 - 2024, The pgAdmin Development Team
Copyright (C) 2013 - 2025, The pgAdmin Development Team
* Ensure there's a blank line immediately following any copyright headers.
+1 -1
View File
@@ -120,7 +120,7 @@ with the required file header is shown below::
#
# pgAdmin 4 - PostgreSQL Tools
#
# Copyright (C) 2013 - 2024, The pgAdmin Development Team
# Copyright (C) 2013 - 2025, The pgAdmin Development Team
# This software is released under the PostgreSQL Licence
#
##########################################################################
+25 -2
View File
@@ -53,11 +53,11 @@ The default binary paths set in the container are as follows:
.. code-block:: bash
DEFAULT_BINARY_PATHS = {
'pg-17': '/usr/local/pgsql-17',
'pg-16': '/usr/local/pgsql-16',
'pg-15': '/usr/local/pgsql-15',
'pg-14': '/usr/local/pgsql-14',
'pg-13': '/usr/local/pgsql-13',
'pg-12': '/usr/local/pgsql-12'
'pg-13': '/usr/local/pgsql-13'
}
this may be changed in the :ref:`preferences`.
@@ -134,6 +134,14 @@ Override the default file path for the server definition list. See the
/pgadmin4/servers.json mapped file below for more information. See the format
of the `Servers JSON file <https://www.pgadmin.org/docs/pgadmin4/latest/import_export_servers.html#json-format>`_.
**PGADMIN_REPLACE_SERVERS_ON_STARTUP**
*Default: null*
By default, the server definitions are only loaded on first launch, i.e. when initializing the configuration database. See PGADMIN_SERVER_JSON_FILE above.
If this variable is set to True, the server definitions will be replaced on every launch. This can be used to declaratively manage the server definitions.
**PGADMIN_PREFERENCES_JSON_FILE**
*Default: /pgadmin4/preferences.json*
@@ -142,6 +150,21 @@ Override the default file path for the preferences customization at the containe
/pgadmin4/preferences.json mapped file below for more information. See the format
of the `Preferences JSON file <https://www.pgadmin.org/docs/pgadmin4/latest/preferences.html#json-format>`_.
**PGADMIN_CUSTOM_CONFIG_DISTRO_FILE**
*Default: /pgadmin4/config_distro.py*
Override the default file path for the pgadmin configurations file.This can be used while provisioning
container with read only root file system to achieve a more secure pgadmin4 deployment for kubernetes.
Note that if you are externally mapping this file, then environment variables passed using *PGADMIN_CONFIG_*
suffix will be ignored.
**PGPASS_FILE**
*Default: <null>*
This varible should be set to if you want to pass password using pgpass
file for the servers added in pgadmin.
**GUNICORN_ACCESS_LOGFILE**
*Default: -* (stdout)
+5 -2
View File
@@ -44,8 +44,9 @@ Use the *Definition* tab to set properties for the database:
* Select the strategy from the drop-down listbox in the *Strategy* field while
creating a new database. This option is available from v15 and above.
* Select the locale provider from the drop-down listbox in the *Locale Provider*
field to set the default collation for this database. Possible values are: icu, libc.
This option is available from v15 and above.
field to set the default collation for this database. Possible values are: icu, libc and builtin.
This option is available from v15 and above. **Note:** The icu and libc options are available
from v15 and builtin option is available from v17 onwards.
* Select the collation order from the drop-down listbox in the *Collation* field.
* Select the character classification from the drop-down listbox in the
*Character Type* field. This affects the categorization of characters, e.g.
@@ -57,6 +58,8 @@ Use the *Definition* tab to set properties for the database:
* Specify the icu rules in the *ICU Rules* field as additional collation
rules to customize the behavior of the default collation of this database.
This option is available from v16 and above.
* Select the builtin locale from the drop-down listbox in the *Builtin Locale* if the
builtin locale provider is used. This option is available from v17 and above.
* Specify a connection limit in the *Connection Limit* field to configure the
maximum number of connection requests. The default value (*-1*) allows
unlimited connections to the database.
+7 -16
View File
@@ -43,36 +43,27 @@ browser and the Python server creating a standalone application.
:alt: Runtime Standalone
:align: center
Runtime Menu
------------
Runtime Menu Items
------------------
.. image:: images/runtime_menu.png
:alt: Runtime Menu
:align: center
Use the *File Menu* to access the *Runtime Menu*:
Use the *File Menu* to access the runtime menu items:
+-------------------------+---------------------------------------------------------------------------------------------------------+
| Option | Action |
+=========================+=========================================================================================================+
| *Configure...* | Click to open configuration dialog to configure fixed port, port number and connection timeout. |
| *View logs...* | Click to open the view log dialog to view the pgAdmin 4 logs. |
+-------------------------+---------------------------------------------------------------------------------------------------------+
| *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 + -). |
| *Configure runtime...* | Click to open configuration dialog to configure fixed port, port number and connection timeout. |
+-------------------------+---------------------------------------------------------------------------------------------------------+
Configuration Dialog
--------------------
Use the *Runtime Menu* to access the *Configuration* dialog:
Use the *Configure runtime...* option to access the *Configuration* dialog:
.. image:: images/runtime_configuration.png
:alt: Runtime Configuration
@@ -101,7 +92,7 @@ Timeout*, and 'Open Documentation in Default Browser?' configuration parameters:
Log dialog
----------
Use the *Runtime Menu* to access the *Log* dialog:
Use the *File Menu* to access the *View Logs* dialog:
.. image:: images/runtime_view_log.png
:alt: Runtime View Log
+87
View File
@@ -0,0 +1,87 @@
.. _directory_dialog:
*************************
`Directory Dialog`:index:
*************************
Use the Directory dialog to create an alias for a file system directory path.
To create directories, you must have the CREATE ANY DIRECTORY system privilege.
When you create a directory, you are automatically granted READ and WRITE privileges
on the directory, and you can grant READ and WRITE privileges to other users and roles.
The superuser can also grant these privileges to other users and roles.
Please note that directories are supported when connected to EDB Postgres Advanced Server.
For more information about using directories, please see the EDB Postgres Advanced Server Guide, available at:
https://www.enterprisedb.com/docs/epas/latest/epas_compat_sql/
The *Directory* dialog organizes the definition of a directory through the
following tabs: *General*, *Definition*, *Security*, and *SQL*.
The *SQL* tab displays the SQL code generated by dialog selections.
.. image:: images/directory_general.png
:alt: Directory general tab
:align: center
Use the fields on the *General* tab to specify directory attributes:
* Use the *Name* field to add a directory alias name. This name will be displayed in the object explorer.
* Select the owner of the directory from the drop-down listbox in the *Owner*
field.
Click the *Definition* tab to continue.
.. image:: images/directory_definition.png
:alt: Directory dialog definition tab
:align: center
* Use the *Location* field to specify a fully qualified directory path represented
by the alias name. The CREATE DIRECTORY command doesn't create the operating system directory.
The physical directory must be created independently using operating system commands.
Click the *Security* tab to continue.
.. image:: images/directory_security.png
:alt: Directory dialog security tab
:align: center
NOTE:- This *Security* tab will be only available for EPAS 17.
Use the *Security* tab to assign privileges for the directory.
Use the *Privileges* panel to assign security privileges. Click the *Add* icon
(+) to assign a set of privileges:
* Select the name of the role from the drop-down listbox in the *Grantee* field.
* The current user, who is the default grantor for granting the privilege, is displayed in the *Grantor* field.
* Click inside the *Privileges* field. Check the boxes to the left of one or
more privileges to grant the selected privileges to the specified user.
Click the *Add* icon to assign additional sets of privileges; to discard a
privilege, click the trash icon to the left of the row and confirm deletion in
the *Delete Row* popup.
Click the *SQL* tab to continue.
Your entries in the *Directory* dialog generate a SQL command (see an example
below). Use the *SQL* tab for review; revisit or switch tabs to make any changes
to the SQL command.
Example
*******
The following is an example of the sql command generated by user selections in
the *Directory* dialog:
.. image:: images/directory_sql.png
:alt: Directory dialog sql tab
:align: center
The example shown demonstrates creating a directory named *test1*. It has a
*location* value equal to */home/test_dir*.
* Click the *Info* button (i) to access online help.
* Click the *Save* button to save work.
* Click the *Close* button to exit without saving work.
* Click the *Reset* button to restore configuration parameters.
+1
View File
@@ -212,6 +212,7 @@ To add new column(s) in data sorting grid, click on the [+] icon.
* Use the drop-down *Column* to select the column you want to sort.
* Use the drop-down *Order* to select the sort order for the column.
* Use the drop-down *NULLs* to select the NULL values order for the column.
To delete a row from the grid, click the trash icon.
+16
View File
@@ -207,6 +207,22 @@ The table node shows table details in a graphical representation:
* 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 One Link Dialog
***************************
.. image:: images/erd_11_dialog.png
:alt: ERD tool 1-1 dialog
:align: center
The one to one link dialog allows you to:
* Add a one to one relationship between two tables.
* *Local Table* is the table that references a table and has the *one* end point.
* *Local Column* the column that references.
* *Select Constraint* To implement one to one relationship, the *Local Column* must have primaty key or unique constraint. The default is a unique constraint. Please note that this field is visible only when the selected *Local Column* does not have either of the mentioned constraints.
* *Referenced Table* is the table that is being referred and has the *one* end point.
* *Referenced Column* the column that is being referred.
The One to Many Link Dialog
***************************
+91
View File
@@ -0,0 +1,91 @@
.. _export_data_using_query:
***************************************
`Export Data Using Query Dialog`:index:
***************************************
Use the *Export Data Using Query* dialog to copy data to a file.
The *Export Data Using Query* dialog organizes the export of data through the
*General*, *Options* and *Query* tabs.
.. image:: images/export_query_general.png
:alt: Export data using query dialog general tab
:align: center
Use the fields in the *General* tab to specify export preferences:
* Enter the name of the target file in the *Filename* field.
Optionally, select the *Browse* icon (ellipsis) to the right to navigate
into a directory and select a file.
* Use the drop-down listbox in the *Format* field to specify the file type.
Select:
* *binary* for a .bin file.
* *csv* for a .csv file.
* *text* for a .txt file.
* Use the drop-down listbox in the *Encoding* field to specify the type of
character encoding.
.. image:: images/export_query_options.png
:alt: Export data using query dialog options tab
:align: center
* Use the fields in the *Options* tab to specify additional information:
* Move the *Header* switch to the *Yes* position to include the table header
with the data rows. If you include the table header, the first row of the
file will contain the column names.
* If you are exporting data, specify the delimiter that will separate the
columns within the target file in the *Delimiter* field. The separating
character can be a colon, semicolon, a vertical bar, or a tab.
* Specify a quoting character used in the *Quote* field. Quoting can be
applied to string columns only (i.e. numeric columns will not be quoted)
or all columns regardless of data type. The character used for quoting can
be a single quote or a double quote.
* Specify a character that should appear before a data character that matches
the *QUOTE* value in the *Escape* field.
* Use the *NULL String* field to specify a string that will represent a null
value within the source or target file.
Click the *Query* tab to continue.
.. image:: images/export_query.png
:alt: Export data using query dialog query tab
:align: center
Use the fields in the *Query* tab to write the query that will be exported:
* Use the *Export Data Query* field to specifies A SELECT, VALUES, INSERT, UPDATE,
DELETE, or MERGE command whose results are to be copied .
* Use *Force Quote columns* field to forces quoting to be used for all non-NULL
values in each specified column. NULL output is never quoted. This is a creatable
select control. If you would like to quote all columns then provide only '*' in
the field.
After completing the *Export Data Using Query* dialog, click the *OK* button to
perform the export. pgAdmin will notify you when the background
process completes:
.. image:: images/export_query_complete.png
:alt: Export data using query completion notification
:align: center
Use the *View Processes* button on the notification to open the *Process
Watcher* and review detailed information about the execution of the command
that performed the export:
Use the **End Process** button to end the Export process.
.. image:: images/export_query_pw.png
:alt: Export data using query process watcher
:align: center
.. 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 exported file on the client machine .
.. |sm_icon| image:: images/sm_icon.png
Binary file not shown.

After

Width:  |  Height:  |  Size: 26 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 75 KiB

After

Width:  |  Height:  |  Size: 47 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 152 KiB

After

Width:  |  Height:  |  Size: 156 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 110 KiB

After

Width:  |  Height:  |  Size: 123 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 62 KiB

After

Width:  |  Height:  |  Size: 105 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 41 KiB

After

Width:  |  Height:  |  Size: 84 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 54 KiB

After

Width:  |  Height:  |  Size: 108 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 18 KiB

After

Width:  |  Height:  |  Size: 38 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 62 KiB

After

Width:  |  Height:  |  Size: 106 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 41 KiB

After

Width:  |  Height:  |  Size: 83 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.2 KiB

After

Width:  |  Height:  |  Size: 9.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 41 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 44 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 62 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 79 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 61 KiB

After

Width:  |  Height:  |  Size: 158 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 26 KiB

After

Width:  |  Height:  |  Size: 47 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 87 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 122 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 65 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 56 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 237 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 108 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 337 KiB

After

Width:  |  Height:  |  Size: 282 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 93 KiB

After

Width:  |  Height:  |  Size: 254 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 57 KiB

After

Width:  |  Height:  |  Size: 85 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 44 KiB

After

Width:  |  Height:  |  Size: 188 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 182 KiB

After

Width:  |  Height:  |  Size: 320 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 54 KiB

After

Width:  |  Height:  |  Size: 123 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 154 KiB

After

Width:  |  Height:  |  Size: 155 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 87 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 44 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 164 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 148 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 280 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 104 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 245 KiB

After

Width:  |  Height:  |  Size: 238 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 193 KiB

After

Width:  |  Height:  |  Size: 96 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 186 KiB

After

Width:  |  Height:  |  Size: 183 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 183 KiB

After

Width:  |  Height:  |  Size: 188 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 141 KiB

After

Width:  |  Height:  |  Size: 195 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 87 KiB

After

Width:  |  Height:  |  Size: 76 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 348 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 20 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 18 KiB

After

Width:  |  Height:  |  Size: 34 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 78 KiB

After

Width:  |  Height:  |  Size: 219 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 105 KiB

After

Width:  |  Height:  |  Size: 231 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.4 KiB

After

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 74 KiB

After

Width:  |  Height:  |  Size: 178 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 21 KiB

After

Width:  |  Height:  |  Size: 47 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 74 KiB

After

Width:  |  Height:  |  Size: 209 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 83 KiB

After

Width:  |  Height:  |  Size: 137 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 361 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 25 KiB

After

Width:  |  Height:  |  Size: 32 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 46 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 127 KiB

After

Width:  |  Height:  |  Size: 149 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 100 KiB

After

Width:  |  Height:  |  Size: 176 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 65 KiB

After

Width:  |  Height:  |  Size: 53 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 125 KiB

After

Width:  |  Height:  |  Size: 124 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 93 KiB

After

Width:  |  Height:  |  Size: 190 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 80 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 74 KiB

After

Width:  |  Height:  |  Size: 121 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 74 KiB

After

Width:  |  Height:  |  Size: 65 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 67 KiB

After

Width:  |  Height:  |  Size: 64 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 87 KiB

After

Width:  |  Height:  |  Size: 76 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 66 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 74 KiB

After

Width:  |  Height:  |  Size: 66 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 43 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 78 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 62 KiB

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