Compare commits

...
71 Commits
Author SHA1 Message Date
Aditya Toshniwal d50e9f7fc2 Cleanup code left in previous commit. #5065 2022-10-17 15:42:48 +05:30
Akshay Joshi 0a3a90b400 Update version for release. 2022-10-17 15:28:08 +05:30
Aditya Toshniwal 4fc0f288c7 Use SocketIO instead of REST for fetching database tables data in ERD. #5065 2022-10-17 15:24:22 +05:30
Dave Page 8ef3f232ab Support PostgreSQL 15. 2022-10-17 10:02:45 +01:00
Libor M 3d0078c73d Updated Czech translation. 2022-10-17 11:23:05 +05:30
Akshay Joshi 51c7551d3f Update release note. 2022-10-15 14:49:38 +05:30
aelgn a62fc2fbff Added support for IAM token based authentication for AWS RDS or Azure DB. #3491 2022-10-15 14:49:04 +05:30
Akshay Joshi 25be215180 Update Dependencies. 2022-10-13 18:52:48 +05:30
Akshay Joshi 0da2382c7d Update message catalogs. 2022-10-13 18:49:24 +05:30
Akshay Joshi 1d3be06cb5 Update release note. 2022-10-13 18:47:31 +05:30
Aditya Toshniwal ff095fc7c4 More fixes related to ERD color change. #4392 2022-10-13 18:34:34 +05:30
Nikhil Mohite 1904a64e42 Fixed XSS vulnerability issues. #5277 2022-10-13 10:59:05 +05:30
Pravesh Sharma 8a76122949 Fixed an issue where filtered rows was not working. #5427 2022-10-13 10:25:27 +05:30
Aditya Toshniwal ae82a4b279 Fix an issue where clear color is not reflecting in color picker. #4392 (#5425) 2022-10-12 16:34:54 +05:30
Akshay Joshi 3c52139ce5 Update release note. 2022-10-12 10:08:21 +05:30
Aditya Toshniwal 794cbed57c Added support to specify the background fill color to the table nodes in the ERD tool. #4392 2022-10-12 10:07:30 +05:30
Akshay Joshi 5b09122676 Update release notes. 2022-10-11 10:58:04 +05:30
Nikhil Mohite 19f96799df Ensure that the scroll position should be preserved for the result set in the query tool on tab change. #5296 2022-10-11 10:53:46 +05:30
Pravesh Sharma b100df3160 Fixed an issue where the password recovery link was not working. #5397 2022-10-11 10:52:57 +05:30
Pravesh Sharma 176ea5949b Fixed copy sql to query tool feature test 2022-10-10 12:06:47 +05:30
Pravesh Sharma f79844e926 Fixed an issue where notifications disappeared quickly. #5364 2022-10-07 09:13:25 +05:30
Yogesh Mahajan 2d0f09144d Ensure that the login form is hidden if the authentication source is OAuth2 or Kerberos. #5386 2022-10-06 17:31:15 +05:30
Khushboo Vashi e3a172e0e8 Fixed the cross-site scripting vulnerability. #5405 2022-10-06 17:30:41 +05:30
Dave Page b519af280b Don't assume the system python executable is "python". Favour "python3" and fall back. 2022-10-06 12:43:03 +01:00
Dave Page 64d9fd0a0b Disable executable page protection, otherwise NWjs may crash. 2022-10-06 12:42:17 +01:00
Nikhil Mohite 9002961e5d Fixed console warning shown while updating database node from browser tree. #5332 2022-10-06 16:15:38 +05:30
Nikhil Mohite 7e51a2f517 Ensure that the result grid column should take width as pre preferences setting on first execution. #5132 2022-10-06 15:59:27 +05:30
Nikhil Mohite bb78d91d1b Ensure that scroll bar on browser tree should be visible on windows resize #5402 2022-10-06 15:58:05 +05:30
Aditya Toshniwal b086e1fd83 Add option to generate SQL with DROP table DDL in ERD Tool. #4997 2022-10-06 09:30:45 +05:30
Dave Page cc55c8db89 Tighten up macOS entitlements, and add comments explaining.
Note that this re-enables executable page protection, which was disabled for unknown reasons.
2022-10-05 12:36:53 +01:00
Dave Page 8875d8b741 Add a description of the available container tags we publish to the docs. 2022-10-05 12:05:26 +01:00
Yogesh Mahajan af97ed78ef Fixed an exception occur while taking backup and SSL certificates/keys are not found in the specified path. #5133 2022-10-04 11:01:27 +05:30
Dave Page 992dff64af Expose the Gunicorn limit_request_line parameter in the container, with the default set to the maximum 8190.
See #5390.
2022-10-03 14:09:25 +01:00
Dave Page b8ec021a07 Add a note about sys.executable potentially needing "help" under WSGI runners.
See #5340.
2022-10-03 13:35:31 +01:00
Aditya Toshniwal 406119d96c Allow reordering table columns using drag and drop in ERD Tool and create table. #4994 2022-10-03 11:18:22 +05:30
Yogesh Mahajan 869b90121c Ensure that the correct value should be returned if an exception occurs while decoding the password. #5367 2022-09-30 15:08:03 +05:30
Akshay Joshi bedfad002d Fixed RESQL test cases. 2022-09-30 10:42:11 +05:30
Nikhil Mohite 9acc59d099 Fixed an issue where pgAdmin is crashing if the user find/replace in the query tool multiple time. #5249 2022-09-30 10:42:00 +05:30
Akshay Joshi d13ee8db29 1) Remove folders that are no longer used for older database versions.
2) Fixed RESQL tests for View/MView.
2022-09-29 16:45:51 +05:30
Pravesh Sharma 9817a9b20f Fixed an issue where user was unable to select privileges in Safari #5327 2022-09-29 16:41:11 +05:30
Nikhil Mohite 56fb24c24a Fixed the .psqlrc issue for PSQL Tool. #5167 2022-09-29 12:29:32 +05:30
Pravesh Sharma 5d4bac85e5 Fixed browser toolbar feature test. #5293 2022-09-28 13:11:20 +05:30
danielkempenich 545c76a411 Ensure consistent orderings for ACLS when comparing schemas in the schema diff. #5101 2022-09-28 12:03:14 +05:30
Bruno Almeida e3e0e3db19 Add support for multiple ways to bind to the LDAP server. #3541 2022-09-28 10:47:56 +05:30
Yogesh Mahajan 5fbb8b6204 Fixed error occurring while LDAP authentication for a user with multiple email attributes. #5352 2022-09-27 15:38:48 +05:30
Nikhil Mohite 1b11a6cd4b Fixed a couple of SonarQube issues. 2022-09-27 14:28:31 +05:30
Pravesh Sharma add5404f5e Fixed an issue where the prompt is not visible when clicking on the 'save results to file' button on the large data. #5338
corrected issue id

corrected order of release notes
2022-09-27 14:27:22 +05:30
Akshay Joshi 0b6b2e733a 1) Remove Python's 'Six' package completely. #5357
2) Replace deprecated @abstractproperty with @property, @abstractmethod.
2022-09-26 12:47:31 +05:30
Nikhil Mohite fc8d6d6e90 Fixed the issue while downloading the file from file manager. #5368 2022-09-26 12:10:56 +05:30
dependabot[bot] ffe2fea81c Bump minimist from 1.2.5 to 1.2.6 in /runtime (#5355)
Bumps [minimist](https://github.com/substack/minimist) from 1.2.5 to 1.2.6.
- [Release notes](https://github.com/substack/minimist/releases)
- [Commits](https://github.com/substack/minimist/commits)

---
updated-dependencies:
- dependency-name: minimist
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-09-23 15:08:50 +01:00
dependabot[bot] c80db7933c Bump axios from 0.21.0 to 0.21.2 in /runtime (#5354)
Bumps [axios](https://github.com/axios/axios) from 0.21.0 to 0.21.2.
- [Release notes](https://github.com/axios/axios/releases)
- [Changelog](https://github.com/axios/axios/blob/v0.21.2/CHANGELOG.md)
- [Commits](https://github.com/axios/axios/compare/v0.21.0...v0.21.2)

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

Signed-off-by: dependabot[bot] <support@github.com>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-09-23 15:08:39 +01:00
Dave Page 2b5514a944 Add an action to check the doc build (#5363) 2022-09-23 12:44:02 +01:00
Dave Page 61361dd2b8 Naming consistency (#5362) 2022-09-23 12:00:18 +01:00
Dave Page 01848e7d5b Add an action for checking Javascript style. (#5361) 2022-09-23 11:55:05 +01:00
Akshay Joshi bc08512327 Ensure that the search filter should be cleared when a new row is added to the user management. #5261 2022-09-23 16:22:31 +05:30
Aditya Toshniwal f64b572150 Fix failing API test cases. #5210 2022-09-23 16:22:16 +05:30
Dave Page 04d779c741 Add a GitHub action to check Python code conforms to PEP-8 (#5360) 2022-09-23 11:23:13 +01:00
Nikhil Mohite 45a1dee9f1 Added the close button for all the notifications of the notistack. #5212 2022-09-23 14:01:18 +05:30
Yogesh Mahajan f052ecffc0 Fixed intermittent error shown while OAuth2 login 2022-09-23 13:58:02 +05:30
Aditya Toshniwal 9a6516a8b3 Ensure that the query tool creates a new tab with the appropriate user when pressing Alt+Shift+Q. #5210 (#5350) 2022-09-23 11:19:48 +05:30
Nikhil Mohite 98c50afe8e Ensure that the continue/start button should be disabled if the user stops the Debugger for the procedures. #5188 (#5353) 2022-09-23 11:11:23 +05:30
Pravesh Sharma 94ca48674a made tooltip consistent across the application (#5351)
Ensure that the tooltips are consistent throughout the entire application. #5293
2022-09-23 11:11:02 +05:30
Nikhil Mohite d147b41d19 Fixed Jasmine test cases. 2022-09-22 18:26:29 +05:30
Dave Page 9ed3be335e Update docs to replace use of patches with Pull Requests. (#5349) 2022-09-22 18:24:14 +05:30
Akshay Joshi ed1184fcf8 Ensure that the user management dialog should not allow the same email addresses
with different letter casings when creating users. #5262
2022-09-22 14:59:42 +05:30
Nikhil Mohite 0203bbc7ef Added the ability to display the selected text from the query tool in the find/replace box. #5249 2022-09-22 14:59:42 +05:30
Nikhil Mohite 3765131d21 Ensure that the default value for a column should be used if it is made empty. #5308 2022-09-22 14:59:42 +05:30
Libor M 033ee23eba Updated Czech translation 2022-09-22 14:59:42 +05:30
Yogesh Mahajan 83e2ee04d1 Added high availability options to AWS deployment. #5304 2022-09-22 14:59:42 +05:30
Dave Page 6d1283f92d Update the GitHub org name. 2022-09-22 10:12:08 +01:00
Dave Page 8459a45d72 Update to use GitHub for source repos. 2022-09-21 10:56:03 +01:00
331 changed files with 13315 additions and 19140 deletions

No files matched your search

+36
View File
@@ -0,0 +1,36 @@
name: Check documentation build
on:
# Triggers the workflow on push or pull request events but only for the "master" branch
push:
branches: [ "master" ]
pull_request:
branches: [ "master" ]
# Allows you to run this workflow manually from the Actions tab
workflow_dispatch:
# A workflow run is made up of one or more jobs that can run sequentially or in parallel
jobs:
# This workflow contains a single job called "build"
build:
# The type of runner that the job will run on
runs-on: ubuntu-latest
# Steps represent a sequence of tasks that will be executed as part of the job
steps:
# Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it
- uses: actions/checkout@v3
# Run the tests
- name: Install dependencies
run: sudo apt install build-essential python3-dev libpq-dev libffi-dev libssl-dev libkrb5-dev zlib1g-dev
- name: Install requirements
run: pip install -r requirements.txt
- name: Install sphinx
run: pip install sphinx
- name: Check the documentation
run: make docs
@@ -0,0 +1,36 @@
name: Check Javascript style
on:
# Triggers the workflow on push or pull request events but only for the "master" branch
push:
branches: [ "master" ]
pull_request:
branches: [ "master" ]
# Allows you to run this workflow manually from the Actions tab
workflow_dispatch:
# A workflow run is made up of one or more jobs that can run sequentially or in parallel
jobs:
# This workflow contains a single job called "build"
build:
# The type of runner that the job will run on
runs-on: ubuntu-latest
# Steps represent a sequence of tasks that will be executed as part of the job
steps:
# Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it
- uses: actions/checkout@v3
# Run the tests
- name: Install nodejs
run: sudo apt install nodejs
- name: Install yarn
run: sudo npm install --global yarn
- name: Install Node modules
run: cd web && yarn install
- name: Run the linter
run: cd web && yarn run linter
+39
View File
@@ -0,0 +1,39 @@
name: Check Python style
on:
# Triggers the workflow on push or pull request events but only for the "master" branch
push:
branches: [ "master" ]
pull_request:
branches: [ "master" ]
# Allows you to run this workflow manually from the Actions tab
workflow_dispatch:
# A workflow run is made up of one or more jobs that can run sequentially or in parallel
jobs:
# This workflow contains a single job called "build"
build:
# The type of runner that the job will run on
runs-on: ubuntu-latest
# Steps represent a sequence of tasks that will be executed as part of the job
steps:
# Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it
- uses: actions/checkout@v3
# Run the tests
- name: Install pycodestyle
run: pip install pycodestyle
- name: Check the documentation
run: pycodestyle --config=.pycodestyle docs/
- name: Check the packaging
run: pycodestyle --config=.pycodestyle pkg/
- name: Check the application
run: pycodestyle --config=.pycodestyle web/
- name: Check the tools
run: pycodestyle --config=.pycodestyle tools/
+15 -20
View File
@@ -12,9 +12,9 @@ Name Version
---- ------- ------- ---
Python 3.6+ PSF https://www.python.org/
nw 0.50.2 MIT git://github.com/nwjs/npm-installer.git
axios 0.21.0 MIT https://github.com/axios/axios.git
axios 0.21.2 MIT https://github.com/axios/axios.git
bootstrap 4.5.3 MIT git+https://github.com/twbs/bootstrap.git
follow-redirects 1.13.1 MIT git@github.com:follow-redirects/follow-redirects.git
follow-redirects 1.15.2 MIT git@github.com:follow-redirects/follow-redirects.git
5 dependencies listed.
@@ -39,7 +39,6 @@ WTForms 3.0.1
passlib 1.7.4 BSD https://passlib.readthedocs.io
pytz 2021.3 MIT http://pythonhosted.org/pytz
simplejson 3.17.6 MIT License https://github.com/simplejson/simplejson
six 1.16.0 MIT https://github.com/benjaminp/six
speaklater3 1.4 UNKNOWN https://github.com/ThomasWaldmann/speaklater
sqlparse 0.4.2 BSD-3-Clause https://github.com/andialbrecht/sqlparse
psutil 5.9.1 BSD https://github.com/giampaolo/psutil
@@ -62,7 +61,7 @@ qrcode 7.3.1
Pillow 9.2.0 HPND https://python-pillow.org
boto3 1.20.54 Apache License 2.0 https://github.com/boto/boto3
botocore 1.23.54 Apache License 2.0 https://github.com/boto/botocore
urllib3 1.26.11 MIT https://urllib3.readthedocs.io/
urllib3 1.26.12 MIT https://urllib3.readthedocs.io/
Werkzeug 2.1.2 BSD-3-Clause https://palletsprojects.com/p/werkzeug/
azure-mgmt-rdbms 10.1.0 MIT License https://github.com/Azure/azure-sdk-for-python
azure-mgmt-resource 21.0.0 MIT License https://github.com/Azure/azure-sdk-for-python
@@ -72,7 +71,7 @@ azure-identity 1.9.0
NOTE: This report was generated using Python 3.10. Full information may not be
shown for Python modules that are not required with this version.
45 dependencies listed.
44 dependencies listed.
Javascript Dependencies
=======================
@@ -124,6 +123,7 @@ Name Version
@babel/preset-react 7.13.13 MIT https://github.com/babel/babel.git
@babel/runtime 7.16.0 MIT https://github.com/babel/babel.git
@babel/runtime 7.17.0 MIT https://github.com/babel/babel.git
@babel/runtime 7.19.0 MIT https://github.com/babel/babel.git
@babel/runtime 7.17.8 MIT https://github.com/babel/babel.git
@babel/template 7.16.7 MIT https://github.com/babel/babel.git
@babel/template 7.14.5 MIT https://github.com/babel/babel.git
@@ -157,19 +157,20 @@ Name Version
@nodelib/fs.scandir 2.1.5 MIT https://github.com/nodelib/nodelib/tree/master/packages/fs/fs.scandir
@nodelib/fs.stat 2.0.5 MIT https://github.com/nodelib/nodelib/tree/master/packages/fs/fs.stat
@nodelib/fs.walk 1.2.8 MIT https://github.com/nodelib/nodelib/tree/master/packages/fs/fs.walk
@popperjs/core 2.10.2 MIT https://github.com/popperjs/popper-core.git
@projectstorm/geometry 6.6.1 MIT https://github.com/projectstorm/react-diagrams.git
@projectstorm/react-canvas-core 6.6.1 MIT https://github.com/projectstorm/react-diagrams.git
@projectstorm/react-diagrams 6.6.1 MIT https://github.com/projectstorm/react-diagrams.git
@projectstorm/react-diagrams-core 6.6.1 MIT https://github.com/projectstorm/react-diagrams.git
@projectstorm/react-diagrams-defaults 6.6.1 MIT https://github.com/projectstorm/react-diagrams.git
@projectstorm/react-diagrams-routing 6.6.1 MIT https://github.com/projectstorm/react-diagrams.git
@react-dnd/asap 5.0.2 MIT https://github.com/react-dnd/react-dnd
@react-dnd/invariant 4.0.2 MIT https://github.com/react-dnd/react-dnd
@react-dnd/shallowequal 4.0.2 MIT https://github.com/react-dnd/react-dnd
@simonwep/pickr 1.8.2 MIT https://github.com/Simonwep/pickr.git
@sindresorhus/is 0.7.0 MIT https://github.com/sindresorhus/is.git
@socket.io/base64-arraybuffer 1.0.2 MIT https://github.com/socketio/base64-arraybuffer
@socket.io/component-emitter 3.0.0 MIT https://github.com/socketio/emitter.git
@szhsin/react-menu 2.3.3 MIT https://github.com/szhsin/react-menu.git
@tippyjs/react 4.2.6 MIT git+https://github.com/atomiks/tippyjs-react.git
@types/classnames 2.3.1 MIT Unknown
@types/json-schema 7.0.9 MIT https://github.com/DefinitelyTyped/DefinitelyTyped.git
@types/minimist 1.2.2 MIT https://github.com/DefinitelyTyped/DefinitelyTyped.git
@@ -186,7 +187,6 @@ ajv 8.9.0
ajv 6.12.6 MIT https://github.com/ajv-validator/ajv.git
ajv-errors 1.0.1 MIT git+https://github.com/epoberezkin/ajv-errors.git
ajv-keywords 3.5.2 MIT git+https://github.com/epoberezkin/ajv-keywords.git
alertifyjs 1.7.1 MIT git@github.com:MohammadYounes/AlertifyJS.git
alphanum-sort 1.0.2 MIT https://github.com/TrySound/alphanum-sort.git
ansi-styles 3.2.1 MIT https://github.com/chalk/ansi-styles.git
array-union 3.0.1 MIT https://github.com/sindresorhus/array-union.git
@@ -201,12 +201,6 @@ babel-plugin-styled-components 1.13.3
babel-plugin-syntax-jsx 6.18.0 MIT https://github.com/babel/babel/tree/master/packages/babel-plugin-syntax-jsx
babelify 10.0.0 MIT https://github.com/babel/babelify.git
backbone 1.4.0 MIT https://github.com/jashkenas/backbone.git
backbone 1.2.3 MIT https://github.com/jashkenas/backbone.git
backbone 1.3.3 MIT https://github.com/jashkenas/backbone.git
backform 0.2.0 MIT https://github.com/AmiliaApp/backform
backgrid 0.3.8 MIT http://github.com/cloudflare/backgrid
backgrid-filter 0.3.7 MIT git://github.com/wyuenho/backgrid-text-cell.git
backgrid-select-all 0.3.5 MIT git://github.com/wyuenho/backgrid-select-all.git
backo2 1.0.2 MIT https://github.com/mokesmokes/backo.git
balanced-match 1.0.2 MIT git://github.com/juliangruber/balanced-match.git
base64-arraybuffer 0.2.0 MIT https://github.com/niklasvh/base64-arraybuffer
@@ -264,6 +258,7 @@ decamelize-keys 1.1.0
deep-diff 1.0.2 MIT git://github.com/flitbit/diff.git
diff-arrays-of-objects 1.1.9 MIT git+https://github.com/malcolmvr/diff-arrays-of-objects.git
dir-glob 3.0.1 MIT https://github.com/kevva/dir-glob.git
dnd-core 16.0.1 MIT https://github.com/react-dnd/react-dnd.git
dom-align 1.12.2 MIT git@github.com:yiminghe/dom-align.git
dom-helpers 5.2.1 MIT git+https://github.com/react-bootstrap/dom-helpers.git
dom-serializer 1.3.2 MIT git://github.com/cheeriojs/dom-renderer.git
@@ -366,7 +361,6 @@ lodash.noop 2.3.0
lodash.support 2.3.0 MIT https://github.com/lodash/lodash-cli.git
lodash.uniq 4.5.0 MIT https://github.com/lodash/lodash.git
loose-envify 1.4.0 MIT git://github.com/zertosh/loose-envify.git
lunr 0.7.2 MIT https://github.com/olivernn/lunr.js.git
make-dir 3.1.0 MIT https://github.com/sindresorhus/make-dir.git
map-obj 4.3.0 MIT https://github.com/sindresorhus/map-obj.git
map-obj 1.0.1 MIT https://github.com/sindresorhus/map-obj.git
@@ -385,7 +379,7 @@ ml-array-rescale 1.3.6
ml-matrix 6.8.0 MIT https://github.com/mljs/matrix.git
mobius1-selectr 2.4.13 MIT git+https://github.com/Mobius1/Selectr.git
moment 2.29.4 MIT https://github.com/moment/moment.git
moment-timezone 0.5.34 MIT https://github.com/moment/moment-timezone.git
moment-timezone 0.5.37 MIT https://github.com/moment/moment-timezone.git
ms 2.1.2 MIT https://github.com/zeit/ms.git
nanoid 3.3.2 MIT https://github.com/ai/nanoid.git
nanoid 3.2.0 MIT https://github.com/ai/nanoid.git
@@ -464,7 +458,9 @@ react 17.0.2
react-aspen 1.2.0 MIT https://github.com/neeksandhu/react-aspen.git
react-aspen 1.1.1 MIT https://github.com/neeksandhu/react-aspen.git
react-checkbox-tree 1.7.2 MIT https://github.com/jakezatecky/react-checkbox-tree
react-data-grid 7.0.0-beta.12 MIT https://github.com/adazzle/react-data-grid.git
react-data-grid 7.0.0-beta.14 MIT https://github.com/adazzle/react-data-grid.git
react-dnd 16.0.1 MIT https://github.com/react-dnd/react-dnd.git
react-dnd-html5-backend 16.0.1 MIT https://github.com/react-dnd/react-dnd.git
react-dom 16.14.0 MIT git+https://github.com/facebook/react.git
react-dom 17.0.2 MIT https://github.com/facebook/react.git
react-draggable 4.4.4 MIT https://github.com/react-grid-layout/react-draggable.git
@@ -484,6 +480,7 @@ react-window 1.8.6
read-pkg 6.0.0 MIT https://github.com/sindresorhus/read-pkg.git
read-pkg-up 8.0.0 MIT https://github.com/sindresorhus/read-pkg-up.git
redent 4.0.0 MIT https://github.com/sindresorhus/redent.git
redux 4.2.0 MIT https://github.com/reduxjs/redux.git
regenerator-runtime 0.13.9 MIT https://github.com/facebook/regenerator/tree/master/packages/runtime
require-from-string 2.0.2 MIT https://github.com/floatdrop/require-from-string.git
resize-observer-polyfill 1.5.1 MIT https://github.com/que-etc/resize-observer-polyfill.git
@@ -499,7 +496,6 @@ select2 4.0.13
shallowequal 1.1.0 MIT https://github.com/dashed/shallowequal.git
shim-loader 1.0.1 MIT https://github.com/zinserjan/shim-loader
slash 4.0.0 MIT https://github.com/sindresorhus/slash.git
slickgrid 2.3.16 MIT git+https://github.com/6pac/SlickGrid.git
snapsvg-cjs 0.0.6 MIT git+https://github.com/geelen/Snap.svg-cjs.git
socket.io-client 4.3.2 MIT https://github.com/socketio/socket.io-client.git
socket.io-parser 4.1.1 MIT https://github.com/socketio/socket.io-parser.git
@@ -521,7 +517,6 @@ text-segmentation 1.0.2
timsort 0.3.0 MIT https://github.com/mziccard/node-timsort.git
tiny-emitter 2.1.0 MIT https://github.com/scottcorgan/tiny-emitter.git
tiny-warning 1.0.3 MIT https://github.com/alexreardon/tiny-warning.git
tippy.js 6.3.5 MIT git+https://github.com/atomiks/tippyjs.git
to-fast-properties 2.0.0 MIT https://github.com/sindresorhus/to-fast-properties.git
to-regex-range 5.0.1 MIT https://github.com/micromatch/to-regex-range.git
trim-newlines 4.0.2 MIT https://github.com/sindresorhus/trim-newlines.git
@@ -620,5 +615,5 @@ tslib 2.4.0
tslib 2.3.0 0BSD https://github.com/Microsoft/tslib.git
type-fest 1.4.0 (MIT OR CC0-1.0) https://github.com/sindresorhus/type-fest.git
540 dependencies listed.
536 dependencies listed.
+9 -3
View File
@@ -116,6 +116,7 @@ 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 alpine:3.16 as tool-builder
@@ -145,6 +146,11 @@ COPY --from=pg14-builder /usr/local/bin/pg_dumpall /usr/local/pgsql/pgsql-14/
COPY --from=pg14-builder /usr/local/bin/pg_restore /usr/local/pgsql/pgsql-14/
COPY --from=pg14-builder /usr/local/bin/psql /usr/local/pgsql/pgsql-14/
COPY --from=pg15-builder /usr/local/bin/pg_dump /usr/local/pgsql/pgsql-15/
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/
#########################################################################
# Assemble everything into the final container.
#########################################################################
@@ -156,9 +162,9 @@ COPY --from=env-builder /venv /venv
# Copy in the tools
COPY --from=tool-builder /usr/local/pgsql /usr/local/
COPY --from=pg14-builder /usr/local/lib/libpq.so.5.14 /usr/lib/
RUN ln -s libpq.so.5.14 /usr/lib/libpq.so.5 && \
ln -s libpq.so.5.14 /usr/lib/libpq.so
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
WORKDIR /pgadmin4
ENV PYTHONPATH=/pgadmin4
+2 -2
View File
@@ -267,8 +267,8 @@ A GitHub project for pgAdmin 4 can be found at the address below:
https://github.com/pgadmin-org/pgadmin4
**NOTE:** The repository on GitHub is a clone of the main project repository.
Please do not submit pull requests!
Please submit any changes as Pull Requests against the *master* branch of the
*pgadmin-org/pgadmin4* repository.
If you wish to discuss pgAdmin 4, or contribute to the project, please use the
pgAdmin Hackers mailing list:
+3
View File
@@ -53,6 +53,9 @@ details.
* Use the *Provisioned IOPS* in case of Provisioned IOPS (SSD) storage type.
* Use the *High Availability* option to specify High Availability
option. This option creates a standby in a different Availability Zone(AZ).
.. image:: images/cloud_aws_database.png
:alt: Cloud Deployment Provider
:align: center
+1 -1
View File
@@ -73,7 +73,7 @@ details.
should be accepted. Add multiple IP addresses/ranges separated with commas,
for example: "192.168.0.50, 192.168.0.100 - 192.168.0.200"
* User *Zone redundant high availability* option to specify High Availability
* Use *Zone redundant high availability* option to specify High Availability
option. Zone redundant high availability deploys a standby replica in a
different zone.
The Burstable instance type does not support high availability.
+10 -7
View File
@@ -5,7 +5,7 @@
**************************
This document lists a number of standard items that will be checked during the
review process for any patches submitted for inclusion in pgAdmin.
review process for any changes submitted for inclusion in pgAdmin.
* Ensure all code follows the pgAdmin :doc:`coding_standards`.
@@ -52,10 +52,13 @@ review process for any patches submitted for inclusion in pgAdmin.
current schema/user as appropriate. In general, if there are common or sensible
default values available, put them in the fields for the user.
* 1 patch == 1 feature. If you need to fix/update existing infrastructure in
your patch, it's usually easier if it's in a separate patch. Patches containing
multiple new features or unrelated changes are likely to be rejected.
* 1 Pull Request == 1 feature. If you need to fix/update existing
infrastructure in your change, it's usually easier if it's in a separate
Pull Request. Pull Requests containing multiple new features or unrelated
changes are likely to be rejected.
* Ensure the patch is fully functional, and works! If a patch is being sent as
a work in progress, not intended for commit, clearly state that it's a WIP,
and note what does or does not yet work.
* Ensure the change is fully functional, and works! If you wish to send a
work in progress (WIP) change that is not intended for commit, instead of
submitting a Pull Request, send either as a link to a repository fork or a
patch to the pgadmin-hackers@postgresql.org mailing list, clearly stating
that it's a WIP, and noting what does or does not yet work.
+34
View File
@@ -8,6 +8,31 @@ pgAdmin can be deployed in a container using the image at:
https://hub.docker.com/r/dpage/pgadmin4/
There are various tags that you can select from to get the version of pgAdmin
that you want, using a command such as this if you're using Docker:
.. code-block:: bash
docker pull dpage/pgadmin4:<tag name>
where *<tag name>* is one of the following:
.. table::
:class: longtable
:widths: 1 4
+----------+-------------------------------------------------------------------------------+
| Tag name | Description |
+==========+===============================================================================+
| latest | The most recent release. |
+----------+-------------------------------------------------------------------------------+
| 6.14 | A specific version (6.14 in this case). |
+----------+-------------------------------------------------------------------------------+
| 6 | the latest release of a specific major version (major version 6 in this case).|
+----------+-------------------------------------------------------------------------------+
| snapshot | The latest nightly test build. |
+----------+-------------------------------------------------------------------------------+
PostgreSQL Utilities
********************
@@ -115,6 +140,15 @@ Override the default file path for the server definition list. See the
Specify an output file in which to store the Gunicorn access logs, instead of
sending them to stdout.
**GUNICORN_LIMIT_REQUEST_LINE**
*Default: 8190*
Set the maximum size of HTTP request line in bytes. By default the pgAdmin
container uses the maximum limited size offered by Gunicorn as some requests
can be quite large. In exceptional cases this value can be set to 0 (zero) to
specify "unlimited", however this poses a potential denial of service hazard.
**GUNICORN_THREADS**
*Default: 25*
+1 -1
View File
@@ -15,7 +15,7 @@ development process used to develop, improve, and maintain the pgAdmin client.
.. toctree::
submitting_patches
submitting_pull_requests
code_overview
coding_standards
code_snippets
+1 -1
View File
@@ -19,7 +19,7 @@ pgAdmin server and opens a window to render the user interface.
.. seealso:: For detailed instructions on building and configuring pgAdmin from
scratch, please see the README file in the top level directory of the source code.
For convenience, you can find the latest version of the file
`here <https://git.postgresql.org/gitweb/?p=pgadmin4.git;a=blob;f=README.md>`_,
`here <https://github.com/pgadmin-org/pgadmin4/blob/master/README.md>`_,
but be aware that this may differ from the version included with the source code
for a specific version of pgAdmin.
+20 -1
View File
@@ -47,7 +47,7 @@ File Options
| | diagram to a file. | |
+----------------------+---------------------------------------------------------------------------------------------------+----------------+
| *Save as* | Click the *Save As* to open a new browser dialog and specify a new location to save the diagram. | Ctrl + Shift + |
| | | S |
| | You need to click the down arrow beside the save button to see *Save As*. | S |
+----------------------+---------------------------------------------------------------------------------------------------+----------------+
Export Options
@@ -62,6 +62,8 @@ Export Options
+======================+===================================================================================================+================+
| *Generate SQL* | Click the *Generate SQL* icon to generate the DDL SQL for the diagram and open a query tool | Option + Ctrl +|
| | with the generated SQL ready for execution. | S |
| | You can select the option *With DROP Table* if you wish to have DROP Table DDL statements before | |
| | each CREATE Table DDL. You can see the option by clicking the down arrow beside the SQL button. | |
+----------------------+---------------------------------------------------------------------------------------------------+----------------+
| *Download image* | Click the *Download image* icon to save the ERD diagram in a image formate | Option + Ctrl +|
| | | I |
@@ -109,6 +111,23 @@ Table Relationship Options
| | tables and link them. | |
+----------------------+---------------------------------------------------------------------------------------------------+----------------+
Node Color Options
**************************
.. table::
:class: longtable
:widths: 1 5
+----------------------+----------------------------------------------------------------------------------------------------------+
| Icon | Behavior |
+======================+==========================================================================================================+
| *Fill Color* | Use Fill Color to change the background color of a table node. This is helpful if you want to |
| | identify a of group tables. Once set, all the newly added tables will take the same color. |
+----------------------+----------------------------------------------------------------------------------------------------------+
| *Text Color* | Use Text Color to change the text color of a table node based on the fill color to make text |
| | easily readable. |
+----------------------+----------------------------------------------------------------------------------------------------------+
Utility Options
***************
Binary file not shown.

Before

Width:  |  Height:  |  Size: 152 KiB

After

Width:  |  Height:  |  Size: 153 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 19 KiB

After

Width:  |  Height:  |  Size: 22 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 168 KiB

After

Width:  |  Height:  |  Size: 189 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 98 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 69 KiB

After

Width:  |  Height:  |  Size: 67 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 112 KiB

After

Width:  |  Height:  |  Size: 116 KiB

+12 -1
View File
@@ -185,6 +185,17 @@ ERD Tool window navigation:
:alt: Preferences dialog erd keyboard shortcuts section
:align: center
Use the fields on the *Options* panel to manage ERD preferences.
.. image:: images/preferences_erd_options.png
:alt: Preferences dialog erd options section
:align: center
* When the *SQL With DROP Table* switch is set to *True*, the SQL
generated by the ERD Tool will add DROP table DDL before each CREATE
table DDL.
The Graphs Node
***************
@@ -224,7 +235,7 @@ Expand the *Miscellaneous* node to specify miscellaneous display preferences.
* Use the *Themes* drop-down listbox to select the theme for pgAdmin. You'll also get a preview just below the
drop down. Note that, to apply the theme you need to refresh the pgAdmin page. You can also submit your
own themes, check `here <https://git.postgresql.org/gitweb/?p=pgadmin4.git;a=blob_plain;f=README>`_ how.
own themes, check `here <https://github.com/pgadmin-org/pgadmin4/blob/master/README.md>`_ how.
Currently we support Standard, Dark and High Contrast theme.
The Paths Node
+1
View File
@@ -11,6 +11,7 @@ notes for it.
.. toctree::
:maxdepth: 1
release_notes_6_15
release_notes_6_14
release_notes_6_13
release_notes_6_12
+23 -23
View File
@@ -19,30 +19,30 @@ New features
Housekeeping
************
| `Issue #4059 <https://github.com/postgres/pgadmin4/issues/4059>`_ - Port schema diff to React. (RM #6133)
| `Issue #4060 <https://github.com/postgres/pgadmin4/issues/4060>`_ - Remove Backgrid and Backform. (RM #6134)
| `Issue #5035 <https://github.com/postgres/pgadmin4/issues/5035>`_ - Port the remaining components of the ERD Tool to React. (RM #7343)
| `Issue #5120 <https://github.com/postgres/pgadmin4/issues/5120>`_ - Updated keyboard shortcut documentation. (RM #7446)
| `Issue #5260 <https://github.com/postgres/pgadmin4/issues/5260>`_ - Remove Alertify from pgAdmin completely. (RM #7619)
| `Issue #5263 <https://github.com/postgres/pgadmin4/issues/5263>`_ - Port search object dialog to React. (RM #7622)
| `Issue #4059 <https://github.com/pgadmin-org/pgadmin4/issues/4059>`_ - Port schema diff to React. (RM #6133)
| `Issue #4060 <https://github.com/pgadmin-org/pgadmin4/issues/4060>`_ - Remove Backgrid and Backform. (RM #6134)
| `Issue #5035 <https://github.com/pgadmin-org/pgadmin4/issues/5035>`_ - Port the remaining components of the ERD Tool to React. (RM #7343)
| `Issue #5120 <https://github.com/pgadmin-org/pgadmin4/issues/5120>`_ - Updated keyboard shortcut documentation. (RM #7446)
| `Issue #5260 <https://github.com/pgadmin-org/pgadmin4/issues/5260>`_ - Remove Alertify from pgAdmin completely. (RM #7619)
| `Issue #5263 <https://github.com/pgadmin-org/pgadmin4/issues/5263>`_ - Port search object dialog to React. (RM #7622)
Bug fixes
*********
| `Issue #5144 <https://github.com/postgres/pgadmin4/issues/5144>`_ - Ensure that if big animal authentication is aborted, API calls should be stopped. (RM #7472)
| `Issue #5209 <https://github.com/postgres/pgadmin4/issues/5209>`_ - Fixed an issue where pgAdmin failed to start due to bin path migration. (RM #7557)
| `Issue #5230 <https://github.com/postgres/pgadmin4/issues/5230>`_ - Fixed an issue where backup does not work due to parameter 'preexec_fn' no longer being supported. (RM #7580)
| `Issue #5250 <https://github.com/postgres/pgadmin4/issues/5250>`_ - Ensure that the browser tree should be refreshed after changing the ownership. (RM #7607)
| `Issue #5274 <https://github.com/postgres/pgadmin4/issues/5274>`_ - Fixed the error message displayed when clicking the cloud server for which deployment is in progress. (RM #7636)
| `Issue #5275 <https://github.com/postgres/pgadmin4/issues/5275>`_ - Fixed an issue where the wrong SQL displayed in difference if the user create an RLS policy on the table without a column. (RM #7637)
| `Issue #5282 <https://github.com/postgres/pgadmin4/issues/5282>`_ - Ensure that the dump servers functionality works from setup.py. (RM #7644)
| `Issue #5284 <https://github.com/postgres/pgadmin4/issues/5284>`_ - Ensure that the Import/Export server menu option is visible. (RM #7646)
| `Issue #5286 <https://github.com/postgres/pgadmin4/issues/5286>`_ - Fixed API test case for change password in the server mode. (RM #7648)
| `Issue #5287 <https://github.com/postgres/pgadmin4/issues/5287>`_ - Fixed an issue with the non-visibility of columns added prior to import/export data. (RM #7649)
| `Issue #5292 <https://github.com/postgres/pgadmin4/issues/5292>`_ - Fixed an issue where textarea of the JSON Editor does not resize with dialog. (RM #7656)
| `Issue #5299 <https://github.com/postgres/pgadmin4/issues/5299>`_ - Fixed ModuleNotFoundError when running setup.py to load/dump servers. (RM #7663)
| `Issue #5323 <https://github.com/postgres/pgadmin4/issues/5323>`_ - Replace the language selection 'Brazilian' with 'Portuguese (Brazilian). (RM #7693)
| `Issue #5325 <https://github.com/postgres/pgadmin4/issues/5325>`_ - Fixed an issue where server names with special characters are not displayed correctly in the process tab. (RM #7695)
| `Issue #5333 <https://github.com/postgres/pgadmin4/issues/5333>`_ - Fixed an issue where ERD throws an error if variable is added to the column. (RM #7709)
| `Issue #5342 <https://github.com/postgres/pgadmin4/issues/5342>`_ - Fixed an error while saving changes to the ERD table.
| `Issue #5343 <https://github.com/postgres/pgadmin4/issues/5343>`_ - Fixes a redirect vulnerability when the user opens the pgAdmin URL.
| `Issue #5144 <https://github.com/pgadmin-org/pgadmin4/issues/5144>`_ - Ensure that if BigAnimal authentication is aborted, API calls should be stopped. (RM #7472)
| `Issue #5209 <https://github.com/pgadmin-org/pgadmin4/issues/5209>`_ - Fixed an issue where pgAdmin failed to start due to bin path migration. (RM #7557)
| `Issue #5230 <https://github.com/pgadmin-org/pgadmin4/issues/5230>`_ - Fixed an issue where backup does not work due to parameter 'preexec_fn' no longer being supported. (RM #7580)
| `Issue #5250 <https://github.com/pgadmin-org/pgadmin4/issues/5250>`_ - Ensure that the browser tree should be refreshed after changing the ownership. (RM #7607)
| `Issue #5274 <https://github.com/pgadmin-org/pgadmin4/issues/5274>`_ - Fixed the error message displayed when clicking the cloud server for which deployment is in progress. (RM #7636)
| `Issue #5275 <https://github.com/pgadmin-org/pgadmin4/issues/5275>`_ - Fixed an issue where the wrong SQL displayed in difference if the user create an RLS policy on the table without a column. (RM #7637)
| `Issue #5282 <https://github.com/pgadmin-org/pgadmin4/issues/5282>`_ - Ensure that the dump servers functionality works from setup.py. (RM #7644)
| `Issue #5284 <https://github.com/pgadmin-org/pgadmin4/issues/5284>`_ - Ensure that the Import/Export server menu option is visible. (RM #7646)
| `Issue #5286 <https://github.com/pgadmin-org/pgadmin4/issues/5286>`_ - Fixed API test case for change password in the server mode. (RM #7648)
| `Issue #5287 <https://github.com/pgadmin-org/pgadmin4/issues/5287>`_ - Fixed an issue with the non-visibility of columns added prior to import/export data. (RM #7649)
| `Issue #5292 <https://github.com/pgadmin-org/pgadmin4/issues/5292>`_ - Fixed an issue where textarea of the JSON Editor does not resize with dialog. (RM #7656)
| `Issue #5299 <https://github.com/pgadmin-org/pgadmin4/issues/5299>`_ - Fixed ModuleNotFoundError when running setup.py to load/dump servers. (RM #7663)
| `Issue #5323 <https://github.com/pgadmin-org/pgadmin4/issues/5323>`_ - Replace the language selection 'Brazilian' with 'Portuguese (Brazilian). (RM #7693)
| `Issue #5325 <https://github.com/pgadmin-org/pgadmin4/issues/5325>`_ - Fixed an issue where server names with special characters are not displayed correctly in the process tab. (RM #7695)
| `Issue #5333 <https://github.com/pgadmin-org/pgadmin4/issues/5333>`_ - Fixed an issue where ERD throws an error if variable is added to the column. (RM #7709)
| `Issue #5342 <https://github.com/pgadmin-org/pgadmin4/issues/5342>`_ - Fixed an error while saving changes to the ERD table.
| `Issue #5343 <https://github.com/pgadmin-org/pgadmin4/issues/5343>`_ - Fixes a redirect vulnerability when the user opens the pgAdmin URL.
+60
View File
@@ -0,0 +1,60 @@
************
Version 6.15
************
Release date: 2022-10-20
This release contains a number of bug fixes and new features since the release of pgAdmin 4 v6.14.
Supported Database Servers
**************************
**PostgreSQL**: 10, 11, 12, 13, 14 and 15
**EDB Advanced Server**: 10, 11, 12, 13, 14 and 15
New features
************
| `Issue #3491 <https://github.com/pgadmin-org/pgadmin4/issues/3491>`_ - Added support for IAM token based authentication for AWS RDS or Azure DB.
| `Issue #4392 <https://github.com/pgadmin-org/pgadmin4/issues/4392>`_ - Added support to specify the background fill color to the table nodes in the ERD tool.
| `Issue #4994 <https://github.com/pgadmin-org/pgadmin4/issues/4994>`_ - Allow reordering table columns using drag and drop in ERD Tool.
| `Issue #4997 <https://github.com/pgadmin-org/pgadmin4/issues/4997>`_ - Add option to generate SQL with DROP table DDL in ERD Tool.
| `Issue #5304 <https://github.com/pgadmin-org/pgadmin4/issues/5304>`_ - Added high availability options to AWS deployment.
| `Issue #5390 <https://github.com/pgadmin-org/pgadmin4/issues/5390>`_ - Expose the Gunicorn limit_request_line parameter in the container, with the default set to the maximum 8190.
Housekeeping
************
| `Issue #5065 <https://github.com/pgadmin-org/pgadmin4/issues/5065>`_ - Use SocketIO instead of REST for fetching database tables data in ERD.
| `Issue #5293 <https://github.com/pgadmin-org/pgadmin4/issues/5293>`_ - Ensure that the tooltips are consistent throughout the entire application.
| `Issue #5357 <https://github.com/pgadmin-org/pgadmin4/issues/5357>`_ - Remove Python's 'Six' package completely.
Bug fixes
*********
| `Issue #5101 <https://github.com/pgadmin-org/pgadmin4/issues/5101>`_ - Ensure consistent orderings for ACLS when comparing schemas in the schema diff.
| `Issue #5132 <https://github.com/pgadmin-org/pgadmin4/issues/5132>`_ - Ensure that the result grid column should take width as pre preferences setting on first execution.
| `Issue #5133 <https://github.com/pgadmin-org/pgadmin4/issues/5133>`_ - Fixed an exception occur while taking backup and SSL certificates/keys are not found in the specified path.
| `Issue #5145 <https://github.com/pgadmin-org/pgadmin4/issues/5145>`_ - Fixed intermittent error shown while OAuth2 login.
| `Issue #5167 <https://github.com/pgadmin-org/pgadmin4/issues/5167>`_ - Ensure that the path to the psqlrc file is correct when multiple users open the PSQL tool at the same time.
| `Issue #5188 <https://github.com/pgadmin-org/pgadmin4/issues/5188>`_ - Ensure that the continue/start button should be disabled if the user stops the Debugger for the procedures.
| `Issue #5210 <https://github.com/pgadmin-org/pgadmin4/issues/5210>`_ - Ensure that the query tool creates a new tab with the appropriate user when pressing Alt+Shift+Q.
| `Issue #5212 <https://github.com/pgadmin-org/pgadmin4/issues/5212>`_ - Added the close button for all the notifications of the notistack.
| `Issue #5249 <https://github.com/pgadmin-org/pgadmin4/issues/5249>`_ - Added the ability to display the selected text from the query tool in the find/replace box.
| `Issue #5261 <https://github.com/pgadmin-org/pgadmin4/issues/5261>`_ - Ensure that the search filter should be cleared when a new row is added to the user management.
| `Issue #5262 <https://github.com/pgadmin-org/pgadmin4/issues/5262>`_ - Ensure that the user management dialog should not allow the same email addresses with different letter casings when creating users.
| `Issue #5277 <https://github.com/pgadmin-org/pgadmin4/issues/5277>`_ - Fixed XSS vulnerability issues.
| `Issue #5296 <https://github.com/pgadmin-org/pgadmin4/issues/5296>`_ - Ensure that the scroll position should be preserved for the result set in the query tool on tab change.
| `Issue #5308 <https://github.com/pgadmin-org/pgadmin4/issues/5308>`_ - Ensure that the default value for a column should be used if it is made empty.
| `Issue #5327 <https://github.com/pgadmin-org/pgadmin4/issues/5327>`_ - Fixed an issue where user was unable to select privileges in Safari.
| `Issue #5332 <https://github.com/pgadmin-org/pgadmin4/issues/5332>`_ - Fixed console warning shown while updating database node from browser tree.
| `Issue #5338 <https://github.com/pgadmin-org/pgadmin4/issues/5338>`_ - Fixed an issue where the prompt is not visible when clicking on the 'save results to file' button on the large data.
| `Issue #5352 <https://github.com/pgadmin-org/pgadmin4/issues/5352>`_ - Fixed error occurring while LDAP authentication for a user with multiple email attributes.
| `Issue #5364 <https://github.com/pgadmin-org/pgadmin4/issues/5364>`_ - Fixed an issue where notifications disappeared quickly.
| `Issue #5367 <https://github.com/pgadmin-org/pgadmin4/issues/5367>`_ - Ensure that the correct value should be returned if an exception occurs while decoding the password.
| `Issue #5368 <https://github.com/pgadmin-org/pgadmin4/issues/5368>`_ - Fixed the issue while downloading the file from the file manager.
| `Issue #5386 <https://github.com/pgadmin-org/pgadmin4/issues/5386>`_ - Ensure that the login form is hidden if the authentication source is OAuth2 or Kerberos.
| `Issue #5397 <https://github.com/pgadmin-org/pgadmin4/issues/5397>`_ - Fixed an issue where the password recovery link was not working.
| `Issue #5402 <https://github.com/pgadmin-org/pgadmin4/issues/5402>`_ - Ensure that scroll bar on browser tree should be visible on windows resize.
| `Issue #5405 <https://github.com/pgadmin-org/pgadmin4/issues/5405>`_ - Fixed the cross-site scripting vulnerability.
| `Issue #5427 <https://github.com/pgadmin-org/pgadmin4/issues/5427>`_ - Fixed an issue where filtered rows were not working.
+10 -1
View File
@@ -25,7 +25,7 @@ or ``Gunicorn``, or under ``NGINX`` using using ``uWSGI`` or ``Gunicorn``.
.. seealso:: For detailed instructions on building and configuring pgAdmin from
scratch, please see the README file in the top level directory of the source code.
For convenience, you can find the latest version of the file
`here <https://git.postgresql.org/gitweb/?p=pgadmin4.git;a=blob_plain;f=README>`_,
`here <https://github.com/pgadmin-org/pgadmin4/blob/master/README.md>`_,
but be aware that this may differ from the version included with the source code
for a specific version of pgAdmin.
@@ -300,3 +300,12 @@ Then, configure NGINX:
include uwsgi_params;
uwsgi_pass unix:/tmp/pgadmin4.sock;
}
Additional Information
----------------------
.. note:: pgAdmin will spawn additional Python processes from time to time, and
relies on the *sys.executable* variable in Python to do this. In some cases,
you may need to override that value to ensure the correct interpreter is
used, instead of the WSGI host process. For example, uWSGI offers the
*--py-sys-executable* command line option to achieve this.
+12
View File
@@ -189,6 +189,16 @@ Use the fields in the *Advanced* tab to configure a connection:
(.pgpass). A .pgpass file allows a user to login without providing a password
when they connect. For more information, see
`Section 33.15 of the Postgres documentation <https://www.postgresql.org/docs/current/libpq-pgpass.html>`_.
* Use the *Password exec command* field to specify a shell command to be executed
to retrieve a password to be used for SQL authentication. The ``stdout`` of the
command will be used as the SQL password. This may be useful when the password
should be generated as a transient authorization token instead of providing a
password when connecting in `PAM authentication <https://www.postgresql.org/docs/current/auth-pam.html>`_ scenarios.
* Use the *Password exec expiration* field to specify a maximum age, in seconds,
of the password generated with a *Password exec command*. If not specified,
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 *Connection timeout* field to specify the maximum wait for connection,
in seconds. Zero or not specified means wait indefinitely. It is not
recommended to use a timeout of less than 2 seconds. By default it is set to
@@ -197,6 +207,8 @@ Use the fields in the *Advanced* tab to configure a connection:
.. note:: The password file option is only supported when pgAdmin is using libpq
v10.0 or later to connect to the server.
.. note:: The Password exec option is only supported when pgAdmin is run in desktop mode.
* Click the *Save* button to save your work.
* Click the *Close* button to exit without saving your work.
* Click the *Reset* button to return the values specified on the Server dialog
-55
View File
@@ -1,55 +0,0 @@
.. _submitting_patches:
***************************
`Submitting Patches`:index:
***************************
Before developing a patch for pgAdmin you should always contact the developers
on the mailing list pgadmin-hackers@postgresql.org to discuss your
plans. This ensures that others know if you're fixing a bug and can then avoid
duplicating your work, and in the case of large patches, gives the community
the chance to discuss and refine your ideas before investing too much time
writing code that may later be rejected.
You should always develop patches against a checkout of the source code from the
GIT source code repository, and not a release tarball. This ensures that you're
working with the latest code on the branch and makes it easier to generate
patches correctly. You can checkout the source code with a command like:
.. code-block:: bash
$ git clone git://git.postgresql.org/git/pgadmin4.git
Once you've made the changes you wish to make, commit them to a private
development branch in your local repository. Then create a patch containing the
changes in your development branch against the upstream branch on which your
work is based. For example, if your current branch contains your changes, you
might run:
.. code-block:: bash
$ git diff origin/master > my_cool_feature.diff
to create a patch between your development branch and the public master branch.
You can also create patches directly from the development tree, for example:
.. code-block:: bash
$ git diff > my_cool_feature.diff
If you are adding new files, you may need to stage them for commit, and then
create your patch against the staging area. If any of the files are binary,
for example, images, you will need to use the *--binary* option:
.. code-block:: bash
$ git add file1.py file2.py images/image1.png [...]
$ git diff --cached --binary > my_cool_feature.diff
Once you have your patch, check it thoroughly to ensure it meets the pgAdmin
:doc:`coding_standards`, and review it against the :doc:`code_review` to minimise
the chances of it being rejected. Once you're happy with your work, mail it
as an attachment to the mailing list pgadmin-hackers@postgresql.org.
Please ensure you include a full description of what the patch does,
as well as the rationale for any important design decisions.
+65
View File
@@ -0,0 +1,65 @@
.. _submitting_pull_requests:
*********************************
`Submitting Pull Requests`:index:
*********************************
Before developing a feature or bug fix for pgAdmin you should always contact
the developers on the mailing list pgadmin-hackers@postgresql.org to discuss
your plans. This ensures that others know what you are doing and can then
avoid duplicating your work, and in the case of large changes, gives the
community the chance to discuss and refine your ideas before investing too
much time writing code that may later be rejected.
You should always develop changes against a checkout of the source code from
the GIT source code repository, and not a release tarball. This ensures that
you're working with the latest code on the branch and makes it easier to
generate Pull Requests correctly.
As of September 2022, the pgAdmin source repository can found at
https://github.com/pgadmin-org/pgadmin4. A typical workflow for a relatively
simple change might look as follows:
1. Visit the pgAdmin 4 project on GitHub, and click the *Fork* button to create
your own development repository in your GitHub account.
2. Checkout a local copy of the source code with a command like:
.. code-block:: bash
$ git clone https://github.com/<your GitHub username>/pgadmin4.git
3. Develop and test your change in your local development environment.
4. Review your changes and check them thoroughly to ensure they meet the
pgAdmin :doc:`coding_standards`, and review them against the
:doc:`code_review` to minimise the chances of them being rejected.
5. Once you're happy with your change, commit it with a suitable message.
Include a one-line summary at the top, and if appropriate, further
paragraphs following a blank line after the summary.
6. Push your changes to your fork of the repository.
7. Back in GitHub, create a new Pull Request against the *pgadmin-org/pgadmin4*
*master* branch.
.. note::
Each Pull Request should encompass a single bug fix or feature as a single
commit. If necessary, you should squash multiple commits for larger changes
or features into a single commit before submitting.
8. Your Pull Request will be reviewed by one or more members of the development
team and either accepted or sent back with requested changes. In some cases
it may be rejected if the change is not considered appropriate - this is
why it's important to discuss your work with the team before spending any
significant time on it.
For more complex changes, you may wish to use a *Feature Branch* in your fork
of the pgAdmin repository, and use that to create the Pull Request.
.. note::
This is a simple example of a workflow. You may choose to use other
tools such as the `GitHub CLI <https://cli.github.com>`_ instead; documenting
such tools and workflows is outside the scope of the pgAdmin documentation
however.
+1 -1
View File
@@ -39,7 +39,7 @@ Architecture: ${OS_ARCH}
Section: database
Priority: optional
Depends: python3, libpq5 (>= 11.0), libgssapi-krb5-2
Recommends: postgresql-client | postgresql-client-14 | postgresql-client-13 | postgresql-client-12 | postgresql-client-11 | postgresql-client-10
Recommends: postgresql-client | postgresql-client-15 | postgresql-client-14 | postgresql-client-13 | postgresql-client-12 | postgresql-client-11 | postgresql-client-10
Maintainer: pgAdmin Development Team <pgadmin-hackers@postgresql.org>
Description: The core server package 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
+4 -3
View File
@@ -19,7 +19,8 @@ CA_FILE = '/etc/ssl/certs/ca-certificates.crt'
LOG_FILE = '/dev/null'
HELP_PATH = '../../docs'
DEFAULT_BINARY_PATHS = {
'pg': '/usr/local/pgsql-14',
'pg': '/usr/local/pgsql-15',
'pg-15': '/usr/local/pgsql-15',
'pg-14': '/usr/local/pgsql-14',
'pg-13': '/usr/local/pgsql-13',
'pg-12': '/usr/local/pgsql-12',
@@ -90,7 +91,7 @@ TIMEOUT=$(cd /pgadmin4 && /venv/bin/python3 -c 'import config; print(config.SESS
# Using --threads to have multi-threaded single-process worker
if [ -n "${PGADMIN_ENABLE_TLS}" ]; then
exec /venv/bin/gunicorn --timeout "${TIMEOUT}" --bind "${PGADMIN_LISTEN_ADDRESS:-[::]}:${PGADMIN_LISTEN_PORT:-443}" -w 1 --threads "${GUNICORN_THREADS:-25}" --access-logfile "${GUNICORN_ACCESS_LOGFILE:--}" --keyfile /certs/server.key --certfile /certs/server.cert -c gunicorn_config.py run_pgadmin:app
exec /venv/bin/gunicorn --limit-request-line "${GUNICORN_LIMIT_REQUEST_LINE:-8190}" --timeout "${TIMEOUT}" --bind "${PGADMIN_LISTEN_ADDRESS:-[::]}:${PGADMIN_LISTEN_PORT:-443}" -w 1 --threads "${GUNICORN_THREADS:-25}" --access-logfile "${GUNICORN_ACCESS_LOGFILE:--}" --keyfile /certs/server.key --certfile /certs/server.cert -c gunicorn_config.py run_pgadmin:app
else
exec /venv/bin/gunicorn --timeout "${TIMEOUT}" --bind "${PGADMIN_LISTEN_ADDRESS:-[::]}:${PGADMIN_LISTEN_PORT:-80}" -w 1 --threads "${GUNICORN_THREADS:-25}" --access-logfile "${GUNICORN_ACCESS_LOGFILE:--}" -c gunicorn_config.py run_pgadmin:app
exec /venv/bin/gunicorn --limit-request-line "${GUNICORN_LIMIT_REQUEST_LINE:-8190}" --timeout "${TIMEOUT}" --bind "${PGADMIN_LISTEN_ADDRESS:-[::]}:${PGADMIN_LISTEN_PORT:-80}" -w 1 --threads "${GUNICORN_THREADS:-25}" --access-logfile "${GUNICORN_ACCESS_LOGFILE:--}" -c gunicorn_config.py run_pgadmin:app
fi
+9 -1
View File
@@ -74,8 +74,16 @@ _create_python_env() {
PATH=${PGADMIN_POSTGRES_DIR}/bin:${PATH}
LD_LIBRARY_PATH=${PGADMIN_POSTGRES_DIR}/lib:${LD_LIBRARY_PATH}
# Figure out what python to use
if which python3 > /dev/null 2>&1
then
SYSTEM_PYTHON_EXE="python3"
else
SYSTEM_PYTHON_EXE="python"
fi
git clone https://github.com/gregneagle/relocatable-python.git "${BUILD_ROOT}/relocatable_python"
PATH=$PATH:/usr/local/pgsql/bin python \
PATH=$PATH:/usr/local/pgsql/bin "${SYSTEM_PYTHON_EXE}" \
"${BUILD_ROOT}/relocatable_python/make_relocatable_python_framework.py" \
--upgrade-pip \
--python-version "${PGADMIN_PYTHON_VERSION}" \
+52
View File
@@ -2,11 +2,63 @@
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<!--
Disable Sandboxing. This must be enabled for the app store, but it will
cause NWjs to fail to start with an error like:
[1004/170922.238911:ERROR:directory_reader_posix.cc(42)] opendir /dev/fd: Operation not permitted (1)
We should figure out why that happens and fix it one day, but for now
we just don't support the app store.
-->
<key>com.apple.security.app-sandbox</key>
<false/>
<!--
Set the app group name for IPC and access to shared containers between
our processes.
-->
<key>com.apple.security.application-groups</key>
<string>%TEAMID%.org.pgadmin.pgadmin4</string>
<!--
We have no need for JIT.
-->
<key>com.apple.security.cs.allow-jit</key>
<false/>
<!--
Explicitly disallow executable code overwriting/patching.
-->
<key>com.apple.security.cs.allow-unsigned-executable-memory</key>
<false/>
<!--
Explicitly disallow use of dynamic loader environment variables that
could be used for code injection.
-->
<key>com.apple.security.cs.allow-dyld-environment-variables</key>
<false/>
<!--
Explicitly ensure that library validation is enabled so we only load
libraries and frameworks signed by us or Apple.
-->
<key>com.apple.security.cs.disable-library-validation</key>
<false/>
<!--
We need to enable this, even though we don't modify our own executables.
Otherwise, NWjs just bombs out.
-->
<key>com.apple.security.cs.disable-executable-page-protection</key>
<true/>
<!--
We're not a debugger (well, except for procedural languages in Postgres,
but that doesn't count).
-->
<key>com.apple.security.cs.debugger</key>
<false/>
</dict>
</plist>
+1 -1
View File
@@ -141,7 +141,7 @@ want to build an installer.
1. Check out the source code:
git clone https://git.postgresql.org/git/pgadmin4.git
git clone https://github.com/pgadmin-org/pgadmin4.git
2. Install and build the JS dependencies:
-1
View File
@@ -25,7 +25,6 @@ WTForms==3.*
passlib==1.*
pytz==2021.*
simplejson==3.*
six==1.*
speaklater3==1.*
sqlparse==0.*
psutil==5.*
+1 -1
View File
@@ -20,7 +20,7 @@
"icon": "assets/pgAdmin4.png"
},
"dependencies": {
"axios": "^0.21.0",
"axios": "^0.21.2",
"bootstrap": "^4.5.3"
},
"devDependencies": {
+12 -12
View File
@@ -96,12 +96,12 @@ astral-regex@^1.0.0:
resolved "https://registry.yarnpkg.com/astral-regex/-/astral-regex-1.0.0.tgz#6c8c3fb827dd43ee3918f27b82782ab7658a6fd9"
integrity sha512-+Ryf6g3BKoRc7jfp7ad8tM4TtMiaWvbF/1/sQcZPkkS7ag3D5nMBCe2UfOTONtAkaG0tO0ij3C5Lwmf1EiyjHg==
axios@^0.21.0:
version "0.21.0"
resolved "https://registry.yarnpkg.com/axios/-/axios-0.21.0.tgz#26df088803a2350dff2c27f96fef99fe49442aca"
integrity sha512-fmkJBknJKoZwem3/IKSSLpkdNXZeBu5Q7GA/aRsr2btgrptmSCxi2oFjZHqGdK9DoTil9PIHlPIZw2EcRJXRvw==
axios@^0.21.2:
version "0.21.2"
resolved "https://registry.yarnpkg.com/axios/-/axios-0.21.2.tgz#21297d5084b2aeeb422f5d38e7be4fbb82239017"
integrity sha512-87otirqUw3e8CzHTMO+/9kh/FSgXt/eVDvipijwDtEuwbkySWZ9SBm6VEubmJ/kLKEoLQV/POhxXFb66bfekfg==
dependencies:
follow-redirects "^1.10.0"
follow-redirects "^1.14.0"
balanced-match@^1.0.0:
version "1.0.0"
@@ -630,10 +630,10 @@ flatted@^2.0.0:
resolved "https://registry.yarnpkg.com/flatted/-/flatted-2.0.2.tgz#4575b21e2bcee7434aa9be662f4b7b5f9c2b5138"
integrity sha512-r5wGx7YeOwNWNlCA0wQ86zKyDLMQr+/RB8xy74M4hTphfmjlijTSSXGuH8rnvKZnfT9i+75zmd8jcKdMR4O6jA==
follow-redirects@^1.10.0:
version "1.13.1"
resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.13.1.tgz#5f69b813376cee4fd0474a3aba835df04ab763b7"
integrity sha512-SSG5xmZh1mkPGyKzjZP8zLjltIfpW32Y5QpdNJyjcfGxK3qo3NDDkZOZSFiGn1A6SclQxY9GzEwAHQ3dmYRWpg==
follow-redirects@^1.14.0:
version "1.15.2"
resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.15.2.tgz#b460864144ba63f2681096f274c4e57026da2c13"
integrity sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA==
fs-constants@^1.0.0:
version "1.0.0"
@@ -964,9 +964,9 @@ minimatch@^3.0.4:
brace-expansion "^1.1.7"
minimist@^1.2.5:
version "1.2.5"
resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.5.tgz#67d66014b66a6a8aaa0c083c5fd58df4e4e97602"
integrity sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==
version "1.2.6"
resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.6.tgz#8637a5b759ea0d6e98702cfb3a9283323c93af44"
integrity sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==
mkdirp@^0.5.1:
version "0.5.5"
+2 -2
View File
@@ -18,8 +18,8 @@ import requests
import argparse
PG_CODES_URLS = [
"https://git.postgresql.org/gitweb/?p=postgresql.git;a=blob_plain;"
"f=src/pl/plpgsql/src/pl_scanner.c",
"https://raw.githubusercontent.com/postgres/postgres/master/src/pl/"
"plpgsql/src/pl_scanner.c",
]
PG_CODES_REGEX = "PG_KEYWORD\(\"([a-z]*)\"[A-Z_, ]*\)"
+11 -2
View File
@@ -43,7 +43,7 @@ APP_ICON = 'pg-icon'
# Application version number components
APP_RELEASE = 6
APP_REVISION = 14
APP_REVISION = 15
# Application version suffix, e.g. 'beta1', 'dev'. Usually an empty string
# for GA releases.
@@ -52,7 +52,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 = 61400
APP_VERSION_INT = 61500
# DO NOT CHANGE!
# The application version string, constructed from the components
@@ -645,6 +645,15 @@ LDAP_ANONYMOUS_BIND = False
# OpenLDAP example: CN=Users,dc=example,dc=com
LDAP_BASE_DN = '<Base-DN>'
# Configure the bind format string
# Default: LDAP_BIND_FORMAT="
# {LDAP_USERNAME_ATTRIBUTE}={LDAP_USERNAME},{LDAP_BASE_DN}"
# The current available options are:
# LDAP_USERNAME_ATTRIBUTE, LDAP_USERNAME, LDAP_BASE_DN
# Example: LDAP_BIND_FORMAT="myldapuser@sales.example.com"
# LDAP_BIND_FORMAT="NET\\myldapuser"
LDAP_BIND_FORMAT = '{LDAP_USERNAME_ATTRIBUTE}={LDAP_USERNAME},{LDAP_BASE_DN}'
##########################################################################
# Search ldap for further authentication (REQUIRED)
+40
View File
@@ -0,0 +1,40 @@
##########################################################################
#
# pgAdmin 4 - PostgreSQL Tools
#
# Copyright (C) 2013 - 2022, The pgAdmin Development Team
# This software is released under the PostgreSQL Licence
#
##########################################################################
"""Update DB to version 32
Added passexec_cmd and passexec_expiration columns to server configuration.
Revision ID: f79844e926ae
Revises: 1586db67b98e
Create Date: 2022-10-11 11:25:00.000000
"""
from pgadmin.model import db
# revision identifiers, used by Alembic.
revision = 'f79844e926ae'
down_revision = '1586db67b98e'
branch_labels = None
depends_on = None
def upgrade():
db.engine.execute("""
ALTER TABLE server ADD COLUMN passexec_cmd TEXT(256) null
""")
db.engine.execute("""
ALTER TABLE server ADD COLUMN passexec_expiration INT null
""")
# ### end Alembic commands ###
def downgrade():
# pgAdmin only upgrades, downgrade not implemented.
pass
+3 -1
View File
@@ -146,6 +146,8 @@
"react-aspen": "^1.1.0",
"react-checkbox-tree": "^1.7.2",
"react-data-grid": "git+https://github.com/EnterpriseDB/react-data-grid.git/#200d2f5e02de694e3e9ffbe177c279bc40240fb8",
"react-dnd": "^16.0.1",
"react-dnd-html5-backend": "^16.0.1",
"react-dom": "^17.0.1",
"react-draggable": "^4.4.4",
"react-dropzone": "^14.2.1",
@@ -168,7 +170,7 @@
"underscore": "^1.13.1",
"url-loader": "^1.1.2",
"valid-filename": "^2.0.1",
"webcabin-docker": "git+https://github.com/EnterpriseDB/wcDocker/#40d025e0d86ee3cf058a52e01d2042113f134cdd",
"webcabin-docker": "git+https://github.com/EnterpriseDB/wcDocker/#b4d58f29b3a308ab555085ee444fa7010aa4b991",
"wkx": "^0.5.0",
"xterm": "^4.11.0",
"xterm-addon-fit": "^0.5.0",
+3 -1
View File
@@ -102,6 +102,8 @@ class RdsProvider(AbsProvider):
parser_create_instance.add_argument('--storage-type', default='gp2',
help='storage type for the data '
'database (default: gp2)')
parser_create_instance.add_argument('--high-availability',
default=False)
parser_create_instance.add_argument('--public-ip', default='127.0.0.1',
help='Public IP '
'(default: 127.0.0.1)')
@@ -207,7 +209,7 @@ class RdsProvider(AbsProvider):
StorageEncrypted=True,
Iops=args.storage_iops,
AutoMinorVersionUpgrade=True,
MultiAZ=False,
MultiAZ=bool(args.high_availability),
MasterUsername=args.db_username,
MasterUserPassword=db_password,
DBInstanceClass=args.instance_type,
+21 -3
View File
@@ -11,12 +11,16 @@
import config
import copy
import functools
from flask import current_app, flash, Response, request, url_for, \
session, redirect
from flask_babel import gettext
from flask_security.views import _security
from flask_security.utils import get_post_logout_redirect, logout_user
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
@@ -52,6 +56,17 @@ def get_logout_url() -> str:
url_for('security.logout'), url_for(BROWSER_INDEX))
def socket_login_required(f):
@functools.wraps(f)
def wrapped(*args, **kwargs):
if not current_user.is_authenticated:
disconnect()
raise ConnectionRefusedError("Unauthorised !")
else:
return f(*args, **kwargs)
return wrapped
class AuthenticateModule(PgAdminModule):
def get_exposed_url_endpoints(self):
return ['authenticate.login']
@@ -67,12 +82,15 @@ def login():
The user input will be validated and authenticated.
"""
form = _security.login_form()
auth_obj = AuthSourceManager(form, copy.deepcopy(
config.AUTHENTICATION_SOURCES))
if OAUTH2 in config.AUTHENTICATION_SOURCES \
and 'oauth2_button' in request.form:
# Sending empty form as oauth2 does not require form attribute
auth_obj = AuthSourceManager({}, copy.deepcopy(
config.AUTHENTICATION_SOURCES))
session['auth_obj'] = auth_obj
else:
auth_obj = AuthSourceManager(form, copy.deepcopy(
config.AUTHENTICATION_SOURCES))
session['auth_source_manager'] = None
+1 -3
View File
@@ -9,7 +9,6 @@
"""Implements Internal Authentication"""
import six
from flask import current_app, flash
from flask_security import login_user
from abc import abstractmethod, abstractproperty
@@ -21,8 +20,7 @@ from pgadmin.utils.validation_utils import validate_email
from pgadmin.utils.constants import INTERNAL
@six.add_metaclass(AuthSourceRegistry)
class BaseAuthentication(object):
class BaseAuthentication(object, metaclass=AuthSourceRegistry):
DEFAULT_MSG = {
'USER_DOES_NOT_EXIST': gettext('Incorrect username or password.'),
+12 -5
View File
@@ -65,10 +65,13 @@ class LDAPAuthentication(BaseAuthentication):
# username and password
if not self.bind_user and not self.bind_pass and\
self.anonymous_bind is False:
user_dn = "{0}={1},{2}".format(config.LDAP_USERNAME_ATTRIBUTE,
self.username,
config.LDAP_BASE_DN
)
user_dn = config.LDAP_BIND_FORMAT\
.format(
LDAP_USERNAME=self.username,
LDAP_BASE_DN=config.LDAP_BASE_DN,
LDAP_USERNAME_ATTRIBUTE=config.LDAP_USERNAME_ATTRIBUTE
)
self.bind_user = user_dn
self.bind_pass = self.password
@@ -97,7 +100,11 @@ class LDAPAuthentication(BaseAuthentication):
return status, msg
if 'mail' in ldap_user:
user_email = ldap_user['mail'].value
mail = ldap_user['mail'].value
if isinstance(mail, list) and len(mail) > 0:
user_email = mail[0]
else:
user_email = ldap_user['mail'].value
return self.__auto_create_user(user_email)
+5 -5
View File
@@ -9,7 +9,6 @@
"""External 2FA Authentication Registry."""
from abc import abstractmethod, abstractproperty
import six
from typing import Union
import flask
@@ -50,8 +49,7 @@ MultiFactorAuthRegistry = create_registry_metaclass(
)
@six.add_metaclass(MultiFactorAuthRegistry)
class BaseMFAuth():
class BaseMFAuth(metaclass=MultiFactorAuthRegistry):
"""
Base Multi-Factor Authentication (MFA) class
@@ -60,7 +58,8 @@ class BaseMFAuth():
available as a MFA method.
"""
@abstractproperty
@property
@abstractmethod
def name(self) -> str:
"""
Represents the short name for the authentiation method. It can be used
@@ -74,7 +73,8 @@ class BaseMFAuth():
"""
pass
@abstractproperty
@property
@abstractmethod
def label(self) -> str:
"""
Represents the user visible name for the authentiation method. It will
+6 -6
View File
@@ -18,7 +18,6 @@ from smtplib import SMTPConnectError, SMTPResponseException, \
from socket import error as SOCKETErrorException
from urllib.request import urlopen
import six
import time
from flask import current_app, render_template, url_for, make_response, \
flash, Response, request, after_this_request, redirect, session
@@ -227,8 +226,7 @@ class BrowserModule(PgAdminModule):
blueprint = BrowserModule(MODULE_NAME, __name__)
@six.add_metaclass(ABCMeta)
class BrowserPluginModule(PgAdminModule):
class BrowserPluginModule(PgAdminModule, metaclass=ABCMeta):
"""
Abstract base class for browser submodules.
@@ -351,11 +349,13 @@ class BrowserPluginModule(PgAdminModule):
"""
return []
@abstractproperty
@property
@abstractmethod
def node_type(self):
pass
@abstractproperty
@property
@abstractmethod
def script_load(self):
"""
This property defines, when to load this script.
@@ -1088,7 +1088,7 @@ if hasattr(config, 'SECURITY_RECOVERABLE') and config.SECURITY_RECOVERABLE:
'/reset_password' + slash_url_suffix(
'/browser/reset_password', '<token>'
),
methods=['POST'],
methods=['GET', 'POST'],
endpoint='reset_password'
)
@pgCSRFProtect.exempt
+2 -4
View File
@@ -9,8 +9,7 @@
from abc import ABCMeta, abstractmethod
import six
from flask import url_for, render_template
from flask import render_template
from flask_babel import gettext
from pgadmin.browser import BrowserPluginModule
from pgadmin.browser.utils import PGChildModule
@@ -19,8 +18,7 @@ from pgadmin.utils.preferences import Preferences
from pgadmin.utils.constants import PGADMIN_NODE
@six.add_metaclass(ABCMeta)
class CollectionNodeModule(PgAdminModule, PGChildModule):
class CollectionNodeModule(PgAdminModule, PGChildModule, metaclass=ABCMeta):
"""
Base class for collection node submodules.
"""
@@ -12,7 +12,6 @@
import simplejson as json
from abc import ABCMeta, abstractmethod
import six
from flask import request, jsonify, render_template
from flask_babel import gettext
from flask_security import current_user, login_required
@@ -139,8 +138,7 @@ class ServerGroupMenuItem(MenuItem):
super(ServerGroupMenuItem, self).__init__(**kwargs)
@six.add_metaclass(ABCMeta)
class ServerGroupPluginModule(BrowserPluginModule):
class ServerGroupPluginModule(BrowserPluginModule, metaclass=ABCMeta):
"""
Base class for server group plugins.
"""
@@ -710,6 +710,8 @@ class ServerNode(PGChildNodeView):
'role': 'role',
'db_res': 'db_res',
'passfile': 'passfile',
'passexec_cmd': 'passexec_cmd',
'passexec_expiration': 'passexec_expiration',
'sslcert': 'sslcert',
'sslkey': 'sslkey',
'sslrootcert': 'sslrootcert',
@@ -978,6 +980,11 @@ class ServerNode(PGChildNodeView):
'fgcolor': server.fgcolor,
'db_res': server.db_res.split(',') if server.db_res else None,
'passfile': server.passfile if server.passfile else None,
'passexec_cmd':
server.passexec_cmd if server.passexec_cmd else None,
'passexec_expiration':
server.passexec_expiration if server.passexec_expiration
else None,
'sslcert': sslcert,
'sslkey': sslkey,
'sslrootcert': sslrootcert,
@@ -1092,6 +1099,8 @@ class ServerNode(PGChildNodeView):
tunnel_identity_file=data.get('tunnel_identity_file', None),
shared=data.get('shared', None),
passfile=data.get('passfile', None),
passexec_cmd=data.get('passexec_cmd', None),
passexec_expiration=data.get('passexec_expiration', None),
kerberos_conn=1 if data.get('kerberos_conn', False) else 0,
)
db.session.add(server)
@@ -1378,7 +1387,9 @@ class ServerNode(PGChildNodeView):
server.kerberos_conn is None):
conn_passwd = getattr(conn, 'password', None)
if conn_passwd is None and not server.save_password and \
server.passfile is None and server.service is None:
server.passfile is None and \
server.passexec_cmd is None and \
server.service is None:
prompt_password = True
elif server.passfile and server.passfile != '':
passfile = server.passfile
@@ -1,10 +0,0 @@
{% if data and schema and domain %}
ALTER DOMAIN {{ conn|qtIdent(schema, domain) }}
ADD CONSTRAINT {{ conn|qtIdent(data.name) }} CHECK ({{ data.consrc }}){% if not data.convalidated %}
NOT VALID{% endif %};{% if data.description %}
COMMENT ON CONSTRAINT {{ conn|qtIdent(data.name) }} ON DOMAIN {{ conn|qtIdent(schema, domain) }}
IS '{{ data.description }}';{% endif %}
{% endif %}
@@ -1,5 +0,0 @@
SELECT
typcategory
FROM
pg_catalog.pg_type
WHERE typname = {{datatype}};
@@ -1,22 +0,0 @@
SELECT
c.oid, conname AS name, typname AS relname, nspname, description,
pg_catalog.regexp_replace(pg_catalog.pg_get_constraintdef(c.oid, true), E'CHECK \\((.*)\\).*', E'\\1') AS consrc,
connoinherit, convalidated, convalidated AS convalidated_p
FROM
pg_catalog.pg_constraint c
JOIN
pg_catalog.pg_type t ON t.oid=contypid
JOIN
pg_catalog.pg_namespace nl ON nl.oid=typnamespace
LEFT OUTER JOIN
pg_catalog.pg_description des ON (des.objoid=c.oid AND des.classoid='pg_constraint'::regclass)
{% if doid %}
WHERE
contype = 'c' AND contypid = {{doid}}::oid
{% if coid %}
AND c.oid = {{ coid }}
{% endif %}
{% elif coid %}
WHERE
c.oid = {{ coid }}
{% endif %}
@@ -1,13 +0,0 @@
{% set name = o_data.name %}
{% if data.name %}
{% set name = data.name %}
ALTER DOMAIN {{ conn|qtIdent(o_data.nspname, o_data.relname) }}
RENAME CONSTRAINT {{ conn|qtIdent(o_data.name) }} TO {{ conn|qtIdent(data.name) }};{% endif -%}{% if data.convalidated %}
ALTER DOMAIN {{ conn|qtIdent(o_data.nspname, o_data.relname) }}
VALIDATE CONSTRAINT {{ conn|qtIdent(name) }};{% endif -%}{% if data.description is defined %}
COMMENT ON CONSTRAINT {{ conn|qtIdent(name) }} ON DOMAIN {{ conn|qtIdent(o_data.nspname, o_data.relname) }}
IS {{ data.description|qtLiteral }};{% endif %}
@@ -1,3 +1,10 @@
{% if data and schema and domain %}
ALTER DOMAIN {{ conn|qtIdent(schema, domain) }}
ADD CONSTRAINT {{ conn|qtIdent(data.name) }} CHECK ({{ data.consrc }});{% endif -%}
ADD CONSTRAINT {{ conn|qtIdent(data.name) }} CHECK ({{ data.consrc }}){% if not data.convalidated %}
NOT VALID{% endif %};{% if data.description %}
COMMENT ON CONSTRAINT {{ conn|qtIdent(data.name) }} ON DOMAIN {{ conn|qtIdent(schema, domain) }}
IS '{{ data.description }}';{% endif %}
{% endif %}
@@ -1,12 +1,15 @@
SELECT
c.oid, conname AS name, typname AS relname, nspname,
pg_catalog.regexp_replace(pg_catalog.pg_get_constraintdef(c.oid, true), E'CHECK \\((.*)\\).*', E'\\1') AS consrc
c.oid, conname AS name, typname AS relname, nspname, description,
pg_catalog.regexp_replace(pg_catalog.pg_get_constraintdef(c.oid, true), E'CHECK \\((.*)\\).*', E'\\1') AS consrc,
connoinherit, convalidated, convalidated AS convalidated_p
FROM
pg_catalog.pg_constraint c
JOIN
pg_catalog.pg_type t ON t.oid=contypid
JOIN
pg_catalog.pg_namespace nl ON nl.oid=typnamespace
LEFT OUTER JOIN
pg_catalog.pg_description des ON (des.objoid=c.oid AND des.classoid='pg_constraint'::regclass)
{% if doid %}
WHERE
contype = 'c' AND contypid = {{doid}}::oid
@@ -1,3 +1,13 @@
{% set name = o_data.name %}
{% if data.name %}
{% set name = data.name %}
ALTER DOMAIN {{ conn|qtIdent(o_data.nspname, o_data.relname) }}
RENAME CONSTRAINT {{ conn|qtIdent(o_data.name) }} TO {{ conn|qtIdent(data.name) }};{% endif %}
RENAME CONSTRAINT {{ conn|qtIdent(o_data.name) }} TO {{ conn|qtIdent(data.name) }};{% endif -%}{% if data.convalidated %}
ALTER DOMAIN {{ conn|qtIdent(o_data.nspname, o_data.relname) }}
VALIDATE CONSTRAINT {{ conn|qtIdent(name) }};{% endif -%}{% if data.description is defined %}
COMMENT ON CONSTRAINT {{ conn|qtIdent(name) }} ON DOMAIN {{ conn|qtIdent(o_data.nspname, o_data.relname) }}
IS {{ data.description|qtLiteral }};{% endif %}
@@ -32,4 +32,5 @@ FROM
) d
LEFT JOIN pg_catalog.pg_roles g ON (d.grantor = g.oid)
LEFT JOIN pg_catalog.pg_roles gt ON (d.grantee = gt.oid)
GROUP BY g.rolname, gt.rolname;
GROUP BY g.rolname, gt.rolname
ORDER BY grantee;
@@ -32,4 +32,5 @@ FROM
) d
LEFT JOIN pg_catalog.pg_roles g ON (d.grantor = g.oid)
LEFT JOIN pg_catalog.pg_roles gt ON (d.grantee = gt.oid)
GROUP BY g.rolname, gt.rolname;
GROUP BY g.rolname, gt.rolname
ORDER BY grantee;
@@ -32,4 +32,5 @@ FROM
) d
LEFT JOIN pg_catalog.pg_roles g ON (d.grantor = g.oid)
LEFT JOIN pg_catalog.pg_roles gt ON (d.grantee = gt.oid)
GROUP BY g.rolname, gt.rolname;
GROUP BY g.rolname, gt.rolname
ORDER BY grantee;
@@ -32,4 +32,5 @@ FROM
) d
LEFT JOIN pg_catalog.pg_roles g ON (d.grantor = g.oid)
LEFT JOIN pg_catalog.pg_roles gt ON (d.grantee = gt.oid)
GROUP BY g.rolname, gt.rolname;
GROUP BY g.rolname, gt.rolname
ORDER BY grantee;
Loaded 100 of 331 files, more files were not shown because too many files have changed in this diff. Show more