Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
8b130b3351 | ||
|
|
d26182d178 | ||
|
|
8ddcdbf499 | ||
|
|
4e49d752fb | ||
|
|
0cbb5324bf | ||
|
|
1e90245650 | ||
|
|
3425bc0349 | ||
|
|
7593bb98c1 | ||
|
|
d8c007f644 | ||
|
|
0ea51861c7 | ||
|
|
cfbf4d8452 | ||
|
|
af88851228 | ||
|
|
864f23c60d | ||
|
|
8dffcf842f | ||
|
|
6971d8c3a1 | ||
|
|
43f4cc4e17 | ||
|
|
a5530f59f7 | ||
|
|
e272552780 | ||
|
|
dfbbc3b1a1 | ||
|
|
a8ab714606 | ||
|
|
2ab419c8a5 | ||
|
|
29e85a6b06 | ||
|
|
125d36e7d2 | ||
|
|
16406f88a7 | ||
|
|
dee1a2ae6b | ||
|
|
1f879b3e87 | ||
|
|
b5bd236387 | ||
|
|
41812c9fde | ||
|
|
4faf2a3c6d | ||
|
|
d3ede3151a | ||
|
|
721290b1e9 | ||
|
|
10929157b4 | ||
|
|
5a74022e8a | ||
|
|
a74b0232f9 | ||
|
|
e81a036850 | ||
|
|
389896411a | ||
|
|
6adae46a4c | ||
|
|
96ed38292f | ||
|
|
47b2bc8a83 | ||
|
|
9ad223c41c | ||
|
|
d09833744a | ||
|
|
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 |
No files matched your search
@@ -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
|
||||
|
||||
|
||||
@@ -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 }}
|
||||
|
||||
|
||||
@@ -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
|
||||
#
|
||||
#########################################################################
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -63,13 +63,13 @@ REM Main build sequence Ends
|
||||
set "VCREDIST_FILE=vcredist_x64.exe"
|
||||
|
||||
REM Set additional variables we need
|
||||
FOR /F "tokens=3" %%a IN ('findstr /C:"APP_RELEASE =" %WD%\web\config.py') DO SET APP_MAJOR=%%a
|
||||
FOR /F "tokens=3" %%a IN ('findstr /C:"APP_REVISION =" %WD%\web\config.py') DO SET APP_MINOR=%%a
|
||||
FOR /F "tokens=3" %%a IN ('findstr /C:"APP_SUFFIX =" %WD%\web\config.py') DO SET APP_VERSION_SUFFIX=%%a
|
||||
FOR /F "tokens=3" %%a IN ('findstr /C:"APP_RELEASE =" %WD%\web\version.py') DO SET APP_MAJOR=%%a
|
||||
FOR /F "tokens=3" %%a IN ('findstr /C:"APP_REVISION =" %WD%\web\version.py') DO SET APP_MINOR=%%a
|
||||
FOR /F "tokens=3" %%a IN ('findstr /C:"APP_SUFFIX =" %WD%\web\version.py') DO SET APP_VERSION_SUFFIX=%%a
|
||||
REM remove single quote from the string
|
||||
SET APP_VERSION_SUFFIX=%APP_VERSION_SUFFIX:'=%
|
||||
SET APP_NAME=""
|
||||
FOR /F "tokens=2* DELims='" %%a IN ('findstr /C:"APP_NAME =" web\config.py') DO SET APP_NAME=%%a
|
||||
FOR /F "tokens=2* DELims='" %%a IN ('findstr /C:"APP_NAME =" web\branding.py') DO SET APP_NAME=%%a
|
||||
FOR /f "tokens=1 DELims=." %%G IN ('%PGADMIN_PYTHON_DIR%/python.exe -c "print('%APP_NAME%'.lower().replace(' ', ''))"') DO SET APP_SHORTNAME=%%G
|
||||
SET APP_VERSION=%APP_MAJOR%.%APP_MINOR%
|
||||
SET INSTALLERNAME=%APP_SHORTNAME%-%APP_MAJOR%.%APP_MINOR%-%APP_VERSION_SUFFIX%-x64.exe
|
||||
|
||||
@@ -2,16 +2,16 @@
|
||||
#
|
||||
# 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
|
||||
#
|
||||
#########################################################################
|
||||
|
||||
SHELL = /bin/sh
|
||||
|
||||
APP_NAME := $(shell grep ^APP_NAME web/config.py | awk -F"=" '{print $$NF}' | tr -d '[:space:]' | tr -d "'" | awk '{print tolower($$0)}')
|
||||
APP_RELEASE := $(shell grep ^APP_RELEASE web/config.py | awk -F"=" '{print $$NF}' | tr -d '[:space:]')
|
||||
APP_REVISION := $(shell grep ^APP_REVISION web/config.py | awk -F"=" '{print $$NF}' | tr -d '[:space:]')
|
||||
APP_NAME := $(shell grep ^APP_NAME web/branding.py | awk -F"=" '{print $$NF}' | tr -d '[:space:]' | tr -d "'" | awk '{print tolower($$0)}')
|
||||
APP_RELEASE := $(shell grep ^APP_RELEASE web/version.py | awk -F"=" '{print $$NF}' | tr -d '[:space:]')
|
||||
APP_REVISION := $(shell grep ^APP_REVISION web/version.py | awk -F"=" '{print $$NF}' | tr -d '[:space:]')
|
||||
|
||||
#########################################################################
|
||||
# High-level targets
|
||||
|
||||
@@ -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.
|
||||
|
||||
|
||||
@@ -120,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.
|
||||
|
||||
|
||||
@@ -26,9 +26,9 @@ where *<tag name>* is one of the following:
|
||||
+==========+===============================================================================+
|
||||
| latest | The most recent release. |
|
||||
+----------+-------------------------------------------------------------------------------+
|
||||
| 7.4 | A specific version (7.4 in this case). |
|
||||
| 8.4 | A specific version (8.4 in this case). |
|
||||
+----------+-------------------------------------------------------------------------------+
|
||||
| 7 | the latest release of a specific major version (major version 7 in this case).|
|
||||
| 8 | the latest release of a specific major version (major version 8 in this case).|
|
||||
+----------+-------------------------------------------------------------------------------+
|
||||
| snapshot | The latest nightly test build. |
|
||||
+----------+-------------------------------------------------------------------------------+
|
||||
@@ -42,11 +42,11 @@ maintenance functions to be executed. Multiple versions are included in the
|
||||
following directories to allow use with different versions of the database
|
||||
server:
|
||||
|
||||
* PostgreSQL 11: */usr/local/pgsql-11*
|
||||
* PostgreSQL 12: */usr/local/pgsql-12*
|
||||
* PostgreSQL 13: */usr/local/pgsql-13*
|
||||
* PostgreSQL 14: */usr/local/pgsql-14*
|
||||
* PostgreSQL 15: */usr/local/pgsql-15*
|
||||
* PostgreSQL 16: */usr/local/pgsql-16*
|
||||
|
||||
The default binary paths set in the container are as follows:
|
||||
|
||||
@@ -132,7 +132,15 @@ than using the default.
|
||||
|
||||
Override the default file path for the server definition list. See the
|
||||
/pgadmin4/servers.json mapped file below for more information. See the format
|
||||
of the `JSON file <https://www.pgadmin.org/docs/pgadmin4/latest/import_export_servers.html#json-format>`_.
|
||||
of the `Servers JSON file <https://www.pgadmin.org/docs/pgadmin4/latest/import_export_servers.html#json-format>`_.
|
||||
|
||||
**PGADMIN_PREFERENCES_JSON_FILE**
|
||||
|
||||
*Default: /pgadmin4/preferences.json*
|
||||
|
||||
Override the default file path for the preferences customization at the container creation. See the
|
||||
/pgadmin4/preferences.json mapped file below for more information. See the format
|
||||
of the `Preferences JSON file <https://www.pgadmin.org/docs/pgadmin4/latest/preferences.html#json-format>`_.
|
||||
|
||||
**GUNICORN_ACCESS_LOGFILE**
|
||||
|
||||
@@ -228,6 +236,14 @@ pgAdmin in the container. Note that server definitions are only loaded on first
|
||||
launch, i.e. when the configuration database is created, and not on subsequent
|
||||
launches using the same configuration database.
|
||||
|
||||
**/pgadmin4/preferences.json**
|
||||
|
||||
If this file is mapped, preferences defined in it will be updated at launch
|
||||
time. This allows customization of preferences settings into the instance of
|
||||
pgAdmin in the container. Note that preferences are only set on first
|
||||
launch, i.e. when the configuration database is created, and not on subsequent
|
||||
launches using the same configuration database.
|
||||
|
||||
**/certs/server.cert**
|
||||
|
||||
If TLS is enabled, this file will be used as the servers TLS certificate.
|
||||
|
||||
@@ -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.
|
||||
|
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: 98 KiB |
|
After Width: | Height: | Size: 78 KiB |
|
After Width: | Height: | Size: 68 KiB |
|
After Width: | Height: | Size: 62 KiB |
|
After Width: | Height: | Size: 115 KiB |
|
After Width: | Height: | Size: 57 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 |
@@ -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.
|
||||
|
||||
@@ -26,10 +26,6 @@ When using main browser window, the following keyboard shortcuts are available:
|
||||
+----------------------------+-------------------------------------------------------+
|
||||
| Shift+Alt+d | Delete object |
|
||||
+----------------------------+-------------------------------------------------------+
|
||||
| Shift+Ctrl+[ | Dialog tab backward |
|
||||
+----------------------------+-------------------------------------------------------+
|
||||
| Shift+Ctrl+] | Dialog tab forward |
|
||||
+----------------------------+-------------------------------------------------------+
|
||||
| Shift+Alt+g | Direct debugging |
|
||||
+----------------------------+-------------------------------------------------------+
|
||||
| Shift+Alt+e | Edit object properties |
|
||||
@@ -59,23 +55,6 @@ When using main browser window, the following keyboard shortcuts are available:
|
||||
| Shift+Alt+v | View data |
|
||||
+----------------------------+-------------------------------------------------------+
|
||||
|
||||
Dialog Tabs
|
||||
***********
|
||||
|
||||
Use the shortcuts below to navigate the tabsets on dialogs:
|
||||
|
||||
.. table::
|
||||
:class: longtable
|
||||
:widths: 2 3
|
||||
|
||||
+----------------------------+-------------------------------------------------------+
|
||||
| Shortcut for all platforms | Function |
|
||||
+============================+=======================================================+
|
||||
| Control+Shift+[ | Dialog tab backward |
|
||||
+----------------------------+-------------------------------------------------------+
|
||||
| Control+Shift+] | Dialog tab forward |
|
||||
+----------------------------+-------------------------------------------------------+
|
||||
|
||||
Property Grid Controls
|
||||
**********************
|
||||
|
||||
@@ -139,7 +118,7 @@ When using the syntax-highlighting SQL editors, the following shortcuts are avai
|
||||
+--------------------------+----------------------+-------------------------------------+
|
||||
| Shift + Tab | Shift + Tab | Un-indent selected text |
|
||||
+--------------------------+----------------------+-------------------------------------+
|
||||
| Alt + g | Option + g | Jump (to line:column) |
|
||||
| Ctrl + l | Cmd + l | Go to line, column |
|
||||
+--------------------------+----------------------+-------------------------------------+
|
||||
| Ctrl + Space | Ctrl + Space | Auto-complete |
|
||||
+--------------------------+----------------------+-------------------------------------+
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -42,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. |
|
||||
@@ -52,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. |
|
||||
+-----------------------------+--------------------------------------------------------------------------------------------------------------------------+
|
||||
|
||||
@@ -486,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
|
||||
********************
|
||||
@@ -549,3 +550,73 @@ 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
|
||||
|
||||
Updating Preferences preferences.json
|
||||
*************************************
|
||||
To update preferences defined in json file, simply run ``setup.py `` with ``set-prefs`` command followed by username
|
||||
and JSON file containing the preferences.
|
||||
|
||||
.. code-block:: bash
|
||||
|
||||
/path/to/python /path/to/setup.py set-prefs user1@gmail.com --input-file /Users/yogeshmahajan/Desktop/pref.json
|
||||
|
||||
JSON format
|
||||
***********
|
||||
|
||||
The JSON file simply contains preference_key=value. Preference key value mapping can be obtained by hovering the
|
||||
individual preference in the Preference UI dialog.
|
||||
|
||||
The following is an typical example for preferences.json :
|
||||
|
||||
.. code-block:: python
|
||||
|
||||
{
|
||||
"preferences":
|
||||
{
|
||||
"browser:display:show_system_objects": true,
|
||||
"browser:display:show_user_defined_templates": true,
|
||||
"browser:display:confirm_on_refresh_close": false,
|
||||
"misc:themes:theme": "dark",
|
||||
|
||||
}
|
||||
}
|
||||
@@ -87,7 +87,7 @@ Query Editing Options
|
||||
| | Select *Replace* to locate and replace (with prompting) individual occurrences of the target. | Option+Cmd+F (MAC) |
|
||||
| | | Ctrl+Shift+F (Others) |
|
||||
| +---------------------------------------------------------------------------------------------------+-----------------------+
|
||||
| | Select *Jump* to navigate to the next occurrence of the search target. | Alt+G |
|
||||
| | Select *Go to Line/Column* to go to specified line number and column position | Cmd+L or Ctrl+L |
|
||||
| +---------------------------------------------------------------------------------------------------+-----------------------+
|
||||
| | Select *Indent Selection* to indent the currently selected text. | Tab |
|
||||
| +---------------------------------------------------------------------------------------------------+-----------------------+
|
||||
|
||||
@@ -11,6 +11,10 @@ notes for it.
|
||||
.. toctree::
|
||||
:maxdepth: 1
|
||||
|
||||
|
||||
release_notes_8_4
|
||||
release_notes_8_3
|
||||
release_notes_8_2
|
||||
release_notes_8_1
|
||||
release_notes_8_0
|
||||
release_notes_7_8
|
||||
|
||||
@@ -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.
|
||||
@@ -0,0 +1,46 @@
|
||||
***********
|
||||
Version 8.4
|
||||
***********
|
||||
|
||||
Release date: 2024-03-07
|
||||
|
||||
This release contains a number of bug fixes and new features since the release of pgAdmin 4 v8.3.
|
||||
|
||||
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.1
|
||||
|
||||
|
||||
New features
|
||||
************
|
||||
|
||||
| `Issue #6058 <https://github.com/pgadmin-org/pgadmin4/issues/6058>`_ - Allow preferences customization using a configuration file.
|
||||
| `Issue #7138 <https://github.com/pgadmin-org/pgadmin4/issues/7138>`_ - Add support for JSON log format.
|
||||
| `Issue #7204 <https://github.com/pgadmin-org/pgadmin4/issues/7204>`_ - Add --yes option for skipping the confirmation prompt while deleting the user via CLI for scripting purpose.
|
||||
|
||||
Housekeeping
|
||||
************
|
||||
|
||||
| `Issue #7097 <https://github.com/pgadmin-org/pgadmin4/issues/7097>`_ - Upgrade CodeMirror from version 5 to 6.
|
||||
| `Issue #7148 <https://github.com/pgadmin-org/pgadmin4/issues/7148>`_ - Added documentation for Dashboard's System Statistics tab.
|
||||
| `Issue #7187 <https://github.com/pgadmin-org/pgadmin4/issues/7187>`_ - Separate the application name, branding & version information from the configuration file.
|
||||
| `Issue #7234 <https://github.com/pgadmin-org/pgadmin4/issues/7234>`_ - Upgrade python packages cryptography to 42.0.x and Flask-Security-Too to 5.3.x.
|
||||
|
||||
Bug fixes
|
||||
*********
|
||||
|
||||
| `Issue #6792 <https://github.com/pgadmin-org/pgadmin4/issues/6792>`_ - Fix multiple issues where PasswordExecCommand was not working in server mode and PasswordExecCommand was not loaded when importing servers.
|
||||
| `Issue #6808 <https://github.com/pgadmin-org/pgadmin4/issues/6808>`_ - Fix the tabbed panel backward/forward shortcut for tabs.
|
||||
| `Issue #7027 <https://github.com/pgadmin-org/pgadmin4/issues/7027>`_ - Fixed an issue where dependencies and dependents were not showing if a composite type is used as an attribute in another composite type.
|
||||
| `Issue #7164 <https://github.com/pgadmin-org/pgadmin4/issues/7164>`_ - Fix an issue where constraint check control is enabled in the edit table dialog.
|
||||
| `Issue #7165 <https://github.com/pgadmin-org/pgadmin4/issues/7165>`_ - Fix an issue where the scripts created by generate script of Schema diff for Table with sequence was not working earlier.
|
||||
| `Issue #7193 <https://github.com/pgadmin-org/pgadmin4/issues/7193>`_ - Ensure that the OAuth2 session is logged out when users log out from pgAdmin.
|
||||
| `Issue #7217 <https://github.com/pgadmin-org/pgadmin4/issues/7217>`_ - Remove role related checks on the UI dashboard when terminating session/query and let PostgreSQL take care of it.
|
||||
| `Issue #7225 <https://github.com/pgadmin-org/pgadmin4/issues/7225>`_ - Fix an issue where type column in dependents/dependencies tab is not showing correct label.
|
||||
| `Issue #7258 <https://github.com/pgadmin-org/pgadmin4/issues/7258>`_ - Unsafe Deserialization and Remote Code Execution by an Authenticated user in pgAdmin 4 (CVE-2024-2044).
|
||||
@@ -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.
|
||||
|
||||
@@ -9,12 +9,14 @@ display information about the object currently selected in the *pgAdmin* tree
|
||||
control in the left window. Select a tab to access information about the
|
||||
highlighted object in the tree control.
|
||||
|
||||
.. image:: images/main_dashboard.png
|
||||
.. image:: images/main_dashboard_general.png
|
||||
:alt: Dashboard panel
|
||||
:align: center
|
||||
|
||||
The graphs on the *Dashboard* tab provides an active analysis of the usage
|
||||
statistics for the selected server or database:
|
||||
The graphs and tables on the *Dashboard* tab provides an active analysis of system statistics and the usage
|
||||
statistics for the selected server or database.
|
||||
|
||||
Click the *General* tab to get the usage statistics for the selected server or database:
|
||||
|
||||
* The *Server sessions* or *Database sessions* graph displays the interactions
|
||||
with the server or database.
|
||||
@@ -33,6 +35,7 @@ transactions, and server configuration (if applicable). The information is
|
||||
presented in context-sensitive tables. Use controls located above the table to:
|
||||
|
||||
* Click the *Refresh* button to update the information displayed in each table.
|
||||
* Select *Active sessions only* checkbox to get the information about active sessions only from the list of all the sessions.
|
||||
* Enter a value in the *Search* box to restrict the table content to one or more
|
||||
sessions that satisfy the search criteria. For example, you can enter a
|
||||
process ID to locate a specific session, or a session state (such as *idle*)
|
||||
@@ -53,6 +56,54 @@ session:
|
||||
* Use the *Details* icon (located in the third column) to open the *Details*
|
||||
tab; the tab displays information about the selected session.
|
||||
|
||||
Click the *System Statistics* tab to get the statistics for the system:
|
||||
|
||||
.. image:: images/main_dashboard_sys_statistics_summary.png
|
||||
:alt: Summary panel
|
||||
:align: center
|
||||
|
||||
Click the *Summary* tab to get the summary of the system:
|
||||
|
||||
* The *OS Information* table displays the basic information about the operating system.
|
||||
* The *CPU Information* table displays the information about system CPU.
|
||||
* The *Process & Handle Count* graph displays the total count of processes running and handles opened for the system.
|
||||
|
||||
.. image:: images/main_dashboard_sys_statistics_cpu.png
|
||||
:alt: CPU panel
|
||||
:align: center
|
||||
|
||||
Click the *CPU* tab to get the detailed usage statistics of the system CPU:
|
||||
|
||||
* The *CPU Usage* graph displays the percentage of time spent by CPU for user normal process, user niced process, kernel mode process, idle mode.
|
||||
* The *Load average* graph displays the average load of the system over 1, 5, 10, and 15 minute intervals.
|
||||
* The *Process CPU Usage* table displays information about CPU for each process ID. Enter a value like process ID or name in the Search box to restrict the table content to one or more processes that satisfy the search criteria.
|
||||
|
||||
.. image:: images/main_dashboard_sys_statistics_memory.png
|
||||
:alt: Memory panel
|
||||
:align: center
|
||||
|
||||
Click the *Memory* tab to get the detailed usage statistics of the system memory:
|
||||
|
||||
* The *Memory Usage* graph displays the size of total, free and used memory per seconds in Gigabytes.
|
||||
* The *Swap Memory* graph displays the size of total, free and used swap memory per seconds in Gigabytes.
|
||||
* The *Process Memory Usage* table displays information about memory for each process ID. Enter a value like process ID or name in the Search box to restrict the table content to one or more processes that satisfy the search criteria.
|
||||
|
||||
.. image:: images/main_dashboard_sys_statistics_storage.png
|
||||
:alt: Storage panel
|
||||
:align: center
|
||||
|
||||
Click the *Storage* tab to get the detailed information of the system storage:
|
||||
|
||||
* The *Disk Information* table displays the information about the disk, such as file system type, mount point, total space, used space and free space and count of total, free, used inodes. The pie graph shows the total spaces in Gigabytes and stacked bar graph shows the used and available space in Gigabytes, for different mount points for file system.
|
||||
* The *Swap Memory* graph displays the size of total, free and used swap memory per seconds in Gigabytes.
|
||||
|
||||
The *disk0* panel displays statistics about the only I/O block device of system:
|
||||
|
||||
* The *I/O Operations Count* graph displays the count of read and write operations per second.
|
||||
* The *Data Transfer* graph displays the size of read and writes happened in Gigabytes per second.
|
||||
* The *Time spent in I/O operations* graph displays the time spent by the device for reading and writing in minutes per second.
|
||||
|
||||
|
||||
.. image:: images/main_properties_table.png
|
||||
:alt: Properties panel
|
||||
:align: center
|
||||
|
||||
@@ -75,3 +75,143 @@ 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. the option ``--yes`` is available to skip the confirmation prompt before deleting the user.
|
||||
|
||||
.. 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 user2@gmail.com --auth-source internal --yes
|
||||
/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.
|
||||
@@ -64,17 +64,29 @@ if [ ! -f /var/lib/pgadmin/pgadmin4.db ]; then
|
||||
/venv/bin/python3 run_pgadmin.py
|
||||
|
||||
export PGADMIN_SERVER_JSON_FILE="${PGADMIN_SERVER_JSON_FILE:-/pgadmin4/servers.json}"
|
||||
export PGADMIN_PREFERENCES_JSON_FILE="${PGADMIN_PREFERENCES_JSON_FILE:-/pgadmin4/preferences.json}"
|
||||
|
||||
# Pre-load any required servers
|
||||
if [ -f "${PGADMIN_SERVER_JSON_FILE}" ]; 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
|
||||
if [ -f "${PGADMIN_PREFERENCES_JSON_FILE}" ]; then
|
||||
# When running in Desktop mode, no user is created
|
||||
# so we have to import servers anonymously
|
||||
if [ "${PGADMIN_CONFIG_SERVER_MODE}" = "False" ]; then
|
||||
DESKTOP_USER=$(cd /pgadmin4 && /venv/bin/python3 -c 'import config; print(config.DESKTOP_USER)')
|
||||
/venv/bin/python3 /pgadmin4/setup.py set-prefs "${DESKTOP_USER}" --input-file "${PGADMIN_PREFERENCES_JSON_FILE}"
|
||||
else
|
||||
/venv/bin/python3 /pgadmin4/setup.py set-prefs "${PGADMIN_DEFAULT_EMAIL}" --input-file "${PGADMIN_PREFERENCES_JSON_FILE}"
|
||||
fi
|
||||
fi
|
||||
|
||||
fi
|
||||
|
||||
# Start Postfix to handle password resets etc.
|
||||
|
||||
@@ -10,11 +10,11 @@ _setup_env() {
|
||||
SERVERROOT=${BUILDROOT}/server
|
||||
WEBROOT=${BUILDROOT}/web
|
||||
DISTROOT=$(realpath "${WD}/../../dist")
|
||||
APP_RELEASE=$(grep "^APP_RELEASE" web/config.py | cut -d"=" -f2 | sed 's/ //g')
|
||||
APP_REVISION=$(grep "^APP_REVISION" web/config.py | cut -d"=" -f2 | sed 's/ //g')
|
||||
APP_NAME=$(grep "^APP_NAME" web/config.py | cut -d"=" -f2 | sed "s/'//g" | sed 's/^ //' | sed 's/ //g' | tr '[:upper:]' '[:lower:]')
|
||||
APP_RELEASE=$(grep "^APP_RELEASE" web/version.py | cut -d"=" -f2 | sed 's/ //g')
|
||||
APP_REVISION=$(grep "^APP_REVISION" web/version.py | cut -d"=" -f2 | sed 's/ //g')
|
||||
APP_NAME=$(grep "^APP_NAME" web/branding.py | cut -d"=" -f2 | sed "s/'//g" | sed 's/^ //' | sed 's/ //g' | tr '[:upper:]' '[:lower:]')
|
||||
APP_LONG_VERSION=${APP_RELEASE}.${APP_REVISION}
|
||||
APP_SUFFIX=$(grep "^APP_SUFFIX" web/config.py | cut -d"=" -f2 | sed 's/ //g' | sed "s/'//g")
|
||||
APP_SUFFIX=$(grep "^APP_SUFFIX" web/version.py | cut -d"=" -f2 | sed 's/ //g' | sed "s/'//g")
|
||||
if [ -n "${APP_SUFFIX}" ]; then
|
||||
APP_LONG_VERSION=${APP_LONG_VERSION}-${APP_SUFFIX}
|
||||
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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -2,11 +2,11 @@
|
||||
|
||||
_setup_env() {
|
||||
FUNCS_DIR=$(cd "$(dirname "$0")" && pwd)/../..
|
||||
APP_RELEASE=$(grep "^APP_RELEASE" "${FUNCS_DIR}/web/config.py" | cut -d"=" -f2 | sed 's/ //g')
|
||||
APP_REVISION=$(grep "^APP_REVISION" "${FUNCS_DIR}/web/config.py" | cut -d"=" -f2 | sed 's/ //g')
|
||||
APP_NAME=$(grep "^APP_NAME" "${FUNCS_DIR}/web/config.py" | cut -d"=" -f2 | sed "s/'//g" | sed 's/^ //')
|
||||
APP_RELEASE=$(grep "^APP_RELEASE" "${FUNCS_DIR}/web/version.py" | cut -d"=" -f2 | sed 's/ //g')
|
||||
APP_REVISION=$(grep "^APP_REVISION" "${FUNCS_DIR}/web/version.py" | cut -d"=" -f2 | sed 's/ //g')
|
||||
APP_NAME=$(grep "^APP_NAME" "${FUNCS_DIR}/web/branding.py" | cut -d"=" -f2 | sed "s/'//g" | sed 's/^ //')
|
||||
APP_LONG_VERSION=${APP_RELEASE}.${APP_REVISION}
|
||||
APP_SUFFIX=$(grep "^APP_SUFFIX" "${FUNCS_DIR}/web/config.py" | cut -d"=" -f2 | sed 's/ //g' | sed "s/'//g")
|
||||
APP_SUFFIX=$(grep "^APP_SUFFIX" "${FUNCS_DIR}/web/version.py" | cut -d"=" -f2 | sed 's/ //g' | sed "s/'//g")
|
||||
if [ -n "${APP_SUFFIX}" ]; then
|
||||
APP_LONG_VERSION=${APP_LONG_VERSION}-${APP_SUFFIX}
|
||||
fi
|
||||
@@ -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
|
||||
|
||||
@@ -288,6 +288,9 @@ _complete_bundle() {
|
||||
|
||||
# Build node modules
|
||||
pushd "${SOURCE_DIR}/web" > /dev/null || exit
|
||||
corepack enable
|
||||
yarn set version berry
|
||||
yarn set version 3
|
||||
yarn install
|
||||
yarn run bundle
|
||||
|
||||
|
||||
@@ -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.\
|
||||
|
||||
@@ -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,11 +21,11 @@ if [ ! -d .git ] && [ ! -f .git/config ]; then
|
||||
fi
|
||||
|
||||
# Get the required package info
|
||||
APP_RELEASE=$(grep "^APP_RELEASE" web/config.py | cut -d"=" -f2 | sed 's/ //g')
|
||||
APP_REVISION=$(grep "^APP_REVISION" web/config.py | cut -d"=" -f2 | sed 's/ //g')
|
||||
APP_NAME=$(grep "^APP_NAME" web/config.py | cut -d"=" -f2 | sed "s/'//g" | sed 's/^ //')
|
||||
APP_RELEASE=$(grep "^APP_RELEASE" web/version.py | cut -d"=" -f2 | sed 's/ //g')
|
||||
APP_REVISION=$(grep "^APP_REVISION" web/version.py | cut -d"=" -f2 | sed 's/ //g')
|
||||
APP_NAME=$(grep "^APP_NAME" web/branding.py | cut -d"=" -f2 | sed "s/'//g" | sed 's/^ //')
|
||||
APP_LONG_VERSION=${APP_RELEASE}.${APP_REVISION}
|
||||
APP_SUFFIX=$(grep "^APP_SUFFIX" web/config.py | cut -d"=" -f2 | sed 's/ //g' | sed "s/'//g")
|
||||
APP_SUFFIX=$(grep "^APP_SUFFIX" web/version.py | cut -d"=" -f2 | sed 's/ //g' | sed "s/'//g")
|
||||
if [ -n "${APP_SUFFIX}" ]; then
|
||||
export APP_LONG_VERSION=${APP_LONG_VERSION}-${APP_SUFFIX}
|
||||
fi
|
||||
|
||||
@@ -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
|
||||
#
|
||||
#########################################################################
|
||||
@@ -21,11 +21,11 @@ if [ ! -d .git ] && [ ! -f .git/config ]; then
|
||||
fi
|
||||
|
||||
# Get the required package info
|
||||
APP_RELEASE=$(grep "^APP_RELEASE" web/config.py | cut -d"=" -f2 | sed 's/ //g')
|
||||
APP_REVISION=$(grep "^APP_REVISION" web/config.py | cut -d"=" -f2 | sed 's/ //g')
|
||||
APP_NAME=$(grep "^APP_NAME" web/config.py | cut -d"=" -f2 | sed "s/'//g" | sed 's/^ //')
|
||||
APP_RELEASE=$(grep "^APP_RELEASE" web/version.py | cut -d"=" -f2 | sed 's/ //g')
|
||||
APP_REVISION=$(grep "^APP_REVISION" web/version.py | cut -d"=" -f2 | sed 's/ //g')
|
||||
APP_NAME=$(grep "^APP_NAME" web/branding.py | cut -d"=" -f2 | sed "s/'//g" | sed 's/^ //')
|
||||
APP_LONG_VERSION=${APP_RELEASE}.${APP_REVISION}
|
||||
APP_SUFFIX=$(grep "^APP_SUFFIX" web/config.py | cut -d"=" -f2 | sed 's/ //g' | sed "s/'//g")
|
||||
APP_SUFFIX=$(grep "^APP_SUFFIX" web/version.py | cut -d"=" -f2 | sed 's/ //g' | sed "s/'//g")
|
||||
if [ -n "${APP_SUFFIX}" ]; then
|
||||
export APP_LONG_VERSION=${APP_LONG_VERSION}-${APP_SUFFIX}
|
||||
fi
|
||||
|
||||
@@ -23,7 +23,7 @@ Flask-Compress==1.*
|
||||
Flask-Paranoid==0.*
|
||||
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.3.*; python_version > '3.7'
|
||||
Flask-Security-Too==5.1.*; python_version <= '3.7'
|
||||
Flask-SocketIO==5.3.*
|
||||
WTForms==3.1.*; python_version > '3.7'
|
||||
@@ -37,11 +37,11 @@ psycopg[c]==3.1.12
|
||||
python-dateutil==2.*
|
||||
SQLAlchemy==2.*
|
||||
bcrypt==4.0.*
|
||||
cryptography==41.0.*
|
||||
cryptography==42.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"
|
||||
@@ -60,3 +60,6 @@ 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'
|
||||
jsonformatter~=0.3.2
|
||||
@@ -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
|
||||
//
|
||||
//////////////////////////////////////////////////////////////
|
||||
@@ -72,12 +72,10 @@ const getAppDataPath = () => {
|
||||
default:
|
||||
if (platform().startsWith('win')) {
|
||||
appDataPath = path.join(process.env.APPDATA, 'pgadmin');
|
||||
} else if ('XDG_CONFIG_HOME' in process.env) {
|
||||
appDataPath = path.join(process.env.XDG_CONFIG_HOME, 'pgadmin');
|
||||
} else {
|
||||
if ('XDG_CONFIG_HOME' in process.env) {
|
||||
appDataPath = path.join(process.env.XDG_CONFIG_HOME, 'pgadmin');
|
||||
} else {
|
||||
appDataPath = path.join(homedir(), '.config', 'pgadmin');
|
||||
}
|
||||
appDataPath = path.join(homedir(), '.config', 'pgadmin');
|
||||
}
|
||||
}
|
||||
|
||||
@@ -108,12 +106,10 @@ const getLocalAppDataPath = () => {
|
||||
default:
|
||||
if (platform().startsWith('win')) {
|
||||
localAppDataPath = path.join(process.env.LOCALAPPDATA, 'pgadmin');
|
||||
} else if ('XDG_DATA_HOME' in process.env) {
|
||||
localAppDataPath = path.join(process.env.XDG_DATA_HOME, 'pgadmin');
|
||||
} else {
|
||||
if ('XDG_DATA_HOME' in process.env) {
|
||||
localAppDataPath = path.join(process.env.XDG_DATA_HOME, 'pgadmin');
|
||||
} else {
|
||||
localAppDataPath = path.join(homedir(), '.local', 'share', 'pgadmin');
|
||||
}
|
||||
localAppDataPath = path.join(homedir(), '.local', 'share', 'pgadmin');
|
||||
}
|
||||
}
|
||||
|
||||
@@ -412,14 +408,12 @@ let ConfigureStore = {
|
||||
...this.jsonData,
|
||||
...key,
|
||||
};
|
||||
} else {
|
||||
if(value === '' || value == null || typeof(value) == 'undefined') {
|
||||
if(this.jsonData[key] !== undefined) {
|
||||
delete this.jsonData[key];
|
||||
}
|
||||
} else {
|
||||
this.jsonData[key] = value;
|
||||
} else if(value === '' || value == null || typeof(value) == 'undefined') {
|
||||
if(this.jsonData[key] !== undefined) {
|
||||
delete this.jsonData[key];
|
||||
}
|
||||
} else {
|
||||
this.jsonData[key] = value;
|
||||
}
|
||||
},
|
||||
};
|
||||
|
||||
@@ -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];
|
||||
}
|
||||
@@ -633,10 +633,8 @@ function updateCheckedMenuItem(menuItem) {
|
||||
sm.checked = menuItem.checked
|
||||
}
|
||||
})
|
||||
} else {
|
||||
if (sub.label == menuItem.label && type == 'checkbox') {
|
||||
sub.checked = menuItem.checked
|
||||
}
|
||||
} else if (sub.label == menuItem.label && type == 'checkbox') {
|
||||
sub.checked = menuItem.checked
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
@@ -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
|
||||
//
|
||||
//////////////////////////////////////////////////////////////
|
||||
|
||||
@@ -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
|
||||
#
|
||||
##########################################################################
|
||||
|
||||
@@ -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,28 @@
|
||||
##########################################################################
|
||||
#
|
||||
# pgAdmin 4 - PostgreSQL Tools
|
||||
#
|
||||
# Copyright (C) 2013 - 2024, The pgAdmin Development Team
|
||||
# This software is released under the PostgreSQL Licence
|
||||
#
|
||||
##########################################################################
|
||||
|
||||
##########################################################################
|
||||
# Application branding
|
||||
##########################################################################
|
||||
|
||||
# Name of the application to display in the UI
|
||||
APP_NAME = 'pgAdmin 4'
|
||||
APP_ICON = 'pg-icon'
|
||||
|
||||
# To help define the configuration directory and data directory
|
||||
APP_SHORT_NAME = 'pgadmin4'
|
||||
APP_PATH = 'pgadmin'
|
||||
APP_WIN_PATH = "pgAdmin"
|
||||
|
||||
# Copyright string for display in the app
|
||||
APP_COPYRIGHT = 'Copyright (C) 2013 - 2024, The pgAdmin Development Team'
|
||||
|
||||
# User ID (email address) to use for the default user in desktop mode.
|
||||
# The default should be fine here, as it's not exposed in the app.
|
||||
APP_DEFAULT_EMAIL = 'pgadmin4@pgadmin.org'
|
||||
@@ -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
|
||||
@@ -15,6 +15,7 @@ import builtins
|
||||
import logging
|
||||
import os
|
||||
import sys
|
||||
from collections import OrderedDict
|
||||
|
||||
# We need to include the root directory in sys.path to ensure that we can
|
||||
# find everything we need when running in the standalone runtime.
|
||||
@@ -30,46 +31,10 @@ CONFIG_DATABASE_CONNECTION_POOL_SIZE = 5
|
||||
CONFIG_DATABASE_CONNECTION_MAX_OVERFLOW = 100
|
||||
|
||||
from pgadmin.utils import env, IS_WIN, fs_short_path
|
||||
|
||||
##########################################################################
|
||||
# Application settings
|
||||
##########################################################################
|
||||
|
||||
# Name of the application to display in the UI
|
||||
APP_NAME = 'pgAdmin 4'
|
||||
APP_ICON = 'pg-icon'
|
||||
|
||||
##########################################################################
|
||||
# Application settings
|
||||
##########################################################################
|
||||
|
||||
# NOTE!!!
|
||||
# If you change any of APP_RELEASE, APP_REVISION or APP_SUFFIX, then you
|
||||
# must also change APP_VERSION_INT to match.
|
||||
#
|
||||
|
||||
# Application version number components
|
||||
APP_RELEASE = 8
|
||||
APP_REVISION = 1
|
||||
|
||||
# Application version suffix, e.g. 'beta1', 'dev'. Usually an empty string
|
||||
# for GA releases.
|
||||
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 = 80100
|
||||
|
||||
# DO NOT CHANGE!
|
||||
# The application version string, constructed from the components
|
||||
if not APP_SUFFIX:
|
||||
APP_VERSION = '%s.%s' % (APP_RELEASE, APP_REVISION)
|
||||
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'
|
||||
from version import APP_VERSION, APP_RELEASE, APP_REVISION, APP_SUFFIX, \
|
||||
APP_VERSION_INT
|
||||
from branding import APP_NAME, APP_ICON, APP_COPYRIGHT, APP_PATH, \
|
||||
APP_WIN_PATH, APP_SHORT_NAME, APP_DEFAULT_EMAIL
|
||||
|
||||
##########################################################################
|
||||
# Misc stuff
|
||||
@@ -133,7 +98,7 @@ WTF_CSRF_HEADERS = ['X-pgA-CSRFToken']
|
||||
|
||||
# User ID (email address) to use for the default user in desktop mode.
|
||||
# The default should be fine here, as it's not exposed in the app.
|
||||
DESKTOP_USER = 'pgadmin4@pgadmin.org'
|
||||
DESKTOP_USER = APP_DEFAULT_EMAIL
|
||||
|
||||
# This option allows the user to host the application on a LAN
|
||||
# Default hosting is on localhost (DEFAULT_SERVER='localhost').
|
||||
@@ -250,18 +215,21 @@ APP_VERSION_EXTN = ('.css', '.js', '.html', '.svg', '.png', '.gif', '.ico')
|
||||
|
||||
# Data directory for storage of config settings etc. This shouldn't normally
|
||||
# need to be changed - it's here as various other settings depend on it.
|
||||
# On Windows, we always store data in %APPDATA%\pgAdmin. On other platforms,
|
||||
# if we're in server mode we use /var/lib/pgadmin, otherwise ~/.pgadmin
|
||||
# On Windows, we always store data in %APPDATA%\$(APP_WIN_PATH). On other
|
||||
# platforms, if we're in server mode we use /var/lib/$(APP_PATH),
|
||||
# otherwise ~/.$(APP_PATH)
|
||||
if IS_WIN:
|
||||
# Use the short path on windows
|
||||
DATA_DIR = os.path.realpath(
|
||||
os.path.join(fs_short_path(env('APPDATA')), "pgAdmin")
|
||||
os.path.join(fs_short_path(env('APPDATA')), APP_WIN_PATH)
|
||||
)
|
||||
else:
|
||||
if SERVER_MODE:
|
||||
DATA_DIR = '/var/lib/pgadmin'
|
||||
DATA_DIR = os.path.join('/var/lib/', APP_PATH)
|
||||
else:
|
||||
DATA_DIR = os.path.realpath(os.path.expanduser('~/.pgadmin/'))
|
||||
DATA_DIR = os.path.realpath(
|
||||
os.path.expanduser('~/' + '.' + APP_PATH + '/')
|
||||
)
|
||||
|
||||
# An optional login banner to show security warnings/disclaimers etc. at
|
||||
# login and password recovery etc. HTML may be included for basic formatting,
|
||||
@@ -289,15 +257,29 @@ CONSOLE_LOG_LEVEL = logging.WARNING
|
||||
FILE_LOG_LEVEL = logging.WARNING
|
||||
|
||||
# Log format.
|
||||
JSON_LOGGER = False
|
||||
CONSOLE_LOG_FORMAT_JSON = OrderedDict([
|
||||
("time", "asctime"),
|
||||
("message", "message"),
|
||||
("level", "levelname")
|
||||
])
|
||||
|
||||
FILE_LOG_FORMAT_JSON = OrderedDict([
|
||||
("time", "asctime"),
|
||||
("message", "message"),
|
||||
("level", "levelname")
|
||||
])
|
||||
|
||||
|
||||
CONSOLE_LOG_FORMAT = '%(asctime)s: %(levelname)s\t%(name)s:\t%(message)s'
|
||||
FILE_LOG_FORMAT = '%(asctime)s: %(levelname)s\t%(name)s:\t%(message)s'
|
||||
|
||||
# Log file name. This goes in the data directory, except on non-Windows
|
||||
# platforms in server mode.
|
||||
if SERVER_MODE and not IS_WIN:
|
||||
LOG_FILE = '/var/log/pgadmin/pgadmin4.log'
|
||||
LOG_FILE = os.path.join('/var/log', APP_PATH, APP_SHORT_NAME + '.log')
|
||||
else:
|
||||
LOG_FILE = os.path.join(DATA_DIR, 'pgadmin4.log')
|
||||
LOG_FILE = os.path.join(DATA_DIR, APP_SHORT_NAME + '.log')
|
||||
|
||||
# Log rotation setting
|
||||
# Log file will be rotated considering values for LOG_ROTATION_SIZE
|
||||
@@ -341,7 +323,8 @@ CONFIG_DATABASE_URI = ''
|
||||
# The default path to the SQLite database used to store user accounts and
|
||||
# settings. This default places the file in the same directory as this
|
||||
# config file, but generates an absolute path for use througout the app.
|
||||
SQLITE_PATH = env('SQLITE_PATH') or os.path.join(DATA_DIR, 'pgadmin4.db')
|
||||
SQLITE_PATH = env('SQLITE_PATH') or \
|
||||
os.path.join(DATA_DIR, APP_SHORT_NAME + '.db')
|
||||
|
||||
# SQLITE_TIMEOUT will define how long to wait before throwing the error -
|
||||
# OperationError due to database lock. On slower system, you may need to change
|
||||
@@ -720,6 +703,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
|
||||
##########################################################################
|
||||
@@ -812,7 +802,12 @@ OAUTH2_CONFIG = [
|
||||
# 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
|
||||
'OAUTH2_SSL_CERT_VERIFICATION': True,
|
||||
# set this variable to invalidate the session of the oauth2 provider
|
||||
# Example for keycloak:
|
||||
# 'OAUTH2_LOGOUT_URL':
|
||||
# 'https://example.com/realms/master/protocol/openid-connect/logout?post_logout_redirect_uri={redirect_uri}&id_token_hint={id_token}'
|
||||
'OAUTH2_LOGOUT_URL': None
|
||||
}
|
||||
]
|
||||
|
||||
@@ -902,6 +897,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
|
||||
#############################################################################
|
||||
|
||||
@@ -7,7 +7,7 @@ const webpackAliasToJestModules = ()=>{
|
||||
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('/')) {
|
||||
if(ap.endsWith('/') || ap.endsWith('\\')) {
|
||||
ret[`^${an}/(.*)$`] = ap + '$1';
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -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
|
||||
#
|
||||
##########################################################################
|
||||
|
||||
@@ -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
|
||||
#
|
||||
##########################################################################
|
||||
|
||||
@@ -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
|
||||
#
|
||||
##########################################################################
|
||||
|
||||