Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
c92e9c2953 | ||
|
|
af1f4b3aa7 | ||
|
|
4b40aac89f | ||
|
|
0ff34ab6ae | ||
|
|
9462296d33 | ||
|
|
0904adaed0 | ||
|
|
f7045b58d4 | ||
|
|
459121566c | ||
|
|
e12e8bc9cf | ||
|
|
956401015d | ||
|
|
1ac385be27 | ||
|
|
8145e042a6 | ||
|
|
cdf49d6300 | ||
|
|
028b70203c | ||
|
|
e23ef5d9df | ||
|
|
711181c752 | ||
|
|
3de19f66f2 | ||
|
|
4c5324bd99 | ||
|
|
639a28fbfc | ||
|
|
41fe1db884 | ||
|
|
cafe69c235 | ||
|
|
d55c35c0e8 | ||
|
|
0e0cbc40b8 | ||
|
|
47aa070cc3 | ||
|
|
4fe47b8e92 | ||
|
|
e80e82cd7f | ||
|
|
29f13f8832 | ||
|
|
81fccc87b5 | ||
|
|
93d25eea0b | ||
|
|
a166f8dc89 | ||
|
|
d26c167c76 | ||
|
|
60983a25d2 | ||
|
|
2d08b0dd13 | ||
|
|
b28df5874e | ||
|
|
ad0567bd85 | ||
|
|
701085adaf | ||
|
|
5240e8ccf8 | ||
|
|
4ce65ea770 | ||
|
|
19b8d05e65 | ||
|
|
f5ba42bec8 | ||
|
|
26ec59ab5f | ||
|
|
30509d1bc1 | ||
|
|
5e710f7ee3 | ||
|
|
ec5ea7e207 | ||
|
|
9b5dc28bac | ||
|
|
db727381b1 | ||
|
|
fdaedacf40 | ||
|
|
4d74f84d80 | ||
|
|
fcfe7cfb7c | ||
|
|
5248055a01 | ||
|
|
740ce15bd7 | ||
|
|
2621050066 | ||
|
|
2b736c18ab | ||
|
|
3fa4e82af9 | ||
|
|
fd8af4034a | ||
|
|
e837de5e8f | ||
|
|
01a118d495 | ||
|
|
ec12dc5288 | ||
|
|
a4e9f04a2e | ||
|
|
6d399f4fd7 | ||
|
|
cede5cf899 | ||
|
|
41a62c8082 | ||
|
|
8c06d93303 | ||
|
|
9ccdaf73cd | ||
|
|
09b83e54a2 | ||
|
|
c8d6ff8a6d | ||
|
|
c85a9be621 | ||
|
|
0d287df6dd | ||
|
|
a973c9c62c | ||
|
|
2d60bc2800 | ||
|
|
a22b2a6074 | ||
|
|
04580652ab | ||
|
|
4db13facf7 | ||
|
|
adab656a79 | ||
|
|
92549af3d4 | ||
|
|
9379df2543 | ||
|
|
4490b623f8 | ||
|
|
371bec7f19 | ||
|
|
a01b0973fc | ||
|
|
75a1b4b17e | ||
|
|
51b02ae6d4 | ||
|
|
e207a82dbb | ||
|
|
9cf3288934 | ||
|
|
e64f4f632d | ||
|
|
4b71519b80 | ||
|
|
4e2aa82ddd | ||
|
|
444f3a3189 | ||
|
|
2b2ff0d260 | ||
|
|
f2876cabe8 | ||
|
|
16d1df2a1b | ||
|
|
fd1a0753bc | ||
|
|
c84f38ac0f | ||
|
|
f3fb76f669 | ||
|
|
377216caec | ||
|
|
c9590b2d62 | ||
|
|
1622211b39 | ||
|
|
523eca5a95 | ||
|
|
1bebddfc7d | ||
|
|
37362541bf | ||
|
|
412375af3c | ||
|
|
3bd2dec663 | ||
|
|
222e8cc1f8 | ||
|
|
85255b65b1 | ||
|
|
338bb64a55 | ||
|
|
a9ca7a2fd4 | ||
|
|
b51df0e5fd | ||
|
|
e66cb54a58 | ||
|
|
361ae458d4 | ||
|
|
115208c8d8 | ||
|
|
9611e06dcf | ||
|
|
22b386165d | ||
|
|
19cbe8c39f | ||
|
|
d8bcc11a95 | ||
|
|
9f203cf7d7 | ||
|
|
06a612481f | ||
|
|
682d6597e4 | ||
|
|
a59372cbe3 | ||
|
|
101f6fc103 | ||
|
|
23c618e1c9 | ||
|
|
0bc044fa67 | ||
|
|
5bdccb6e63 | ||
|
|
6d7338e64d | ||
|
|
0358298090 | ||
|
|
0e3dc74bb4 | ||
|
|
302e1acabd | ||
|
|
c9db4a0d16 | ||
|
|
cc239149ba | ||
|
|
c4a5f8d707 | ||
|
|
75a2d880f6 | ||
|
|
e5cba59a02 | ||
|
|
0e8868a650 | ||
|
|
7f49b891df | ||
|
|
0ac471d160 | ||
|
|
370cb611d7 | ||
|
|
d4b57edede | ||
|
|
85dd1e92ad | ||
|
|
ef0b30b1ca | ||
|
|
0d8adf9ced | ||
|
|
695c008245 | ||
|
|
96fccd28a9 | ||
|
|
5f3965ff0a | ||
|
|
6062084128 | ||
|
|
01d1e6f706 | ||
|
|
9eb7c1cbea | ||
|
|
5d70803d6d | ||
|
|
53b5b59f56 | ||
|
|
17acce3e7b | ||
|
|
d3dd5c0b56 | ||
|
|
71e7a7c481 | ||
|
|
0b707be615 | ||
|
|
179332ed5a | ||
|
|
a8a7574e69 | ||
|
|
e30d2eca90 | ||
|
|
4bc6dcca67 | ||
|
|
46a8c1ad6a | ||
|
|
3e575e2f43 | ||
|
|
b11b2a2f50 | ||
|
|
1bfd8d7f3c | ||
|
|
f1da4f5de8 | ||
|
|
5a7583654f | ||
|
|
cfa7bef407 | ||
|
|
8997f616a2 | ||
|
|
f50f799b88 | ||
|
|
3bcac26ff9 | ||
|
|
c5f4a56c0c | ||
|
|
d74320f06e | ||
|
|
b003f76903 | ||
|
|
ebc3460fce | ||
|
|
ed51fe475e | ||
|
|
f2bd3933c6 | ||
|
|
862f101772 | ||
|
|
6d555645e9 | ||
|
|
e587ef404c | ||
|
|
fe753bd272 | ||
|
|
c07c153f15 |
No files matched your search
@@ -8,7 +8,7 @@ updates:
|
||||
- "Dependencies"
|
||||
commit-message:
|
||||
prefix: "Docker dependency"
|
||||
|
||||
|
||||
- package-ecosystem: "pip"
|
||||
directory: "/"
|
||||
schedule:
|
||||
@@ -17,7 +17,7 @@ updates:
|
||||
- "Dependencies"
|
||||
commit-message:
|
||||
prefix: "Python dependency"
|
||||
|
||||
|
||||
- package-ecosystem: "pip"
|
||||
directory: "/tools"
|
||||
schedule:
|
||||
@@ -25,8 +25,8 @@ updates:
|
||||
labels:
|
||||
- "Dependencies"
|
||||
commit-message:
|
||||
prefix: "Python dependency"
|
||||
|
||||
prefix: "Python dependency"
|
||||
|
||||
- package-ecosystem: "pip"
|
||||
directory: "/web/regression"
|
||||
schedule:
|
||||
@@ -34,8 +34,8 @@ updates:
|
||||
labels:
|
||||
- "Dependencies"
|
||||
commit-message:
|
||||
prefix: "Python dependency"
|
||||
|
||||
prefix: "Python dependency"
|
||||
|
||||
- package-ecosystem: "npm"
|
||||
directory: "/runtime"
|
||||
schedule:
|
||||
@@ -43,8 +43,8 @@ updates:
|
||||
labels:
|
||||
- "Dependencies"
|
||||
commit-message:
|
||||
prefix: "Python dependency"
|
||||
|
||||
prefix: "Javascript dependency"
|
||||
|
||||
- package-ecosystem: "npm"
|
||||
directory: "/web"
|
||||
schedule:
|
||||
@@ -52,4 +52,4 @@ updates:
|
||||
labels:
|
||||
- "Dependencies"
|
||||
commit-message:
|
||||
prefix: "Python dependency"
|
||||
prefix: "Javascript dependency"
|
||||
@@ -19,6 +19,11 @@ jobs:
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
|
||||
- name: Upgrade yarn
|
||||
run: |
|
||||
yarn set version berry
|
||||
yarn set version 3
|
||||
|
||||
- name: Install Node modules
|
||||
run: |
|
||||
cd web
|
||||
|
||||
@@ -21,7 +21,7 @@ jobs:
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
pgver: [11, 12, 13, 14, 15]
|
||||
pgver: [12, 13, 14, 15, 16]
|
||||
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
@@ -136,6 +136,11 @@ jobs:
|
||||
}
|
||||
EOF
|
||||
|
||||
- name: Upgrade yarn
|
||||
run: |
|
||||
yarn set version berry
|
||||
yarn set version 3
|
||||
|
||||
- name: Build the JS bundle
|
||||
run: |
|
||||
cd web
|
||||
|
||||
@@ -139,6 +139,11 @@ jobs:
|
||||
}
|
||||
EOF
|
||||
|
||||
- name: Upgrade yarn
|
||||
run: |
|
||||
yarn set version berry
|
||||
yarn set version 3
|
||||
|
||||
- name: Build the JS bundle
|
||||
run: |
|
||||
cd web
|
||||
|
||||
@@ -22,11 +22,16 @@ jobs:
|
||||
runs-on: ${{ matrix.os }}
|
||||
|
||||
steps:
|
||||
- uses: actions/setup-node@v3
|
||||
with:
|
||||
node-version: '18.x'
|
||||
|
||||
- uses: actions/checkout@v3
|
||||
|
||||
- name: Upgrade yarn
|
||||
run: |
|
||||
yarn set version berry
|
||||
yarn set version 3
|
||||
|
||||
- name: Install Node modules
|
||||
run: |
|
||||
@@ -36,4 +41,4 @@ jobs:
|
||||
- name: Run the tests
|
||||
run: |
|
||||
cd web
|
||||
yarn run test:karma-once
|
||||
yarn run test:js-once
|
||||
@@ -32,7 +32,7 @@ jobs:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
os: [ubuntu-22.04, windows-latest]
|
||||
pgver: [11, 12, 13, 14, 15]
|
||||
pgver: [12, 13, 14, 15, 16]
|
||||
|
||||
runs-on: ${{ matrix.os }}
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
[pycodestyle]
|
||||
ignore = E402,W504,W605,E231,W605
|
||||
ignore = E402,W504,E231
|
||||
max-line-length = 79
|
||||
statistics = True
|
||||
show-source = False
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
#
|
||||
# pgAdmin 4 - PostgreSQL Tools
|
||||
#
|
||||
# Copyright (C) 2013 - 2023, The pgAdmin Development Team
|
||||
# Copyright (C) 2013 - 2024, The pgAdmin Development Team
|
||||
# This software is released under the PostgreSQL Licence
|
||||
#
|
||||
#########################################################################
|
||||
@@ -47,6 +47,7 @@ WORKDIR /pgadmin4/web
|
||||
# Build the JS vendor code in the app-builder, and then remove the vendor source.
|
||||
RUN export CPPFLAGS="-DPNG_ARM_NEON_OPT=0" && \
|
||||
yarn set version berry && \
|
||||
yarn set version 3 && \
|
||||
yarn install && \
|
||||
yarn run bundle && \
|
||||
rm -rf node_modules \
|
||||
@@ -55,7 +56,8 @@ RUN export CPPFLAGS="-DPNG_ARM_NEON_OPT=0" && \
|
||||
.[^.]* \
|
||||
babel.cfg \
|
||||
webpack.* \
|
||||
karma.conf.js \
|
||||
jest.config.js \
|
||||
babel.* \
|
||||
./pgadmin/static/js/generated/.cache
|
||||
|
||||
#########################################################################
|
||||
@@ -191,6 +193,7 @@ RUN apk add \
|
||||
libjpeg-turbo \
|
||||
shadow \
|
||||
sudo \
|
||||
tzdata \
|
||||
libedit \
|
||||
libldap \
|
||||
libcap && \
|
||||
|
||||
@@ -4,7 +4,7 @@ pgAdmin 4
|
||||
This software is released under the PostgreSQL licence.
|
||||
|
||||
-------------------------------------------------------------------------------
|
||||
Copyright (C) 2013 - 2023, The pgAdmin Development Team
|
||||
Copyright (C) 2013 - 2024, The pgAdmin Development Team
|
||||
|
||||
Permission to use, copy, modify, and distribute this software and its
|
||||
documentation for any purpose, without fee, and without a written agreement is
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
#
|
||||
# pgAdmin 4 - PostgreSQL Tools
|
||||
#
|
||||
# Copyright (C) 2013 - 2023, The pgAdmin Development Team
|
||||
# Copyright (C) 2013 - 2024, The pgAdmin Development Team
|
||||
# This software is released under the PostgreSQL Licence
|
||||
#
|
||||
#########################################################################
|
||||
@@ -42,7 +42,7 @@ linter:
|
||||
cd web && yarn run linter
|
||||
|
||||
check: install-node bundle linter check-pep8
|
||||
cd web && yarn run karma start --single-run && python regression/runtests.py
|
||||
cd web && yarn run test:js-once && python regression/runtests.py
|
||||
|
||||
check-audit:
|
||||
cd web && yarn run audit
|
||||
@@ -77,10 +77,10 @@ check-feature: install-node bundle
|
||||
cd web && python regression/runtests.py --pkg feature_tests
|
||||
|
||||
check-js: install-node linter
|
||||
cd web && yarn run karma start --single-run
|
||||
cd web && yarn run test:js-once
|
||||
|
||||
check-js-coverage:
|
||||
cd web && yarn run test:karma-coverage
|
||||
cd web && yarn run test:js-coverage
|
||||
|
||||
# Include all clean sub-targets in clean
|
||||
clean: clean-appbundle clean-debian clean-dist clean-docs clean-node clean-pip clean-redhat clean-src
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
# pgAdmin 4
|
||||
# pgAdmin 4
|
||||
|
||||
pgAdmin 4 is a rewrite of the popular pgAdmin3 management tool for the
|
||||
PostgreSQL (http://www.postgresql.org) database.
|
||||
PostgreSQL (http://www.postgresql.org) database.
|
||||
|
||||
In the following documentation and examples, *$PGADMIN4_SRC/* is used to denote
|
||||
the top-level directory of a copy of the pgAdmin source tree, either from a
|
||||
@@ -9,9 +9,8 @@ tarball or a git checkout.
|
||||
|
||||
## Architecture
|
||||
|
||||
pgAdmin 4 is written as a web application in Python, using jQuery and Bootstrap
|
||||
for the client side processing and UI. On the server side, Flask is being
|
||||
utilised.
|
||||
pgAdmin 4 is written as a web application with Python(Flask) on the server side
|
||||
and ReactJS, HTML5 with CSS for the client side processing and UI.
|
||||
|
||||
Although developed using web technologies, pgAdmin 4 can be deployed either on
|
||||
a web server using a browser, or standalone on a workstation. The runtime/
|
||||
@@ -22,7 +21,7 @@ which will execute the Python server and display the UI.
|
||||
|
||||
To build the runtime, the following packages must be installed:
|
||||
|
||||
* NodeJS 12+
|
||||
* NodeJS 16+
|
||||
* Yarn
|
||||
|
||||
Change into the runtime directory, and run *yarn install*. This will install the
|
||||
@@ -59,20 +58,20 @@ simple - adapt as required for your distribution:
|
||||
```bash
|
||||
$ python3 -m venv venv
|
||||
```
|
||||
|
||||
|
||||
2. Now activate the virtual environment:
|
||||
|
||||
```bash
|
||||
$ source venv/bin/activate
|
||||
```
|
||||
|
||||
|
||||
3. Some of the components used by pgAdmin require a very recent version of *pip*,
|
||||
so update that to the latest:
|
||||
|
||||
|
||||
```bash
|
||||
$ pip install --upgrade pip
|
||||
```
|
||||
|
||||
|
||||
4. Ensure that a PostgreSQL installation's bin/ directory is in the path (so
|
||||
pg_config can be found for building psycopg3), and install the required
|
||||
packages:
|
||||
@@ -80,20 +79,20 @@ simple - adapt as required for your distribution:
|
||||
```bash
|
||||
(venv) $ PATH=$PATH:/usr/local/pgsql/bin pip install -r $PGADMIN4_SRC/requirements.txt
|
||||
```
|
||||
|
||||
|
||||
If you are planning to run the regression tests, you also need to install
|
||||
additional requirements from web/regression/requirements.txt:
|
||||
|
||||
```bash
|
||||
(venv) $ pip install -r $PGADMIN4_SRC/web/regression/requirements.txt
|
||||
```
|
||||
|
||||
|
||||
5. Create a local configuration file for pgAdmin. Edit
|
||||
$PGADMIN4_SRC/web/config_local.py and add any desired configuration options
|
||||
(use the config.py file as a reference - any settings duplicated in
|
||||
config_local.py will override those in config.py). A typical development
|
||||
configuration may look like:
|
||||
|
||||
|
||||
```python
|
||||
from config import *
|
||||
|
||||
@@ -126,7 +125,7 @@ simple - adapt as required for your distribution:
|
||||
'pgadmin4-server.db'
|
||||
)
|
||||
```
|
||||
|
||||
|
||||
This configuration allows easy switching between server and desktop modes
|
||||
for testing.
|
||||
|
||||
@@ -137,13 +136,13 @@ simple - adapt as required for your distribution:
|
||||
```bash
|
||||
(venv) $ python3 $PGADMIN4_SRC/web/setup.py
|
||||
```
|
||||
|
||||
|
||||
or by starting pgAdmin 4:
|
||||
|
||||
```bash
|
||||
(venv) $ python3 $PGADMIN4_SRC/web/pgAdmin4.py
|
||||
```
|
||||
|
||||
|
||||
Whilst it is possible to automatically run setup in desktop mode by running
|
||||
the runtime, that will not work in server mode as the runtime doesn't allow
|
||||
command line interaction with the setup program.
|
||||
@@ -228,7 +227,7 @@ To build a source tarball:
|
||||
(venv) $ make src
|
||||
```
|
||||
|
||||
To build a PIP Wheel, activate either a Python 3 virtual environment, configured
|
||||
To build a PIP Wheel, activate either a Python 3 virtual environment, configured
|
||||
with all the required packages, and then run:
|
||||
|
||||
```bash
|
||||
@@ -266,7 +265,7 @@ See https://www.pgadmin.org/support/ for support options.
|
||||
|
||||
If you would like to report a security issue with pgAdmin, please email
|
||||
**security (at) pgadmin (dot) org**.
|
||||
|
||||
|
||||
Note that this address should only be used for reporting security issues
|
||||
that you believe you've found in the design or code of pgAdmin, pgAgent,
|
||||
and the pgAdmin website. It should not be used to ask security questions.
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
**********************
|
||||
|
||||
The bulk of pgAdmin is a Python web application written using the Flask framework
|
||||
on the backend, and HTML5 with CSS3, Bootstrap and jQuery on the front end. A
|
||||
on the backend, and HTML5 with CSS3,ReactJS on the front end. A
|
||||
desktop runtime is also included for users that prefer a desktop application to
|
||||
a web application, which is written using NWjs (Node Webkit).
|
||||
|
||||
@@ -207,8 +207,7 @@ Front End
|
||||
|
||||
pgAdmin uses javascript extensively for the front-end implementation. It uses
|
||||
require.js to allow the lazy loading (or, say load only when required),
|
||||
bootstrap and MaterialUI for UI look and feel, React for generating
|
||||
properties/create dialog for selected node. We have
|
||||
ReactJS with CSS and MaterialUI for UI look and feel. We have
|
||||
divided each module in small chunks as much as possible. Not all javascript
|
||||
modules are required to be loaded (i.e. loading a javascript module for
|
||||
database will make sense only when a server node is loaded completely.) Please
|
||||
|
||||
@@ -16,7 +16,7 @@ review process for any changes submitted for inclusion in pgAdmin.
|
||||
bulk updates every year). The start date should always be 2013, and the end year
|
||||
the current year, e.g.
|
||||
|
||||
Copyright (C) 2013 - 2023, The pgAdmin Development Team
|
||||
Copyright (C) 2013 - 2024, The pgAdmin Development Team
|
||||
|
||||
* Ensure there's a blank line immediately following any copyright headers.
|
||||
|
||||
|
||||
@@ -22,14 +22,12 @@ purpose or how it works if not obvious from a quick review of the code itself.
|
||||
CSS 3
|
||||
*****
|
||||
|
||||
CSS3 is used for styling and layout throughout the application. Extensive use is
|
||||
made of the Bootstrap Framework to aid in that process, however additional
|
||||
styles must still be created from time to time.
|
||||
CSS3 is used for styling and layout throughout the application.
|
||||
|
||||
Most custom styling comes from individual modules which may advertise static
|
||||
stylesheets to be included in the module that is loading them via hooks.
|
||||
|
||||
Styling overrides (for example, to alter the Bootstrap look and feel) will
|
||||
Styling overrides (for example, to alter the look and feel) will
|
||||
typically be found in the **overrides.css** file in the main static file
|
||||
directory for the application.
|
||||
|
||||
@@ -64,7 +62,7 @@ All HTML must be HTML 5 compliant.
|
||||
Javascript
|
||||
**********
|
||||
|
||||
Client-side code is written in Javascript using jQuery and various plugins.
|
||||
Client-side code is written in Javascript using ReactJS and various plugins.
|
||||
Whilst much of the code is rendered from static files, there is also code that
|
||||
is rendered from templates using Jinja2 (often to inject the users settings) or
|
||||
constructed on the fly from module hooks.
|
||||
@@ -122,7 +120,7 @@ with the required file header is shown below::
|
||||
#
|
||||
# pgAdmin 4 - PostgreSQL Tools
|
||||
#
|
||||
# Copyright (C) 2013 - 2023, The pgAdmin Development Team
|
||||
# Copyright (C) 2013 - 2024, The pgAdmin Development Team
|
||||
# This software is released under the PostgreSQL Licence
|
||||
#
|
||||
##########################################################################
|
||||
|
||||
@@ -43,6 +43,8 @@ are disabled if inapplicable.)
|
||||
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.
|
||||
* Use the drop-down listbox next to *Storage* to set the storage mode for the
|
||||
column. This option is available from v16 and above.
|
||||
|
||||
Click the *Constraints* tab to continue.
|
||||
|
||||
|
||||
@@ -222,3 +222,18 @@ To delete a row from the grid, click the trash icon.
|
||||
:maxdepth: 2
|
||||
|
||||
viewdata_filter
|
||||
|
||||
|
||||
|
||||
Promote View/Edit Data to Query Tool
|
||||
************************************
|
||||
|
||||
A View/Edit Data tab can be converted to a Query Tool Tab just by editing the query. Once you start editing, it will ask if you really want to move away from View/Edit.
|
||||
|
||||
.. image:: images/promote_view_edit_data_warning.png
|
||||
:alt: Promote View/Edit Data tab to Query Tool tab warning
|
||||
:align: center
|
||||
|
||||
You can disable the dialog by selecting the "Don't Ask again" checkbox. If you wish to resume the confirmation dialog, you can do it from "Prefrences -> Query Tool -> Editor -> Show View/Edit Data Promotion Warning?"
|
||||
|
||||
Once you chose to continue, you won't be able to use the features of View/Edit mode like the filter and sorting options, limit, etc. It is a one-way conversion. It will be a query tool now.
|
||||
@@ -18,7 +18,14 @@ The Entity-Relationship Diagram (ERD) tool is a database design tool that provid
|
||||
:alt: ERD tool window
|
||||
:align: center
|
||||
|
||||
You can open multiple copies of the ERD tool in individual tabs simultaneously. To close a copy of the ERD tool, click the *X* in the upper-right hand corner of the tab bar.
|
||||
You can open multiple copies of the ERD tool in individual tabs simultaneously.
|
||||
You can also generate an ERD from a database, schema or a table.
|
||||
|
||||
* The ERD for database will fetch all the tables from all the schemas of the database and plot them with foreign key links.
|
||||
* The ERD for schema will fetch all the tables from a schema and plot them with foreign key links. If any table refers to a table in another
|
||||
schema, then that link/foreign key will be removed.
|
||||
* The ERD for table will fetch all the tables linked directly or indirectly to mentioned table. You can change the depth of traversal from :ref:`Preferences <preferences>`.
|
||||
|
||||
|
||||
Toolbar
|
||||
*******
|
||||
|
||||
@@ -35,8 +35,10 @@ Click the *Definition* tab to continue.
|
||||
|
||||
Use the fields in the *Definition* tab to define the function:
|
||||
|
||||
* Move the *Custom return type?* switch to provide a user defined return type.
|
||||
* Use the drop-down listbox next to *Return type* to select the data type
|
||||
returned by the function, if any.
|
||||
returned by the function, if any. If *Custom return type?* is enabled this field
|
||||
will change to an input text field.
|
||||
* Use the drop-down listbox next to *Language* to select the implementation
|
||||
language. The default is *sql*.
|
||||
* Use the fields in the *Arguments* to define an argument. Click the *Add*
|
||||
|
||||
|
Before Width: | Height: | Size: 54 KiB After Width: | Height: | Size: 66 KiB |
|
Before Width: | Height: | Size: 37 KiB After Width: | Height: | Size: 20 KiB |
|
Before Width: | Height: | Size: 54 KiB After Width: | Height: | Size: 89 KiB |
|
Before Width: | Height: | Size: 83 KiB After Width: | Height: | Size: 154 KiB |
|
Before Width: | Height: | Size: 80 KiB After Width: | Height: | Size: 112 KiB |
|
Before Width: | Height: | Size: 113 KiB After Width: | Height: | Size: 190 KiB |
|
After Width: | Height: | Size: 99 KiB |
|
Before Width: | Height: | Size: 49 KiB After Width: | Height: | Size: 79 KiB |
|
Before Width: | Height: | Size: 43 KiB After Width: | Height: | Size: 65 KiB |
|
Before Width: | Height: | Size: 71 KiB After Width: | Height: | Size: 74 KiB |
|
Before Width: | Height: | Size: 25 KiB After Width: | Height: | Size: 34 KiB |
@@ -61,7 +61,7 @@ Exporting Servers
|
||||
*****************
|
||||
|
||||
To export the servers defined in an installation, simply invoke ``setup.py`` with
|
||||
the ``--dump-servers`` command line option, followed by the name (and if required,
|
||||
the ``dump-servers`` command line option, followed by the name (and if required,
|
||||
path) to the desired output file. By default, servers owned by the desktop mode
|
||||
user will be dumped (pgadmin4@pgadmin.org by default - see the DESKTOP_USER
|
||||
setting in ``config.py``). This can be overridden with the ``--user`` command
|
||||
@@ -73,28 +73,28 @@ For example:
|
||||
|
||||
.. code-block:: bash
|
||||
|
||||
/path/to/python /path/to/setup.py --dump-servers output_file.json
|
||||
/path/to/python /path/to/setup.py dump-servers output_file.json
|
||||
|
||||
# or, to specify a non-default user name:
|
||||
# or, to specify a non-default user name and auth source (the default is Internal):
|
||||
|
||||
/path/to/python /path/to/setup.py --dump-servers output_file.json --user user@example.com
|
||||
/path/to/python /path/to/setup.py dump-servers output_file.json --user user@example.com --auth_source ldap
|
||||
|
||||
# to specify a pgAdmin config DB file:
|
||||
|
||||
/path/to/python /path/to/setup.py --dump-servers output_file.json --sqlite-path /path/to/pgadmin4.db
|
||||
/path/to/python /path/to/setup.py dump-servers output_file.json --sqlite-path /path/to/pgadmin4.db
|
||||
|
||||
To export only certain servers, use the ``--servers`` option and list one or
|
||||
To export only certain servers, use the ``--server`` option and list one or
|
||||
more server IDs. For example:
|
||||
|
||||
.. code-block:: bash
|
||||
|
||||
/path/to/python /path/to/setup.py --dump-servers output_file.json --server 1 2 5
|
||||
/path/to/python /path/to/setup.py dump-servers output_file.json --server 1 --server 2 --server 5
|
||||
|
||||
Importing Servers
|
||||
*****************
|
||||
|
||||
To import the servers defined in a JSON file, simply invoke ``setup.py`` with
|
||||
the ``--load-servers`` command line option, followed by the name (and if required,
|
||||
the ``load-servers`` command line option, followed by the name (and if required,
|
||||
path) of the JSON file containing the server definitions. Servers will be owned
|
||||
by the desktop mode user (pgadmin4@pgadmin.org by default - see the DESKTOP_USER
|
||||
setting in ``config.py``). This can be overridden with the ``--user`` command
|
||||
@@ -108,19 +108,19 @@ desktop mode. By default SQLITE_PATH setting in ``config.py`` is taken. For exam
|
||||
|
||||
.. code-block:: bash
|
||||
|
||||
/path/to/python /path/to/setup.py --load-servers input_file.json
|
||||
/path/to/python /path/to/setup.py load-servers input_file.json
|
||||
|
||||
# or, to replace the list of servers with the newly imported one:
|
||||
|
||||
/path/to/python /path/to/setup.py --load-servers input_file.json --replace
|
||||
/path/to/python /path/to/setup.py load-servers input_file.json --replace
|
||||
|
||||
# or, to specify a non-default user name to own the new servers:
|
||||
# or, to specify a non-default user name and auth source (the default is Internal) to own the new servers:
|
||||
|
||||
/path/to/python /path/to/setup.py --load-servers input_file.json --user user@example.com
|
||||
/path/to/python /path/to/setup.py load-servers input_file.json --user user@example.com
|
||||
|
||||
# to specify a pgAdmin config DB file:
|
||||
|
||||
/path/to/python /path/to/setup.py --load-servers input_file.json --sqlite-path /path/to/pgadmin4.db
|
||||
/path/to/python /path/to/setup.py load-servers input_file.json --sqlite-path /path/to/pgadmin4.db
|
||||
|
||||
If any Servers are defined with a Server Group that is not already present in
|
||||
the configuration database, the required Group will be created.
|
||||
@@ -170,6 +170,7 @@ The following example shows both a minimally defined and a fully defined server:
|
||||
"SSLCrl": "/path/to/sslcrl.crl",
|
||||
"SSLCompression": 1,
|
||||
"Shared": false,
|
||||
"SharedUsername": "postgres",
|
||||
"BGColor": "#ff9900",
|
||||
"FGColor": "#000000",
|
||||
"Service": "postgresql-10",
|
||||
|
||||
@@ -87,6 +87,9 @@ There are 3 ways to configure LDAP:
|
||||
"LDAP_KEY_FILE","Specifies the path to the server private key file. This parameter
|
||||
is applicable only if you are using *ldaps* as connection protocol or you have
|
||||
set *LDAP_USE_STARTTLS* parameter to *True*."
|
||||
"LDAP_IGNORE_MALFORMED_SCHEMA", "Some flaky LDAP servers returns malformed schema.
|
||||
If this parameter set to *True*, no exception will be raised and schema is thrown away
|
||||
but authentication will be done. This parameter should remain False, as recommended."
|
||||
"**Bind as pgAdmin user**"
|
||||
"LDAP_BASE_DN","Specifies the base DN from where a server will start the search
|
||||
for users. For example, an LDAP search for any user will be performed by the server
|
||||
|
||||
@@ -13,7 +13,7 @@ documentation is attributed to the
|
||||
|
||||
.. topic:: pgAdmin 4
|
||||
|
||||
Copyright (C) 2013 - 2023, The pgAdmin Development Team
|
||||
Copyright (C) 2013 - 2024, The pgAdmin Development Team
|
||||
|
||||
Permission to use, copy, modify, and distribute this software and its
|
||||
documentation for any purpose, without fee, and without a written agreement is
|
||||
|
||||
@@ -25,9 +25,6 @@ Use the *File* menu to access the following options:
|
||||
+-------------------------+---------------------------------------------------------------------------------------------------------+
|
||||
| *Reset Layout* | If you have modified the workspace, click to restore the default layout. |
|
||||
+-------------------------+---------------------------------------------------------------------------------------------------------+
|
||||
| *Lock Layout* | Click to open a submenu to select the level for locking the UI layout |
|
||||
| | This can also be changed from browser display :ref:`preferences <preferences>` |
|
||||
+-------------------------+---------------------------------------------------------------------------------------------------------+
|
||||
| *Runtime* | Click to open a submenu to Configure, View Log and Zoom settings. Only visible when pgAdmin4 runs in |
|
||||
| | desktop mode. To know more about runtime menu :ref:`click here <desktop_deployment>` |
|
||||
+-------------------------+---------------------------------------------------------------------------------------------------------+
|
||||
@@ -45,6 +42,12 @@ following options (in alphabetical order):
|
||||
+-----------------------------+--------------------------------------------------------------------------------------------------------------------------+
|
||||
| Option | Action |
|
||||
+=============================+==========================================================================================================================+
|
||||
| *Register* | |
|
||||
| | |
|
||||
| 1) *Server* | Click to open the :ref:`Server <server_dialog>` dialog to register a server. |
|
||||
| | |
|
||||
| 2) *Deploy Cloud Instance*| Click to open the :ref:`Cloud Deployment <cloud_deployment>` dialog to deploy an cloud instance. |
|
||||
+-----------------------------+--------------------------------------------------------------------------------------------------------------------------+
|
||||
| *Change Password...* | Click to open the :ref:`Change Password... <change_password_dialog>` dialog to change your password. |
|
||||
+-----------------------------+--------------------------------------------------------------------------------------------------------------------------+
|
||||
| *Clear Saved Password* | If you have saved the database server password, click to clear the saved password. |
|
||||
@@ -55,6 +58,8 @@ following options (in alphabetical order):
|
||||
+-----------------------------+--------------------------------------------------------------------------------------------------------------------------+
|
||||
| *Connect Server* | Click to open the :ref:`Connect to Server <connect_to_server>` dialog to establish a connection with a server. |
|
||||
+-----------------------------+--------------------------------------------------------------------------------------------------------------------------+
|
||||
| *Copy Server...* | Click to copy the currently selected server. |
|
||||
+-----------------------------+--------------------------------------------------------------------------------------------------------------------------+
|
||||
| *Create* | Click *Create* to access a context menu that provides context-sensitive selections. |
|
||||
| | Your selection opens a *Create* dialog for creating a new object. |
|
||||
+-----------------------------+--------------------------------------------------------------------------------------------------------------------------+
|
||||
|
||||
@@ -43,9 +43,11 @@ 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.
|
||||
"OAUTH2_ADDITIONAL_CLAIMS", "If a dictionary is provided, pgAdmin will check for a matching key and value on the userinfo endpoint
|
||||
and in the Id Token. In case there is no 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."
|
||||
"OAUTH2_SSL_CERT_VERIFICATION", "Set this variable to False to disable SSL certificate verification for OAuth2 provider.
|
||||
This may need to set False, in case of self-signed certificates."
|
||||
|
||||
Redirect URL
|
||||
============
|
||||
|
||||
@@ -46,19 +46,6 @@ Use the fields on the *Display* panel to specify general display preferences:
|
||||
* When the *Hide shared servers?* switch is set to *True*, the client will hide
|
||||
all the shared servers from the object explorer.
|
||||
|
||||
* Use the *Lock layout* field to lock the UI layout at different levels. This
|
||||
can also be changed from File menu on the :ref:`menu bar <menu_bar>`
|
||||
|
||||
+---------------------+-------------------------------------------------------------------+
|
||||
| Option | Action |
|
||||
+=====================+===================================================================+
|
||||
| *None* | No locking. Every panel is resizable and dockable. |
|
||||
+---------------------+-------------------------------------------------------------------+
|
||||
| *Prevent docking* | This will disable the docking/undocking of the panels |
|
||||
+---------------------+-------------------------------------------------------------------+
|
||||
| *Full* | This will disable resizing, docking/undocking of the panels |
|
||||
+---------------------+-------------------------------------------------------------------+
|
||||
|
||||
* When the *Show empty object collections?* switch is turned off, then all object
|
||||
collections which are empty will be hidden from browser tree.
|
||||
* When the *Show system objects?* switch is set to *True*, the client will
|
||||
@@ -499,26 +486,27 @@ Query Tool window navigation:
|
||||
Use the fields on the *SQL formatting* panel to specify your preferences for
|
||||
reformatting of SQL.
|
||||
|
||||
* Use the *Comma-first notation* option to specify whether to place commas
|
||||
before or after column names.
|
||||
* Use the *Data type case* option to specify whether to change data types
|
||||
into upper, lower, or preserve case.
|
||||
* Use the *Expression width* option to specify maximum number of characters
|
||||
in parenthesized expressions to be kept on single line.
|
||||
* Use the *Function case* option to specify whether to change function
|
||||
names into upper, lower, or preserve case.
|
||||
* Use the *Identifier case* option to specify whether to change identifiers
|
||||
(object names) into upper, lower, or capitalized case.
|
||||
* Use the *Keyword case* option to specify whether to change keywords into
|
||||
upper, lower, or capitalized case.
|
||||
* Use the *Re-indent aligned?* option to specify that indentations of statements
|
||||
should be changed, aligned by keywords.
|
||||
* Use the *Re-indent?* option to specify that indentations of statements should
|
||||
be changed.
|
||||
upper, lower, or preserve case.
|
||||
* Use *Lines between queries* to specify how many empty lines to leave
|
||||
between SQL statements. If set to zero it puts no new line.
|
||||
* Use *Logical operator new line* to specify newline placement before or
|
||||
after logical operators (AND, OR, XOR).
|
||||
* Use *New line before semicolon?* to specify whether to place query
|
||||
separator (;) on a separate line.
|
||||
* Use the *Spaces around operators?* option to specify whether or not to include
|
||||
spaces on either side of operators.
|
||||
* Use the *Strip comments?* option to specify whether or not comments should be
|
||||
removed.
|
||||
* Use the *Tab size* option to specify the number of spaces per tab or indent.
|
||||
* Use the *Use spaces?* option to select whether to use spaces or tabs when
|
||||
indenting.
|
||||
* Use the *Wrap after N characters* option to specify the column limit for
|
||||
wrapping column separated lists (e.g. of column names in a table). If set to
|
||||
0 (zero), each item will be on it's own line.
|
||||
|
||||
The Schema Diff Node
|
||||
********************
|
||||
@@ -562,3 +550,43 @@ Use the fields on the *Options* panel to specify storage preferences.
|
||||
|
||||
* When the *Show hidden files and folders?* switch is set to *True*, the file
|
||||
manager will display hidden files and folders.
|
||||
|
||||
|
||||
Using 'setup.py' command line script
|
||||
####################################
|
||||
|
||||
.. note:: To manage preferences using ``setup.py`` script, you must use
|
||||
the Python interpreter that is normally used to run pgAdmin to ensure
|
||||
that the required Python packages are available. In most packages, this
|
||||
can be found in the Python Virtual Environment that can be found in the
|
||||
installation directory. When using platform-native packages, the system
|
||||
installation of Python may be the one used by pgAdmin.
|
||||
|
||||
|
||||
Manage Preferences
|
||||
******************
|
||||
|
||||
Get Preferences
|
||||
***************
|
||||
To get all the preferences listed, invoke ``setup.py`` with ``get-prefs`` command line option.
|
||||
You can also get this mapping by hovering the individual preference in the Preference UI dialog.
|
||||
|
||||
.. code-block:: bash
|
||||
|
||||
/path/to/python /path/to/setup.py get-prefs
|
||||
|
||||
Save Preferences
|
||||
****************
|
||||
To save the preferences, invoke ``setup.py`` with ``set-prefs`` command line option, followed by username,
|
||||
preference_key=value and auth_source. Multiple preference can be given too by a space separated.
|
||||
If auth_source is not given, Internal authentication will be consider by default.
|
||||
|
||||
.. code-block:: bash
|
||||
|
||||
/path/to/python /path/to/setup.py set-prefs user1@gmail.com sqleditor:editor:comma_first=true
|
||||
|
||||
# To specify multiple preferences options
|
||||
/path/to/python /path/to/setup.py set-prefs user1@gmail.com sqleditor:editor:comma_first=true sqleditor:keyboard_shortcuts:toggle_case=true
|
||||
|
||||
# to specify an auth_source
|
||||
/path/to/python /path/to/setup.py set-prefs user1@gmail.com sqleditor:editor:comma_first=true --auth-source=ldap
|
||||
@@ -73,11 +73,11 @@ key combination to select from a popup menu of autocomplete options.
|
||||
:alt: Query tool autocomplete feature
|
||||
:align: center
|
||||
|
||||
After entering a query, select the *Execute/Refresh* icon from the toolbar. The
|
||||
After entering a query, select the *Execute script* icon from the toolbar. The
|
||||
complete contents of the SQL editor panel will be sent to the database server
|
||||
for execution. To execute only a section of the code that is displayed in the
|
||||
SQL editor, highlight the text that you want the server to execute, and click
|
||||
the *Execute/Refresh* icon.
|
||||
the *Execute script* icon.
|
||||
|
||||
.. image:: images/query_execute_section.png
|
||||
:alt: Query tool execute query section
|
||||
@@ -159,7 +159,7 @@ The *Data Output* tab displays the result set of the query in a table format.
|
||||
You can:
|
||||
|
||||
* Select and copy from the displayed result set.
|
||||
* Use the *Execute/Refresh* options to retrieve query execution information and
|
||||
* Use the *Execute script* options to retrieve query execution information and
|
||||
set query execution options.
|
||||
* Use the *Save results to file* icon to save the content of the *Data Output*
|
||||
tab as a comma-delimited file.
|
||||
|
||||
@@ -116,7 +116,7 @@ Query Execution
|
||||
+======================+===================================================================================================+================+
|
||||
| *Stop* | Click the *Stop* icon to cancel the execution of the currently running query. | Accesskey + Q |
|
||||
+----------------------+---------------------------------------------------------------------------------------------------+----------------+
|
||||
| *Execute/Refresh* | Click the *Execute/Refresh* icon to either execute or refresh the query highlighted in the SQL | F5 |
|
||||
| *Execute script* | Click the *Execute script* icon to either execute or refresh the query highlighted in the SQL | F5 |
|
||||
| | editor panel. Click the down arrow to access other execution options: | |
|
||||
| | | |
|
||||
| | * Add a check next to *Auto rollback on error?* to instruct the server to automatically roll back| |
|
||||
|
||||
@@ -11,6 +11,10 @@ notes for it.
|
||||
.. toctree::
|
||||
:maxdepth: 1
|
||||
|
||||
release_notes_8_3
|
||||
release_notes_8_2
|
||||
release_notes_8_1
|
||||
release_notes_8_0
|
||||
release_notes_7_8
|
||||
release_notes_7_7
|
||||
release_notes_7_6
|
||||
|
||||
@@ -0,0 +1,59 @@
|
||||
***********
|
||||
Version 8.0
|
||||
***********
|
||||
|
||||
Release date: 2023-11-23
|
||||
|
||||
This release contains a number of bug fixes and new features since the release of pgAdmin 4 v7.8.
|
||||
|
||||
Supported Database Servers
|
||||
**************************
|
||||
**PostgreSQL**: 12, 13, 14, 15, and 16
|
||||
|
||||
**EDB Advanced Server**: 12, 13, 14, 15, and 16
|
||||
|
||||
Bundled PostgreSQL Utilities
|
||||
****************************
|
||||
**psql**, **pg_dump**, **pg_dumpall**, **pg_restore**: 16.0
|
||||
|
||||
|
||||
New features
|
||||
************
|
||||
|
||||
| `Issue #2821 <https://github.com/pgadmin-org/pgadmin4/issues/2821>`_ - Have close buttons on individual panel tabs instead of common.
|
||||
| `Issue #4733 <https://github.com/pgadmin-org/pgadmin4/issues/4733>`_ - Allow closing all the tabs, including SQL and Properties.
|
||||
| `Issue #5394 <https://github.com/pgadmin-org/pgadmin4/issues/5394>`_ - Changes in the context menu on panel tabs - Add close, close all and close others menu items.
|
||||
|
||||
Housekeeping
|
||||
************
|
||||
|
||||
| `Issue #6441 <https://github.com/pgadmin-org/pgadmin4/issues/6441>`_ - Update app bundle built to use notarytool instead of altool.
|
||||
| `Issue #6479 <https://github.com/pgadmin-org/pgadmin4/issues/6479>`_ - Replace the current layout library wcDocker with ReactJS based rc-dock.
|
||||
| `Issue #6850 <https://github.com/pgadmin-org/pgadmin4/issues/6850>`_ - Upgrade Flask, Werkzeug and other modules depends on the latest version of Flask.
|
||||
|
||||
Bug fixes
|
||||
*********
|
||||
|
||||
| `Issue #2986 <https://github.com/pgadmin-org/pgadmin4/issues/2986>`_ - Fix an issue where the scroll position of panels was not remembered on Firefox.
|
||||
| `Issue #5770 <https://github.com/pgadmin-org/pgadmin4/issues/5770>`_ - Add DROP SQL for foreign keys in SQL generated by ERD when using WITH DROP option.
|
||||
| `Issue #5807 <https://github.com/pgadmin-org/pgadmin4/issues/5807>`_ - Fixed an issue where psql was not taking the role used to connect in server properties.
|
||||
| `Issue #6017 <https://github.com/pgadmin-org/pgadmin4/issues/6017>`_ - Fixed an issue where Geometry Viewer renders geometry incorrectly after trying to view 3D or non-4326 SRID geometry.
|
||||
| `Issue #6459 <https://github.com/pgadmin-org/pgadmin4/issues/6459>`_ - Fix the sorting of size on the statistics panel.
|
||||
| `Issue #6487 <https://github.com/pgadmin-org/pgadmin4/issues/6487>`_ - Fixed restoration of query tool database connection after dropping and re-creating the database with the same name.
|
||||
| `Issue #6602 <https://github.com/pgadmin-org/pgadmin4/issues/6602>`_ - Fix an issue where the default server-group is being deleted if the load-server json file contains no servers.
|
||||
| `Issue #6720 <https://github.com/pgadmin-org/pgadmin4/issues/6720>`_ - Fix an issue of the incorrect format (no indent) of SQL stored functions/procedures.
|
||||
| `Issue #6769 <https://github.com/pgadmin-org/pgadmin4/issues/6769>`_ - Server config information in the about dialog should be only visible to admin users.
|
||||
| `Issue #6784 <https://github.com/pgadmin-org/pgadmin4/issues/6784>`_ - Fixed an issue where Schema Diff does not work when the user language is set to any language other than English in Preferences.
|
||||
| `Issue #6817 <https://github.com/pgadmin-org/pgadmin4/issues/6817>`_ - Fixed the query generated when creating subscription where copy_data parameter was missing.
|
||||
| `Issue #6820 <https://github.com/pgadmin-org/pgadmin4/issues/6820>`_ - Ensure backup/restore/maintenance works with invalid pgpass file parameter.
|
||||
| `Issue #6835 <https://github.com/pgadmin-org/pgadmin4/issues/6835>`_ - Fix an issue where OAUTH_ADDITIONAL_CLAIMS does not recognise AzureAD with > 150 groups.
|
||||
| `Issue #6840 <https://github.com/pgadmin-org/pgadmin4/issues/6840>`_ - Fixed circular import error occurring while deploying cloud PostgreSQL instance from pgAdmin.
|
||||
| `Issue #6874 <https://github.com/pgadmin-org/pgadmin4/issues/6874>`_ - Fix an issue where the browser window stuck on spinning with an Oauth user without email.
|
||||
| `Issue #6875 <https://github.com/pgadmin-org/pgadmin4/issues/6875>`_ - Fix an issue where import/export data is not working for shared servers.
|
||||
| `Issue #6877 <https://github.com/pgadmin-org/pgadmin4/issues/6877>`_ - Remove the max length of 255 from password exec command in server configuration dialog.
|
||||
| `Issue #6884 <https://github.com/pgadmin-org/pgadmin4/issues/6884>`_ - Remove gettext from empty strings in the title of the storage graph.
|
||||
| `Issue #6902 <https://github.com/pgadmin-org/pgadmin4/issues/6902>`_ - Fixed an issue where the change server password is not working in desktop mode.
|
||||
| `Issue #6904 <https://github.com/pgadmin-org/pgadmin4/issues/6904>`_ - Fix a crash issue occurring when debugging a function with arguments when using pgAdmin with external config database.
|
||||
| `Issue #6920 <https://github.com/pgadmin-org/pgadmin4/issues/6920>`_ - Fix an issue in ERD tool where SQL generated is missing columns for the table.
|
||||
| `Issue #6934 <https://github.com/pgadmin-org/pgadmin4/issues/6934>`_ - Clear the password field in the config database on clear saved server password.
|
||||
| `Issue #6962 <https://github.com/pgadmin-org/pgadmin4/issues/6962>`_ - Fixed an issue where the data type of the array type was not visible for the column in the Foreign Table dialog.
|
||||
@@ -0,0 +1,51 @@
|
||||
***********
|
||||
Version 8.1
|
||||
***********
|
||||
|
||||
Release date: 2023-12-14
|
||||
|
||||
This release contains a number of bug fixes and new features since the release of pgAdmin 4 v8.0.
|
||||
|
||||
Supported Database Servers
|
||||
**************************
|
||||
**PostgreSQL**: 12, 13, 14, 15, and 16
|
||||
|
||||
**EDB Advanced Server**: 12, 13, 14, 15, and 16
|
||||
|
||||
Bundled PostgreSQL Utilities
|
||||
****************************
|
||||
**psql**, **pg_dump**, **pg_dumpall**, **pg_restore**: 16.0
|
||||
|
||||
|
||||
New features
|
||||
************
|
||||
|
||||
| `Issue #4580 <https://github.com/pgadmin-org/pgadmin4/issues/4580>`_ - Add support for generating ERD for a schema.
|
||||
| `Issue #6854 <https://github.com/pgadmin-org/pgadmin4/issues/6854>`_ - Add support for creating a function with custom return type.
|
||||
|
||||
Housekeeping
|
||||
************
|
||||
|
||||
| `Issue #6991 <https://github.com/pgadmin-org/pgadmin4/issues/6991>`_ - Fixed several accessibility-related issues for enhanced usability.
|
||||
|
||||
Bug fixes
|
||||
*********
|
||||
|
||||
| `Issue #5471 <https://github.com/pgadmin-org/pgadmin4/issues/5471>`_ - Ensure focus is not changed to ssh tunnel password input when user explicitly focus on server password input.
|
||||
| `Issue #6095 <https://github.com/pgadmin-org/pgadmin4/issues/6095>`_ - Provide a way to bypass the SSL cert verification for OAuth2 provider.
|
||||
| `Issue #6488 <https://github.com/pgadmin-org/pgadmin4/issues/6488>`_ - Fixed an issue where database name was missing in an error message if name contains any special characters.
|
||||
| `Issue #6717 <https://github.com/pgadmin-org/pgadmin4/issues/6717>`_ - Ensure that indexes created by constraints are visible in the object explorer when "Show system objects" is enabled.
|
||||
| `Issue #6803 <https://github.com/pgadmin-org/pgadmin4/issues/6803>`_ - Fixed an issue where reading process logs throws an error when DATA_DIR is moved to a networked drive.
|
||||
| `Issue #6814 <https://github.com/pgadmin-org/pgadmin4/issues/6814>`_ - Remove the 'Close Window' submenu specifically for OSX to prevent unintended closure of the entire application.
|
||||
| `Issue #6842 <https://github.com/pgadmin-org/pgadmin4/issues/6842>`_ - Rename all references of 'Execute query' to 'Execute script' to be more relevant.
|
||||
| `Issue #6887 <https://github.com/pgadmin-org/pgadmin4/issues/6887>`_ - Fixed an issue where syntax error was not highlighting in query tool.
|
||||
| `Issue #6921 <https://github.com/pgadmin-org/pgadmin4/issues/6921>`_ - Fixed an issue where on entering full screen, the option label is not changed to 'Exit Full Screen' in desktop mode.
|
||||
| `Issue #6950 <https://github.com/pgadmin-org/pgadmin4/issues/6950>`_ - Ensure that the Authentication Source in the drop-down of the UserManagement dialog aligns with the entries specified for AUTHENTICATION_SOURCES in the configuration file.
|
||||
| `Issue #6958 <https://github.com/pgadmin-org/pgadmin4/issues/6958>`_ - Reverse engineer serial columns when generating ERD for database/table.
|
||||
| `Issue #6964 <https://github.com/pgadmin-org/pgadmin4/issues/6964>`_ - Fixed an issue where the Schema was not visible in the dropdown for table properties or when creating a new table.
|
||||
| `Issue #6968 <https://github.com/pgadmin-org/pgadmin4/issues/6968>`_ - Fixed an issue where option key was not registering in PSQL tool.
|
||||
| `Issue #6984 <https://github.com/pgadmin-org/pgadmin4/issues/6984>`_ - Fixed an issue where the Vacuum option INDEX_CLEANUP have an incorrect value ('AUTO') for database versions < 14.
|
||||
| `Issue #6989 <https://github.com/pgadmin-org/pgadmin4/issues/6989>`_ - Fixed an issue where the pgAdmin page went blank when clicking the delete button in the User Management dialog.
|
||||
| `Issue #7000 <https://github.com/pgadmin-org/pgadmin4/issues/7000>`_ - Ensure that correct timezone is set for Docker deployments.
|
||||
| `Issue #7011 <https://github.com/pgadmin-org/pgadmin4/issues/7011>`_ - Fixed an issue where all rows and filter rows buttons of object explorer toolbar were disabled for views and other supported nodes.
|
||||
| `Issue #7017 <https://github.com/pgadmin-org/pgadmin4/issues/7017>`_ - Fixed an issue where schema diff tool is not loading preferences on start.
|
||||
@@ -0,0 +1,50 @@
|
||||
***********
|
||||
Version 8.2
|
||||
***********
|
||||
|
||||
Release date: 2024-01-11
|
||||
|
||||
This release contains a number of bug fixes and new features since the release of pgAdmin 4 v8.1.
|
||||
|
||||
Supported Database Servers
|
||||
**************************
|
||||
**PostgreSQL**: 12, 13, 14, 15, and 16
|
||||
|
||||
**EDB Advanced Server**: 12, 13, 14, 15, and 16
|
||||
|
||||
Bundled PostgreSQL Utilities
|
||||
****************************
|
||||
**psql**, **pg_dump**, **pg_dumpall**, **pg_restore**: 16.0
|
||||
|
||||
|
||||
New features
|
||||
************
|
||||
|
||||
| `Issue #2483 <https://github.com/pgadmin-org/pgadmin4/issues/2483>`_ - Administer pgAdmin Users and Preferences Using the Command Line Interface (CLI).
|
||||
| `Issue #5908 <https://github.com/pgadmin-org/pgadmin4/issues/5908>`_ - Allow users to convert View/Edit table into a Query tool to enable editing the SQL generated.
|
||||
| `Issue #6085 <https://github.com/pgadmin-org/pgadmin4/issues/6085>`_ - Added copy server support, allowing the duplication of existing servers with the option to make certain modifications.
|
||||
| `Issue #7016 <https://github.com/pgadmin-org/pgadmin4/issues/7016>`_ - Added keep-alive support for SSH sessions when connecting to a PostgreSQL server via an SSH tunnel.
|
||||
|
||||
Housekeeping
|
||||
************
|
||||
|
||||
| `Issue #6926 <https://github.com/pgadmin-org/pgadmin4/issues/6926>`_ - Ensure that eventlet's subprocess should be used following the resolution of an issue with Python 3.12 by eventlet.
|
||||
|
||||
Bug fixes
|
||||
*********
|
||||
|
||||
| `Issue #6193 <https://github.com/pgadmin-org/pgadmin4/issues/6193>`_ - Fixed an issue where query tool title did not change after "Save As" until any new change is made.
|
||||
| `Issue #6781 <https://github.com/pgadmin-org/pgadmin4/issues/6781>`_ - Fixed an issue where export servers was not adding extension if not specified.
|
||||
| `Issue #6815 <https://github.com/pgadmin-org/pgadmin4/issues/6815>`_ - Fixed an issue where pgAdmin imports servers to the wrong accounts for the external authentication.
|
||||
| `Issue #7002 <https://github.com/pgadmin-org/pgadmin4/issues/7002>`_ - Fixed an issue where an error occurred in the SQL tab when using an extended index(pgroonga).
|
||||
| `Issue #7041 <https://github.com/pgadmin-org/pgadmin4/issues/7041>`_ - Fixed an issue where changes done to a node using edit dialog are not reflecting on the properties tab if the properties tab is active.
|
||||
| `Issue #7059 <https://github.com/pgadmin-org/pgadmin4/issues/7059>`_ - Fixed an issue where DB Restrictions were not visible on the server dialog.
|
||||
| `Issue #7061 <https://github.com/pgadmin-org/pgadmin4/issues/7061>`_ - Ensure that the 'Dbo' schema is displayed as a regular schema rather than a system catalog schema.
|
||||
| `Issue #7062 <https://github.com/pgadmin-org/pgadmin4/issues/7062>`_ - Introduce LDAP configuration parameter LDAP_IGNORE_MALFORMED_SCHEMA to ignore fetching schema from the LDAP server.
|
||||
| `Issue #7064 <https://github.com/pgadmin-org/pgadmin4/issues/7064>`_ - Fixed an error-'amname' when generating ERD for database containing partition tables.
|
||||
| `Issue #7066 <https://github.com/pgadmin-org/pgadmin4/issues/7066>`_ - Fixed an issue where object explorer last tree state was not saving.
|
||||
| `Issue #7070 <https://github.com/pgadmin-org/pgadmin4/issues/7070>`_ - Fixed an issue where pgAgent job schedule dialog is not opening for edit.
|
||||
| `Issue #7078 <https://github.com/pgadmin-org/pgadmin4/issues/7078>`_ - Fixed an issue where user is not able to cancel or terminate active queries from dashboard.
|
||||
| `Issue #7082 <https://github.com/pgadmin-org/pgadmin4/issues/7082>`_ - Fixed browser autocomplete related issues on pgAdmin authentication related pages.
|
||||
| `Issue #7091 <https://github.com/pgadmin-org/pgadmin4/issues/7091>`_ - Fixed an issue where auto commit/rollback setting not persisting across query tool connection change.
|
||||
| `Issue #7104 <https://github.com/pgadmin-org/pgadmin4/issues/7104>`_ - Fixed an issue where Schema Diff not generating difference for missing columns.
|
||||
@@ -0,0 +1,46 @@
|
||||
***********
|
||||
Version 8.3
|
||||
***********
|
||||
|
||||
Release date: 2024-02-09
|
||||
|
||||
This release contains a number of bug fixes and new features since the release of pgAdmin 4 v8.2.
|
||||
|
||||
Supported Database Servers
|
||||
**************************
|
||||
**PostgreSQL**: 12, 13, 14, 15, and 16
|
||||
|
||||
**EDB Advanced Server**: 12, 13, 14, 15, and 16
|
||||
|
||||
Bundled PostgreSQL Utilities
|
||||
****************************
|
||||
**psql**, **pg_dump**, **pg_dumpall**, **pg_restore**: 16.0
|
||||
|
||||
|
||||
New features
|
||||
************
|
||||
|
||||
| `Issue #4419 <https://github.com/pgadmin-org/pgadmin4/issues/4419>`_ - Allow drag-n-drop columns collection tree node as comma separated columns.
|
||||
| `Issue #6380 <https://github.com/pgadmin-org/pgadmin4/issues/6380>`_ - Added support to rename columns in Views.
|
||||
| `Issue #6392 <https://github.com/pgadmin-org/pgadmin4/issues/6392>`_ - Added BYPASSRLS|NOBYPASSRLS option while creating a Role.
|
||||
| `Issue #6450 <https://github.com/pgadmin-org/pgadmin4/issues/6450>`_ - Added support for column storage syntax while creating table.
|
||||
| `Issue #6557 <https://github.com/pgadmin-org/pgadmin4/issues/6557>`_ - Use COOKIE_DEFAULT_PATH or SCRIPT_NAME in session cookie path.
|
||||
| `Issue #6792 <https://github.com/pgadmin-org/pgadmin4/issues/6792>`_ - Added configurable parameter to enable support for PasswordExecCommand in server mode.
|
||||
|
||||
Housekeeping
|
||||
************
|
||||
|
||||
|
||||
Bug fixes
|
||||
*********
|
||||
|
||||
| `Issue #5083 <https://github.com/pgadmin-org/pgadmin4/issues/5083>`_ - Fixed an issue where format sql was messing up operator. Included many other feature changes, more details `here <https://github.com/pgadmin-org/pgadmin4/commit/f7045b58d4d1b98b6a2f035267d2dd01c7235aa6>`_
|
||||
| `Issue #6785 <https://github.com/pgadmin-org/pgadmin4/issues/6785>`_ - Fixed an issue where formatting inserts empty lines in specific case.
|
||||
| `Issue #7053 <https://github.com/pgadmin-org/pgadmin4/issues/7053>`_ - Add support for selecting a schema in the backup database dialog with no tables, mviews, views or foreign tables.
|
||||
| `Issue #7055 <https://github.com/pgadmin-org/pgadmin4/issues/7055>`_ - Fixed a UI border issue on the dependencies tab for columns with icon.
|
||||
| `Issue #7073 <https://github.com/pgadmin-org/pgadmin4/issues/7073>`_ - Fixed an issue where multiple errors were showing if user does not have connect privileges.
|
||||
| `Issue #7085 <https://github.com/pgadmin-org/pgadmin4/issues/7085>`_ - Fixed an issue where group membership information was displayed incorrectly.
|
||||
| `Issue #7113 <https://github.com/pgadmin-org/pgadmin4/issues/7113>`_ - Ensure that the correct SQL is generated when changing the column data type to "char".
|
||||
| `Issue #7153 <https://github.com/pgadmin-org/pgadmin4/issues/7153>`_ - Fixed an issue pgAdmin fails to launch due to inconsistent PATH variable name on windows.
|
||||
| `Issue #7166 <https://github.com/pgadmin-org/pgadmin4/issues/7166>`_ - Fix a backend server error when creating a named restore point.
|
||||
| `Issue #7175 <https://github.com/pgadmin-org/pgadmin4/issues/7175>`_ - Fix wrong default for FORCE_LOWER in the FLASK_GRAVATAR module.
|
||||
@@ -57,15 +57,13 @@ Use the *Privileges* tab to grant privileges to the role.
|
||||
drop roles. The default value is *No*.
|
||||
* Move the *Create databases* switch to the *Yes* position to control whether a
|
||||
role can create databases. The default value is *No*.
|
||||
* The *Update catalog?* switch is disabled until the role is given superuser
|
||||
privileges. Move the *Update catalogs?* switch to the *No* position to control
|
||||
whether a role can update catalogs. The default value is *Yes* when the
|
||||
*Superuser* switch is in the *Yes* position.
|
||||
* Move the *Inherit rights from the parent roles?* switch to the *No* position
|
||||
if a role does not inherit privileges. The default value is *Yes*.
|
||||
* Move the *Can initiate streaming replication and backups?* switch to the *Yes*
|
||||
position to control whether a role can initiate streaming replication or put
|
||||
the system in and out of backup mode. The default value is *No*.
|
||||
* Move the *Bypass RLS?* switch to the *Yes* position to control whether a
|
||||
role can bypasses every row-level security (RLS) policy. The default value is *No*.
|
||||
|
||||
.. image:: images/role_membership.png
|
||||
:alt: Role dialog membership tab
|
||||
|
||||
@@ -103,7 +103,7 @@ In order to configure the Python code, follow these steps:
|
||||
|
||||
.. code-block:: bash
|
||||
|
||||
# python setup.py
|
||||
# python setup.py setup-db
|
||||
|
||||
5. Change the ownership of the configuration database to the user that the web server
|
||||
processes will run as, for example, assuming that the web server runs as user
|
||||
@@ -312,4 +312,4 @@ Additional Information
|
||||
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.
|
||||
*--py-sys-executable* command line option to achieve this.
|
||||
@@ -181,6 +181,10 @@ not be able to connect directly.
|
||||
password for future use. Use
|
||||
:ref:`Clear SSH Tunnel Password <clear_saved_passwords>` to remove the saved
|
||||
password.
|
||||
* Use the *Keep alive* field to specify interval in seconds defining the period
|
||||
in which, if no data was sent over the connection, a ‘keepalive’ packet will
|
||||
be sent (and ignored by the remote host). This can be useful to keep
|
||||
connections alive over a NAT. You can set to 0 for disable keepalive.
|
||||
|
||||
|
||||
Click the *Advanced* tab to continue.
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
|
||||
html{
|
||||
background-color: #fff;
|
||||
|
||||
|
||||
}
|
||||
|
||||
body {
|
||||
@@ -10,6 +10,7 @@ body {
|
||||
font-family: Roboto, Helvetica Neue, -apple-system, BlinkMacSystemFont, Segoe UI, Arial, sans-serif, Apple Color Emoji, Segoe UI Emoji, Segoe UI Symbol, Noto Color Emoji;
|
||||
-webkit-font-smoothing: antialiased;
|
||||
background-color: #fff;
|
||||
height: 100vh;
|
||||
}
|
||||
|
||||
div.body {
|
||||
|
||||
@@ -5,9 +5,9 @@
|
||||
****************
|
||||
|
||||
The pgAdmin toolbar provides shortcut buttons for frequently used features like
|
||||
View Data and the Query Tool which are most frequently used in pgAdmin. This
|
||||
toolbar is visible on the Browser panel. Buttons get enabled/disabled based on
|
||||
the selected browser node.
|
||||
the Query Tool, View/Edit Data, Search Object and the PSQL Tool. This
|
||||
toolbar is visible on the Object explorer panel. Buttons get enabled/disabled based on
|
||||
the selected object node.
|
||||
|
||||
.. image:: /images/toolbar.png
|
||||
:alt: pgAdmin Toolbar
|
||||
|
||||
@@ -4,8 +4,8 @@
|
||||
`Tree Control`:index:
|
||||
*********************
|
||||
|
||||
The left pane of the main window displays a tree control (the *pgAdmin* tree
|
||||
control) that provides access to the objects that reside on a server.
|
||||
The left pane of the main window displays a tree control (Object explorer)
|
||||
that provides access to the objects that reside on a server.
|
||||
|
||||
.. image:: /images/main_left_pane.png
|
||||
:alt: object explorer panel
|
||||
|
||||
@@ -75,3 +75,142 @@ users, but otherwise have the same capabilities as those with the *User* role.
|
||||
* Click the *Help* button (?) to access online help.
|
||||
* Click the *Close* button to save work. You will be prompted to return to the
|
||||
dialog if your selections cannot be saved.
|
||||
|
||||
|
||||
Using 'setup.py' command line script
|
||||
####################################
|
||||
|
||||
.. note:: To manage users using ``setup.py`` script, you must use
|
||||
the Python interpreter that is normally used to run pgAdmin to ensure
|
||||
that the required Python packages are available. In most packages, this
|
||||
can be found in the Python Virtual Environment that can be found in the
|
||||
installation directory. When using platform-native packages, the system
|
||||
installation of Python may be the one used by pgAdmin.
|
||||
|
||||
When using PIP wheel package to install pgadmin, all the commands can be used
|
||||
without Python interpreter.
|
||||
|
||||
Some of the examples:
|
||||
pgadmin4-cli add-user user1@gmail.com password --role 1
|
||||
pgadmin4-cli get-prefs
|
||||
|
||||
Manage Users
|
||||
*************
|
||||
|
||||
Add User
|
||||
*********
|
||||
|
||||
To add user, invoke ``setup.py`` with ``add-user`` command line option, followed by
|
||||
email and password. role and active will be optional fields.
|
||||
|
||||
.. code-block:: bash
|
||||
|
||||
/path/to/python /path/to/setup.py add-user user1@gmail.com password
|
||||
|
||||
# to specify a role, admin and non-admin users:
|
||||
|
||||
/path/to/python /path/to/setup.py add-user user1@gmail.com password --admin
|
||||
/path/to/python /path/to/setup.py add-user user1@gmail.com password --nonadmin
|
||||
|
||||
# to specify user's status
|
||||
|
||||
/path/to/python /path/to/setup.py add-user user1@gmail.com password --active
|
||||
/path/to/python /path/to/setup.py add-user user1@gmail.com password --inactive
|
||||
|
||||
Add External User
|
||||
*****************
|
||||
|
||||
To add external authentication user, invoke ``setup.py`` with ``add-external-user`` command line option,
|
||||
followed by email, password and authentication source. email, role and status will be optional fields.
|
||||
|
||||
.. code-block:: bash
|
||||
|
||||
/path/to/python /path/to/setup.py add-external-user user1@gmail.com ldap
|
||||
|
||||
# to specify an email:
|
||||
|
||||
/path/to/python /path/to/setup.py add-external-user ldapuser ldap --email user1@gmail.com
|
||||
|
||||
# to specify a role, admin and non-admin user:
|
||||
|
||||
/path/to/python /path/to/setup.py add-external-user ldapuser ldap --admin
|
||||
/path/to/python /path/to/setup.py add-external-user ldapuser ldap --nonadmin
|
||||
|
||||
# to specify user's status
|
||||
|
||||
/path/to/python /path/to/setup.py add-external-user user1@gmail.com ldap --active
|
||||
/path/to/python /path/to/setup.py add-external-user user1@gmail.com ldap --inactive
|
||||
|
||||
Update User
|
||||
***********
|
||||
|
||||
To update user, invoke ``setup.py`` with ``update-user`` command line option, followed by
|
||||
email address. password, role and active are updatable fields.
|
||||
|
||||
.. code-block:: bash
|
||||
|
||||
/path/to/python /path/to/setup.py update-user user1@gmail.com --password new-password
|
||||
|
||||
# to specify a role, admin and non-admin user:
|
||||
|
||||
/path/to/python /path/to/setup.py update-user user1@gmail.com password --role --admin
|
||||
/path/to/python /path/to/setup.py update-user user1@gmail.com password --role --nonadmin
|
||||
|
||||
# to specify user's status
|
||||
|
||||
/path/to/python /path/to/setup.py update-user user1@gmail.com password --active
|
||||
/path/to/python /path/to/setup.py update-user user1@gmail.com password --inactive
|
||||
|
||||
Update External User
|
||||
********************
|
||||
|
||||
To update the external user, invoke ``setup.py`` with ``update-external-user`` command line option,
|
||||
followed by username and auth source. email, password, role and active are updatable fields.
|
||||
|
||||
.. code-block:: bash
|
||||
|
||||
# to change email address:
|
||||
|
||||
/path/to/python /path/to/setup.py update-external-user ldap ldapuser --email newemail@gmail.com
|
||||
|
||||
# to specify a role, admin and non-admin user:
|
||||
|
||||
/path/to/python /path/to/setup.py update-user user1@gmail.com password --role --admin
|
||||
/path/to/python /path/to/setup.py update-user user1@gmail.com password --role --nonadmin
|
||||
|
||||
# to change user's status
|
||||
|
||||
/path/to/python /path/to/setup.py update-user ldap ldapuser --active
|
||||
/path/to/python /path/to/setup.py update-user ldap ldapuser --inactive
|
||||
|
||||
Delete User
|
||||
***********
|
||||
|
||||
To delete the user, invoke ``setup.py`` with ``delete-user`` command line option, followed by
|
||||
username and auth_source. For Internal users, email adress will be used instead of username.
|
||||
|
||||
.. code-block:: bash
|
||||
|
||||
/path/to/python /path/to/setup.py delete-user user1@gmail.com --auth-source internal
|
||||
/path/to/python /path/to/setup.py delete-user ldapuser --auth-source ldap
|
||||
|
||||
|
||||
Get User
|
||||
********
|
||||
|
||||
To get the user details, invoke ``setup.py`` with ``get-users`` command line option, followed by
|
||||
username/email address.
|
||||
|
||||
.. code-block:: bash
|
||||
|
||||
# to list all the users:
|
||||
/path/to/python /path/to/setup.py get-users
|
||||
|
||||
# to get the user's details:
|
||||
/path/to/python /path/to/setup.py get-users --username user1@gmail.com
|
||||
|
||||
|
||||
Output
|
||||
******
|
||||
|
||||
Each command output can be seen in the json format too by adding --json command line option.
|
||||
@@ -70,9 +70,9 @@ if [ ! -f /var/lib/pgadmin/pgadmin4.db ]; then
|
||||
# When running in Desktop mode, no user is created
|
||||
# so we have to import servers anonymously
|
||||
if [ "${PGADMIN_CONFIG_SERVER_MODE}" = "False" ]; then
|
||||
/venv/bin/python3 /pgadmin4/setup.py --load-servers "${PGADMIN_SERVER_JSON_FILE}"
|
||||
/venv/bin/python3 /pgadmin4/setup.py load-servers "${PGADMIN_SERVER_JSON_FILE}"
|
||||
else
|
||||
/venv/bin/python3 /pgadmin4/setup.py --load-servers "${PGADMIN_SERVER_JSON_FILE}" --user "${PGADMIN_DEFAULT_EMAIL}"
|
||||
/venv/bin/python3 /pgadmin4/setup.py load-servers "${PGADMIN_SERVER_JSON_FILE}" --user "${PGADMIN_DEFAULT_EMAIL}"
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
|
||||
@@ -68,6 +68,7 @@ _create_python_virtualenv() {
|
||||
|
||||
# Make sure we have the wheel package present, as well as the latest pip
|
||||
pip3 install --upgrade pip
|
||||
pip3 install setuptools
|
||||
pip3 install wheel
|
||||
|
||||
# Install the requirements
|
||||
@@ -86,8 +87,7 @@ _create_python_virtualenv() {
|
||||
|
||||
# Figure out some paths for use when completing the venv
|
||||
# Use "python3" here as we want the venv path
|
||||
PYMODULES_PATH=$(python3 -c "from distutils.sysconfig import get_python_lib; print(get_python_lib())")
|
||||
DIR_PYMODULES_PATH=$(dirname "${PYMODULES_PATH}")
|
||||
DIR_PYMODULES_PATH=$(python3 -c "from sysconfig import get_path; print(get_path('platstdlib'))")
|
||||
|
||||
# Use {SYSTEM_PYTHON_PATH} here as we want the system path
|
||||
if [ "$1" == "debian" ]; then
|
||||
@@ -224,7 +224,7 @@ _copy_code() {
|
||||
cp "${SOURCEDIR}/pkg/linux/config_distro.py" "${SERVERROOT}/usr/${APP_NAME}/web/"
|
||||
cd "${SERVERROOT}/usr/${APP_NAME}/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 jest.config.js babel.* package.json 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
|
||||
|
||||
@@ -72,7 +72,7 @@ fi
|
||||
|
||||
# Run setup script first:
|
||||
echo "Creating configuration database..."
|
||||
if ! /usr/pgadmin4/venv/bin/python3 /usr/pgadmin4/web/setup.py;
|
||||
if ! /usr/pgadmin4/venv/bin/python3 /usr/pgadmin4/web/setup.py setup-db;
|
||||
then
|
||||
echo "Error setting up server mode. Please examine the output above."
|
||||
exit 1
|
||||
|
||||
@@ -266,8 +266,8 @@ _complete_bundle() {
|
||||
sed -i '' "s/%APPVER%/${APP_LONG_VERSION}/g" "${BUNDLE_DIR}/Contents/Info.plist"
|
||||
sed -i '' "s/%APPID%/org.pgadmin.pgadmin4/g" "${BUNDLE_DIR}/Contents/Info.plist"
|
||||
for FILE in "${BUNDLE_DIR}"/Contents/Resources/*.lproj/InfoPlist.strings; do
|
||||
sed -i '' 's/CFBundleGetInfoString =.*/CFBundleGetInfoString = "Copyright (C) 2013 - 2023, The pgAdmin Development Team";/g' "${FILE}"
|
||||
sed -i '' 's/NSHumanReadableCopyright =.*/NSHumanReadableCopyright = "Copyright (C) 2013 - 2023, The pgAdmin Development Team";/g' "${FILE}"
|
||||
sed -i '' 's/CFBundleGetInfoString =.*/CFBundleGetInfoString = "Copyright (C) 2013 - 2024, The pgAdmin Development Team";/g' "${FILE}"
|
||||
sed -i '' 's/NSHumanReadableCopyright =.*/NSHumanReadableCopyright = "Copyright (C) 2013 - 2024, The pgAdmin Development Team";/g' "${FILE}"
|
||||
echo CFBundleDisplayName = \""${APP_NAME}"\"\; >> "${FILE}"
|
||||
done
|
||||
|
||||
@@ -298,7 +298,7 @@ _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 .yarn* yarn* .editorconfig .eslint* node_modules/ regression/ tools/ pgadmin/static/js/generated/.cache
|
||||
rm -rf jest.config.js babel.* 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
|
||||
@@ -432,59 +432,32 @@ _notarize_pkg() {
|
||||
return
|
||||
fi
|
||||
|
||||
# Notarize the package. Try three times, to allow for upload issues
|
||||
for i in {1..3}; do
|
||||
echo "Uploading DMG for notarisation (attempt ${i} of 3)..."
|
||||
STATUS=$(xcrun altool --notarize-app \
|
||||
-f "${DMG_NAME}" \
|
||||
--asc-provider "${DEVELOPER_NAME}" \
|
||||
--primary-bundle-id org.pgadmin.pgadmin4 \
|
||||
-u "${DEVELOPER_USER}" \
|
||||
-p "${DEVELOPER_ASP}" 2>&1)
|
||||
RETVAL=$?
|
||||
echo "Uploading DMG for Notarization ..."
|
||||
STATUS=$(xcrun notarytool submit "${DMG_NAME}" \
|
||||
--team-id "${DEVELOPER_TEAM_ID}" \
|
||||
--apple-id "${DEVELOPER_USER}" \
|
||||
--password "${DEVELOPER_ASP}" 2>&1)
|
||||
|
||||
if [ ${RETVAL} != 0 ]; then
|
||||
echo "Attempt ${i} failure: ${STATUS}"
|
||||
else
|
||||
# Success!
|
||||
break;
|
||||
fi
|
||||
done
|
||||
# Get the submission ID
|
||||
SUBMISSION_ID=$(echo "${STATUS}" | awk -F ': ' '/id:/ { print $2; exit; }')
|
||||
echo "Notarization submission ID: ${SUBMISSION_ID}"
|
||||
|
||||
# print error if above command fails
|
||||
if [ ${RETVAL} != 0 ]; then
|
||||
echo "Notarization failed."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Get the request ID
|
||||
REQUEST_UUID=$(echo "${STATUS}" | awk '/RequestUUID/ { print $NF; }')
|
||||
echo "Notarization request ID: ${REQUEST_UUID}"
|
||||
|
||||
# Now we need to wait for the results. Try 60 times.
|
||||
for i in {1..60}; do
|
||||
echo "Waiting 30 seconds..."
|
||||
sleep 30
|
||||
|
||||
echo "Requesting notarisation result (attempt ${i} of 60)..."
|
||||
REQUEST_STATUS=$(xcrun altool --notarization-info "${REQUEST_UUID}" \
|
||||
--username "${DEVELOPER_USER}" \
|
||||
--password "${DEVELOPER_ASP}" 2>&1 | \
|
||||
awk -F ': ' '/Status:/ { print $2; }' )
|
||||
|
||||
if [[ "${REQUEST_STATUS}" == "success" ]]; then
|
||||
break
|
||||
fi
|
||||
done
|
||||
|
||||
# Print status information
|
||||
xcrun altool --notarization-info "${REQUEST_UUID}" \
|
||||
--username "${DEVELOPER_USER}" \
|
||||
echo "Waiting for Notarization to be completed ..."
|
||||
xcrun notarytool wait "${SUBMISSION_ID}" \
|
||||
--team-id "${DEVELOPER_TEAM_ID}" \
|
||||
--apple-id "${DEVELOPER_USER}" \
|
||||
--password "${DEVELOPER_ASP}"
|
||||
|
||||
if [[ "${REQUEST_STATUS}" != "success" ]]; then
|
||||
echo "Notarization failed."
|
||||
exit 1
|
||||
# Print status information
|
||||
REQUEST_STATUS=$(xcrun notarytool info "${SUBMISSION_ID}" \
|
||||
--team-id "${DEVELOPER_TEAM_ID}" \
|
||||
--apple-id "${DEVELOPER_USER}" \
|
||||
--password "${DEVELOPER_ASP}" 2>&1 | \
|
||||
awk -F ': ' '/status:/ { print $2; }')
|
||||
|
||||
if [[ "${REQUEST_STATUS}" != "Accepted" ]]; then
|
||||
echo "Notarization failed."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Staple the notarization
|
||||
|
||||
@@ -10,7 +10,7 @@
|
||||
\fs22 \
|
||||
\
|
||||
|
||||
\f1\i Copyright (C) 2013 - 2023, The pgAdmin Development Team
|
||||
\f1\i Copyright (C) 2013 - 2024, The pgAdmin Development Team
|
||||
\f0\i0 \
|
||||
\
|
||||
Permission to use, copy, modify, and distribute this software and its documentation for any purpose, without fee, and without a written agreement is hereby granted, provided that the above copyright notice and this paragraph and the following two paragraphs appear in all copies.\
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
# In order to enable notarization of the Mac Appbundle, copy this file to
|
||||
# notarization.conf, and edit the values below to reflect your Apple
|
||||
# Developer User ID, app-specific password and Provider Shortname.
|
||||
# Developer User ID, app-specific password and Team ID.
|
||||
#
|
||||
# You can use the following command to see the available shortnames for your
|
||||
# Apple Developer ID (substituting the appropriate username/password):
|
||||
@@ -9,4 +9,4 @@
|
||||
|
||||
DEVELOPER_USER=user@example.com
|
||||
DEVELOPER_ASP=1234-abcd-5678-efgh
|
||||
DEVELOPER_NAME=MyCompany
|
||||
DEVELOPER_TEAM_ID=MyTeamID
|
||||
@@ -4,7 +4,7 @@
|
||||
#
|
||||
# pgAdmin 4 - PostgreSQL Tools
|
||||
#
|
||||
# Copyright (C) 2013 - 2023, The pgAdmin Development Team
|
||||
# Copyright (C) 2013 - 2024, The pgAdmin Development Team
|
||||
# This software is released under the PostgreSQL Licence
|
||||
#
|
||||
#########################################################################
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
#
|
||||
# pgAdmin 4 - PostgreSQL Tools
|
||||
#
|
||||
# Copyright (C) 2013 - 2023, The pgAdmin Development Team
|
||||
# Copyright (C) 2013 - 2024, The pgAdmin Development Team
|
||||
# This software is released under the PostgreSQL Licence
|
||||
#
|
||||
##########################################################################
|
||||
@@ -100,7 +100,8 @@ setup(
|
||||
},
|
||||
|
||||
entry_points={
|
||||
'console_scripts': ['pgadmin4=pgadmin4.pgAdmin4:main'],
|
||||
'console_scripts': ['pgadmin4=pgadmin4.pgAdmin4:main',
|
||||
'pgadmin4-cli=pgadmin4.setup:main'],
|
||||
},
|
||||
|
||||
)
|
||||
@@ -4,7 +4,7 @@
|
||||
#
|
||||
# pgAdmin 4 - PostgreSQL Tools
|
||||
#
|
||||
# Copyright (C) 2013 - 2023, The pgAdmin Development Team
|
||||
# Copyright (C) 2013 - 2024, The pgAdmin Development Team
|
||||
# This software is released under the PostgreSQL Licence
|
||||
#
|
||||
#########################################################################
|
||||
|
||||
@@ -20,7 +20,7 @@ AppPublisher={#MyAppPublisher}
|
||||
AppPublisherURL={#MyAppURL}
|
||||
AppSupportURL={#MyAppURL}
|
||||
AppUpdatesURL={#MyAppURL}
|
||||
DefaultDirName={autopf}\{#MyAppName}\{#MyAppVersion}
|
||||
DefaultDirName={autopf}\{#MyAppName}
|
||||
DefaultGroupName={#MyAppName}
|
||||
DisableWelcomePage=no
|
||||
DisableProgramGroupPage=auto
|
||||
|
||||
@@ -8,20 +8,26 @@
|
||||
#
|
||||
###############################################################################
|
||||
|
||||
Flask==2.2.*
|
||||
Flask==2.3.*; python_version > '3.7'
|
||||
Flask==2.2.*; python_version <= '3.7'
|
||||
Flask-Gravatar==0.*
|
||||
Flask-Login==0.*
|
||||
Flask-Mail==0.*
|
||||
Flask-Migrate==4.*
|
||||
greenlet==1.1.2; python_version <= '3.10'
|
||||
Flask-SQLAlchemy==3.0.*
|
||||
Flask-WTF==1.1.1
|
||||
Flask-SQLAlchemy==3.1.*; python_version > '3.7'
|
||||
Flask-SQLAlchemy==3.0.*; python_version <= '3.7'
|
||||
Flask-WTF==1.2.*; python_version > '3.7'
|
||||
Flask-WTF==1.1.1; python_version <= '3.7'
|
||||
Flask-Compress==1.*
|
||||
Flask-Paranoid==0.*
|
||||
Flask-Babel==3.1.*
|
||||
Flask-Security-Too==5.1.*
|
||||
Flask-Babel==4.0.*; python_version > '3.7'
|
||||
Flask-Babel==3.1.*; python_version <= '3.7'
|
||||
Flask-Security-Too==5.2.*; python_version > '3.7'
|
||||
Flask-Security-Too==5.1.*; python_version <= '3.7'
|
||||
Flask-SocketIO==5.3.*
|
||||
WTForms==3.0.*
|
||||
WTForms==3.1.*; python_version > '3.7'
|
||||
WTForms==3.0.*; python_version <= '3.7'
|
||||
passlib==1.*
|
||||
pytz==2023.*
|
||||
speaklater3==1.*
|
||||
@@ -31,26 +37,28 @@ psycopg[c]==3.1.12
|
||||
python-dateutil==2.*
|
||||
SQLAlchemy==2.*
|
||||
bcrypt==4.0.*
|
||||
# Pinned for #6718
|
||||
cryptography==40.0.*
|
||||
cryptography==41.0.*
|
||||
sshtunnel==0.*
|
||||
ldap3==2.*
|
||||
gssapi==1.8.*
|
||||
eventlet==0.33.3
|
||||
eventlet==0.34.2
|
||||
httpagentparser==1.9.*
|
||||
user-agents==2.2.0
|
||||
pywinpty==2.0.*; sys_platform=="win32"
|
||||
Authlib==1.2.*
|
||||
pyotp==2.*
|
||||
qrcode==7.*
|
||||
boto3==1.28.*
|
||||
botocore==1.31.*
|
||||
boto3==1.33.*
|
||||
urllib3==1.26.*
|
||||
azure-mgmt-rdbms==10.1.0
|
||||
azure-mgmt-resource==23.0.1
|
||||
azure-mgmt-subscription==3.1.1
|
||||
azure-identity==1.13.0
|
||||
azure-identity==1.15.0
|
||||
google-api-python-client==2.*
|
||||
google-auth-oauthlib==1.0.0
|
||||
Werkzeug==2.2.3
|
||||
keyring==23.*
|
||||
google-auth-oauthlib==1.1.0
|
||||
keyring==24.*; python_version > '3.7'
|
||||
keyring==23.*; python_version <= '3.7'
|
||||
Werkzeug==2.3.*; python_version > '3.7'
|
||||
Werkzeug==2.2.3; python_version <= '3.7'
|
||||
typer[all]==0.9.*
|
||||
setuptools==69.*; python_version >= '3.12'
|
||||
@@ -2,7 +2,7 @@
|
||||
//
|
||||
// pgAdmin 4 - PostgreSQL Tools
|
||||
//
|
||||
// Copyright (C) 2013 - 2023, The pgAdmin Development Team
|
||||
// Copyright (C) 2013 - 2024, The pgAdmin Development Team
|
||||
// This software is released under the PostgreSQL Licence
|
||||
//
|
||||
//////////////////////////////////////////////////////////////
|
||||
@@ -12,7 +12,6 @@ module.exports = {
|
||||
'browser': true,
|
||||
'es6': true,
|
||||
'amd': true,
|
||||
'jasmine': true,
|
||||
},
|
||||
'extends': [
|
||||
'eslint:recommended',
|
||||
|
||||
@@ -0,0 +1,7 @@
|
||||
checksumBehavior: update
|
||||
|
||||
logFilters:
|
||||
- code: YN0013
|
||||
level: discard
|
||||
|
||||
nodeLinker: node-modules
|
||||
@@ -2,7 +2,7 @@
|
||||
//
|
||||
// pgAdmin 4 - PostgreSQL Tools
|
||||
//
|
||||
// Copyright (C) 2013 - 2023, The pgAdmin Development Team
|
||||
// Copyright (C) 2013 - 2024, The pgAdmin Development Team
|
||||
// This software is released under the PostgreSQL Licence
|
||||
//
|
||||
//////////////////////////////////////////////////////////////
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
//
|
||||
// pgAdmin 4 - PostgreSQL Tools
|
||||
//
|
||||
// Copyright (C) 2013 - 2023, The pgAdmin Development Team
|
||||
// Copyright (C) 2013 - 2024, The pgAdmin Development Team
|
||||
// This software is released under the PostgreSQL Licence
|
||||
//
|
||||
//////////////////////////////////////////////////////////////
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
//
|
||||
// pgAdmin 4 - PostgreSQL Tools
|
||||
//
|
||||
// Copyright (C) 2013 - 2023, The pgAdmin Development Team
|
||||
// Copyright (C) 2013 - 2024, The pgAdmin Development Team
|
||||
// This software is released under the PostgreSQL Licence
|
||||
//
|
||||
//////////////////////////////////////////////////////////////
|
||||
@@ -80,7 +80,7 @@ function startDesktopMode() {
|
||||
process.env[key] = updated_path;
|
||||
}
|
||||
|
||||
if (platform() === 'win32' && (key === 'PATH' || key == 'Path')) {
|
||||
if (platform() === 'win32' && key.toUpperCase() === 'PATH') {
|
||||
let _libpq_path = path.join(path.dirname(path.dirname(path.resolve(pgadminFile))), 'runtime');
|
||||
process.env[key] = _libpq_path + ';' + process.env[key];
|
||||
}
|
||||
@@ -264,7 +264,10 @@ function launchPgAdminWindow() {
|
||||
// Create Mac Builtin Menu
|
||||
if (platform() === 'darwin') {
|
||||
nativeMenu.createMacBuiltin('pgAdmin 4');
|
||||
nativeMenu?.items[0].submenu.removeAt(0)
|
||||
// Remove 'About pgAdmin 4' submenu
|
||||
nativeMenu?.items[0].submenu.removeAt(0);
|
||||
// Remove 'Close Window' submenu
|
||||
nativeMenu?.items[2].submenu.removeAt(1);
|
||||
pgAdminMainScreen.menu = nativeMenu;
|
||||
}
|
||||
|
||||
@@ -459,18 +462,19 @@ function getRuntimeMenu() {
|
||||
},
|
||||
}));
|
||||
subMenus.append(new nw.MenuItem({ type: 'separator' }));
|
||||
subMenus.append(new gui.MenuItem({
|
||||
label: runtimeSubMenus['enter_full_screen'].label,
|
||||
enabled: runtimeSubMenus['enter_full_screen'].enable,
|
||||
priority: runtimeSubMenus['enter_full_screen'].priority,
|
||||
type: 'normal',
|
||||
checked: false,
|
||||
key: runtimeSubMenus['enter_full_screen'].key,
|
||||
modifiers: runtimeSubMenus['enter_full_screen'].modifiers,
|
||||
click: function () {
|
||||
misc.toggleFullScreen();
|
||||
},
|
||||
}));
|
||||
subMenus.append(new gui.MenuItem({
|
||||
label: pgAdminMainScreen?.isFullscreen ? runtimeSubMenus['exit_full_screen'].label : runtimeSubMenus['enter_full_screen'].label,
|
||||
enabled: runtimeSubMenus['enter_full_screen'].enable,
|
||||
priority: runtimeSubMenus['enter_full_screen'].priority,
|
||||
type: 'normal',
|
||||
checked: false,
|
||||
key: runtimeSubMenus['enter_full_screen'].key,
|
||||
modifiers: runtimeSubMenus['enter_full_screen'].modifiers,
|
||||
click: function () {
|
||||
this.label = !pgAdminMainScreen?.isFullscreen ? runtimeSubMenus['exit_full_screen'].label : runtimeSubMenus['enter_full_screen'].label;
|
||||
misc.toggleFullScreen();
|
||||
},
|
||||
}));
|
||||
subMenus.append(new gui.MenuItem({
|
||||
label: runtimeSubMenus['actual_size'].label,
|
||||
enabled: runtimeSubMenus['actual_size'].enable,
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
//
|
||||
// pgAdmin 4 - PostgreSQL Tools
|
||||
//
|
||||
// Copyright (C) 2013 - 2023, The pgAdmin Development Team
|
||||
// Copyright (C) 2013 - 2024, The pgAdmin Development Team
|
||||
// This software is released under the PostgreSQL Licence
|
||||
//
|
||||
//////////////////////////////////////////////////////////////
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
//
|
||||
// pgAdmin 4 - PostgreSQL Tools
|
||||
//
|
||||
// Copyright (C) 2013 - 2023, The pgAdmin Development Team
|
||||
// Copyright (C) 2013 - 2024, The pgAdmin Development Team
|
||||
// This software is released under the PostgreSQL Licence
|
||||
//
|
||||
//////////////////////////////////////////////////////////////
|
||||
|
||||
@@ -24,9 +24,9 @@ __metadata:
|
||||
linkType: hard
|
||||
|
||||
"@eslint-community/regexpp@npm:^4.6.1":
|
||||
version: 4.6.2
|
||||
resolution: "@eslint-community/regexpp@npm:4.6.2"
|
||||
checksum: a3c341377b46b54fa228f455771b901d1a2717f95d47dcdf40199df30abc000ba020f747f114f08560d119e979d882a94cf46cfc51744544d54b00319c0f2724
|
||||
version: 4.10.0
|
||||
resolution: "@eslint-community/regexpp@npm:4.10.0"
|
||||
checksum: 2a6e345429ea8382aaaf3a61f865cae16ed44d31ca917910033c02dc00d505d939f10b81e079fa14d43b51499c640138e153b7e40743c4c094d9df97d4e56f7b
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
@@ -47,21 +47,21 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@eslint/js@npm:8.50.0":
|
||||
version: 8.50.0
|
||||
resolution: "@eslint/js@npm:8.50.0"
|
||||
checksum: 302478f2acaaa7228729ec6a04f56641590185e1d8cd1c836a6db8a6b8009f80a57349341be9fbb9aa1721a7a569d1be3ffc598a33300d22816f11832095386c
|
||||
"@eslint/js@npm:8.52.0":
|
||||
version: 8.52.0
|
||||
resolution: "@eslint/js@npm:8.52.0"
|
||||
checksum: 490893b8091a66415f4ac98b963d23eb287264ea3bd6af7ec788f0570705cf64fd6ab84b717785980f55e39d08ff5c7fde6d8e4391ccb507169370ce3a6d091a
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@humanwhocodes/config-array@npm:^0.11.11":
|
||||
version: 0.11.11
|
||||
resolution: "@humanwhocodes/config-array@npm:0.11.11"
|
||||
"@humanwhocodes/config-array@npm:^0.11.13":
|
||||
version: 0.11.13
|
||||
resolution: "@humanwhocodes/config-array@npm:0.11.13"
|
||||
dependencies:
|
||||
"@humanwhocodes/object-schema": ^1.2.1
|
||||
"@humanwhocodes/object-schema": ^2.0.1
|
||||
debug: ^4.1.1
|
||||
minimatch: ^3.0.5
|
||||
checksum: db84507375ab77b8ffdd24f498a5b49ad6b64391d30dd2ac56885501d03964d29637e05b1ed5aefa09d57ac667e28028bc22d2da872bfcd619652fbdb5f4ca19
|
||||
checksum: f8ea57b0d7ed7f2d64cd3944654976829d9da91c04d9c860e18804729a33f7681f78166ef4c761850b8c324d362f7d53f14c5c44907a6b38b32c703ff85e4805
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
@@ -72,10 +72,10 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@humanwhocodes/object-schema@npm:^1.2.1":
|
||||
version: 1.2.1
|
||||
resolution: "@humanwhocodes/object-schema@npm:1.2.1"
|
||||
checksum: a824a1ec31591231e4bad5787641f59e9633827d0a2eaae131a288d33c9ef0290bd16fda8da6f7c0fcb014147865d12118df10db57f27f41e20da92369fcb3f1
|
||||
"@humanwhocodes/object-schema@npm:^2.0.1":
|
||||
version: 2.0.1
|
||||
resolution: "@humanwhocodes/object-schema@npm:2.0.1"
|
||||
checksum: 24929487b1ed48795d2f08346a0116cc5ee4634848bce64161fb947109352c562310fd159fc64dda0e8b853307f5794605191a9547f7341158559ca3c8262a45
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
@@ -116,18 +116,27 @@ __metadata:
|
||||
linkType: hard
|
||||
|
||||
"@types/node@npm:*":
|
||||
version: 20.5.0
|
||||
resolution: "@types/node@npm:20.5.0"
|
||||
checksum: 659bc5fc93b5c02bd88ca4bfae4f6b9dc307d45884d1dd9d69df85819a9943cdc00cd3c87eec3048866df6a67f52297f74d170e47a44f61edb3e8f770d94e85e
|
||||
version: 20.8.10
|
||||
resolution: "@types/node@npm:20.8.10"
|
||||
dependencies:
|
||||
undici-types: ~5.26.4
|
||||
checksum: 7c61190e43e8074a1b571e52ff14c880bc67a0447f2fe5ed0e1a023eb8a23d5f815658edb98890f7578afe0f090433c4a635c7c87311762544e20dd78723e515
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@types/responselike@npm:^1.0.0":
|
||||
version: 1.0.0
|
||||
resolution: "@types/responselike@npm:1.0.0"
|
||||
version: 1.0.2
|
||||
resolution: "@types/responselike@npm:1.0.2"
|
||||
dependencies:
|
||||
"@types/node": "*"
|
||||
checksum: e99fc7cc6265407987b30deda54c1c24bb1478803faf6037557a774b2f034c5b097ffd65847daa87e82a61a250d919f35c3588654b0fdaa816906650f596d1b0
|
||||
checksum: ff1767e947eb7d49849e4566040453efcd894888e85b398f7f8cb731552f303f26aceda573b680a142b77ec5fb6c79535d9c6d047d9f936c386dbf3863d2ae17
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@ungap/structured-clone@npm:^1.2.0":
|
||||
version: 1.2.0
|
||||
resolution: "@ungap/structured-clone@npm:1.2.0"
|
||||
checksum: 4f656b7b4672f2ce6e272f2427d8b0824ed11546a601d8d5412b9d7704e83db38a8d9f402ecdf2b9063fc164af842ad0ec4a55819f621ed7e7ea4d1efcc74524
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
@@ -141,11 +150,11 @@ __metadata:
|
||||
linkType: hard
|
||||
|
||||
"acorn@npm:^8.9.0":
|
||||
version: 8.10.0
|
||||
resolution: "acorn@npm:8.10.0"
|
||||
version: 8.11.2
|
||||
resolution: "acorn@npm:8.11.2"
|
||||
bin:
|
||||
acorn: bin/acorn
|
||||
checksum: 538ba38af0cc9e5ef983aee196c4b8b4d87c0c94532334fa7e065b2c8a1f85863467bb774231aae91613fcda5e68740c15d97b1967ae3394d20faddddd8af61d
|
||||
checksum: 818450408684da89423e3daae24e4dc9b68692db8ab49ea4569c7c5abb7a3f23669438bf129cc81dfdada95e1c9b944ee1bfca2c57a05a4dc73834a612fbf6a7
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
@@ -206,13 +215,13 @@ __metadata:
|
||||
linkType: hard
|
||||
|
||||
"axios@npm:^1.5.1":
|
||||
version: 1.5.1
|
||||
resolution: "axios@npm:1.5.1"
|
||||
version: 1.6.0
|
||||
resolution: "axios@npm:1.6.0"
|
||||
dependencies:
|
||||
follow-redirects: ^1.15.0
|
||||
form-data: ^4.0.0
|
||||
proxy-from-env: ^1.1.0
|
||||
checksum: 4444f06601f4ede154183767863d2b8e472b4a6bfc5253597ed6d21899887e1fd0ee2b3de792ac4f8459fe2e359d2aa07c216e45fd8b9e4e0688a6ebf48a5a8d
|
||||
checksum: c7c9f2ae9e0b9bad7d6f9a4dff030930b12ee667dedf54c3c776714f91681feb743c509ac0796ae5c01e12c4ab4a2bee74905068dd200fbc1ab86f9814578fb0
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
@@ -619,16 +628,17 @@ __metadata:
|
||||
linkType: hard
|
||||
|
||||
"eslint@npm:^8.50.0":
|
||||
version: 8.50.0
|
||||
resolution: "eslint@npm:8.50.0"
|
||||
version: 8.52.0
|
||||
resolution: "eslint@npm:8.52.0"
|
||||
dependencies:
|
||||
"@eslint-community/eslint-utils": ^4.2.0
|
||||
"@eslint-community/regexpp": ^4.6.1
|
||||
"@eslint/eslintrc": ^2.1.2
|
||||
"@eslint/js": 8.50.0
|
||||
"@humanwhocodes/config-array": ^0.11.11
|
||||
"@eslint/js": 8.52.0
|
||||
"@humanwhocodes/config-array": ^0.11.13
|
||||
"@humanwhocodes/module-importer": ^1.0.1
|
||||
"@nodelib/fs.walk": ^1.2.8
|
||||
"@ungap/structured-clone": ^1.2.0
|
||||
ajv: ^6.12.4
|
||||
chalk: ^4.0.0
|
||||
cross-spawn: ^7.0.2
|
||||
@@ -661,7 +671,7 @@ __metadata:
|
||||
text-table: ^0.2.0
|
||||
bin:
|
||||
eslint: bin/eslint.js
|
||||
checksum: 9ebfe5615dc84700000d218e32ddfdcfc227ca600f65f18e5541ec34f8902a00356a9a8804d9468fd6c8637a5ef6a3897291dad91ba6579d5b32ffeae5e31768
|
||||
checksum: fd22d1e9bd7090e31b00cbc7a3b98f3b76020a4c4641f987ae7d0c8f52e1b88c3b268bdfdabac2e1a93513e5d11339b718ff45cbff48a44c35d7e52feba510ed
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
@@ -813,29 +823,30 @@ __metadata:
|
||||
linkType: hard
|
||||
|
||||
"flat-cache@npm:^3.0.4":
|
||||
version: 3.0.4
|
||||
resolution: "flat-cache@npm:3.0.4"
|
||||
version: 3.1.1
|
||||
resolution: "flat-cache@npm:3.1.1"
|
||||
dependencies:
|
||||
flatted: ^3.1.0
|
||||
flatted: ^3.2.9
|
||||
keyv: ^4.5.3
|
||||
rimraf: ^3.0.2
|
||||
checksum: 4fdd10ecbcbf7d520f9040dd1340eb5dfe951e6f0ecf2252edeec03ee68d989ec8b9a20f4434270e71bcfd57800dc09b3344fca3966b2eb8f613072c7d9a2365
|
||||
checksum: 4958cfe0f46acf84953d4e16676ef5f0d38eab3a92d532a1e8d5f88f11eea8b36d5d598070ff2aeae15f1fde18f8d7d089eefaf9db10b5a587cc1c9072325c7a
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"flatted@npm:^3.1.0":
|
||||
version: 3.2.7
|
||||
resolution: "flatted@npm:3.2.7"
|
||||
checksum: 427633049d55bdb80201c68f7eb1cbd533e03eac541f97d3aecab8c5526f12a20ccecaeede08b57503e772c769e7f8680b37e8d482d1e5f8d7e2194687f9ea35
|
||||
"flatted@npm:^3.2.9":
|
||||
version: 3.2.9
|
||||
resolution: "flatted@npm:3.2.9"
|
||||
checksum: f14167fbe26a9d20f6fca8d998e8f1f41df72c8e81f9f2c9d61ed2bea058248f5e1cbd05e7f88c0e5087a6a0b822a1e5e2b446e879f3cfbe0b07ba2d7f80b026
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"follow-redirects@npm:^1.15.0":
|
||||
version: 1.15.2
|
||||
resolution: "follow-redirects@npm:1.15.2"
|
||||
version: 1.15.3
|
||||
resolution: "follow-redirects@npm:1.15.3"
|
||||
peerDependenciesMeta:
|
||||
debug:
|
||||
optional: true
|
||||
checksum: faa66059b66358ba65c234c2f2a37fcec029dc22775f35d9ad6abac56003268baf41e55f9ee645957b32c7d9f62baf1f0b906e68267276f54ec4b4c597c2b190
|
||||
checksum: 584da22ec5420c837bd096559ebfb8fe69d82512d5585004e36a3b4a6ef6d5905780e0c74508c7b72f907d1fa2b7bd339e613859e9c304d0dc96af2027fd0231
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
@@ -914,11 +925,11 @@ __metadata:
|
||||
linkType: hard
|
||||
|
||||
"globals@npm:^13.19.0":
|
||||
version: 13.21.0
|
||||
resolution: "globals@npm:13.21.0"
|
||||
version: 13.23.0
|
||||
resolution: "globals@npm:13.23.0"
|
||||
dependencies:
|
||||
type-fest: ^0.20.2
|
||||
checksum: 86c92ca8a04efd864c10852cd9abb1ebe6d447dcc72936783e66eaba1087d7dba5c9c3421a48d6ca722c319378754dbcc3f3f732dbe47592d7de908edf58a773
|
||||
checksum: 194c97cf8d1ef6ba59417234c2386549c4103b6e5f24b1ff1952de61a4753e5d2069435ba629de711a6480b1b1d114a98e2ab27f85e966d5a10c319c3bbd3dc3
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
@@ -1151,6 +1162,13 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"json-buffer@npm:3.0.1":
|
||||
version: 3.0.1
|
||||
resolution: "json-buffer@npm:3.0.1"
|
||||
checksum: 9026b03edc2847eefa2e37646c579300a1f3a4586cfb62bf857832b60c852042d0d6ae55d1afb8926163fa54c2b01d83ae24705f34990348bdac6273a29d4581
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"json-schema-traverse@npm:^0.4.1":
|
||||
version: 0.4.1
|
||||
resolution: "json-schema-traverse@npm:0.4.1"
|
||||
@@ -1165,6 +1183,15 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"keyv@npm:^4.5.3":
|
||||
version: 4.5.4
|
||||
resolution: "keyv@npm:4.5.4"
|
||||
dependencies:
|
||||
json-buffer: 3.0.1
|
||||
checksum: 74a24395b1c34bd44ad5cb2b49140d087553e170625240b86755a6604cd65aa16efdbdeae5cdb17ba1284a0fbb25ad06263755dbc71b8d8b06f74232ce3cdd72
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"lcid@npm:^1.0.0":
|
||||
version: 1.0.0
|
||||
resolution: "lcid@npm:1.0.0"
|
||||
@@ -1494,9 +1521,9 @@ __metadata:
|
||||
linkType: hard
|
||||
|
||||
"punycode@npm:^2.1.0":
|
||||
version: 2.3.0
|
||||
resolution: "punycode@npm:2.3.0"
|
||||
checksum: 39f760e09a2a3bbfe8f5287cf733ecdad69d6af2fe6f97ca95f24b8921858b91e9ea3c9eeec6e08cede96181b3bb33f95c6ffd8c77e63986508aa2e8159fa200
|
||||
version: 2.3.1
|
||||
resolution: "punycode@npm:2.3.1"
|
||||
checksum: bb0a0ceedca4c3c57a9b981b90601579058903c62be23c5e8e843d2c2d4148a3ecf029d5133486fb0e1822b098ba8bba09e89d6b21742d02fa26bda6441a6fb2
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
@@ -1784,6 +1811,13 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"undici-types@npm:~5.26.4":
|
||||
version: 5.26.5
|
||||
resolution: "undici-types@npm:5.26.5"
|
||||
checksum: 3192ef6f3fd5df652f2dc1cd782b49d6ff14dc98e5dced492aa8a8c65425227da5da6aafe22523c67f035a272c599bb89cfe803c1db6311e44bed3042fc25487
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"unzip-response@npm:^2.0.1":
|
||||
version: 2.0.1
|
||||
resolution: "unzip-response@npm:2.0.1"
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
#
|
||||
# pgAdmin 4 - PostgreSQL Tools
|
||||
#
|
||||
# Copyright (C) 2013 - 2023, The pgAdmin Development Team
|
||||
# Copyright (C) 2013 - 2024, The pgAdmin Development Team
|
||||
# This software is released under the PostgreSQL Licence
|
||||
#
|
||||
##########################################################################
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
#
|
||||
# pgAdmin 4 - PostgreSQL Tools
|
||||
#
|
||||
# Copyright (C) 2013 - 2023, The pgAdmin Development Team
|
||||
# Copyright (C) 2013 - 2024, The pgAdmin Development Team
|
||||
# This software is released under the PostgreSQL Licence
|
||||
#
|
||||
##########################################################################
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
#
|
||||
# pgAdmin 4 - PostgreSQL Tools
|
||||
#
|
||||
# Copyright (C) 2013 - 2023, The pgAdmin Development Team
|
||||
# Copyright (C) 2013 - 2024, The pgAdmin Development Team
|
||||
# This software is released under the PostgreSQL Licence
|
||||
#
|
||||
##########################################################################
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
#
|
||||
# pgAdmin 4 - PostgreSQL Tools
|
||||
#
|
||||
# Copyright (C) 2013 - 2023, The pgAdmin Development Team
|
||||
# Copyright (C) 2013 - 2024, The pgAdmin Development Team
|
||||
# This software is released under the PostgreSQL Licence
|
||||
#
|
||||
##########################################################################
|
||||
|
||||
@@ -1,3 +1,5 @@
|
||||
requests>=2.21.0
|
||||
requests[security]>=2.21.0
|
||||
safety>=1.9.0
|
||||
Sphinx==7.2.6
|
||||
sphinxcontrib-youtube==1.4.1
|
||||
@@ -4,7 +4,7 @@
|
||||
#
|
||||
# pgAdmin 4 - PostgreSQL Tools
|
||||
#
|
||||
# Copyright (C) 2013 - 2023, The pgAdmin Development Team
|
||||
# Copyright (C) 2013 - 2024, The pgAdmin Development Team
|
||||
# This software is released under the PostgreSQL Licence
|
||||
#
|
||||
##########################################################################
|
||||
@@ -21,7 +21,7 @@ PG_CODES_URLS = [
|
||||
"https://raw.githubusercontent.com/postgres/postgres/master/src/pl/"
|
||||
"plpgsql/src/pl_scanner.c",
|
||||
]
|
||||
PG_CODES_REGEX = "PG_KEYWORD\(\"([a-z]*)\"[A-Z_, ]*\)"
|
||||
PG_CODES_REGEX = r"PG_KEYWORD\(\"([a-z]*)\"[A-Z_, ]*\)"
|
||||
|
||||
PG_SQL_DOCS_URL = \
|
||||
"https://www.postgresql.org/docs/current/sql-keywords-appendix.html"
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
#
|
||||
# pgAdmin 4 - PostgreSQL Tools
|
||||
#
|
||||
# Copyright (C) 2013 - 2023, The pgAdmin Development Team
|
||||
# Copyright (C) 2013 - 2024, The pgAdmin Development Team
|
||||
# This software is released under the PostgreSQL Licence
|
||||
#
|
||||
# #########################################################################
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
//
|
||||
// pgAdmin 4 - PostgreSQL Tools
|
||||
//
|
||||
// Copyright (C) 2013 - 2023, The pgAdmin Development Team
|
||||
// Copyright (C) 2013 - 2024, The pgAdmin Development Team
|
||||
// This software is released under the PostgreSQL Licence
|
||||
//
|
||||
//////////////////////////////////////////////////////////////
|
||||
@@ -12,7 +12,6 @@ module.exports = {
|
||||
'browser': true,
|
||||
'es6': true,
|
||||
'amd': true,
|
||||
'jasmine': true,
|
||||
},
|
||||
'extends': [
|
||||
'eslint:recommended',
|
||||
@@ -41,10 +40,11 @@ module.exports = {
|
||||
'plugins': [
|
||||
'react',
|
||||
'@babel',
|
||||
'jest'
|
||||
],
|
||||
'overrides': [
|
||||
{
|
||||
'files': ['**/*.ts', '**/*.tsx'],
|
||||
'files': ['**/*.{ts,tsx}'],
|
||||
'plugins': [
|
||||
'@typescript-eslint',
|
||||
],
|
||||
@@ -55,10 +55,20 @@ module.exports = {
|
||||
'@typescript-eslint/no-this-alias': ['off'],
|
||||
}
|
||||
},
|
||||
{
|
||||
'files': ['**/*{spec,test}.{js,jsx}', './regression/javascript/**/*.{js}'],
|
||||
'extends': ['eslint:recommended'],
|
||||
'env': {
|
||||
'jest': true
|
||||
}
|
||||
},
|
||||
],
|
||||
'globals': {
|
||||
'_': true,
|
||||
'module': true,
|
||||
'__dirname': true,
|
||||
'global': true,
|
||||
'jest': true
|
||||
},
|
||||
'rules': {
|
||||
'indent': [
|
||||
|
||||
@@ -1,5 +1,7 @@
|
||||
nodeLinker: node-modules
|
||||
checksumBehavior: update
|
||||
|
||||
logFilters:
|
||||
- code: YN0013
|
||||
level: discard
|
||||
- code: YN0013
|
||||
level: discard
|
||||
|
||||
nodeLinker: node-modules
|
||||
@@ -0,0 +1,4 @@
|
||||
{
|
||||
"presets": [["@babel/preset-env", {"modules": "commonjs", "useBuiltIns": "usage", "corejs": 3}], "@babel/preset-react", "@babel/preset-typescript"],
|
||||
"plugins": ["@babel/plugin-proposal-class-properties", "@babel/proposal-object-rest-spread", "@babel/plugin-transform-runtime"]
|
||||
}
|
||||
@@ -4,7 +4,7 @@
|
||||
#
|
||||
# pgAdmin 4 - PostgreSQL Tools
|
||||
#
|
||||
# Copyright (C) 2013 - 2023, The pgAdmin Development Team
|
||||
# Copyright (C) 2013 - 2024, The pgAdmin Development Team
|
||||
# This software is released under the PostgreSQL Licence
|
||||
#
|
||||
# config.py - Core application configuration settings
|
||||
@@ -49,8 +49,8 @@ APP_ICON = 'pg-icon'
|
||||
#
|
||||
|
||||
# Application version number components
|
||||
APP_RELEASE = 7
|
||||
APP_REVISION = 8
|
||||
APP_RELEASE = 8
|
||||
APP_REVISION = 3
|
||||
|
||||
# Application version suffix, e.g. 'beta1', 'dev'. Usually an empty string
|
||||
# for GA releases.
|
||||
@@ -59,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 = 70800
|
||||
APP_VERSION_INT = 80300
|
||||
|
||||
# DO NOT CHANGE!
|
||||
# The application version string, constructed from the components
|
||||
@@ -69,7 +69,7 @@ else:
|
||||
APP_VERSION = '%s.%s-%s' % (APP_RELEASE, APP_REVISION, APP_SUFFIX)
|
||||
|
||||
# Copyright string for display in the app
|
||||
APP_COPYRIGHT = 'Copyright (C) 2013 - 2023, The pgAdmin Development Team'
|
||||
APP_COPYRIGHT = 'Copyright (C) 2013 - 2024, The pgAdmin Development Team'
|
||||
|
||||
##########################################################################
|
||||
# Misc stuff
|
||||
@@ -230,8 +230,8 @@ PROXY_X_PREFIX_COUNT = 0
|
||||
|
||||
# COMPRESSION
|
||||
COMPRESS_MIMETYPES = [
|
||||
'text/html', 'text/css', 'text/xml', 'application/json',
|
||||
'application/javascript'
|
||||
'text/html', 'text/css', 'text/xml', 'text/javascript',
|
||||
'application/json', 'application/javascript'
|
||||
]
|
||||
COMPRESS_LEVEL = 9
|
||||
COMPRESS_MIN_SIZE = 500
|
||||
@@ -414,10 +414,6 @@ SECURITY_EMAIL_SUBJECT_PASSWORD_CHANGE_NOTICE = \
|
||||
##########################################################################
|
||||
# Email address validation
|
||||
##########################################################################
|
||||
|
||||
# flask-security-too will validate email addresses and check deliverability
|
||||
# by default. Disable the deliverability check by default, which was the old
|
||||
# behaviour in <= v5.3
|
||||
CHECK_EMAIL_DELIVERABILITY = False
|
||||
SECURITY_EMAIL_VALIDATOR_ARGS = \
|
||||
{"check_deliverability": CHECK_EMAIL_DELIVERABILITY}
|
||||
@@ -724,6 +720,13 @@ LDAP_CA_CERT_FILE = ''
|
||||
LDAP_CERT_FILE = ''
|
||||
LDAP_KEY_FILE = ''
|
||||
|
||||
##########################################################################
|
||||
|
||||
# Some flaky LDAP servers returns malformed schema. If True, no exception
|
||||
# will be raised and schema is thrown away but authentication will be done.
|
||||
# This parameter should remain False, as recommended.
|
||||
LDAP_IGNORE_MALFORMED_SCHEMA = False
|
||||
|
||||
##########################################################################
|
||||
# Kerberos Configuration
|
||||
##########################################################################
|
||||
@@ -791,8 +794,9 @@ 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.
|
||||
# The additional claims to check on user ID Token or Userinfo response.
|
||||
# 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': {
|
||||
@@ -810,11 +814,12 @@ OAUTH2_CONFIG = [
|
||||
# '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,
|
||||
# Set this variable to False to disable SSL certificate verification
|
||||
# for OAuth2 provider.
|
||||
# This may need to set False, in case of self-signed certificates.
|
||||
# Ref: https://github.com/psf/requests/issues/6071
|
||||
'OAUTH2_SSL_CERT_VERIFICATION': True
|
||||
}
|
||||
]
|
||||
|
||||
@@ -904,6 +909,14 @@ AUTO_DISCOVER_SERVERS = True
|
||||
#############################################################################
|
||||
SERVER_HEARTBEAT_TIMEOUT = 30 # In seconds
|
||||
|
||||
#############################################################################
|
||||
# ENABLE_SERVER_PASS_EXEC_CMD is used to enable/disable Password exec command
|
||||
# field in server properties. This is used to specify a shell command to be
|
||||
# executed to retrieve a password to be used for server authentication.
|
||||
# This setting is applicable only for server mode.
|
||||
#############################################################################
|
||||
ENABLE_SERVER_PASS_EXEC_CMD = False
|
||||
|
||||
#############################################################################
|
||||
# Patch the default config with custom config and other manipulations
|
||||
#############################################################################
|
||||
|
||||
@@ -0,0 +1,57 @@
|
||||
const webpackShimAlias = require('./webpack.shim').resolveAlias;
|
||||
|
||||
const webpackAliasToJestModules = ()=>{
|
||||
const ret = {
|
||||
'\\.svg': '<rootDir>/regression/javascript/__mocks__/svg.js'
|
||||
};
|
||||
Object.keys(webpackShimAlias).forEach((an)=>{
|
||||
// eg - sources: ./pgadmin/static/js/ to '^sources/(.*)$': '<rootDir>/pgadmin/static/js/$1'
|
||||
let ap = webpackShimAlias[an].replace(__dirname, '<rootDir>');
|
||||
if(ap.endsWith('/') || ap.endsWith('\\')) {
|
||||
ret[`^${an}/(.*)$`] = ap + '$1';
|
||||
return;
|
||||
}
|
||||
ret[`^${an}$`] = ap;
|
||||
});
|
||||
|
||||
// Overrides
|
||||
ret['^translations$'] = '<rootDir>/regression/javascript/fake_translations';
|
||||
ret['^pgadmin.browser.messages$'] = '<rootDir>/regression/javascript/fake_messages';
|
||||
ret['^pgadmin.browser.endpoints$'] = '<rootDir>/regression/javascript/fake_endpoints';
|
||||
ret['^pgadmin.browser.translations$'] = '<rootDir>/regression/javascript/fake_translations';
|
||||
ret['^pgadmin.user_management.current_user$'] = '<rootDir>/regression/javascript/fake_current_user';
|
||||
ret['^pgadmin.server.supported_servers$'] = '<rootDir>/regression/javascript/fake_supported_servers';
|
||||
|
||||
const sources = ret['^sources/(.*)$'];
|
||||
delete ret['^sources/(.*)$'];
|
||||
|
||||
ret['^sources/pgadmin$'] = '<rootDir>/regression/javascript/fake_pgadmin';
|
||||
ret['^sources/gettext$'] = '<rootDir>/regression/javascript/fake_gettext';
|
||||
ret['^sources/(.*)$'] = sources;
|
||||
|
||||
// Only for tests
|
||||
ret['^pgadmin.schema.dir/(.*)$'] = '<rootDir>/pgadmin/browser/server_groups/servers/databases/schemas/static/js/$1';
|
||||
ret['^browser/(.*)$'] = '<rootDir>/pgadmin/browser/static/js/$1';
|
||||
|
||||
return ret;
|
||||
};
|
||||
|
||||
module.exports = {
|
||||
'roots': ['<rootDir>/pgadmin/', '<rootDir>/regression/javascript'],
|
||||
'moduleFileExtensions': ['js', 'jsx', 'ts', 'tsx'],
|
||||
'moduleNameMapper': webpackAliasToJestModules(),
|
||||
'transform': {
|
||||
'^.+\\.(js|jsx|mjs|cjs|ts|tsx)$': 'babel-jest',
|
||||
},
|
||||
'setupFilesAfterEnv': [
|
||||
'<rootDir>/regression/javascript/setup-jest.js',
|
||||
],
|
||||
'testMatch': [
|
||||
'<rootDir>/regression/javascript/**/*{spec,test}.{js,jsx,ts,tsx}'
|
||||
],
|
||||
'testEnvironment': 'jsdom',
|
||||
'transformIgnorePatterns': [
|
||||
'[/\\\\]node_modules[/\\\\](?!react-dnd|dnd-core|@react-dnd).+\\.(js|jsx|mjs|cjs|ts|tsx)$',
|
||||
'^.+\\.module\\.(css|sass|scss)$'
|
||||
]
|
||||
};
|
||||
@@ -1,106 +0,0 @@
|
||||
/////////////////////////////////////////////////////////////
|
||||
//
|
||||
// pgAdmin 4 - PostgreSQL Tools
|
||||
//
|
||||
// Copyright (C) 2013 - 2023, The pgAdmin Development Team
|
||||
// This software is released under the PostgreSQL Licence
|
||||
//
|
||||
//////////////////////////////////////////////////////////////
|
||||
|
||||
// Karma configuration
|
||||
const webpackConfig = require('./webpack.test.config.js');
|
||||
const isDocker = require('is-docker')();
|
||||
const webpack = require('webpack');
|
||||
|
||||
module.exports = function (config) {
|
||||
config.set({
|
||||
frameworks: ['jasmine', 'source-map-support'],
|
||||
reporters: ['progress', 'kjhtml'],
|
||||
plugins: [
|
||||
'karma-webpack',
|
||||
'karma-chrome-launcher',
|
||||
'karma-jasmine',
|
||||
'karma-jasmine-html-reporter',
|
||||
'karma-source-map-support',
|
||||
'karma-sourcemap-loader',
|
||||
'karma-coverage',
|
||||
new webpack.SourceMapDevToolPlugin({
|
||||
/*
|
||||
* filename: null, // if no value is provided the sourcemap is inlined
|
||||
*/
|
||||
filename: '[name].js.map',
|
||||
test: /\.js$/i, // process .js files only
|
||||
}),
|
||||
],
|
||||
files: [
|
||||
{pattern: 'pgadmin/static/**/*.js', included: false, watched: true},
|
||||
{pattern: 'pgadmin/browser/static/js/**/*.js', included: false, watched: true},
|
||||
{pattern: 'regression/javascript/**/*.js', watched: true},
|
||||
],
|
||||
|
||||
// list of files to exclude
|
||||
exclude: [
|
||||
'pgadmin/static/vendor/**/*[Tt]est.js',
|
||||
'pgadmin/static/vendor/**/*[Ss]pec.js',
|
||||
],
|
||||
|
||||
// preprocess matching files before serving them to the browser
|
||||
// available preprocessors: https://npmjs.org/browse/keyword/karma-preprocessor
|
||||
preprocessors: {
|
||||
'pgadmin/**/js/**/*.js?': ['sourcemap'],
|
||||
'regression/javascript/**/*.js': ['webpack', 'sourcemap'],
|
||||
},
|
||||
|
||||
// optionally, configure the reporter
|
||||
coverageReporter: {
|
||||
reporters: [
|
||||
// reporters not supporting the `file` property
|
||||
{ type: 'html', subdir: 'report-html' },
|
||||
{ type: 'lcovonly', subdir: 'report-lcov' },
|
||||
],
|
||||
dir : 'coverage/',
|
||||
includeAllSources: true,
|
||||
},
|
||||
|
||||
webpack: webpackConfig,
|
||||
webpackMiddleware: {
|
||||
stats: 'errors-only',
|
||||
},
|
||||
|
||||
port: 9876,
|
||||
|
||||
// enable / disable colors in the output (reporters and logs)
|
||||
colors: true,
|
||||
|
||||
// level of logging
|
||||
// possible values: config.LOG_DISABLE || config.LOG_ERROR || config.LOG_WARN || config.LOG_INFO || config.LOG_DEBUG
|
||||
logLevel: config.LOG_WARN,
|
||||
|
||||
|
||||
// enable / disable watching file and executing tests whenever any file changes
|
||||
autoWatch: true,
|
||||
usePolling: true,
|
||||
|
||||
|
||||
// start these browsers
|
||||
// available browser launchers: https://npmjs.org/browse/keyword/karma-launcher
|
||||
customLaunchers: {
|
||||
ChromeCustom: {
|
||||
base: 'ChromeHeadless',
|
||||
// We must disable the Chrome sandbox when running Chrome inside Docker (Chrome's sandbox needs
|
||||
// more permissions than Docker allows by default)
|
||||
flags: isDocker ? ['--no-sandbox'] : [],
|
||||
},
|
||||
},
|
||||
browsers: ['ChromeCustom'],
|
||||
|
||||
|
||||
// Continuous Integration mode
|
||||
// if true, Karma captures browsers, runs the tests and exits
|
||||
singleRun: false,
|
||||
|
||||
// Concurrency level
|
||||
// how many browser should be started simultaneous
|
||||
concurrency: Infinity,
|
||||
});
|
||||
};
|
||||
@@ -2,7 +2,7 @@
|
||||
#
|
||||
# pgAdmin 4 - PostgreSQL Tools
|
||||
#
|
||||
# Copyright (C) 2013 - 2023, The pgAdmin Development Team
|
||||
# Copyright (C) 2013 - 2024, The pgAdmin Development Team
|
||||
# This software is released under the PostgreSQL Licence
|
||||
#
|
||||
##########################################################################
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
#
|
||||
# pgAdmin 4 - PostgreSQL Tools
|
||||
#
|
||||
# Copyright (C) 2013 - 2023, The pgAdmin Development Team
|
||||
# Copyright (C) 2013 - 2024, The pgAdmin Development Team
|
||||
# This software is released under the PostgreSQL Licence
|
||||
#
|
||||
##########################################################################
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
##
|
||||
## pgAdmin 4 - PostgreSQL Tools
|
||||
##
|
||||
## Copyright (C) 2013 - 2023, The pgAdmin Development Team
|
||||
## Copyright (C) 2013 - 2024, The pgAdmin Development Team
|
||||
## This software is released under the PostgreSQL Licence
|
||||
##
|
||||
##########################################################################
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
#
|
||||
# pgAdmin 4 - PostgreSQL Tools
|
||||
#
|
||||
# Copyright (C) 2013 - 2023, The pgAdmin Development Team
|
||||
# Copyright (C) 2013 - 2024, The pgAdmin Development Team
|
||||
# This software is released under the PostgreSQL Licence
|
||||
#
|
||||
##########################################################################
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
#
|
||||
# pgAdmin 4 - PostgreSQL Tools
|
||||
#
|
||||
# Copyright (C) 2013 - 2023, The pgAdmin Development Team
|
||||
# Copyright (C) 2013 - 2024, The pgAdmin Development Team
|
||||
# This software is released under the PostgreSQL Licence
|
||||
#
|
||||
##########################################################################
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
#
|
||||
# pgAdmin 4 - PostgreSQL Tools
|
||||
#
|
||||
# Copyright (C) 2013 - 2023, The pgAdmin Development Team
|
||||
# Copyright (C) 2013 - 2024, The pgAdmin Development Team
|
||||
# This software is released under the PostgreSQL Licence
|
||||
#
|
||||
##########################################################################
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
#
|
||||
# pgAdmin 4 - PostgreSQL Tools
|
||||
#
|
||||
# Copyright (C) 2013 - 2023, The pgAdmin Development Team
|
||||
# Copyright (C) 2013 - 2024, The pgAdmin Development Team
|
||||
# This software is released under the PostgreSQL Licence
|
||||
#
|
||||
##########################################################################
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
#
|
||||
# pgAdmin 4 - PostgreSQL Tools
|
||||
#
|
||||
# Copyright (C) 2013 - 2023, The pgAdmin Development Team
|
||||
# Copyright (C) 2013 - 2024, The pgAdmin Development Team
|
||||
# This software is released under the PostgreSQL Licence
|
||||
#
|
||||
##########################################################################
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
#
|
||||
# pgAdmin 4 - PostgreSQL Tools
|
||||
#
|
||||
# Copyright (C) 2013 - 2023, The pgAdmin Development Team
|
||||
# Copyright (C) 2013 - 2024, The pgAdmin Development Team
|
||||
# This software is released under the PostgreSQL Licence
|
||||
#
|
||||
##########################################################################
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
#
|
||||
# pgAdmin 4 - PostgreSQL Tools
|
||||
#
|
||||
# Copyright (C) 2013 - 2023, The pgAdmin Development Team
|
||||
# Copyright (C) 2013 - 2024, The pgAdmin Development Team
|
||||
# This software is released under the PostgreSQL Licence
|
||||
#
|
||||
##########################################################################
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
#
|
||||
# pgAdmin 4 - PostgreSQL Tools
|
||||
#
|
||||
# Copyright (C) 2013 - 2023, The pgAdmin Development Team
|
||||
# Copyright (C) 2013 - 2024, The pgAdmin Development Team
|
||||
# This software is released under the PostgreSQL Licence
|
||||
#
|
||||
##########################################################################
|
||||
|
||||
@@ -0,0 +1,39 @@
|
||||
##########################################################################
|
||||
#
|
||||
# pgAdmin 4 - PostgreSQL Tools
|
||||
#
|
||||
# Copyright (C) 2013 - 2024, The pgAdmin Development Team
|
||||
# This software is released under the PostgreSQL Licence
|
||||
#
|
||||
##########################################################################
|
||||
|
||||
"""Update DB to version 38
|
||||
|
||||
Removed max length from passexec_cmd column of server configuration.
|
||||
|
||||
Revision ID: 44926ac97232
|
||||
Revises: 44b9ce549393
|
||||
Create Date: 2023-11-03 19:56:51.277160
|
||||
|
||||
"""
|
||||
import sqlalchemy as sa
|
||||
from alembic import op
|
||||
|
||||
# revision identifiers, used by Alembic.
|
||||
revision = '44926ac97232'
|
||||
down_revision = '44b9ce549393'
|
||||
branch_labels = None
|
||||
depends_on = None
|
||||
|
||||
|
||||
def upgrade():
|
||||
with op.batch_alter_table("server") as batch_op:
|
||||
batch_op.alter_column('passexec_cmd',
|
||||
existing_type=sa.String(length=256),
|
||||
type_=sa.String())
|
||||
# ### end Alembic commands ###
|
||||
|
||||
|
||||
def downgrade():
|
||||
# pgAdmin only upgrades, downgrade not implemented.
|
||||
pass
|
||||
@@ -2,7 +2,7 @@
|
||||
#
|
||||
# pgAdmin 4 - PostgreSQL Tools
|
||||
#
|
||||
# Copyright (C) 2013 - 2023, The pgAdmin Development Team
|
||||
# Copyright (C) 2013 - 2024, The pgAdmin Development Team
|
||||
# This software is released under the PostgreSQL Licence
|
||||
#
|
||||
##########################################################################
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
#
|
||||
# pgAdmin 4 - PostgreSQL Tools
|
||||
#
|
||||
# Copyright (C) 2013 - 2023, The pgAdmin Development Team
|
||||
# Copyright (C) 2013 - 2024, The pgAdmin Development Team
|
||||
# This software is released under the PostgreSQL Licence
|
||||
#
|
||||
##########################################################################
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
#
|
||||
# pgAdmin 4 - PostgreSQL Tools
|
||||
#
|
||||
# Copyright (C) 2013 - 2023, The pgAdmin Development Team
|
||||
# Copyright (C) 2013 - 2024, The pgAdmin Development Team
|
||||
# This software is released under the PostgreSQL Licence
|
||||
#
|
||||
##########################################################################
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
#
|
||||
# pgAdmin 4 - PostgreSQL Tools
|
||||
#
|
||||
# Copyright (C) 2013 - 2023, The pgAdmin Development Team
|
||||
# Copyright (C) 2013 - 2024, The pgAdmin Development Team
|
||||
# This software is released under the PostgreSQL Licence
|
||||
#
|
||||
##########################################################################
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
#
|
||||
# pgAdmin 4 - PostgreSQL Tools
|
||||
#
|
||||
# Copyright (C) 2013 - 2023, The pgAdmin Development Team
|
||||
# Copyright (C) 2013 - 2024, The pgAdmin Development Team
|
||||
# This software is released under the PostgreSQL Licence
|
||||
#
|
||||
##########################################################################
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
#
|
||||
# pgAdmin 4 - PostgreSQL Tools
|
||||
#
|
||||
# Copyright (C) 2013 - 2023, The pgAdmin Development Team
|
||||
# Copyright (C) 2013 - 2024, The pgAdmin Development Team
|
||||
# This software is released under the PostgreSQL Licence
|
||||
#
|
||||
##########################################################################
|
||||
|
||||