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
2911 changed files with 119049 additions and 203981 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: "Javascript dependency"
- package-ecosystem: "npm"
directory: "/web"
schedule:
interval: "daily"
labels:
- "Dependencies"
commit-message:
prefix: "Javascript 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-container:
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-docs:
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
+17 -16
View File
@@ -1,35 +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:
check-javascript-style:
# 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: Upgrade yarn
run: |
yarn set version berry
yarn set version 3
# 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-python-package:
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/*
+12 -10
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:
check-python-style:
# 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-tarball:
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:
check-translations:
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,178 +0,0 @@
name: Run feature 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:
run-feature-tests-epas:
# Only run if the tests are enabled
# TODO: Figure out a way to test for the presence of the secrets instead
if: vars.ENABLE_EPAS_TESTS == 'true'
strategy:
fail-fast: false
matrix:
pgver: [12, 13, 14, 15, 16]
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Setup the EDB APT repo on Linux
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
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: Create the tablespace directory
run: |
sudo mkdir -p /var/lib/edb-as/tablespaces/${{ matrix.pgver }}
sudo chown enterprisedb:enterprisedb /var/lib/edb-as/tablespaces/${{ matrix.pgver }}
- name: Start EDB PostgreSQL
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
run: make install-python-testing
- name: Create the test configuration
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
{
"headless_chrome": false,
"default_browser": "Chrome",
"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: Upgrade yarn
run: |
yarn set version berry
yarn set version 3
- name: Build the JS bundle
run: |
cd web
yarn install
yarn run bundle
- name: Run the tests
run: |
. venv/bin/activate
sudo Xvfb -ac :99 -screen 0 1280x1024x24 > /dev/null 2>&1 &
export DISPLAY=:99
cd web
python regression/runtests.py --pkg feature_tests
- name: Archive server log
if: success() || failure()
uses: actions/upload-artifact@v3
with:
name: server-log-pg${{ matrix.pgver }}
path: var/pgadmin4.log
- name: Archive regression log
if: success() || failure()
uses: actions/upload-artifact@v3
with:
name: regression-log-pg${{ matrix.pgver }}
path: web/regression/regression.log
- name: Archive screenshots
if: success() || failure()
uses: actions/upload-artifact@v3
with:
name: screenshots-pg${{ matrix.pgver }}
path: web/regression/screenshots
if-no-files-found: ignore
-181
View File
@@ -1,181 +0,0 @@
name: Run feature tests on PostgreSQL
# Note: we use a custom port 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:
run-feature-tests-pg:
strategy:
fail-fast: false
matrix:
pgver: [12, 13, 14, 15, 16]
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Setup the PGDG APT repo
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
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: Create the tablespace directory
run: |
sudo mkdir -p /var/lib/postgresql/tablespaces/${{ matrix.pgver }}
sudo chown postgres:postgres /var/lib/postgresql/tablespaces/${{ matrix.pgver }}
- name: Re-create stats directory, just in case
run: |
sudo rm -rf /var/run/postgresql/${{ matrix.pgver }}-main.pg_stat_tmp/
sudo mkdir -p /var/run/postgresql/${{ matrix.pgver }}-main.pg_stat_tmp/
sudo chown postgres:postgres /var/run/postgresql/${{ matrix.pgver }}-main.pg_stat_tmp/
- name: Start PostgreSQL
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: Install Python dependencies
run: make install-python-testing
- name: Create the test configuration
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
{
"headless_chrome": false,
"default_browser": "Chrome",
"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": "/var/run/postgresql",
"db_password": "postgres",
"db_port": 59${{ matrix.pgver }},
"maintenance_db": "postgres",
"sslmode": "prefer",
"tablespace_path": "/var/lib/postgresql/tablespaces/${{ matrix.pgver }}",
"enabled": true,
"default_binary_paths": {
"pg": "/usr/lib/postgresql/${{ matrix.pgver }}/bin",
"ppas": ""
}
}
],
"server_update_data": [
{
"comment": "This is test update comment"
}
]
}
EOF
- name: Upgrade yarn
run: |
yarn set version berry
yarn set version 3
- name: Build the JS bundle
run: |
cd web
yarn install
yarn run bundle
- name: Run the tests
run: |
. venv/bin/activate
sudo Xvfb -ac :99 -screen 0 1280x1024x24 > /dev/null 2>&1 &
export DISPLAY=:99
cd web
python regression/runtests.py --pkg feature_tests
- name: Archive server log
if: success() || failure()
uses: actions/upload-artifact@v3
with:
name: server-log-pg${{ matrix.pgver }}
path: var/pgadmin4.log
- name: Archive regression log
if: success() || failure()
uses: actions/upload-artifact@v3
with:
name: regression-log-pg${{ matrix.pgver }}
path: web/regression/regression.log
- name: Archive screenshots
if: success() || failure()
uses: actions/upload-artifact@v3
with:
name: screenshots-pg${{ matrix.pgver }}
path: web/regression/screenshots
if-no-files-found: ignore
@@ -1,44 +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:
run-javascript-tests:
strategy:
fail-fast: false
matrix:
os: [macos-latest, ubuntu-latest, windows-latest]
runs-on: ${{ matrix.os }}
steps:
- uses: actions/setup-node@v3
with:
node-version: '18.x'
- uses: actions/checkout@v3
- name: Upgrade yarn
run: |
yarn set version berry
yarn set version 3
- name: Install Node modules
run: |
cd web
yarn install
- name: Run the tests
run: |
cd web
yarn run test:js-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:
run-python-tests-epas:
# Only run if the tests are enabled
# TODO: Figure out a way to test for the presence of the secrets instead
if: vars.ENABLE_EPAS_TESTS == 'true'
strategy:
fail-fast: false
matrix:
os: [ubuntu-22.04, windows-latest]
pgver: [12, 13, 14, 15, 16]
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
-306
View File
@@ -1,306 +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:
run-python-tests-pg:
strategy:
fail-fast: false
matrix:
os: [macos-latest, ubuntu-latest, windows-latest]
pgver: [12, 13, 14, 15, 16]
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: |
FOR /f "delims=" %%F IN ('python tools\get_sb_package.py "https://www.postgresql.org/applications-v2.xml" "postgresql_${{ matrix.pgver }}" "windows-x64"') DO SET INSTALLER_EXE=%%F
ECHO Running %INSTALLER_EXE%...
%INSTALLER_EXE% --prefix C:\PostgreSQL\${{ matrix.pgver }} --datadir C:\PostgreSQL\${{ matrix.pgver }}\data --serverport 59${{ matrix.pgver }} --superpassword postgres --install_runtimes 0 --mode unattended --unattendedmodeui none --disable-components pgAdmin,stackbuilder --enable-components server,commandlinetools"
choco install -y mitkerberos
REM Ignore error 3010 (reboot required)
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:
run-sonarqube-scan:
# 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
+1 -1
View File
@@ -1,5 +1,5 @@
[pycodestyle]
ignore = E402,W504,E231
ignore = E402,W504,W605
max-line-length = 79
statistics = True
show-source = False
+173 -183
View File
@@ -12,156 +12,148 @@ 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.4.0 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/
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.1 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.13.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/
keyring 23.13.1 Unknown https://github.com/jaraco/keyring
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.2 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.18 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.22.5 MIT https://github.com/babel/babel.git
@babel/compat-data 7.22.5 MIT https://github.com/babel/babel.git
@babel/core 7.22.5 MIT https://github.com/babel/babel.git
@babel/generator 7.22.5 MIT https://github.com/babel/babel.git
@babel/helper-annotate-as-pure 7.22.5 MIT https://github.com/babel/babel.git
@babel/helper-compilation-targets 7.22.5 MIT https://github.com/babel/babel.git
@babel/helper-create-class-features-plugin 7.22.5 MIT https://github.com/babel/babel.git
@babel/helper-environment-visitor 7.22.5 MIT https://github.com/babel/babel.git
@babel/helper-function-name 7.22.5 MIT https://github.com/babel/babel.git
@babel/helper-hoist-variables 7.22.5 MIT https://github.com/babel/babel.git
@babel/helper-member-expression-to-functions 7.22.5 MIT https://github.com/babel/babel.git
@babel/helper-module-imports 7.22.5 MIT https://github.com/babel/babel.git
@babel/helper-module-transforms 7.22.5 MIT https://github.com/babel/babel.git
@babel/helper-optimise-call-expression 7.22.5 MIT https://github.com/babel/babel.git
@babel/helper-plugin-utils 7.22.5 MIT https://github.com/babel/babel.git
@babel/helper-replace-supers 7.22.5 MIT https://github.com/babel/babel.git
@babel/helper-simple-access 7.22.5 MIT https://github.com/babel/babel.git
@babel/helper-skip-transparent-expression-wrappers 7.22.5 MIT https://github.com/babel/babel.git
@babel/helper-split-export-declaration 7.22.5 MIT https://github.com/babel/babel.git
@babel/helper-string-parser 7.22.5 MIT https://github.com/babel/babel.git
@babel/helper-validator-identifier 7.22.5 MIT https://github.com/babel/babel.git
@babel/helper-validator-option 7.22.5 MIT https://github.com/babel/babel.git
@babel/helpers 7.22.5 MIT https://github.com/babel/babel.git
@babel/highlight 7.22.5 MIT https://github.com/babel/babel.git
@babel/parser 7.22.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.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.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.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.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.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.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.22.5 MIT https://github.com/babel/babel.git
@babel/plugin-transform-react-display-name 7.22.5 MIT https://github.com/babel/babel.git
@babel/plugin-transform-react-jsx 7.22.5 MIT https://github.com/babel/babel.git
@babel/plugin-transform-react-jsx-development 7.22.5 MIT https://github.com/babel/babel.git
@babel/plugin-transform-react-pure-annotations 7.22.5 MIT https://github.com/babel/babel.git
@babel/preset-react 7.22.5 MIT https://github.com/babel/babel.git
@babel/runtime 7.22.5 MIT https://github.com/babel/babel.git
@babel/template 7.22.5 MIT https://github.com/babel/babel.git
@babel/traverse 7.22.5 MIT https://github.com/babel/babel.git
@babel/types 7.22.5 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.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.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.11.0 MIT https://github.com/emotion-js/emotion/tree/main/packages/babel-plugin
@emotion/cache 11.11.0 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.1 MIT https://github.com/emotion-js/emotion/tree/main/packages/hash
@emotion/is-prop-valid 1.2.1 MIT https://github.com/emotion-js/emotion/tree/main/packages/is-prop-valid
@emotion/memoize 0.8.1 MIT https://github.com/emotion-js/emotion/tree/main/packages/memoize
@emotion/react 11.11.1 MIT https://github.com/emotion-js/emotion/tree/main/packages/react
@emotion/serialize 1.1.2 MIT https://github.com/emotion-js/emotion/tree/main/packages/serialize
@emotion/sheet 1.2.2 MIT https://github.com/emotion-js/emotion/tree/main/packages/sheet
@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.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
@emotion/unitless 0.8.1 MIT https://github.com/emotion-js/emotion/tree/main/packages/unitless
@emotion/unitless 0.8.0 MIT https://github.com/emotion-js/emotion/tree/main/packages/unitless
@emotion/unitless 0.7.5 MIT https://github.com/emotion-js/emotion/tree/master/packages/unitless
@emotion/use-insertion-effect-with-fallbacks 1.0.1 MIT https://github.com/emotion-js/emotion/tree/main/packages/use-insertion-effect-with-fallbacks
@emotion/utils 1.2.1 MIT https://github.com/emotion-js/emotion/tree/main/packages/utils
@emotion/weak-memoize 0.3.1 MIT https://github.com/emotion-js/emotion/tree/main/packages/weak-memoize
@floating-ui/core 1.3.1 MIT https://github.com/floating-ui/floating-ui.git
@floating-ui/dom 1.4.2 MIT https://github.com/floating-ui/floating-ui.git
@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
@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.15 MIT git+https://github.com/jridgewell/sourcemap-codec.git
@jridgewell/sourcemap-codec 1.4.14 MIT git+https://github.com/jridgewell/sourcemap-codec.git
@jridgewell/trace-mapping 0.3.18 MIT git+https://github.com/jridgewell/trace-mapping.git
@material-ui/core 4.12.4 MIT https://github.com/mui-org/material-ui.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.61 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
@material-ui/pickers 3.3.10 MIT https://github.com/mui-org/material-ui-pickers
@material-ui/styles 4.11.5 MIT https://github.com/mui-org/material-ui.git
@material-ui/system 4.12.2 MIT https://github.com/mui-org/material-ui.git
@@ -176,30 +168,27 @@ validate-npm-package-license 3.0.4
@projectstorm/react-diagrams-core 6.7.4 MIT https://github.com/projectstorm/react-diagrams.git
@projectstorm/react-diagrams-defaults 6.7.4 MIT https://github.com/projectstorm/react-diagrams.git
@projectstorm/react-diagrams-routing 6.7.4 MIT https://github.com/projectstorm/react-diagrams.git
@rc-component/portal 1.1.1 MIT https://github.com/react-component/portal.git
@rc-component/trigger 1.13.6 MIT https://github.com/react-component/trigger.git
@react-dnd/asap 5.0.2 MIT https://github.com/react-dnd/react-dnd
@react-dnd/invariant 4.0.2 MIT https://github.com/react-dnd/react-dnd
@react-dnd/shallowequal 4.0.2 MIT https://github.com/react-dnd/react-dnd
@remix-run/router 1.6.3 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 20.3.1 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.13 MIT https://github.com/DefinitelyTyped/DefinitelyTyped.git
@types/react 16.14.43 MIT https://github.com/DefinitelyTyped/DefinitelyTyped.git
@types/react 17.0.62 MIT https://github.com/DefinitelyTyped/DefinitelyTyped.git
@types/react-dom 17.0.20 MIT https://github.com/DefinitelyTyped/DefinitelyTyped.git
@types/react-transition-group 4.4.6 MIT https://github.com/DefinitelyTyped/DefinitelyTyped.git
@types/scheduler 0.16.3 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.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
@@ -211,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.3 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.9 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
@@ -231,11 +221,11 @@ camelize 1.0.1
caniuse-api 3.0.0 MIT https://github.com/nyalab/caniuse-api.git
chalk 2.4.2 MIT https://github.com/chalk/chalk.git
chart.js 3.9.1 MIT https://github.com/chartjs/Chart.js.git
chartjs-plugin-zoom 2.0.1 MIT https://github.com/chartjs/chartjs-plugin-zoom.git
chartjs-plugin-zoom 1.3.0 MIT https://github.com/chartjs/chartjs-plugin-zoom.git
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
@@ -243,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.31.0 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
@@ -269,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.5.0 MIT https://github.com/socketio/engine.io-client.git
engine.io-parser 5.1.0 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
@@ -297,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.1 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
@@ -314,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.7.0 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
@@ -325,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
@@ -366,7 +356,6 @@ map-obj 4.3.0
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
@@ -378,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.12 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
@@ -403,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.24 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
@@ -427,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.13 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.9.2 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.1 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.34.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
@@ -458,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-is 17.0.2 MIT https://github.com/facebook/react.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-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.13.0 MIT https://github.com/remix-run/react-router
react-router-dom 6.13.0 MIT https://github.com/remix-run/react-router
react-select 5.7.3 MIT https://github.com/JedWatson/react-select/tree/master/packages/react-select
react-is 17.0.2 MIT https://github.com/facebook/react.git
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.20 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.7.0 MIT https://github.com/socketio/socket.io-client.git
socket.io-parser 4.2.4 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.11 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.2.0 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
@@ -528,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.437 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.2.0 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.6 ISC git+https://github.com/amrlabib/react-timer-hook.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.2 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.23.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
@@ -559,28 +549,28 @@ 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.30001506 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
domhandler 4.3.1 BSD-2-Clause git://github.com/fb55/domhandler.git
domutils 2.8.0 BSD-2-Clause git://github.com/fb55/domutils.git
entities 2.2.0 BSD-2-Clause git://github.com/fb55/entities.git
leaflet 1.9.4 BSD-2-Clause git://github.com/Leaflet/Leaflet.git
leaflet 1.9.3 BSD-2-Clause git://github.com/Leaflet/Leaflet.git
normalize-package-data 3.0.3 BSD-2-Clause git://github.com/npm/normalize-package-data.git
nth-check 2.1.1 BSD-2-Clause https://github.com/fb55/nth-check
uri-js 4.4.1 BSD-2-Clause http://github.com/garycourt/uri-js
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.3 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
495 dependencies listed.
491 dependencies listed.
+26 -30
View File
@@ -2,7 +2,7 @@
#
# pgAdmin 4 - PostgreSQL Tools
#
# Copyright (C) 2013 - 2024, The pgAdmin Development Team
# Copyright (C) 2013 - 2023, The pgAdmin Development Team
# This software is released under the PostgreSQL Licence
#
#########################################################################
@@ -27,7 +27,6 @@ RUN apk add --no-cache \
make \
nasm \
nodejs \
npm \
yarn \
zlib-dev
@@ -46,8 +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 set version 3 && \
yarn install && \
yarn run bundle && \
rm -rf node_modules \
@@ -56,15 +53,14 @@ RUN export CPPFLAGS="-DPNG_ARM_NEON_OPT=0" && \
.[^.]* \
babel.cfg \
webpack.* \
jest.config.js \
babel.* \
karma.conf.js \
./pgadmin/static/js/generated/.cache
#########################################################################
# Next, create the base environment for Python
#########################################################################
FROM alpine:latest AS env-builder
FROM alpine:latest as env-builder
# Install dependencies
COPY requirements.txt /
@@ -92,7 +88,7 @@ RUN apk add --no-cache \
# Now, create a documentation build container for the Sphinx docs
#########################################################################
FROM env-builder AS docs-builder
FROM env-builder as docs-builder
# Install Sphinx
RUN /venv/bin/python3 -m pip install --no-cache-dir sphinx
@@ -116,15 +112,26 @@ RUN rm -rf /pgadmin4/docs/en_US/_build/html/_static/*.png
# Create additional builders to get all of the PostgreSQL utilities
#########################################################################
FROM postgres:12-alpine AS pg12-builder
FROM postgres:13-alpine AS pg13-builder
FROM postgres:14-alpine AS pg14-builder
FROM postgres:15-alpine AS pg15-builder
FROM postgres:16-alpine AS pg16-builder
FROM postgres:10-alpine as pg10-builder
FROM postgres:11-alpine as pg11-builder
FROM postgres:12-alpine as pg12-builder
FROM postgres:13-alpine as pg13-builder
FROM postgres:14-alpine as pg14-builder
FROM postgres:15-alpine as pg15-builder
FROM alpine:latest AS tool-builder
FROM alpine:latest as tool-builder
# Copy the PG binaries
COPY --from=pg10-builder /usr/local/bin/pg_dump /usr/local/pgsql/pgsql-10/
COPY --from=pg10-builder /usr/local/bin/pg_dumpall /usr/local/pgsql/pgsql-10/
COPY --from=pg10-builder /usr/local/bin/pg_restore /usr/local/pgsql/pgsql-10/
COPY --from=pg10-builder /usr/local/bin/psql /usr/local/pgsql/pgsql-10/
COPY --from=pg11-builder /usr/local/bin/pg_dump /usr/local/pgsql/pgsql-11/
COPY --from=pg11-builder /usr/local/bin/pg_dumpall /usr/local/pgsql/pgsql-11/
COPY --from=pg11-builder /usr/local/bin/pg_restore /usr/local/pgsql/pgsql-11/
COPY --from=pg11-builder /usr/local/bin/psql /usr/local/pgsql/pgsql-11/
COPY --from=pg12-builder /usr/local/bin/pg_dump /usr/local/pgsql/pgsql-12/
COPY --from=pg12-builder /usr/local/bin/pg_dumpall /usr/local/pgsql/pgsql-12/
COPY --from=pg12-builder /usr/local/bin/pg_restore /usr/local/pgsql/pgsql-12/
@@ -145,11 +152,6 @@ COPY --from=pg15-builder /usr/local/bin/pg_dumpall /usr/local/pgsql/pgsql-15/
COPY --from=pg15-builder /usr/local/bin/pg_restore /usr/local/pgsql/pgsql-15/
COPY --from=pg15-builder /usr/local/bin/psql /usr/local/pgsql/pgsql-15/
COPY --from=pg16-builder /usr/local/bin/pg_dump /usr/local/pgsql/pgsql-16/
COPY --from=pg16-builder /usr/local/bin/pg_dumpall /usr/local/pgsql/pgsql-16/
COPY --from=pg16-builder /usr/local/bin/pg_restore /usr/local/pgsql/pgsql-16/
COPY --from=pg16-builder /usr/local/bin/psql /usr/local/pgsql/pgsql-16/
#########################################################################
# Assemble everything into the final container.
#########################################################################
@@ -161,14 +163,9 @@ COPY --from=env-builder /venv /venv
# Copy in the tools
COPY --from=tool-builder /usr/local/pgsql /usr/local/
COPY --from=pg16-builder /usr/local/lib/libpq.so.5.16 /usr/lib/
COPY --from=pg16-builder /usr/lib/libzstd.so.1.5.5 /usr/lib/
COPY --from=pg16-builder /usr/lib/liblz4.so.1.9.4 /usr/lib/
RUN ln -s libpq.so.5.16 /usr/lib/libpq.so.5 && \
ln -s libpq.so.5.16 /usr/lib/libpq.so && \
ln -s libzstd.so.1.5.5 /usr/lib/libzstd.so.1 && \
ln -s liblz4.so.1.9.4 /usr/lib/liblz4.so.1
COPY --from=pg15-builder /usr/local/lib/libpq.so.5.15 /usr/lib/
RUN ln -s libpq.so.5.15 /usr/lib/libpq.so.5 && \
ln -s libpq.so.5.15 /usr/lib/libpq.so
WORKDIR /pgadmin4
ENV PYTHONPATH=/pgadmin4
@@ -193,11 +190,10 @@ RUN apk add \
libjpeg-turbo \
shadow \
sudo \
tzdata \
libedit \
libldap \
libcap && \
/venv/bin/python3 -m pip install --no-cache-dir gunicorn==20.1.0 && \
/venv/bin/python3 -m pip install --no-cache-dir gunicorn && \
find / -type d -name '__pycache__' -exec rm -rf {} + && \
useradd -r -u 5050 -g root -s /sbin/nologin pgadmin && \
mkdir -p /var/lib/pgadmin && \
@@ -207,7 +203,7 @@ RUN apk add \
chown pgadmin:root /pgadmin4/config_distro.py && \
chmod g=u /pgadmin4/config_distro.py && \
chmod g=u /etc/passwd && \
setcap CAP_NET_BIND_SERVICE=+eip /usr/bin/python3.11 && \
setcap CAP_NET_BIND_SERVICE=+eip /usr/bin/python3.10 && \
echo "pgadmin ALL = NOPASSWD: /usr/sbin/postfix start" > /etc/sudoers.d/postfix && \
echo "pgadminr ALL = NOPASSWD: /usr/sbin/postfix start" >> /etc/sudoers.d/postfix
+1 -5
View File
@@ -1,10 +1,6 @@
pgAdmin 4
=========
This software is released under the PostgreSQL licence.
-------------------------------------------------------------------------------
Copyright (C) 2013 - 2024, The pgAdmin Development Team
Copyright (C) 2013 - 2023, The pgAdmin Development Team
Permission to use, copy, modify, and distribute this software and its
documentation for any purpose, without fee, and without a written agreement is
+11 -25
View File
@@ -26,7 +26,6 @@ CALL :CLEAN || EXIT /B 1
CALL :CREATE_VIRTUAL_ENV || EXIT /B 1
CALL :CREATE_PYTHON_ENV || EXIT /B 1
CALL :CREATE_RUNTIME_ENV || EXIT /B 1
CALL :GENERATE_SBOM || EXIT /B 1
CALL :CREATE_INSTALLER || EXIT /B 1
CALL :SIGN_INSTALLER || EXIT /B 1
@@ -63,13 +62,13 @@ REM Main build sequence Ends
set "VCREDIST_FILE=vcredist_x64.exe"
REM Set additional variables we need
FOR /F "tokens=3" %%a IN ('findstr /C:"APP_RELEASE =" %WD%\web\version.py') DO SET APP_MAJOR=%%a
FOR /F "tokens=3" %%a IN ('findstr /C:"APP_REVISION =" %WD%\web\version.py') DO SET APP_MINOR=%%a
FOR /F "tokens=3" %%a IN ('findstr /C:"APP_SUFFIX =" %WD%\web\version.py') DO SET APP_VERSION_SUFFIX=%%a
FOR /F "tokens=3" %%a IN ('findstr /C:"APP_RELEASE =" %WD%\web\config.py') DO SET APP_MAJOR=%%a
FOR /F "tokens=3" %%a IN ('findstr /C:"APP_REVISION =" %WD%\web\config.py') DO SET APP_MINOR=%%a
FOR /F "tokens=3" %%a IN ('findstr /C:"APP_SUFFIX =" %WD%\web\config.py') DO SET APP_VERSION_SUFFIX=%%a
REM remove single quote from the string
SET APP_VERSION_SUFFIX=%APP_VERSION_SUFFIX:'=%
SET APP_NAME=""
FOR /F "tokens=2* DELims='" %%a IN ('findstr /C:"APP_NAME =" web\branding.py') DO SET APP_NAME=%%a
FOR /F "tokens=2* DELims='" %%a IN ('findstr /C:"APP_NAME =" web\config.py') DO SET APP_NAME=%%a
FOR /f "tokens=1 DELims=." %%G IN ('%PGADMIN_PYTHON_DIR%/python.exe -c "print('%APP_NAME%'.lower().replace(' ', ''))"') DO SET APP_SHORTNAME=%%G
SET APP_VERSION=%APP_MAJOR%.%APP_MINOR%
SET INSTALLERNAME=%APP_SHORTNAME%-%APP_MAJOR%.%APP_MINOR%-%APP_VERSION_SUFFIX%-x64.exe
@@ -218,7 +217,6 @@ REM Main build sequence Ends
ECHO Installing javascript dependencies...
CD "%BUILDROOT%\web"
CALL yarn install || EXIT /B 1
CALL npm rebuild || EXIT /B 1
ECHO Bundling javascript...
CALL yarn run bundle || EXIT /B 1
@@ -276,15 +274,15 @@ REM Main build sequence Ends
REM YARN END
REM WGET
REM Comment out the below line as the latest version having some
REM problem https://github.com/nwjs/nw.js/issues/7964, so for the time being
REM hardcoded the version to 0.77.0
REM 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
SET "NW_VERSION=0.77.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"
tar -C "%TMPDIR%" -xvf "%TMPDIR%\nwjs-v%NW_VERSION%-win-x64.zip" || EXIT /B 1
@@ -299,15 +297,6 @@ REM Main build sequence Ends
REM WGET END
MOVE "%BUILDROOT%\runtime\nw.exe" "%BUILDROOT%\runtime\pgAdmin4.exe"
ECHO Attempting to sign the pgAdmin4.exe...
CALL "%PGADMIN_SIGNTOOL_DIR%\signtool.exe" sign /tr http://timestamp.digicert.com "%BUILDROOT%\runtime\pgAdmin4.exe"
IF %ERRORLEVEL% NEQ 0 (
ECHO.
ECHO ************************************************************
ECHO * Failed to sign the pgAdmin4.exe
ECHO ************************************************************
PAUSE
)
ECHO Replacing executable icon...
CALL yarn --cwd "%TMPDIR%" add winresourcer || EXIT /B
@@ -315,8 +304,8 @@ REM Main build sequence Ends
ECHO Staging PostgreSQL components...
COPY "%PGADMIN_POSTGRES_DIR%\bin\libpq.dll" "%BUILDROOT%\runtime" > nul || EXIT /B 1
COPY "%PGADMIN_POSTGRES_DIR%\bin\libcrypto-*-x64.dll" "%BUILDROOT%\runtime" > nul || EXIT /B 1
COPY "%PGADMIN_POSTGRES_DIR%\bin\libssl-*-x64.dll" "%BUILDROOT%\runtime" > nul || EXIT /B 1
COPY "%PGADMIN_POSTGRES_DIR%\bin\libcrypto-1_1-x64.dll" "%BUILDROOT%\runtime" > nul || EXIT /B 1
COPY "%PGADMIN_POSTGRES_DIR%\bin\libssl-1_1-x64.dll" "%BUILDROOT%\runtime" > nul || EXIT /B 1
IF EXIST "%PGADMIN_POSTGRES_DIR%\bin\libintl-*.dll" COPY "%PGADMIN_POSTGRES_DIR%\bin\libintl-*.dll" "%BUILDROOT%\runtime" > nul
IF EXIST "%PGADMIN_POSTGRES_DIR%\bin\libiconv-*.dll" COPY "%PGADMIN_POSTGRES_DIR%\bin\libiconv-*.dll" "%BUILDROOT%\runtime" > nul
COPY "%PGADMIN_POSTGRES_DIR%\bin\zlib.dll" "%BUILDROOT%\runtime" > nul || EXIT /B 1
@@ -351,7 +340,7 @@ REM Main build sequence Ends
DEL /s "%WD%\pkg\win32\installer.iss.in_stage*" > nul
ECHO Creating windows installer using INNO tool...
CALL "%PGADMIN_INNOTOOL_DIR%\ISCC.exe" "%WD%\pkg\win32\installer.iss" || EXIT /B 1
CALL "%PGADMIN_INNOTOOL_DIR%\ISCC.exe" /q "%WD%\pkg\win32\installer.iss" || EXIT /B 1
ECHO Renaming installer...
MOVE "%WD%\pkg\win32\Output\pgadmin4-setup.exe" "%DISTROOT%\%INSTALLERNAME%" > nul || EXIT /B 1
@@ -362,9 +351,6 @@ REM Main build sequence Ends
CD %WD%
EXIT /B 0
:GENERATE_SBOM
ECHO Generating SBOM...
CALL syft "%BUILDROOT%" -o cyclonedx-json > "%BUILDROOT%\sbom.json"
:SIGN_INSTALLER
ECHO Attempting to sign the installer...
+20 -16
View File
@@ -2,35 +2,29 @@
#
# pgAdmin 4 - PostgreSQL Tools
#
# Copyright (C) 2013 - 2024, The pgAdmin Development Team
# Copyright (C) 2013 - 2023, The pgAdmin Development Team
# This software is released under the PostgreSQL Licence
#
#########################################################################
SHELL = /bin/sh
APP_NAME := $(shell grep ^APP_NAME web/branding.py | awk -F"=" '{print $$NF}' | tr -d '[:space:]' | tr -d "'" | awk '{print tolower($$0)}')
APP_RELEASE := $(shell grep ^APP_RELEASE web/version.py | awk -F"=" '{print $$NF}' | tr -d '[:space:]')
APP_REVISION := $(shell grep ^APP_REVISION web/version.py | awk -F"=" '{print $$NF}' | tr -d '[:space:]')
APP_NAME := $(shell grep ^APP_NAME web/config.py | awk -F"=" '{print $$NF}' | tr -d '[:space:]' | tr -d "'" | awk '{print tolower($$0)}')
APP_RELEASE := $(shell grep ^APP_RELEASE web/config.py | awk -F"=" '{print $$NF}' | tr -d '[:space:]')
APP_REVISION := $(shell grep ^APP_REVISION web/config.py | awk -F"=" '{print $$NF}' | tr -d '[:space:]')
#########################################################################
# High-level targets
#########################################################################
# 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
@@ -42,7 +36,7 @@ linter:
cd web && yarn run linter
check: install-node bundle linter check-pep8
cd web && yarn run test:js-once && python regression/runtests.py
cd web && yarn run karma start --single-run && python regression/runtests.py
check-audit:
cd web && yarn run audit
@@ -77,18 +71,28 @@ check-feature: install-node bundle
cd web && python regression/runtests.py --pkg feature_tests
check-js: install-node linter
cd web && yarn run test:js-once
cd web && yarn run karma start --single-run
check-js-coverage:
cd web && yarn run test: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/
+20 -19
View File
@@ -1,7 +1,7 @@
# pgAdmin 4
# pgAdmin 4
pgAdmin 4 is a rewrite of the popular pgAdmin3 management tool for the
PostgreSQL (http://www.postgresql.org) database.
PostgreSQL (http://www.postgresql.org) database.
In the following documentation and examples, *$PGADMIN4_SRC/* is used to denote
the top-level directory of a copy of the pgAdmin source tree, either from a
@@ -9,8 +9,9 @@ tarball or a git checkout.
## Architecture
pgAdmin 4 is written as a web application with Python(Flask) on the server side
and ReactJS, HTML5 with CSS for the client side processing and UI.
pgAdmin 4 is written as a web application in Python, using jQuery and Bootstrap
for the client side processing and UI. On the server side, Flask is being
utilised.
Although developed using web technologies, pgAdmin 4 can be deployed either on
a web server using a browser, or standalone on a workstation. The runtime/
@@ -21,7 +22,7 @@ which will execute the Python server and display the UI.
To build the runtime, the following packages must be installed:
* NodeJS 16+
* NodeJS 12+
* Yarn
Change into the runtime directory, and run *yarn install*. This will install the
@@ -47,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:
@@ -58,41 +59,41 @@ simple - adapt as required for your distribution:
```bash
$ python3 -m venv venv
```
2. Now activate the virtual environment:
```bash
$ source venv/bin/activate
```
3. Some of the components used by pgAdmin require a very recent version of *pip*,
so update that to the latest:
```bash
$ pip install --upgrade pip
```
4. Ensure that a PostgreSQL installation's bin/ directory is in the path (so
pg_config can be found for building psycopg3), and install the required
pg_config can be found for building psycopg2), and install the required
packages:
```bash
(venv) $ PATH=$PATH:/usr/local/pgsql/bin pip install -r $PGADMIN4_SRC/requirements.txt
```
If you are planning to run the regression tests, you also need to install
additional requirements from web/regression/requirements.txt:
```bash
(venv) $ pip install -r $PGADMIN4_SRC/web/regression/requirements.txt
```
5. Create a local configuration file for pgAdmin. Edit
$PGADMIN4_SRC/web/config_local.py and add any desired configuration options
(use the config.py file as a reference - any settings duplicated in
config_local.py will override those in config.py). A typical development
configuration may look like:
```python
from config import *
@@ -125,7 +126,7 @@ simple - adapt as required for your distribution:
'pgadmin4-server.db'
)
```
This configuration allows easy switching between server and desktop modes
for testing.
@@ -136,13 +137,13 @@ simple - adapt as required for your distribution:
```bash
(venv) $ python3 $PGADMIN4_SRC/web/setup.py
```
or by starting pgAdmin 4:
```bash
(venv) $ python3 $PGADMIN4_SRC/web/pgAdmin4.py
```
Whilst it is possible to automatically run setup in desktop mode by running
the runtime, that will not work in server mode as the runtime doesn't allow
command line interaction with the setup program.
@@ -227,7 +228,7 @@ To build a source tarball:
(venv) $ make src
```
To build a PIP Wheel, activate either a Python 3 virtual environment, configured
To build a PIP Wheel, activate either a Python 3 virtual environment, configured
with all the required packages, and then run:
```bash
@@ -265,7 +266,7 @@ See https://www.pgadmin.org/support/ for support options.
If you would like to report a security issue with pgAdmin, please email
**security (at) pgadmin (dot) org**.
Note that this address should only be used for reporting security issues
that you believe you've found in the design or code of pgAdmin, pgAgent,
and the pgAdmin website. It should not be used to ask security questions.
+20 -86
View File
@@ -67,7 +67,7 @@ Use the fields in the *General* tab to specify parameters for the backup:
* Use the dropdown listbox next to *Rolename* to specify the role that owns the
backup.
Click the *Data Options* tab to continue. Use the fields in the *Data Options*
Click the *Data/Objects* tab to continue. Use the fields in the *Data/Objects*
tab to provide options related to data or pgAdmin objects that correspond to *pg_dump*.
.. image:: images/backup_sections.png
@@ -97,7 +97,7 @@ tab to provide options related to data or pgAdmin objects that correspond to *pg
* Move the switch next to *Only data* towards right position to limit the back
up to data.
* Move the switch next to *Only schemas* to limit the back up to schema-level
* Move the switch next to *Only schema* to limit the back up to schema-level
database objects.
* Move the switch next to *Blobs* towards left position to exclude large
@@ -113,10 +113,10 @@ tab to provide options related to data or pgAdmin objects that correspond to *pg
* Move the switch next to *Owner* towards right position to exclude commands
that set object ownership.
* Move the switch next to *Privileges* towards right position to exclude
* Move the switch next to *Privilege* towards right position to exclude
commands that create access privileges.
* Move the switch next to *Tablespaces* towards right position to exclude
* Move the switch next to *Tablespace* towards right position to exclude
tablespaces.
* Move the switch next to *Unlogged table data* towards right position to
@@ -126,45 +126,25 @@ tab to provide options related to data or pgAdmin objects that correspond to *pg
commands that set the comments. **Note:** This option is visible only for
database server greater than or equal to 11.
* Move the switch next to *Publications* towards right position to exclude
publications.
* Move the switch next to *Subscriptions* towards right position to exclude
subscriptions.
* Move the switch next to *Security labels* towards right position to exclude
Security labels.
* Move the switch next to *Toast compressions* towards right position to exclude
Toast compressions. **Note:** This option is visible only for
database server greater than or equal to 14.
* Move the switch next to *Table access methods* towards right position to exclude
Table access methods. **Note:** This option is visible only for
database server greater than or equal to 15.
Click the *Options* tab to continue. Use these additional fields to specify
options like including ddl statements, verbose message or using set session
authorization corresponding to *pg_dump* options.
.. image:: images/backup_queries.png
:alt: Queries option on backup dialog
:align: center
Click the *Query Options* tab to continue. Use these additional fields to specify
the type of statements that should be included in the backup.
* Move switches in the **Queries** field box to specify the type of statements
that should be included in the backup.
* Move the switch next to *Use INSERT commands* towards right position to
* Move the switch next to *Use Column Inserts* towards right position to dump
the data in the form of INSERT statements and include explicit column
names. Please note: this may make restoration from backup slow.
* Move the switch next to *Use Insert commands* towards right position to
dump the data in the form of INSERT statements rather than using a COPY
command. Please note: this may make restoration from backup slow.
* Use the *Maximum rows per INSERT command* field to controls the maximum
number of rows per INSERT command. **Note:** This option is visible only for
database server greater than or equal to 12.
* Move the switch next to *On conflict do nothing to INSERT command* towards
right position to add ON CONFLICT DO NOTHING to INSERT command.
This option is not valid unless *Use INSERT commands*, *Use Column INSERTS*
or *Maximum rows per INSERT command* is also specified.
**Note:** This option is visible only for database server greater than or
equal to 12.
* Move the switch next to *Include CREATE DATABASE statement* towards right
position to include a command in the backup that creates a new database
when restoring the backup.
@@ -174,41 +154,12 @@ the type of statements that should be included in the backup.
database object with the same name before recreating the object during a
backup.
* Move the switch next to *Include IF EXISTS clause* towards right
position to add an IF EXISTS clause to drop databases and other objects.
This option is not valid unless *Include DROP DATABASE statement* is also set.
.. image:: images/backup_table.png
:alt: Backup dialog tables section
:align: center
Click the *Table Options* tab to continue. Use the fields in the *Table Options*
tab related to tables that should be included in the backup.
* Move the switch next to *Use Column INSERTS* towards right position to dump
the data in the form of INSERT statements and include explicit column
names. Please note: this may make restoration from backup slow.
* Move the switch next to *Load via partition root* towards right position,
* Move the switch next to *Load Via Partition Root* towards right position,
so when dumping a COPY or INSERT statement for a partitioned table, target
the root of the partitioning hierarchy which contains it rather than the
partition itself. **Note:** This option is visible only for database server
greater than or equal to 11.
* Move the switch next to *Enable row security* towards right position to
set row_security to on instead, allowing the user to dump the parts of the
contents of the table that they have access to. This option is relevant
only when dumping the contents of a table which has row security.
* Move the switch next to *With OIDs* towards right position to include object
identifiers as part of the table data for each table.
* Use the *Exclude table data* field to not dump data for any tables
matching the table pattern.
Click the *Options* tab to continue. Use the fields in the *Options*
tab to provide other backup options.
.. image:: images/backup_disable.png
:alt: Disable option on backup dialog
:align: center
@@ -216,7 +167,7 @@ tab to provide other backup options.
* Move switches in the **Disable** field box to specify the type of statements
that should be excluded from the backup.
* Move the switch next to *Triggers* (active when creating a data-only backup)
* Move the switch next to *Trigger* (active when creating a data-only backup)
towards right position to include commands that will disable triggers on the
target table while the data is being loaded.
@@ -231,6 +182,9 @@ tab to provide other backup options.
* Move switches in the **Miscellaneous** field box to specify miscellaneous
backup options.
* Move the switch next to *With OIDs* towards right position to include object
identifiers as part of the table data for each table.
* Move the switch next to *Verbose messages* towards left position to instruct
*pg_dump* to exclude verbose messages.
@@ -241,26 +195,6 @@ tab to provide other backup options.
position to include a statement that will use a SET SESSION AUTHORIZATION
command to determine object ownership (instead of an ALTER OWNER command).
* Use the *Exclude schema* field to not dump schemas whose name matches
pattern.
* Use the *Extra float digits* field to use the specified value when dumping
floating-point data, instead of the maximum available precision.
* Use the *Lock wait timeout* field to do not wait forever to acquire shared
table locks at the beginning of the dump. Instead, fail if unable to lock a
table within the specified timeout.
Click the *Objects* tab to continue.
.. image:: images/backup_object_selection.png
:alt: Select objects in backup dialog
:align: center
* Select the objects from tree to take backup of selected objects only.
* If Schema is selected then it will take the backup of that selected schema only.
* If any Table, View, Materialized View, Sequences, or Foreign Table is selected then it will take the backup of those selected objects.
When you’ve specified the details that will be incorporated into the pg_dump
command:
@@ -271,4 +205,4 @@ command:
pgAdmin will run the backup process in background. You can view all the background
process with there running status and logs on the :ref:`Processes <processes>`
tab
tab
+22 -92
View File
@@ -24,27 +24,22 @@ Use the fields in the *General* tab to specify the following:
connection privileges on the selected server. The role will be used for
authentication during the backup.
Click the *Data Options* tab to continue. Use the fields in the *Data Options*
tab to provide options related to data or pgAdmin objects that correspond to *pg_dumpall*.
.. image:: images/backup_server_objects.png
:alt: Type of objects option on backup server dialog
:align: center
Click the *Data/Objects* tab to continue. Use the fields in the *Data/Objects*
tab to provide options related to data or pgAdmin objects that correspond to *pg_dump*.
* Move switches in the **Type of objects** field box to specify details about
the type of objects that will be backed up.
* Move the switch next to *Only data* towards right position to limit the back
up to data.
* Move the switch next to *Only schemas* to limit the back up to schema-level
* Move the switch next to *Only schema* to limit the back up to schema-level
database objects.
* Move the switch next to *Only tablespaces* to limit the back
up to tablespaces only.
* Move the switch next to *Only roles* to limit the back up to roles only.
.. image:: images/backup_server_do_not_save.png
:alt: Do not save option on backup server dialog
:align: center
@@ -55,13 +50,10 @@ tab to provide options related to data or pgAdmin objects that correspond to *pg
* Move the switch next to *Owner* towards right position to exclude commands
that set object ownership.
* Move the switch next to *Role passwords* towards right position to exclude
passwords for roles.
* Move the switch next to *Privileges* towards right position to exclude
* Move the switch next to *Privilege* towards right position to exclude
commands that create access privileges.
* Move the switch next to *Tablespaces* towards right position to exclude
* Move the switch next to *Tablespace* towards right position to exclude
tablespaces.
* Move the switch next to *Unlogged table data* towards right position to
@@ -71,76 +63,26 @@ tab to provide options related to data or pgAdmin objects that correspond to *pg
commands that set the comments. **Note:** This option is visible only for
database server greater than or equal to 11.
* Move the switch next to *Publications* towards right position to exclude
publications.
* Move the switch next to *Subscriptions* towards right position to exclude
subscriptions.
* Move the switch next to *Security labels* towards right position to exclude
Security labels.
* Move the switch next to *Toast compressions* towards right position to exclude
Toast compressions. **Note:** This option is visible only for
database server greater than or equal to 14.
* Move the switch next to *Table access methods* towards right position to exclude
Table access methods. **Note:** This option is visible only for
database server greater than or equal to 15.
.. image:: images/backup_server_queries.png
:alt: Queries option on backup server dialog
:align: center
Click the *Query Options* tab to continue. Use these additional fields to specify
the type of statements that should be included in the backup.
* Move switches in the **Queries** field box to specify the type of statements
that should be included in the backup.
* Move the switch next to *Use INSERT commands* towards right position to
dump the data in the form of INSERT statements rather than using a COPY
command. Please note: this may make restoration from backup slow.
* Move the switch next to *Use Column Inserts* towards right position to dump
the data in the form of INSERT statements and include explicit column
names. Please note: this may make restoration from backup slow.
* Use the *Maximum rows per INSERT command* field to controls the maximum
number of rows per INSERT command. **Note:** This option is visible only for
database server greater than or equal to 12.
* Move the switch next to *On conflict do nothing to INSERT command* towards
right position to add ON CONFLICT DO NOTHING to INSERT command.
This option is not valid unless *Use INSERT commands*, *Use Column INSERTS*
or *Maximum rows per INSERT command* is also specified.
**Note:** This option is visible only for database server greater than or
equal to 12.
* Move the switch next to *Use Insert commands* towards right position to dump
the data in the form of INSERT statements rather than using a COPY command.
Please note: this may make restoration from backup slow.
* Move the switch next to *Include DROP DATABASE statement* towards right
position to include a command in the backup that will drop any existing
database object with the same name before recreating the object during a
backup.
* Move the switch next to *Include IF EXISTS clause* towards right
position to add an IF EXISTS clause to drop databases and other objects.
This option is not valid unless *Include DROP DATABASE statement* is also set.
.. image:: images/backup_server_table.png
:alt: Backup dialog tables section
:align: center
Click the *Table Options* tab to continue. Use the fields in the *Table Options*
tab related to tables that should be included in the backup.
* Move the switch next to *Use Column INSERTS* towards right position to dump
the data in the form of INSERT statements and include explicit column
names. Please note: this may make restoration from backup slow.
* Move the switch next to *Load via partition root* towards right position,
so when dumping a COPY or INSERT statement for a partitioned table, target
the root of the partitioning hierarchy which contains it rather than the
partition itself. **Note:** This option is visible only for database server
greater than or equal to 11.
* Move the switch next to *With OIDs* towards right position to include object
identifiers as part of the table data for each table.
Click the *Options* tab to continue. Use the fields in the *Options*
tab to provide other backup options.
.. image:: images/backup_server_disable.png
:alt: Disable option on backup server dialog
@@ -149,7 +91,7 @@ tab to provide other backup options.
* Move switches in the **Disable** field box to specify the type of statements
that should be excluded from the backup.
* Move the switch next to *Triggers* (active when creating a data-only backup)
* Move the switch next to *Trigger* (active when creating a data-only backup)
towards right position to include commands that will disable triggers on the
target table while the data is being loaded.
@@ -164,8 +106,11 @@ tab to provide other backup options.
* Move switches in the **Miscellaneous** field box to specify miscellaneous
backup options.
* Move the switch next to *With OIDs* towards right position to include object
identifiers as part of the table data for each table.
* Move the switch next to *Verbose messages* towards left position to instruct
*pg_dumpall* to exclude verbose messages.
*pg_dump* to exclude verbose messages.
* Move the switch next to *Force double quotes on identifiers* towards right
position to force the quoting of all identifiers.
@@ -174,24 +119,9 @@ tab to provide other backup options.
position to include a statement that will use a SET SESSION AUTHORIZATION
command to determine object ownership (instead of an ALTER OWNER command).
* Use the *Exclude database* field to not dump databases whose name matches
pattern.
* Use the *Extra float digits* field to use the specified value when dumping
floating-point data, instead of the maximum available precision.
* Use the *Lock wait timeout* field to do not wait forever to acquire shared
table locks at the beginning of the dump. Instead, fail if unable to lock a
table within the specified timeout.
When you’ve specified the details that will be incorporated into the pg_dumpall
command:
* Click the *Backup* button to build and execute a command that builds a backup
based on your selections on the *Backup Server* dialog.
* Click the *Cancel* button to exit without saving work.
Click the *Backup* button to build and execute a command based on your
selections; click the *Cancel* button to exit without saving work.
pgAdmin will run the backup process in background. You can view all the background
process with there running status and logs on the :ref:`Processes <processes>`
tab
tab
+1 -1
View File
@@ -14,7 +14,7 @@ root = os.path.realpath(
if sys.path[0] != root:
sys.path.insert(0, root)
import config
from pgadmin.utils import PgAdminModule
target = open('code_snippets.rst', 'w')
+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 -8
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.
@@ -66,8 +66,6 @@ details.
* Use the *Volume IOPS* field to specify the storage IOPS. This field is specific to AWS.
* Use the *Disk throughput* field to specify the disk throughput. This field is specific to AWS.
.. image:: images/cloud_biganimal_database.png
:alt: Cloud Deployment Provider
@@ -76,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
+4 -3
View File
@@ -5,7 +5,7 @@
**********************
The bulk of pgAdmin is a Python web application written using the Flask framework
on the backend, and HTML5 with CSS3,ReactJS on the front end. A
on the backend, and HTML5 with CSS3, Bootstrap and jQuery on the front end. A
desktop runtime is also included for users that prefer a desktop application to
a web application, which is written using NWjs (Node Webkit).
@@ -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
@@ -207,7 +207,8 @@ Front End
pgAdmin uses javascript extensively for the front-end implementation. It uses
require.js to allow the lazy loading (or, say load only when required),
ReactJS with CSS and MaterialUI for UI look and feel. We have
bootstrap and MaterialUI for UI look and feel, React for generating
properties/create dialog for selected node. We have
divided each module in small chunks as much as possible. Not all javascript
modules are required to be loaded (i.e. loading a javascript module for
database will make sense only when a server node is loaded completely.) Please
+1 -1
View File
@@ -16,7 +16,7 @@ review process for any changes submitted for inclusion in pgAdmin.
bulk updates every year). The start date should always be 2013, and the end year
the current year, e.g.
Copyright (C) 2013 - 2024, The pgAdmin Development Team
Copyright (C) 2013 - 2023, The pgAdmin Development Team
* Ensure there's a blank line immediately following any copyright headers.
+6 -4
View File
@@ -22,12 +22,14 @@ purpose or how it works if not obvious from a quick review of the code itself.
CSS 3
*****
CSS3 is used for styling and layout throughout the application.
CSS3 is used for styling and layout throughout the application. Extensive use is
made of the Bootstrap Framework to aid in that process, however additional
styles must still be created from time to time.
Most custom styling comes from individual modules which may advertise static
stylesheets to be included in the module that is loading them via hooks.
Styling overrides (for example, to alter the look and feel) will
Styling overrides (for example, to alter the Bootstrap look and feel) will
typically be found in the **overrides.css** file in the main static file
directory for the application.
@@ -62,7 +64,7 @@ All HTML must be HTML 5 compliant.
Javascript
**********
Client-side code is written in Javascript using ReactJS and various plugins.
Client-side code is written in Javascript using jQuery and various plugins.
Whilst much of the code is rendered from static files, there is also code that
is rendered from templates using Jinja2 (often to inject the users settings) or
constructed on the fly from module hooks.
@@ -120,7 +122,7 @@ with the required file header is shown below::
#
# pgAdmin 4 - PostgreSQL Tools
#
# Copyright (C) 2013 - 2024, The pgAdmin Development Team
# Copyright (C) 2013 - 2023, The pgAdmin Development Team
# This software is released under the PostgreSQL Licence
#
##########################################################################
-6
View File
@@ -39,12 +39,6 @@ are disabled if inapplicable.)
a text value.
* Use the drop-down listbox next to *Collation* to apply a collation setting to
the column.
* Use the drop-down listbox next to *Compression* to set the compression method
for the column. Compression is supported only for variable-width data types,
and is used only when the column's storage mode is main or extended. This
option is available from v14 and above.
* Use the drop-down listbox next to *Storage* to set the storage mode for the
column. This option is available from v16 and above.
Click the *Constraints* tab to continue.
+2 -2
View File
@@ -27,8 +27,8 @@ The configuration files are as follows:
needed.
* ``config_local.py``: This file is read after ``config_distro.py`` and is intended
for the owner of the installation to change any default or packaging specific settings
that they may wish to adjust to meet local preferences or standards.This file is optional,
for end users to change any default or packaging specific settings that they may
wish to adjust to meet local preferences or standards.This file is optional,
and may be created by users in the same directory as ``config.py`` if
needed.
+8 -23
View File
@@ -26,9 +26,9 @@ where *<tag name>* is one of the following:
+==========+===============================================================================+
| latest | The most recent release. |
+----------+-------------------------------------------------------------------------------+
| 8.4 | A specific version (8.4 in this case). |
| 6.14 | A specific version (6.14 in this case). |
+----------+-------------------------------------------------------------------------------+
| 8 | the latest release of a specific major version (major version 8 in this case).|
| 6 | the latest release of a specific major version (major version 6 in this case).|
+----------+-------------------------------------------------------------------------------+
| snapshot | The latest nightly test build. |
+----------+-------------------------------------------------------------------------------+
@@ -42,22 +42,23 @@ maintenance functions to be executed. Multiple versions are included in the
following directories to allow use with different versions of the database
server:
* PostgreSQL 10: */usr/local/pgsql-10*
* PostgreSQL 11: */usr/local/pgsql-11*
* PostgreSQL 12: */usr/local/pgsql-12*
* PostgreSQL 13: */usr/local/pgsql-13*
* PostgreSQL 14: */usr/local/pgsql-14*
* PostgreSQL 15: */usr/local/pgsql-15*
* PostgreSQL 16: */usr/local/pgsql-16*
The default binary paths set in the container are as follows:
.. code-block:: bash
DEFAULT_BINARY_PATHS = {
'pg-16': '/usr/local/pgsql-16',
'pg-15': '/usr/local/pgsql-15',
'pg-14': '/usr/local/pgsql-14',
'pg-13': '/usr/local/pgsql-13',
'pg-12': '/usr/local/pgsql-12'
'pg-12': '/usr/local/pgsql-12',
'pg-11': '/usr/local/pgsql-11',
'pg-10': '/usr/local/pgsql-10'
}
this may be changed in the :ref:`preferences`.
@@ -132,15 +133,7 @@ than using the default.
Override the default file path for the server definition list. See the
/pgadmin4/servers.json mapped file below for more information. See the format
of the `Servers JSON file <https://www.pgadmin.org/docs/pgadmin4/latest/import_export_servers.html#json-format>`_.
**PGADMIN_PREFERENCES_JSON_FILE**
*Default: /pgadmin4/preferences.json*
Override the default file path for the preferences customization at the container creation. See the
/pgadmin4/preferences.json mapped file below for more information. See the format
of the `Preferences JSON file <https://www.pgadmin.org/docs/pgadmin4/latest/preferences.html#json-format>`_.
of the `JSON file <https://www.pgadmin.org/docs/pgadmin4/latest/import_export_servers.html#json-format>`_.
**GUNICORN_ACCESS_LOGFILE**
@@ -236,14 +229,6 @@ pgAdmin in the container. Note that server definitions are only loaded on first
launch, i.e. when the configuration database is created, and not on subsequent
launches using the same configuration database.
**/pgadmin4/preferences.json**
If this file is mapped, preferences defined in it will be updated at launch
time. This allows customization of preferences settings into the instance of
pgAdmin in the container. Note that preferences are only set on first
launch, i.e. when the configuration database is created, and not on subsequent
launches using the same configuration database.
**/certs/server.cert**
If TLS is enabled, this file will be used as the servers TLS certificate.
-14
View File
@@ -19,9 +19,6 @@ Use the fields in the *General* tab to identify the database:
* Use the *Database* field to add a descriptive name for the database. The name
will be displayed in the *pgAdmin* tree control.
* Use the *OID* field to specify the object identifier to be used for the new
database. Users can specify the value greater than 16383. This option is available
from v15 and above.
* Select the owner of the database from the drop-down listbox in the *Owner*
field.
* Store notes about the database in the *Comment* field.
@@ -41,22 +38,11 @@ Use the *Definition* tab to set properties for the database:
* Select a tablespace from the drop-down listbox in the *Tablespace* field. The
selected tablespace will be the default tablespace used to contain database
objects.
* Select the strategy from the drop-down listbox in the *Strategy* field while
creating a new database. This option is available from v15 and above.
* Select the locale provider from the drop-down listbox in the *Locale Provider*
field to set the default collation for this database. Possible values are: icu, libc.
This option is available from v15 and above.
* Select the collation order from the drop-down listbox in the *Collation* field.
* Select the character classification from the drop-down listbox in the
*Character Type* field. This affects the categorization of characters, e.g.
lower, upper and digit. The default, or a blank field, uses the character
classification of the template database.
* Select the icu locale from the drop-down listbox in the *ICU Locale* to
specifies the ICU locale ID if the ICU locale provider is used.
This option is available from v15 and above.
* Specify the icu rules in the *ICU Rules* field as additional collation
rules to customize the behavior of the default collation of this database.
This option is available from v16 and above.
* Specify a connection limit in the *Connection Limit* field to configure the
maximum number of connection requests. The default value (*-1*) allows
unlimited connections to the database.
+3 -18
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
@@ -222,18 +222,3 @@ To delete a row from the grid, click the trash icon.
:maxdepth: 2
viewdata_filter
Promote View/Edit Data to Query Tool
************************************
A View/Edit Data tab can be converted to a Query Tool Tab just by editing the query. Once you start editing, it will ask if you really want to move away from View/Edit.
.. image:: images/promote_view_edit_data_warning.png
:alt: Promote View/Edit Data tab to Query Tool tab warning
:align: center
You can disable the dialog by selecting the "Don't Ask again" checkbox. If you wish to resume the confirmation dialog, you can do it from "Prefrences -> Query Tool -> Editor -> Show View/Edit Data Promotion Warning?"
Once you chose to continue, you won't be able to use the features of View/Edit mode like the filter and sorting options, limit, etc. It is a one-way conversion. It will be a query tool now.
+2 -9
View File
@@ -12,20 +12,13 @@ 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
:align: center
You can open multiple copies of the ERD tool in individual tabs simultaneously.
You can also generate an ERD from a database, schema or a table.
* The ERD for database will fetch all the tables from all the schemas of the database and plot them with foreign key links.
* The ERD for schema will fetch all the tables from a schema and plot them with foreign key links. If any table refers to a table in another
schema, then that link/foreign key will be removed.
* The ERD for table will fetch all the tables linked directly or indirectly to mentioned table. You can change the depth of traversal from :ref:`Preferences <preferences>`.
You can open multiple copies of the ERD tool in individual tabs simultaneously. To close a copy of the ERD tool, click the *X* in the upper-right hand corner of the tab bar.
Toolbar
*******
+1 -4
View File
@@ -23,9 +23,6 @@ Use the fields in the *General* tab to identify an extension:
* Use the drop-down listbox in the *Name* field to select the extension. Each
extension must have a unique name.
* Move the switch next to *Cascade?* towards right position to automatically
install any extensions that this extension depends on that are not already
installed.
* Store notes about the extension in the *Comment* field.
Click the *Definition* tab to continue.
@@ -58,7 +55,7 @@ the *Extension* dialog:
:align: center
The command creates the *adminpack* extension in the *public* schema. It is
version *2.0* of *adminpack*.
version *1.0* of *adminpack*.
* Click the *Info* button (i) to access online help.
* Click the *Save* button to save work.
+1 -3
View File
@@ -35,10 +35,8 @@ Click the *Definition* tab to continue.
Use the fields in the *Definition* tab to define the function:
* Move the *Custom return type?* switch to provide a user defined return type.
* Use the drop-down listbox next to *Return type* to select the data type
returned by the function, if any. If *Custom return type?* is enabled this field
will change to an input text field.
returned by the function, if any.
* Use the drop-down listbox next to *Language* to select the implementation
language. The default is *sql*.
* Use the fields in the *Arguments* to define an argument. Click the *Add*
Binary file not shown.

Before

Width:  |  Height:  |  Size: 53 KiB

After

Width:  |  Height:  |  Size: 20 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 98 KiB

After

Width:  |  Height:  |  Size: 28 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 97 KiB

After

Width:  |  Height:  |  Size: 34 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 94 KiB

After

Width:  |  Height:  |  Size: 31 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 126 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 59 KiB

After

Width:  |  Height:  |  Size: 23 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 100 KiB

After

Width:  |  Height:  |  Size: 36 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 60 KiB

After

Width:  |  Height:  |  Size: 22 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 57 KiB

After

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 107 KiB

After

Width:  |  Height:  |  Size: 27 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 71 KiB

After

Width:  |  Height:  |  Size: 29 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 94 KiB

After

Width:  |  Height:  |  Size: 30 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 71 KiB

After

Width:  |  Height:  |  Size: 21 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 90 KiB

After

Width:  |  Height:  |  Size: 26 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 69 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 81 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 43 KiB

After

Width:  |  Height:  |  Size: 39 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 43 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 45 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 131 KiB

After

Width:  |  Height:  |  Size: 113 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: 66 KiB

After

Width:  |  Height:  |  Size: 29 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 65 KiB

After

Width:  |  Height:  |  Size: 38 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 110 KiB

After

Width:  |  Height:  |  Size: 39 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 56 KiB

After

Width:  |  Height:  |  Size: 29 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 42 KiB

After

Width:  |  Height:  |  Size: 22 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 82 KiB

After

Width:  |  Height:  |  Size: 49 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 110 KiB

After

Width:  |  Height:  |  Size: 59 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 44 KiB

After

Width:  |  Height:  |  Size: 21 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 46 KiB

After

Width:  |  Height:  |  Size: 21 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 54 KiB

After

Width:  |  Height:  |  Size: 23 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 20 KiB

After

Width:  |  Height:  |  Size: 37 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 88 KiB

After

Width:  |  Height:  |  Size: 64 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 89 KiB

After

Width:  |  Height:  |  Size: 54 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 16 KiB

After

Width:  |  Height:  |  Size: 41 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.0 KiB

After

Width:  |  Height:  |  Size: 19 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 15 KiB

After

Width:  |  Height:  |  Size: 27 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 31 KiB

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 41 KiB

After

Width:  |  Height:  |  Size: 28 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 98 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 78 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 68 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 62 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 115 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 57 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 154 KiB

After

Width:  |  Height:  |  Size: 83 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 52 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 115 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 62 KiB

Loaded 100 of 2911 files, more files were not shown because too many files have changed in this diff. Show more