Compare commits

..
140 Commits
Author SHA1 Message Date
Aditya Toshniwal 3416184236 Fix more UI issues related to System statistics dashboard 2023-10-18 13:31:43 +05:30
Aditya Toshniwal 6e3ee1c607 Fix an issue where servers are not listed in add new connection dialog. 2023-10-18 11:43:42 +05:30
Aditya Toshniwal b512404c85 Update release notes 2023-10-17 15:19:40 +05:30
Pravesh Sharma 5bb6e9133f Fixed query history slowness issue by storing query only for those having certain threshold max length. #6666 2023-10-17 15:17:53 +05:30
Aditya Toshniwal 344c236d72 Fix following issues in system stats:
1. Graphs rendering in opposite directions on tab change.
2. Y-axis label width should be dynamic.
3. Tooltip values should be formatted.
2023-10-17 15:01:52 +05:30
Khushboo Vashi b4b2a4ff67 Fix an issue where user login is not working if username/email contains single quote in server mode. #6865 2023-10-17 13:49:18 +05:30
Akshay Joshi 205a661922 Update version for v7.8 release 2023-10-16 15:11:27 +05:30
Pravesh Sharma eead9b77e7 Fixed issue where MSQL for delete column was not generating. #5749 2023-10-16 15:04:31 +05:30
Aditya Toshniwal 47e734dbf2 Fix an issue in graphical explain plan where query tool crashes when the plan has parallel workers details and sort node is clicked for details. #6858 2023-10-16 11:40:43 +05:30
Libor M ce372a73bf Czech translation for version 7.8 2023-10-16 11:25:29 +05:30
Akshay Joshi 10c5d25735 Update message catalogs 2023-10-12 17:59:09 +05:30
Akshay Joshi 81dcc91747 Added 'hostaddr' and used host string as it is while creating SSHTunnel. 2023-10-12 17:57:40 +05:30
Aditya Toshniwal 3a62fc5a2a Fix issues found during testing. #6229, #6836 2023-10-12 16:58:46 +05:30
Aditya Toshniwal 10adb6a11b Add support for setting prepare threshold in server connection. #6285 2023-10-12 16:54:06 +05:30
Khushboo Vashi 82fade7645 Fix System Stat dashboard UI issues. 2023-10-12 14:04:58 +05:30
Akshay Joshi 37dced23f0 Remove an extra space in --disable-components 2023-10-11 19:14:01 +05:30
Akshay Joshi 6f857bdbcb Replace the logic to download/install PostgreSQL on Windows in the GitHub actions. Use stack builder instead of Chocolatey. 2023-10-11 18:24:12 +05:30
Aditya Toshniwal 6ba9c192ce Fix failing JS test cases after scale related commit. #6851 2023-10-11 16:31:02 +05:30
Aditya Toshniwal 221af6caa6 Fix an issue where scale in columns is not allowed to have value as 0 or below. #6851 2023-10-11 15:06:57 +05:30
Aditya Toshniwal e22492ad51 Fixed an issue where non-super PostgreSQL users are not able to terminate their own connections from dashboard. #6836 2023-10-11 13:43:31 +05:30
Akshay Joshi 2b8efc6361 Update release note 2023-10-11 13:34:02 +05:30
Pravesh Sharma 73430a2062 Fixed an issue where user was not able to assign new/old columns as primary key once column with primary key is deleted. #5749 2023-10-11 13:29:19 +05:30
Aditya Toshniwal fc411bfc49 Allow setting custom username for shared servers, with default as username of server being shared. #6229 2023-10-11 12:56:06 +05:30
Yogesh Mahajan 4450145d31 Fixed issues reported while testing foreign table properties. #640 2023-10-11 11:53:14 +05:30
Sahil Harpal cd84200135 Fix system stat dashboard UI issues. 2023-10-11 11:27:21 +05:30
Nikhil Mohite 6997d0149e Fetch database objects after opening the backup dialog. #6799 2023-10-10 15:28:25 +05:30
Aditya Toshniwal 5981f4bd13 In GUI tests, do not try to set the binary path in preferences if it is blank 2023-10-09 12:42:52 +05:30
Anil Sahoo 5113fda7a6 Fix an issue where global/native keyboard shortcuts are not working when any cell of data output grid has focus. #6579 (#6834) 2023-10-06 13:28:16 +05:30
Yogesh Mahajan 7ce07f7dcf Fixed issues reported while testing foreign table node. #640 2023-10-06 12:28:40 +05:30
Aditya Toshniwal 078a959e3d Remove the Pillow dependency completely. 2023-10-05 12:40:29 +05:30
Dave Page b4f517f7ff Rename tasks in workflows to allow rule enforcement in Github. 2023-10-05 11:57:24 +05:30
dependabot[bot] 36dc2e9d2a JS dependency: Bump eslint from 8.47.0 to 8.50.0 in /runtime (#6789)
Bumps [eslint](https://github.com/eslint/eslint) from 8.47.0 to 8.50.0.
- [Release notes](https://github.com/eslint/eslint/releases)
- [Changelog](https://github.com/eslint/eslint/blob/main/CHANGELOG.md)
- [Commits](https://github.com/eslint/eslint/compare/v8.47.0...v8.50.0)

---
updated-dependencies:
- dependency-name: eslint
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-10-05 11:33:41 +05:30
Aditya Toshniwal 858c85adbe Upgrade Pillow to latest based on Python v3.7 compatibility. 2023-10-05 11:30:50 +05:30
dependabot[bot] 2cd86449d0 JS dependency: Bump webpack from 5.88.0 to 5.88.2 in /web (#6641)
Bumps [webpack](https://github.com/webpack/webpack) from 5.88.0 to 5.88.2.
- [Release notes](https://github.com/webpack/webpack/releases)
- [Commits](https://github.com/webpack/webpack/compare/v5.88.0...v5.88.2)

---
updated-dependencies:
- dependency-name: webpack
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-10-04 18:37:38 +05:30
dependabot[bot] c37fb061bd JS dependency: Bump eslint-plugin-react in /web (#6688)
Bumps [eslint-plugin-react](https://github.com/jsx-eslint/eslint-plugin-react) from 7.32.2 to 7.33.2.
- [Release notes](https://github.com/jsx-eslint/eslint-plugin-react/releases)
- [Changelog](https://github.com/jsx-eslint/eslint-plugin-react/blob/master/CHANGELOG.md)
- [Commits](https://github.com/jsx-eslint/eslint-plugin-react/compare/v7.32.2...v7.33.2)

---
updated-dependencies:
- dependency-name: eslint-plugin-react
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-10-04 18:33:52 +05:30
dependabot[bot] dc9cc3730b Python dependency: Bump axios from 1.5.0 to 1.5.1 in /runtime (#6796)
Bumps [axios](https://github.com/axios/axios) from 1.5.0 to 1.5.1.
- [Release notes](https://github.com/axios/axios/releases)
- [Changelog](https://github.com/axios/axios/blob/v1.x/CHANGELOG.md)
- [Commits](https://github.com/axios/axios/compare/v1.5.0...v1.5.1)

---
updated-dependencies:
- dependency-name: axios
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-10-04 18:25:10 +05:30
dependabot[bot] 872b60de5c Python dependency: Bump postcss from 8.4.24 to 8.4.31 in /web (#6819)
Bumps [postcss](https://github.com/postcss/postcss) from 8.4.24 to 8.4.31.
- [Release notes](https://github.com/postcss/postcss/releases)
- [Changelog](https://github.com/postcss/postcss/blob/main/CHANGELOG.md)
- [Commits](https://github.com/postcss/postcss/compare/8.4.24...8.4.31)

---
updated-dependencies:
- dependency-name: postcss
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-10-04 18:24:46 +05:30
Aditya Toshniwal 5d2ce142dd Fixed an issue in ERD tool where the downloaded images have a few links cut. #4995 2023-10-04 18:23:41 +05:30
Akshay Joshi 9666bd6c8d 1) Added 'load_balance_hosts' connection string parameter for PG 16 and above. #6802
2) Added EPAS 11 support back as its EOL is in November.
2023-10-04 17:55:37 +05:30
Khushboo Vashi 0b3c79865e Fix the issue where backend APIs are called even if System Stat extension is not installed for the database. 2023-10-04 15:04:33 +05:30
Nikhil Mohite 9c903f944c Fixed an issue where the user is unable to select objects on the backup dialog due to tree flickring #6799. 2023-10-04 12:13:21 +05:30
Nikhil Mohite 541d9dfcb4 Fix API test cases for backup dialog. 2023-09-29 14:49:11 +05:30
Aditya Toshniwal b9d3006915 Fix failing RE-SQL test cases for foreign tables on EPAS servers. 2023-09-29 13:38:22 +05:30
Khushboo Vashi 68b7ddb592 Fix UI issues for System Statistics panel. 2023-09-28 15:23:15 +05:30
Akshay Joshi 4309aa3ba7 Ensure that the backup works properly for PG 16 on the latest docker image. #6790 2023-09-27 17:09:49 +05:30
Yogesh Mahajan f9bbadfc6a Pin the cryptography version to fix PyO3 modules initialisation error. #6718 2023-09-27 16:45:48 +05:30
Khushboo Vashi c6f8918983 Update release notes. 2023-09-27 16:06:54 +05:30
Sahil Harpal 16c95d21a7 GUI representation of the system's activity using the system_stats extension. #6797 2023-09-27 16:04:48 +05:30
Akshay Joshi bae912fa40 Added PG version 16 and removed PG version 11 from github actions. 2023-09-27 13:26:21 +05:30
Akshay Joshi ca3ec76db6 Added version PG 16 and removed PG 11 2023-09-27 12:49:16 +05:30
Akshay Joshi 4050545f7c Fixed an issue where the wrong message 'Current database has been moved or renamed' is displayed when debugging any function. #6482 2023-09-26 18:07:25 +05:30
Khushboo Vashi 975bcd9fb0 Update release notes. 2023-09-26 15:14:55 +05:30
Yogesh Mahajan 3cd547f879 Implement column node and its features for foreign table. #640, #6373, #6674 2023-09-26 15:03:03 +05:30
Akshay Joshi 5736e173ea 1) Fixed an issue where PG 16 binaries not getting copied into the docker container.
2) Remove support for PostgreSQL 11.
2023-09-26 13:45:08 +05:30
Dave Page 5a26cad588 Use PG16 as the default in the container. 2023-09-21 15:35:44 +05:30
Aditya Toshniwal 3b616b2fb1 Handle a missing case in previous commit where a PG binary may not be present on some systems. #6763 2023-09-20 12:47:06 +05:30
Aditya Toshniwal 35f05e49b3 Fix the security issue of validate bin path to consider and fix more scenarios. #6763 2023-09-20 11:17:07 +05:30
Akshay Joshi 61fa8b16c9 Update version for release 7.7 2023-09-18 18:57:29 +05:30
Pravesh Sharma 3258851425 Access method for partitions not visible when opening table properties. #6378 2023-09-18 18:49:11 +05:30
Nikhil Mohite 0f5450c6d2 Fixed the following issues found in testing of #642
1. When all nodes are collapsed & you select the schema node, table node remains partially selected.
2. When paren node is expanded with above operation, Child selection is not visible
3. Prevent scrolling to top on selection of node
4. The checkbox state is NOT remembered on switching of the tab.
2023-09-18 16:23:20 +05:30
Aditya Toshniwal 07f18a1b05 Fix an issue where user get logged out if password in changed. #6274 2023-09-18 14:06:38 +05:30
Aditya Toshniwal 02ecc82e73 Fix a security related issue where an authenticated user can run remote command using validate binary path API (CVE-2023-5002). #6763 (#6764) 2023-09-18 14:01:11 +05:30
rlbxku1r 0d111e0fb6 Update Japanese translation for v7.7 2023-09-18 13:45:13 +05:30
Domenico Sgarbossa 7af597eca2 Updated Italian translations for v7.7 2023-09-18 12:13:49 +05:30
Akshay Joshi 64c71becc6 Update message catalogs for v7.7 2023-09-14 18:06:56 +05:30
Akshay Joshi ffec77d50b Added compression method option while creating a column. #6379 2023-09-14 11:56:00 +05:30
Pravesh Sharma d69b4282c8 Fixed issues reported while testing feature #6378 2023-09-13 16:19:07 +05:30
Nikhil Mohite aa973fc8ae Added support to select/deselect objects in the Backup dialog. #642 2023-09-13 11:07:28 +05:30
Pravesh Sharma 8c91d40932 Fixed RESQL test case failure for EPAS 15. #6400 2023-09-13 10:50:29 +05:30
Aditya Toshniwal 2f5fb6a996 Fix an issue where user is not able to change the password when SMTP is not configured. #6274.
Fix an issue where changing the password shows success but the new password is not working. #6730.
2023-09-12 15:16:09 +05:30
Pravesh Sharma cfc338c5f0 Fix an issue where login form doesn't appear if internal auth source is removed. #6378 2023-09-12 11:40:34 +05:30
Anil Sahoo 32403920fe Enhancement of properties tab for column's collection by adding Primary Key and Not NULL columns. #2411 2023-09-07 11:54:02 +05:30
Akshay Joshi e9384615dc Fixed linter error. 2023-09-06 11:43:55 +05:30
Akshay Joshi 07d965ea46 Ensure that Materialized view size fields in Statistics should be human-readable. #6712 2023-09-06 11:31:04 +05:30
Pravesh Sharma a43b70e360 1. Added USING method while creating the table. #6378
2. Added USING method while creating the materialized view. #6400
2023-09-06 11:22:30 +05:30
Khushboo Vashi 095e11247d Update release notes. 2023-09-05 18:18:36 +05:30
Akshay Joshi 88162c683e Unpin the 'python-socketio' as the issue is fixed in the latest version of Flask-SocketIO v5.3.6 2023-09-05 16:29:29 +05:30
Akshay Joshi cf3c696f7e Pin python-socketio to 5.8.0 as the latest version throwing error for the test client. 2023-09-05 11:54:43 +05:30
Everton Seiei Arakaki 02eaf787e9 Add support for additional ID token claim checks for OAuth 2 authentication. #6736 2023-09-05 11:28:18 +05:30
Dave Page e5c249e81c Remove version from SSL libs 2023-09-04 15:35:56 +01:00
Akshay Joshi c0b868b53b Added Strategy, Locale Provider, ICU Locale, ICU Rules, and OID options while creating a database. #6383 2023-09-04 16:03:06 +05:30
dependabot[bot] 39a14920e3 Python dependency: Bump axios from 1.4.0 to 1.5.0 in /runtime (#6725)
Bumps [axios](https://github.com/axios/axios) from 1.4.0 to 1.5.0.
- [Release notes](https://github.com/axios/axios/releases)
- [Changelog](https://github.com/axios/axios/blob/v1.x/CHANGELOG.md)
- [Commits](https://github.com/axios/axios/compare/v1.4.0...v1.5.0)

---
updated-dependencies:
- dependency-name: axios
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-09-04 15:05:16 +05:30
sprayzcs 5cf9dea9a8 Change grep regex in the docker's entrypoint to find env variables starting with PGADMIN_CONFIG_ only. 2023-09-04 13:06:15 +05:30
Anil Sahoo 0b7eafaca0 Added the 'data type' column in the properties tab of the Columns collection node. #2411 2023-08-31 12:33:08 +05:30
Khushboo Vashi ed8aeed818 Remove backslash from the directory path to fix the SBOM generation issue on Windows. 2023-08-31 12:30:40 +05:30
Khushboo Vashi 0b91244f91 Another attempt to fix SBOM Windows issue. 2023-08-30 11:21:08 +05:30
Khushboo Vashi 46c67a2f4e Fix SBOM generation issue on Windows. 2023-08-28 15:42:39 +05:30
Akshay Joshi c87e925991 Update release note 2023-08-25 12:51:47 +05:30
Anil Sahoo 5fb80af90e Added all the new options of the 'WITH' clause in the subscription dialog. #4805 2023-08-25 12:48:31 +05:30
Akshay Joshi 77467209c2 1) Added release note for v7.7
2) Added exception handling while removing the test database file.
2023-08-25 11:14:54 +05:30
Yogesh Mahajan cd613ded0a Ensure user is redirected to login page after failed login. #6704 2023-08-25 10:38:50 +05:30
Aditya Toshniwal e8283173ba Remove imagemin-pngquant as we already have a PNG optimizer imagemin-optipng 2023-08-23 12:23:38 +05:30
Akshay Joshi c08953b9b3 Update version for release 7.6 2023-08-21 13:14:40 +05:30
Aditya Toshniwal 779749a515 Fix an 'str expected' error in import/export when setting server password in env 2023-08-21 13:08:19 +05:30
Yogesh Mahajan 7f5433b307 Update documentation for OAuth2 authentication redirect url.#6644 2023-08-21 12:16:18 +05:30
Libor M 93525a6196 Czech translation for version 7.6 2023-08-21 11:20:09 +05:30
Akshay Joshi eee7e1ae53 Update message catalogs. 2023-08-17 18:51:32 +05:30
Yogesh Mahajan e2f32c0984 Fix doc build failure due to SQLAlchemy changes. #6208 2023-08-17 14:00:56 +05:30
Akshay Joshi edd1783353 Fixed an issue where ignore owner is not working when owner and grants both are different 2023-08-16 18:46:42 +05:30
Aditya Toshniwal 1adde6084f Update release notes 2023-08-16 15:32:17 +05:30
Yogesh Mahajan 34f160cec7 Allow changing the POOL_SIZE and MAX_OVERFLOW config values of the pgAdmin config DB connection pool. #6208 2023-08-16 15:29:11 +05:30
Akshay Joshi 33b2b82ba9 Pin NW.js to 0.77.0, as the latest version crashes after an attempt to reopen the fullscreen window. 2023-08-16 13:05:35 +05:30
Akshay Joshi 2c81b33925 Sort parent objects as well in Schema Diff tool. 2023-08-14 17:14:58 +05:30
Khushboo Vashi a9799f25a2 Generate SBOM for Python wheel package. 2023-08-14 16:23:17 +05:30
Akshay Joshi 0e0eb3c2d5 Fixed the validation for source and target schema in schema diff tool. 2023-08-14 14:03:49 +05:30
MysticBoy 98fd51b38b Fixed Chinese translation error 2023-08-14 10:41:28 +05:30
Akshay Joshi 3c43aa12af 1) Added 'Ignore Grants' option in the schema diff tool. #5759
2) Added 'Ignore Tablespace' option in the schema diff tool. #6004
3) Ensure that Schema Diff comparison results should be displayed in the sorted order. #6595
4) Fixed an issue where the SET directive is excluded from the function header in the schema diff tool. #6651
2023-08-11 17:38:44 +05:30
Khushboo Vashi e80d55e968 Use a consistent name for sbom files. 2023-08-11 15:12:26 +05:30
Dave Page 7fcfea2214 JIT entitlement is required on Apple Silicon, otherwise NWJS won't start.
See https://github.com/nwjs/nw.js/issues/8086
2023-08-10 13:36:00 +01:00
Dave Page e06d39b70c Cleanup some more unnecessary artefacts from the build. 2023-08-10 13:35:04 +01:00
Khushboo Vashi b2eb23eb8d Fix pgAdmin 7.5 fails to render table SQL with extension loaded index method. #6630 2023-08-10 11:53:30 +05:30
Akshay Joshi da71c0c746 Fixed an issue where the 'CASCADE' keyword is always visible while creating an Extension. #3942 2023-08-09 18:17:08 +05:30
Yogesh Mahajan 0b24a8f39a Ensure keyboard shortcut for query execution is disabled when query execution is in progress. #6664 2023-08-09 10:49:45 +05:30
MysticBoy 8afa17d692 Chinese translation. 2023-08-08 11:56:32 +05:30
Khushboo Vashi c72e2f159d Fix the query tool issue 'pgAdminThread' object has no attribute 'native_id'. #6660 2023-08-08 11:00:52 +05:30
Khushboo Vashi f399b30605 Update release notes. 2023-08-07 17:23:32 +05:30
Khushboo Vashi b55164c454 Fix the query tool issue where raise Notice from func/proc or code blocks are no longer displayed live. #6420 2023-08-07 17:19:08 +05:30
Pravesh Sharma 27c7ea2ff1 Added all like options while creating a table. #6377 2023-08-07 11:20:04 +05:30
Khushboo Vashi ac50b4d80b Another attempt to fix rpm build failure for SBOM. 2023-08-04 15:37:13 +05:30
Khushboo Vashi 2c4b479f50 Fix the rpm build failure for SBOM. 2023-08-04 15:05:06 +05:30
Pravesh Sharma 00011b387a Fixed issue where cycle syntax was not added in SQL when creating new sequence from UI. #6639 2023-08-04 11:57:28 +05:30
Akshay Joshi b01a93544f Added cascade option while creating an extension. #3942 2023-08-03 17:23:03 +05:30
Khushboo Vashi 48bfc66048 Generate software bill of materials as part of the package builds. #3702 2023-08-03 16:08:59 +05:30
Akshay Joshi 1a7a23de3f Added WAL option to EXPLAIN ANALYZE command. #6382 2023-08-03 15:57:12 +05:30
Aditya Toshniwal 59c4a00134 Fix an issue where query tool on shared server is throwing error if the pgAdmin config DB is external. #6252 2023-08-03 12:08:52 +05:30
Aditya Toshniwal c873217cf1 Update release notes 2023-08-03 09:45:44 +05:30
Yogesh Mahajan ce146b679c Add support for TRUNCATE trigger in foreign table. #6448 2023-08-03 09:42:17 +05:30
Yogesh Mahajan e8fdf04e97 Fix incorrect redirection URL after authentication by removing fixed value set to SCRIPT_NAME environment variable in pgAdmin4.wsgi file.#5454 2023-08-03 09:18:43 +05:30
Akshay Joshi 0f86b78d87 Added support for PostgreSQL and EPAS 16 to ensure it works without any errors. #6588 2023-08-02 11:26:09 +05:30
Khushboo Vashi 31fddaf10b Update release notes. 2023-08-01 14:03:21 +05:30
Khushboo Vashi 30a0fb1cb3 Fix the issue where query tool window turns blank if the user tries to generate a graph on the result. #6500 2023-08-01 13:57:52 +05:30
Aditya Toshniwal 3ba73ab1d9 Update axios to the current latest version(1.4.0) 2023-08-01 13:04:06 +05:30
Anil Sahoo 7d7b8a71c1 1. Added Expression to CREATE INDEX. #2595
2. Added support for ALTER INDEX column statistics. #6375
2023-08-01 12:37:47 +05:30
dependabot[bot] 4920d25479 JS dependency: Bump html-react-parser from 1.4.14 to 4.2.0 in /web (#6610)
Bumps [html-react-parser](https://github.com/remarkablemark/html-react-parser) from 1.4.14 to 4.2.0.
- [Release notes](https://github.com/remarkablemark/html-react-parser/releases)
- [Changelog](https://github.com/remarkablemark/html-react-parser/blob/master/CHANGELOG.md)
- [Commits](https://github.com/remarkablemark/html-react-parser/compare/v1.4.14...v4.2.0)

---
updated-dependencies:
- dependency-name: html-react-parser
  dependency-type: direct:development
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-08-01 12:34:54 +05:30
Aditya Toshniwal a1c7265c41 Fix PEP8 issues with latest pycodestyle (#6636) 2023-07-31 18:14:39 +05:30
Aditya Toshniwal 2aea5b41ad Fix an issue where changing MFA_SUPPORTED_METHODS breaks the MFA validation. #6624 2023-07-31 15:02:30 +05:30
Akshay Joshi 9ab36b0269 Fixed PEP8 2023-07-27 18:18:39 +05:30
Akshay Joshi b4e6d8c6d7 1) Fixed feature tests failed due to maintenance changes.
2) Update release note.
2023-07-27 18:15:36 +05:30
Pravesh Sharma 5c2d242ff8 Added unlogged option while creating a sequence. #6376 2023-07-27 17:37:22 +05:30
Akshay Joshi a460644ae8 1) Added support for SYSTEM, CONCURRENTLY and TABLESPACE options in REINDEX. #6381
2) Added new/missing options to the VACUUM command. #6397
3) Added SKIP_LOCKED and BUFFER_USAGE_LIMIT option to Analyze command. #6415
2023-07-27 17:34:25 +05:30
641 changed files with 63289 additions and 29389 deletions

No files matched your search

+1 -1
View File
@@ -13,7 +13,7 @@ concurrency:
cancel-in-progress: true
jobs:
build:
build-container:
runs-on: ubuntu-latest
steps:
+1 -1
View File
@@ -13,7 +13,7 @@ concurrency:
cancel-in-progress: true
jobs:
build:
build-docs:
runs-on: ubuntu-latest
steps:
+1 -1
View File
@@ -13,7 +13,7 @@ concurrency:
cancel-in-progress: true
jobs:
build:
check-javascript-style:
runs-on: ubuntu-latest
steps:
+1 -1
View File
@@ -13,7 +13,7 @@ concurrency:
cancel-in-progress: true
jobs:
build:
build-python-package:
runs-on: ubuntu-latest
steps:
+1 -1
View File
@@ -13,7 +13,7 @@ concurrency:
cancel-in-progress: true
jobs:
build:
check-python-style:
runs-on: ubuntu-latest
steps:
+1 -1
View File
@@ -13,7 +13,7 @@ concurrency:
cancel-in-progress: true
jobs:
build:
build-tarball:
runs-on: ubuntu-latest
steps:
+1 -1
View File
@@ -13,7 +13,7 @@ concurrency:
cancel-in-progress: true
jobs:
build:
check-translations:
runs-on: ubuntu-latest
steps:
+1 -1
View File
@@ -13,7 +13,7 @@ concurrency:
cancel-in-progress: true
jobs:
build:
run-feature-tests-epas:
# Only run if the tests are enabled
# TODO: Figure out a way to test for the presence of the secrets instead
if: vars.ENABLE_EPAS_TESTS == 'true'
+2 -2
View File
@@ -16,11 +16,11 @@ concurrency:
cancel-in-progress: true
jobs:
build:
run-feature-tests-pg:
strategy:
fail-fast: false
matrix:
pgver: [11, 12, 13, 14, 15]
pgver: [12, 13, 14, 15, 16]
runs-on: ubuntu-latest
+2 -2
View File
@@ -13,7 +13,7 @@ concurrency:
cancel-in-progress: true
jobs:
build:
run-javascript-tests:
strategy:
fail-fast: false
matrix:
@@ -23,7 +23,7 @@ jobs:
steps:
- uses: actions/checkout@v3
- name: Upgrade yarn
run: |
yarn set version berry
+1 -1
View File
@@ -23,7 +23,7 @@ concurrency:
cancel-in-progress: true
jobs:
build:
run-python-tests-epas:
# Only run if the tests are enabled
# TODO: Figure out a way to test for the presence of the secrets instead
if: vars.ENABLE_EPAS_TESTS == 'true'
+5 -3
View File
@@ -16,12 +16,12 @@ concurrency:
cancel-in-progress: true
jobs:
build:
run-python-tests-pg:
strategy:
fail-fast: false
matrix:
os: [macos-latest, ubuntu-latest, windows-latest]
pgver: [11, 12, 13, 14, 15]
pgver: [12, 13, 14, 15, 16]
runs-on: ${{ matrix.os }}
@@ -57,7 +57,9 @@ jobs:
- name: Install platform dependencies on Windows
if: ${{ matrix.os == 'windows-latest' }}
run: |
choco install -y postgresql${{ matrix.pgver }} --params "/Password:postgres /Port:59${{ matrix.pgver }}" --ia "--prefix C:\PostgreSQL\${{ matrix.pgver }} --datadir C:\PostgreSQL\${{ matrix.pgver }}\data --install_runtimes 0 --disable-components pgAdmin,stackbuilder --enable-components server,commandlinetools"
FOR /f "delims=" %%F IN ('python tools\get_sb_package.py "https://www.postgresql.org/applications-v2.xml" "postgresql_${{ matrix.pgver }}" "windows-x64"') DO SET INSTALLER_EXE=%%F
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)
+1 -1
View File
@@ -18,7 +18,7 @@ concurrency:
cancel-in-progress: false
jobs:
build:
run-sonarqube-scan:
# Only run if the project key is set
if: vars.SONARQUBE_PROJECT_KEY != null
+1 -1
View File
@@ -1,5 +1,5 @@
[pycodestyle]
ignore = E402,W504,W605
ignore = E402,W504,W605,E231,W605
max-line-length = 79
statistics = True
show-source = False
+14 -9
View File
@@ -114,20 +114,15 @@ RUN rm -rf /pgadmin4/docs/en_US/_build/html/_static/*.png
# Create additional builders to get all of the PostgreSQL utilities
#########################################################################
FROM postgres:11-alpine AS pg11-builder
FROM postgres:12-alpine AS pg12-builder
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 alpine:latest AS tool-builder
# Copy the PG binaries
COPY --from=pg11-builder /usr/local/bin/pg_dump /usr/local/pgsql/pgsql-11/
COPY --from=pg11-builder /usr/local/bin/pg_dumpall /usr/local/pgsql/pgsql-11/
COPY --from=pg11-builder /usr/local/bin/pg_restore /usr/local/pgsql/pgsql-11/
COPY --from=pg11-builder /usr/local/bin/psql /usr/local/pgsql/pgsql-11/
COPY --from=pg12-builder /usr/local/bin/pg_dump /usr/local/pgsql/pgsql-12/
COPY --from=pg12-builder /usr/local/bin/pg_dumpall /usr/local/pgsql/pgsql-12/
COPY --from=pg12-builder /usr/local/bin/pg_restore /usr/local/pgsql/pgsql-12/
@@ -148,6 +143,11 @@ COPY --from=pg15-builder /usr/local/bin/pg_dumpall /usr/local/pgsql/pgsql-15/
COPY --from=pg15-builder /usr/local/bin/pg_restore /usr/local/pgsql/pgsql-15/
COPY --from=pg15-builder /usr/local/bin/psql /usr/local/pgsql/pgsql-15/
COPY --from=pg16-builder /usr/local/bin/pg_dump /usr/local/pgsql/pgsql-16/
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/
#########################################################################
# Assemble everything into the final container.
#########################################################################
@@ -159,9 +159,14 @@ COPY --from=env-builder /venv /venv
# Copy in the tools
COPY --from=tool-builder /usr/local/pgsql /usr/local/
COPY --from=pg15-builder /usr/local/lib/libpq.so.5.15 /usr/lib/
RUN ln -s libpq.so.5.15 /usr/lib/libpq.so.5 && \
ln -s libpq.so.5.15 /usr/lib/libpq.so
COPY --from=pg16-builder /usr/local/lib/libpq.so.5.16 /usr/lib/
COPY --from=pg16-builder /usr/lib/libzstd.so.1.5.5 /usr/lib/
COPY --from=pg16-builder /usr/lib/liblz4.so.1.9.4 /usr/lib/
RUN ln -s libpq.so.5.16 /usr/lib/libpq.so.5 && \
ln -s libpq.so.5.16 /usr/lib/libpq.so && \
ln -s libzstd.so.1.5.5 /usr/lib/libzstd.so.1 && \
ln -s liblz4.so.1.9.4 /usr/lib/liblz4.so.1
WORKDIR /pgadmin4
ENV PYTHONPATH=/pgadmin4
+16 -6
View File
@@ -26,6 +26,7 @@ CALL :CLEAN || EXIT /B 1
CALL :CREATE_VIRTUAL_ENV || EXIT /B 1
CALL :CREATE_PYTHON_ENV || EXIT /B 1
CALL :CREATE_RUNTIME_ENV || EXIT /B 1
CALL :GENERATE_SBOM || EXIT /B 1
CALL :CREATE_INSTALLER || EXIT /B 1
CALL :SIGN_INSTALLER || EXIT /B 1
@@ -275,10 +276,16 @@ REM Main build sequence Ends
REM YARN END
REM WGET
FOR /f "tokens=2 delims='" %%i IN ('yarn info nw ^| findstr "latest: "') DO SET "NW_VERSION=%%i"
:GET_NW
wget https://dl.nwjs.io/v%NW_VERSION%/nwjs-v%NW_VERSION%-win-x64.zip -O "%TMPDIR%\nwjs-v%NW_VERSION%-win-x64.zip"
IF %ERRORLEVEL% NEQ 0 GOTO GET_NW
REM Comment out the below line as the latest version having some
REM problem https://github.com/nwjs/nw.js/issues/7964, so for the time being
REM hardcoded the version to 0.77.0
REM FOR /f "tokens=2 delims='" %%i IN ('yarn info nw ^| findstr "latest: "') DO SET "NW_VERSION=%%i"
REM :GET_NW
REM wget https://dl.nwjs.io/v%NW_VERSION%/nwjs-v%NW_VERSION%-win-x64.zip -O "%TMPDIR%\nwjs-v%NW_VERSION%-win-x64.zip"
REM IF %ERRORLEVEL% NEQ 0 GOTO GET_NW
SET "NW_VERSION=0.77.0"
wget https://dl.nwjs.io/v%NW_VERSION%/nwjs-v%NW_VERSION%-win-x64.zip -O "%TMPDIR%\nwjs-v%NW_VERSION%-win-x64.zip"
tar -C "%TMPDIR%" -xvf "%TMPDIR%\nwjs-v%NW_VERSION%-win-x64.zip" || EXIT /B 1
REM WGET END
@@ -308,8 +315,8 @@ REM Main build sequence Ends
ECHO Staging PostgreSQL components...
COPY "%PGADMIN_POSTGRES_DIR%\bin\libpq.dll" "%BUILDROOT%\runtime" > nul || EXIT /B 1
COPY "%PGADMIN_POSTGRES_DIR%\bin\libcrypto-1_1-x64.dll" "%BUILDROOT%\runtime" > nul || EXIT /B 1
COPY "%PGADMIN_POSTGRES_DIR%\bin\libssl-1_1-x64.dll" "%BUILDROOT%\runtime" > nul || EXIT /B 1
COPY "%PGADMIN_POSTGRES_DIR%\bin\libcrypto-*-x64.dll" "%BUILDROOT%\runtime" > nul || EXIT /B 1
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
COPY "%PGADMIN_POSTGRES_DIR%\bin\zlib.dll" "%BUILDROOT%\runtime" > nul || EXIT /B 1
@@ -355,6 +362,9 @@ REM Main build sequence Ends
CD %WD%
EXIT /B 0
:GENERATE_SBOM
ECHO Generating SBOM...
CALL syft "%BUILDROOT%" -o cyclonedx-json > "%BUILDROOT%\sbom.json"
:SIGN_INSTALLER
ECHO Attempting to sign the installer...
+10
View File
@@ -251,6 +251,16 @@ tab to provide other backup options.
table locks at the beginning of the dump. Instead, fail if unable to lock a
table within the specified timeout.
Click the *Objects* tab to continue.
.. image:: images/backup_object_selection.png
:alt: Select objects in backup dialog
:align: center
* Select the objects from tree to take backup of selected objects only.
* If Schema is selected then it will take the backup of that selected schema only.
* If any Table, View, Materialized View, Sequences, or Foreign Table is selected then it will take the backup of those selected objects.
When you’ve specified the details that will be incorporated into the pg_dump
command:
+1 -1
View File
@@ -14,7 +14,7 @@ root = os.path.realpath(
if sys.path[0] != root:
sys.path.insert(0, root)
import config
from pgadmin.utils import PgAdminModule
target = open('code_snippets.rst', 'w')
+4
View File
@@ -39,6 +39,10 @@ are disabled if inapplicable.)
a text value.
* Use the drop-down listbox next to *Collation* to apply a collation setting to
the column.
* Use the drop-down listbox next to *Compression* to set the compression method
for the column. Compression is supported only for variable-width data types,
and is used only when the column's storage mode is main or extended. This
option is available from v14 and above.
Click the *Constraints* tab to continue.
+2 -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-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-11': '/usr/local/pgsql-11'
'pg-12': '/usr/local/pgsql-12'
}
this may be changed in the :ref:`preferences`.
+14
View File
@@ -19,6 +19,9 @@ Use the fields in the *General* tab to identify the database:
* Use the *Database* field to add a descriptive name for the database. The name
will be displayed in the *pgAdmin* tree control.
* Use the *OID* field to specify the object identifier to be used for the new
database. Users can specify the value greater than 16383. This option is available
from v15 and above.
* Select the owner of the database from the drop-down listbox in the *Owner*
field.
* Store notes about the database in the *Comment* field.
@@ -38,11 +41,22 @@ Use the *Definition* tab to set properties for the database:
* Select a tablespace from the drop-down listbox in the *Tablespace* field. The
selected tablespace will be the default tablespace used to contain database
objects.
* 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.
* 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.
lower, upper and digit. The default, or a blank field, uses the character
classification of the template database.
* Select the icu locale from the drop-down listbox in the *ICU Locale* to
specifies the ICU locale ID if the ICU locale provider is used.
This option is available from v15 and above.
* 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.
* 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.
+4 -1
View File
@@ -23,6 +23,9 @@ Use the fields in the *General* tab to identify an extension:
* Use the drop-down listbox in the *Name* field to select the extension. Each
extension must have a unique name.
* Move the switch next to *Cascade?* towards right position to automatically
install any extensions that this extension depends on that are not already
installed.
* Store notes about the extension in the *Comment* field.
Click the *Definition* tab to continue.
@@ -55,7 +58,7 @@ the *Extension* dialog:
:align: center
The command creates the *adminpack* extension in the *public* schema. It is
version *1.0* of *adminpack*.
version *2.0* of *adminpack*.
* Click the *Info* button (i) to access online help.
* Click the *Save* button to save work.
Binary file not shown.

After

Width:  |  Height:  |  Size: 126 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 29 KiB

After

Width:  |  Height:  |  Size: 54 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 38 KiB

After

Width:  |  Height:  |  Size: 65 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 39 KiB

After

Width:  |  Height:  |  Size: 110 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 29 KiB

After

Width:  |  Height:  |  Size: 56 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 22 KiB

After

Width:  |  Height:  |  Size: 42 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 49 KiB

After

Width:  |  Height:  |  Size: 82 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 59 KiB

After

Width:  |  Height:  |  Size: 110 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 21 KiB

After

Width:  |  Height:  |  Size: 44 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 21 KiB

After

Width:  |  Height:  |  Size: 46 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 23 KiB

After

Width:  |  Height:  |  Size: 54 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 64 KiB

After

Width:  |  Height:  |  Size: 88 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 71 KiB

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 19 KiB

After

Width:  |  Height:  |  Size: 7.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 27 KiB

After

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 52 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 115 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 62 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 99 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 178 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 65 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 37 KiB

After

Width:  |  Height:  |  Size: 60 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 54 KiB

After

Width:  |  Height:  |  Size: 96 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: 78 KiB

After

Width:  |  Height:  |  Size: 122 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 28 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 66 KiB

After

Width:  |  Height:  |  Size: 158 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 54 KiB

After

Width:  |  Height:  |  Size: 93 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 94 KiB

After

Width:  |  Height:  |  Size: 139 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 63 KiB

After

Width:  |  Height:  |  Size: 88 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 70 KiB

After

Width:  |  Height:  |  Size: 122 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 49 KiB

After

Width:  |  Height:  |  Size: 74 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 57 KiB

After

Width:  |  Height:  |  Size: 67 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 44 KiB

After

Width:  |  Height:  |  Size: 8.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 111 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 33 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 34 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 49 KiB

After

Width:  |  Height:  |  Size: 94 KiB

+18 -10
View File
@@ -8,7 +8,7 @@ Use the *Index* dialog to create an index on a specified table or materialized
view.
The *Index* dialog organizes the development of a index through the following
dialog tabs: *General* and *Definition*. The *SQL* tab displays the SQL code
dialog tabs: *General*, *Definition*, and *Columns*. The *SQL* tab displays the SQL code
generated by dialog selections.
.. image:: images/index_general.png
@@ -76,28 +76,36 @@ Use the fields in the *Definition* tab to define the index:
expression limits the entries in the index to those rows that satisfy the
constraint.
Use the context-sensitive fields in the *Columns* panel to specify which
column(s) the index queries. Click the *Add* icon (+) to add a column:
Click the *Columns* tab to continue.
* Use the drop-down listbox in *Column* field to select the name of the column
rom the table.
.. image:: images/index_columns.png
:alt: Index dialog columns tab
:align: center
Use the fields in the *Columns* tab to specify which column(s) or expression(s)
the index queries. Use the *Is expression ?* switch to enable
expression sql input. Use the drop-down listbox next to *Column*
to select a column. Once the *Column* is selected or the *Expression* is
entered then click the *Add* icon (+) to provide details of the action on the
column/expression:
* The *Col/Exp* field is populated with the selection made in the *Column*
drop-down listbox or the *Expression* entered.
* If enabled, use the drop-down listbox to select an available *Operator class*
to specify the type of action performed on the column.
* If enabled, move the *Sort order* switch to specify the sort order:
* If enabled, use the drop-down listbox to select *Sort order*:
* Select *ASC* to specify an ascending sort order (the default);
* Select *DESC* to specify a descending sort order.
* If enabled, move the *Nulls* switch to specify the sort order of nulls:
* If enabled, use the drop-down listbox to select *Nulls*:
* Select *First* to specify nulls sort before non-nulls;
* Select *Last* to specify nulls sort after non-nulls (the default).
* Use the drop-down listbox in the *Collation* field to select a collation to
use for the index.
Use *Include columns* field to specify columns for *INCLUDE* clause of the
index. This option is available in Postgres 11 and later.
constraint. This option is available in Postgres 11 and later.
Click the *SQL* tab to continue.
+83 -10
View File
@@ -7,36 +7,109 @@
Use the *Maintenance* dialog to VACUUM, ANALYZE, REINDEX or CLUSTER a database
or selected database objects.
.. image:: images/maintenance.png
:alt: Maintenance dialog
:align: center
While this utility is useful for ad-hoc maintenance purposes, you are encouraged
to perform automatic VACUUM jobs on a regular schedule.
Select a button next to *Maintenance operation* to specify the type of
maintenance:
.. image:: images/maintenance_vacuum.png
:alt: Maintenance dialog
:align: center
* Click *VACUUM* to scan the selected database or table to reclaim storage used
by dead tuples.
* Move the *FULL* switch to the *Yes* position to compact tables by writing
a completely new version of the table file without dead space. The default
is *No*.
a completely new version of the table file without dead space.
* Move the *FREEZE* switch to the *Yes* position to freeze data in a table
when it will have no further updates. The default is *No*.
when it will have no further updates.
* Move the *ANALYZE* switch to the *Yes* position to issue ANALYZE commands
whenever the content of a table has changed sufficiently. The default is
*No*.
whenever the content of a table has changed sufficiently.
* Move the *DISABLE PAGE SKIPPING* switch to the *Yes* position to disables
all page-skipping behavior.
* Move the *SKIP LOCKED* switch to the *Yes* position to specifies that
VACUUM should not wait for any conflicting locks to be released when
beginning work on a relation. This option is available from v12 onwards.
* Move the *TRUNCATE* switch to the *Yes* position to specifies that VACUUM
should attempt to truncate off any empty pages at the end of the table and
allow the disk space for the truncated pages to be returned to the operating
system. This option is available from v12 onwards.
* Move the *PROCESS TOAST* switch to the *Yes* position to specifies that
VACUUM should attempt to process the corresponding TOAST table for each
relation, if one exists. This option is available from v14 onwards.
* Move the *PROCESS MAIN* switch to the *Yes* position to specifies that
VACUUM should attempt to process the main relation. This option is available
from v16 onwards.
* Move the *SKIP DATABASE STATS* switch to the *Yes* position to specifies
that VACUUM should skip updating the database-wide statistics about oldest
unfrozen XIDs. This option is available from v16 onwards.
* Move the *ONLY DATABASE STATS* switch to the *Yes* position to specifies
that VACUUM should do nothing except update the database-wide statistics
about oldest unfrozen XIDs . This option is available from v16 onwards.
* Use the *INDEX CLEANUP* field to force VACUUM to process indexes when there
are more than zero dead tuples.
* Use the *PARALLEL* field to specify index vacuum and index cleanup phases
of VACUUM in parallel using integer background workers. This option is
available from v13 onwards.
* Use the *BUFFER USAGE LIMIT* field to specifies the Buffer Access Strategy
ring buffer size for VACUUM. This size is used to calculate the number of
shared buffers which will be reused as part of this strategy. This option
is available from v16 onwards
.. image:: images/maintenance_analyze.png
:alt: Maintenance dialog
:align: center
* Click *ANALYZE* to update the stored statistics used by the query planner.
This enables the query optimizer to select the fastest query plan for optimal
performance.
* Move the *SKIP LOCKED* switch to the *Yes* position to specifies that
ANALYZE should not wait for any conflicting locks to be released when
beginning work on a relation. This option is available from v12 onwards.
* Use the *BUFFER USAGE LIMIT* field to specifies the Buffer Access Strategy
ring buffer size for ANALYZE. This size is used to calculate the number of
shared buffers which will be reused as part of this strategy. This option
is available from v16 onwards
.. image:: images/maintenance_reindex.png
:alt: Maintenance dialog
:align: center
* Click *REINDEX* to rebuild any index in case it has degenerated due to the
insertion of unusual data patterns. This happens, for example, if you insert
rows with increasing index values, and delete low index values.
* Move the *SYSTEM* switch to the *Yes* position to recreate all indexes
on system catalogs within the current database. This option is enabled
only when database object is selected.
* Move the *CONCURRENTLY* switch to the *Yes* position to rebuild the index
without taking any locks that prevent concurrent inserts, updates, or
deletes on the table. This option is available from v12 onwards.
* Use the *TABLESPACE* field to specifies that indexes will be rebuilt on
a new tablespace. This option is available from v14 onwards.
.. image:: images/maintenance_cluster.png
:alt: Maintenance dialog
:align: center
* Click *CLUSTER* to instruct PostgreSQL to cluster the selected table.
To exclude status messages from the process output, move the *Verbose Messages*
@@ -47,4 +120,4 @@ to exit the dialog without performing maintenance operations, click *Cancel*.
pgAdmin will run the maintenance process in background. You can view all the background
process with there running status and logs on the :ref:`Processes <processes>`
tab
tab.
+14 -11
View File
@@ -31,17 +31,6 @@ Use the fields in the *General* tab to identify the materialized view:
Click the *Definition* tab to continue.
.. image:: images/materialized_view_definition.png
:alt: Materialized view dialog definition tab
:align: center
Use the text editor field in the *Definition* tab to provide the query that will
populate the materialized view. Please note that updating the definition of existing
materialized view would result in loss of Parameter(Table, Toast), Security(Privileges & Security labels),
Indexes and other dependent objects.
Click the *Storage* tab to continue.
.. image:: images/materialized_view_storage.png
:alt: Materialized view dialog storage tab
:align: center
@@ -52,10 +41,24 @@ Use the fields in the *Storage* tab to maintain the materialized view:
cannot be queried until you invoke REFRESH MATERIALIZED VIEW.
* Use the drop-down listbox next to *Tablespace* to select a location for the
materialized view.
* Use the drop-down list box next to Access Method to specify the table access method to use to store the contents
for the new materialized view; the method needs to be an access method of type TABLE. This field is optional.
This option is available from v12 and above.
* Use the *Fill Factor* field to specify a fill factor for the materialized
view. The fill factor for a table is a percentage between 10 and 100. 100
(complete packing) is the default.
Click the *Code* tab to continue.
.. image:: images/materialized_view_code.png
:alt: Materialized view dialog definition tab
:align: center
Use the text editor field in the *Code* tab to provide the query that will
populate the materialized view. Please note that updating the definition of existing
materialized view would result in loss of Parameter(Table, Toast), Security(Privileges & Security labels),
Indexes and other dependent objects.
Click the *Parameter* tab to continue.
.. image:: images/materialized_view_parameter.png
+10 -1
View File
@@ -12,6 +12,10 @@ installed in Server mode. You can copy these settings from *config.py* file
and modify the values for the following parameters:
.. _AzureAD: https://learn.microsoft.com/en-us/security/zero-trust/develop/configure-tokens-group-claims-app-roles
.. _GitLab: https://docs.gitlab.com/ee/integration/openid_connect_provider.html#shared-information
.. csv-table::
:header: "**Parameter**", "**Description**"
:class: longtable
@@ -39,11 +43,16 @@ and modify the values for the following parameters:
"OAUTH2_AUTO_CREATE_USER", "Set the value to *True* if you want to automatically
create a pgAdmin user corresponding to a successfully authenticated Oauth2 user.
Please note that password is not stored in the pgAdmin database."
"OAUTH2_ADDITIONAL_CLAIMS", "If a dictionary is provided, pgAdmin will check for a matching key and value on the user profile.
In case the profile does not have any match with the provided config, the user will receive an authorization error.
Useful for checking AzureAD_ *wids* or *groups*, GitLab_ *owner*, *maintainer* and *reporter* claims."
Redirect URL
============
The redirect url to configure Oauth2 server is *http://<pgAdmin Server URL>/oauth2/authorize*
The redirect url to configure Oauth2 server is *<http/https>://<pgAdmin Server URL>/oauth2/authorize*
After successful application authorization, the authorization server will redirect the user back to the pgAdmin url
specified here. Select https scheme if your pgAdmin server serves over https protocol otherwise select http.
Master Password
===============
+18 -5
View File
@@ -396,16 +396,25 @@ Use the fields on the *Editor* panel to change settings of the query editor.
Use the fields on the *Explain* panel to specify the level of detail included in
a graphical EXPLAIN.
* When the *Show Buffers?* switch is set to *True*, graphical explain details
* When the *Show buffers?* switch is set to *True*, graphical explain details
will include information about buffer usage.
* When the *Show Costs?* switch is set to *True*, graphical explain details will
* When the *Show costs?* switch is set to *True*, graphical explain details will
include information about the estimated startup and total cost of each plan,
as well as the estimated number of rows and the estimated width of each row.
* When the *Show Timing?* switch is set to *True*, graphical explain details
* When the *Show settings?* switch is set to *True*, graphical explain details
will include the information on the configuration parameters.
* When the *Show summary?* switch is set to *True*, graphical explain details
will include the summary information about the query plan.
* When the *Show timing?* switch is set to *True*, graphical explain details
will include the startup time and time spent in each node in the output.
* When the *Show wal?* switch is set to *True*, graphical explain details
will include the information on WAL record generation.
* When the *Verbose output?* switch is set to *True*, graphical explain details
will include extended information about the query execution plan.
@@ -520,9 +529,13 @@ Expand the *Schema Diff* node to specify your display preferences.
:alt: Preferences schema diff
:align: center
Use the *Ignore owner* switch to ignores the owner while comparing the objects.
Use the *Ignore Grant/Revoke* switch to ignores the grant and revoke command while comparing the objects.
Use the *Ignore whitespace* switch to ignores the whitespace while comparing
Use the *Ignore Owner* switch to ignores the owner while comparing the objects.
Use the *Ignore Tablespace* switch to ignores the tablespace while comparing the objects.
Use the *Ignore Whitespace* switch to ignores the whitespace while comparing
the string objects. Whitespace includes space, tabs, and CRLF.
+4
View File
@@ -146,6 +146,10 @@ Query Execution
| | spent in each node of the query. | |
| | | |
| | * Select *Summary* to include the summary information about the query plan. | |
| | | |
| | * Select *Settings* to include the information on the configuration parameters. | |
| | | |
| | * Select *Wal* to include the information on WAL record generation. | |
+----------------------+---------------------------------------------------------------------------------------------------+----------------+
| *Commit* | Click the *Commit* icon to commit the transaction. | Shift+CTRL+M |
+----------------------+---------------------------------------------------------------------------------------------------+----------------+
+3
View File
@@ -11,6 +11,9 @@ notes for it.
.. toctree::
:maxdepth: 1
release_notes_7_8
release_notes_7_7
release_notes_7_6
release_notes_7_5
release_notes_7_4
release_notes_7_3
+56
View File
@@ -0,0 +1,56 @@
***********
Version 7.6
***********
Release date: 2023-08-24
This release contains a number of bug fixes and new features since the release of pgAdmin 4 v7.5.
Supported Database Servers
**************************
**PostgreSQL**: 11, 12, 13, 14 and 15
**EDB Advanced Server**: 11, 12, 13, 14 and 15
Bundled PostgreSQL Utilities
****************************
**psql**, **pg_dump**, **pg_dumpall**, **pg_restore**: 15.3
New features
************
| `Issue #2595 <https://github.com/pgadmin-org/pgadmin4/issues/2595>`_ - Added Expression to CREATE INDEX.
| `Issue #3942 <https://github.com/pgadmin-org/pgadmin4/issues/3942>`_ - Added cascade option while creating an extension.
| `Issue #5759 <https://github.com/pgadmin-org/pgadmin4/issues/5759>`_ - Added 'Ignore Grants' option in the schema diff tool.
| `Issue #6004 <https://github.com/pgadmin-org/pgadmin4/issues/6004>`_ - Added 'Ignore Tablespace' option in the schema diff tool.
| `Issue #6375 <https://github.com/pgadmin-org/pgadmin4/issues/6375>`_ - Added support for ALTER INDEX column statistics.
| `Issue #6376 <https://github.com/pgadmin-org/pgadmin4/issues/6376>`_ - Added unlogged option while creating a sequence.
| `Issue #6377 <https://github.com/pgadmin-org/pgadmin4/issues/6377>`_ - Added all like options while creating a table.
| `Issue #6381 <https://github.com/pgadmin-org/pgadmin4/issues/6381>`_ - Added support for SYSTEM, CONCURRENTLY and TABLESPACE options in REINDEX.
| `Issue #6382 <https://github.com/pgadmin-org/pgadmin4/issues/6382>`_ - Added WAL option to EXPLAIN ANALYZE command.
| `Issue #6397 <https://github.com/pgadmin-org/pgadmin4/issues/6397>`_ - Added new/missing options to the VACUUM command.
| `Issue #6415 <https://github.com/pgadmin-org/pgadmin4/issues/6415>`_ - Added SKIP_LOCKED and BUFFER_USAGE_LIMIT option to Analyze command.
| `Issue #6448 <https://github.com/pgadmin-org/pgadmin4/issues/6448>`_ - Add support for TRUNCATE trigger in foreign table.
| `Issue #6595 <https://github.com/pgadmin-org/pgadmin4/issues/6595>`_ - Ensure that Schema Diff comparison results should be displayed in the sorted order.
Housekeeping
************
| `Issue #3702 <https://github.com/pgadmin-org/pgadmin4/issues/3702>`_ - Generate software bill of materials as part of the package builds.
| `Issue #6588 <https://github.com/pgadmin-org/pgadmin4/issues/6588>`_ - Added support for PostgreSQL and EPAS 16 to ensure it works without any errors.
Bug fixes
*********
| `Issue #5454 <https://github.com/pgadmin-org/pgadmin4/issues/5454>`_ - Fix incorrect redirection URL after authentication by removing fixed value set to SCRIPT_NAME environment variable in pgAdmin4.wsgi file.
| `Issue #6208 <https://github.com/pgadmin-org/pgadmin4/issues/6208>`_ - Allow changing the POOL_SIZE and MAX_OVERFLOW config values of the pgAdmin config DB connection pool.
| `Issue #6252 <https://github.com/pgadmin-org/pgadmin4/issues/6252>`_ - Fix an issue where query tool on shared server is throwing error if the pgAdmin config DB is external.
| `Issue #6420 <https://github.com/pgadmin-org/pgadmin4/issues/6420>`_ - Fix the query tool issue where raise Notice from func/proc or code blocks are no longer displayed live.
| `Issue #6500 <https://github.com/pgadmin-org/pgadmin4/issues/6500>`_ - Fix the issue where query tool window turns blank if the user tries to generate a graph on the result.
| `Issue #6624 <https://github.com/pgadmin-org/pgadmin4/issues/6624>`_ - Fix an issue where changing MFA_SUPPORTED_METHODS breaks the MFA validation.
| `Issue #6630 <https://github.com/pgadmin-org/pgadmin4/issues/6630>`_ - Fix an issue where pgAdmin 7.5 fails to render table SQL with extension loaded index method.
| `Issue #6639 <https://github.com/pgadmin-org/pgadmin4/issues/6639>`_ - Fix an issue where cycle syntax was not added in SQL when creating new sequence from UI.
| `Issue #6651 <https://github.com/pgadmin-org/pgadmin4/issues/6651>`_ - Fix an issue where the SET directive is excluded from the function header in the schema diff tool.
| `Issue #6660 <https://github.com/pgadmin-org/pgadmin4/issues/6660>`_ - Fix a query tool error 'pgAdminThread' object has no attribute 'native_id'.
| `Issue #6664 <https://github.com/pgadmin-org/pgadmin4/issues/6664>`_ - Ensure keyboard shortcut for query execution is disabled when query execution is in progress.
+44
View File
@@ -0,0 +1,44 @@
***********
Version 7.7
***********
Release date: 2023-09-21
This release contains a number of bug fixes and new features since the release of pgAdmin 4 v7.6.
Supported Database Servers
**************************
**PostgreSQL**: 11, 12, 13, 14 and 15
**EDB Advanced Server**: 11, 12, 13, 14 and 15
Bundled PostgreSQL Utilities
****************************
**psql**, **pg_dump**, **pg_dumpall**, **pg_restore**: 15.4
New features
************
| `Issue #642 <https://github.com/pgadmin-org/pgadmin4/issues/642>`_ - Added support to select/deselect objects in the Backup dialog.
| `Issue #4805 <https://github.com/pgadmin-org/pgadmin4/issues/4805>`_ - Added all the new options of the 'WITH' clause in the subscription dialog.
| `Issue #6378 <https://github.com/pgadmin-org/pgadmin4/issues/6378>`_ - Added USING method while creating the table.
| `Issue #6379 <https://github.com/pgadmin-org/pgadmin4/issues/6379>`_ - Added compression method option while creating a column.
| `Issue #6383 <https://github.com/pgadmin-org/pgadmin4/issues/6383>`_ - Added Strategy, Locale Provider, ICU Locale, ICU Rules, and OID options while creating a database.
| `Issue #6400 <https://github.com/pgadmin-org/pgadmin4/issues/6400>`_ - Added USING method while creating the materialized view.
| `Issue #6736 <https://github.com/pgadmin-org/pgadmin4/issues/6736>`_ - Add support for additional ID token claim checks for OAuth 2 authentication.
Housekeeping
************
| `Issue #2411 <https://github.com/pgadmin-org/pgadmin4/issues/2411>`_ - Added the 'data type' column in the properties tab of the Columns collection node.
Bug fixes
*********
| `Issue #6274 <https://github.com/pgadmin-org/pgadmin4/issues/6274>`_ - Fix an issue where user is not able to change the password when SMTP is not configured.
| `Issue #6704 <https://github.com/pgadmin-org/pgadmin4/issues/6704>`_ - Ensure user is redirected to login page after failed login.
| `Issue #6712 <https://github.com/pgadmin-org/pgadmin4/issues/6712>`_ - Ensure that Materialized view size fields in "Statistics" should be human-readable.
| `Issue #6730 <https://github.com/pgadmin-org/pgadmin4/issues/6730>`_ - Fix an issue where changing the password shows success but the new password is not working.
| `Issue #6738 <https://github.com/pgadmin-org/pgadmin4/issues/6738>`_ - Fix an issue where login form doesn't appear if internal auth source is removed.
| `Issue #6764 <https://github.com/pgadmin-org/pgadmin4/issues/6764>`_ - Fix a security related issue where an authenticated user can run remote command using validate binary path API (CVE-2023-5002).
+51
View File
@@ -0,0 +1,51 @@
***********
Version 7.8
***********
Release date: 2023-10-19
This release contains a number of bug fixes and new features since the release of pgAdmin 4 v7.7.
Supported Database Servers
**************************
**PostgreSQL**: 12, 13, 14, 15, and 16
**EDB Advanced Server**: 12, 13, 14 and 15
Bundled PostgreSQL Utilities
****************************
**psql**, **pg_dump**, **pg_dumpall**, **pg_restore**: 16.0
New features
************
| `Issue #640 <https://github.com/pgadmin-org/pgadmin4/issues/640>`_ - Add support for foreign table's new functionality for PG 11 and above.
| `Issue #6229 <https://github.com/pgadmin-org/pgadmin4/issues/6229>`_ - Allow setting custom username for shared servers, with default as username of server being shared.
| `Issue #6373 <https://github.com/pgadmin-org/pgadmin4/issues/6373>`_ - Add 'GENERATED ALWAYS AS..' option while creating column constraints for Foreign Table.
| `Issue #6797 <https://github.com/pgadmin-org/pgadmin4/issues/6797>`_ - GUI representation of the system's activity using the 'system_stats' extension.
| `Issue #6802 <https://github.com/pgadmin-org/pgadmin4/issues/6802>`_ - Added 'load_balance_hosts' connection string parameter for PG 16 and above.
Housekeeping
************
| `Issue #6782 <https://github.com/pgadmin-org/pgadmin4/issues/6782>`_ - Use PG16 as the default PostgreSQL version.
Bug fixes
*********
| `Issue #4995 <https://github.com/pgadmin-org/pgadmin4/issues/4995>`_ - Fixed an issue in ERD tool where the downloaded images have a few links cut.
| `Issue #5749 <https://github.com/pgadmin-org/pgadmin4/issues/5749>`_ - Fixed an issue where user was not able to assign new/old columns as primary key once column with primary key is deleted.
| `Issue #6285 <https://github.com/pgadmin-org/pgadmin4/issues/6285>`_ - Add support for setting prepare threshold in server connection.
| `Issue #6482 <https://github.com/pgadmin-org/pgadmin4/issues/6482>`_ - Fixed an issue where the wrong message "Current database has been moved or renamed" is displayed when debugging any function.
| `Issue #6538 <https://github.com/pgadmin-org/pgadmin4/issues/6538>`_ - Fixed an issue where Processes tab displays wrong server name in some scenario.
| `Issue #6579 <https://github.com/pgadmin-org/pgadmin4/issues/6579>`_ - Fix an issue where global/native keyboard shortcuts are not working when any cell of data output grid has focus.
| `Issue #6666 <https://github.com/pgadmin-org/pgadmin4/issues/6666>`_ - Fixed query history slowness issue by storing query only for those having certain threshold max length.
| `Issue #6674 <https://github.com/pgadmin-org/pgadmin4/issues/6674>`_ - Fix an issue where foreign table column name becomes "none" if the user changes any column data type.
| `Issue #6718 <https://github.com/pgadmin-org/pgadmin4/issues/6718>`_ - Pin the cryptography version to fix PyO3 modules initialisation error.
| `Issue #6790 <https://github.com/pgadmin-org/pgadmin4/issues/6790>`_ - Ensure that the backup works properly for PG 16 on the latest docker image.
| `Issue #6799 <https://github.com/pgadmin-org/pgadmin4/issues/6799>`_ - Fixed an issue where the user is unable to select objects on the backup dialog due to tree flickering.
| `Issue #6836 <https://github.com/pgadmin-org/pgadmin4/issues/6836>`_ - Fixed an issue where non-super PostgreSQL users are not able to terminate their own connections from dashboard.
| `Issue #6851 <https://github.com/pgadmin-org/pgadmin4/issues/6851>`_ - Fix an issue where scale in columns is not allowed to have value as 0 or below.
| `Issue #6858 <https://github.com/pgadmin-org/pgadmin4/issues/6858>`_ - Fix an issue in graphical explain plan where query tool crashes when the plan has parallel workers details and sort node is clicked for details.
| `Issue #6865 <https://github.com/pgadmin-org/pgadmin4/issues/6865>`_ - Fix an issue where user login is not working if username/email contains single quote in server mode.
+7 -3
View File
@@ -65,11 +65,15 @@ same or different (and within the same server or from different servers).
:alt: Schema diff compare button
:align: center
Use the drop-down near to *Compare* button to ignore owner and ignore whitespace.
Use the drop-down near to *Compare* button to ignore owner, whitespace, tablespace and grants.
* Ignore owner – Select to ignores the owner while comparing the objects.
* Ignore Owner – Select to ignores the owner while comparing the objects.
* Ignore whitespace – Select to ignores the whitespace while comparing the string objects. Whitespace includes space, tabs, and CRLF.
* Ignore Whitespace – Select to ignores the whitespace while comparing the string objects. Whitespace includes space, tabs, and CRLF.
* Ignore Tablespace – Select to ignores the tablespace while comparing the objects.
* Ignore Grant/Revoke – Select to ignores the grant and revoke command while comparing the objects.
After you select servers, and databases, click on the
*Compare* button to obtain the *Comparison Result*.
+3 -1
View File
@@ -52,10 +52,12 @@ Use the fields in the *Definition* tab to define the sequence:
to be preallocated and stored in memory for faster access. The minimum value
is 1 (only one value can be generated at a time, i.e., no cache), and this is
also the default.
* Move the *Cycled* switch to the *Yes* position to allow the sequence to wrap
* Move the switch next to *Cycled* towards the *right position* to allow the sequence to wrap
around when the MAXVALUE or the MINVALUE has been reached by an ascending or
descending sequence respectively. If the limit is reached, the next number
generated will be the MINVALUE or MAXVALUE, respectively. The default is *No*.
* Move the switch next to *Unlogged?* towards the *right position* to make the sequence Unlogged.
The default is *No*. This option is available only on PostgreSQL 15 and above.
* The *OWNED BY* option causes the sequence to be associated with a specific
table column, such that if that column (or its whole table) is dropped, the
sequence will be automatically dropped as well. The specified table must have
+9
View File
@@ -44,6 +44,9 @@ Use the fields in the *General* tab to identify the server:
Please note that once the server is shared, it's icon is changed in the
object explorer.
* Use the *Shared Username* field to fill the username of the shared server
connection. By default, it will take the username of the server being shared.
* Provide a comment about the server in the *Comments* field.
Click the *Connection* tab to continue.
@@ -203,6 +206,12 @@ Use the fields in the *Advanced* tab to configure a connection:
the password will not expire until your pgAdmin session does.
Zero means the command will be executed for each new connection or reconnection that is made.
If the generated password is not valid indefinitely, set this value to slightly before it will expire.
* Use the *Prepare threshold* field to specify the number of times a query is
executed before it is prepared. If it is set to 0, every query is prepared
the first time it is executed. If it is set to blank, prepared statements are disabled
on the connection. This is particularly useful with external connection poolers,
such as PgBouncer, which is not compatible with prepared statements. Set this to
blank in such cases.
.. note:: The password file option is only supported when pgAdmin is using libpq
v10.0 or later to connect to the server.
+13 -2
View File
@@ -6,7 +6,7 @@
Use the *Subscription* dialog to create a subscription. A subscription defines the connection to another database and set of publications (one or more) to which it wants to subscribe.
The *subscription* dialog organizes the development of a subscription through the following dialog tabs: *General*, *Connection* and *With*. The *SQL* tab displays the SQL code generated by dialog selections.
The *subscription* dialog organizes the development of a subscription through the following dialog tabs: *General*, *Connection*, *SSL* and *With*. The *SQL* tab displays the SQL code generated by dialog selections.
.. image:: images/subscription_general.png
:alt: Subscription dialog general tab
@@ -83,7 +83,11 @@ icon that is located to the right of each of the following fields.
Click the *With* tab to continue.
.. image:: images/subscription_with.png
.. image:: images/subscription_with_1.png
:alt: Subscription dialog with tab
:align: center
.. image:: images/subscription_with_2.png
:alt: Subscription dialog with tab
:align: center
@@ -95,6 +99,13 @@ Use the *With* tab to define some parameters for a subscription:
* The *Connect?* specifies whether the CREATE SUBSCRIPTION should connect to the publisher at all. By default, it is set to *Yes*. Setting this to *No* will change default values of enabled, create_slot and copy_data to *No*.
* Use the *Slot Name* field to specify the name of the replication slot to use. By default, it uses the name of the subscription for the slot name.
* Use the *Synchronous commit* field to override the synchronous_commit setting. By default, it is set to *off*. It is safe to use off for logical replication: If the subscriber loses transactions because of missing synchronization, the data will be sent again from the publisher.
* Use the *Streaming* field to specify whether to enable streaming of in-progress transactions for this subscription. The default value is *off*, meaning all transactions are fully decoded on the publisher and only then sent to the subscriber as a whole. This option is available only on PostgreSQL 14 and above.
* Use the *Binary?* switch to specify whether the subscription will request the publisher to send the data in binary format (as opposed to text). The default is *false*. This option is available only on PostgreSQL 14 and above.
* Use the *Two phase?* switch to specify whether two-phase commit is enabled for this subscription. The default is *false*. This option is available only on PostgreSQL 15 and above.
* Use the *Disable on error?* switch to specify whether the subscription should be automatically disabled if any errors are detected by subscription workers during data replication from the publisher. The default is *false*. This option is available only on PostgreSQL 15 and above.
* Move the *Run as owner?* switch to *true* position to specify all replication actions are performed as the subscription owner. If *false*, replication workers will perform actions on each table as the owner of that table. The default is *false*. This option is available only on PostgreSQL 16 and above.
* Use the *Password required?* to specify whether connections to the publisher made as a result of this subscription must use password authentication. This setting is ignored when the subscription is owned by a superuser. The default is true. Only superusers can set this value to *false*. This option is available only on PostgreSQL 16 and above.
* Use the *Origin* to specify whether the subscription will request the publisher to only send changes that don't have an origin or send changes regardless of origin. The default is *any*. This option is available only on PostgreSQL 16 and above.
Click the *SQL* tab to continue.
+16 -5
View File
@@ -394,6 +394,9 @@ Use the fields in the *Advanced* tab to define advanced features for the table:
* Use the drop-down listbox next to *Of type* to copy the table structure from
the specified composite type. Please note that a typed table will be dropped
if the type is dropped (with DROP TYPE ... CASCADE).
* Use the drop-down list box next to Access Method to specify the table access method to use to store
the contents for the new table; the method needs to be an access method of type TABLE. This field is optional.
This option is available from v12 and above.
* Use the *Fill Factor* field to specify a fill factor for the table. The fill
factor for a table is a percentage between 10 and 100. 100 (complete packing)
is the default.
@@ -418,13 +421,21 @@ not-null constraints; after saving the new or modified table, any changes to
the original table will not be applied to the new table.
* Use the drop-down listbox next to *Relation* to select a reference table.
* Move the *With default values?* switch to the *Yes* position to copy default
* Move the switch next to *With default values?* towards the *right position* to copy default
values.
* Move the *With constraints?* switch to the *Yes* position to copy table and
* Move the switch next to *With constraints?* towards the *right position* to copy table and
column constraints.
* Move the *With indexes?* switch to the *Yes* position to copy indexes.
* Move the *With storage?* switch to the *Yes* position to copy storage settings.
* Move the *With comments?* switch to the *Yes* position to copy comments.
* Move the switch next to *With indexes?* towards the *right position* to copy indexes.
* Move the switch next to *With storage?* towards the *right position* to copy storage settings.
* Move the switch next to *With comments?* towards the *right position* to copy comments.
* Move the switch next to *With compression?* towards the *right position* to copy
compression method. This option is available only on PostgreSQL 14 and above.
* Move the switch next to *With generated?* towards the *right position* to copy
generation expressions of copied column. This option is available only on PostgreSQL 12 and above.
* Move the switch next to *With identity?* towards the *right position* to copy
any identity specifications of copied column.
* Move the switch next to *With statistics?* towards the *right position* to copy
extended statistics.
With PostgreSQL 10 forward, the *Partition* tab will be visible.
+2 -1
View File
@@ -22,6 +22,7 @@ _create_python_virtualenv "debian"
_build_runtime
_build_docs "debian"
_copy_code
_generate_sbom
#
# Server package
@@ -77,7 +78,7 @@ Maintainer: pgAdmin Development Team <pgadmin-hackers@postgresql.org>
Description: The desktop user interface for pgAdmin. pgAdmin is the most popular and feature rich Open Source administration and development platform for PostgreSQL, the most advanced Open Source database in the world.
EOF
# Build the Debian package for the server
# Build the Debian package for the desktop
fakeroot dpkg-deb --build "${DESKTOPROOT}" "${DISTROOT}/${APP_NAME}-desktop_${APP_LONG_VERSION}_${OS_ARCH}.deb"
#
+4 -5
View File
@@ -19,19 +19,18 @@ CA_FILE = '/etc/ssl/certs/ca-certificates.crt'
LOG_FILE = '/dev/null'
HELP_PATH = '../../docs'
DEFAULT_BINARY_PATHS = {
'pg': '/usr/local/pgsql-15',
'pg': '/usr/local/pgsql-16',
'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-11': '/usr/local/pgsql-11',
'pg-10': '/usr/local/pgsql-10'
'pg-12': '/usr/local/pgsql-12'
}
EOF
# This is a bit kludgy, but necessary as the container uses BusyBox/ash as
# it's shell and not bash which would allow a much cleaner implementation
for var in $(env | grep PGADMIN_CONFIG_ | cut -d "=" -f 1); do
for var in $(env | grep "^PGADMIN_CONFIG_" | cut -d "=" -f 1); do
# shellcheck disable=SC2086
# shellcheck disable=SC2046
echo ${var#PGADMIN_CONFIG_} = $(eval "echo \$$var") >> /pgadmin4/config_distro.py
+13 -1
View File
@@ -141,7 +141,11 @@ _build_runtime() {
# YARN END
# WGET:
NW_VERSION=$(yarn info nw | grep latest | awk -F "'" '{ print $2}')
# Comment out the below line as the latest version having some
# problem https://github.com/nwjs/nw.js/issues/7964, so for the time being
# hardcoded the version to 0.77.0
# NW_VERSION=$(yarn info nw | grep latest | awk -F "'" '{ print $2}')
NW_VERSION="0.77.0"
pushd "${BUILDROOT}" > /dev/null || exit
while true;do
@@ -244,3 +248,11 @@ _copy_code() {
rm python3 && ln -s "${PYTHON_INTERPRETER}" python3
}
_generate_sbom() {
echo "Generating SBOMs..."
# Note that we don't generate an SBOM for the Meta package as it doesn't contain any files.
syft "${SERVERROOT}/" -o cyclonedx-json > "${SERVERROOT}/usr/${APP_NAME}/sbom-server.json"
syft "${DESKTOPROOT}/" -o cyclonedx-json > "${DESKTOPROOT}/usr/${APP_NAME}/sbom-desktop.json"
syft "${WEBROOT}/" -o cyclonedx-json > "${WEBROOT}/usr/${APP_NAME}/sbom-web.json"
}
+12 -2
View File
@@ -41,7 +41,11 @@ _build_runtime() {
# YARN END
# WGET:
NW_VERSION=$(yarn info nw | grep latest | awk -F "'" '{ print $2}')
# Comment out the below line as the latest version having some
# problem https://github.com/nwjs/nw.js/issues/7964, so for the time being
# hardcoded the version to 0.77.0
# NW_VERSION=$(yarn info nw | grep latest | awk -F "'" '{ print $2}')
NW_VERSION="0.77.0"
pushd "${BUILD_ROOT}" > /dev/null || exit
while true;do
@@ -294,9 +298,10 @@ _complete_bundle() {
cp -r "${SOURCE_DIR}/web" "${BUNDLE_DIR}/Contents/Resources/"
cd "${BUNDLE_DIR}/Contents/Resources/web" || exit
rm -f pgadmin4.db config_local.*
rm -rf karma.conf.js package.json node_modules/ regression/ tools/ pgadmin/static/js/generated/.cache
rm -rf karma.conf.js package.json .yarn* yarn* .editorconfig .eslint* node_modules/ regression/ tools/ pgadmin/static/js/generated/.cache
find . -name "tests" -type d -print0 | xargs -0 rm -rf
find . -name "feature_tests" -type d -print0 | xargs -0 rm -rf
find . -name "__pycache__" -type d -print0 | xargs -0 rm -rf
find . -name ".DS_Store" -print0 | xargs -0 rm -f
{
@@ -320,6 +325,11 @@ _complete_bundle() {
chmod -R og-w "${BUNDLE_DIR}"
}
_generate_sbom() {
echo "Generating SBOM..."
syft "${BUNDLE_DIR}/Contents/" -o cyclonedx-json > "${BUNDLE_DIR}/Contents/sbom.json"
}
_codesign_binaries() {
if [ "${CODESIGN}" -eq 0 ]; then
return
+1
View File
@@ -66,6 +66,7 @@ _build_runtime
_create_python_env
_build_docs
_complete_bundle
_generate_sbom
_codesign_binaries
_codesign_bundle
_create_dmg
+4 -3
View File
@@ -22,10 +22,11 @@
<string>%TEAMID%.org.pgadmin.pgadmin4</string>
<!--
We have no need for JIT.
We have no need for JIT on x86_64, but NWJS won't start without it
on Apple Silicon.
-->
<key>com.apple.security.cs.allow-jit</key>
<false/>
<true/>
<!--
Explicitly disallow executable code overwriting/patching.
@@ -61,4 +62,4 @@
<key>com.apple.security.cs.debugger</key>
<false/>
</dict>
</plist>
</plist>
+6
View File
@@ -92,6 +92,12 @@ do
tar cf - ${FILE} | (cd pip-build/pgadmin4; tar xf -)
done
# Generating SBOM
echo Generating SBOM...
cp requirements.txt pip-build/pgadmin4
syft pip-build/pgadmin4 -o cyclonedx-json > pip-build/pgadmin4/sbom.json
rm pip-build/pgadmin4/requirements.txt
# Create the distro config
echo Creating distro config...
echo HELP_PATH = \'../../docs/en_US/_build/html/\' > pip-build/pgadmin4/config_distro.py
+6 -1
View File
@@ -48,7 +48,12 @@ for index, req in enumerate(all_requires):
requires.append(req)
# Get the version
config = load_source('APP_VERSION', '../web/config.py')
path = '../web/'
if not os.path.exists(path):
print("ERROR: Could not find %s" % path)
sys.exit(1)
sys.path.append(path)
import config
setup(
name='pgadmin4',
+3
View File
@@ -26,6 +26,7 @@ _create_python_virtualenv "redhat"
_build_runtime
_build_docs "redhat"
_copy_code
_generate_sbom
# Get an RPM-compatible version number
RPM_VERSION=${APP_RELEASE}.${APP_REVISION}
@@ -127,6 +128,7 @@ cp -rfa %{pga_build_root}/desktop/* \${RPM_BUILD_ROOT}
/usr/share/icons/hicolor/32x32/apps/*
/usr/share/icons/hicolor/16x16/apps/*
/usr/share/applications/*
/usr/pgadmin4/sbom-desktop.json
EOF
# Build the Redhat package for the server
@@ -168,6 +170,7 @@ cp -rfa %{pga_build_root}/web/* \${RPM_BUILD_ROOT}
%files
/usr/pgadmin4/bin/*
%config(noreplace) /etc/httpd/conf.d/*
/usr/pgadmin4/sbom-web.json
EOF
mkdir -p "${WEBROOT}/etc/httpd/conf.d"
+4 -4
View File
@@ -27,11 +27,12 @@ pytz==2023.*
speaklater3==1.*
sqlparse==0.*
psutil==5.9.*
psycopg[c]==3.1.9
psycopg[c]==3.1.12
python-dateutil==2.*
SQLAlchemy==2.*
bcrypt==4.0.*
cryptography==41.0.*
# Pinned for #6718
cryptography==40.0.*
sshtunnel==0.*
ldap3==2.*
gssapi==1.8.*
@@ -42,7 +43,6 @@ pywinpty==2.0.*; sys_platform=="win32"
Authlib==1.2.*
pyotp==2.*
qrcode==7.*
Pillow==9.*
boto3==1.28.*
botocore==1.31.*
urllib3==1.26.*
@@ -53,4 +53,4 @@ azure-identity==1.13.0
google-api-python-client==2.*
google-auth-oauthlib==1.0.0
Werkzeug==2.2.3
keyring==23.*
keyring==23.*
+3 -3
View File
@@ -23,12 +23,12 @@
"256": "assets/pgAdmin4.png"
},
"dependencies": {
"axios": "^1.4.0",
"axios": "^1.5.1",
"bootstrap": "^4.5.3"
},
"devDependencies": {
"eslint": "^8.42.0",
"nw": "^0.77.0"
"eslint": "^8.50.0",
"nw": "0.77.0"
},
"scripts": {
"linter": "yarn eslint --no-eslintrc -c .eslintrc.js --ext .js ."
+1907 -1412
View File
File diff suppressed because it is too large. Load diff
+36 -7
View File
@@ -22,6 +22,13 @@ root = os.path.dirname(os.path.realpath(__file__))
if sys.path[0] != root:
sys.path.insert(0, root)
# The config database connection pool size.
# Setting this to 0 will remove any limit.
CONFIG_DATABASE_CONNECTION_POOL_SIZE = 5
# The number of connections allowed to overflow beyond
# the connection pool size.
CONFIG_DATABASE_CONNECTION_MAX_OVERFLOW = 100
from pgadmin.utils import env, IS_WIN, fs_short_path
##########################################################################
@@ -43,7 +50,7 @@ APP_ICON = 'pg-icon'
# Application version number components
APP_RELEASE = 7
APP_REVISION = 5
APP_REVISION = 8
# Application version suffix, e.g. 'beta1', 'dev'. Usually an empty string
# for GA releases.
@@ -52,7 +59,7 @@ APP_SUFFIX = ''
# Numeric application version for upgrade checks. Should be in the format:
# [X]XYYZZ, where X is the release version, Y is the revision, with a leading
# zero if needed, and Z represents the suffix, with a leading zero if needed
APP_VERSION_INT = 70500
APP_VERSION_INT = 70800
# DO NOT CHANGE!
# The application version string, constructed from the components
@@ -470,19 +477,17 @@ STORAGE_DIR = os.path.join(DATA_DIR, 'storage')
##########################################################################
DEFAULT_BINARY_PATHS = {
"pg": "",
"pg-10": "",
"pg-11": "",
"pg-12": "",
"pg-13": "",
"pg-14": "",
"pg-15": "",
"pg-16": "",
"ppas": "",
"ppas-10": "",
"ppas-11": "",
"ppas-12": "",
"ppas-13": "",
"ppas-14": "",
"ppas-15": ""
"ppas-15": "",
"ppas-16": ""
}
##########################################################################
@@ -786,6 +791,30 @@ OAUTH2_CONFIG = [
'OAUTH2_ICON': None,
# UI button colour, ex: #0000ff
'OAUTH2_BUTTON_COLOR': None,
# The additional claims to check on user ID Token. This is useful to
# provide additional authorization checks before allowing access.
# Example for GitLab: allowing all maintainers teams, and a specific
# developers group to access pgadmin:
# 'OAUTH2_ADDITIONAL_CLAIMS': {
# 'https://gitlab.org/claims/groups/maintainer': [
# 'kuberheads/applications',
# 'kuberheads/dba',
# 'kuberheads/support'
# ],
# 'https://gitlab.org/claims/groups/developer': [
# 'kuberheads/applications/team01'
# ],
# }
# Example for AzureAD:
# 'OAUTH2_ADDITIONAL_CLAIMS': {
# 'groups': ["0760b6cf-170e-4a14-91b3-4b78e0739963"],
# 'wids': ["cf1c38e5-3621-4004-a7cb-879624dced7c"],
# }
# Example for any key value string check:
# 'OAUTH2_ADDITIONAL_CLAIMS': {
# 'group': "0760b6cf-170e-4a14-91b3-4b78e0739963",
# }
'OAUTH2_ADDITIONAL_CLAIMS': None,
}
]
+54
View File
@@ -0,0 +1,54 @@
##########################################################################
#
# pgAdmin 4 - PostgreSQL Tools
#
# Copyright (C) 2013 - 2023, The pgAdmin Development Team
# This software is released under the PostgreSQL Licence
#
##########################################################################
"""Add support for prepare_threshold param
https://www.psycopg.org/psycopg3/docs/advanced/prepare.html#prepared-statements
Revision ID: 44b9ce549393
Revises: 9426ad06a63b
Create Date: 2023-10-12 12:15:01.757931
"""
from alembic import op
import sqlalchemy as sa
# revision identifiers, used by Alembic.
revision = '44b9ce549393'
down_revision = '9426ad06a63b'
branch_labels = None
depends_on = None
def upgrade():
with op.batch_alter_table(
"server", table_kwargs={'sqlite_autoincrement': True}) as batch_op:
batch_op.add_column(sa.Column('prepare_threshold', sa.Integer(),
nullable=True))
with op.batch_alter_table("sharedserver") as batch_op:
batch_op.add_column(sa.Column('prepare_threshold', sa.Integer(),
nullable=True))
# get metadata from current connection
meta = sa.MetaData()
# define table representation
meta.reflect(op.get_bind(), only=('server', 'sharedserver'))
table = sa.Table('server', meta)
op.execute(
table.update().values(prepare_threshold=5)
)
table = sa.Table('sharedserver', meta)
op.execute(
table.update().values(prepare_threshold=5)
)
def downgrade():
# pgAdmin only upgrades, downgrade not implemented.
pass
+40
View File
@@ -0,0 +1,40 @@
##########################################################################
#
# pgAdmin 4 - PostgreSQL Tools
#
# Copyright (C) 2013 - 2023, The pgAdmin Development Team
# This software is released under the PostgreSQL Licence
#
##########################################################################
""" Add the new column for shared server username and change
autoincrement in server table
Revision ID: 9426ad06a63b
Revises: f656e56dfdc8
Create Date: 2023-10-09 15:09:50.773035
"""
from alembic import op
import sqlalchemy as sa
# revision identifiers, used by Alembic.
revision = '9426ad06a63b'
down_revision = 'f656e56dfdc8'
branch_labels = None
depends_on = None
def upgrade():
# Added sqlite_autoincrement to force sqlite use auto increment instead of
# last row id for next record. For future server table changes, we need to
# add table_kwargs={'sqlite_autoincrement': True} as a param to
# batch_alter_table
with op.batch_alter_table(
"server", table_kwargs={'sqlite_autoincrement': True}) as batch_op:
batch_op.alter_column('id', autoincrement=True)
batch_op.add_column(sa.Column('shared_username', sa.String(64), nullable=True))
def downgrade():
# pgAdmin only upgrades, downgrade not implemented.
pass
+7 -7
View File
@@ -35,15 +35,14 @@
"css-minimizer-webpack-plugin": "^5.0.0",
"enzyme": "^3.11.0",
"eslint": "^8.37.0",
"eslint-plugin-react": "^7.32.2",
"eslint-plugin-react": "^7.33.2",
"eslint-plugin-react-hooks": "^4.3.0",
"exports-loader": "^4.0.0",
"html-react-parser": "^1.2.7",
"html-react-parser": "^4.2.0",
"image-minimizer-webpack-plugin": "^3.8.2",
"imagemin": "^8.0.1",
"imagemin-mozjpeg": "^10.0.0",
"imagemin-optipng": "^8.0.0",
"imagemin-pngquant": "^9.0.2",
"imports-loader": "^4.0.1",
"is-docker": "^2.1.1",
"istanbul-instrumenter-loader": "^3.0.1",
@@ -77,7 +76,7 @@
"typescript": "^3.2.2",
"url-loader": "^4.1.1",
"webfonts-loader": "^8.0.1",
"webpack": "^5.76.3",
"webpack": "^5.88.2",
"webpack-bundle-analyzer": "^4.8.0",
"webpack-cli": "^4.5.0",
"yarn-audit-html": "4.0.0"
@@ -101,7 +100,7 @@
"ajv": "^8.8.2",
"anti-trojan-source": "^1.4.0",
"aspen-decorations": "^1.0.2",
"axios": "^0.21.1",
"axios": "^1.4.0",
"babelify": "~10.0.0",
"bignumber.js": "^9.0.1",
"bootstrap": "^4.3.1",
@@ -117,7 +116,7 @@
"dagre": "^0.8.4",
"date-fns": "^2.24.0",
"diff-arrays-of-objects": "^1.1.8",
"html2canvas": "^1.0.0-rc.7",
"html-to-image": "^1.11.11",
"immutability-helper": "^3.0.0",
"insert-if": "^1.1.0",
"ip-address": "^7.1.0",
@@ -138,10 +137,11 @@
"pathfinding": "^0.4.18",
"paths-js": "^0.4.9",
"popper.js": "^1.16.1",
"postcss": "^8.2.15",
"postcss": "^8.4.31",
"raf": "^3.4.1",
"rc-dock": "^3.2.9",
"react": "^17.0.1",
"react-arborist": "^3.2.0",
"react-aspen": "^1.1.0",
"react-checkbox-tree": "^1.7.2",
"react-data-grid": "https://github.com/pgadmin-org/react-data-grid.git#200d2f5e02de694e3e9ffbe177c279bc40240fb8",
-2
View File
@@ -13,8 +13,6 @@ import sys
if sys.version_info < (3, 4):
raise Exception('This application must be run under Python 3.4 or later.')
os.environ['SCRIPT_NAME'] = '/pgadmin4'
import builtins
root = os.path.dirname(os.path.realpath(__file__))
+1 -1
View File
@@ -24,7 +24,7 @@ def get_my_ip():
except Exception:
external_ip = '127.0.0.1'
if type(external_ip) == bytes:
if isinstance(external_ip, bytes):
external_ip = external_ip.decode('utf-8')
ip = ipaddress.ip_address(external_ip)
+6 -6
View File
@@ -18,15 +18,15 @@ from flask import current_app, flash, Response, request, url_for, \
session, redirect, render_template
from flask_babel import gettext
from flask_security.views import _security, _ctx
from flask_security.utils import get_post_logout_redirect, logout_user,\
config_value
from flask_security.utils import logout_user, config_value
from flask_login import current_user
from flask_socketio import disconnect, ConnectionRefusedError
from pgadmin.model import db, User
from pgadmin.utils import PgAdminModule, get_safe_post_login_redirect
from pgadmin.utils import PgAdminModule, get_safe_post_login_redirect, \
get_safe_post_logout_redirect
from pgadmin.utils.constants import KERBEROS, INTERNAL, OAUTH2, LDAP,\
MessageType
from pgadmin.authenticate.registry import AuthSourceRegistry
@@ -135,7 +135,7 @@ def _login():
'Administrator.'),
MessageType.WARNING)
logout_user()
return redirect(get_post_logout_redirect())
return redirect(get_safe_post_logout_redirect())
# Validate the user
if not auth_obj.validate():
@@ -161,7 +161,7 @@ def _login():
flash_login_attempt_error = None
flash(error, MessageType.WARNING)
return redirect(get_post_logout_redirect())
return redirect(get_safe_post_logout_redirect())
# Authenticate the user
status, msg = auth_obj.authenticate()
@@ -177,7 +177,7 @@ def _login():
'authenticate.kerberos_login'), url_for('browser.index')))
flash(msg, MessageType.ERROR)
return redirect(get_post_logout_redirect())
return redirect(get_safe_post_logout_redirect())
session['auth_source_manager'] = current_auth_obj
@@ -154,7 +154,7 @@ class TOTPAuthenticator(BaseMFAuth):
img = qrcode.make(uri)
buffered = BytesIO()
img.save(buffered, format="JPEG")
img.save(buffered)
img_base64 = base64.b64encode(buffered.getvalue())
return dict(
@@ -3,7 +3,7 @@
'actionUrl': url_for('mfa.validate'),
'views': views,
'logoutUrl': logout_url,
'sendEmailUrl': url_for("mfa.send_email_code"),
'sendEmailUrl': send_email_url,
'csrfHeader': current_app.config.get("WTF_CSRF_HEADERS")[0],
'csrfToken': csrf_token()
} %}
@@ -24,7 +24,7 @@ def check_validation_view_content(test):
]
def mock_log_exception(ex):
test.assertTrue(type(ex) == ValidationException)
test.assertTrue(isinstance(ex, ValidationException))
with patch(
__MFA_PACKAGE + ".utils.current_user", return_value=MockCurrentUserId()
+1 -1
View File
@@ -160,7 +160,7 @@ def mfa_enabled(execute_if_enabled, execute_if_disabled) -> None:
supported_methods = getattr(config, "MFA_SUPPORTED_METHODS", [])
if is_server_mode is True and enabled is True and \
type(supported_methods) == list:
isinstance(supported_methods, list):
supported_methods, _ = segregate_valid_and_invalid_mfa_methods(
supported_methods
)
+6 -1
View File
@@ -134,9 +134,14 @@ def validate_view() -> Response:
if mfa_method is None and len(mfa_views) > 0:
list(mfa_views.items())[0][1]['selected'] = True
send_email_url = None
if 'email' in mfa_views:
send_email_url = url_for("mfa.send_email_code")
return Response(render_template(
"mfa/validate.html", _=_, views=mfa_views, base64=base64,
logout_url=get_logout_url()
logout_url=get_logout_url(),
send_email_url=send_email_url
), return_code, headers=_NO_CACHE_HEADERS, mimetype="text/html")
Loaded 100 of 641 files, more files were not shown because too many files have changed in this diff. Show more