Compare commits

..
36 Commits
Author SHA1 Message Date
Akshay Joshi a144815201 Fixed an issue where migration on external database is not working. #5941 2023-03-20 16:18:21 +05:30
Akshay Joshi c6220bd8e2 Fixed an issue where the file name in the query tool tab was not changing if another file is opened. #5909 2023-03-08 16:59:36 +05:30
Akshay Joshi bff425f49e Hardcoded NWjs version to 0.72.0 as the latest version throws error on CentOS 7 2023-03-06 15:39:18 +05:30
Akshay Joshi 843925e5bc Ensure that the database migration does not fail with a NoSuchTableError exception. #5870 2023-03-06 15:36:09 +05:30
Akshay Joshi 18ee965da6 Update version for release v6.21 2023-03-01 16:56:06 +05:30
Akshay Joshi ca534aaabc Update Dependencies. 2023-03-01 16:55:17 +05:30
Akshay Joshi f7acbad684 Update release note. 2023-03-01 14:13:03 +05:30
Dave Page d0c53e1621 Add missing import. 2023-03-01 13:44:07 +05:30
Akshay Joshi c75f72e6e2 Fixed the RESQL test cases for Sequences. #5810 2023-03-01 13:43:46 +05:30
Akshay Joshi 6fa5d1f061 Fixed an issue where the database server is not connected using a service file. #5889 2023-03-01 13:41:16 +05:30
Nikhil Mohite 12c44cd0fa Fixed schema diff UI alignment issues. 2023-03-01 13:39:31 +05:30
Akshay Joshi 623204d062 Update release note 2023-03-01 13:39:31 +05:30
Aditya Toshniwal 004e777032 Fix an issue where sequence owner is remove on sequence edit. #5810 2023-03-01 13:39:27 +05:30
Aditya Toshniwal 0e9d59fe51 Fix an issue where query tool is stripping spaces in grid cell. #5803 2023-03-01 13:33:22 +05:30
Akshay Joshi 919d973ec0 Fixed an issue where the user can't create trigger AFTER UPDATE OF. #5790 2023-03-01 13:33:22 +05:30
Aditya Toshniwal e86363bbc0 Do not allow to save invalid JSON in query tool JSON editor. #5822 2023-03-01 13:33:19 +05:30
Aditya Toshniwal feaa47497c Handle MERGE operation in query tool explain introduced in PostgreSQL 15. #5872 2023-03-01 13:27:22 +05:30
Akshay Joshi a4451fead8 Update release note 2023-03-01 13:27:22 +05:30
Pravesh Sharma 5e8d99fbbd Fixed an issue where query was not pasted to editor after trojan source warning. #5760 2023-03-01 13:27:22 +05:30
Aditya Toshniwal 45b7abd267 Few dashboard graph improvements. 2023-03-01 13:27:18 +05:30
Akshay Joshi 724fa361ea Ensure that content on the DDL comparison panel should get refreshed on selecting the object using the up and down arrow keys. #5747 2023-03-01 12:39:32 +05:30
Anil Sahoo eb68176ee1 Fixed an issue where Clear Saved Password should be disabled if the password is already cleared. #5773 2023-03-01 12:39:26 +05:30
Akshay Joshi 65ede27a38 Update release note 2023-03-01 12:34:47 +05:30
Pravesh Sharma 92c9d757b2 Fix for query tool prompting for unsaved changes even if no changes have been made. #5756 2023-03-01 12:34:47 +05:30
Akshay Joshi 465106206b Ensure that the schema diff tool should pick up the change in the column grants. #5269 2023-03-01 12:34:47 +05:30
Akshay Joshi 81dc2161cb Fixed an issue where pgAdmin failed to connect when the Postgres password included special characters. #5847 2023-03-01 12:34:42 +05:30
Yogesh Mahajan ae1eca5b3f Removed logging added for feature test failure. Added more assets to avoid false failures. 2023-03-01 12:28:57 +05:30
Paul Milbank c599edb342 Add additional logging for successful logins and user creation. #5842 2023-03-01 12:28:57 +05:30
Anil Sahoo 4d03fbd34f Fix an issue where the maintenance dialog for Materialized View gives an error. #5764 2023-03-01 12:28:57 +05:30
Yogesh Mahajan b2b52b2f66 Added logging for feature test failure on jenkins job. 2023-03-01 12:28:57 +05:30
Akshay Joshi 23c3a27201 Correct the OR operator. #5758 2023-03-01 12:28:57 +05:30
Akshay Joshi c8356f2bfd Update release note 2023-03-01 12:28:57 +05:30
Pravesh Sharma b5e7e7848c Fixed an issue where lock layout menu was not in sync with preferences. #5758 2023-03-01 12:28:57 +05:30
Aditya Toshniwal f58dbf36bb Allow changing cardinality notation in ERD to use Chen notation. #5832 2023-03-01 12:28:56 +05:30
Akshay Joshi 57431ca754 Ensure that Grant column permission to a view is visible in the SQL tab. #5685 2023-03-01 12:28:56 +05:30
Dave Page ab62af0d55 Update copyright notices in Dockerfile and Makefile and ensure they don't get missed again. 2023-03-01 12:28:56 +05:30
1058 changed files with 46925 additions and 74773 deletions

No files matched your search

-55
View File
@@ -1,55 +0,0 @@
version: 2
updates:
- package-ecosystem: "docker"
directory: "/"
schedule:
interval: "daily"
labels:
- "Dependencies"
commit-message:
prefix: "Docker dependency"
- package-ecosystem: "pip"
directory: "/"
schedule:
interval: "daily"
labels:
- "Dependencies"
commit-message:
prefix: "Python dependency"
- package-ecosystem: "pip"
directory: "/tools"
schedule:
interval: "daily"
labels:
- "Dependencies"
commit-message:
prefix: "Python dependency"
- package-ecosystem: "pip"
directory: "/web/regression"
schedule:
interval: "daily"
labels:
- "Dependencies"
commit-message:
prefix: "Python dependency"
- package-ecosystem: "npm"
directory: "/runtime"
schedule:
interval: "daily"
labels:
- "Dependencies"
commit-message:
prefix: "Python dependency"
- package-ecosystem: "npm"
directory: "/web"
schedule:
interval: "daily"
labels:
- "Dependencies"
commit-message:
prefix: "Python dependency"
@@ -1,23 +0,0 @@
name: Check container build
on:
push:
branches: [ "master" ]
pull_request:
branches: [ "master" ]
workflow_dispatch:
concurrency:
group: '${{ github.workflow }} @ ${{ github.event.pull_request.head.label || github.head_ref || github.ref }}'
cancel-in-progress: true
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Build the container
run: docker build .
+39
View File
@@ -0,0 +1,39 @@
name: Check documentation build
on:
# Triggers the workflow on push or pull request events but only for the "master" branch
push:
branches: [ "master" ]
pull_request:
branches: [ "master" ]
# Allows you to run this workflow manually from the Actions tab
workflow_dispatch:
# A workflow run is made up of one or more jobs that can run sequentially or in parallel
jobs:
# This workflow contains a single job called "build"
build:
# The type of runner that the job will run on
runs-on: ubuntu-latest
# Steps represent a sequence of tasks that will be executed as part of the job
steps:
# Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it
- uses: actions/checkout@v3
# Run the tests
- name: Install dependencies
run: sudo apt install build-essential python3-dev libpq-dev libffi-dev libssl-dev libkrb5-dev zlib1g-dev
- name: Install requirements
run: pip install -r requirements.txt
- name: Install sphinx
run: pip install sphinx
- name: Install sphinx youtube
run: pip install sphinxcontrib-youtube
- name: Check the documentation
run: make docs
-61
View File
@@ -1,61 +0,0 @@
name: Check documentation builds
on:
push:
branches: [ "master" ]
pull_request:
branches: [ "master" ]
workflow_dispatch:
concurrency:
group: '${{ github.workflow }} @ ${{ github.event.pull_request.head.label || github.head_ref || github.ref }}'
cancel-in-progress: true
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Install platform dependencies
run: |
sudo apt update
sudo apt install -y libpq-dev libffi-dev libssl-dev libkrb5-dev zlib1g-dev latexmk texlive-latex-recommended tex-gyre texlive-latex-extra
- name: Install Python dependencies
run: make install-python
- name: Check the HTML build
run: |
. venv/bin/activate
make docs
- name: Archive HTML
uses: actions/upload-artifact@v3
with:
name: pgadmin4-html-build-output
path: docs/en_US/_build/html/*
- name: Check the ePub build
run: |
. venv/bin/activate
make docs-epub
- name: Archive ePub
uses: actions/upload-artifact@v3
with:
name: pgadmin4-epub-build-output
path: docs/en_US/_build/epub/pgAdmin4.epub
- name: Check the PDF build
run: |
. venv/bin/activate
make docs-pdf
- name: Archive PDF
uses: actions/upload-artifact@v3
with:
name: pgadmin4-pdf-build-output
path: docs/en_US/_build/latex/pgadmin4.pdf
+16 -10
View File
@@ -1,30 +1,36 @@
name: Check Javascript style
on:
# Triggers the workflow on push or pull request events but only for the "master" branch
push:
branches: [ "master" ]
pull_request:
branches: [ "master" ]
# Allows you to run this workflow manually from the Actions tab
workflow_dispatch:
concurrency:
group: '${{ github.workflow }} @ ${{ github.event.pull_request.head.label || github.head_ref || github.ref }}'
cancel-in-progress: true
# A workflow run is made up of one or more jobs that can run sequentially or in parallel
jobs:
# This workflow contains a single job called "build"
build:
# The type of runner that the job will run on
runs-on: ubuntu-latest
# Steps represent a sequence of tasks that will be executed as part of the job
steps:
# Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it
- uses: actions/checkout@v3
# Run the tests
- name: Install nodejs
run: sudo apt install nodejs
- name: Install yarn
run: sudo npm install --global yarn
- name: Install Node modules
run: |
cd web
yarn install
run: cd web && yarn install
- name: Run the linter
run: |
cd web
yarn run linter
run: cd web && yarn run linter
-39
View File
@@ -1,39 +0,0 @@
name: Check Python build
on:
push:
branches: [ "master" ]
pull_request:
branches: [ "master" ]
workflow_dispatch:
concurrency:
group: '${{ github.workflow }} @ ${{ github.event.pull_request.head.label || github.head_ref || github.ref }}'
cancel-in-progress: true
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Install platform dependencies
run: |
sudo apt update
sudo apt install -y libpq-dev libffi-dev libssl-dev libkrb5-dev zlib1g-dev
- name: Install Python dependencies
run: make install-python
- name: Check the Python wheel build
run: |
. venv/bin/activate
make pip
- name: Archive Python wheel
uses: actions/upload-artifact@v3
with:
name: pgadmin4-python-build-output
path: dist/*
+11 -9
View File
@@ -1,28 +1,30 @@
name: Check Python style
on:
# Triggers the workflow on push or pull request events but only for the "master" branch
push:
branches: [ "master" ]
pull_request:
branches: [ "master" ]
# Allows you to run this workflow manually from the Actions tab
workflow_dispatch:
concurrency:
group: '${{ github.workflow }} @ ${{ github.event.pull_request.head.label || github.head_ref || github.ref }}'
cancel-in-progress: true
# A workflow run is made up of one or more jobs that can run sequentially or in parallel
jobs:
# This workflow contains a single job called "build"
build:
# The type of runner that the job will run on
runs-on: ubuntu-latest
# Steps represent a sequence of tasks that will be executed as part of the job
steps:
# Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it
- uses: actions/checkout@v3
- name: Install Python dependencies
run: |
sudo pip install --upgrade pip
sudo pip install pycodestyle
# Run the tests
- name: Install pycodestyle
run: pip install pycodestyle
- name: Check the documentation
run: pycodestyle --config=.pycodestyle docs/
@@ -34,4 +36,4 @@ jobs:
run: pycodestyle --config=.pycodestyle web/
- name: Check the tools
run: pycodestyle --config=.pycodestyle tools/
run: pycodestyle --config=.pycodestyle tools/
-39
View File
@@ -1,39 +0,0 @@
name: Check tarball build
on:
push:
branches: [ "master" ]
pull_request:
branches: [ "master" ]
workflow_dispatch:
concurrency:
group: '${{ github.workflow }} @ ${{ github.event.pull_request.head.label || github.head_ref || github.ref }}'
cancel-in-progress: true
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Install platform dependencies
run: |
sudo apt update
sudo apt install -y libpq-dev libffi-dev libssl-dev libkrb5-dev zlib1g-dev
- name: Install Python dependencies
run: make install-python
- name: Check the tarball build
run: |
. venv/bin/activate
make src
- name: Archive source tarball
uses: actions/upload-artifact@v3
with:
name: pgadmin4-tarball-build-output
path: dist/*
-34
View File
@@ -1,34 +0,0 @@
name: Check translations
on:
push:
branches: [ "master" ]
pull_request:
branches: [ "master" ]
workflow_dispatch:
concurrency:
group: '${{ github.workflow }} @ ${{ github.event.pull_request.head.label || github.head_ref || github.ref }}'
cancel-in-progress: true
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Install platform dependencies
run: |
sudo apt update
sudo apt install -y python3-babel python3-jinja2
- name: Check we can extract messages
run: make msg-extract
- name: Check we can update the catalogs
run: make msg-update
- name: Check the catalogs will compile
run: make msg-compile
@@ -1,39 +0,0 @@
name: Run Javascript tests
on:
push:
branches: [ "master" ]
pull_request:
branches: [ "master" ]
workflow_dispatch:
concurrency:
group: '${{ github.workflow }} @ ${{ github.event.pull_request.head.label || github.head_ref || github.ref }}'
cancel-in-progress: true
jobs:
build:
strategy:
fail-fast: false
matrix:
os: [macos-latest, ubuntu-latest, windows-latest]
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v3
- name: Upgrade yarn
run: |
yarn set version berry
- name: Install Node modules
run: |
cd web
yarn install
- name: Run the tests
run: |
cd web
yarn run test:karma-once
-285
View File
@@ -1,285 +0,0 @@
# This workflow requires the following configuration in Github
#
# Vars:
# ENABLE_EPAS_TESTS - Set to true to enable this test
#
# Secrets:
# EDB_REPO_USERNAME - Username for accessing EDB Repos 1.0
# EDB_REPO_PASSWORD - Password for accessing EDB Repos 1.0
# EDB_SBP_URL - URL to the EDB StackBuilder Plus catalog
name: Run Python tests on EPAS
on:
push:
branches: [ "master" ]
pull_request:
branches: [ "master" ]
workflow_dispatch:
concurrency:
group: '${{ github.workflow }} @ ${{ github.event.pull_request.head.label || github.head_ref || github.ref }}'
cancel-in-progress: true
jobs:
build:
# Only run if the tests are enabled
# TODO: Figure out a way to test for the presence of the secrets instead
if: vars.ENABLE_EPAS_TESTS == 'true'
strategy:
fail-fast: false
matrix:
os: [ubuntu-22.04, windows-latest]
pgver: [11, 12, 13, 14, 15]
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v3
- name: Setup the EDB APT repo on Linux
if: ${{ matrix.os == 'ubuntu-22.04' }}
run: |
sudo su -c 'echo "deb [arch=amd64] https://apt.enterprisedb.com/$(lsb_release -cs)-edb/ $(lsb_release -cs) main" > /etc/apt/sources.list.d/edb-$(lsb_release -cs).list'
sudo su -c 'echo "machine apt.enterprisedb.com login ${{ secrets.EDB_REPO_USERNAME }} password ${{ secrets.EDB_REPO_PASSWORD }}" > /etc/apt/auth.conf.d/edb.conf'
sudo wget -q -O - https://apt.enterprisedb.com/edb-deb.gpg.key | sudo apt-key add -
- name: Install platform dependencies on Linux
if: ${{ matrix.os == 'ubuntu-22.04' }}
run: |
sudo apt update
sudo apt install -y libpq-dev libffi-dev libssl-dev libkrb5-dev zlib1g-dev edb-as${{ matrix.pgver }}-server edb-as${{ matrix.pgver }}-server-pldebugger edb-as${{ matrix.pgver }}-pgagent
- name: Install platform dependencies on Windows
if: ${{ matrix.os == 'windows-latest' }}
run: |
FOR /f "delims=" %%F IN ('python tools\get_sb_package.py "${{ secrets.EDB_SBP_URL }}" "edb_as${{ matrix.pgver }}_dbserver" "windows-x64"') DO SET INSTALLER_EXE=%%F
ECHO Running %INSTALLER_EXE%...
%INSTALLER_EXE% --prefix C:\EPAS\${{ matrix.pgver }} --datadir C:\EPAS\${{ matrix.pgver }}\data --serverport 58${{ matrix.pgver }} --superpassword enterprisedb --create_samples no --install_runtimes 0 --mode unattended --unattendedmodeui none --disable-components stackbuilderplus${{ matrix.pgver < 15 && ',pgadmin4' || '' }}
choco install -y mitkerberos
REM Ignore error 3010 (reboot required)
IF %ERRORLEVEL% EQU 3010 cmd /c "exit /b 0"
shell: cmd
- name: Create the tablespace directory on Linux
if: ${{ matrix.os == 'ubuntu-22.04' }}
run: |
sudo mkdir -p /var/lib/edb-as/tablespaces/${{ matrix.pgver }}
sudo chown enterprisedb:enterprisedb /var/lib/edb-as/tablespaces/${{ matrix.pgver }}
- name: Create the tablespace directory on Windows
if: ${{ matrix.os == 'windows-latest' }}
run: |
mkdir "C:\EPAS\${{ matrix.pgver }}\tablespaces"
icacls "C:\EPAS\${{ matrix.pgver }}\tablespaces" /grant "NETWORK SERVICE":(OI)(CI)F /T
shell: cmd
- name: Start PostgreSQL on Linux
if: ${{ matrix.os == 'ubuntu-22.04' }}
run: |
# Note: we use a custom port for PostgreSQL as the runner may already have a version of PostgreSQL installed
sudo su -c "echo local all all trust > /etc/edb-as/${{ matrix.pgver }}/main/pg_hba.conf"
sudo sed -i "s/port = 544[0-9]/port = 58${{ matrix.pgver }}/g" /etc/edb-as/${{ matrix.pgver }}/main/postgresql.conf
sudo sed -i "s/shared_preload_libraries = '/shared_preload_libraries = '\$libdir\/plugin_debugger,/g" /etc/edb-as/${{ matrix.pgver }}/main/postgresql.conf
sudo su - enterprisedb -c "mkdir -p /var/run/edb-as/${{ matrix.pgver }}-main.epas_stat_tmp"
sudo systemctl restart edb-as@${{ matrix.pgver }}-main
until sudo runuser -l enterprisedb -c "/usr/lib/edb-as/${{ matrix.pgver }}/bin/pg_isready -p 58${{ matrix.pgver }}" 2>/dev/null; do
>&2 echo "EPAS is unavailable - sleeping for 2 seconds"
sleep 2
done
psql -U enterprisedb -d postgres -p 58${{ matrix.pgver }} -c 'CREATE EXTENSION IF NOT EXISTS pgagent;'
- name: Install Python dependencies on Linux
if: ${{ matrix.os == 'ubuntu-22.04' }}
run: make install-python-testing
- name: Install Python dependencies on Windows
if: ${{ matrix.os == 'windows-latest' }}
run: |
SET LIB=C:\EPAS\${{ matrix.pgver }}\lib;%LIB%
SET INCLUDE=C:\EPAS\${{ matrix.pgver }}\include;%INCLUDE%
python -m venv venv
call venv\Scripts\activate.bat
python -m pip install --upgrade pip
pip install wheel sphinx sphinxcontrib-youtube -r web\regression\requirements.txt
shell: cmd
- name: Create the test configuration on Linux
if: ${{ matrix.os == 'ubuntu-22.04' }}
run: |
cat <<EOF > web/config_local.py
from config import *
# Debug mode
DEBUG = True
# App mode
SERVER_MODE = False
# Log
CONSOLE_LOG_LEVEL = DEBUG
FILE_LOG_LEVEL = DEBUG
DEFAULT_SERVER = '127.0.0.1'
UPGRADE_CHECK_ENABLED = False
LOG_FILE = "$(pwd)/var/pgadmin4.log"
SESSION_DB_PATH = "$(pwd)/var/sessions"
STORAGE_DIR = "$(pwd)/var/storage"
SQLITE_PATH = "$(pwd)/var/pgadmin4.db"
TEST_SQLITE_PATH = "$(pwd)/var/pgadmin4.db"
AZURE_CREDENTIAL_CACHE_DIR = "$(pwd)/var/azurecredentialcache"
EOF
cat <<EOF > web/regression/test_config.json
{
"pgAdmin4_login_credentials": {
"new_password": "NEWPASSWORD",
"login_password": "PASSWORD",
"login_username": "USER@EXAMPLE.COM"
},
"pgAdmin4_test_user_credentials": {
"new_password": "NEWPASSWORD",
"login_password": "PASSWORD",
"login_username": "USER2@EXAMPLE.COM"
},
"pgAdmin4_test_non_admin_credentials": {
"new_password": "NEWPASSWORD",
"login_password": "PASSWORD",
"login_username": "USER@EXAMPLE.COM"
},
"server_group": 1,
"server_credentials": [
{
"name": "EPAS ${{ matrix.pgver }}",
"comment": "EPAS ${{ matrix.pgver }} Server",
"db_username": "enterprisedb",
"host": "/var/run/edb-as",
"db_password": "",
"db_port": 58${{ matrix.pgver }},
"maintenance_db": "postgres",
"sslmode": "prefer",
"tablespace_path": "/var/lib/edb-as/tablespaces/${{ matrix.pgver }}",
"enabled": true,
"default_binary_paths": {
"pg": "",
"ppas": "/usr/lib/edb-as/${{ matrix.pgver }}/bin"
}
}
],
"server_update_data": [
{
"comment": "This is test update comment"
}
]
}
EOF
- name: Create the test configuration on Windows
if: ${{ matrix.os == 'windows-latest' }}
run: |
FOR /f "delims=" %%D IN ('python -c "import os; print(os.getcwd().replace('\\', '\\\\'))"') DO SET WORKING_DIR=%%D
> web\config_local.py (
@echo.from config import *
@echo.
@echo.# Debug mode
@echo.DEBUG = True
@echo.
@echo.# App mode
@echo.SERVER_MODE = False
@echo.
@echo.# Log
@echo.CONSOLE_LOG_LEVEL = DEBUG
@echo.FILE_LOG_LEVEL = DEBUG
@echo.
@echo.DEFAULT_SERVER = '127.0.0.1'
@echo.
@echo.UPGRADE_CHECK_ENABLED = False
@echo.
@echo.LOG_FILE = "%WORKING_DIR%\\var\\pgadmin4.log"
@echo.SESSION_DB_PATH = "%WORKING_DIR%\\var\\sessions"
@echo.STORAGE_DIR = "%WORKING_DIR%\\var\\storage"
@echo.SQLITE_PATH = "%WORKING_DIR%\\var\\pgadmin4.db"
@echo.TEST_SQLITE_PATH = "%WORKING_DIR%\\var\\test_pgadmin4.db"
@echo.AZURE_CREDENTIAL_CACHE_DIR = "%WORKING_DIR%\\var\\azurecredentialcache"
)
> web\regression\test_config.json (
@echo.{
@echo. "pgAdmin4_login_credentials": {
@echo. "new_password": "NEWPASSWORD",
@echo. "login_password": "PASSWORD",
@echo. "login_username": "USER@EXAMPLE.COM"
@echo. },
@echo. "pgAdmin4_test_user_credentials": {
@echo. "new_password": "NEWPASSWORD",
@echo. "login_password": "PASSWORD",
@echo. "login_username": "USER2@EXAMPLE.COM"
@echo. },
@echo. "pgAdmin4_test_non_admin_credentials": {
@echo. "new_password": "NEWPASSWORD",
@echo. "login_password": "PASSWORD",
@echo. "login_username": "USER@EXAMPLE.COM"
@echo. },
@echo. "server_group": 1,
@echo. "server_credentials": [
@echo. {
@echo. "name": "EPAS ${{ matrix.pgver }}",
@echo. "comment": "EPAS ${{ matrix.pgver }} Server",
@echo. "db_username": "enterprisedb",
@echo. "host": "127.0.0.1",
@echo. "db_password": "enterprisedb",
@echo. "db_port": 58${{ matrix.pgver }},
@echo. "maintenance_db": "postgres",
@echo. "sslmode": "prefer",
@echo. "tablespace_path": "C:\\EPAS\\${{ matrix.pgver }}\\tablespaces",
@echo. "enabled": true,
@echo. "default_binary_paths": {
@echo. "pg": "",
@echo. "ppas": "C:\\EPAS\\${{ matrix.pgver }}\\bin"
@echo. }
@echo. }
@echo. ],
@echo. "server_update_data": [
@echo. {
@echo. "comment": "This is test update comment"
@echo. }
@echo. ]
@echo.}
)
shell: cmd
- name: Run the tests on Linux
if: ${{ matrix.os == 'ubuntu-22.04' }}
run: |
. venv/bin/activate
make check-python
- name: Run the tests on Windows
if: ${{ matrix.os == 'windows-latest' }}
run: |
call venv\Scripts\activate.bat
python web\regression\runtests.py --exclude feature_tests
shell: cmd
- name: Archive server log
if: success() || failure()
uses: actions/upload-artifact@v3
with:
name: server-log-epas${{ matrix.pgver }}
path: var/pgadmin4.log
- name: Archive regression log
if: success() || failure()
uses: actions/upload-artifact@v3
with:
name: regression-log-epas${{ matrix.pgver }}
path: web/regression/regression.log
-304
View File
@@ -1,304 +0,0 @@
name: Run Python tests on PostgreSQL
# Note: we use a custom port (and installation directory on Windows) for
# PostgreSQL as the runners may already have a version installed.
on:
push:
branches: [ "master" ]
pull_request:
branches: [ "master" ]
workflow_dispatch:
concurrency:
group: '${{ github.workflow }} @ ${{ github.event.pull_request.head.label || github.head_ref || github.ref }}'
cancel-in-progress: true
jobs:
build:
strategy:
fail-fast: false
matrix:
os: [macos-latest, ubuntu-latest, windows-latest]
pgver: [11, 12, 13, 14, 15]
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v3
- name: Setup the PGDG APT repo on Linux
if: ${{ matrix.os == 'ubuntu-latest' }}
run: |
sudo sh -c 'echo "deb https://apt.postgresql.org/pub/repos/apt $(lsb_release -cs)-pgdg main" > /etc/apt/sources.list.d/pgdg.list'
wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add -
- name: Install platform dependencies on Linux
if: ${{ matrix.os == 'ubuntu-latest' }}
run: |
sudo apt update
sudo apt install -y libpq-dev libffi-dev libssl-dev libkrb5-dev zlib1g-dev postgresql-${{ matrix.pgver }} postgresql-${{ matrix.pgver }}-pldebugger pgagent
- name: Install platform dependencies on macOS
if: ${{ matrix.os == 'macos-latest' }}
run: |
brew install postgresql@${{ matrix.pgver }}
- name: Uninstall PostgreSQL if already present
if: ${{ matrix.os == 'windows-latest' }}
run: |
if exist "C:\Program Files\PostgreSQL\{{ matrix.pgver }}\uninstall-postgresql.exe" (
"C:\Program Files\PostgreSQL\{{ matrix.pgver }}\uninstall-postgresql.exe" --mode unattended
)
reg delete "HKLM\SOFTWARE\PostgreSQL" /f
shell: cmd
- name: Install platform dependencies on Windows
if: ${{ matrix.os == 'windows-latest' }}
run: |
choco install -y postgresql${{ matrix.pgver }} --params "/Password:postgres /Port:59${{ matrix.pgver }}" --ia "--prefix C:\PostgreSQL\${{ matrix.pgver }} --datadir C:\PostgreSQL\${{ matrix.pgver }}\data --install_runtimes 0 --disable-components pgAdmin,stackbuilder --enable-components server,commandlinetools"
choco install -y mitkerberos
REM Ignore error 3010 (reboot required)
IF %ERRORLEVEL% EQU 3010 cmd /c "exit /b 0"
shell: cmd
- name: Create the tablespace directory on Linux
if: ${{ matrix.os == 'ubuntu-latest' }}
run: |
sudo mkdir -p /var/lib/postgresql/tablespaces/${{ matrix.pgver }}
sudo chown postgres:postgres /var/lib/postgresql/tablespaces/${{ matrix.pgver }}
- name: Create the tablespace directory on macOS
if: ${{ matrix.os == 'macos-latest' }}
run: |
mkdir -p /usr/local/var/tablespaces/${{ matrix.pgver }}
- name: Create the tablespace directory on Windows
if: ${{ matrix.os == 'windows-latest' }}
run: |
mkdir "C:\PostgreSQL\${{ matrix.pgver }}\tablespaces"
icacls "C:\PostgreSQL\${{ matrix.pgver }}\tablespaces" /grant "NETWORK SERVICE":(OI)(CI)F /T
shell: cmd
- name: Start PostgreSQL on Linux
if: ${{ matrix.os == 'ubuntu-latest' }}
run: |
sudo su -c "echo local all all trust > /etc/postgresql/${{ matrix.pgver }}/main/pg_hba.conf"
sudo sed -i "s/port = 543[0-9]/port = 59${{ matrix.pgver }}/g" /etc/postgresql/${{ matrix.pgver }}/main/postgresql.conf
sudo sed -i "s/#shared_preload_libraries = ''/shared_preload_libraries = '\$libdir\/plugin_debugger'/g" /etc/postgresql/${{ matrix.pgver }}/main/postgresql.conf
sudo su - postgres -c "/usr/lib/postgresql/${{ matrix.pgver }}/bin/postgres -D /var/lib/postgresql/${{ matrix.pgver }}/main -c config_file=/etc/postgresql/${{ matrix.pgver }}/main/postgresql.conf &"
until sudo runuser -l postgres -c "pg_isready -p 59${{ matrix.pgver }}" 2>/dev/null; do
>&2 echo "Postgres is unavailable - sleeping for 2 seconds"
sleep 2
done
psql -U postgres -p 59${{ matrix.pgver }} -c 'CREATE EXTENSION pgagent;'
psql -U postgres -p 59${{ matrix.pgver }} -c 'CREATE EXTENSION pldbgapi;'
- name: Start PostgreSQL on macOS
if: ${{ matrix.os == 'macos-latest' }}
run: |
echo local all all trust > /usr/local/var/postgresql@${{ matrix.pgver }}/pg_hba.conf
sed -i '' "s/#port = 543[0-9]/port = 59${{ matrix.pgver }}/g" /usr/local/var/postgresql@${{ matrix.pgver }}/postgresql.conf
brew services restart postgresql@${{ matrix.pgver }}
until /usr/local/opt/postgresql@${{ matrix.pgver }}/bin/pg_isready -p 59${{ matrix.pgver }} 2>/dev/null; do
>&2 echo "Postgres is unavailable - sleeping for 2 seconds"
sleep 2
done
psql postgres -p 59${{ matrix.pgver }} -c 'CREATE ROLE postgres SUPERUSER LOGIN;'
- name: Install Python dependencies on Linux and macOS
if: ${{ matrix.os == 'macos-latest' || matrix.os == 'ubuntu-latest' }}
run: make install-python-testing
- name: Install Python dependencies on Windows
if: ${{ matrix.os == 'windows-latest' }}
run: |
SET LIB=C:\PostgreSQL\${{ matrix.pgver }}\lib;%LIB%
SET INCLUDE=C:\PostgreSQL\${{ matrix.pgver }}\include;%INCLUDE%
python -m venv venv
call venv\Scripts\activate.bat
python -m pip install --upgrade pip
pip install wheel sphinx sphinxcontrib-youtube -r web\regression\requirements.txt
shell: cmd
- name: Create the test configuration on Linux and macOS
if: ${{ matrix.os == 'macos-latest' || matrix.os == 'ubuntu-latest' }}
run: |
cat <<EOF > web/config_local.py
from config import *
# Debug mode
DEBUG = True
# App mode
SERVER_MODE = False
# Log
CONSOLE_LOG_LEVEL = DEBUG
FILE_LOG_LEVEL = DEBUG
DEFAULT_SERVER = '127.0.0.1'
UPGRADE_CHECK_ENABLED = False
LOG_FILE = "$(pwd)/var/pgadmin4.log"
SESSION_DB_PATH = "$(pwd)/var/sessions"
STORAGE_DIR = "$(pwd)/var/storage"
SQLITE_PATH = "$(pwd)/var/pgadmin4.db"
TEST_SQLITE_PATH = "$(pwd)/var/pgadmin4.db"
AZURE_CREDENTIAL_CACHE_DIR = "$(pwd)/var/azurecredentialcache"
EOF
cat <<EOF > web/regression/test_config.json
{
"pgAdmin4_login_credentials": {
"new_password": "NEWPASSWORD",
"login_password": "PASSWORD",
"login_username": "USER@EXAMPLE.COM"
},
"pgAdmin4_test_user_credentials": {
"new_password": "NEWPASSWORD",
"login_password": "PASSWORD",
"login_username": "USER2@EXAMPLE.COM"
},
"pgAdmin4_test_non_admin_credentials": {
"new_password": "NEWPASSWORD",
"login_password": "PASSWORD",
"login_username": "USER@EXAMPLE.COM"
},
"server_group": 1,
"server_credentials": [
{
"name": "PostgreSQL ${{ matrix.pgver }}",
"comment": "PostgreSQL ${{ matrix.pgver }} Server",
"db_username": "postgres",
"host": "${{ matrix.os == 'macos-latest' && '/tmp' || matrix.os == 'ubuntu-latest' && '/var/run/postgresql' || '127.0.0.1' }}",
"db_password": "postgres",
"db_port": 59${{ matrix.pgver }},
"maintenance_db": "postgres",
"sslmode": "prefer",
"tablespace_path": "${{ matrix.os == 'macos-latest' && format('/usr/local/var/tablespaces/{0}', matrix.pgver) || format('/var/lib/postgresql/tablespaces/{0}', matrix.pgver) }}",
"enabled": true,
"default_binary_paths": {
"pg": "${{ matrix.os == 'macos-latest' && format('/usr/local/opt/postgresql@{0}/bin', matrix.pgver) || format('/usr/lib/postgresql/{0}/bin', matrix.pgver) }}",
"ppas": ""
}
}
],
"server_update_data": [
{
"comment": "This is test update comment"
}
]
}
EOF
- name: Create the test configuration on Windows
if: ${{ matrix.os == 'windows-latest' }}
run: |
FOR /f "delims=" %%D IN ('python -c "import os; print(os.getcwd().replace('\\', '\\\\'))"') DO SET WORKING_DIR=%%D
> web\config_local.py (
@echo.from config import *
@echo.
@echo.# Debug mode
@echo.DEBUG = True
@echo.
@echo.# App mode
@echo.SERVER_MODE = False
@echo.
@echo.# Log
@echo.CONSOLE_LOG_LEVEL = DEBUG
@echo.FILE_LOG_LEVEL = DEBUG
@echo.
@echo.DEFAULT_SERVER = '127.0.0.1'
@echo.
@echo.UPGRADE_CHECK_ENABLED = False
@echo.
@echo.LOG_FILE = "%WORKING_DIR%\\var\\pgadmin4.log"
@echo.SESSION_DB_PATH = "%WORKING_DIR%\\var\\sessions"
@echo.STORAGE_DIR = "%WORKING_DIR%\\var\\storage"
@echo.SQLITE_PATH = "%WORKING_DIR%\\var\\pgadmin4.db"
@echo.TEST_SQLITE_PATH = "%WORKING_DIR%\\var\\test_pgadmin4.db"
@echo.AZURE_CREDENTIAL_CACHE_DIR = "%WORKING_DIR%\\var\\azurecredentialcache"
)
> web\regression\test_config.json (
@echo.{
@echo. "pgAdmin4_login_credentials": {
@echo. "new_password": "NEWPASSWORD",
@echo. "login_password": "PASSWORD",
@echo. "login_username": "USER@EXAMPLE.COM"
@echo. },
@echo. "pgAdmin4_test_user_credentials": {
@echo. "new_password": "NEWPASSWORD",
@echo. "login_password": "PASSWORD",
@echo. "login_username": "USER2@EXAMPLE.COM"
@echo. },
@echo. "pgAdmin4_test_non_admin_credentials": {
@echo. "new_password": "NEWPASSWORD",
@echo. "login_password": "PASSWORD",
@echo. "login_username": "USER@EXAMPLE.COM"
@echo. },
@echo. "server_group": 1,
@echo. "server_credentials": [
@echo. {
@echo. "name": "PostgreSQL ${{ matrix.pgver }}",
@echo. "comment": "PostgreSQL ${{ matrix.pgver }} Server",
@echo. "db_username": "postgres",
@echo. "host": "127.0.0.1",
@echo. "db_password": "postgres",
@echo. "db_port": 59${{ matrix.pgver }},
@echo. "maintenance_db": "postgres",
@echo. "sslmode": "prefer",
@echo. "tablespace_path": "C:\\PostgreSQL\\${{ matrix.pgver }}\\tablespaces",
@echo. "enabled": true,
@echo. "default_binary_paths": {
@echo. "pg": "C:\\PostgreSQL\\${{ matrix.pgver }}\\bin",
@echo. "ppas": ""
@echo. }
@echo. }
@echo. ],
@echo. "server_update_data": [
@echo. {
@echo. "comment": "This is test update comment"
@echo. }
@echo. ]
@echo.}
)
shell: cmd
- name: Run the tests on Linux and macOS
if: ${{ matrix.os == 'macos-latest' || matrix.os == 'ubuntu-latest' }}
run: |
. venv/bin/activate
make check-python
- name: Run the tests on Windows
if: ${{ matrix.os == 'windows-latest' }}
run: |
call venv\Scripts\activate.bat
python web\regression\runtests.py --exclude feature_tests
shell: cmd
- name: Archive server log
if: success() || failure()
uses: actions/upload-artifact@v3
with:
name: server-log-${{ matrix.os }}-pg${{ matrix.pgver }}
path: var/pgadmin4.log
- name: Archive regression log
if: success() || failure()
uses: actions/upload-artifact@v3
with:
name: regression-log-${{ matrix.os }}-pg${{ matrix.pgver }}
path: web/regression/regression.log
-58
View File
@@ -1,58 +0,0 @@
# This workflow requires the following configuration in Github
#
# Variables:
# SONARQUBE_PROJECT_KEY - The project key in SonarQube
#
# Secrets:
# SONARQUBE_TOKEN - SonarQube API token
# SONARQUBE_HOST - The URL of the SonarQube host
name: SonarQube scan
on:
push:
branches: [ "master" ]
concurrency:
group: sonarqube
cancel-in-progress: false
jobs:
build:
# Only run if the project key is set
if: vars.SONARQUBE_PROJECT_KEY != null
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
with:
fetch-depth: 0
- name: Create the scan properties file
run: |
cat <<EOF > sonar-project.properties
sonar.projectKey=${{ vars.SONARQUBE_PROJECT_KEY }}
sonar.projectName=pgAdmin 4
sonar.projectVersion=%VERSION%
# Ignore templates and SQL scripts as they confuse the scanner
sonar.exclusions=**/templates/**/*, **/*.sql
# Let SonarQube know where tests can be found
sonar.test.inclusions=**/tests/**, web/regression
# Python compatibility
sonar.python.version=3.7, 3.8, 3.9, 3.10, 3.11
EOF
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_LONG_VERSION=${APP_RELEASE}.${APP_REVISION}
sed -i "s/%VERSION%/${APP_LONG_VERSION}/g" sonar-project.properties
- name: SonarQube Scan
uses: sonarsource/sonarqube-scan-action@master
env:
SONAR_TOKEN: ${{ secrets.SONARQUBE_TOKEN }}
SONAR_HOST_URL: ${{ secrets.SONARQUBE_HOST }}
-1
View File
@@ -9,7 +9,6 @@
.DS_Store
.idea
.vscode
.yarn
/*.diff
/*.patch
/dist
+148 -156
View File
@@ -12,136 +12,130 @@ Name Version
---- ------- ------- ---
Python 3.6+ PSF https://www.python.org/
nw 0.50.2 MIT git://github.com/nwjs/npm-installer.git
asynckit 0.4.0 MIT git+https://github.com/alexindigo/asynckit.git
axios 1.3.5 MIT https://github.com/axios/axios.git
axios 0.21.4 MIT https://github.com/axios/axios.git
bootstrap 4.6.2 MIT git+https://github.com/twbs/bootstrap.git
combined-stream 1.0.8 MIT git://github.com/felixge/node-combined-stream.git
delayed-stream 1.0.0 MIT git://github.com/felixge/node-delayed-stream.git
follow-redirects 1.15.2 MIT git@github.com:follow-redirects/follow-redirects.git
form-data 4.0.0 MIT git://github.com/form-data/form-data.git
mime-db 1.52.0 MIT https://github.com/jshttp/mime-db.git
mime-types 2.1.35 MIT https://github.com/jshttp/mime-types.git
proxy-from-env 1.1.0 MIT https://github.com/Rob--W/proxy-from-env.git
12 dependencies listed.
5 dependencies listed.
Python Dependencies
===================
Name Version Licence URL
---- ------- ------- ---
Flask 2.2.4 BSD-3-Clause https://palletsprojects.com/p/flask
Flask 2.1.3 BSD-3-Clause https://palletsprojects.com/p/flask
Flask-Gravatar 0.5.0 BSD https://github.com/zzzsochi/Flask-Gravatar/
Flask-Login 0.6.2 MIT https://github.com/maxcountryman/flask-login
Flask-Mail 0.9.1 BSD https://github.com/rduplain/flask-mail
Flask-Migrate 4.0.4 MIT https://github.com/miguelgrinberg/flask-migrate
Flask-SQLAlchemy 3.0.3 BSD-3-Clause Unknown
Flask-WTF 1.1.1 BSD-3-Clause https://github.com/wtforms/flask-wtf/
dnspython 2.2.1 ISC https://www.dnspython.org
greenlet 1.1.2 MIT License https://greenlet.readthedocs.io/
Flask-SQLAlchemy 2.5.1 BSD-3-Clause https://github.com/pallets/flask-sqlalchemy
Flask-WTF 1.0.1 BSD-3-Clause https://github.com/wtforms/flask-wtf/
Flask-Compress 1.13 MIT https://github.com/colour-science/flask-compress
Flask-Paranoid 0.3.0 UNKNOWN https://github.com/miguelgrinberg/flask-paranoid
flask-babel 3.1.0 BSD-3-Clause https://github.com/python-babel/flask-babel
Flask-Security-Too 5.1.2 MIT https://github.com/Flask-Middleware/flask-security
Flask-SocketIO 5.3.3 Unknown https://github.com/miguelgrinberg/flask-socketio
Flask-Babel 2.0.0 BSD http://github.com/python-babel/flask-babel
Flask-Security-Too 4.1.5 MIT https://github.com/Flask-Middleware/flask-security
Flask-SocketIO 5.2.0 Unknown https://github.com/miguelgrinberg/flask-socketio
WTForms 3.0.1 BSD-3-Clause https://wtforms.readthedocs.io/
passlib 1.7.4 BSD https://passlib.readthedocs.io
pytz 2023.3 MIT http://pythonhosted.org/pytz
pytz 2021.3 MIT http://pythonhosted.org/pytz
simplejson 3.18.3 MIT License https://github.com/simplejson/simplejson
speaklater3 1.4 UNKNOWN https://github.com/ThomasWaldmann/speaklater
sqlparse 0.4.4 Unknown Unknown
psutil 5.9.5 BSD-3-Clause https://github.com/giampaolo/psutil
psycopg 3.1.8 GNU Lesser General Public License v3 (LGPLv3) https://psycopg.org/psycopg3/
sqlparse 0.4.3 BSD-3-Clause https://github.com/andialbrecht/sqlparse
psutil 5.9.3 BSD-3-Clause https://github.com/giampaolo/psutil
psycopg2 2.9.5 LGPL with exceptions https://psycopg.org/
python-dateutil 2.8.2 Dual License https://github.com/dateutil/dateutil
SQLAlchemy 2.0.11 MIT https://www.sqlalchemy.org
bcrypt 4.0.1 Apache License, Version 2.0 https://github.com/pyca/bcrypt/
cryptography 40.0.2 (Apache-2.0 OR BSD-3-Clause) AND PSF-2.0 https://github.com/pyca/cryptography
SQLAlchemy 1.4.46 MIT https://www.sqlalchemy.org
bcrypt 3.2.2 Apache License, Version 2.0 https://github.com/pyca/bcrypt/
cryptography 3.4.8 BSD or Apache License, Version 2.0 https://github.com/pyca/cryptography
sshtunnel 0.4.0 MIT https://github.com/pahaz/sshtunnel
ldap3 2.9.1 LGPL v3 https://github.com/cannatag/ldap3
gssapi 1.8.2 LICENSE.txt https://github.com/pythongssapi/python-gssapi
eventlet 0.33.3 Unknown http://eventlet.net
eventlet 0.33.0 UNKNOWN http://eventlet.net
httpagentparser 1.9.5 http://www.opensource.org/licenses/mit-license.php https://github.com/shon/httpagentparser
user-agents 2.2.0 MIT https://github.com/selwin/python-user-agents
pywinpty 2.0.* Unknown Unknown
Authlib 1.2.0 BSD 3-Clause License https://authlib.org/
requests 2.28.2 Apache 2.0 https://requests.readthedocs.io
pywinpty 1.1.* Unknown Unknown
Authlib 1.1.0 BSD 3-Clause License https://authlib.org/
requests 2.25.1 Apache 2.0 https://requests.readthedocs.io
pyotp 2.8.0 MIT License https://github.com/pyotp/pyotp
qrcode 7.4.2 BSD https://github.com/lincolnloop/python-qrcode
Pillow 9.5.0 HPND https://python-pillow.org
boto3 1.26.121 Apache License 2.0 https://github.com/boto/boto3
botocore 1.29.121 Apache License 2.0 https://github.com/boto/botocore
urllib3 1.26.15 MIT https://urllib3.readthedocs.io/
Pillow 9.4.0 HPND https://python-pillow.org
boto3 1.26.71 Apache License 2.0 https://github.com/boto/boto3
botocore 1.29.71 Apache License 2.0 https://github.com/boto/botocore
urllib3 1.26.14 MIT https://urllib3.readthedocs.io/
Werkzeug 2.1.2 BSD-3-Clause https://palletsprojects.com/p/werkzeug/
azure-mgmt-rdbms 10.1.0 MIT License https://github.com/Azure/azure-sdk-for-python
azure-mgmt-resource 23.0.0 MIT License https://github.com/Azure/azure-sdk-for-python
azure-mgmt-subscription 3.1.1 MIT License https://github.com/Azure/azure-sdk-for-python
azure-identity 1.12.0 MIT License https://github.com/Azure/azure-sdk-for-python/tree/main/sdk/identity/azure-identity
google-api-python-client 2.86.0 Apache 2.0 https://github.com/googleapis/google-api-python-client/
google-auth-oauthlib 1.0.0 Apache 2.0 https://github.com/GoogleCloudPlatform/google-auth-library-python-oauthlib
Werkzeug 2.2.3 BSD-3-Clause https://palletsprojects.com/p/werkzeug/
azure-mgmt-resource 21.0.0 MIT License https://github.com/Azure/azure-sdk-for-python
azure-mgmt-subscription 3.0.0 MIT License https://github.com/Azure/azure-sdk-for-python
azure-identity 1.9.0 MIT License https://github.com/Azure/azure-sdk-for-python/tree/main/sdk/identity/azure-identity
NOTE: This report was generated using Python 3.11. Full information may not be
NOTE: This report was generated using Python 3.10. Full information may not be
shown for Python modules that are not required with this version.
45 dependencies listed.
46 dependencies listed.
Javascript Dependencies
=======================
Name Version Licence URL
---- ------- ------- ---
@ampproject/remapping 2.2.1 Apache-2.0 git+https://github.com/ampproject/remapping.git
anti-trojan-source 1.4.1 Apache-2.0 https://github.com/lirantal/anti-trojan-source.git
@ampproject/remapping 2.2.0 Apache-2.0 git+https://github.com/ampproject/remapping.git
anti-trojan-source 1.4.0 Apache-2.0 https://github.com/lirantal/anti-trojan-source.git
bootstrap-datepicker 1.9.0 Apache-2.0 https://github.com/uxsolutions/bootstrap-datepicker.git
eve 0.5.4 Apache-2.0 git@github.com:adobe-webplatform/eve.git
jmespath 0.16.0 Apache-2.0 git://github.com/jmespath/jmespath.js
jsoneditor 9.10.0 Apache-2.0 https://github.com/josdejong/jsoneditor.git
jsoneditor 9.9.2 Apache-2.0 https://github.com/josdejong/jsoneditor.git
paths-js 0.4.11 Apache-2.0 https://github.com/andreaferretti/paths-js.git
rc-dock 3.2.17 Apache-2.0 https://github.com/ticlo/rc-dock.git
rc-dock 3.2.14 Apache-2.0 https://github.com/ticlo/rc-dock.git
rc-new-window 0.1.13 Apache-2.0 https://github.com/ticlo/rc-new-window.git
snapsvg 0.5.1 Apache-2.0 git@github.com:adobe-webplatform/Snap.svg.git
spdx-correct 3.2.0 Apache-2.0 https://github.com/jslicense/spdx-correct.js.git
spdx-correct 3.1.1 Apache-2.0 https://github.com/jslicense/spdx-correct.js.git
validate-npm-package-license 3.0.4 Apache-2.0 https://github.com/kemitchell/validate-npm-package-license.js.git
@babel/code-frame 7.21.4 MIT https://github.com/babel/babel.git
@babel/compat-data 7.21.7 MIT https://github.com/babel/babel.git
@babel/core 7.21.5 MIT https://github.com/babel/babel.git
@babel/generator 7.21.5 MIT https://github.com/babel/babel.git
@babel/code-frame 7.18.6 MIT https://github.com/babel/babel.git
@babel/compat-data 7.20.1 MIT https://github.com/babel/babel.git
@babel/core 7.20.2 MIT https://github.com/babel/babel.git
@babel/generator 7.20.4 MIT https://github.com/babel/babel.git
@babel/helper-annotate-as-pure 7.18.6 MIT https://github.com/babel/babel.git
@babel/helper-compilation-targets 7.21.5 MIT https://github.com/babel/babel.git
@babel/helper-create-class-features-plugin 7.21.5 MIT https://github.com/babel/babel.git
@babel/helper-environment-visitor 7.21.5 MIT https://github.com/babel/babel.git
@babel/helper-function-name 7.21.0 MIT https://github.com/babel/babel.git
@babel/helper-compilation-targets 7.20.0 MIT https://github.com/babel/babel.git
@babel/helper-create-class-features-plugin 7.20.2 MIT https://github.com/babel/babel.git
@babel/helper-environment-visitor 7.18.9 MIT https://github.com/babel/babel.git
@babel/helper-function-name 7.19.0 MIT https://github.com/babel/babel.git
@babel/helper-hoist-variables 7.18.6 MIT https://github.com/babel/babel.git
@babel/helper-member-expression-to-functions 7.21.5 MIT https://github.com/babel/babel.git
@babel/helper-module-imports 7.21.4 MIT https://github.com/babel/babel.git
@babel/helper-module-transforms 7.21.5 MIT https://github.com/babel/babel.git
@babel/helper-member-expression-to-functions 7.18.9 MIT https://github.com/babel/babel.git
@babel/helper-module-imports 7.18.6 MIT https://github.com/babel/babel.git
@babel/helper-module-transforms 7.20.2 MIT https://github.com/babel/babel.git
@babel/helper-optimise-call-expression 7.18.6 MIT https://github.com/babel/babel.git
@babel/helper-plugin-utils 7.21.5 MIT https://github.com/babel/babel.git
@babel/helper-replace-supers 7.21.5 MIT https://github.com/babel/babel.git
@babel/helper-simple-access 7.21.5 MIT https://github.com/babel/babel.git
@babel/helper-skip-transparent-expression-wrappers 7.20.0 MIT https://github.com/babel/babel.git
@babel/helper-plugin-utils 7.20.2 MIT https://github.com/babel/babel.git
@babel/helper-replace-supers 7.19.1 MIT https://github.com/babel/babel.git
@babel/helper-simple-access 7.20.2 MIT https://github.com/babel/babel.git
@babel/helper-split-export-declaration 7.18.6 MIT https://github.com/babel/babel.git
@babel/helper-string-parser 7.21.5 MIT https://github.com/babel/babel.git
@babel/helper-string-parser 7.19.4 MIT https://github.com/babel/babel.git
@babel/helper-validator-identifier 7.19.1 MIT https://github.com/babel/babel.git
@babel/helper-validator-option 7.21.0 MIT https://github.com/babel/babel.git
@babel/helpers 7.21.5 MIT https://github.com/babel/babel.git
@babel/helper-validator-option 7.18.6 MIT https://github.com/babel/babel.git
@babel/helpers 7.20.1 MIT https://github.com/babel/babel.git
@babel/highlight 7.18.6 MIT https://github.com/babel/babel.git
@babel/parser 7.21.5 MIT https://github.com/babel/babel.git
@babel/parser 7.20.3 MIT https://github.com/babel/babel.git
@babel/plugin-proposal-class-properties 7.18.6 MIT https://github.com/babel/babel.git
@babel/plugin-syntax-jsx 7.21.4 MIT https://github.com/babel/babel.git
@babel/plugin-syntax-jsx 7.18.6 MIT https://github.com/babel/babel.git
@babel/plugin-transform-react-display-name 7.18.6 MIT https://github.com/babel/babel.git
@babel/plugin-transform-react-jsx 7.21.5 MIT https://github.com/babel/babel.git
@babel/plugin-transform-react-jsx 7.19.0 MIT https://github.com/babel/babel.git
@babel/plugin-transform-react-jsx-development 7.18.6 MIT https://github.com/babel/babel.git
@babel/plugin-transform-react-pure-annotations 7.18.6 MIT https://github.com/babel/babel.git
@babel/preset-react 7.18.6 MIT https://github.com/babel/babel.git
@babel/runtime 7.21.5 MIT https://github.com/babel/babel.git
@babel/template 7.20.7 MIT https://github.com/babel/babel.git
@babel/traverse 7.21.5 MIT https://github.com/babel/babel.git
@babel/types 7.21.5 MIT https://github.com/babel/babel.git
@babel/runtime 7.20.1 MIT https://github.com/babel/babel.git
@babel/template 7.18.10 MIT https://github.com/babel/babel.git
@babel/traverse 7.20.1 MIT https://github.com/babel/babel.git
@babel/types 7.20.2 MIT https://github.com/babel/babel.git
@date-io/core 1.3.13 MIT https://github.com/dmtrKovalenko/date-io
@date-io/date-fns 1.3.13 MIT https://github.com/dmtrKovalenko/date-io
@emotion/babel-plugin 11.10.8 MIT https://github.com/emotion-js/emotion/tree/main/packages/babel-plugin
@emotion/cache 11.10.8 MIT https://github.com/emotion-js/emotion/tree/main/packages/cache
@emotion/babel-plugin 11.10.5 MIT https://github.com/emotion-js/emotion/tree/main/packages/babel-plugin
@emotion/cache 11.10.5 MIT https://github.com/emotion-js/emotion/tree/main/packages/cache
@emotion/hash 0.8.0 MIT https://github.com/emotion-js/emotion/tree/master/packages/hash
@emotion/hash 0.9.0 MIT https://github.com/emotion-js/emotion/tree/main/packages/hash
@emotion/is-prop-valid 1.2.0 MIT https://github.com/emotion-js/emotion/tree/main/packages/is-prop-valid
@emotion/memoize 0.8.0 MIT https://github.com/emotion-js/emotion/tree/main/packages/memoize
@emotion/react 11.10.8 MIT https://github.com/emotion-js/emotion/tree/main/packages/react
@emotion/react 11.10.5 MIT https://github.com/emotion-js/emotion/tree/main/packages/react
@emotion/serialize 1.1.1 MIT https://github.com/emotion-js/emotion/tree/main/packages/serialize
@emotion/sheet 1.2.1 MIT https://github.com/emotion-js/emotion/tree/main/packages/sheet
@emotion/stylis 0.8.5 MIT https://github.com/emotion-js/emotion/tree/master/packages/stylis
@@ -150,15 +144,13 @@ validate-npm-package-license 3.0.4
@emotion/use-insertion-effect-with-fallbacks 1.0.0 MIT https://github.com/emotion-js/emotion/tree/main/packages/use-insertion-effect-with-fallbacks
@emotion/utils 1.2.0 MIT https://github.com/emotion-js/emotion/tree/main/packages/utils
@emotion/weak-memoize 0.3.0 MIT https://github.com/emotion-js/emotion/tree/main/packages/weak-memoize
@floating-ui/core 1.2.6 MIT https://github.com/floating-ui/floating-ui.git
@floating-ui/dom 1.2.7 MIT https://github.com/floating-ui/floating-ui.git
@istanbuljs/schema 0.1.3 MIT git+https://github.com/istanbuljs/schema.git
@jridgewell/gen-mapping 0.3.3 MIT https://github.com/jridgewell/gen-mapping
@jridgewell/gen-mapping 0.3.2 MIT https://github.com/jridgewell/gen-mapping
@jridgewell/gen-mapping 0.1.1 MIT https://github.com/jridgewell/gen-mapping
@jridgewell/resolve-uri 3.1.0 MIT https://github.com/jridgewell/resolve-uri
@jridgewell/set-array 1.1.2 MIT https://github.com/jridgewell/set-array
@jridgewell/sourcemap-codec 1.4.14 MIT git+https://github.com/jridgewell/sourcemap-codec.git
@jridgewell/sourcemap-codec 1.4.15 MIT git+https://github.com/jridgewell/sourcemap-codec.git
@jridgewell/trace-mapping 0.3.18 MIT git+https://github.com/jridgewell/trace-mapping.git
@jridgewell/trace-mapping 0.3.17 MIT git+https://github.com/jridgewell/trace-mapping.git
@material-ui/core 4.11.0 MIT https://github.com/mui-org/material-ui.git
@material-ui/icons 4.11.3 MIT https://github.com/mui-org/material-ui.git
@material-ui/lab 4.0.0-alpha.58 MIT https://github.com/mui-org/material-ui.git
@@ -179,25 +171,24 @@ validate-npm-package-license 3.0.4
@react-dnd/asap 5.0.2 MIT https://github.com/react-dnd/react-dnd
@react-dnd/invariant 4.0.2 MIT https://github.com/react-dnd/react-dnd
@react-dnd/shallowequal 4.0.2 MIT https://github.com/react-dnd/react-dnd
@remix-run/router 1.6.0 MIT https://github.com/remix-run/react-router
@remix-run/router 1.0.3 MIT https://github.com/remix-run/react-router
@simonwep/pickr 1.8.2 MIT https://github.com/Simonwep/pickr.git
@sindresorhus/is 0.7.0 MIT https://github.com/sindresorhus/is.git
@socket.io/component-emitter 3.1.0 MIT https://github.com/socketio/emitter.git
@szhsin/react-menu 2.3.4 MIT https://github.com/szhsin/react-menu.git
@types/classnames 2.3.1 MIT Unknown
@types/minimist 1.2.2 MIT https://github.com/DefinitelyTyped/DefinitelyTyped.git
@types/node 18.16.3 MIT https://github.com/DefinitelyTyped/DefinitelyTyped.git
@types/node 18.11.9 MIT https://github.com/DefinitelyTyped/DefinitelyTyped.git
@types/normalize-package-data 2.4.1 MIT https://github.com/DefinitelyTyped/DefinitelyTyped.git
@types/parse-json 4.0.0 MIT https://www.github.com/DefinitelyTyped/DefinitelyTyped.git
@types/prop-types 15.7.5 MIT https://github.com/DefinitelyTyped/DefinitelyTyped.git
@types/react 18.2.0 MIT https://github.com/DefinitelyTyped/DefinitelyTyped.git
@types/react 16.14.40 MIT https://github.com/DefinitelyTyped/DefinitelyTyped.git
@types/react 17.0.58 MIT https://github.com/DefinitelyTyped/DefinitelyTyped.git
@types/react-dom 17.0.20 MIT https://github.com/DefinitelyTyped/DefinitelyTyped.git
@types/react 18.0.25 MIT https://github.com/DefinitelyTyped/DefinitelyTyped.git
@types/react 16.14.34 MIT https://github.com/DefinitelyTyped/DefinitelyTyped.git
@types/react-dom 16.9.17 MIT https://github.com/DefinitelyTyped/DefinitelyTyped.git
@types/react-transition-group 4.4.5 MIT https://github.com/DefinitelyTyped/DefinitelyTyped.git
@types/scheduler 0.16.3 MIT https://github.com/DefinitelyTyped/DefinitelyTyped.git
@types/scheduler 0.16.2 MIT https://github.com/DefinitelyTyped/DefinitelyTyped.git
@types/styled-jsx 2.2.9 MIT https://github.com/DefinitelyTyped/DefinitelyTyped.git
ajv 8.12.0 MIT https://github.com/ajv-validator/ajv.git
ajv 8.11.2 MIT https://github.com/ajv-validator/ajv.git
ajv 6.12.6 MIT https://github.com/ajv-validator/ajv.git
ansi-styles 3.2.1 MIT https://github.com/chalk/ansi-styles.git
array-union 3.0.1 MIT https://github.com/sindresorhus/array-union.git
@@ -209,19 +200,20 @@ async 2.6.4
attr-accept 2.2.2 MIT https://github.com/react-dropzone/attr-accept.git
axios 0.21.4 MIT https://github.com/axios/axios.git
babel-plugin-macros 3.1.0 MIT https://github.com/kentcdodds/babel-plugin-macros
babel-plugin-styled-components 2.1.1 MIT https://github.com/styled-components/babel-plugin-styled-components.git
babel-plugin-styled-components 2.0.7 MIT https://github.com/styled-components/babel-plugin-styled-components.git
babel-plugin-syntax-jsx 6.18.0 MIT https://github.com/babel/babel/tree/master/packages/babel-plugin-syntax-jsx
babelify 10.0.0 MIT https://github.com/babel/babelify.git
balanced-match 1.0.2 MIT git://github.com/juliangruber/balanced-match.git
base64-arraybuffer 1.0.2 MIT https://github.com/niklasvh/base64-arraybuffer
bignumber.js 9.1.1 MIT https://github.com/MikeMcl/bignumber.js.git
bignumber.js 9.1.0 MIT https://github.com/MikeMcl/bignumber.js.git
bootstrap 4.6.2 MIT git+https://github.com/twbs/bootstrap.git
bootstrap4-toggle 3.6.1 MIT https://github.com/gitbrent/bootstrap4-toggle.git
bowser 2.11.0 MIT git+https://github.com/lancedikson/bowser.git
brace 0.11.1 MIT git://github.com/thlorenz/brace.git
brace-expansion 1.1.11 MIT git://github.com/juliangruber/brace-expansion.git
braces 3.0.2 MIT https://github.com/micromatch/braces.git
browserfs 1.4.3 MIT https://github.com/jvilk/BrowserFS.git
browserslist 4.21.5 MIT https://github.com/browserslist/browserslist.git
browserslist 4.21.4 MIT https://github.com/browserslist/browserslist.git
callsites 3.1.0 MIT https://github.com/sindresorhus/callsites.git
camelcase 6.3.0 MIT https://github.com/sindresorhus/camelcase.git
camelcase-keys 7.0.2 MIT https://github.com/sindresorhus/camelcase-keys.git
@@ -233,7 +225,7 @@ chartjs-plugin-zoom 1.3.0
classnames 2.3.2 MIT https://github.com/JedWatson/classnames.git
closest 0.0.1 MIT https://github.com/ForbesLindesay/closest.git
clsx 1.2.1 MIT https://github.com/lukeed/clsx.git
codemirror 5.65.13 MIT https://github.com/codemirror/CodeMirror.git
codemirror 5.65.10 MIT https://github.com/codemirror/CodeMirror.git
color-convert 1.9.3 MIT https://github.com/Qix-/color-convert.git
color-name 1.1.3 MIT git@github.com:dfcreative/color-name.git
colord 2.9.3 MIT https://github.com/omgovich/colord.git
@@ -241,21 +233,21 @@ commander 7.2.0
concat-map 0.0.1 MIT git://github.com/substack/node-concat-map.git
convert-source-map 1.9.0 MIT git://github.com/thlorenz/convert-source-map.git
convert-units 2.3.4 MIT git://github.com/ben-ng/convert-units.git
core-js 3.30.1 MIT https://github.com/zloirock/core-js.git
core-js 3.26.1 MIT https://github.com/zloirock/core-js.git
cosmiconfig 7.1.0 MIT git+https://github.com/davidtheclark/cosmiconfig.git
css-line-break 2.1.0 MIT git+ssh://git@github.com/niklasvh/css-line-break.git
css-to-react-native 3.2.0 MIT git+https://github.com/styled-components/css-to-react-native.git
css-to-react-native 3.0.0 MIT git+https://github.com/styled-components/css-to-react-native.git
css-tree 1.1.3 MIT https://github.com/csstree/csstree.git
css-vendor 2.0.8 MIT git@github.com:cssinjs/css-vendor.git
cssesc 3.0.0 MIT https://github.com/mathiasbynens/cssesc.git
cssnano 5.1.15 MIT https://github.com/cssnano/cssnano.git
cssnano-preset-default 5.2.14 MIT https://github.com/cssnano/cssnano.git
cssnano 5.1.14 MIT https://github.com/cssnano/cssnano.git
cssnano-preset-default 5.2.13 MIT https://github.com/cssnano/cssnano.git
cssnano-utils 3.1.0 MIT https://github.com/cssnano/cssnano.git
csso 4.2.0 MIT https://github.com/css/csso.git
csstype 2.6.21 MIT https://github.com/frenic/csstype
csstype 3.1.2 MIT https://github.com/frenic/csstype
csstype 3.1.1 MIT https://github.com/frenic/csstype
dagre 0.8.5 MIT https://github.com/dagrejs/dagre.git
date-fns 2.30.0 MIT https://github.com/date-fns/date-fns
date-fns 2.29.3 MIT https://github.com/date-fns/date-fns
debug 4.3.4 MIT git://github.com/debug-js/debug.git
decamelize 5.0.1 MIT https://github.com/sindresorhus/decamelize.git
decamelize 1.2.0 MIT https://github.com/sindresorhus/decamelize.git
@@ -267,8 +259,8 @@ dnd-core 16.0.1
dom-align 1.12.4 MIT git@github.com:yiminghe/dom-align.git
dom-helpers 5.2.1 MIT git+https://github.com/react-bootstrap/dom-helpers.git
dom-serializer 1.4.1 MIT git://github.com/cheeriojs/dom-renderer.git
engine.io-client 6.4.0 MIT https://github.com/socketio/engine.io-client.git
engine.io-parser 5.0.6 MIT git@github.com:socketio/engine.io-parser.git
engine.io-client 6.2.3 MIT https://github.com/socketio/engine.io-client.git
engine.io-parser 5.0.4 MIT git@github.com:socketio/engine.io-parser.git
error-ex 1.3.2 MIT https://github.com/qix-/node-error-ex.git
escalade 3.1.1 MIT https://github.com/lukeed/escalade.git
escape-string-regexp 1.0.5 MIT https://github.com/sindresorhus/escape-string-regexp.git
@@ -295,15 +287,15 @@ has-flag 3.0.0
has-flag 4.0.0 MIT https://github.com/sindresorhus/has-flag.git
html-escaper 2.0.2 MIT https://github.com/WebReflection/html-escaper.git
html2canvas 1.4.1 MIT git@github.com:niklasvh/html2canvas.git
ignore 5.2.4 MIT git@github.com:kaelzhang/node-ignore.git
ignore 5.2.1 MIT git@github.com:kaelzhang/node-ignore.git
immutability-helper 3.1.1 MIT git+https://github.com/kolodny/immutability-helper.git
import-fresh 3.3.0 MIT https://github.com/sindresorhus/import-fresh.git
indent-string 5.0.0 MIT https://github.com/sindresorhus/indent-string.git
insert-if 1.2.0 MIT git+https://github.com/chipto/insert-if.git
ip-address 7.1.0 MIT git://github.com/beaugunderson/ip-address.git
is-any-array 2.0.1 MIT https://github.com/cheminfo-js/is-any-array.git
is-any-array 2.0.0 MIT https://github.com/cheminfo-js/is-any-array.git
is-arrayish 0.2.1 MIT https://github.com/qix-/node-is-arrayish.git
is-core-module 2.12.0 MIT git+https://github.com/inspect-js/is-core-module.git
is-core-module 2.11.0 MIT git+https://github.com/inspect-js/is-core-module.git
is-extglob 2.1.1 MIT https://github.com/jonschlinkert/is-extglob.git
is-glob 4.0.3 MIT https://github.com/micromatch/is-glob.git
is-in-browser 1.1.3 MIT git+https://github.com/tuxsudo/is-in-browser.git
@@ -312,7 +304,7 @@ is-plain-obj 1.1.0
is-relative 1.0.0 MIT https://github.com/jonschlinkert/is-relative.git
is-unc-path 1.0.0 MIT https://github.com/jonschlinkert/is-unc-path.git
javascript-natural-sort 0.7.1 MIT https://github.com/Bill4Time/javascript-natural-sort.git
jquery 3.6.4 MIT https://github.com/jquery/jquery.git
jquery 3.6.1 MIT https://github.com/jquery/jquery.git
jquery-contextmenu 2.9.2 MIT git://github.com/swisnl/jQuery-contextMenu.git
js-tokens 4.0.0 MIT https://github.com/lydell/js-tokens.git
jsbn 1.1.0 MIT https://github.com/andyperlitch/jsbn.git
@@ -323,17 +315,17 @@ json-schema-traverse 1.0.0
json-schema-traverse 0.4.1 MIT git+https://github.com/epoberezkin/json-schema-traverse.git
json-source-map 0.6.1 MIT git+https://github.com/epoberezkin/json-source-map.git
json5 2.2.3 MIT git+https://github.com/json5/json5.git
jss 10.10.0 MIT https://github.com/cssinjs/jss.git
jss-plugin-camel-case 10.10.0 MIT https://github.com/cssinjs/jss.git
jss-plugin-default-unit 10.10.0 MIT https://github.com/cssinjs/jss.git
jss-plugin-global 10.10.0 MIT https://github.com/cssinjs/jss.git
jss-plugin-nested 10.10.0 MIT https://github.com/cssinjs/jss.git
jss-plugin-props-sort 10.10.0 MIT https://github.com/cssinjs/jss.git
jss-plugin-rule-value-function 10.10.0 MIT https://github.com/cssinjs/jss.git
jss-plugin-vendor-prefixer 10.10.0 MIT https://github.com/cssinjs/jss.git
jss 10.9.2 MIT https://github.com/cssinjs/jss.git
jss-plugin-camel-case 10.9.2 MIT https://github.com/cssinjs/jss.git
jss-plugin-default-unit 10.9.2 MIT https://github.com/cssinjs/jss.git
jss-plugin-global 10.9.2 MIT https://github.com/cssinjs/jss.git
jss-plugin-nested 10.9.2 MIT https://github.com/cssinjs/jss.git
jss-plugin-props-sort 10.9.2 MIT https://github.com/cssinjs/jss.git
jss-plugin-rule-value-function 10.9.2 MIT https://github.com/cssinjs/jss.git
jss-plugin-vendor-prefixer 10.9.2 MIT https://github.com/cssinjs/jss.git
karma-coverage 2.2.0 MIT git://github.com/karma-runner/karma-coverage.git
kind-of 6.0.3 MIT https://github.com/jonschlinkert/kind-of.git
lilconfig 2.1.0 MIT https://github.com/antonk52/lilconfig
lilconfig 2.0.6 MIT https://github.com/antonk52/lilconfig
lines-and-columns 1.2.4 MIT https://github.com/eventualbuddha/lines-and-columns.git
locate-path 6.0.0 MIT https://github.com/sindresorhus/locate-path.git
lodash 4.17.21 MIT https://github.com/lodash/lodash.git
@@ -360,11 +352,10 @@ lodash.support 2.3.0
lodash.uniq 4.5.0 MIT https://github.com/lodash/lodash.git
loose-envify 1.4.0 MIT git://github.com/zertosh/loose-envify.git
make-dir 3.1.0 MIT https://github.com/sindresorhus/make-dir.git
map-obj 1.0.1 MIT https://github.com/sindresorhus/map-obj.git
map-obj 4.3.0 MIT https://github.com/sindresorhus/map-obj.git
map-obj 1.0.1 MIT https://github.com/sindresorhus/map-obj.git
matches-selector 0.0.1 MIT https://github.com/ForbesLindesay/matches-selector.git
memoize-one 5.2.1 MIT https://github.com/alexreardon/memoize-one.git
memoize-one 6.0.0 MIT https://github.com/alexreardon/memoize-one.git
meow 10.1.5 MIT https://github.com/sindresorhus/meow.git
merge2 1.4.1 MIT git@github.com:teambition/merge2.git
micromatch 4.0.5 MIT https://github.com/micromatch/micromatch.git
@@ -376,11 +367,11 @@ ml-array-rescale 1.3.7
ml-matrix 6.10.4 MIT https://github.com/mljs/matrix.git
mobius1-selectr 2.4.13 MIT git+https://github.com/Mobius1/Selectr.git
moment 2.29.4 MIT https://github.com/moment/moment.git
moment-timezone 0.5.43 MIT https://github.com/moment/moment-timezone.git
moment-timezone 0.5.39 MIT https://github.com/moment/moment-timezone.git
ms 2.1.2 MIT https://github.com/zeit/ms.git
nanoid 3.3.6 MIT https://github.com/ai/nanoid.git
nanopop 2.3.0 MIT https://github.com/Simonwep/nanopop.git
node-releases 2.0.10 MIT https://github.com/chicoxyzzy/node-releases.git
nanoid 3.3.4 MIT https://github.com/ai/nanoid.git
nanopop 2.2.0 MIT https://github.com/Simonwep/nanopop.git
node-releases 2.0.6 MIT https://github.com/chicoxyzzy/node-releases.git
normalize-url 6.1.0 MIT https://github.com/sindresorhus/normalize-url.git
notificar 1.0.1 MIT git+https://github.com/neeksandhu/notificar.git
notistack 1.0.10 MIT git+https://github.com/iamhosseindhv/notistack.git
@@ -401,16 +392,16 @@ picomatch 2.3.1
picomodal 3.0.0 MIT https://github.com/Nycto/PicoModal.git
popper.js 1.16.1-lts MIT git+https://github.com/FezVrasta/popper.js.git
popper.js 1.16.1 MIT git+https://github.com/FezVrasta/popper.js.git
postcss 8.4.23 MIT https://github.com/postcss/postcss.git
postcss 8.4.19 MIT https://github.com/postcss/postcss.git
postcss-calc 8.2.4 MIT https://github.com/postcss/postcss-calc.git
postcss-colormin 5.3.1 MIT https://github.com/cssnano/cssnano.git
postcss-colormin 5.3.0 MIT https://github.com/cssnano/cssnano.git
postcss-convert-values 5.1.3 MIT https://github.com/cssnano/cssnano.git
postcss-discard-comments 5.1.2 MIT https://github.com/cssnano/cssnano.git
postcss-discard-duplicates 5.1.0 MIT https://github.com/cssnano/cssnano.git
postcss-discard-empty 5.1.1 MIT https://github.com/cssnano/cssnano.git
postcss-discard-overridden 5.1.0 MIT https://github.com/cssnano/cssnano.git
postcss-merge-longhand 5.1.7 MIT https://github.com/cssnano/cssnano.git
postcss-merge-rules 5.1.4 MIT https://github.com/cssnano/cssnano.git
postcss-merge-rules 5.1.3 MIT https://github.com/cssnano/cssnano.git
postcss-minify-font-values 5.1.0 MIT https://github.com/cssnano/cssnano.git
postcss-minify-gradients 5.1.1 MIT https://github.com/cssnano/cssnano.git
postcss-minify-params 5.1.4 MIT https://github.com/cssnano/cssnano.git
@@ -425,28 +416,28 @@ postcss-normalize-unicode 5.1.1
postcss-normalize-url 5.1.0 MIT https://github.com/cssnano/cssnano.git
postcss-normalize-whitespace 5.1.1 MIT https://github.com/cssnano/cssnano.git
postcss-ordered-values 5.1.3 MIT https://github.com/cssnano/cssnano.git
postcss-reduce-initial 5.1.2 MIT https://github.com/cssnano/cssnano.git
postcss-reduce-initial 5.1.1 MIT https://github.com/cssnano/cssnano.git
postcss-reduce-transforms 5.1.0 MIT https://github.com/cssnano/cssnano.git
postcss-selector-parser 6.0.12 MIT https://github.com/postcss/postcss-selector-parser.git
postcss-selector-parser 6.0.11 MIT https://github.com/postcss/postcss-selector-parser.git
postcss-svgo 5.1.0 MIT https://github.com/cssnano/cssnano.git
postcss-unique-selectors 5.1.1 MIT https://github.com/cssnano/cssnano.git
postcss-value-parser 4.2.0 MIT https://github.com/TrySound/postcss-value-parser.git
prop-types 15.8.1 MIT https://github.com/facebook/prop-types.git
punycode 2.3.0 MIT https://github.com/mathiasbynens/punycode.js.git
punycode 2.1.1 MIT https://github.com/bestiejs/punycode.js.git
queue-microtask 1.2.3 MIT git://github.com/feross/queue-microtask.git
quick-lru 5.1.1 MIT https://github.com/sindresorhus/quick-lru.git
raf 3.4.1 MIT git://github.com/chrisdickinson/raf.git
rc-align 4.0.15 MIT git@github.com:react-component/align.git
rc-align 4.0.12 MIT git@github.com:react-component/align.git
rc-dropdown 3.6.2 MIT git@github.com:react-component/dropdown.git
rc-dropdown 4.0.1 MIT git@github.com:react-component/dropdown.git
rc-menu 9.8.4 MIT git@github.com:react-component/menu.git
rc-menu 9.8.0 MIT git@github.com:react-component/menu.git
rc-menu 9.6.4 MIT git@github.com:react-component/menu.git
rc-motion 2.7.3 MIT git@github.com:react-component/motion.git
rc-overflow 1.3.0 MIT git@github.com:react-component/overflow.git
rc-resize-observer 1.3.1 MIT git@github.com:react-component/resize-observer.git
rc-motion 2.6.2 MIT git@github.com:react-component/motion.git
rc-overflow 1.2.8 MIT git@github.com:react-component/overflow.git
rc-resize-observer 1.2.0 MIT git@github.com:react-component/resize-observer.git
rc-tabs 11.16.1 MIT git@github.com:react-component/tabs.git
rc-trigger 5.3.4 MIT https://github.com/react-component/trigger.git
rc-util 5.30.0 MIT git@github.com:react-component/util.git
rc-util 5.24.6 MIT git@github.com:react-component/util.git
re-resizable 6.9.6 MIT https://github.com/bokuweb/react-resizable-box.git
react 17.0.2 MIT https://github.com/facebook/react.git
react-aspen 1.2.0 MIT https://github.com/neeksandhu/react-aspen.git
@@ -456,63 +447,66 @@ react-dnd 16.0.1
react-dnd-html5-backend 16.0.1 MIT https://github.com/react-dnd/react-dnd.git
react-dom 17.0.2 MIT https://github.com/facebook/react.git
react-draggable 4.4.5 MIT https://github.com/react-grid-layout/react-draggable.git
react-draggable 4.4.4 MIT https://github.com/react-grid-layout/react-draggable.git
react-dropzone 14.2.3 MIT https://github.com/react-dropzone/react-dropzone.git
react-input-autosize 3.0.0 MIT https://github.com/JedWatson/react-input-autosize.git
react-is 16.13.1 MIT https://github.com/facebook/react.git
react-is 17.0.2 MIT https://github.com/facebook/react.git
react-resize-detector 9.1.0 MIT git+https://github.com/maslianok/react-resize-detector.git
react-rnd 10.4.1 MIT https://github.com/bokuweb/react-rnd.git
react-router 6.11.0 MIT https://github.com/remix-run/react-router
react-router-dom 6.11.0 MIT https://github.com/remix-run/react-router
react-select 5.7.2 MIT https://github.com/JedWatson/react-select/tree/master/packages/react-select
react-resize-detector 8.0.3 MIT git+https://github.com/maslianok/react-resize-detector.git
react-rnd 10.3.7 MIT https://github.com/bokuweb/react-rnd.git
react-router 6.4.3 MIT https://github.com/remix-run/react-router
react-router-dom 6.4.3 MIT https://github.com/remix-run/react-router
react-select 4.3.1 MIT https://github.com/JedWatson/react-select/tree/master/packages/react-select
react-table 7.8.0 MIT https://github.com/tannerlinsley/react-table
react-transition-state 1.1.5 MIT https://github.com/szhsin/react-transition-state.git
react-virtualized-auto-sizer 1.0.15 MIT https://github.com/bvaughn/react-virtualized-auto-sizer.git
react-window 1.8.9 MIT https://github.com/bvaughn/react-window.git
react-virtualized-auto-sizer 1.0.7 MIT https://github.com/bvaughn/react-virtualized-auto-sizer.git
react-window 1.8.8 MIT https://github.com/bvaughn/react-window.git
read-pkg 6.0.0 MIT https://github.com/sindresorhus/read-pkg.git
read-pkg-up 8.0.0 MIT https://github.com/sindresorhus/read-pkg-up.git
redent 4.0.0 MIT https://github.com/sindresorhus/redent.git
redux 4.2.1 MIT https://github.com/reduxjs/redux.git
redux 4.2.0 MIT https://github.com/reduxjs/redux.git
regenerator-runtime 0.13.11 MIT https://github.com/facebook/regenerator/tree/main/packages/runtime
require-from-string 2.0.2 MIT https://github.com/floatdrop/require-from-string.git
resize-observer-polyfill 1.5.1 MIT https://github.com/que-etc/resize-observer-polyfill.git
resolve 1.22.2 MIT git://github.com/browserify/resolve.git
resolve 1.22.1 MIT git://github.com/browserify/resolve.git
resolve-from 4.0.0 MIT https://github.com/sindresorhus/resolve-from.git
reusify 1.0.4 MIT git+https://github.com/mcollina/reusify.git
rifm 0.7.0 MIT https://github.com/istarkov/rifm.git
run-parallel 1.2.0 MIT git://github.com/feross/run-parallel.git
scheduler 0.20.2 MIT https://github.com/facebook/react.git
select2 4.0.13 MIT git://github.com/select2/select2.git
shallowequal 1.1.0 MIT https://github.com/dashed/shallowequal.git
slash 4.0.0 MIT https://github.com/sindresorhus/slash.git
snapsvg-cjs 0.0.6 MIT git+https://github.com/geelen/Snap.svg-cjs.git
socket.io-client 4.6.1 MIT https://github.com/socketio/socket.io-client.git
socket.io-parser 4.2.2 MIT https://github.com/socketio/socket.io-parser.git
socket.io-client 4.5.4 MIT https://github.com/socketio/socket.io-client.git
socket.io-parser 4.2.1 MIT https://github.com/socketio/socket.io-parser.git
spdx-expression-parse 3.0.1 MIT https://github.com/jslicense/spdx-expression-parse.js.git
split.js 1.6.5 MIT https://github.com/nathancahill/split
stable 0.1.8 MIT https://github.com/Two-Screen/stable.git
strip-indent 4.0.0 MIT https://github.com/sindresorhus/strip-indent.git
styled-components 5.3.10 MIT git+https://github.com/styled-components/styled-components.git
styled-components 5.3.6 MIT git+https://github.com/styled-components/styled-components.git
stylehacks 5.1.1 MIT https://github.com/cssnano/cssnano.git
stylis 4.1.4 MIT https://github.com/thysultan/stylis.js
stylis 4.1.3 MIT https://github.com/thysultan/stylis.js
supports-color 5.5.0 MIT https://github.com/chalk/supports-color.git
supports-color 7.2.0 MIT https://github.com/chalk/supports-color.git
supports-preserve-symlinks-flag 1.0.0 MIT git+https://github.com/inspect-js/node-supports-preserve-symlinks-flag.git
svgo 2.8.0 MIT git://github.com/svg/svgo.git
tempusdominus-bootstrap-4 5.39.2 MIT https://github.com/tempusdominus/bootstrap-4.git
tempusdominus-core 5.19.3 MIT https://github.com/tempusdominus/core.git
text-segmentation 1.0.3 MIT git+ssh://git@github.com/niklasvh/text-segmentation.git
tiny-warning 1.0.3 MIT https://github.com/alexreardon/tiny-warning.git
to-fast-properties 2.0.0 MIT https://github.com/sindresorhus/to-fast-properties.git
to-regex-range 5.0.1 MIT https://github.com/micromatch/to-regex-range.git
trim-newlines 4.1.1 MIT https://github.com/sindresorhus/trim-newlines.git
trim-newlines 4.0.2 MIT https://github.com/sindresorhus/trim-newlines.git
unc-path-regex 0.1.2 MIT https://github.com/regexhq/unc-path-regex.git
update-browserslist-db 1.0.11 MIT https://github.com/browserslist/update-db.git
update-browserslist-db 1.0.10 MIT https://github.com/browserslist/update-db.git
uplot 1.6.24 MIT git+https://github.com/leeoniya/uPlot.git
uplot-react 1.1.4 MIT https://github.com/skalinichev/uplot-wrappers.git
use-isomorphic-layout-effect 1.1.2 MIT git+https://github.com/Andarist/use-isomorphic-layout-effect.git
util-deprecate 1.0.2 MIT git://github.com/TooTallNate/util-deprecate.git
utrie 1.0.2 MIT git+ssh://git@github.com/niklasvh/utrie.git
valid-filename 2.0.1 MIT https://github.com/sindresorhus/valid-filename.git
wkx 0.5.0 MIT http://github.com/cschwarz/wkx.git
ws 8.11.0 MIT https://github.com/websockets/ws.git
ws 8.2.3 MIT https://github.com/websockets/ws.git
xmlhttprequest-ssl 2.0.0 MIT git://github.com/mjwwit/node-XMLHttpRequest.git
xterm 4.19.0 MIT https://github.com/xtermjs/xterm.js
xterm-addon-fit 0.5.0 MIT https://github.com/xtermjs/xterm.js
@@ -526,25 +520,23 @@ react-leaflet 3.2.5
@trysound/sax 0.2.0 ISC git://github.com/svg/sax.git
boolbase 1.0.0 ISC https://github.com/fb55/boolbase
css-color-keywords 1.0.0 ISC https://github.com/sonicdoe/css-color-keywords.git
css-declaration-sorter 6.4.0 ISC https://github.com/Siilwyn/css-declaration-sorter.git
electron-to-chromium 1.4.377 ISC https://github.com/kilian/electron-to-chromium/
fastq 1.15.0 ISC git+https://github.com/mcollina/fastq.git
css-declaration-sorter 6.3.1 ISC https://github.com/Siilwyn/css-declaration-sorter.git
electron-to-chromium 1.4.284 ISC https://github.com/kilian/electron-to-chromium/
fastq 1.13.0 ISC git+https://github.com/mcollina/fastq.git
glob-parent 5.1.2 ISC https://github.com/gulpjs/glob-parent.git
hosted-git-info 4.1.0 ISC git+https://github.com/npm/hosted-git-info.git
jsonrepair 3.0.3 ISC https://github.com/josdejong/jsonrepair.git
jsonrepair 2.2.1 ISC https://github.com/josdejong/jsonrepair.git
lru-cache 6.0.0 ISC git://github.com/isaacs/node-lru-cache.git
lru-cache 5.1.1 ISC git://github.com/isaacs/node-lru-cache.git
minimatch 3.1.2 ISC git://github.com/isaacs/minimatch.git
picocolors 1.0.0 ISC https://github.com/alexeyraspopov/picocolors.git
react-timer-hook 3.0.5 ISC git+https://github.com/amrlabib/react-timer-hook.git
semver 7.3.8 ISC https://github.com/npm/node-semver.git
semver 6.3.0 ISC https://github.com/npm/node-semver
semver 7.5.0 ISC https://github.com/npm/node-semver.git
vanilla-picker 2.12.1 ISC https://github.com/Sphinxxxx/vanilla-picker.git
yallist 4.0.0 ISC git+https://github.com/isaacs/yallist.git
yallist 3.1.1 ISC git+https://github.com/isaacs/yallist.git
yaml 1.10.2 ISC https://github.com/eemeli/yaml.git
yargs-parser 20.2.9 ISC https://github.com/yargs/yargs-parser.git
ace-builds 1.18.0 BSD-3-Clause https://github.com/ajaxorg/ace-builds.git
ace-builds 1.13.1 BSD-3-Clause https://github.com/ajaxorg/ace-builds.git
hoist-non-react-statics 3.3.2 BSD-3-Clause git://github.com/mridgway/hoist-non-react-statics.git
hyphenate-style-name 1.0.4 BSD-3-Clause git+ssh://git@github.com/rexxars/hyphenate-style-name.git
istanbul-lib-coverage 3.2.0 BSD-3-Clause git+ssh://git@github.com/istanbuljs/istanbuljs.git
@@ -557,7 +549,7 @@ source-map 0.6.1
source-map 0.5.7 BSD-3-Clause http://github.com/mozilla/source-map.git
source-map-js 1.0.2 BSD-3-Clause https://github.com/7rulnik/source-map-js.git
sprintf-js 1.1.2 BSD-3-Clause https://github.com/alexei/sprintf.js.git
caniuse-lite 1.0.30001481 CC-BY-4.0 https://github.com/browserslist/caniuse-lite.git
caniuse-lite 1.0.30001434 CC-BY-4.0 https://github.com/browserslist/caniuse-lite.git
css-select 4.3.0 BSD-2-Clause git://github.com/fb55/css-select.git
css-what 6.1.0 BSD-2-Clause https://github.com/fb55/css-what
domelementtype 2.3.0 BSD-2-Clause git://github.com/fb55/domelementtype.git
@@ -571,14 +563,14 @@ uri-js 4.4.1
FileSaver 0.10.0 UNKNOWN Unknown
heap 0.2.5 UNKNOWN git://github.com/qiao/heap.js.git
mdn-data 2.0.14 CC0-1.0 https://github.com/mdn/data.git
spdx-license-ids 3.0.13 CC0-1.0 https://github.com/jslicense/spdx-license-ids.git
spdx-license-ids 3.0.12 CC0-1.0 https://github.com/jslicense/spdx-license-ids.git
mousetrap 1.6.5 Apache-2.0 WITH LLVM-exception git://github.com/ccampbell/mousetrap.git
pako 1.0.11 (MIT AND Zlib) https://github.com/nodeca/pako.git
spdx-exceptions 2.3.0 CC-BY-3.0 https://github.com/kemitchell/spdx-exceptions.json.git
tslib 2.5.0 0BSD https://github.com/Microsoft/tslib.git
tslib 2.4.1 0BSD https://github.com/Microsoft/tslib.git
tslib 2.3.1 0BSD https://github.com/Microsoft/tslib.git
type-fest 1.4.0 (MIT OR CC0-1.0) https://github.com/sindresorhus/type-fest.git
webcabin-docker 2.2.5 MIT* Unknown
493 dependencies listed.
491 dependencies listed.
-2
View File
@@ -27,7 +27,6 @@ RUN apk add --no-cache \
make \
nasm \
nodejs \
npm \
yarn \
zlib-dev
@@ -46,7 +45,6 @@ WORKDIR /pgadmin4/web
# Build the JS vendor code in the app-builder, and then remove the vendor source.
RUN export CPPFLAGS="-DPNG_ARM_NEON_OPT=0" && \
yarn set version berry && \
yarn install && \
yarn run bundle && \
rm -rf node_modules \
+5 -4
View File
@@ -274,13 +274,14 @@ REM Main build sequence Ends
REM YARN END
REM WGET
REM Comment out the below for loop as the latest version having
REM some problem to launch on CentOS 7, so for
REM the time being hardcoded the version to 0.72.0
REM FOR /f "tokens=2 delims='" %%i IN ('yarn info nw ^| findstr "latest: "') DO SET "NW_VERSION=%%i"
REM :GET_NW
REM wget https://dl.nwjs.io/v%NW_VERSION%/nwjs-v%NW_VERSION%-win-x64.zip -O "%TMPDIR%\nwjs-v%NW_VERSION%-win-x64.zip"
REM IF %ERRORLEVEL% NEQ 0 GOTO GET_NW
REM wget https://dl.nwjs.io/v%NW_VERSION%/nwjs-v%NW_VERSION%-win-x64.zip -O "%TMPDIR%\nwjs-v%NW_VERSION%-win-x64.zip"
REM IF %ERRORLEVEL% NEQ 0 GOTO GET_NW
REM Remove the above commented code once below issue is fixed
REM Pining NWjs because of https://github.com/nwjs/nw.js/issues/8039 in 0.74.0
SET "NW_VERSION=0.72.0"
wget https://dl.nwjs.io/v%NW_VERSION%/nwjs-v%NW_VERSION%-win-x64.zip -O "%TMPDIR%\nwjs-v%NW_VERSION%-win-x64.zip"
+13 -9
View File
@@ -18,19 +18,13 @@ APP_REVISION := $(shell grep ^APP_REVISION web/config.py | awk -F"=" '{print $$N
#########################################################################
# Include only platform-independent builds in all
all: docs pip src
all: docs pip src runtime
appbundle:
./pkg/mac/build.sh
install-node:
cd web && yarn install
install-python:
./tools/setup-python-env.sh
install-python-testing:
./tools/setup-python-env.sh --test
cd web && yarn install && npm rebuild
bundle:
cd web && yarn run bundle
@@ -82,13 +76,23 @@ check-js: install-node linter
check-js-coverage:
cd web && yarn run test:karma-coverage
runtime-debug:
cd runtime && qmake CONFIG+=debug && make
runtime:
cd runtime && qmake CONFIG+=release && make
# Include all clean sub-targets in clean
clean: clean-appbundle clean-debian clean-dist clean-docs clean-node clean-pip clean-redhat clean-src
clean: clean-appbundle clean-debian clean-dist clean-docs clean-node clean-pip clean-redhat clean-src clean-runtime
rm -rf web/pgadmin/static/js/generated/*
rm -rf web/pgadmin/static/js/generated/.cache
rm -rf web/pgadmin/static/css/generated/*
rm -rf web/pgadmin/static/css/generated/.cache
clean-runtime:
if [ -f runtime/Makefile ]; then (cd runtime && make clean); fi;
rm -rf build-*
clean-appbundle:
rm -rf mac-build/
+2 -2
View File
@@ -48,7 +48,7 @@ node_modules/nw/nwjs/nwjs.app/Contents/MacOS/nwjs .
# Configuring the Python Environment
In order to run the Python code, a suitable runtime environment is required.
Python version 3.7 and later are currently supported. It is recommended that a
Python version 3.6 and later are currently supported. It is recommended that a
Python Virtual Environment is setup for this purpose, rather than using the
system Python environment. On Linux and Mac systems, the process is fairly
simple - adapt as required for your distribution:
@@ -74,7 +74,7 @@ simple - adapt as required for your distribution:
```
4. Ensure that a PostgreSQL installation's bin/ directory is in the path (so
pg_config can be found for building psycopg3), and install the required
pg_config can be found for building psycopg2), and install the required
packages:
```bash
+7 -6
View File
@@ -1,12 +1,12 @@
.. _cloud_aws_rds:
******************************************
`Amazon RDS Cloud Deployment`:index:
`Amazon AWS RDS Cloud Deployment`:index:
******************************************
To deploy a PostgreSQL server on the Amazon cloud, follow the below steps.
To deploy a PostgreSQL server on the Amazon AWS cloud, follow the below steps.
.. image:: images/cloud_provider_for_postgresql.png
.. image:: images/cloud_aws_provider.png
:alt: Cloud Deployment Provider
:align: center
@@ -32,7 +32,8 @@ Use the fields from the Instance Specification tab to specify the Instance
details.
* Use the *Instance name* field to add an instance name for the PostgreSQL
server; the name specified will be displayed in the *Object Explorer* too.
server; the name specified will be displayed in the *Browser* tree control
too.
* Use the *Public IP* field to specify the IP Address range for permitting the
inbound traffic.
@@ -62,8 +63,8 @@ details.
Use the fields from the Database Details tab to specify the Instance details.
* Use the drop-down list box in the *Server group* field to select the parent
node for the server; the server will be displayed in the *Object Explorer*
within the specified group.
node for the server; the server will be displayed in the *Browser* tree
control within the specified group.
* Use the *Database name* field to add the database name for the PostgreSQL
server.
@@ -1,16 +1,16 @@
.. cloud_azure_database:
.. _cloud_azure_postgresql:
******************************************
`Azure Database Cloud Deployment`:index:
`Azure PostgreSQL Cloud Deployment`:index:
******************************************
To deploy a PostgreSQL server on the Azure Database, follow the below steps.
To deploy a PostgreSQL server on the Azure cloud, follow the below steps.
.. image:: images/cloud_provider_for_postgresql.png
.. image:: images/cloud_azure_provider.png
:alt: Cloud Deployment
:align: center
Once you launch the tool, select the Azure Database option.
Once you launch the tool, select the Azure PostgreSQL option.
Click on the *Next* button to proceed further.
@@ -41,7 +41,7 @@ Use the fields from the Instance Specification tab to specify the Instance
details.
* Use the *Cluster name* field to add a name for the PostgreSQL
server; the name specified will be displayed in the *Object Explorer* too.
server; the name specified will be displayed in the *Browser* tree control too.
* Select a subscription from the *Subscription* options which are populated based
on user access levels in Azure portal.
@@ -85,8 +85,8 @@ details.
Use the fields from the Database Details tab to specify the PostgreSQL database details.
* Use the drop-down list in the *pgAdmin server group* field to select the parent
node for the server; the server will be displayed in the *Object Explorer*
within the specified group.
node for the server; the server will be displayed in the *Browser* tree
control within the specified group.
* Use the *Admin username* field to add the database name for the PostgreSQL
server.
@@ -103,7 +103,7 @@ Click on the next button to proceed.
:align: center
At the end, review the instance details that you provided. Click on Finish
button to deploy the instance on Azure Database.
button to deploy the instance on Azure PostgreSQL.
Once you click on the finish, one background process will start which will
deploy the instance in the cloud and monitor the progress of the deployment.
Binary file not shown.

Before

Width:  |  Height:  |  Size: 97 KiB

+6 -8
View File
@@ -1,12 +1,11 @@
.. _cloud_deployment:
*************************************
`PostgreSQL Cloud Deployment`:index:
*************************************
******************************
`Cloud Deployment`:index:
******************************
A PostgreSQL server can be deployed on the Amazon, EDB BigAnimal, Azure,
Google cloud using this module. In future more cloud provider options will
be available.
A PostgreSQL server can be deployed on the Amazon AWS and EDB BigAnimal
cloud using this module. In future more cloud options will be available.
To launch the *Cloud Deployment...* tool, right click on the *Server Group* or
*Server* of the tree control, and select *Deploy a Cloud Instance* from the
@@ -17,5 +16,4 @@ To launch the *Cloud Deployment...* tool, right click on the *Server Group* or
cloud_aws_rds
cloud_edb_biganimal
cloud_azure_database
cloud_google_cloud_sql
cloud_azure_postgresql
+6 -6
View File
@@ -6,7 +6,7 @@
To deploy a PostgreSQL server on the EDB BigAnimal cloud, follow the below steps.
.. image:: images/cloud_provider_for_postgresql.png
.. image:: images/cloud_biganimal_provider.png
:alt: Cloud Deployment Provider
:align: center
@@ -27,13 +27,12 @@ and the next button will be enabled. To proceed further, click on the next butto
:alt: Cloud Deployment Provider
:align: center
* Use the *Project* field to choose a project in your Biganimal account.
* Use the *Cluster type* field to choose a cluster type.
* Use the *No. of Standby Replicas* field to specify the replicas if you have selected the High Availability cluster.
* Use the *Cluster provider* field to choose the provider.
* Use the *Cluster provider* field to coose the provider.
.. image:: images/cloud_biganimal_instance.png
@@ -44,7 +43,8 @@ Use the fields from the Instance Specification tab to specify the Instance
details.
* Use the *Cluster name* field to add a cluster name for the PostgreSQL
server; the name specified will be displayed in the *Object Explorer* too.
server; the name specified will be displayed in the *Browser* tree control
too.
* Use the *Region* field to select the region.
@@ -74,8 +74,8 @@ details.
Use the fields from the Database Details tab to specify the Instance details.
* Use the drop-down list box in the *Server group* field to select the parent
node for the server; the server will be displayed in the *Object Explorer*
within the specified group.
node for the server; the server will be displayed in the *Browser* tree
control within the specified group.
* Use the *Database type* field to specify the PostgreSQL
type, EnterpriseDB PostgreSQL Advanced Server or PostgreSQL.
-117
View File
@@ -1,117 +0,0 @@
.. cloud_google_cloud_sql:
************************************************
`Google Cloud SQL Deployment`:index:
************************************************
To deploy a PostgreSQL server on the Google Cloud SQL, follow the below steps.
.. image:: images/cloud_provider_for_postgresql.png
:alt: Cloud Deployment
:align: center
Once you launch the tool, select the Google Cloud SQL option.
Click on the *Next* button to proceed further.
.. image:: images/cloud_google_credentials.png
:alt: Cloud Deployment
:align: center
In the Credentials dialog, select client secret file to authenticate
using google.You can download a client secret which is json formatted file
from google cloud console once OAuth2 client ID is created.
.. note:: While creating client OAuth client ID, select Desktop App as application type.
Refer `this <https://support.google.com/cloud/answer/6158849?hl=en/>`_ link for creating client secret.
Clicking the *Click here to authenticate yourself to Google*
button, user will be redirected to the Google authentication page in a
new browser tab.
Once authentication is completed, click on the next button to proceed.
.. image:: images/cloud_google_instance.png
:alt: Cloud Deployment
:align: center
Use the fields from the Instance Specification tab to specify the Instance
details.
* Use the *Cluster name* field to add a name for the PostgreSQL
server; the name specified will be displayed in the *Object Explorer* too.
* Select the project from *project* dropdown under which the
PostgreSQL instance will be created.
* Select the location to deploy PostgreSQL instance from *Location*
options.
* Select the availability zone in specified region to deploy PostgreSQL
instance from *Availability zone* options.
* Use *Database version* options to specify PostgreSQL database version.
* Use the *Instance class* field to allocate the computational and
memory capacity required by planned workload of this DB instance.
* Use the *Instance type* field to select the instance type.
* Specify storage type by selecting option from *Storage type*.
* Use the *Storage capacity* option to specify the storage capacity.
.. image:: images/cloud_google_network.png
:alt: Cloud Deployment
:align: center
* Use the *Public IP* field to specify the list of IP address range
for allowed inbound traffic, for example: 127.0.0.1/32. Add multiple
IP addresses/ranges separated with commas.
* Use the *High Availability* option to specify High Availability
option. This option creates a standby in a select Secondary
Availability Zone.
* Select the secondary availability zone for high availability
from *Secondary Availability zone* options.
.. image:: images/cloud_google_database.png
:alt: Cloud Deployment
:align: center
Use the fields from the Database Details tab to specify the PostgreSQL database details.
* Use the drop-down list in the *pgAdmin server group* field to select the parent
node for the server; the server will be displayed in the *Object Explorer*
within the specified group.
* Admin username field will be default to postgres.
server.
* Use the *Password* field to provide a password that will be supplied when
authenticating with the server.
* Use the *Confirm password* field to repeat the password.
Click on the next button to proceed.
.. image:: images/cloud_google_review.png
:alt: Cloud Deployment
:align: center
At the end, review the instance details that you provided. Click on Finish
button to deploy the instance on Azure PostgreSQL.
Once you click on the finish, one background process will start which will
deploy the instance in the cloud and monitor the progress of the deployment.
You can view all the background process with there running status and logs
on the :ref:`Processes <processes>` tab
The Server will be added to the tree with the cloud deployment icon. Once the
deployment is done, the server details will be updated.
.. image:: images/cloud_google_deployment_tree.png
:alt: Cloud Deployment Provider
:align: center
+1 -1
View File
@@ -194,7 +194,7 @@ Nodes
*****
Nodes are very similar to modules, it represents an individual node or,
collection object on the object explorer treeview. To recognised as a node module, a
collection object on the browser treeview. To recognised as a node module, a
Python package (along with javascript modules) must be created. This must:
1) Be placed within the **web/pgadmin/browser/** directory, and
+3 -3
View File
@@ -5,9 +5,9 @@
`View/Edit Data`:index:
***********************
To view or modify data, right click on a table or view name in the
*Object Explorer*. When the context menu opens, use the *View/Edit Data* menu
to specify the number of rows you would like to display in the editor panel.
To view or modify data, right click on a table or view name in the *Browser*
tree control. When the context menu opens, use the *View/Edit Data* menu to
specify the number of rows you would like to display in the editor panel.
.. image:: images/editgrid.png
:alt: Edit grid window
+1 -1
View File
@@ -12,7 +12,7 @@ The Entity-Relationship Diagram (ERD) tool is a database design tool that provid
* Save the diagram and open it later to continue working on it.
* Generate ready to run SQL from the database design.
* Generate the database diagram for an existing database.
* Drag and drop tables from object explorer to the diagram.
* Drag and drop tables from browser tree to the diagram.
.. image:: images/erd_tool.png
:alt: ERD tool window
Binary file not shown.

After

Width:  |  Height:  |  Size: 43 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 45 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 68 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 119 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 95 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 56 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 119 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 135 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 151 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 86 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 116 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 184 KiB

After

Width:  |  Height:  |  Size: 108 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 179 KiB

After

Width:  |  Height:  |  Size: 114 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 123 KiB

After

Width:  |  Height:  |  Size: 77 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 91 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 98 KiB

After

Width:  |  Height:  |  Size: 57 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 217 KiB

After

Width:  |  Height:  |  Size: 132 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 184 KiB

After

Width:  |  Height:  |  Size: 92 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 17 KiB

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 113 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 124 KiB

After

Width:  |  Height:  |  Size: 67 KiB

+1 -1
View File
@@ -20,7 +20,7 @@ Use the fields in the *General* tab to specify import and export preferences:
server should import data to a table from a file. The default is *Import*.
* Enter the name of the source or target file in the *Filename* field.
Optionally, select the *Browse* icon (ellipsis) to the right to navigate
Optionally, select the *Browser* icon (ellipsis) to the right to navigate
into a directory and select a file.
* Use the drop-down listbox in the *Format* field to specify the file type.
+2 -2
View File
@@ -20,7 +20,7 @@ When using main browser window, the following keyboard shortcuts are available:
+============================+=======================================================+
| Shift+Ctrl+a | Add grid row |
+----------------------------+-------------------------------------------------------+
| Shift+Alt+b | Object explorer |
| Shift+Alt+b | Browser tree |
+----------------------------+-------------------------------------------------------+
| Shift+Alt+n | Create object |
+----------------------------+-------------------------------------------------------+
@@ -50,7 +50,7 @@ When using main browser window, the following keyboard shortcuts are available:
+----------------------------+-------------------------------------------------------+
| Shift+Ctrl+f | Quick Search |
+----------------------------+-------------------------------------------------------+
| F5 | Refresh object explorer |
| F5 | Refresh browser tree |
+----------------------------+-------------------------------------------------------+
| Shift+Alt+s | Search objects |
+----------------------------+-------------------------------------------------------+
+2 -29
View File
@@ -31,7 +31,7 @@ Use the fields on the *Display* panel to specify general display preferences:
be automatically expanded if a treeview node is expanded and has only a single
child.
* Use the *Object explorer state saving interval* field to set the treeview state
* Use the *Browser tree state saving interval* field to set the treeview state
saving interval. A value of *-1* will disable the treeview state saving
functionality.
@@ -44,7 +44,7 @@ Use the fields on the *Display* panel to specify general display preferences:
them to continue.
* When the *Hide shared servers?* switch is set to *True*, the client will hide
all the shared servers from the object explorer.
all the shared servers from the browser tree.
* Use the *Lock layout* field to lock the UI layout at different levels. This
can also be changed from File menu on the :ref:`menu bar <menu_bar>`
@@ -88,30 +88,6 @@ displayed in the *Browser* tree control:
catalogs, you can reduce the number of object types displayed to increase
speed.
Use the fields on the *Object Breadcrumbs* panel to change object breadcrumbs
related settings:
.. image:: images/preferences_browser_breadcrumbs.png
:alt: Preferences dialog object breadcrumbs section
:align: center
* Use *Enable object breadcrumbs?* to enable or disable object breadcrumbs
displayed on on object mouse hover.
* Use *Show comment with object breadcrumbs?* to enable or disable the
comment visibility which comes displayed with object breadcrumbs.
Use the fields on the *Processes* panel to change processes tab
related settings:
.. image:: images/preferences_browser_processes.png
:alt: Preferences dialog processes section
:align: center
* Change *Process details/logs retention days* to the number of days,
the process info and logs will be automatically cleared.
Use fields on the *Properties* panel to specify browser properties:
.. image:: images/preferences_browser_properties.png
@@ -464,9 +440,6 @@ preferences for copied data.
* Specify the maximum width of the column in pixels when 'Columns sized by' is
set to *Column data*. If 'Columns sized by' is set to *Column name* then this
setting won't have any effect.
* Specify the number of records to fetch in one batch in query tool when
query result set is large. Changing this value will override
ON_DEMAND_ROW_COUNT setting from config file.
* Use the *Result copy field separator* drop-down listbox to select the field
separator for copied data.
* Use the *Result copy quote character* drop-down listbox to select the quote
+3 -3
View File
@@ -7,10 +7,10 @@
The PSQL tool allows users to connect to PostgreSQL or EDB Advanced server using
the psql command line interface through their browser.
* Open the PSQL tool from the Tools or object explorer context menu, or use PSQL
tool button at the top of the object explorer.
* Open the PSQL tool from the Tools or browser tree context menu, or use PSQL
tool button at the top of the browser tree.
* PSQL will connect to the current connected database from the object explorer.
* PSQL will connect to the current connected database from the browser tree.
.. image:: images/psql_tool.png
:alt: PSQL tool window
+1 -1
View File
@@ -7,7 +7,7 @@
The Query Tool is a powerful, feature-rich environment that allows you to
execute arbitrary SQL commands and review the result set. You can access the
Query Tool via the *Query Tool* menu option on the *Tools* menu, or through the
context menu of select nodes of the Object explorer control. The Query Tool
context menu of select nodes of the Browser tree control. The Query Tool
allows you to:
* Issue ad-hoc SQL queries.
+1 -6
View File
@@ -178,12 +178,7 @@ Data Editing Options
| | | |
| | * Click *Copy with headers* to copy the highlighted content along with the header. | |
+----------------------+---------------------------------------------------------------------------------------------------+----------------+
| *Paste* | Click the *Paste* icon to paste a previously copied row with or without serial/identity values: | Accesskey + P |
| | | |
| | * Click the *Paste* icon to paste a previously copied row into a new row. | |
| | | |
| | * Click the *Paste with SERIAL/IDENTITY values?* if you want to paste the copied column values | |
| | in the serial/identity columns. | |
| *Paste* | Click the *Paste* icon to paste a previously copied row into a new row. | Accesskey + P |
+----------------------+---------------------------------------------------------------------------------------------------+----------------+
| *Delete* | Click the *Delete* icon to mark the selected rows for deletion. These marked rows get deleted | Accesskey + D |
| | when you click the *Save Data Changes* icon. | |
-2
View File
@@ -11,8 +11,6 @@ notes for it.
.. toctree::
:maxdepth: 1
release_notes_7_1
release_notes_7_0
release_notes_6_21
release_notes_6_20
release_notes_6_19
-73
View File
@@ -1,73 +0,0 @@
***********
Version 7.0
***********
Release date: 2023-04-13
This release contains a number of bug fixes and new features since the release of pgAdmin 4 v6.21.
Supported Database Servers
**************************
**PostgreSQL**: 11, 12, 13, 14 and 15
**EDB Advanced Server**: 11, 12, 13, 14 and 15
Bundled PostgreSQL Utilities
****************************
**psql**, **pg_dump**, **pg_dumpall**, **pg_restore**: 15.2
New features
************
| `Issue #3298 <https://github.com/pgadmin-org/pgadmin4/issues/3298>`_ - Auto expand row edit form when a new row is added for Primary Key, Foreign Key, Unique Constraint and Exclusion Constraint.
| `Issue #5014 <https://github.com/pgadmin-org/pgadmin4/issues/5014>`_ - Added support for mounting shared storage in server mode.
| `Issue #5022 <https://github.com/pgadmin-org/pgadmin4/issues/5022>`_ - Add a note on top of keyboard shortcuts preferences to show the Accesskey of the browser.
| `Issue #5750 <https://github.com/pgadmin-org/pgadmin4/issues/5750>`_ - Added capability to deploy PostgreSQL servers on Google Cloud.
| `Issue #5805 <https://github.com/pgadmin-org/pgadmin4/issues/5805>`_ - Added support of BigAnimal v3 API.
| `Issue #5854 <https://github.com/pgadmin-org/pgadmin4/issues/5854>`_ - On pressing Ctrl+C on a tree object, copy the fully qualified name to clipboard.
| `Issue #5855 <https://github.com/pgadmin-org/pgadmin4/issues/5855>`_ - Added option to create unique constraint with nulls not distinct.
Housekeeping
************
| `Issue #4734 <https://github.com/pgadmin-org/pgadmin4/issues/4734>`_ - Rename the "Properties..." context menu option of the objects to "Edit Object..." and the "Browser" tree to "Object Explorer".
| `Issue #5011 <https://github.com/pgadmin-org/pgadmin4/issues/5011>`_ - Upgrade from psycopg2 to psycopg3.
| `Issue #5701 <https://github.com/pgadmin-org/pgadmin4/issues/5701>`_ - Remove Bootstrap and jQuery usage.
| `Issue #5830 <https://github.com/pgadmin-org/pgadmin4/issues/5830>`_ - Add .ts and .tsx files under linter and fix linter issues.
| `Issue #5901 <https://github.com/pgadmin-org/pgadmin4/issues/5901>`_ - Update SQLAlchemy, Flask, Flask-SQLAlchemy, and other packages to current versions.
Bug fixes
*********
| `Issue #4423 <https://github.com/pgadmin-org/pgadmin4/issues/4423>`_ - Fixed an issue where list of tables is not displayed in a SQL_ASCII database.
| `Issue #4784 <https://github.com/pgadmin-org/pgadmin4/issues/4784>`_ - Handle errors occurring during decoding UTF-8 encoded query result data which contains ascii characters.
| `Issue #4884 <https://github.com/pgadmin-org/pgadmin4/issues/4884>`_ - Fixed an issue where it is not possible to import csv data to tables having columns with german umlauts in their name.
| `Issue #4891 <https://github.com/pgadmin-org/pgadmin4/issues/4891>`_ - Fixed 'rawunicodeescape' codec can't decode issue in a SQL_ASCII database.
| `Issue #5504 <https://github.com/pgadmin-org/pgadmin4/issues/5504>`_ - Fixed an issue where incorrect view of text[] fields in query and table results when use other then UTF8 (win1251) codepage and symbols.
| `Issue #5735 <https://github.com/pgadmin-org/pgadmin4/issues/5735>`_ - Show appropriate error message when master password is not set instead of 'Crypt key missing'.
| `Issue #5775 <https://github.com/pgadmin-org/pgadmin4/issues/5775>`_ - Display the 'No menu available for this object' message if the selected tree node does not have any options.
| `Issue #5824 <https://github.com/pgadmin-org/pgadmin4/issues/5824>`_ - Ensure that the user's storage directory is created when the users are created, as well as for those users whose directories have not yet been created.
| `Issue #5833 <https://github.com/pgadmin-org/pgadmin4/issues/5833>`_ - Fixed an issue where user MFA entry was not getting delete after deleting a user.
| `Issue #5834 <https://github.com/pgadmin-org/pgadmin4/issues/5834>`_ - Fixed issue where pgAgent jobs were not getting dropped from properties tab.
| `Issue #5874 <https://github.com/pgadmin-org/pgadmin4/issues/5874>`_ - Make "using" and "with check" fields a textarea in the RLS policy.
| `Issue #5894 <https://github.com/pgadmin-org/pgadmin4/issues/5894>`_ - Use fetch instead of axios to close connections in SQLEditor, ERD, Schema Diff and Debugger to ensure it completes.
| `Issue #5904 <https://github.com/pgadmin-org/pgadmin4/issues/5904>`_ - Fixed an issue where the count query should not be triggered when the estimated count is less than zero.
| `Issue #5907 <https://github.com/pgadmin-org/pgadmin4/issues/5907>`_ - Validate user inputs provided in configuration files before starting pgadmin server.
| `Issue #5916 <https://github.com/pgadmin-org/pgadmin4/issues/5916>`_ - Fix an issue in search objects where objects were unable to locate occasionally.
| `Issue #5919 <https://github.com/pgadmin-org/pgadmin4/issues/5919>`_ - While restoring the database connections due to lost server connection, ensure that the databases which were previously connected are only reconnected.
| `Issue #5921 <https://github.com/pgadmin-org/pgadmin4/issues/5921>`_ - Ensure that when pasting rows the rows are added right below the selected rows for copying.
| `Issue #5929 <https://github.com/pgadmin-org/pgadmin4/issues/5929>`_ - Dashboard graph Y-axis width should increase with label.
| `Issue #5934 <https://github.com/pgadmin-org/pgadmin4/issues/5934>`_ - Ensure that default values are set only for insert statement if user does not provide any values, in case of updating existing values to blank it should be set to null.
| `Issue #5941 <https://github.com/pgadmin-org/pgadmin4/issues/5941>`_ - Fixed an issue where migration on external database is not working.
| `Issue #5943 <https://github.com/pgadmin-org/pgadmin4/issues/5943>`_ - Use http for SVG namespace URLs which were changed to https for SonarQube fixes.
| `Issue #5952 <https://github.com/pgadmin-org/pgadmin4/issues/5952>`_ - Ensure that the schema diff tool should not allow comparison between Postgres Server and EDB Postgres Advanced Server.
| `Issue #5953 <https://github.com/pgadmin-org/pgadmin4/issues/5953>`_ - Fixed error while executing continue in debugging session after some time of debug execution.
| `Issue #5955 <https://github.com/pgadmin-org/pgadmin4/issues/5955>`_ - Fix an issue where query tool is stuck when running query after discarding changed data.
| `Issue #5958 <https://github.com/pgadmin-org/pgadmin4/issues/5958>`_ - Fix an issue where new dashboard graphs are partially following theme colors.
| `Issue #5959 <https://github.com/pgadmin-org/pgadmin4/issues/5959>`_ - Fix an issue where Backup, Restore, and Maintenance not working if connection timeout is set in the server dialog.
| `Issue #6018 <https://github.com/pgadmin-org/pgadmin4/issues/6018>`_ - Change the foreground color of the code mirror text for Dark Theme.
| `Issue #6093 <https://github.com/pgadmin-org/pgadmin4/issues/6093>`_ - Fix the dependents SQL of Roles which is throwing a type casting error on PostgreSQL 15.
| `Issue #6100 <https://github.com/pgadmin-org/pgadmin4/issues/6100>`_ - Fixed the LDAP authentication issue for the simultaneous login attempts.(CVE-2023-1907)
| `Issue #6109 <https://github.com/pgadmin-org/pgadmin4/issues/6109>`_ - Fixed asyncio random task error messages in Query tool.
| `Issue #6122 <https://github.com/pgadmin-org/pgadmin4/issues/6122>`_ - Fixed CSV export from Query Tool results does not include all columns for multiple CTEs.
-53
View File
@@ -1,53 +0,0 @@
***********
Version 7.1
***********
Release date: 2023-05-04
This release contains a number of bug fixes and new features since the release of pgAdmin 4 v7.0.
Supported Database Servers
**************************
**PostgreSQL**: 11, 12, 13, 14 and 15
**EDB Advanced Server**: 11, 12, 13, 14 and 15
Bundled PostgreSQL Utilities
****************************
**psql**, **pg_dump**, **pg_dumpall**, **pg_restore**: 15.2
New features
************
| `Issue #2078 <https://github.com/pgadmin-org/pgadmin4/issues/2078>`_ - Show object breadcrumbs path along with its comment on object hover.
| `Issue #3275 <https://github.com/pgadmin-org/pgadmin4/issues/3275>`_ - Allow on demand record count setting to be changed per user using preferences.
| `Issue #3316 <https://github.com/pgadmin-org/pgadmin4/issues/3316>`_ - Added support to show statistics for materialized views.
| `Issue #3318 <https://github.com/pgadmin-org/pgadmin4/issues/3318>`_ - Added support to create an unnamed index.
Housekeeping
************
Bug fixes
*********
| `Issue #5044 <https://github.com/pgadmin-org/pgadmin4/issues/5044>`_ - Fixed an issue where query tool hangs for some time when multiple columns are selected to open geometry viewer.
| `Issue #5777 <https://github.com/pgadmin-org/pgadmin4/issues/5777>`_ - Fixed an issue where the browser tree state is not remembered when reopening pgAdmin.
| `Issue #5820 <https://github.com/pgadmin-org/pgadmin4/issues/5820>`_ - Fixed an issue where collation was set to none if we remove it while creating partitioned table.
| `Issue #5922 <https://github.com/pgadmin-org/pgadmin4/issues/5922>`_ - Ensure that when pasting a row in query tool grid, default value is used for autogenerated/serial columns.
| `Issue #6059 <https://github.com/pgadmin-org/pgadmin4/issues/6059>`_ - Show proper message if the debugger is stopped by the user.
| `Issue #6075 <https://github.com/pgadmin-org/pgadmin4/issues/6075>`_ - Ensure that the save button is enabled when registering a new server fails due to an API error.
| `Issue #6077 <https://github.com/pgadmin-org/pgadmin4/issues/6077>`_ - The search object, query tool, and psql tool menu should not be displayed for pgAgent.
| `Issue #6120 <https://github.com/pgadmin-org/pgadmin4/issues/6120>`_ - Fixed error occurring while logging out from pgAdmin keeping a query tool opened.
| `Issue #6128 <https://github.com/pgadmin-org/pgadmin4/issues/6128>`_ - Fix a SQL error occurring on roles dependents SQL.
| `Issue #6130 <https://github.com/pgadmin-org/pgadmin4/issues/6130>`_ - Ensure to quote the primary key value if needed while deleting rows from the table.
| `Issue #6137 <https://github.com/pgadmin-org/pgadmin4/issues/6137>`_ - Fixed error occurring while dumping the servers from CLI.
| `Issue #6138 <https://github.com/pgadmin-org/pgadmin4/issues/6138>`_ - Throw an appropriate error when a table for which View/Edit data is open, is deleted, and query is executed.
| `Issue #6151 <https://github.com/pgadmin-org/pgadmin4/issues/6151>`_ - Ensure that internal users are able to login when auth sources are [ldap, internal].
| `Issue #6158 <https://github.com/pgadmin-org/pgadmin4/issues/6158>`_ - Fixed an issue with the properties tab not getting updated if the user updates the selected node.
| `Issue #6159 <https://github.com/pgadmin-org/pgadmin4/issues/6159>`_ - Ensure that the ERD tool should work with the external database after moving to psycopg3.
| `Issue #6180 <https://github.com/pgadmin-org/pgadmin4/issues/6180>`_ - Fixed an issue where PSQL is not working if the PGUSER env variable is set and service file is used for server connection details.
| `Issue #6183 <https://github.com/pgadmin-org/pgadmin4/issues/6183>`_ - Mac crash when you press Command-Shift-C.
| `Issue #6189 <https://github.com/pgadmin-org/pgadmin4/issues/6189>`_ - Fix an issue in View SQL when column level privileges are set with multiple roles.
| `Issue #6191 <https://github.com/pgadmin-org/pgadmin4/issues/6191>`_ - Fixed an issue where Reset Password is not working after upgrading to latest flask-security-too.
+1 -1
View File
@@ -30,7 +30,7 @@ restore process:
* Select *Directory* to restore from a compressed directory-format archive.
* Enter the complete path to the backup file in the *Filename* field.
Optionally, select the *Browse* icon (ellipsis) to the right to navigate
Optionally, select the *Browser* icon (ellipsis) to the right to navigate
into a directory and select the file that contains the archive.
* Use the *Number of Jobs* field to specify if pg_restore should use multiple
(concurrent) jobs to process the restore. Each job uses a separate connection
+1 -1
View File
@@ -54,7 +54,7 @@ The Schema Diff Object Comparison Panel
In the object comparison panel, you can select the source and target servers
of the same major version, and databases to be compared. You can
select any server listed under the object explorer whether it is connected or
select any server listed under the browser tree whether it is connected or
disconnected. If you select a server that is not connected then it will
prompt you for the password before using the server.
+3 -3
View File
@@ -21,9 +21,9 @@ You can only search for object names currently. Examples are: abc,
%ab%, ab%c, %%%, etc.
The result is presented in the grid with object name, object type and
the object path in the :ref:`object explorer <tree_control>`. You can double
the object tree path in the :ref:`browser <tree_control>`. You can double
click on a result row to select the object in the
:ref:`object explorer <tree_control>`. If the object is greyed out, this means that you
:ref:`browser <tree_control>`. If the object is greyed out, this means that you
have not enabled those object types in the :ref:`preferences <preferences>`,
so you can't double click on it. You can click on the ellipsis appended to
the function and procedure names to see their arguments.
@@ -33,5 +33,5 @@ You can filter based on a particular object type by selecting one from the
object type dropdown. If the search button is hit when one of the object type
is selected then only those types will be fetch from the database.
An object type will not be visible in the dropdown if the database server
does not support it or if it is not enabled from the
does not support it or if it is not enabled from the
:ref:`preferences <preferences>`.
+3 -3
View File
@@ -15,10 +15,10 @@ allows connections from the host of the client.
Use the fields in the *General* tab to identify the server:
* Use the *Name* field to add a descriptive name for the server; the name
specified will be displayed in the *Object Explorer*.
specified will be displayed in the *Browser* tree control.
* Use the drop-down list box in the *Server group* field to select the parent
node for the server; the server will be displayed in the *Object Explorer*
node for the server; the server will be displayed in the *Browser* tree
control within the specified group.
* Use the color-picker in the *Background* field to specify the background
@@ -42,7 +42,7 @@ Use the fields in the *General* tab to identify the server:
* Change of host, port, and maintenance database
Please note that once the server is shared, it's icon is changed in the
object explorer.
browser tree.
* Provide a comment about the server in the *Comments* field.
-23
View File
@@ -7,7 +7,6 @@
*Storage Manager* is a feature that helps you manage your systems storage device. You can use *Storage Manager* to:
* Download, upload, or manage operating system files. To use this feature, *pgAdmin* must be running in *Server Mode* on your client machine.
* The shared storage option allows users to access the shared storages that are shared by admin users.
* Download *backup* or *export* files (custom, tar and plain text format) on a client machine.
* Download *export* dump files of tables.
@@ -19,12 +18,6 @@ You can access *Storage Manager* from the *Tools* Menu.
Use icons on the top of the *Storage Manager* window to manage storage:
Use the ``Folder`` icon |Shared Storage| to access shared storage. In order to enable shared storage,
admins need to add the SHARED_STORAGE variable to the config file. Users can access the shared storage
with this and share files with one another.
.. |Shared Storage| image:: images/sm_ss.png
Use the ``Home`` icon |home| to return to the home directory.
.. |home| image:: images/sm_home.png
@@ -47,22 +40,6 @@ Use the ``New Folder`` icon |folder| to add a new folder.
Use the *Format* drop down list to select the format of the files to be displayed; choose from *sql*, *csv*, or *All Files*.
Shared Storage
*********************
.. image:: images/shared_storage.png
:alt: Other options
:align: center
In the storage manager, ``My Storage`` is the pgAdmin user’s storage directory, and other listed directories are shared
storages set by the pgAdmin server administrator. Using these, pgAdmin users can have common storages to share files.
pgAdmin server administrator can configure the shared storages using the :ref:`config file <config_py>`. Storages can be
marked as restricted to give read-only access to non-admin pgAdmin users.
.. note:: You must ensure the directories specified are writeable by the user that the web server processes will be running as, e.g. apache or www-data.*
Other Options
*********************
+1 -1
View File
@@ -470,7 +470,7 @@ Use the *Partition* tab to create that partition as a partitioned table.
* Select a partition type from the *Partition Type* selection box.
* Use the *Partition Keys* panel to define the partition keys.
View of multi level Partitioned Table in object explorer:
View of multi level Partitioned Table in browser tree:
.. image:: images/table_partition_tree.png
:alt: Table dialog partition tree
+1 -1
View File
@@ -8,7 +8,7 @@ The left pane of the main window displays a tree control (the *pgAdmin* tree
control) that provides access to the objects that reside on a server.
.. image:: /images/main_left_pane.png
:alt: object explorer panel
:alt: Browser tree panel
:align: center
You can expand nodes in the tree control to view the database objects that
+1 -1
View File
@@ -22,7 +22,7 @@ Features of pgAdmin 4 include:
* online help and information about using pgAdmin dialogs and tools.
When pgAdmin opens, the interface features a menu bar and a window divided into
two panes: the *Object Explorer* tree control in the left pane, and a tabbed browser in
two panes: the *Browser* tree control in the left pane, and a tabbed browser in
the right pane.
.. image:: images/welcome.png
+2 -13
View File
@@ -6,6 +6,7 @@ set -e
# Debugging shizz
trap 'ERRCODE=$? && if [ ${ERRCODE} -ne 0 ]; then echo "The command \"${BASH_COMMAND}\" failed in \"${FUNCNAME}\" with exit code ${ERRCODE}."; fi' EXIT
OS_VERSION=$(grep "^VERSION_ID=" /etc/os-release | awk -F "=" '{ print $2 }' | sed 's/"//g')
OS_ARCH=$(dpkg-architecture -qDEB_HOST_ARCH)
# Stop creating pyc files.
@@ -31,25 +32,13 @@ _copy_code
echo "Creating the server package..."
mkdir "${SERVERROOT}/DEBIAN"
echo "Creating preinst script..."
cat << EOF > "${SERVERROOT}/DEBIAN/preinst"
#!/bin/sh
rm -rf /usr/pgadmin4/venv
if [ -d /usr/pgadmin4/web ]; then
cd /usr/pgadmin4/web && rm -rf \$(ls -A -I config_local.py)
fi
EOF
chmod 755 "${SERVERROOT}/DEBIAN/preinst"
cat << EOF > "${SERVERROOT}/DEBIAN/control"
Package: ${APP_NAME}-server
Version: ${APP_LONG_VERSION}
Architecture: ${OS_ARCH}
Section: database
Priority: optional
Depends: ${PYTHON_BINARY}, libpq5 (>= 11.0), libgssapi-krb5-2
Depends: python3, libpq5 (>= 11.0), libgssapi-krb5-2
Recommends: postgresql-client | postgresql-client-15 | postgresql-client-14 | postgresql-client-13 | postgresql-client-12 | postgresql-client-11 | postgresql-client-10
Maintainer: pgAdmin Development Team <pgadmin-hackers@postgresql.org>
Description: The core server package for pgAdmin. pgAdmin is the most popular and feature rich Open Source administration and development platform for PostgreSQL, the most advanced Open Source database in the world.
+17 -23
View File
@@ -18,17 +18,6 @@ _setup_env() {
if [ -n "${APP_SUFFIX}" ]; then
APP_LONG_VERSION=${APP_LONG_VERSION}-${APP_SUFFIX}
fi
# Setting up the correct Python version for Ubuntu 18 and EL-8, which have
# new Python versions installed parallel to the old ones.
OS_VERSION=$(grep "^VERSION_ID=" /etc/os-release | awk -F "=" '{ print $2 }' | sed 's/"//g' | awk -F "." '{ print $1 }')
SYSTEM_PYTHON_PATH='/usr/bin/python3'
PYTHON_BINARY='python3'
if [ "$2" == 'redhat' ] && [ "${OS_VERSION}" == "8" ]; then
SYSTEM_PYTHON_PATH='/usr/bin/python3.9'
PYTHON_BINARY='python3.9'
fi
PYTHON_BINARY_WITHOUT_DOTS=$(echo ${PYTHON_BINARY} | sed -e 's/\.//g')
}
_cleanup() {
@@ -62,16 +51,16 @@ _create_python_virtualenv() {
cd "usr/${APP_NAME}" || exit
# Create the blank venv
"${SYSTEM_PYTHON_PATH}" -m venv venv
python3 -m venv venv
# shellcheck disable=SC1091
. venv/bin/activate
source venv/bin/activate
# Make sure we have the wheel package present, as well as the latest pip
pip3 install --upgrade pip
pip3 install wheel
# Install the requirements
pip3 install --no-cache-dir --no-binary psycopg -r "${SOURCEDIR}/requirements.txt"
pip3 install --no-cache-dir --no-binary psycopg2 -r "${SOURCEDIR}/requirements.txt"
# Fixup the paths in the venv activation scripts
sed -i 's/VIRTUAL_ENV=.*/VIRTUAL_ENV="\/usr\/pgadmin4\/venv"/g' venv/bin/activate
@@ -89,11 +78,11 @@ _create_python_virtualenv() {
PYMODULES_PATH=$(python3 -c "from distutils.sysconfig import get_python_lib; print(get_python_lib())")
DIR_PYMODULES_PATH=$(dirname "${PYMODULES_PATH}")
# Use {SYSTEM_PYTHON_PATH} here as we want the system path
# Use /usr/bin/python3 here as we want the system path
if [ "$1" == "debian" ]; then
PYSYSLIB_PATH=$("${SYSTEM_PYTHON_PATH}" -c "import sys; print('%s/lib/python%d.%.d' % (sys.prefix, sys.version_info.major, sys.version_info.minor))")
PYSYSLIB_PATH=$(/usr/bin/python3 -c "import sys; print('%s/lib/python%d.%.d' % (sys.prefix, sys.version_info.major, sys.version_info.minor))")
else
PYSYSLIB_PATH=$("${SYSTEM_PYTHON_PATH}" -c "import sys; print('%s/lib64/python%d.%.d' % (sys.prefix, sys.version_info.major, sys.version_info.minor))")
PYSYSLIB_PATH=$(/usr/bin/python3 -c "import sys; print('%s/lib64/python%d.%.d' % (sys.prefix, sys.version_info.major, sys.version_info.minor))")
fi
# Symlink in the rest of the Python libs. This is required because the runtime
@@ -141,9 +130,10 @@ _build_runtime() {
# YARN END
# WGET:
# Comment out the below line as the latest version (0.73.0) having some
# problem in launching the pgAdmin 4 in CentOS 7
# hardcoded the version to 0.72.0
# NW_VERSION=$(yarn info nw | grep latest | awk -F "'" '{ print $2}')
# Remove the above commented code once below issue is fixed
# Pining NWjs because of https://github.com/nwjs/nw.js/issues/8039 in 0.74.0
NW_VERSION="0.72.0"
pushd "${BUILDROOT}" > /dev/null || exit
@@ -202,9 +192,13 @@ _build_docs() {
cd "${SERVERROOT}" && mkdir -p "usr/${APP_NAME}/share/docs/en_US/html"
cd "${SOURCEDIR}/docs/en_US" || exit
python3 build_code_snippet.py
SYS_PYTHONPATH=$("${SYSTEM_PYTHON_PATH}" -c "import sys; print(':'.join([p for p in sys.path if p]))")
SYS_PYTHONPATH=$(/usr/bin/python3 -c "import sys; print(':'.join([p for p in sys.path if p]))")
# shellcheck disable=SC2153
PYTHONPATH=$PYTHONPATH:${SYS_PYTHONPATH} python3 -msphinx . "${SERVERROOT}/usr/${APP_NAME}/share/docs/en_US/html"
if [ "$1" == "redhat" ] && [ "${OS_VERSION}" == "7" ]; then
PYTHONPATH=$PYTHONPATH:${SYS_PYTHONPATH} python3 /usr/local/bin/sphinx-build . "${SERVERROOT}/usr/${APP_NAME}/share/docs/en_US/html"
else
PYTHONPATH=$PYTHONPATH:${SYS_PYTHONPATH} python3 -msphinx . "${SERVERROOT}/usr/${APP_NAME}/share/docs/en_US/html"
fi
}
_copy_code() {
@@ -240,8 +234,8 @@ _copy_code() {
# user has configured an alternative default.
# DO THIS LAST!
cd "${SERVERROOT}/usr/${APP_NAME}/venv/bin" || exit
PYTHON_INTERPRETER=$("${SYSTEM_PYTHON_PATH}" -c "import os, sys; print(os.path.realpath(sys.executable))")
PYTHON_VERSION=$("${SYSTEM_PYTHON_PATH}" -c "import sys; print('%d.%d' % (sys.version_info.major, sys.version_info.minor))")
PYTHON_INTERPRETER=$(/usr/bin/python3 -c "import os, sys; print(os.path.realpath(sys.executable))")
PYTHON_VERSION=$(/usr/bin/python3 -c "import sys; print('%d.%d' % (sys.version_info.major, sys.version_info.minor))")
rm python && ln -s python3 python
rm "python${PYTHON_VERSION}" && ln -s python3 "python${PYTHON_VERSION}"
rm python3 && ln -s "${PYTHON_INTERPRETER}" python3
+4 -5
View File
@@ -12,7 +12,6 @@ _setup_env() {
fi
BUNDLE_DIR="${BUILD_ROOT}/${APP_NAME}.app"
DMG_NAME="${DIST_ROOT}"/$(echo "${APP_NAME}" | sed 's/ //g' | awk '{print tolower($0)}')-"${APP_LONG_VERSION}.dmg"
PYTHON_OS_VERSION="11"
}
_cleanup() {
@@ -35,9 +34,10 @@ _build_runtime() {
# YARN END
# WGET:
# Comment out the below line as the latest version (0.73.0) having some
# problem in launching the pgAdmin 4 in CentOS 7
# hardcoded the version to 0.72.0
# NW_VERSION=$(yarn info nw | grep latest | awk -F "'" '{ print $2}')
# Remove the above commented code once below issue is fixed
# Pining NWjs because of https://github.com/nwjs/nw.js/issues/8039 in 0.74.0
NW_VERSION="0.72.0"
pushd "${BUILD_ROOT}" > /dev/null || exit
@@ -87,7 +87,6 @@ _create_python_env() {
"${BUILD_ROOT}/relocatable_python/make_relocatable_python_framework.py" \
--upgrade-pip \
--python-version "${PGADMIN_PYTHON_VERSION}" \
--os-version "${PYTHON_OS_VERSION}" \
--pip-requirements "${SOURCE_DIR}/requirements.txt" \
--destination "${BUNDLE_DIR}/Contents/Frameworks/"
@@ -138,7 +137,7 @@ _build_docs() {
source "${BUILD_ROOT}/venv/bin/activate"
pip3 install --upgrade pip
pip3 install -r "${SOURCE_DIR}/requirements.txt"
pip3 install sphinx==6.1.3
pip3 install sphinx
pip3 install sphinxcontrib-youtube
cd "${SOURCE_DIR}" || exit
+2 -2
View File
@@ -53,8 +53,8 @@ if [ "${PGADMIN_POSTGRES_DIR}" == "" ]; then
fi
if [ "${PGADMIN_PYTHON_VERSION}" == "" ]; then
echo "PGADMIN_PYTHON_VERSION not set. Setting it to the default: 3.11.2"
export PGADMIN_PYTHON_VERSION=3.11.2
echo "PGADMIN_PYTHON_VERSION not set. Setting it to the default: 3.9.9"
export PGADMIN_PYTHON_VERSION=3.9.9
fi
# shellcheck disable=SC1091
+5 -5
View File
@@ -36,11 +36,11 @@ with open(req_file, 'r') as req_lines:
requires = []
kerberos_extras = []
# Ensure the Wheel will use psycopg-binary, not the source distro, and stick
# Ensure the Wheel will use psycopg2-binary, not the source distro, and stick
# gssapi in it's own list
for index, req in enumerate(all_requires):
if 'psycopg[c]' in req:
req = req.replace('psycopg[c]', 'psycopg[binary]')
if 'psycopg2' in req:
req = req.replace('psycopg2', 'psycopg2-binary')
if 'gssapi' in req:
kerberos_extras.append(req)
@@ -75,11 +75,11 @@ setup(
'Development Status :: 5 - Production/Stable',
# Supported programming languages
'Programming Language :: Python :: 3.6',
'Programming Language :: Python :: 3.7',
'Programming Language :: Python :: 3.8',
'Programming Language :: Python :: 3.9',
'Programming Language :: Python :: 3.10',
'Programming Language :: Python :: 3.11'
'Programming Language :: Python :: 3.10'
],
keywords='pgadmin4,postgresql,postgres',
+7 -1
View File
@@ -6,7 +6,8 @@ Redhat distributions.
## Supported platforms
* Fedora 36 & 37
* RHEL 8
* RHEL 7 & 8
* CentOS 7
* Rocky Linux 8 (x86_64)
* AlmaLinux/RHEL/Rocky Linux 9 (x86_64)
@@ -46,6 +47,11 @@ The desktop runtime. Requires the server package.
The server mode setup script for configuring Apache HTTPD. Requires the server
package.
*pgadmin4-python3-mod_wsgi-4.7.1-2.el7.<arch>.rpm*
The Python 3 build of mod_wsgi for the Apache HTTPD server. Only built on
RHEL/CentOS 7.
## Signing Packages
It is good practice to sign RPMs to prove their provenance. The build scripts
+26 -9
View File
@@ -6,6 +6,7 @@ set -e
# Debugging shizz
trap 'ERRCODE=$? && if [ ${ERRCODE} -ne 0 ]; then echo "The command \"${BASH_COMMAND}\" failed in \"${FUNCNAME}\" with exit code ${ERRCODE}."; fi' EXIT
OS_VERSION=$(grep "^VERSION_ID=" /etc/os-release | awk -F "=" '{ print $2 }' | sed 's/"//g')
OS_ARCH=$(arch)
# Make sure we get the latest libpq
@@ -49,6 +50,11 @@ cat << EOF > "${BUILDROOT}/server.spec"
# virtualenv, in particular Pillow.libs.
%global __brp_check_rpaths %{nil}
# Bytecompiling Python 3 doesn't work on RHEL/CentOS 7, so make it a no-op
%if 0%{?rhel} && 0%{?rhel} == 7
%define __python /bin/true
%endif
# Don't strip binaries when packaging them as this might break cpython modules
%define __strip /bin/true
@@ -62,17 +68,11 @@ Summary: The core server package for pgAdmin.
License: PostgreSQL
URL: https://www.pgadmin.org/
Requires: ${PYTHON_BINARY}, libpq5, krb5-libs
Requires: python3, postgresql-libs >= 11, krb5-libs
%description
The core server package for pgAdmin. pgAdmin is the most popular and feature rich Open Source administration and development platform for PostgreSQL, the most advanced Open Source database in the world.
%pre
rm -rf /usr/pgadmin4/venv
if [ -d /usr/pgadmin4/web ]; then
cd /usr/pgadmin4/web && rm -rf \$(ls -A -I config_local.py)
fi
%build
%install
@@ -155,7 +155,11 @@ BuildArch: noarch
Summary: The web interface for pgAdmin, hosted under Apache HTTPD.
License: PostgreSQL
URL: https://www.pgadmin.org/
Requires: ${APP_NAME}-server = ${RPM_VERSION}, httpd, ${PYTHON_BINARY_WITHOUT_DOTS}-mod_wsgi
%if 0%{?rhel} && 0%{?rhel} == 7
Requires: ${APP_NAME}-server = ${RPM_VERSION}, httpd, pgadmin4-python3-mod_wsgi
%else
Requires: ${APP_NAME}-server = ${RPM_VERSION}, httpd, python3-mod_wsgi
%endif
%description
The web interface for pgAdmin, hosted under Apache HTTPD. pgAdmin is the most popular and feature rich Open Source administration and development platform for PostgreSQL, the most advanced Open Source database in the world.
@@ -215,13 +219,26 @@ EOF
# Build the Redhat package for the meta package
rpmbuild --define "pga_build_root ${BUILDROOT}" -bb "${BUILDROOT}/meta.spec"
#
# mod_wsgi for CentOS 7
#
if [ "${OS_VERSION}" == 7 ]; then
cp "${SOURCEDIR}/pkg/redhat/pgadmin4-python3-mod_wsgi-exports.patch" "${HOME}/rpmbuild/SOURCES"
cp "${SOURCEDIR}/pkg/redhat/pgadmin4-python3-mod_wsgi.conf" "${HOME}/rpmbuild/SOURCES"
curl -o "${HOME}/rpmbuild/SOURCES/mod_wsgi-4.9.0.tar.gz" https://codeload.github.com/GrahamDumpleton/mod_wsgi/tar.gz/4.9.0
rpmbuild -bb "${SOURCEDIR}/pkg/redhat/pgadmin4-python-mod_wsgi.spec"
fi
# Get the libpq we need
yumdownloader -y --downloadonly --destdir="${DISTROOT}" libpq5 libpq5-devel postgresql$(ls -d /usr/pgsql-1* | sort -r | head -1 | awk -F '-' '{ print $2 }')-libs
yumdownloader -y --downloadonly --destdir="${DISTROOT}" postgresql$(ls -d /usr/pgsql-1* | sort -r | head -1 | awk -F '-' '{ print $2 }')-libs
#
# Get the results!
#
cp "${HOME}/rpmbuild/RPMS/${OS_ARCH}/${APP_NAME}-"*"${RPM_VERSION}-"*".${OS_ARCH}.rpm" "${DISTROOT}/"
cp "${HOME}/rpmbuild/RPMS/noarch/${APP_NAME}-"*"${RPM_VERSION}-"*".noarch.rpm" "${DISTROOT}/"
if [ "${OS_VERSION}" == 7 ]; then
cp "${HOME}/rpmbuild/RPMS/${OS_ARCH}/pgadmin4-python3-mod_wsgi-4.9.0-1.el7.x86_64.rpm" "${DISTROOT}/"
fi
echo "Completed. RPMs created in ${DISTROOT}."
+71
View File
@@ -0,0 +1,71 @@
%global sname mod_wsgi
%{!?_httpd_apxs: %{expand: %%global _httpd_apxs %%{_sbindir}/apxs}}
%{!?_httpd_mmn: %{expand: %%global _httpd_mmn %%(cat %{_includedir}/httpd/.mmn 2>/dev/null || echo 0-0)}}
%{!?_httpd_confdir: %{expand: %%global _httpd_confdir %%{_sysconfdir}/httpd/conf.d}}
# /etc/httpd/conf.d with httpd < 2.4 and defined as /etc/httpd/conf.modules.d with httpd >= 2.4
%{!?_httpd_modconfdir: %{expand: %%global _httpd_modconfdir %%{_sysconfdir}/httpd/conf.d}}
%{!?_httpd_moddir: %{expand: %%global _httpd_moddir %%{_libdir}/httpd/modules}}
%global debug_package %{nil}
Name: pgadmin4-python3-%{sname}
Version: 4.9.0
Release: 1%{?dist}
Summary: A WSGI interface for Python web applications in Apache (customized for pgAdmin4)
License: ASL 2.0
URL: https://modwsgi.readthedocs.io/
Source0: https://github.com/GrahamDumpleton/%{sname}/archive/%{version}.tar.gz#/mod_wsgi-%{version}.tar.gz
Source2: %{name}.conf
Patch1: %{name}-exports.patch
Requires: httpd-mmn = %{_httpd_mmn}
BuildRequires: python3-devel
BuildRequires: httpd-devel
BuildRequires: gcc
# Suppress auto-provides for module DSO
%{?filter_provides_in: %filter_provides_in %{_httpd_moddir}/.*\.so$}
%{?filter_setup}
%global _description\
The mod_wsgi adapter is an Apache module that provides a WSGI compliant\
interface for hosting Python based web applications within Apache. The\
adapter is written completely in C code against the Apache C runtime and\
for hosting WSGI applications within Apache has a lower overhead than using\
existing WSGI adapters for mod_python or CGI.\
%description %_description
%prep
%autosetup -p1 -n %{sname}-%{version}
%build
export LDFLAGS="$RPM_LD_FLAGS -L%{_libdir}"
export CFLAGS="$RPM_OPT_FLAGS -fno-strict-aliasing"
%configure --enable-shared --with-apxs=%{_httpd_apxs} --with-python=python3
%{__make} %{?_smp_mflags}
%{_bindir}/python3 setup.py build
%install
%{__make} install DESTDIR=%{buildroot} LIBEXECDIR=%{_httpd_moddir}
%{__install} -d -m 755 %{buildroot}%{_httpd_modconfdir}
%{__install} -p -m 644 %{SOURCE2} %{buildroot}%{_httpd_modconfdir}/10-pgadmin4-python3-mod_wsgi.conf
%{_bindir}/python3 setup.py install -O1 --skip-build --root %{buildroot}
%{__mv} %{buildroot}%{_httpd_moddir}/mod_wsgi.so %{buildroot}%{_httpd_moddir}/pgadmin4-python3-mod_wsgi.so
%{__mv} %{buildroot}%{_bindir}/mod_wsgi-express %{buildroot}%{_bindir}/pgadmin4-mod_wsgi-express-3
%files
%license LICENSE
%doc CREDITS.rst README.rst
%config(noreplace) %{_httpd_modconfdir}/*pgadmin4-python3-mod_wsgi.conf
%{_httpd_moddir}/pgadmin4-python3-mod_wsgi.so
%{python3_sitearch}/mod_wsgi-*.egg-info
%{python3_sitearch}/mod_wsgi
%{_bindir}/pgadmin4-mod_wsgi-express-3
%changelog
* Fri Mar 6 2020 Devrim Gündüz <devrim@gunduz.org> - 4.6.8-2
- Initial packaging for the PostgreSQL YUM repository
@@ -0,0 +1,11 @@
--- mod_wsgi-4.5.20/Makefile.in.exports
+++ mod_wsgi-4.5.20/Makefile.in
@@ -28,7 +28,7 @@
all : src/server/mod_wsgi.la
src/server/mod_wsgi.la : $(SRCFILES)
- $(APXS) -c $(CPPFLAGS) $(CFLAGS) $(SRCFILES) $(LDFLAGS) $(LDLIBS)
+ $(APXS) -Wl,-export-symbols-regex -Wl,wsgi_module -c $(CPPFLAGS) $(CFLAGS) $(SRCFILES) $(LDFLAGS) $(LDLIBS)
$(DESTDIR)$(LIBEXECDIR) :
mkdir -p $@
@@ -0,0 +1,4 @@
<IfModule !wsgi_module>
LoadModule wsgi_module modules/pgadmin4-python3-mod_wsgi.so
</IfModule>
+25 -12
View File
@@ -8,18 +8,18 @@ fi
OS_VERSION=$(grep "^VERSION_ID=" /etc/os-release | awk -F "=" '{ print $2 }' | sed 's/"//g' | awk -F "." '{ print $1 }')
# EPEL & other repos
if [ "${OS_VERSION}" != "9" ]; then
if [ "${OS_VERSION}" != 9 ]; then
yum -y install centos-release-scl
fi
yum install -y "https://dl.fedoraproject.org/pub/epel/epel-release-latest-${OS_VERSION}.noarch.rpm"
if [ "${OS_VERSION}" == "8" ] || [ "${OS_VERSION}" == "9" ]; then
if [ "${OS_VERSION}" == 8 ] || [ "${OS_VERSION}" == 9 ]; then
yum config-manager --enable PowerTools AppStream BaseOS "*epel"
dnf -qy module disable postgresql
fi
# PostgreSQL repo
if [ "${OS_VERSION}" == "8" ] || [ "${OS_VERSION}" == "9" ]; then
if [ "${OS_VERSION}" == 7 ] || [ "${OS_VERSION}" == 8 ] || [ "${OS_VERSION}" == 9 ]; then
yum install -y "https://download.postgresql.org/pub/repos/yum/reporpms/EL-${OS_VERSION}-x86_64/pgdg-redhat-repo-latest.noarch.rpm"
else
yum install -y "https://download.postgresql.org/pub/repos/yum/reporpms/F-${OS_VERSION}-x86_64/pgdg-fedora-repo-latest.noarch.rpm"
@@ -37,23 +37,35 @@ curl --silent --location https://dl.yarnpkg.com/rpm/yarn.repo | sudo tee /etc/yu
echo "Installing build pre-requisites..."
yum groupinstall -y "Development Tools"
if [ "${OS_VERSION}" == "8" ]; then
yum install -y expect fakeroot postgresql15-devel python3.9-devel nodejs yarn rpm-build rpm-sign yum-utils krb5-devel
pip3.9 install sphinx==6.1.3
pip3.9 install sphinxcontrib-youtube
elif [ "${OS_VERSION}" == "9" ]; then
yum install -y expect libpq5-devel postgresql15-devel python3-devel nodejs yarn rpm-build rpm-sign yum-utils krb5-devel
pip3 install sphinx==6.1.3
if [ "${OS_VERSION}" == 7 ]; then
yum install -y expect fakeroot httpd-devel postgresql14-devel python3-devel nodejs yarn rpm-build rpm-sign yum-utils krb5-devel
pip3 install sphinx
pip3 install sphinxcontrib-youtube
elif [ "${OS_VERSION}" == 9 ]; then
yum install -y expect postgresql14-devel python3-devel nodejs yarn rpm-build rpm-sign yum-utils krb5-devel
pip3 install sphinx
pip3 install sphinxcontrib-youtube
else
yum install -y expect fakeroot postgresql15-devel python3-devel nodejs yarn rpm-build rpm-sign yum-utils krb5-devel
pip3 install sphinx==6.1.3
yum install -y expect fakeroot postgresql14-devel python3-devel nodejs yarn rpm-build rpm-sign yum-utils krb5-devel
pip3 install sphinx
pip3 install sphinxcontrib-youtube
fi
# Setup RPM macros for signing
echo "Please add the following macros to ~/.rpmmacros for the user that will sign the RPMs if required:"
echo
if [ "${OS_VERSION}" == 7 ]; then
cat << EOF
# Macros for signing RPMs.
%_signature gpg
%_gpg_path ~/.gnupg
%_gpg_name Package Manager
%_gpgbin /usr/bin/gpg2
%__gpg_sign_cmd %{__gpg} gpg --force-v3-sigs --batch --verbose --no-armor --passphrase-fd 3 --no-secmem-warning -u "%{_gpg_name}" -sbo %{__
signature_filename} --digest-algo sha256 %{__plaintext_filename}
EOF
else
cat << EOF
# Macros for signing RPMs.
@@ -64,5 +76,6 @@ echo
%__gpg_sign_cmd %{__gpg} gpg --force-v3-sigs --batch --verbose --no-armor --no-secmem-warning -u "%{_gpg_name}" -sbo %{__signature_filename
} --digest-algo sha256 %{__plaintext_filename}
EOF
fi
echo
+12
View File
@@ -69,6 +69,18 @@ do
tar cf - "${FILE}" | (cd "src-build/${TARBALL_NAME}"; tar xf -)
done
pushd web > /dev/null || exit
yarn install
yarn run bundle
for FILE in pgadmin/static/js/generated/*
do
echo Adding "${FILE}"
# shellcheck disable=SC2164
tar cf - "${FILE}" | (cd "../src-build/${TARBALL_NAME}/web"; tar xf -)
done
popd > /dev/null || exit
# Create the tarball
echo Creating tarball...
cd src-build || exit
+1 -1
View File
@@ -199,7 +199,7 @@ begin
else
begin
// Suppose system is running a 32-bit version of Windows then no need to check HKLM64 in RegQueryStringValue
// So IsWin64 - will make sure its should only execute on 64-bit version of windows.
// So IsWin64 - will make sure its should only execute on 64-bit veersion of windows.
if IsWin64 then
begin
// Check if pgAdmin 64 bit is already installed
+35 -27
View File
@@ -8,49 +8,57 @@
#
###############################################################################
Flask==2.2.*
Flask==2.0.3; python_version <= '3.6'
Flask==2.1.*; python_version >= '3.7'
Flask-Gravatar==0.*
Flask-Login==0.*
Flask-Mail==0.*
Flask-Migrate==4.*
dnspython==2.2.1
greenlet==1.1.2; python_version <= '3.10'
Flask-SQLAlchemy==3.0.*
Flask-WTF==1.1.1
Flask-SQLAlchemy==2.5.*
Flask-WTF==1.0.1
Flask-Compress==1.*
Flask-Paranoid==0.*
Flask-Babel==3.1.*
Flask-Security-Too==5.1.*
Flask-SocketIO==5.3.*
WTForms==3.0.*
Flask-Babel==2.*
Flask-Security-Too==4.1.*
Flask-SocketIO<=5.2.0
WTForms==3.*
passlib==1.*
pytz==2023.*
pytz==2021.*
simplejson==3.*
speaklater3==1.*
sqlparse==0.*
psutil==5.9.*
psycopg[c]==3.1.8
psutil==5.9.3
psycopg2==2.9.*
python-dateutil==2.*
SQLAlchemy==2.*
bcrypt==4.0.*
cryptography==40.0.*
SQLAlchemy==1.4.44; python_version <= '3.6'
SQLAlchemy==1.4.*; python_version >= '3.7'
bcrypt==3.*
cryptography==3.*
sshtunnel==0.*
ldap3==2.*
gssapi==1.8.*
eventlet==0.33.3
gssapi==1.7.*; python_version <= '3.6'
gssapi==1.8.*; python_version >= '3.7'
eventlet==0.33.0
httpagentparser==1.9.*
user-agents==2.2.0
pywinpty==2.0.*; sys_platform=="win32"
Authlib==1.2.*
requests==2.28.*
pywinpty==1.1.*; sys_platform=="win32"
Authlib==0.15.*; python_version <= '3.6'
Authlib==1.1.*; python_version >= '3.7'
requests==2.25.*
pyotp==2.*
qrcode==7.*
Pillow==9.*
boto3==1.26.*
botocore==1.29.*
Pillow==8.4.*; python_version <= '3.6'
Pillow==9.*; python_version >= '3.7'
boto3==1.23.*; python_version <= '3.6'
boto3==1.26.*; python_version >= '3.7'
botocore==1.26.*; python_version <= '3.6'
botocore==1.29.*; python_version >= '3.7'
urllib3==1.26.*
Werkzeug==2.0.3; python_version <= '3.6'
Werkzeug==2.1.2; python_version >= '3.7'
azure-mgmt-rdbms==10.1.0
azure-mgmt-resource==23.0.0
azure-mgmt-subscription==3.1.1
azure-identity==1.12.0
google-api-python-client==2.*
google-auth-oauthlib==1.0.0
Werkzeug==2.2.3
azure-mgmt-resource==21.0.0
azure-mgmt-subscription==3.0.0
azure-identity==1.9.0
+4 -4
View File
@@ -5,7 +5,7 @@
"repository": "https://github.com/postgres/pgadmin4.git",
"author": "pgAdmin Development Team (https://www.pgadmin.org/)",
"license": "PostgreSQL",
"chromium-args": "--disable-popup-blocking --disable-gpu --disable-devtools",
"chromium-args": "--disable-popup-blocking --disable-gpu",
"user-agent": "Nwjs:%nwver-%osinfo-%chromium_ver",
"nodejs": true,
"window": {
@@ -20,12 +20,12 @@
"icon": "assets/pgAdmin4.png"
},
"dependencies": {
"axios": "^1.3.5",
"axios": "^0.21.2",
"bootstrap": "^4.5.3"
},
"devDependencies": {
"eslint": "^8.38.0",
"nw": "^0.72.0"
"eslint": "^6.3.0",
"nw": "0.72.0"
},
"scripts": {
"linter": "yarn eslint --no-eslintrc -c .eslintrc.js --ext .js ."
-13
View File
@@ -424,18 +424,6 @@ let ConfigureStore = {
},
};
function parseConsoleArgs(_method, args) {
const retData = Array.from(args).map(arg => {
try {
if(arg.stack) return arg.stack;
return JSON.stringify(arg);
} catch (e) {
return arg
}
});
return retData?.join(' ');
}
module.exports = {
readServerLog: readServerLog,
@@ -456,5 +444,4 @@ module.exports = {
unregisterZoomEvents: unregisterZoomEvents,
setZoomLevelForAllWindows: setZoomLevelForAllWindows,
ConfigureStore: ConfigureStore,
parseConsoleArgs: parseConsoleArgs,
};
+1 -12
View File
@@ -11,7 +11,6 @@ const fs = require('fs');
const path = require('path');
const misc = require('../js/misc.js');
const spawn = require('child_process').spawn;
const {EOL} = require('os');
let pgadminServerProcess = null;
let startPageUrl = null;
@@ -79,12 +78,6 @@ function startDesktopMode() {
let updated_path = process.env[key] + ':/usr/local/bin';
process.env[key] = updated_path;
}
if (platform() === 'win32' && (key === 'PATH' || key == 'Path')) {
let _libpq_path = path.join(path.dirname(path.dirname(path.resolve(pgadminFile))), 'runtime');
process.env[key] = _libpq_path + ';' + process.env[key];
}
misc.writeServerLog(' - ' + key + ': ' + process.env[key]);
});
misc.writeServerLog('--------------------------------------------------------\n');
@@ -250,10 +243,6 @@ function launchPgAdminWindow() {
* nothing but a splash screen. We will have to make it null,
* so that open in new browser tab will work.
*/
pgadminWindow.window.hookConsole((method, args)=>{
misc.writeServerLog(
`--------------[UI ${method}]---------------${EOL}${misc.parseConsoleArgs(method, args)}${EOL}------------[UI End]----------------`);
});
pgadminWindow.window.opener = null;
// Show new window
@@ -685,4 +674,4 @@ function refreshMenuItems(menu) {
}
});
}
}
+508 -376
View File
File diff suppressed because it is too large. Load diff
-51
View File
@@ -1,51 +0,0 @@
# -*- coding: utf-8 -*-
##########################################################################
#
# pgAdmin 4 - PostgreSQL Tools
#
# Copyright (C) 2013 - 2023, The pgAdmin Development Team
# This software is released under the PostgreSQL Licence
#
##########################################################################
# Get the URL to the latest version of a package in a StackBuilder catalog
import os
import sys
from urllib.request import urlopen, urlretrieve
import xml.etree.ElementTree as ET
if len(sys.argv) != 4:
print('Usage: {} <Catalog URL> <Application ID> <Platform>'.
format(sys.argv[0]))
sys.exit(1)
# Get the catalog
catalog = urlopen(sys.argv[1]).read().decode('utf-8')
apps = ET.fromstring(catalog)
downloads = []
for a in apps:
if a.find('id').text == sys.argv[2] and \
a.find('platform').text == sys.argv[3]:
downloads.append({'version': a.find('version').text,
'url': a.find('alturl').text,
'format': a.find('format').text})
if len(downloads) == 0:
print('No matching URLs found.')
sys.exit(1)
# Make sure we're looking at the latest version
downloads = sorted(downloads, key=lambda d: d['version'], reverse=True)
# Get the file
filename, headers = urlretrieve(downloads[0]['url'])
if sys.argv[3].startswith('windows') and downloads[0]['format'] == 'exe':
os.rename(filename, '{}.exe'.format(filename))
filename = '{}.exe'.format(filename)
print(filename)
-25
View File
@@ -1,25 +0,0 @@
#!/usr/bin/env sh
TEST=0
if [ "$1" = "--test" ];
then
TEST=1
fi
echo Creating a blank environment...
python3 -m venv venv || { echo 'ERROR: Failed to create the blank virtual env.' ; exit 1; }
echo Activating the virtual environment...
. venv/bin/activate || { echo 'ERROR: Failed to activate the virtual env.' ; exit 1; }
echo Installing requirements...
pip install --upgrade pip
if [ ${TEST} -eq 1 ];
then
echo Installing requirements for running Python tests...
pip install --no-cache-dir wheel sphinx==6.1.3 sphinxcontrib-youtube -r web/regression/requirements.txt || { echo 'ERROR: Failed to install Python requirements.' ; exit 1; }
else
echo Installing requirements for executing and building only...
pip install --no-cache-dir wheel sphinx==6.1.3 sphinxcontrib-youtube -r requirements.txt || { echo 'ERROR: Failed to install Python requirements.' ; exit 1; }
fi
-2
View File
@@ -221,8 +221,6 @@ def edit_browsers_json(browser_name, browser_version):
'port': '4444', 'path': '/wd/hub'}})
(existing_data['firefox']['versions']).update(data_to_insert)
updated_data = existing_data
print(updated_data)
else:
print("Browser version not matched")
file_edited = False
-14
View File
@@ -42,20 +42,6 @@ module.exports = {
'react',
'@babel',
],
'overrides': [
{
'files': ['**/*.ts', '**/*.tsx'],
'plugins': [
'@typescript-eslint',
],
'extends': ['eslint:recommended', 'plugin:@typescript-eslint/recommended', 'plugin:@typescript-eslint/eslint-recommended'],
'parser': '@typescript-eslint/parser',
'rules': {
'@typescript-eslint/no-explicit-any': ['off'],
'@typescript-eslint/no-this-alias': ['off'],
}
},
],
'globals': {
'_': true,
'module': true,
-5
View File
@@ -1,5 +0,0 @@
nodeLinker: node-modules
logFilters:
- code: YN0013
level: discard
+81 -22
View File
@@ -42,8 +42,8 @@ APP_ICON = 'pg-icon'
#
# Application version number components
APP_RELEASE = 7
APP_REVISION = 1
APP_RELEASE = 6
APP_REVISION = 21
# Application version suffix, e.g. 'beta1', 'dev'. Usually an empty string
# for GA releases.
@@ -52,7 +52,7 @@ APP_SUFFIX = ''
# Numeric application version for upgrade checks. Should be in the format:
# [X]XYYZZ, where X is the release version, Y is the revision, with a leading
# zero if needed, and Z represents the suffix, with a leading zero if needed
APP_VERSION_INT = 70100
APP_VERSION_INT = 62100
# DO NOT CHANGE!
# The application version string, constructed from the components
@@ -78,7 +78,6 @@ LANGUAGES = {
'cs': 'Czech',
'fr': 'French',
'de': 'German',
'id': 'Indonesian',
'it': 'Italian',
'ja': 'Japanese',
'ko': 'Korean',
@@ -304,7 +303,7 @@ LOG_ROTATION_MAX_LOG_FILES = 90 # Maximum number of backups to retain
##########################################################################
# The default driver used for making connection with PostgreSQL
PG_DEFAULT_DRIVER = 'psycopg3'
PG_DEFAULT_DRIVER = 'psycopg2'
# Maximum allowed idle time in minutes before which releasing the connection
# for the particular session. (in minutes)
@@ -830,18 +829,6 @@ ENABLE_PSQL = False
##########################################################################
ENABLE_BINARY_PATH_BROWSING = False
##########################################################################
# In server mode, the SHARED_STORAGE setting is used to enable shared storage.
# Specify the name, path, and restricted_access values that should be shared
# between users. When restricted_access is set to True, non-admin users cannot
# upload/add, delete, or rename files/folders in shared storage, only admins
# can do that. Users must provide the absolute path to the folder, and the name
# can be anything they see on the user interface.
# [{ 'name': 'Shared 1', 'path': '/shared_folder',
# 'restricted_access': True/False}]
##########################################################################
SHARED_STORAGE = []
#############################################################################
# AUTO_DISCOVER_SERVERS setting is used to enable the pgAdmin to discover the
# database server automatically on the local machine.
@@ -857,8 +844,80 @@ AUTO_DISCOVER_SERVERS = True
#############################################################################
SERVER_HEARTBEAT_TIMEOUT = 30 # In seconds
#############################################################################
# Patch the default config with custom config and other manipulations
#############################################################################
from pgadmin.evaluate_config import evaluate_and_patch_config
locals().update(evaluate_and_patch_config(locals()))
##########################################################################
# Local config settings
##########################################################################
# User configs loaded from config_local, config_distro etc.
user_config_settings = {}
# Function to Extract settings from config_local, config_distro etc.
def get_variables_from_module(module_name):
module = globals().get(module_name, None)
variables = {}
if module:
variables = {key: value for key, value in module.__dict__.items()
if not (key.startswith('__') or key.startswith('_'))}
return variables
# Load distribution-specific config overrides
try:
import config_distro
config_distro_settings = get_variables_from_module('config_distro')
user_config_settings.update(config_distro_settings)
except ImportError:
pass
# Load local config overrides
try:
import config_local
config_local_settings = get_variables_from_module('config_local')
user_config_settings.update(config_local_settings)
except ImportError:
pass
# Load system config overrides. We do this last, so that the sysadmin can
# override anything they want from a config file that's in a protected system
# directory and away from pgAdmin to avoid invalidating signatures.
system_config_dir = '/etc/pgadmin'
if sys.platform.startswith('win32'):
system_config_dir = os.environ['CommonProgramFiles'] + '/pgadmin'
elif sys.platform.startswith('darwin'):
system_config_dir = '/Library/Preferences/pgadmin'
if os.path.exists(system_config_dir + '/config_system.py'):
try:
sys.path.insert(0, system_config_dir)
import config_system
config_system_settings = get_variables_from_module('config_system')
user_config_settings.update(config_system_settings)
except ImportError:
pass
# Update settings for 'LOG_FILE', 'SQLITE_PATH', 'SESSION_DB_PATH',
# 'AZURE_CREDENTIAL_CACHE_DIR', 'KERBEROS_CCACHE_DIR', 'STORAGE_DIR'
# of DATA_DIR is user defined
data_dir_dependent_settings = ['LOG_FILE', 'SQLITE_PATH', 'SESSION_DB_PATH',
'AZURE_CREDENTIAL_CACHE_DIR',
'KERBEROS_CCACHE_DIR', 'STORAGE_DIR']
if 'DATA_DIR' in user_config_settings:
for setting in data_dir_dependent_settings:
if setting not in user_config_settings:
data_dir = user_config_settings['DATA_DIR']
file_dir_name = os.path.basename(locals().get(setting))
locals().update({setting: os.path.join(data_dir, file_dir_name)})
# Finally update config user configs
locals().update(user_config_settings)
# Override DEFAULT_SERVER value from environment variable.
if 'PGADMIN_CONFIG_DEFAULT_SERVER' in os.environ:
DEFAULT_SERVER = os.environ['PGADMIN_CONFIG_DEFAULT_SERVER']
# Disable USER_INACTIVITY_TIMEOUT when SERVER_MODE=False
if not SERVER_MODE:
USER_INACTIVITY_TIMEOUT = 0
# Enable PSQL in Desktop Mode.
ENABLE_PSQL = True
+4 -4
View File
@@ -123,9 +123,9 @@ def upgrade():
if version < 11:
# get metadata from current connection
meta = sa.MetaData()
meta = sa.MetaData(bind=op.get_bind())
# define table representation
meta.reflect(op.get_bind(), only=('role',))
meta.reflect(only=('role',))
role_table = sa.Table('role', meta)
op.execute(
@@ -166,9 +166,9 @@ def upgrade():
'value': security_password_salt}])
# get metadata from current connection
meta = sa.MetaData()
meta = sa.MetaData(bind=op.get_bind())
# define table representation
meta.reflect(op.get_bind(), only=('version',))
meta.reflect(only=('version',))
version_table = sa.Table('version', meta)
op.execute(
+2 -2
View File
@@ -35,9 +35,9 @@ def upgrade():
['username', 'auth_source'])
# For internal email is a user name, so update the existing records.
meta = sa.MetaData()
meta = sa.MetaData(bind=op.get_bind())
# define table representation
meta.reflect(op.get_bind(), only=('user',))
meta.reflect(only=('user',))
user_table = sa.Table('user', meta)
op.execute(
+2 -2
View File
@@ -27,9 +27,9 @@ depends_on = None
def upgrade():
# get metadata from current connection
meta = sa.MetaData()
meta = sa.MetaData(bind=op.get_bind())
# define table representation
meta.reflect(op.get_bind(), only=('server',))
meta.reflect(only=('server',))
server_table = sa.Table('server', meta)
op.execute(
server_table.update().where(server_table.c.connect_timeout == 0 or
+2 -2
View File
@@ -29,9 +29,9 @@ def upgrade():
op.add_column('user', sa.Column('fs_uniquifier', sa.String(),
nullable=True))
meta = sa.MetaData()
meta = sa.MetaData(bind=op.get_bind())
# define table representation
meta.reflect(op.get_bind(), only=('user',))
meta.reflect(only=('user',))
user_table = sa.Table('user', meta)
op.execute(
+2 -2
View File
@@ -30,9 +30,9 @@ def upgrade():
# If password is already exists for any existing server then change the
# save_password column to 1 (True) else set 0
# get metadata from current connection
meta = sa.MetaData()
meta = sa.MetaData(bind=op.get_bind())
# define table representation
meta.reflect(op.get_bind(), only=('server',))
meta.reflect(only=('server',))
server_table = sa.Table('server', meta)
op.execute(
+5 -5
View File
@@ -52,25 +52,25 @@ def migrate_connection_params(table_name):
pass
# define table representation
meta = sa.MetaData()
meta.reflect(op.get_bind(), only=(table_name,))
meta = sa.MetaData(bind=op.get_bind())
meta.reflect(only=(table_name,))
server_table = sa.Table(table_name, meta)
# Create a select statement
stmt = sa.select(
stmt = sa.select([
server_table.columns.id, server_table.columns.ssl_mode,
server_table.columns.sslcert, server_table.columns.sslkey,
server_table.columns.sslrootcert, server_table.columns.sslcrl,
server_table.columns.sslcompression, server_table.columns.hostaddr,
server_table.columns.passfile, server_table.columns.connect_timeout
)
])
# Fetch the data from the server table
results = op.get_bind().execute(stmt).fetchall()
for rows in results:
connection_params = {}
server_id = 0
for key, value in rows._asdict().items():
for key, value in rows.items():
if key == 'id':
server_id = value
# Name is changed from ssl_mode to sslmode
+1 -2
View File
@@ -114,8 +114,7 @@ def upgrade():
current_app.config['SECURITY_PASSWORD_SALT'] = current_salt
current_app.config['SECRET_KEY'] = secret_key
user_datastore = SQLAlchemyUserDatastore(db, User, Role)
Security(current_app.app_context().app, user_datastore,
register_blueprint=False)
Security(current_app, user_datastore, register_blueprint=False)
else:
current_app.config['SECURITY_PASSWORD_SALT'] = current_salt
current_app.config['SECRET_KEY'] = secret_key
+26 -26
View File
@@ -8,7 +8,7 @@
"license": "PostgreSQL",
"devDependencies": {
"@babel/core": "^7.10.2",
"@babel/eslint-parser": "^7.21.3",
"@babel/eslint-parser": "^7.17.0",
"@babel/eslint-plugin": "^7.17.7",
"@babel/plugin-proposal-object-rest-spread": "^7.10.1",
"@babel/plugin-syntax-jsx": "^7.16.0",
@@ -20,24 +20,22 @@
"@emotion/styled": "^10.0.14",
"@emotion/utils": "^1.0.0",
"@svgr/webpack": "^6.2.1",
"@typescript-eslint/eslint-plugin": "^5.57.0",
"@typescript-eslint/parser": "^5.57.0",
"@wojtekmaj/enzyme-adapter-react-17": "^0.8.0",
"@wojtekmaj/enzyme-adapter-react-17": "^0.4.1",
"autoprefixer": "^10.2.4",
"axios-mock-adapter": "^1.17.0",
"babel-loader": "^8.1.0",
"browserify": "^17.0.0",
"buffer": "^6.0.3",
"copy-webpack-plugin": "^11.0.0",
"copy-webpack-plugin": "^7.0.0",
"core-js": "^3.2.1",
"cross-env": "^7.0.3",
"css-loader": "^6.7.2",
"css-minimizer-webpack-plugin": "^3.0.0",
"enzyme": "^3.11.0",
"eslint": "^8.37.0",
"eslint-plugin-react": "^7.32.2",
"eslint": "^7.19.0",
"eslint-plugin-react": "^7.20.5",
"eslint-plugin-react-hooks": "^4.3.0",
"exports-loader": "^4.0.0",
"exports-loader": "^2.0.0",
"html-react-parser": "^1.2.7",
"image-minimizer-webpack-plugin": "^2.2.0",
"imagemin-mozjpeg": "^10.0.0",
@@ -56,11 +54,12 @@
"karma-jasmine-html-reporter": "^1.4.0",
"karma-requirejs": "~1.1.0",
"karma-source-map-support": "^1.4.0",
"karma-sourcemap-loader": "^0.4.0",
"karma-sourcemap-loader": "^0.3.7",
"karma-webpack": "^5.0.0",
"loader-utils": "^3.2.1",
"mini-css-extract-plugin": "^1.3.5",
"postcss-loader": "^7.1.0",
"popper.js": "^1.16.1",
"postcss-loader": "^5.0.0",
"process": "^0.11.10",
"prop-types": "^15.7.2",
"resize-observer-polyfill": "^1.5.1",
@@ -68,18 +67,18 @@
"sass-loader": "^11.0.0",
"sass-resources-loader": "^2.2.1",
"shim-loader": "^1.0.1",
"style-loader": "^3.3.2",
"style-loader": "^3.3.1",
"stylis": "^4.0.7",
"svgo": "^2.7.0",
"svgo-loader": "^2.2.0",
"terser-webpack-plugin": "^5.1.1",
"typescript": "^3.2.2",
"url-loader": "^4.1.1",
"webfonts-loader": "^8.0.1",
"webpack": "^5.76.3",
"webpack-bundle-analyzer": "^4.8.0",
"webfonts-loader": "^7.5.2",
"webpack": "^5.21.2",
"webpack-bundle-analyzer": "^4.4.0",
"webpack-cli": "^4.5.0",
"yarn-audit-html": "4.0.0"
"yarn-audit-html": "^4.0.0"
},
"dependencies": {
"@babel/plugin-proposal-class-properties": "^7.10.4",
@@ -96,7 +95,7 @@
"@szhsin/react-menu": "^2.2.0",
"@types/classnames": "^2.2.6",
"@types/react": "^16.7.18",
"@types/react-dom": "^17.0.11",
"@types/react-dom": "^16.0.11",
"ajv": "^8.8.2",
"anti-trojan-source": "^1.4.0",
"aspen-decorations": "^1.0.2",
@@ -104,6 +103,8 @@
"babelify": "~10.0.0",
"bignumber.js": "^9.0.1",
"bootstrap": "^4.3.1",
"bootstrap-datepicker": "^1.8.0",
"bootstrap4-toggle": "^3.6.1",
"brace": "^0.11.1",
"browserfs": "^1.4.3",
"chart.js": "^3.0.0",
@@ -121,7 +122,6 @@
"insert-if": "^1.1.0",
"ip-address": "^7.1.0",
"jquery": "^3.6.0",
"jquery-contextmenu": "^2.9.2",
"json-bignumber": "^1.0.1",
"jsoneditor": "^9.5.4",
"karma-coverage": "^2.0.3",
@@ -136,37 +136,38 @@
"path-fx": "^2.0.0",
"pathfinding": "^0.4.18",
"paths-js": "^0.4.9",
"popper.js": "^1.16.1",
"postcss": "^8.2.15",
"raf": "^3.4.1",
"rc-dock": "^3.2.9",
"react": "^17.0.1",
"react-aspen": "^1.1.0",
"react-checkbox-tree": "^1.7.2",
"react-data-grid": "https://github.com/pgadmin-org/react-data-grid.git#200d2f5e02de694e3e9ffbe177c279bc40240fb8",
"react-data-grid": "git+https://github.com/pgadmin-org/react-data-grid.git/#200d2f5e02de694e3e9ffbe177c279bc40240fb8",
"react-dnd": "^16.0.1",
"react-dnd-html5-backend": "^16.0.1",
"react-dom": "^17.0.1",
"react-draggable": "^4.4.4",
"react-dropzone": "^14.2.1",
"react-leaflet": "^3.2.2",
"react-resize-detector": "^9.1.0",
"react-resize-detector": "^8.0.3",
"react-rnd": "^10.3.5",
"react-router-dom": "^6.2.2",
"react-select": "^5.7.2",
"react-select": "^4.2.1",
"react-table": "^7.6.3",
"react-timer-hook": "^3.0.5",
"react-virtualized-auto-sizer": "^1.0.6",
"react-window": "^1.8.5",
"select2": "^4.0.13",
"snapsvg-cjs": "^0.0.6",
"socket.io-client": "^4.5.0",
"split.js": "^1.5.10",
"styled-components": "^5.2.1",
"tempusdominus-bootstrap-4": "^5.1.2",
"tempusdominus-core": "^5.19.3",
"uplot": "^1.6.24",
"uplot-react": "^1.1.4",
"valid-filename": "^2.0.1",
"webcabin-docker": "https://github.com/pgadmin-org/wcdocker#460fc6d90ba170bb177faaa8277f5fbb8279522a",
"webcabin-docker": "git+https://github.com/pgadmin-org/wcdocker/#3df8aac825ee2892f4d824de273b779cc6dbcad8",
"wkx": "^0.5.0",
"xterm": "^4.11.0",
"xterm-addon-fit": "^0.5.0",
@@ -174,13 +175,13 @@
"xterm-addon-web-links": "^0.4.0"
},
"scripts": {
"linter": "yarn eslint --no-eslintrc -c .eslintrc.js --ext .js --ext .jsx --ext .ts --ext .tsx .",
"linter": "yarn eslint --no-eslintrc -c .eslintrc.js --ext .js --ext .jsx .",
"webpacker": "yarn run webpack --config webpack.config.js --progress",
"webpacker:watch": "yarn run webpack --config webpack.config.js --progress --watch",
"bundle:watch": "yarn run linter && yarn run webpacker:watch",
"bundle:dev": "yarn run linter && yarn run webpacker",
"bundle:analyze": "cross-env NODE_ENV=production ANALYZE=true yarn run bundle:dev",
"bundle": "cross-env NODE_ENV=production NODE_OPTIONS=--max-old-space-size=2048 yarn run bundle:dev",
"bundle": "cross-env NODE_ENV=production NODE_OPTIONS=--max-old-space-size=8192 yarn run bundle:dev",
"test:karma-once": "yarn run linter && yarn run karma start --single-run",
"test:karma": "yarn run linter && yarn run karma start",
"test:karma-coverage": "yarn run test:karma-once --reporters coverage,progress",
@@ -191,6 +192,5 @@
"auditjs": "yarn audit --groups dependencies",
"auditpy": "safety check --full-report -i 51668 -i 52495",
"audit": "yarn run auditjs && yarn run auditpy"
},
"packageManager": "yarn@3.5.0"
}
}
+23 -15
View File
@@ -11,11 +11,13 @@
a webserver, this will provide the WSGI interface, otherwise, we're going
to start a web server."""
import sys
if sys.version_info < (3, 4):
raise RuntimeError('This application must be run under Python 3.4 '
'or later.')
import builtins
import os
@@ -33,17 +35,6 @@ if 'PGADMIN_SERVER_MODE' in os.environ:
else:
builtins.SERVER_MODE = None
if (3, 10) > sys.version_info > (3, 8) and os.name == 'posix':
# Fix eventlet issue with Python 3.9.
# Ref: https://github.com/eventlet/eventlet/issues/670
# This was causing issue in psycopg3
import select
from eventlet import hubs
hubs.use_hub("poll")
import selectors
selectors.DefaultSelector = selectors.PollSelector
import config
import setup
from pgadmin import create_app, socketio
@@ -100,6 +91,7 @@ if not os.path.isfile(config.SQLITE_PATH):
# it can be imported
##########################################################################
app = create_app()
app.debug = False
app.config['sessions'] = dict()
if setup_db_required:
@@ -161,6 +153,22 @@ def main():
setattr(sys, _name,
open(os.devnull, 'r' if _name == 'stdin' else 'w'))
# Build Javascript files when DEBUG
if config.DEBUG:
from pgadmin.utils.javascript.javascript_bundler import \
JavascriptBundler, JsState
app.debug = True
javascript_bundler = JavascriptBundler()
javascript_bundler.bundle()
if javascript_bundler.report() == JsState.NONE:
app.logger.error(
"Unable to generate javascript.\n"
"To run the app ensure that yarn install command runs "
"successfully"
)
raise RuntimeError("No generated javascript, aborting")
# Output a startup message if we're not under the runtime and startup.
# If we're under WSGI, we don't need to worry about this
if not app.PGADMIN_RUNTIME:
@@ -195,19 +203,19 @@ def main():
app.run(
host=config.DEFAULT_SERVER,
port=config.EFFECTIVE_SERVER_PORT,
debug=config.DEBUG,
use_reloader=(
(not app.PGADMIN_RUNTIME) and
(not app.PGADMIN_RUNTIME) and app.debug and
os.environ.get("WERKZEUG_RUN_MAIN") is not None
),
threaded=config.THREADED_MODE
)
else:
# Can use cheroot instead of flask dev server when not in debug
# 10 is default thread count in CherootServer
# num_threads = 10 if config.THREADED_MODE else 1
try:
socketio.run(
app,
debug=config.DEBUG,
allow_unsafe_werkzeug=True,
host=config.DEFAULT_SERVER,
port=config.EFFECTIVE_SERVER_PORT,
)
Loaded 100 of 1058 files, more files were not shown because too many files have changed in this diff. Show more