Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
a144815201 | ||
|
|
c6220bd8e2 | ||
|
|
bff425f49e | ||
|
|
843925e5bc | ||
|
|
18ee965da6 | ||
|
|
ca534aaabc | ||
|
|
f7acbad684 | ||
|
|
d0c53e1621 | ||
|
|
c75f72e6e2 | ||
|
|
6fa5d1f061 | ||
|
|
12c44cd0fa | ||
|
|
623204d062 | ||
|
|
004e777032 | ||
|
|
0e9d59fe51 | ||
|
|
919d973ec0 | ||
|
|
e86363bbc0 | ||
|
|
feaa47497c | ||
|
|
a4451fead8 | ||
|
|
5e8d99fbbd | ||
|
|
45b7abd267 | ||
|
|
724fa361ea | ||
|
|
eb68176ee1 | ||
|
|
65ede27a38 | ||
|
|
92c9d757b2 | ||
|
|
465106206b | ||
|
|
81dc2161cb | ||
|
|
ae1eca5b3f | ||
|
|
c599edb342 | ||
|
|
4d03fbd34f | ||
|
|
b2b52b2f66 | ||
|
|
23c3a27201 | ||
|
|
c8356f2bfd | ||
|
|
b5e7e7848c | ||
|
|
f58dbf36bb | ||
|
|
57431ca754 | ||
|
|
ab62af0d55 |
No files matched your search
@@ -1,55 +0,0 @@
|
||||
version: 2
|
||||
updates:
|
||||
- package-ecosystem: "docker"
|
||||
directory: "/"
|
||||
schedule:
|
||||
interval: "daily"
|
||||
labels:
|
||||
- "Dependencies"
|
||||
commit-message:
|
||||
prefix: "Docker dependency"
|
||||
|
||||
- package-ecosystem: "pip"
|
||||
directory: "/"
|
||||
schedule:
|
||||
interval: "daily"
|
||||
labels:
|
||||
- "Dependencies"
|
||||
commit-message:
|
||||
prefix: "Python dependency"
|
||||
|
||||
- package-ecosystem: "pip"
|
||||
directory: "/tools"
|
||||
schedule:
|
||||
interval: "daily"
|
||||
labels:
|
||||
- "Dependencies"
|
||||
commit-message:
|
||||
prefix: "Python dependency"
|
||||
|
||||
- package-ecosystem: "pip"
|
||||
directory: "/web/regression"
|
||||
schedule:
|
||||
interval: "daily"
|
||||
labels:
|
||||
- "Dependencies"
|
||||
commit-message:
|
||||
prefix: "Python dependency"
|
||||
|
||||
- package-ecosystem: "npm"
|
||||
directory: "/runtime"
|
||||
schedule:
|
||||
interval: "daily"
|
||||
labels:
|
||||
- "Dependencies"
|
||||
commit-message:
|
||||
prefix: "Python dependency"
|
||||
|
||||
- package-ecosystem: "npm"
|
||||
directory: "/web"
|
||||
schedule:
|
||||
interval: "daily"
|
||||
labels:
|
||||
- "Dependencies"
|
||||
commit-message:
|
||||
prefix: "Python dependency"
|
||||
@@ -1,23 +0,0 @@
|
||||
name: Check container build
|
||||
|
||||
on:
|
||||
push:
|
||||
branches: [ "master" ]
|
||||
pull_request:
|
||||
branches: [ "master" ]
|
||||
|
||||
workflow_dispatch:
|
||||
|
||||
concurrency:
|
||||
group: '${{ github.workflow }} @ ${{ github.event.pull_request.head.label || github.head_ref || github.ref }}'
|
||||
cancel-in-progress: true
|
||||
|
||||
jobs:
|
||||
build:
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
|
||||
- name: Build the container
|
||||
run: docker build .
|
||||
@@ -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
|
||||
@@ -1,61 +0,0 @@
|
||||
name: Check documentation builds
|
||||
|
||||
on:
|
||||
push:
|
||||
branches: [ "master" ]
|
||||
pull_request:
|
||||
branches: [ "master" ]
|
||||
|
||||
workflow_dispatch:
|
||||
|
||||
concurrency:
|
||||
group: '${{ github.workflow }} @ ${{ github.event.pull_request.head.label || github.head_ref || github.ref }}'
|
||||
cancel-in-progress: true
|
||||
|
||||
jobs:
|
||||
build:
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
|
||||
- name: Install platform dependencies
|
||||
run: |
|
||||
sudo apt update
|
||||
sudo apt install -y libpq-dev libffi-dev libssl-dev libkrb5-dev zlib1g-dev latexmk texlive-latex-recommended tex-gyre texlive-latex-extra
|
||||
|
||||
- name: Install Python dependencies
|
||||
run: make install-python
|
||||
|
||||
- name: Check the HTML build
|
||||
run: |
|
||||
. venv/bin/activate
|
||||
make docs
|
||||
|
||||
- name: Archive HTML
|
||||
uses: actions/upload-artifact@v3
|
||||
with:
|
||||
name: pgadmin4-html-build-output
|
||||
path: docs/en_US/_build/html/*
|
||||
|
||||
- name: Check the ePub build
|
||||
run: |
|
||||
. venv/bin/activate
|
||||
make docs-epub
|
||||
|
||||
- name: Archive ePub
|
||||
uses: actions/upload-artifact@v3
|
||||
with:
|
||||
name: pgadmin4-epub-build-output
|
||||
path: docs/en_US/_build/epub/pgAdmin4.epub
|
||||
|
||||
- name: Check the PDF build
|
||||
run: |
|
||||
. venv/bin/activate
|
||||
make docs-pdf
|
||||
|
||||
- name: Archive PDF
|
||||
uses: actions/upload-artifact@v3
|
||||
with:
|
||||
name: pgadmin4-pdf-build-output
|
||||
path: docs/en_US/_build/latex/pgadmin4.pdf
|
||||
@@ -1,30 +1,36 @@
|
||||
name: Check Javascript style
|
||||
|
||||
on:
|
||||
# Triggers the workflow on push or pull request events but only for the "master" branch
|
||||
push:
|
||||
branches: [ "master" ]
|
||||
pull_request:
|
||||
branches: [ "master" ]
|
||||
|
||||
# Allows you to run this workflow manually from the Actions tab
|
||||
workflow_dispatch:
|
||||
|
||||
concurrency:
|
||||
group: '${{ github.workflow }} @ ${{ github.event.pull_request.head.label || github.head_ref || github.ref }}'
|
||||
cancel-in-progress: true
|
||||
|
||||
# A workflow run is made up of one or more jobs that can run sequentially or in parallel
|
||||
jobs:
|
||||
# This workflow contains a single job called "build"
|
||||
build:
|
||||
# The type of runner that the job will run on
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
# Steps represent a sequence of tasks that will be executed as part of the job
|
||||
steps:
|
||||
# Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it
|
||||
- uses: actions/checkout@v3
|
||||
|
||||
# Run the tests
|
||||
- name: Install nodejs
|
||||
run: sudo apt install nodejs
|
||||
|
||||
- name: Install yarn
|
||||
run: sudo npm install --global yarn
|
||||
|
||||
- name: Install Node modules
|
||||
run: |
|
||||
cd web
|
||||
yarn install
|
||||
run: cd web && yarn install
|
||||
|
||||
- name: Run the linter
|
||||
run: |
|
||||
cd web
|
||||
yarn run linter
|
||||
run: cd web && yarn run linter
|
||||
@@ -1,39 +0,0 @@
|
||||
name: Check Python build
|
||||
|
||||
on:
|
||||
push:
|
||||
branches: [ "master" ]
|
||||
pull_request:
|
||||
branches: [ "master" ]
|
||||
|
||||
workflow_dispatch:
|
||||
|
||||
concurrency:
|
||||
group: '${{ github.workflow }} @ ${{ github.event.pull_request.head.label || github.head_ref || github.ref }}'
|
||||
cancel-in-progress: true
|
||||
|
||||
jobs:
|
||||
build:
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
|
||||
- name: Install platform dependencies
|
||||
run: |
|
||||
sudo apt update
|
||||
sudo apt install -y libpq-dev libffi-dev libssl-dev libkrb5-dev zlib1g-dev
|
||||
|
||||
- name: Install Python dependencies
|
||||
run: make install-python
|
||||
|
||||
- name: Check the Python wheel build
|
||||
run: |
|
||||
. venv/bin/activate
|
||||
make pip
|
||||
|
||||
- name: Archive Python wheel
|
||||
uses: actions/upload-artifact@v3
|
||||
with:
|
||||
name: pgadmin4-python-build-output
|
||||
path: dist/*
|
||||
@@ -1,28 +1,30 @@
|
||||
name: Check Python style
|
||||
|
||||
on:
|
||||
# Triggers the workflow on push or pull request events but only for the "master" branch
|
||||
push:
|
||||
branches: [ "master" ]
|
||||
pull_request:
|
||||
branches: [ "master" ]
|
||||
|
||||
# Allows you to run this workflow manually from the Actions tab
|
||||
workflow_dispatch:
|
||||
|
||||
concurrency:
|
||||
group: '${{ github.workflow }} @ ${{ github.event.pull_request.head.label || github.head_ref || github.ref }}'
|
||||
cancel-in-progress: true
|
||||
|
||||
# A workflow run is made up of one or more jobs that can run sequentially or in parallel
|
||||
jobs:
|
||||
# This workflow contains a single job called "build"
|
||||
build:
|
||||
# The type of runner that the job will run on
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
# Steps represent a sequence of tasks that will be executed as part of the job
|
||||
steps:
|
||||
# Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it
|
||||
- uses: actions/checkout@v3
|
||||
|
||||
- name: Install Python dependencies
|
||||
run: |
|
||||
sudo pip install --upgrade pip
|
||||
sudo pip install pycodestyle
|
||||
# Run the tests
|
||||
- name: Install pycodestyle
|
||||
run: pip install pycodestyle
|
||||
|
||||
- name: Check the documentation
|
||||
run: pycodestyle --config=.pycodestyle docs/
|
||||
@@ -34,4 +36,4 @@ jobs:
|
||||
run: pycodestyle --config=.pycodestyle web/
|
||||
|
||||
- name: Check the tools
|
||||
run: pycodestyle --config=.pycodestyle tools/
|
||||
run: pycodestyle --config=.pycodestyle tools/
|
||||
@@ -1,39 +0,0 @@
|
||||
name: Check tarball build
|
||||
|
||||
on:
|
||||
push:
|
||||
branches: [ "master" ]
|
||||
pull_request:
|
||||
branches: [ "master" ]
|
||||
|
||||
workflow_dispatch:
|
||||
|
||||
concurrency:
|
||||
group: '${{ github.workflow }} @ ${{ github.event.pull_request.head.label || github.head_ref || github.ref }}'
|
||||
cancel-in-progress: true
|
||||
|
||||
jobs:
|
||||
build:
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
|
||||
- name: Install platform dependencies
|
||||
run: |
|
||||
sudo apt update
|
||||
sudo apt install -y libpq-dev libffi-dev libssl-dev libkrb5-dev zlib1g-dev
|
||||
|
||||
- name: Install Python dependencies
|
||||
run: make install-python
|
||||
|
||||
- name: Check the tarball build
|
||||
run: |
|
||||
. venv/bin/activate
|
||||
make src
|
||||
|
||||
- name: Archive source tarball
|
||||
uses: actions/upload-artifact@v3
|
||||
with:
|
||||
name: pgadmin4-tarball-build-output
|
||||
path: dist/*
|
||||
@@ -1,34 +0,0 @@
|
||||
name: Check translations
|
||||
|
||||
on:
|
||||
push:
|
||||
branches: [ "master" ]
|
||||
pull_request:
|
||||
branches: [ "master" ]
|
||||
|
||||
workflow_dispatch:
|
||||
|
||||
concurrency:
|
||||
group: '${{ github.workflow }} @ ${{ github.event.pull_request.head.label || github.head_ref || github.ref }}'
|
||||
cancel-in-progress: true
|
||||
|
||||
jobs:
|
||||
build:
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
|
||||
- name: Install platform dependencies
|
||||
run: |
|
||||
sudo apt update
|
||||
sudo apt install -y python3-babel python3-jinja2
|
||||
|
||||
- name: Check we can extract messages
|
||||
run: make msg-extract
|
||||
|
||||
- name: Check we can update the catalogs
|
||||
run: make msg-update
|
||||
|
||||
- name: Check the catalogs will compile
|
||||
run: make msg-compile
|
||||
@@ -1,39 +0,0 @@
|
||||
name: Run Javascript tests
|
||||
|
||||
on:
|
||||
push:
|
||||
branches: [ "master" ]
|
||||
pull_request:
|
||||
branches: [ "master" ]
|
||||
|
||||
workflow_dispatch:
|
||||
|
||||
concurrency:
|
||||
group: '${{ github.workflow }} @ ${{ github.event.pull_request.head.label || github.head_ref || github.ref }}'
|
||||
cancel-in-progress: true
|
||||
|
||||
jobs:
|
||||
build:
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
os: [macos-latest, ubuntu-latest, windows-latest]
|
||||
|
||||
runs-on: ${{ matrix.os }}
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
|
||||
- name: Upgrade yarn
|
||||
run: |
|
||||
yarn set version berry
|
||||
|
||||
- name: Install Node modules
|
||||
run: |
|
||||
cd web
|
||||
yarn install
|
||||
|
||||
- name: Run the tests
|
||||
run: |
|
||||
cd web
|
||||
yarn run test:karma-once
|
||||
@@ -1,285 +0,0 @@
|
||||
# This workflow requires the following configuration in Github
|
||||
#
|
||||
# Vars:
|
||||
# ENABLE_EPAS_TESTS - Set to true to enable this test
|
||||
#
|
||||
# Secrets:
|
||||
# EDB_REPO_USERNAME - Username for accessing EDB Repos 1.0
|
||||
# EDB_REPO_PASSWORD - Password for accessing EDB Repos 1.0
|
||||
# EDB_SBP_URL - URL to the EDB StackBuilder Plus catalog
|
||||
|
||||
name: Run Python tests on EPAS
|
||||
|
||||
on:
|
||||
push:
|
||||
branches: [ "master" ]
|
||||
pull_request:
|
||||
branches: [ "master" ]
|
||||
|
||||
workflow_dispatch:
|
||||
|
||||
concurrency:
|
||||
group: '${{ github.workflow }} @ ${{ github.event.pull_request.head.label || github.head_ref || github.ref }}'
|
||||
cancel-in-progress: true
|
||||
|
||||
jobs:
|
||||
build:
|
||||
# Only run if the tests are enabled
|
||||
# TODO: Figure out a way to test for the presence of the secrets instead
|
||||
if: vars.ENABLE_EPAS_TESTS == 'true'
|
||||
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
os: [ubuntu-22.04, windows-latest]
|
||||
pgver: [11, 12, 13, 14, 15]
|
||||
|
||||
runs-on: ${{ matrix.os }}
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
|
||||
- name: Setup the EDB APT repo on Linux
|
||||
if: ${{ matrix.os == 'ubuntu-22.04' }}
|
||||
run: |
|
||||
sudo su -c 'echo "deb [arch=amd64] https://apt.enterprisedb.com/$(lsb_release -cs)-edb/ $(lsb_release -cs) main" > /etc/apt/sources.list.d/edb-$(lsb_release -cs).list'
|
||||
sudo su -c 'echo "machine apt.enterprisedb.com login ${{ secrets.EDB_REPO_USERNAME }} password ${{ secrets.EDB_REPO_PASSWORD }}" > /etc/apt/auth.conf.d/edb.conf'
|
||||
sudo wget -q -O - https://apt.enterprisedb.com/edb-deb.gpg.key | sudo apt-key add -
|
||||
|
||||
- name: Install platform dependencies on Linux
|
||||
if: ${{ matrix.os == 'ubuntu-22.04' }}
|
||||
run: |
|
||||
sudo apt update
|
||||
sudo apt install -y libpq-dev libffi-dev libssl-dev libkrb5-dev zlib1g-dev edb-as${{ matrix.pgver }}-server edb-as${{ matrix.pgver }}-server-pldebugger edb-as${{ matrix.pgver }}-pgagent
|
||||
|
||||
- name: Install platform dependencies on Windows
|
||||
if: ${{ matrix.os == 'windows-latest' }}
|
||||
run: |
|
||||
FOR /f "delims=" %%F IN ('python tools\get_sb_package.py "${{ secrets.EDB_SBP_URL }}" "edb_as${{ matrix.pgver }}_dbserver" "windows-x64"') DO SET INSTALLER_EXE=%%F
|
||||
ECHO Running %INSTALLER_EXE%...
|
||||
%INSTALLER_EXE% --prefix C:\EPAS\${{ matrix.pgver }} --datadir C:\EPAS\${{ matrix.pgver }}\data --serverport 58${{ matrix.pgver }} --superpassword enterprisedb --create_samples no --install_runtimes 0 --mode unattended --unattendedmodeui none --disable-components stackbuilderplus${{ matrix.pgver < 15 && ',pgadmin4' || '' }}
|
||||
|
||||
choco install -y mitkerberos
|
||||
|
||||
REM Ignore error 3010 (reboot required)
|
||||
IF %ERRORLEVEL% EQU 3010 cmd /c "exit /b 0"
|
||||
shell: cmd
|
||||
|
||||
- name: Create the tablespace directory on Linux
|
||||
if: ${{ matrix.os == 'ubuntu-22.04' }}
|
||||
run: |
|
||||
sudo mkdir -p /var/lib/edb-as/tablespaces/${{ matrix.pgver }}
|
||||
sudo chown enterprisedb:enterprisedb /var/lib/edb-as/tablespaces/${{ matrix.pgver }}
|
||||
|
||||
- name: Create the tablespace directory on Windows
|
||||
if: ${{ matrix.os == 'windows-latest' }}
|
||||
run: |
|
||||
mkdir "C:\EPAS\${{ matrix.pgver }}\tablespaces"
|
||||
icacls "C:\EPAS\${{ matrix.pgver }}\tablespaces" /grant "NETWORK SERVICE":(OI)(CI)F /T
|
||||
shell: cmd
|
||||
|
||||
- name: Start PostgreSQL on Linux
|
||||
if: ${{ matrix.os == 'ubuntu-22.04' }}
|
||||
run: |
|
||||
# Note: we use a custom port for PostgreSQL as the runner may already have a version of PostgreSQL installed
|
||||
sudo su -c "echo local all all trust > /etc/edb-as/${{ matrix.pgver }}/main/pg_hba.conf"
|
||||
sudo sed -i "s/port = 544[0-9]/port = 58${{ matrix.pgver }}/g" /etc/edb-as/${{ matrix.pgver }}/main/postgresql.conf
|
||||
sudo sed -i "s/shared_preload_libraries = '/shared_preload_libraries = '\$libdir\/plugin_debugger,/g" /etc/edb-as/${{ matrix.pgver }}/main/postgresql.conf
|
||||
sudo su - enterprisedb -c "mkdir -p /var/run/edb-as/${{ matrix.pgver }}-main.epas_stat_tmp"
|
||||
sudo systemctl restart edb-as@${{ matrix.pgver }}-main
|
||||
|
||||
until sudo runuser -l enterprisedb -c "/usr/lib/edb-as/${{ matrix.pgver }}/bin/pg_isready -p 58${{ matrix.pgver }}" 2>/dev/null; do
|
||||
>&2 echo "EPAS is unavailable - sleeping for 2 seconds"
|
||||
sleep 2
|
||||
done
|
||||
|
||||
psql -U enterprisedb -d postgres -p 58${{ matrix.pgver }} -c 'CREATE EXTENSION IF NOT EXISTS pgagent;'
|
||||
|
||||
- name: Install Python dependencies on Linux
|
||||
if: ${{ matrix.os == 'ubuntu-22.04' }}
|
||||
run: make install-python-testing
|
||||
|
||||
- name: Install Python dependencies on Windows
|
||||
if: ${{ matrix.os == 'windows-latest' }}
|
||||
run: |
|
||||
SET LIB=C:\EPAS\${{ matrix.pgver }}\lib;%LIB%
|
||||
SET INCLUDE=C:\EPAS\${{ matrix.pgver }}\include;%INCLUDE%
|
||||
python -m venv venv
|
||||
call venv\Scripts\activate.bat
|
||||
python -m pip install --upgrade pip
|
||||
pip install wheel sphinx sphinxcontrib-youtube -r web\regression\requirements.txt
|
||||
shell: cmd
|
||||
|
||||
- name: Create the test configuration on Linux
|
||||
if: ${{ matrix.os == 'ubuntu-22.04' }}
|
||||
run: |
|
||||
cat <<EOF > web/config_local.py
|
||||
from config import *
|
||||
|
||||
# Debug mode
|
||||
DEBUG = True
|
||||
|
||||
# App mode
|
||||
SERVER_MODE = False
|
||||
|
||||
# Log
|
||||
CONSOLE_LOG_LEVEL = DEBUG
|
||||
FILE_LOG_LEVEL = DEBUG
|
||||
|
||||
DEFAULT_SERVER = '127.0.0.1'
|
||||
|
||||
UPGRADE_CHECK_ENABLED = False
|
||||
|
||||
LOG_FILE = "$(pwd)/var/pgadmin4.log"
|
||||
SESSION_DB_PATH = "$(pwd)/var/sessions"
|
||||
STORAGE_DIR = "$(pwd)/var/storage"
|
||||
SQLITE_PATH = "$(pwd)/var/pgadmin4.db"
|
||||
TEST_SQLITE_PATH = "$(pwd)/var/pgadmin4.db"
|
||||
AZURE_CREDENTIAL_CACHE_DIR = "$(pwd)/var/azurecredentialcache"
|
||||
EOF
|
||||
|
||||
cat <<EOF > web/regression/test_config.json
|
||||
{
|
||||
"pgAdmin4_login_credentials": {
|
||||
"new_password": "NEWPASSWORD",
|
||||
"login_password": "PASSWORD",
|
||||
"login_username": "USER@EXAMPLE.COM"
|
||||
},
|
||||
"pgAdmin4_test_user_credentials": {
|
||||
"new_password": "NEWPASSWORD",
|
||||
"login_password": "PASSWORD",
|
||||
"login_username": "USER2@EXAMPLE.COM"
|
||||
},
|
||||
"pgAdmin4_test_non_admin_credentials": {
|
||||
"new_password": "NEWPASSWORD",
|
||||
"login_password": "PASSWORD",
|
||||
"login_username": "USER@EXAMPLE.COM"
|
||||
},
|
||||
"server_group": 1,
|
||||
"server_credentials": [
|
||||
{
|
||||
"name": "EPAS ${{ matrix.pgver }}",
|
||||
"comment": "EPAS ${{ matrix.pgver }} Server",
|
||||
"db_username": "enterprisedb",
|
||||
"host": "/var/run/edb-as",
|
||||
"db_password": "",
|
||||
"db_port": 58${{ matrix.pgver }},
|
||||
"maintenance_db": "postgres",
|
||||
"sslmode": "prefer",
|
||||
"tablespace_path": "/var/lib/edb-as/tablespaces/${{ matrix.pgver }}",
|
||||
"enabled": true,
|
||||
"default_binary_paths": {
|
||||
"pg": "",
|
||||
"ppas": "/usr/lib/edb-as/${{ matrix.pgver }}/bin"
|
||||
}
|
||||
}
|
||||
],
|
||||
"server_update_data": [
|
||||
{
|
||||
"comment": "This is test update comment"
|
||||
}
|
||||
]
|
||||
}
|
||||
EOF
|
||||
|
||||
- name: Create the test configuration on Windows
|
||||
if: ${{ matrix.os == 'windows-latest' }}
|
||||
run: |
|
||||
FOR /f "delims=" %%D IN ('python -c "import os; print(os.getcwd().replace('\\', '\\\\'))"') DO SET WORKING_DIR=%%D
|
||||
|
||||
> web\config_local.py (
|
||||
@echo.from config import *
|
||||
@echo.
|
||||
@echo.# Debug mode
|
||||
@echo.DEBUG = True
|
||||
@echo.
|
||||
@echo.# App mode
|
||||
@echo.SERVER_MODE = False
|
||||
@echo.
|
||||
@echo.# Log
|
||||
@echo.CONSOLE_LOG_LEVEL = DEBUG
|
||||
@echo.FILE_LOG_LEVEL = DEBUG
|
||||
@echo.
|
||||
@echo.DEFAULT_SERVER = '127.0.0.1'
|
||||
@echo.
|
||||
@echo.UPGRADE_CHECK_ENABLED = False
|
||||
@echo.
|
||||
@echo.LOG_FILE = "%WORKING_DIR%\\var\\pgadmin4.log"
|
||||
@echo.SESSION_DB_PATH = "%WORKING_DIR%\\var\\sessions"
|
||||
@echo.STORAGE_DIR = "%WORKING_DIR%\\var\\storage"
|
||||
@echo.SQLITE_PATH = "%WORKING_DIR%\\var\\pgadmin4.db"
|
||||
@echo.TEST_SQLITE_PATH = "%WORKING_DIR%\\var\\test_pgadmin4.db"
|
||||
@echo.AZURE_CREDENTIAL_CACHE_DIR = "%WORKING_DIR%\\var\\azurecredentialcache"
|
||||
)
|
||||
|
||||
> web\regression\test_config.json (
|
||||
@echo.{
|
||||
@echo. "pgAdmin4_login_credentials": {
|
||||
@echo. "new_password": "NEWPASSWORD",
|
||||
@echo. "login_password": "PASSWORD",
|
||||
@echo. "login_username": "USER@EXAMPLE.COM"
|
||||
@echo. },
|
||||
@echo. "pgAdmin4_test_user_credentials": {
|
||||
@echo. "new_password": "NEWPASSWORD",
|
||||
@echo. "login_password": "PASSWORD",
|
||||
@echo. "login_username": "USER2@EXAMPLE.COM"
|
||||
@echo. },
|
||||
@echo. "pgAdmin4_test_non_admin_credentials": {
|
||||
@echo. "new_password": "NEWPASSWORD",
|
||||
@echo. "login_password": "PASSWORD",
|
||||
@echo. "login_username": "USER@EXAMPLE.COM"
|
||||
@echo. },
|
||||
@echo. "server_group": 1,
|
||||
@echo. "server_credentials": [
|
||||
@echo. {
|
||||
@echo. "name": "EPAS ${{ matrix.pgver }}",
|
||||
@echo. "comment": "EPAS ${{ matrix.pgver }} Server",
|
||||
@echo. "db_username": "enterprisedb",
|
||||
@echo. "host": "127.0.0.1",
|
||||
@echo. "db_password": "enterprisedb",
|
||||
@echo. "db_port": 58${{ matrix.pgver }},
|
||||
@echo. "maintenance_db": "postgres",
|
||||
@echo. "sslmode": "prefer",
|
||||
@echo. "tablespace_path": "C:\\EPAS\\${{ matrix.pgver }}\\tablespaces",
|
||||
@echo. "enabled": true,
|
||||
@echo. "default_binary_paths": {
|
||||
@echo. "pg": "",
|
||||
@echo. "ppas": "C:\\EPAS\\${{ matrix.pgver }}\\bin"
|
||||
@echo. }
|
||||
@echo. }
|
||||
@echo. ],
|
||||
@echo. "server_update_data": [
|
||||
@echo. {
|
||||
@echo. "comment": "This is test update comment"
|
||||
@echo. }
|
||||
@echo. ]
|
||||
@echo.}
|
||||
)
|
||||
shell: cmd
|
||||
|
||||
- name: Run the tests on Linux
|
||||
if: ${{ matrix.os == 'ubuntu-22.04' }}
|
||||
run: |
|
||||
. venv/bin/activate
|
||||
make check-python
|
||||
|
||||
- name: Run the tests on Windows
|
||||
if: ${{ matrix.os == 'windows-latest' }}
|
||||
run: |
|
||||
call venv\Scripts\activate.bat
|
||||
python web\regression\runtests.py --exclude feature_tests
|
||||
shell: cmd
|
||||
|
||||
- name: Archive server log
|
||||
if: success() || failure()
|
||||
uses: actions/upload-artifact@v3
|
||||
with:
|
||||
name: server-log-epas${{ matrix.pgver }}
|
||||
path: var/pgadmin4.log
|
||||
|
||||
- name: Archive regression log
|
||||
if: success() || failure()
|
||||
uses: actions/upload-artifact@v3
|
||||
with:
|
||||
name: regression-log-epas${{ matrix.pgver }}
|
||||
path: web/regression/regression.log
|
||||
@@ -1,304 +0,0 @@
|
||||
name: Run Python tests on PostgreSQL
|
||||
|
||||
# Note: we use a custom port (and installation directory on Windows) for
|
||||
# PostgreSQL as the runners may already have a version installed.
|
||||
|
||||
on:
|
||||
push:
|
||||
branches: [ "master" ]
|
||||
pull_request:
|
||||
branches: [ "master" ]
|
||||
|
||||
workflow_dispatch:
|
||||
|
||||
concurrency:
|
||||
group: '${{ github.workflow }} @ ${{ github.event.pull_request.head.label || github.head_ref || github.ref }}'
|
||||
cancel-in-progress: true
|
||||
|
||||
jobs:
|
||||
build:
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
os: [macos-latest, ubuntu-latest, windows-latest]
|
||||
pgver: [11, 12, 13, 14, 15]
|
||||
|
||||
runs-on: ${{ matrix.os }}
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
|
||||
- name: Setup the PGDG APT repo on Linux
|
||||
if: ${{ matrix.os == 'ubuntu-latest' }}
|
||||
run: |
|
||||
sudo sh -c 'echo "deb https://apt.postgresql.org/pub/repos/apt $(lsb_release -cs)-pgdg main" > /etc/apt/sources.list.d/pgdg.list'
|
||||
wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add -
|
||||
|
||||
- name: Install platform dependencies on Linux
|
||||
if: ${{ matrix.os == 'ubuntu-latest' }}
|
||||
run: |
|
||||
sudo apt update
|
||||
sudo apt install -y libpq-dev libffi-dev libssl-dev libkrb5-dev zlib1g-dev postgresql-${{ matrix.pgver }} postgresql-${{ matrix.pgver }}-pldebugger pgagent
|
||||
|
||||
- name: Install platform dependencies on macOS
|
||||
if: ${{ matrix.os == 'macos-latest' }}
|
||||
run: |
|
||||
brew install postgresql@${{ matrix.pgver }}
|
||||
|
||||
- name: Uninstall PostgreSQL if already present
|
||||
if: ${{ matrix.os == 'windows-latest' }}
|
||||
run: |
|
||||
if exist "C:\Program Files\PostgreSQL\{{ matrix.pgver }}\uninstall-postgresql.exe" (
|
||||
"C:\Program Files\PostgreSQL\{{ matrix.pgver }}\uninstall-postgresql.exe" --mode unattended
|
||||
)
|
||||
reg delete "HKLM\SOFTWARE\PostgreSQL" /f
|
||||
shell: cmd
|
||||
|
||||
- name: Install platform dependencies on Windows
|
||||
if: ${{ matrix.os == 'windows-latest' }}
|
||||
run: |
|
||||
choco install -y postgresql${{ matrix.pgver }} --params "/Password:postgres /Port:59${{ matrix.pgver }}" --ia "--prefix C:\PostgreSQL\${{ matrix.pgver }} --datadir C:\PostgreSQL\${{ matrix.pgver }}\data --install_runtimes 0 --disable-components pgAdmin,stackbuilder --enable-components server,commandlinetools"
|
||||
choco install -y mitkerberos
|
||||
|
||||
REM Ignore error 3010 (reboot required)
|
||||
IF %ERRORLEVEL% EQU 3010 cmd /c "exit /b 0"
|
||||
shell: cmd
|
||||
|
||||
- name: Create the tablespace directory on Linux
|
||||
if: ${{ matrix.os == 'ubuntu-latest' }}
|
||||
run: |
|
||||
sudo mkdir -p /var/lib/postgresql/tablespaces/${{ matrix.pgver }}
|
||||
sudo chown postgres:postgres /var/lib/postgresql/tablespaces/${{ matrix.pgver }}
|
||||
|
||||
- name: Create the tablespace directory on macOS
|
||||
if: ${{ matrix.os == 'macos-latest' }}
|
||||
run: |
|
||||
mkdir -p /usr/local/var/tablespaces/${{ matrix.pgver }}
|
||||
|
||||
- name: Create the tablespace directory on Windows
|
||||
if: ${{ matrix.os == 'windows-latest' }}
|
||||
run: |
|
||||
mkdir "C:\PostgreSQL\${{ matrix.pgver }}\tablespaces"
|
||||
icacls "C:\PostgreSQL\${{ matrix.pgver }}\tablespaces" /grant "NETWORK SERVICE":(OI)(CI)F /T
|
||||
shell: cmd
|
||||
|
||||
- name: Start PostgreSQL on Linux
|
||||
if: ${{ matrix.os == 'ubuntu-latest' }}
|
||||
run: |
|
||||
sudo su -c "echo local all all trust > /etc/postgresql/${{ matrix.pgver }}/main/pg_hba.conf"
|
||||
sudo sed -i "s/port = 543[0-9]/port = 59${{ matrix.pgver }}/g" /etc/postgresql/${{ matrix.pgver }}/main/postgresql.conf
|
||||
sudo sed -i "s/#shared_preload_libraries = ''/shared_preload_libraries = '\$libdir\/plugin_debugger'/g" /etc/postgresql/${{ matrix.pgver }}/main/postgresql.conf
|
||||
sudo su - postgres -c "/usr/lib/postgresql/${{ matrix.pgver }}/bin/postgres -D /var/lib/postgresql/${{ matrix.pgver }}/main -c config_file=/etc/postgresql/${{ matrix.pgver }}/main/postgresql.conf &"
|
||||
|
||||
until sudo runuser -l postgres -c "pg_isready -p 59${{ matrix.pgver }}" 2>/dev/null; do
|
||||
>&2 echo "Postgres is unavailable - sleeping for 2 seconds"
|
||||
sleep 2
|
||||
done
|
||||
|
||||
psql -U postgres -p 59${{ matrix.pgver }} -c 'CREATE EXTENSION pgagent;'
|
||||
psql -U postgres -p 59${{ matrix.pgver }} -c 'CREATE EXTENSION pldbgapi;'
|
||||
|
||||
- name: Start PostgreSQL on macOS
|
||||
if: ${{ matrix.os == 'macos-latest' }}
|
||||
run: |
|
||||
echo local all all trust > /usr/local/var/postgresql@${{ matrix.pgver }}/pg_hba.conf
|
||||
sed -i '' "s/#port = 543[0-9]/port = 59${{ matrix.pgver }}/g" /usr/local/var/postgresql@${{ matrix.pgver }}/postgresql.conf
|
||||
brew services restart postgresql@${{ matrix.pgver }}
|
||||
|
||||
until /usr/local/opt/postgresql@${{ matrix.pgver }}/bin/pg_isready -p 59${{ matrix.pgver }} 2>/dev/null; do
|
||||
>&2 echo "Postgres is unavailable - sleeping for 2 seconds"
|
||||
sleep 2
|
||||
done
|
||||
|
||||
psql postgres -p 59${{ matrix.pgver }} -c 'CREATE ROLE postgres SUPERUSER LOGIN;'
|
||||
|
||||
- name: Install Python dependencies on Linux and macOS
|
||||
if: ${{ matrix.os == 'macos-latest' || matrix.os == 'ubuntu-latest' }}
|
||||
run: make install-python-testing
|
||||
|
||||
- name: Install Python dependencies on Windows
|
||||
if: ${{ matrix.os == 'windows-latest' }}
|
||||
run: |
|
||||
SET LIB=C:\PostgreSQL\${{ matrix.pgver }}\lib;%LIB%
|
||||
SET INCLUDE=C:\PostgreSQL\${{ matrix.pgver }}\include;%INCLUDE%
|
||||
python -m venv venv
|
||||
call venv\Scripts\activate.bat
|
||||
python -m pip install --upgrade pip
|
||||
pip install wheel sphinx sphinxcontrib-youtube -r web\regression\requirements.txt
|
||||
shell: cmd
|
||||
|
||||
- name: Create the test configuration on Linux and macOS
|
||||
if: ${{ matrix.os == 'macos-latest' || matrix.os == 'ubuntu-latest' }}
|
||||
run: |
|
||||
cat <<EOF > web/config_local.py
|
||||
from config import *
|
||||
|
||||
# Debug mode
|
||||
DEBUG = True
|
||||
|
||||
# App mode
|
||||
SERVER_MODE = False
|
||||
|
||||
# Log
|
||||
CONSOLE_LOG_LEVEL = DEBUG
|
||||
FILE_LOG_LEVEL = DEBUG
|
||||
|
||||
DEFAULT_SERVER = '127.0.0.1'
|
||||
|
||||
UPGRADE_CHECK_ENABLED = False
|
||||
|
||||
LOG_FILE = "$(pwd)/var/pgadmin4.log"
|
||||
SESSION_DB_PATH = "$(pwd)/var/sessions"
|
||||
STORAGE_DIR = "$(pwd)/var/storage"
|
||||
SQLITE_PATH = "$(pwd)/var/pgadmin4.db"
|
||||
TEST_SQLITE_PATH = "$(pwd)/var/pgadmin4.db"
|
||||
AZURE_CREDENTIAL_CACHE_DIR = "$(pwd)/var/azurecredentialcache"
|
||||
EOF
|
||||
|
||||
cat <<EOF > web/regression/test_config.json
|
||||
{
|
||||
"pgAdmin4_login_credentials": {
|
||||
"new_password": "NEWPASSWORD",
|
||||
"login_password": "PASSWORD",
|
||||
"login_username": "USER@EXAMPLE.COM"
|
||||
},
|
||||
"pgAdmin4_test_user_credentials": {
|
||||
"new_password": "NEWPASSWORD",
|
||||
"login_password": "PASSWORD",
|
||||
"login_username": "USER2@EXAMPLE.COM"
|
||||
},
|
||||
"pgAdmin4_test_non_admin_credentials": {
|
||||
"new_password": "NEWPASSWORD",
|
||||
"login_password": "PASSWORD",
|
||||
"login_username": "USER@EXAMPLE.COM"
|
||||
},
|
||||
"server_group": 1,
|
||||
"server_credentials": [
|
||||
{
|
||||
"name": "PostgreSQL ${{ matrix.pgver }}",
|
||||
"comment": "PostgreSQL ${{ matrix.pgver }} Server",
|
||||
"db_username": "postgres",
|
||||
"host": "${{ matrix.os == 'macos-latest' && '/tmp' || matrix.os == 'ubuntu-latest' && '/var/run/postgresql' || '127.0.0.1' }}",
|
||||
"db_password": "postgres",
|
||||
"db_port": 59${{ matrix.pgver }},
|
||||
"maintenance_db": "postgres",
|
||||
"sslmode": "prefer",
|
||||
"tablespace_path": "${{ matrix.os == 'macos-latest' && format('/usr/local/var/tablespaces/{0}', matrix.pgver) || format('/var/lib/postgresql/tablespaces/{0}', matrix.pgver) }}",
|
||||
"enabled": true,
|
||||
"default_binary_paths": {
|
||||
"pg": "${{ matrix.os == 'macos-latest' && format('/usr/local/opt/postgresql@{0}/bin', matrix.pgver) || format('/usr/lib/postgresql/{0}/bin', matrix.pgver) }}",
|
||||
"ppas": ""
|
||||
}
|
||||
}
|
||||
],
|
||||
"server_update_data": [
|
||||
{
|
||||
"comment": "This is test update comment"
|
||||
}
|
||||
]
|
||||
}
|
||||
EOF
|
||||
|
||||
- name: Create the test configuration on Windows
|
||||
if: ${{ matrix.os == 'windows-latest' }}
|
||||
run: |
|
||||
FOR /f "delims=" %%D IN ('python -c "import os; print(os.getcwd().replace('\\', '\\\\'))"') DO SET WORKING_DIR=%%D
|
||||
|
||||
> web\config_local.py (
|
||||
@echo.from config import *
|
||||
@echo.
|
||||
@echo.# Debug mode
|
||||
@echo.DEBUG = True
|
||||
@echo.
|
||||
@echo.# App mode
|
||||
@echo.SERVER_MODE = False
|
||||
@echo.
|
||||
@echo.# Log
|
||||
@echo.CONSOLE_LOG_LEVEL = DEBUG
|
||||
@echo.FILE_LOG_LEVEL = DEBUG
|
||||
@echo.
|
||||
@echo.DEFAULT_SERVER = '127.0.0.1'
|
||||
@echo.
|
||||
@echo.UPGRADE_CHECK_ENABLED = False
|
||||
@echo.
|
||||
@echo.LOG_FILE = "%WORKING_DIR%\\var\\pgadmin4.log"
|
||||
@echo.SESSION_DB_PATH = "%WORKING_DIR%\\var\\sessions"
|
||||
@echo.STORAGE_DIR = "%WORKING_DIR%\\var\\storage"
|
||||
@echo.SQLITE_PATH = "%WORKING_DIR%\\var\\pgadmin4.db"
|
||||
@echo.TEST_SQLITE_PATH = "%WORKING_DIR%\\var\\test_pgadmin4.db"
|
||||
@echo.AZURE_CREDENTIAL_CACHE_DIR = "%WORKING_DIR%\\var\\azurecredentialcache"
|
||||
)
|
||||
|
||||
> web\regression\test_config.json (
|
||||
@echo.{
|
||||
@echo. "pgAdmin4_login_credentials": {
|
||||
@echo. "new_password": "NEWPASSWORD",
|
||||
@echo. "login_password": "PASSWORD",
|
||||
@echo. "login_username": "USER@EXAMPLE.COM"
|
||||
@echo. },
|
||||
@echo. "pgAdmin4_test_user_credentials": {
|
||||
@echo. "new_password": "NEWPASSWORD",
|
||||
@echo. "login_password": "PASSWORD",
|
||||
@echo. "login_username": "USER2@EXAMPLE.COM"
|
||||
@echo. },
|
||||
@echo. "pgAdmin4_test_non_admin_credentials": {
|
||||
@echo. "new_password": "NEWPASSWORD",
|
||||
@echo. "login_password": "PASSWORD",
|
||||
@echo. "login_username": "USER@EXAMPLE.COM"
|
||||
@echo. },
|
||||
@echo. "server_group": 1,
|
||||
@echo. "server_credentials": [
|
||||
@echo. {
|
||||
@echo. "name": "PostgreSQL ${{ matrix.pgver }}",
|
||||
@echo. "comment": "PostgreSQL ${{ matrix.pgver }} Server",
|
||||
@echo. "db_username": "postgres",
|
||||
@echo. "host": "127.0.0.1",
|
||||
@echo. "db_password": "postgres",
|
||||
@echo. "db_port": 59${{ matrix.pgver }},
|
||||
@echo. "maintenance_db": "postgres",
|
||||
@echo. "sslmode": "prefer",
|
||||
@echo. "tablespace_path": "C:\\PostgreSQL\\${{ matrix.pgver }}\\tablespaces",
|
||||
@echo. "enabled": true,
|
||||
@echo. "default_binary_paths": {
|
||||
@echo. "pg": "C:\\PostgreSQL\\${{ matrix.pgver }}\\bin",
|
||||
@echo. "ppas": ""
|
||||
@echo. }
|
||||
@echo. }
|
||||
@echo. ],
|
||||
@echo. "server_update_data": [
|
||||
@echo. {
|
||||
@echo. "comment": "This is test update comment"
|
||||
@echo. }
|
||||
@echo. ]
|
||||
@echo.}
|
||||
)
|
||||
shell: cmd
|
||||
|
||||
- name: Run the tests on Linux and macOS
|
||||
if: ${{ matrix.os == 'macos-latest' || matrix.os == 'ubuntu-latest' }}
|
||||
run: |
|
||||
. venv/bin/activate
|
||||
make check-python
|
||||
|
||||
- name: Run the tests on Windows
|
||||
if: ${{ matrix.os == 'windows-latest' }}
|
||||
run: |
|
||||
call venv\Scripts\activate.bat
|
||||
python web\regression\runtests.py --exclude feature_tests
|
||||
shell: cmd
|
||||
|
||||
- name: Archive server log
|
||||
if: success() || failure()
|
||||
uses: actions/upload-artifact@v3
|
||||
with:
|
||||
name: server-log-${{ matrix.os }}-pg${{ matrix.pgver }}
|
||||
path: var/pgadmin4.log
|
||||
|
||||
- name: Archive regression log
|
||||
if: success() || failure()
|
||||
uses: actions/upload-artifact@v3
|
||||
with:
|
||||
name: regression-log-${{ matrix.os }}-pg${{ matrix.pgver }}
|
||||
path: web/regression/regression.log
|
||||
|
||||
|
||||
@@ -1,58 +0,0 @@
|
||||
# This workflow requires the following configuration in Github
|
||||
#
|
||||
# Variables:
|
||||
# SONARQUBE_PROJECT_KEY - The project key in SonarQube
|
||||
#
|
||||
# Secrets:
|
||||
# SONARQUBE_TOKEN - SonarQube API token
|
||||
# SONARQUBE_HOST - The URL of the SonarQube host
|
||||
|
||||
name: SonarQube scan
|
||||
|
||||
on:
|
||||
push:
|
||||
branches: [ "master" ]
|
||||
|
||||
concurrency:
|
||||
group: sonarqube
|
||||
cancel-in-progress: false
|
||||
|
||||
jobs:
|
||||
build:
|
||||
# Only run if the project key is set
|
||||
if: vars.SONARQUBE_PROJECT_KEY != null
|
||||
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
with:
|
||||
fetch-depth: 0
|
||||
|
||||
- name: Create the scan properties file
|
||||
run: |
|
||||
cat <<EOF > sonar-project.properties
|
||||
sonar.projectKey=${{ vars.SONARQUBE_PROJECT_KEY }}
|
||||
sonar.projectName=pgAdmin 4
|
||||
sonar.projectVersion=%VERSION%
|
||||
|
||||
# Ignore templates and SQL scripts as they confuse the scanner
|
||||
sonar.exclusions=**/templates/**/*, **/*.sql
|
||||
|
||||
# Let SonarQube know where tests can be found
|
||||
sonar.test.inclusions=**/tests/**, web/regression
|
||||
|
||||
# Python compatibility
|
||||
sonar.python.version=3.7, 3.8, 3.9, 3.10, 3.11
|
||||
EOF
|
||||
|
||||
APP_RELEASE=`grep "^APP_RELEASE" web/config.py | cut -d"=" -f2 | sed 's/ //g'`
|
||||
APP_REVISION=`grep "^APP_REVISION" web/config.py | cut -d"=" -f2 | sed 's/ //g'`
|
||||
APP_LONG_VERSION=${APP_RELEASE}.${APP_REVISION}
|
||||
sed -i "s/%VERSION%/${APP_LONG_VERSION}/g" sonar-project.properties
|
||||
|
||||
- name: SonarQube Scan
|
||||
uses: sonarsource/sonarqube-scan-action@master
|
||||
env:
|
||||
SONAR_TOKEN: ${{ secrets.SONARQUBE_TOKEN }}
|
||||
SONAR_HOST_URL: ${{ secrets.SONARQUBE_HOST }}
|
||||
@@ -9,7 +9,6 @@
|
||||
.DS_Store
|
||||
.idea
|
||||
.vscode
|
||||
.yarn
|
||||
/*.diff
|
||||
/*.patch
|
||||
/dist
|
||||
|
||||
@@ -12,136 +12,130 @@ Name Version
|
||||
---- ------- ------- ---
|
||||
Python 3.6+ PSF https://www.python.org/
|
||||
nw 0.50.2 MIT git://github.com/nwjs/npm-installer.git
|
||||
asynckit 0.4.0 MIT git+https://github.com/alexindigo/asynckit.git
|
||||
axios 1.3.5 MIT https://github.com/axios/axios.git
|
||||
axios 0.21.4 MIT https://github.com/axios/axios.git
|
||||
bootstrap 4.6.2 MIT git+https://github.com/twbs/bootstrap.git
|
||||
combined-stream 1.0.8 MIT git://github.com/felixge/node-combined-stream.git
|
||||
delayed-stream 1.0.0 MIT git://github.com/felixge/node-delayed-stream.git
|
||||
follow-redirects 1.15.2 MIT git@github.com:follow-redirects/follow-redirects.git
|
||||
form-data 4.0.0 MIT git://github.com/form-data/form-data.git
|
||||
mime-db 1.52.0 MIT https://github.com/jshttp/mime-db.git
|
||||
mime-types 2.1.35 MIT https://github.com/jshttp/mime-types.git
|
||||
proxy-from-env 1.1.0 MIT https://github.com/Rob--W/proxy-from-env.git
|
||||
|
||||
12 dependencies listed.
|
||||
5 dependencies listed.
|
||||
|
||||
Python Dependencies
|
||||
===================
|
||||
|
||||
Name Version Licence URL
|
||||
---- ------- ------- ---
|
||||
Flask 2.2.4 BSD-3-Clause https://palletsprojects.com/p/flask
|
||||
Flask 2.1.3 BSD-3-Clause https://palletsprojects.com/p/flask
|
||||
Flask-Gravatar 0.5.0 BSD https://github.com/zzzsochi/Flask-Gravatar/
|
||||
Flask-Login 0.6.2 MIT https://github.com/maxcountryman/flask-login
|
||||
Flask-Mail 0.9.1 BSD https://github.com/rduplain/flask-mail
|
||||
Flask-Migrate 4.0.4 MIT https://github.com/miguelgrinberg/flask-migrate
|
||||
Flask-SQLAlchemy 3.0.3 BSD-3-Clause Unknown
|
||||
Flask-WTF 1.1.1 BSD-3-Clause https://github.com/wtforms/flask-wtf/
|
||||
dnspython 2.2.1 ISC https://www.dnspython.org
|
||||
greenlet 1.1.2 MIT License https://greenlet.readthedocs.io/
|
||||
Flask-SQLAlchemy 2.5.1 BSD-3-Clause https://github.com/pallets/flask-sqlalchemy
|
||||
Flask-WTF 1.0.1 BSD-3-Clause https://github.com/wtforms/flask-wtf/
|
||||
Flask-Compress 1.13 MIT https://github.com/colour-science/flask-compress
|
||||
Flask-Paranoid 0.3.0 UNKNOWN https://github.com/miguelgrinberg/flask-paranoid
|
||||
flask-babel 3.1.0 BSD-3-Clause https://github.com/python-babel/flask-babel
|
||||
Flask-Security-Too 5.1.2 MIT https://github.com/Flask-Middleware/flask-security
|
||||
Flask-SocketIO 5.3.3 Unknown https://github.com/miguelgrinberg/flask-socketio
|
||||
Flask-Babel 2.0.0 BSD http://github.com/python-babel/flask-babel
|
||||
Flask-Security-Too 4.1.5 MIT https://github.com/Flask-Middleware/flask-security
|
||||
Flask-SocketIO 5.2.0 Unknown https://github.com/miguelgrinberg/flask-socketio
|
||||
WTForms 3.0.1 BSD-3-Clause https://wtforms.readthedocs.io/
|
||||
passlib 1.7.4 BSD https://passlib.readthedocs.io
|
||||
pytz 2023.3 MIT http://pythonhosted.org/pytz
|
||||
pytz 2021.3 MIT http://pythonhosted.org/pytz
|
||||
simplejson 3.18.3 MIT License https://github.com/simplejson/simplejson
|
||||
speaklater3 1.4 UNKNOWN https://github.com/ThomasWaldmann/speaklater
|
||||
sqlparse 0.4.4 Unknown Unknown
|
||||
psutil 5.9.5 BSD-3-Clause https://github.com/giampaolo/psutil
|
||||
psycopg 3.1.8 GNU Lesser General Public License v3 (LGPLv3) https://psycopg.org/psycopg3/
|
||||
sqlparse 0.4.3 BSD-3-Clause https://github.com/andialbrecht/sqlparse
|
||||
psutil 5.9.3 BSD-3-Clause https://github.com/giampaolo/psutil
|
||||
psycopg2 2.9.5 LGPL with exceptions https://psycopg.org/
|
||||
python-dateutil 2.8.2 Dual License https://github.com/dateutil/dateutil
|
||||
SQLAlchemy 2.0.11 MIT https://www.sqlalchemy.org
|
||||
bcrypt 4.0.1 Apache License, Version 2.0 https://github.com/pyca/bcrypt/
|
||||
cryptography 40.0.2 (Apache-2.0 OR BSD-3-Clause) AND PSF-2.0 https://github.com/pyca/cryptography
|
||||
SQLAlchemy 1.4.46 MIT https://www.sqlalchemy.org
|
||||
bcrypt 3.2.2 Apache License, Version 2.0 https://github.com/pyca/bcrypt/
|
||||
cryptography 3.4.8 BSD or Apache License, Version 2.0 https://github.com/pyca/cryptography
|
||||
sshtunnel 0.4.0 MIT https://github.com/pahaz/sshtunnel
|
||||
ldap3 2.9.1 LGPL v3 https://github.com/cannatag/ldap3
|
||||
gssapi 1.8.2 LICENSE.txt https://github.com/pythongssapi/python-gssapi
|
||||
eventlet 0.33.3 Unknown http://eventlet.net
|
||||
eventlet 0.33.0 UNKNOWN http://eventlet.net
|
||||
httpagentparser 1.9.5 http://www.opensource.org/licenses/mit-license.php https://github.com/shon/httpagentparser
|
||||
user-agents 2.2.0 MIT https://github.com/selwin/python-user-agents
|
||||
pywinpty 2.0.* Unknown Unknown
|
||||
Authlib 1.2.0 BSD 3-Clause License https://authlib.org/
|
||||
requests 2.28.2 Apache 2.0 https://requests.readthedocs.io
|
||||
pywinpty 1.1.* Unknown Unknown
|
||||
Authlib 1.1.0 BSD 3-Clause License https://authlib.org/
|
||||
requests 2.25.1 Apache 2.0 https://requests.readthedocs.io
|
||||
pyotp 2.8.0 MIT License https://github.com/pyotp/pyotp
|
||||
qrcode 7.4.2 BSD https://github.com/lincolnloop/python-qrcode
|
||||
Pillow 9.5.0 HPND https://python-pillow.org
|
||||
boto3 1.26.121 Apache License 2.0 https://github.com/boto/boto3
|
||||
botocore 1.29.121 Apache License 2.0 https://github.com/boto/botocore
|
||||
urllib3 1.26.15 MIT https://urllib3.readthedocs.io/
|
||||
Pillow 9.4.0 HPND https://python-pillow.org
|
||||
boto3 1.26.71 Apache License 2.0 https://github.com/boto/boto3
|
||||
botocore 1.29.71 Apache License 2.0 https://github.com/boto/botocore
|
||||
urllib3 1.26.14 MIT https://urllib3.readthedocs.io/
|
||||
Werkzeug 2.1.2 BSD-3-Clause https://palletsprojects.com/p/werkzeug/
|
||||
azure-mgmt-rdbms 10.1.0 MIT License https://github.com/Azure/azure-sdk-for-python
|
||||
azure-mgmt-resource 23.0.0 MIT License https://github.com/Azure/azure-sdk-for-python
|
||||
azure-mgmt-subscription 3.1.1 MIT License https://github.com/Azure/azure-sdk-for-python
|
||||
azure-identity 1.12.0 MIT License https://github.com/Azure/azure-sdk-for-python/tree/main/sdk/identity/azure-identity
|
||||
google-api-python-client 2.86.0 Apache 2.0 https://github.com/googleapis/google-api-python-client/
|
||||
google-auth-oauthlib 1.0.0 Apache 2.0 https://github.com/GoogleCloudPlatform/google-auth-library-python-oauthlib
|
||||
Werkzeug 2.2.3 BSD-3-Clause https://palletsprojects.com/p/werkzeug/
|
||||
azure-mgmt-resource 21.0.0 MIT License https://github.com/Azure/azure-sdk-for-python
|
||||
azure-mgmt-subscription 3.0.0 MIT License https://github.com/Azure/azure-sdk-for-python
|
||||
azure-identity 1.9.0 MIT License https://github.com/Azure/azure-sdk-for-python/tree/main/sdk/identity/azure-identity
|
||||
|
||||
NOTE: This report was generated using Python 3.11. Full information may not be
|
||||
NOTE: This report was generated using Python 3.10. Full information may not be
|
||||
shown for Python modules that are not required with this version.
|
||||
|
||||
45 dependencies listed.
|
||||
46 dependencies listed.
|
||||
|
||||
Javascript Dependencies
|
||||
=======================
|
||||
|
||||
Name Version Licence URL
|
||||
---- ------- ------- ---
|
||||
@ampproject/remapping 2.2.1 Apache-2.0 git+https://github.com/ampproject/remapping.git
|
||||
anti-trojan-source 1.4.1 Apache-2.0 https://github.com/lirantal/anti-trojan-source.git
|
||||
@ampproject/remapping 2.2.0 Apache-2.0 git+https://github.com/ampproject/remapping.git
|
||||
anti-trojan-source 1.4.0 Apache-2.0 https://github.com/lirantal/anti-trojan-source.git
|
||||
bootstrap-datepicker 1.9.0 Apache-2.0 https://github.com/uxsolutions/bootstrap-datepicker.git
|
||||
eve 0.5.4 Apache-2.0 git@github.com:adobe-webplatform/eve.git
|
||||
jmespath 0.16.0 Apache-2.0 git://github.com/jmespath/jmespath.js
|
||||
jsoneditor 9.10.0 Apache-2.0 https://github.com/josdejong/jsoneditor.git
|
||||
jsoneditor 9.9.2 Apache-2.0 https://github.com/josdejong/jsoneditor.git
|
||||
paths-js 0.4.11 Apache-2.0 https://github.com/andreaferretti/paths-js.git
|
||||
rc-dock 3.2.17 Apache-2.0 https://github.com/ticlo/rc-dock.git
|
||||
rc-dock 3.2.14 Apache-2.0 https://github.com/ticlo/rc-dock.git
|
||||
rc-new-window 0.1.13 Apache-2.0 https://github.com/ticlo/rc-new-window.git
|
||||
snapsvg 0.5.1 Apache-2.0 git@github.com:adobe-webplatform/Snap.svg.git
|
||||
spdx-correct 3.2.0 Apache-2.0 https://github.com/jslicense/spdx-correct.js.git
|
||||
spdx-correct 3.1.1 Apache-2.0 https://github.com/jslicense/spdx-correct.js.git
|
||||
validate-npm-package-license 3.0.4 Apache-2.0 https://github.com/kemitchell/validate-npm-package-license.js.git
|
||||
@babel/code-frame 7.21.4 MIT https://github.com/babel/babel.git
|
||||
@babel/compat-data 7.21.7 MIT https://github.com/babel/babel.git
|
||||
@babel/core 7.21.5 MIT https://github.com/babel/babel.git
|
||||
@babel/generator 7.21.5 MIT https://github.com/babel/babel.git
|
||||
@babel/code-frame 7.18.6 MIT https://github.com/babel/babel.git
|
||||
@babel/compat-data 7.20.1 MIT https://github.com/babel/babel.git
|
||||
@babel/core 7.20.2 MIT https://github.com/babel/babel.git
|
||||
@babel/generator 7.20.4 MIT https://github.com/babel/babel.git
|
||||
@babel/helper-annotate-as-pure 7.18.6 MIT https://github.com/babel/babel.git
|
||||
@babel/helper-compilation-targets 7.21.5 MIT https://github.com/babel/babel.git
|
||||
@babel/helper-create-class-features-plugin 7.21.5 MIT https://github.com/babel/babel.git
|
||||
@babel/helper-environment-visitor 7.21.5 MIT https://github.com/babel/babel.git
|
||||
@babel/helper-function-name 7.21.0 MIT https://github.com/babel/babel.git
|
||||
@babel/helper-compilation-targets 7.20.0 MIT https://github.com/babel/babel.git
|
||||
@babel/helper-create-class-features-plugin 7.20.2 MIT https://github.com/babel/babel.git
|
||||
@babel/helper-environment-visitor 7.18.9 MIT https://github.com/babel/babel.git
|
||||
@babel/helper-function-name 7.19.0 MIT https://github.com/babel/babel.git
|
||||
@babel/helper-hoist-variables 7.18.6 MIT https://github.com/babel/babel.git
|
||||
@babel/helper-member-expression-to-functions 7.21.5 MIT https://github.com/babel/babel.git
|
||||
@babel/helper-module-imports 7.21.4 MIT https://github.com/babel/babel.git
|
||||
@babel/helper-module-transforms 7.21.5 MIT https://github.com/babel/babel.git
|
||||
@babel/helper-member-expression-to-functions 7.18.9 MIT https://github.com/babel/babel.git
|
||||
@babel/helper-module-imports 7.18.6 MIT https://github.com/babel/babel.git
|
||||
@babel/helper-module-transforms 7.20.2 MIT https://github.com/babel/babel.git
|
||||
@babel/helper-optimise-call-expression 7.18.6 MIT https://github.com/babel/babel.git
|
||||
@babel/helper-plugin-utils 7.21.5 MIT https://github.com/babel/babel.git
|
||||
@babel/helper-replace-supers 7.21.5 MIT https://github.com/babel/babel.git
|
||||
@babel/helper-simple-access 7.21.5 MIT https://github.com/babel/babel.git
|
||||
@babel/helper-skip-transparent-expression-wrappers 7.20.0 MIT https://github.com/babel/babel.git
|
||||
@babel/helper-plugin-utils 7.20.2 MIT https://github.com/babel/babel.git
|
||||
@babel/helper-replace-supers 7.19.1 MIT https://github.com/babel/babel.git
|
||||
@babel/helper-simple-access 7.20.2 MIT https://github.com/babel/babel.git
|
||||
@babel/helper-split-export-declaration 7.18.6 MIT https://github.com/babel/babel.git
|
||||
@babel/helper-string-parser 7.21.5 MIT https://github.com/babel/babel.git
|
||||
@babel/helper-string-parser 7.19.4 MIT https://github.com/babel/babel.git
|
||||
@babel/helper-validator-identifier 7.19.1 MIT https://github.com/babel/babel.git
|
||||
@babel/helper-validator-option 7.21.0 MIT https://github.com/babel/babel.git
|
||||
@babel/helpers 7.21.5 MIT https://github.com/babel/babel.git
|
||||
@babel/helper-validator-option 7.18.6 MIT https://github.com/babel/babel.git
|
||||
@babel/helpers 7.20.1 MIT https://github.com/babel/babel.git
|
||||
@babel/highlight 7.18.6 MIT https://github.com/babel/babel.git
|
||||
@babel/parser 7.21.5 MIT https://github.com/babel/babel.git
|
||||
@babel/parser 7.20.3 MIT https://github.com/babel/babel.git
|
||||
@babel/plugin-proposal-class-properties 7.18.6 MIT https://github.com/babel/babel.git
|
||||
@babel/plugin-syntax-jsx 7.21.4 MIT https://github.com/babel/babel.git
|
||||
@babel/plugin-syntax-jsx 7.18.6 MIT https://github.com/babel/babel.git
|
||||
@babel/plugin-transform-react-display-name 7.18.6 MIT https://github.com/babel/babel.git
|
||||
@babel/plugin-transform-react-jsx 7.21.5 MIT https://github.com/babel/babel.git
|
||||
@babel/plugin-transform-react-jsx 7.19.0 MIT https://github.com/babel/babel.git
|
||||
@babel/plugin-transform-react-jsx-development 7.18.6 MIT https://github.com/babel/babel.git
|
||||
@babel/plugin-transform-react-pure-annotations 7.18.6 MIT https://github.com/babel/babel.git
|
||||
@babel/preset-react 7.18.6 MIT https://github.com/babel/babel.git
|
||||
@babel/runtime 7.21.5 MIT https://github.com/babel/babel.git
|
||||
@babel/template 7.20.7 MIT https://github.com/babel/babel.git
|
||||
@babel/traverse 7.21.5 MIT https://github.com/babel/babel.git
|
||||
@babel/types 7.21.5 MIT https://github.com/babel/babel.git
|
||||
@babel/runtime 7.20.1 MIT https://github.com/babel/babel.git
|
||||
@babel/template 7.18.10 MIT https://github.com/babel/babel.git
|
||||
@babel/traverse 7.20.1 MIT https://github.com/babel/babel.git
|
||||
@babel/types 7.20.2 MIT https://github.com/babel/babel.git
|
||||
@date-io/core 1.3.13 MIT https://github.com/dmtrKovalenko/date-io
|
||||
@date-io/date-fns 1.3.13 MIT https://github.com/dmtrKovalenko/date-io
|
||||
@emotion/babel-plugin 11.10.8 MIT https://github.com/emotion-js/emotion/tree/main/packages/babel-plugin
|
||||
@emotion/cache 11.10.8 MIT https://github.com/emotion-js/emotion/tree/main/packages/cache
|
||||
@emotion/babel-plugin 11.10.5 MIT https://github.com/emotion-js/emotion/tree/main/packages/babel-plugin
|
||||
@emotion/cache 11.10.5 MIT https://github.com/emotion-js/emotion/tree/main/packages/cache
|
||||
@emotion/hash 0.8.0 MIT https://github.com/emotion-js/emotion/tree/master/packages/hash
|
||||
@emotion/hash 0.9.0 MIT https://github.com/emotion-js/emotion/tree/main/packages/hash
|
||||
@emotion/is-prop-valid 1.2.0 MIT https://github.com/emotion-js/emotion/tree/main/packages/is-prop-valid
|
||||
@emotion/memoize 0.8.0 MIT https://github.com/emotion-js/emotion/tree/main/packages/memoize
|
||||
@emotion/react 11.10.8 MIT https://github.com/emotion-js/emotion/tree/main/packages/react
|
||||
@emotion/react 11.10.5 MIT https://github.com/emotion-js/emotion/tree/main/packages/react
|
||||
@emotion/serialize 1.1.1 MIT https://github.com/emotion-js/emotion/tree/main/packages/serialize
|
||||
@emotion/sheet 1.2.1 MIT https://github.com/emotion-js/emotion/tree/main/packages/sheet
|
||||
@emotion/stylis 0.8.5 MIT https://github.com/emotion-js/emotion/tree/master/packages/stylis
|
||||
@@ -150,15 +144,13 @@ validate-npm-package-license 3.0.4
|
||||
@emotion/use-insertion-effect-with-fallbacks 1.0.0 MIT https://github.com/emotion-js/emotion/tree/main/packages/use-insertion-effect-with-fallbacks
|
||||
@emotion/utils 1.2.0 MIT https://github.com/emotion-js/emotion/tree/main/packages/utils
|
||||
@emotion/weak-memoize 0.3.0 MIT https://github.com/emotion-js/emotion/tree/main/packages/weak-memoize
|
||||
@floating-ui/core 1.2.6 MIT https://github.com/floating-ui/floating-ui.git
|
||||
@floating-ui/dom 1.2.7 MIT https://github.com/floating-ui/floating-ui.git
|
||||
@istanbuljs/schema 0.1.3 MIT git+https://github.com/istanbuljs/schema.git
|
||||
@jridgewell/gen-mapping 0.3.3 MIT https://github.com/jridgewell/gen-mapping
|
||||
@jridgewell/gen-mapping 0.3.2 MIT https://github.com/jridgewell/gen-mapping
|
||||
@jridgewell/gen-mapping 0.1.1 MIT https://github.com/jridgewell/gen-mapping
|
||||
@jridgewell/resolve-uri 3.1.0 MIT https://github.com/jridgewell/resolve-uri
|
||||
@jridgewell/set-array 1.1.2 MIT https://github.com/jridgewell/set-array
|
||||
@jridgewell/sourcemap-codec 1.4.14 MIT git+https://github.com/jridgewell/sourcemap-codec.git
|
||||
@jridgewell/sourcemap-codec 1.4.15 MIT git+https://github.com/jridgewell/sourcemap-codec.git
|
||||
@jridgewell/trace-mapping 0.3.18 MIT git+https://github.com/jridgewell/trace-mapping.git
|
||||
@jridgewell/trace-mapping 0.3.17 MIT git+https://github.com/jridgewell/trace-mapping.git
|
||||
@material-ui/core 4.11.0 MIT https://github.com/mui-org/material-ui.git
|
||||
@material-ui/icons 4.11.3 MIT https://github.com/mui-org/material-ui.git
|
||||
@material-ui/lab 4.0.0-alpha.58 MIT https://github.com/mui-org/material-ui.git
|
||||
@@ -179,25 +171,24 @@ validate-npm-package-license 3.0.4
|
||||
@react-dnd/asap 5.0.2 MIT https://github.com/react-dnd/react-dnd
|
||||
@react-dnd/invariant 4.0.2 MIT https://github.com/react-dnd/react-dnd
|
||||
@react-dnd/shallowequal 4.0.2 MIT https://github.com/react-dnd/react-dnd
|
||||
@remix-run/router 1.6.0 MIT https://github.com/remix-run/react-router
|
||||
@remix-run/router 1.0.3 MIT https://github.com/remix-run/react-router
|
||||
@simonwep/pickr 1.8.2 MIT https://github.com/Simonwep/pickr.git
|
||||
@sindresorhus/is 0.7.0 MIT https://github.com/sindresorhus/is.git
|
||||
@socket.io/component-emitter 3.1.0 MIT https://github.com/socketio/emitter.git
|
||||
@szhsin/react-menu 2.3.4 MIT https://github.com/szhsin/react-menu.git
|
||||
@types/classnames 2.3.1 MIT Unknown
|
||||
@types/minimist 1.2.2 MIT https://github.com/DefinitelyTyped/DefinitelyTyped.git
|
||||
@types/node 18.16.3 MIT https://github.com/DefinitelyTyped/DefinitelyTyped.git
|
||||
@types/node 18.11.9 MIT https://github.com/DefinitelyTyped/DefinitelyTyped.git
|
||||
@types/normalize-package-data 2.4.1 MIT https://github.com/DefinitelyTyped/DefinitelyTyped.git
|
||||
@types/parse-json 4.0.0 MIT https://www.github.com/DefinitelyTyped/DefinitelyTyped.git
|
||||
@types/prop-types 15.7.5 MIT https://github.com/DefinitelyTyped/DefinitelyTyped.git
|
||||
@types/react 18.2.0 MIT https://github.com/DefinitelyTyped/DefinitelyTyped.git
|
||||
@types/react 16.14.40 MIT https://github.com/DefinitelyTyped/DefinitelyTyped.git
|
||||
@types/react 17.0.58 MIT https://github.com/DefinitelyTyped/DefinitelyTyped.git
|
||||
@types/react-dom 17.0.20 MIT https://github.com/DefinitelyTyped/DefinitelyTyped.git
|
||||
@types/react 18.0.25 MIT https://github.com/DefinitelyTyped/DefinitelyTyped.git
|
||||
@types/react 16.14.34 MIT https://github.com/DefinitelyTyped/DefinitelyTyped.git
|
||||
@types/react-dom 16.9.17 MIT https://github.com/DefinitelyTyped/DefinitelyTyped.git
|
||||
@types/react-transition-group 4.4.5 MIT https://github.com/DefinitelyTyped/DefinitelyTyped.git
|
||||
@types/scheduler 0.16.3 MIT https://github.com/DefinitelyTyped/DefinitelyTyped.git
|
||||
@types/scheduler 0.16.2 MIT https://github.com/DefinitelyTyped/DefinitelyTyped.git
|
||||
@types/styled-jsx 2.2.9 MIT https://github.com/DefinitelyTyped/DefinitelyTyped.git
|
||||
ajv 8.12.0 MIT https://github.com/ajv-validator/ajv.git
|
||||
ajv 8.11.2 MIT https://github.com/ajv-validator/ajv.git
|
||||
ajv 6.12.6 MIT https://github.com/ajv-validator/ajv.git
|
||||
ansi-styles 3.2.1 MIT https://github.com/chalk/ansi-styles.git
|
||||
array-union 3.0.1 MIT https://github.com/sindresorhus/array-union.git
|
||||
@@ -209,19 +200,20 @@ async 2.6.4
|
||||
attr-accept 2.2.2 MIT https://github.com/react-dropzone/attr-accept.git
|
||||
axios 0.21.4 MIT https://github.com/axios/axios.git
|
||||
babel-plugin-macros 3.1.0 MIT https://github.com/kentcdodds/babel-plugin-macros
|
||||
babel-plugin-styled-components 2.1.1 MIT https://github.com/styled-components/babel-plugin-styled-components.git
|
||||
babel-plugin-styled-components 2.0.7 MIT https://github.com/styled-components/babel-plugin-styled-components.git
|
||||
babel-plugin-syntax-jsx 6.18.0 MIT https://github.com/babel/babel/tree/master/packages/babel-plugin-syntax-jsx
|
||||
babelify 10.0.0 MIT https://github.com/babel/babelify.git
|
||||
balanced-match 1.0.2 MIT git://github.com/juliangruber/balanced-match.git
|
||||
base64-arraybuffer 1.0.2 MIT https://github.com/niklasvh/base64-arraybuffer
|
||||
bignumber.js 9.1.1 MIT https://github.com/MikeMcl/bignumber.js.git
|
||||
bignumber.js 9.1.0 MIT https://github.com/MikeMcl/bignumber.js.git
|
||||
bootstrap 4.6.2 MIT git+https://github.com/twbs/bootstrap.git
|
||||
bootstrap4-toggle 3.6.1 MIT https://github.com/gitbrent/bootstrap4-toggle.git
|
||||
bowser 2.11.0 MIT git+https://github.com/lancedikson/bowser.git
|
||||
brace 0.11.1 MIT git://github.com/thlorenz/brace.git
|
||||
brace-expansion 1.1.11 MIT git://github.com/juliangruber/brace-expansion.git
|
||||
braces 3.0.2 MIT https://github.com/micromatch/braces.git
|
||||
browserfs 1.4.3 MIT https://github.com/jvilk/BrowserFS.git
|
||||
browserslist 4.21.5 MIT https://github.com/browserslist/browserslist.git
|
||||
browserslist 4.21.4 MIT https://github.com/browserslist/browserslist.git
|
||||
callsites 3.1.0 MIT https://github.com/sindresorhus/callsites.git
|
||||
camelcase 6.3.0 MIT https://github.com/sindresorhus/camelcase.git
|
||||
camelcase-keys 7.0.2 MIT https://github.com/sindresorhus/camelcase-keys.git
|
||||
@@ -233,7 +225,7 @@ chartjs-plugin-zoom 1.3.0
|
||||
classnames 2.3.2 MIT https://github.com/JedWatson/classnames.git
|
||||
closest 0.0.1 MIT https://github.com/ForbesLindesay/closest.git
|
||||
clsx 1.2.1 MIT https://github.com/lukeed/clsx.git
|
||||
codemirror 5.65.13 MIT https://github.com/codemirror/CodeMirror.git
|
||||
codemirror 5.65.10 MIT https://github.com/codemirror/CodeMirror.git
|
||||
color-convert 1.9.3 MIT https://github.com/Qix-/color-convert.git
|
||||
color-name 1.1.3 MIT git@github.com:dfcreative/color-name.git
|
||||
colord 2.9.3 MIT https://github.com/omgovich/colord.git
|
||||
@@ -241,21 +233,21 @@ commander 7.2.0
|
||||
concat-map 0.0.1 MIT git://github.com/substack/node-concat-map.git
|
||||
convert-source-map 1.9.0 MIT git://github.com/thlorenz/convert-source-map.git
|
||||
convert-units 2.3.4 MIT git://github.com/ben-ng/convert-units.git
|
||||
core-js 3.30.1 MIT https://github.com/zloirock/core-js.git
|
||||
core-js 3.26.1 MIT https://github.com/zloirock/core-js.git
|
||||
cosmiconfig 7.1.0 MIT git+https://github.com/davidtheclark/cosmiconfig.git
|
||||
css-line-break 2.1.0 MIT git+ssh://git@github.com/niklasvh/css-line-break.git
|
||||
css-to-react-native 3.2.0 MIT git+https://github.com/styled-components/css-to-react-native.git
|
||||
css-to-react-native 3.0.0 MIT git+https://github.com/styled-components/css-to-react-native.git
|
||||
css-tree 1.1.3 MIT https://github.com/csstree/csstree.git
|
||||
css-vendor 2.0.8 MIT git@github.com:cssinjs/css-vendor.git
|
||||
cssesc 3.0.0 MIT https://github.com/mathiasbynens/cssesc.git
|
||||
cssnano 5.1.15 MIT https://github.com/cssnano/cssnano.git
|
||||
cssnano-preset-default 5.2.14 MIT https://github.com/cssnano/cssnano.git
|
||||
cssnano 5.1.14 MIT https://github.com/cssnano/cssnano.git
|
||||
cssnano-preset-default 5.2.13 MIT https://github.com/cssnano/cssnano.git
|
||||
cssnano-utils 3.1.0 MIT https://github.com/cssnano/cssnano.git
|
||||
csso 4.2.0 MIT https://github.com/css/csso.git
|
||||
csstype 2.6.21 MIT https://github.com/frenic/csstype
|
||||
csstype 3.1.2 MIT https://github.com/frenic/csstype
|
||||
csstype 3.1.1 MIT https://github.com/frenic/csstype
|
||||
dagre 0.8.5 MIT https://github.com/dagrejs/dagre.git
|
||||
date-fns 2.30.0 MIT https://github.com/date-fns/date-fns
|
||||
date-fns 2.29.3 MIT https://github.com/date-fns/date-fns
|
||||
debug 4.3.4 MIT git://github.com/debug-js/debug.git
|
||||
decamelize 5.0.1 MIT https://github.com/sindresorhus/decamelize.git
|
||||
decamelize 1.2.0 MIT https://github.com/sindresorhus/decamelize.git
|
||||
@@ -267,8 +259,8 @@ dnd-core 16.0.1
|
||||
dom-align 1.12.4 MIT git@github.com:yiminghe/dom-align.git
|
||||
dom-helpers 5.2.1 MIT git+https://github.com/react-bootstrap/dom-helpers.git
|
||||
dom-serializer 1.4.1 MIT git://github.com/cheeriojs/dom-renderer.git
|
||||
engine.io-client 6.4.0 MIT https://github.com/socketio/engine.io-client.git
|
||||
engine.io-parser 5.0.6 MIT git@github.com:socketio/engine.io-parser.git
|
||||
engine.io-client 6.2.3 MIT https://github.com/socketio/engine.io-client.git
|
||||
engine.io-parser 5.0.4 MIT git@github.com:socketio/engine.io-parser.git
|
||||
error-ex 1.3.2 MIT https://github.com/qix-/node-error-ex.git
|
||||
escalade 3.1.1 MIT https://github.com/lukeed/escalade.git
|
||||
escape-string-regexp 1.0.5 MIT https://github.com/sindresorhus/escape-string-regexp.git
|
||||
@@ -295,15 +287,15 @@ has-flag 3.0.0
|
||||
has-flag 4.0.0 MIT https://github.com/sindresorhus/has-flag.git
|
||||
html-escaper 2.0.2 MIT https://github.com/WebReflection/html-escaper.git
|
||||
html2canvas 1.4.1 MIT git@github.com:niklasvh/html2canvas.git
|
||||
ignore 5.2.4 MIT git@github.com:kaelzhang/node-ignore.git
|
||||
ignore 5.2.1 MIT git@github.com:kaelzhang/node-ignore.git
|
||||
immutability-helper 3.1.1 MIT git+https://github.com/kolodny/immutability-helper.git
|
||||
import-fresh 3.3.0 MIT https://github.com/sindresorhus/import-fresh.git
|
||||
indent-string 5.0.0 MIT https://github.com/sindresorhus/indent-string.git
|
||||
insert-if 1.2.0 MIT git+https://github.com/chipto/insert-if.git
|
||||
ip-address 7.1.0 MIT git://github.com/beaugunderson/ip-address.git
|
||||
is-any-array 2.0.1 MIT https://github.com/cheminfo-js/is-any-array.git
|
||||
is-any-array 2.0.0 MIT https://github.com/cheminfo-js/is-any-array.git
|
||||
is-arrayish 0.2.1 MIT https://github.com/qix-/node-is-arrayish.git
|
||||
is-core-module 2.12.0 MIT git+https://github.com/inspect-js/is-core-module.git
|
||||
is-core-module 2.11.0 MIT git+https://github.com/inspect-js/is-core-module.git
|
||||
is-extglob 2.1.1 MIT https://github.com/jonschlinkert/is-extglob.git
|
||||
is-glob 4.0.3 MIT https://github.com/micromatch/is-glob.git
|
||||
is-in-browser 1.1.3 MIT git+https://github.com/tuxsudo/is-in-browser.git
|
||||
@@ -312,7 +304,7 @@ is-plain-obj 1.1.0
|
||||
is-relative 1.0.0 MIT https://github.com/jonschlinkert/is-relative.git
|
||||
is-unc-path 1.0.0 MIT https://github.com/jonschlinkert/is-unc-path.git
|
||||
javascript-natural-sort 0.7.1 MIT https://github.com/Bill4Time/javascript-natural-sort.git
|
||||
jquery 3.6.4 MIT https://github.com/jquery/jquery.git
|
||||
jquery 3.6.1 MIT https://github.com/jquery/jquery.git
|
||||
jquery-contextmenu 2.9.2 MIT git://github.com/swisnl/jQuery-contextMenu.git
|
||||
js-tokens 4.0.0 MIT https://github.com/lydell/js-tokens.git
|
||||
jsbn 1.1.0 MIT https://github.com/andyperlitch/jsbn.git
|
||||
@@ -323,17 +315,17 @@ json-schema-traverse 1.0.0
|
||||
json-schema-traverse 0.4.1 MIT git+https://github.com/epoberezkin/json-schema-traverse.git
|
||||
json-source-map 0.6.1 MIT git+https://github.com/epoberezkin/json-source-map.git
|
||||
json5 2.2.3 MIT git+https://github.com/json5/json5.git
|
||||
jss 10.10.0 MIT https://github.com/cssinjs/jss.git
|
||||
jss-plugin-camel-case 10.10.0 MIT https://github.com/cssinjs/jss.git
|
||||
jss-plugin-default-unit 10.10.0 MIT https://github.com/cssinjs/jss.git
|
||||
jss-plugin-global 10.10.0 MIT https://github.com/cssinjs/jss.git
|
||||
jss-plugin-nested 10.10.0 MIT https://github.com/cssinjs/jss.git
|
||||
jss-plugin-props-sort 10.10.0 MIT https://github.com/cssinjs/jss.git
|
||||
jss-plugin-rule-value-function 10.10.0 MIT https://github.com/cssinjs/jss.git
|
||||
jss-plugin-vendor-prefixer 10.10.0 MIT https://github.com/cssinjs/jss.git
|
||||
jss 10.9.2 MIT https://github.com/cssinjs/jss.git
|
||||
jss-plugin-camel-case 10.9.2 MIT https://github.com/cssinjs/jss.git
|
||||
jss-plugin-default-unit 10.9.2 MIT https://github.com/cssinjs/jss.git
|
||||
jss-plugin-global 10.9.2 MIT https://github.com/cssinjs/jss.git
|
||||
jss-plugin-nested 10.9.2 MIT https://github.com/cssinjs/jss.git
|
||||
jss-plugin-props-sort 10.9.2 MIT https://github.com/cssinjs/jss.git
|
||||
jss-plugin-rule-value-function 10.9.2 MIT https://github.com/cssinjs/jss.git
|
||||
jss-plugin-vendor-prefixer 10.9.2 MIT https://github.com/cssinjs/jss.git
|
||||
karma-coverage 2.2.0 MIT git://github.com/karma-runner/karma-coverage.git
|
||||
kind-of 6.0.3 MIT https://github.com/jonschlinkert/kind-of.git
|
||||
lilconfig 2.1.0 MIT https://github.com/antonk52/lilconfig
|
||||
lilconfig 2.0.6 MIT https://github.com/antonk52/lilconfig
|
||||
lines-and-columns 1.2.4 MIT https://github.com/eventualbuddha/lines-and-columns.git
|
||||
locate-path 6.0.0 MIT https://github.com/sindresorhus/locate-path.git
|
||||
lodash 4.17.21 MIT https://github.com/lodash/lodash.git
|
||||
@@ -360,11 +352,10 @@ lodash.support 2.3.0
|
||||
lodash.uniq 4.5.0 MIT https://github.com/lodash/lodash.git
|
||||
loose-envify 1.4.0 MIT git://github.com/zertosh/loose-envify.git
|
||||
make-dir 3.1.0 MIT https://github.com/sindresorhus/make-dir.git
|
||||
map-obj 1.0.1 MIT https://github.com/sindresorhus/map-obj.git
|
||||
map-obj 4.3.0 MIT https://github.com/sindresorhus/map-obj.git
|
||||
map-obj 1.0.1 MIT https://github.com/sindresorhus/map-obj.git
|
||||
matches-selector 0.0.1 MIT https://github.com/ForbesLindesay/matches-selector.git
|
||||
memoize-one 5.2.1 MIT https://github.com/alexreardon/memoize-one.git
|
||||
memoize-one 6.0.0 MIT https://github.com/alexreardon/memoize-one.git
|
||||
meow 10.1.5 MIT https://github.com/sindresorhus/meow.git
|
||||
merge2 1.4.1 MIT git@github.com:teambition/merge2.git
|
||||
micromatch 4.0.5 MIT https://github.com/micromatch/micromatch.git
|
||||
@@ -376,11 +367,11 @@ ml-array-rescale 1.3.7
|
||||
ml-matrix 6.10.4 MIT https://github.com/mljs/matrix.git
|
||||
mobius1-selectr 2.4.13 MIT git+https://github.com/Mobius1/Selectr.git
|
||||
moment 2.29.4 MIT https://github.com/moment/moment.git
|
||||
moment-timezone 0.5.43 MIT https://github.com/moment/moment-timezone.git
|
||||
moment-timezone 0.5.39 MIT https://github.com/moment/moment-timezone.git
|
||||
ms 2.1.2 MIT https://github.com/zeit/ms.git
|
||||
nanoid 3.3.6 MIT https://github.com/ai/nanoid.git
|
||||
nanopop 2.3.0 MIT https://github.com/Simonwep/nanopop.git
|
||||
node-releases 2.0.10 MIT https://github.com/chicoxyzzy/node-releases.git
|
||||
nanoid 3.3.4 MIT https://github.com/ai/nanoid.git
|
||||
nanopop 2.2.0 MIT https://github.com/Simonwep/nanopop.git
|
||||
node-releases 2.0.6 MIT https://github.com/chicoxyzzy/node-releases.git
|
||||
normalize-url 6.1.0 MIT https://github.com/sindresorhus/normalize-url.git
|
||||
notificar 1.0.1 MIT git+https://github.com/neeksandhu/notificar.git
|
||||
notistack 1.0.10 MIT git+https://github.com/iamhosseindhv/notistack.git
|
||||
@@ -401,16 +392,16 @@ picomatch 2.3.1
|
||||
picomodal 3.0.0 MIT https://github.com/Nycto/PicoModal.git
|
||||
popper.js 1.16.1-lts MIT git+https://github.com/FezVrasta/popper.js.git
|
||||
popper.js 1.16.1 MIT git+https://github.com/FezVrasta/popper.js.git
|
||||
postcss 8.4.23 MIT https://github.com/postcss/postcss.git
|
||||
postcss 8.4.19 MIT https://github.com/postcss/postcss.git
|
||||
postcss-calc 8.2.4 MIT https://github.com/postcss/postcss-calc.git
|
||||
postcss-colormin 5.3.1 MIT https://github.com/cssnano/cssnano.git
|
||||
postcss-colormin 5.3.0 MIT https://github.com/cssnano/cssnano.git
|
||||
postcss-convert-values 5.1.3 MIT https://github.com/cssnano/cssnano.git
|
||||
postcss-discard-comments 5.1.2 MIT https://github.com/cssnano/cssnano.git
|
||||
postcss-discard-duplicates 5.1.0 MIT https://github.com/cssnano/cssnano.git
|
||||
postcss-discard-empty 5.1.1 MIT https://github.com/cssnano/cssnano.git
|
||||
postcss-discard-overridden 5.1.0 MIT https://github.com/cssnano/cssnano.git
|
||||
postcss-merge-longhand 5.1.7 MIT https://github.com/cssnano/cssnano.git
|
||||
postcss-merge-rules 5.1.4 MIT https://github.com/cssnano/cssnano.git
|
||||
postcss-merge-rules 5.1.3 MIT https://github.com/cssnano/cssnano.git
|
||||
postcss-minify-font-values 5.1.0 MIT https://github.com/cssnano/cssnano.git
|
||||
postcss-minify-gradients 5.1.1 MIT https://github.com/cssnano/cssnano.git
|
||||
postcss-minify-params 5.1.4 MIT https://github.com/cssnano/cssnano.git
|
||||
@@ -425,28 +416,28 @@ postcss-normalize-unicode 5.1.1
|
||||
postcss-normalize-url 5.1.0 MIT https://github.com/cssnano/cssnano.git
|
||||
postcss-normalize-whitespace 5.1.1 MIT https://github.com/cssnano/cssnano.git
|
||||
postcss-ordered-values 5.1.3 MIT https://github.com/cssnano/cssnano.git
|
||||
postcss-reduce-initial 5.1.2 MIT https://github.com/cssnano/cssnano.git
|
||||
postcss-reduce-initial 5.1.1 MIT https://github.com/cssnano/cssnano.git
|
||||
postcss-reduce-transforms 5.1.0 MIT https://github.com/cssnano/cssnano.git
|
||||
postcss-selector-parser 6.0.12 MIT https://github.com/postcss/postcss-selector-parser.git
|
||||
postcss-selector-parser 6.0.11 MIT https://github.com/postcss/postcss-selector-parser.git
|
||||
postcss-svgo 5.1.0 MIT https://github.com/cssnano/cssnano.git
|
||||
postcss-unique-selectors 5.1.1 MIT https://github.com/cssnano/cssnano.git
|
||||
postcss-value-parser 4.2.0 MIT https://github.com/TrySound/postcss-value-parser.git
|
||||
prop-types 15.8.1 MIT https://github.com/facebook/prop-types.git
|
||||
punycode 2.3.0 MIT https://github.com/mathiasbynens/punycode.js.git
|
||||
punycode 2.1.1 MIT https://github.com/bestiejs/punycode.js.git
|
||||
queue-microtask 1.2.3 MIT git://github.com/feross/queue-microtask.git
|
||||
quick-lru 5.1.1 MIT https://github.com/sindresorhus/quick-lru.git
|
||||
raf 3.4.1 MIT git://github.com/chrisdickinson/raf.git
|
||||
rc-align 4.0.15 MIT git@github.com:react-component/align.git
|
||||
rc-align 4.0.12 MIT git@github.com:react-component/align.git
|
||||
rc-dropdown 3.6.2 MIT git@github.com:react-component/dropdown.git
|
||||
rc-dropdown 4.0.1 MIT git@github.com:react-component/dropdown.git
|
||||
rc-menu 9.8.4 MIT git@github.com:react-component/menu.git
|
||||
rc-menu 9.8.0 MIT git@github.com:react-component/menu.git
|
||||
rc-menu 9.6.4 MIT git@github.com:react-component/menu.git
|
||||
rc-motion 2.7.3 MIT git@github.com:react-component/motion.git
|
||||
rc-overflow 1.3.0 MIT git@github.com:react-component/overflow.git
|
||||
rc-resize-observer 1.3.1 MIT git@github.com:react-component/resize-observer.git
|
||||
rc-motion 2.6.2 MIT git@github.com:react-component/motion.git
|
||||
rc-overflow 1.2.8 MIT git@github.com:react-component/overflow.git
|
||||
rc-resize-observer 1.2.0 MIT git@github.com:react-component/resize-observer.git
|
||||
rc-tabs 11.16.1 MIT git@github.com:react-component/tabs.git
|
||||
rc-trigger 5.3.4 MIT https://github.com/react-component/trigger.git
|
||||
rc-util 5.30.0 MIT git@github.com:react-component/util.git
|
||||
rc-util 5.24.6 MIT git@github.com:react-component/util.git
|
||||
re-resizable 6.9.6 MIT https://github.com/bokuweb/react-resizable-box.git
|
||||
react 17.0.2 MIT https://github.com/facebook/react.git
|
||||
react-aspen 1.2.0 MIT https://github.com/neeksandhu/react-aspen.git
|
||||
@@ -456,63 +447,66 @@ react-dnd 16.0.1
|
||||
react-dnd-html5-backend 16.0.1 MIT https://github.com/react-dnd/react-dnd.git
|
||||
react-dom 17.0.2 MIT https://github.com/facebook/react.git
|
||||
react-draggable 4.4.5 MIT https://github.com/react-grid-layout/react-draggable.git
|
||||
react-draggable 4.4.4 MIT https://github.com/react-grid-layout/react-draggable.git
|
||||
react-dropzone 14.2.3 MIT https://github.com/react-dropzone/react-dropzone.git
|
||||
react-input-autosize 3.0.0 MIT https://github.com/JedWatson/react-input-autosize.git
|
||||
react-is 16.13.1 MIT https://github.com/facebook/react.git
|
||||
react-is 17.0.2 MIT https://github.com/facebook/react.git
|
||||
react-resize-detector 9.1.0 MIT git+https://github.com/maslianok/react-resize-detector.git
|
||||
react-rnd 10.4.1 MIT https://github.com/bokuweb/react-rnd.git
|
||||
react-router 6.11.0 MIT https://github.com/remix-run/react-router
|
||||
react-router-dom 6.11.0 MIT https://github.com/remix-run/react-router
|
||||
react-select 5.7.2 MIT https://github.com/JedWatson/react-select/tree/master/packages/react-select
|
||||
react-resize-detector 8.0.3 MIT git+https://github.com/maslianok/react-resize-detector.git
|
||||
react-rnd 10.3.7 MIT https://github.com/bokuweb/react-rnd.git
|
||||
react-router 6.4.3 MIT https://github.com/remix-run/react-router
|
||||
react-router-dom 6.4.3 MIT https://github.com/remix-run/react-router
|
||||
react-select 4.3.1 MIT https://github.com/JedWatson/react-select/tree/master/packages/react-select
|
||||
react-table 7.8.0 MIT https://github.com/tannerlinsley/react-table
|
||||
react-transition-state 1.1.5 MIT https://github.com/szhsin/react-transition-state.git
|
||||
react-virtualized-auto-sizer 1.0.15 MIT https://github.com/bvaughn/react-virtualized-auto-sizer.git
|
||||
react-window 1.8.9 MIT https://github.com/bvaughn/react-window.git
|
||||
react-virtualized-auto-sizer 1.0.7 MIT https://github.com/bvaughn/react-virtualized-auto-sizer.git
|
||||
react-window 1.8.8 MIT https://github.com/bvaughn/react-window.git
|
||||
read-pkg 6.0.0 MIT https://github.com/sindresorhus/read-pkg.git
|
||||
read-pkg-up 8.0.0 MIT https://github.com/sindresorhus/read-pkg-up.git
|
||||
redent 4.0.0 MIT https://github.com/sindresorhus/redent.git
|
||||
redux 4.2.1 MIT https://github.com/reduxjs/redux.git
|
||||
redux 4.2.0 MIT https://github.com/reduxjs/redux.git
|
||||
regenerator-runtime 0.13.11 MIT https://github.com/facebook/regenerator/tree/main/packages/runtime
|
||||
require-from-string 2.0.2 MIT https://github.com/floatdrop/require-from-string.git
|
||||
resize-observer-polyfill 1.5.1 MIT https://github.com/que-etc/resize-observer-polyfill.git
|
||||
resolve 1.22.2 MIT git://github.com/browserify/resolve.git
|
||||
resolve 1.22.1 MIT git://github.com/browserify/resolve.git
|
||||
resolve-from 4.0.0 MIT https://github.com/sindresorhus/resolve-from.git
|
||||
reusify 1.0.4 MIT git+https://github.com/mcollina/reusify.git
|
||||
rifm 0.7.0 MIT https://github.com/istarkov/rifm.git
|
||||
run-parallel 1.2.0 MIT git://github.com/feross/run-parallel.git
|
||||
scheduler 0.20.2 MIT https://github.com/facebook/react.git
|
||||
select2 4.0.13 MIT git://github.com/select2/select2.git
|
||||
shallowequal 1.1.0 MIT https://github.com/dashed/shallowequal.git
|
||||
slash 4.0.0 MIT https://github.com/sindresorhus/slash.git
|
||||
snapsvg-cjs 0.0.6 MIT git+https://github.com/geelen/Snap.svg-cjs.git
|
||||
socket.io-client 4.6.1 MIT https://github.com/socketio/socket.io-client.git
|
||||
socket.io-parser 4.2.2 MIT https://github.com/socketio/socket.io-parser.git
|
||||
socket.io-client 4.5.4 MIT https://github.com/socketio/socket.io-client.git
|
||||
socket.io-parser 4.2.1 MIT https://github.com/socketio/socket.io-parser.git
|
||||
spdx-expression-parse 3.0.1 MIT https://github.com/jslicense/spdx-expression-parse.js.git
|
||||
split.js 1.6.5 MIT https://github.com/nathancahill/split
|
||||
stable 0.1.8 MIT https://github.com/Two-Screen/stable.git
|
||||
strip-indent 4.0.0 MIT https://github.com/sindresorhus/strip-indent.git
|
||||
styled-components 5.3.10 MIT git+https://github.com/styled-components/styled-components.git
|
||||
styled-components 5.3.6 MIT git+https://github.com/styled-components/styled-components.git
|
||||
stylehacks 5.1.1 MIT https://github.com/cssnano/cssnano.git
|
||||
stylis 4.1.4 MIT https://github.com/thysultan/stylis.js
|
||||
stylis 4.1.3 MIT https://github.com/thysultan/stylis.js
|
||||
supports-color 5.5.0 MIT https://github.com/chalk/supports-color.git
|
||||
supports-color 7.2.0 MIT https://github.com/chalk/supports-color.git
|
||||
supports-preserve-symlinks-flag 1.0.0 MIT git+https://github.com/inspect-js/node-supports-preserve-symlinks-flag.git
|
||||
svgo 2.8.0 MIT git://github.com/svg/svgo.git
|
||||
tempusdominus-bootstrap-4 5.39.2 MIT https://github.com/tempusdominus/bootstrap-4.git
|
||||
tempusdominus-core 5.19.3 MIT https://github.com/tempusdominus/core.git
|
||||
text-segmentation 1.0.3 MIT git+ssh://git@github.com/niklasvh/text-segmentation.git
|
||||
tiny-warning 1.0.3 MIT https://github.com/alexreardon/tiny-warning.git
|
||||
to-fast-properties 2.0.0 MIT https://github.com/sindresorhus/to-fast-properties.git
|
||||
to-regex-range 5.0.1 MIT https://github.com/micromatch/to-regex-range.git
|
||||
trim-newlines 4.1.1 MIT https://github.com/sindresorhus/trim-newlines.git
|
||||
trim-newlines 4.0.2 MIT https://github.com/sindresorhus/trim-newlines.git
|
||||
unc-path-regex 0.1.2 MIT https://github.com/regexhq/unc-path-regex.git
|
||||
update-browserslist-db 1.0.11 MIT https://github.com/browserslist/update-db.git
|
||||
update-browserslist-db 1.0.10 MIT https://github.com/browserslist/update-db.git
|
||||
uplot 1.6.24 MIT git+https://github.com/leeoniya/uPlot.git
|
||||
uplot-react 1.1.4 MIT https://github.com/skalinichev/uplot-wrappers.git
|
||||
use-isomorphic-layout-effect 1.1.2 MIT git+https://github.com/Andarist/use-isomorphic-layout-effect.git
|
||||
util-deprecate 1.0.2 MIT git://github.com/TooTallNate/util-deprecate.git
|
||||
utrie 1.0.2 MIT git+ssh://git@github.com/niklasvh/utrie.git
|
||||
valid-filename 2.0.1 MIT https://github.com/sindresorhus/valid-filename.git
|
||||
wkx 0.5.0 MIT http://github.com/cschwarz/wkx.git
|
||||
ws 8.11.0 MIT https://github.com/websockets/ws.git
|
||||
ws 8.2.3 MIT https://github.com/websockets/ws.git
|
||||
xmlhttprequest-ssl 2.0.0 MIT git://github.com/mjwwit/node-XMLHttpRequest.git
|
||||
xterm 4.19.0 MIT https://github.com/xtermjs/xterm.js
|
||||
xterm-addon-fit 0.5.0 MIT https://github.com/xtermjs/xterm.js
|
||||
@@ -526,25 +520,23 @@ react-leaflet 3.2.5
|
||||
@trysound/sax 0.2.0 ISC git://github.com/svg/sax.git
|
||||
boolbase 1.0.0 ISC https://github.com/fb55/boolbase
|
||||
css-color-keywords 1.0.0 ISC https://github.com/sonicdoe/css-color-keywords.git
|
||||
css-declaration-sorter 6.4.0 ISC https://github.com/Siilwyn/css-declaration-sorter.git
|
||||
electron-to-chromium 1.4.377 ISC https://github.com/kilian/electron-to-chromium/
|
||||
fastq 1.15.0 ISC git+https://github.com/mcollina/fastq.git
|
||||
css-declaration-sorter 6.3.1 ISC https://github.com/Siilwyn/css-declaration-sorter.git
|
||||
electron-to-chromium 1.4.284 ISC https://github.com/kilian/electron-to-chromium/
|
||||
fastq 1.13.0 ISC git+https://github.com/mcollina/fastq.git
|
||||
glob-parent 5.1.2 ISC https://github.com/gulpjs/glob-parent.git
|
||||
hosted-git-info 4.1.0 ISC git+https://github.com/npm/hosted-git-info.git
|
||||
jsonrepair 3.0.3 ISC https://github.com/josdejong/jsonrepair.git
|
||||
jsonrepair 2.2.1 ISC https://github.com/josdejong/jsonrepair.git
|
||||
lru-cache 6.0.0 ISC git://github.com/isaacs/node-lru-cache.git
|
||||
lru-cache 5.1.1 ISC git://github.com/isaacs/node-lru-cache.git
|
||||
minimatch 3.1.2 ISC git://github.com/isaacs/minimatch.git
|
||||
picocolors 1.0.0 ISC https://github.com/alexeyraspopov/picocolors.git
|
||||
react-timer-hook 3.0.5 ISC git+https://github.com/amrlabib/react-timer-hook.git
|
||||
semver 7.3.8 ISC https://github.com/npm/node-semver.git
|
||||
semver 6.3.0 ISC https://github.com/npm/node-semver
|
||||
semver 7.5.0 ISC https://github.com/npm/node-semver.git
|
||||
vanilla-picker 2.12.1 ISC https://github.com/Sphinxxxx/vanilla-picker.git
|
||||
yallist 4.0.0 ISC git+https://github.com/isaacs/yallist.git
|
||||
yallist 3.1.1 ISC git+https://github.com/isaacs/yallist.git
|
||||
yaml 1.10.2 ISC https://github.com/eemeli/yaml.git
|
||||
yargs-parser 20.2.9 ISC https://github.com/yargs/yargs-parser.git
|
||||
ace-builds 1.18.0 BSD-3-Clause https://github.com/ajaxorg/ace-builds.git
|
||||
ace-builds 1.13.1 BSD-3-Clause https://github.com/ajaxorg/ace-builds.git
|
||||
hoist-non-react-statics 3.3.2 BSD-3-Clause git://github.com/mridgway/hoist-non-react-statics.git
|
||||
hyphenate-style-name 1.0.4 BSD-3-Clause git+ssh://git@github.com/rexxars/hyphenate-style-name.git
|
||||
istanbul-lib-coverage 3.2.0 BSD-3-Clause git+ssh://git@github.com/istanbuljs/istanbuljs.git
|
||||
@@ -557,7 +549,7 @@ source-map 0.6.1
|
||||
source-map 0.5.7 BSD-3-Clause http://github.com/mozilla/source-map.git
|
||||
source-map-js 1.0.2 BSD-3-Clause https://github.com/7rulnik/source-map-js.git
|
||||
sprintf-js 1.1.2 BSD-3-Clause https://github.com/alexei/sprintf.js.git
|
||||
caniuse-lite 1.0.30001481 CC-BY-4.0 https://github.com/browserslist/caniuse-lite.git
|
||||
caniuse-lite 1.0.30001434 CC-BY-4.0 https://github.com/browserslist/caniuse-lite.git
|
||||
css-select 4.3.0 BSD-2-Clause git://github.com/fb55/css-select.git
|
||||
css-what 6.1.0 BSD-2-Clause https://github.com/fb55/css-what
|
||||
domelementtype 2.3.0 BSD-2-Clause git://github.com/fb55/domelementtype.git
|
||||
@@ -571,14 +563,14 @@ uri-js 4.4.1
|
||||
FileSaver 0.10.0 UNKNOWN Unknown
|
||||
heap 0.2.5 UNKNOWN git://github.com/qiao/heap.js.git
|
||||
mdn-data 2.0.14 CC0-1.0 https://github.com/mdn/data.git
|
||||
spdx-license-ids 3.0.13 CC0-1.0 https://github.com/jslicense/spdx-license-ids.git
|
||||
spdx-license-ids 3.0.12 CC0-1.0 https://github.com/jslicense/spdx-license-ids.git
|
||||
mousetrap 1.6.5 Apache-2.0 WITH LLVM-exception git://github.com/ccampbell/mousetrap.git
|
||||
pako 1.0.11 (MIT AND Zlib) https://github.com/nodeca/pako.git
|
||||
spdx-exceptions 2.3.0 CC-BY-3.0 https://github.com/kemitchell/spdx-exceptions.json.git
|
||||
tslib 2.5.0 0BSD https://github.com/Microsoft/tslib.git
|
||||
tslib 2.4.1 0BSD https://github.com/Microsoft/tslib.git
|
||||
tslib 2.3.1 0BSD https://github.com/Microsoft/tslib.git
|
||||
type-fest 1.4.0 (MIT OR CC0-1.0) https://github.com/sindresorhus/type-fest.git
|
||||
webcabin-docker 2.2.5 MIT* Unknown
|
||||
|
||||
493 dependencies listed.
|
||||
491 dependencies listed.
|
||||
|
||||
@@ -27,7 +27,6 @@ RUN apk add --no-cache \
|
||||
make \
|
||||
nasm \
|
||||
nodejs \
|
||||
npm \
|
||||
yarn \
|
||||
zlib-dev
|
||||
|
||||
@@ -46,7 +45,6 @@ WORKDIR /pgadmin4/web
|
||||
|
||||
# Build the JS vendor code in the app-builder, and then remove the vendor source.
|
||||
RUN export CPPFLAGS="-DPNG_ARM_NEON_OPT=0" && \
|
||||
yarn set version berry && \
|
||||
yarn install && \
|
||||
yarn run bundle && \
|
||||
rm -rf node_modules \
|
||||
|
||||
@@ -274,13 +274,14 @@ REM Main build sequence Ends
|
||||
REM YARN END
|
||||
|
||||
REM WGET
|
||||
REM Comment out the below for loop as the latest version having
|
||||
REM some problem to launch on CentOS 7, so for
|
||||
REM the time being hardcoded the version to 0.72.0
|
||||
REM FOR /f "tokens=2 delims='" %%i IN ('yarn info nw ^| findstr "latest: "') DO SET "NW_VERSION=%%i"
|
||||
REM :GET_NW
|
||||
REM wget https://dl.nwjs.io/v%NW_VERSION%/nwjs-v%NW_VERSION%-win-x64.zip -O "%TMPDIR%\nwjs-v%NW_VERSION%-win-x64.zip"
|
||||
REM IF %ERRORLEVEL% NEQ 0 GOTO GET_NW
|
||||
REM wget https://dl.nwjs.io/v%NW_VERSION%/nwjs-v%NW_VERSION%-win-x64.zip -O "%TMPDIR%\nwjs-v%NW_VERSION%-win-x64.zip"
|
||||
REM IF %ERRORLEVEL% NEQ 0 GOTO GET_NW
|
||||
|
||||
REM Remove the above commented code once below issue is fixed
|
||||
REM Pining NWjs because of https://github.com/nwjs/nw.js/issues/8039 in 0.74.0
|
||||
SET "NW_VERSION=0.72.0"
|
||||
wget https://dl.nwjs.io/v%NW_VERSION%/nwjs-v%NW_VERSION%-win-x64.zip -O "%TMPDIR%\nwjs-v%NW_VERSION%-win-x64.zip"
|
||||
|
||||
|
||||
@@ -18,19 +18,13 @@ APP_REVISION := $(shell grep ^APP_REVISION web/config.py | awk -F"=" '{print $$N
|
||||
#########################################################################
|
||||
|
||||
# Include only platform-independent builds in all
|
||||
all: docs pip src
|
||||
all: docs pip src runtime
|
||||
|
||||
appbundle:
|
||||
./pkg/mac/build.sh
|
||||
|
||||
install-node:
|
||||
cd web && yarn install
|
||||
|
||||
install-python:
|
||||
./tools/setup-python-env.sh
|
||||
|
||||
install-python-testing:
|
||||
./tools/setup-python-env.sh --test
|
||||
cd web && yarn install && npm rebuild
|
||||
|
||||
bundle:
|
||||
cd web && yarn run bundle
|
||||
@@ -82,13 +76,23 @@ check-js: install-node linter
|
||||
check-js-coverage:
|
||||
cd web && yarn run test:karma-coverage
|
||||
|
||||
runtime-debug:
|
||||
cd runtime && qmake CONFIG+=debug && make
|
||||
|
||||
runtime:
|
||||
cd runtime && qmake CONFIG+=release && make
|
||||
|
||||
# Include all clean sub-targets in clean
|
||||
clean: clean-appbundle clean-debian clean-dist clean-docs clean-node clean-pip clean-redhat clean-src
|
||||
clean: clean-appbundle clean-debian clean-dist clean-docs clean-node clean-pip clean-redhat clean-src clean-runtime
|
||||
rm -rf web/pgadmin/static/js/generated/*
|
||||
rm -rf web/pgadmin/static/js/generated/.cache
|
||||
rm -rf web/pgadmin/static/css/generated/*
|
||||
rm -rf web/pgadmin/static/css/generated/.cache
|
||||
|
||||
clean-runtime:
|
||||
if [ -f runtime/Makefile ]; then (cd runtime && make clean); fi;
|
||||
rm -rf build-*
|
||||
|
||||
clean-appbundle:
|
||||
rm -rf mac-build/
|
||||
|
||||
|
||||
@@ -48,7 +48,7 @@ node_modules/nw/nwjs/nwjs.app/Contents/MacOS/nwjs .
|
||||
# Configuring the Python Environment
|
||||
|
||||
In order to run the Python code, a suitable runtime environment is required.
|
||||
Python version 3.7 and later are currently supported. It is recommended that a
|
||||
Python version 3.6 and later are currently supported. It is recommended that a
|
||||
Python Virtual Environment is setup for this purpose, rather than using the
|
||||
system Python environment. On Linux and Mac systems, the process is fairly
|
||||
simple - adapt as required for your distribution:
|
||||
@@ -74,7 +74,7 @@ simple - adapt as required for your distribution:
|
||||
```
|
||||
|
||||
4. Ensure that a PostgreSQL installation's bin/ directory is in the path (so
|
||||
pg_config can be found for building psycopg3), and install the required
|
||||
pg_config can be found for building psycopg2), and install the required
|
||||
packages:
|
||||
|
||||
```bash
|
||||
|
||||
@@ -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.
|
||||
|
Before Width: | Height: | Size: 97 KiB |
@@ -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,7 +6,7 @@
|
||||
|
||||
To deploy a PostgreSQL server on the EDB BigAnimal cloud, follow the below steps.
|
||||
|
||||
.. image:: images/cloud_provider_for_postgresql.png
|
||||
.. image:: images/cloud_biganimal_provider.png
|
||||
:alt: Cloud Deployment Provider
|
||||
:align: center
|
||||
|
||||
@@ -27,13 +27,12 @@ and the next button will be enabled. To proceed further, click on the next butto
|
||||
:alt: Cloud Deployment Provider
|
||||
:align: center
|
||||
|
||||
* Use the *Project* field to choose a project in your Biganimal account.
|
||||
|
||||
* Use the *Cluster type* field to choose a cluster type.
|
||||
|
||||
* Use the *No. of Standby Replicas* field to specify the replicas if you have selected the High Availability cluster.
|
||||
|
||||
* Use the *Cluster provider* field to choose the provider.
|
||||
* Use the *Cluster provider* field to coose the provider.
|
||||
|
||||
|
||||
.. image:: images/cloud_biganimal_instance.png
|
||||
@@ -44,7 +43,8 @@ Use the fields from the Instance Specification tab to specify the Instance
|
||||
details.
|
||||
|
||||
* Use the *Cluster name* field to add a cluster name for the PostgreSQL
|
||||
server; the name specified will be displayed in the *Object Explorer* too.
|
||||
server; the name specified will be displayed in the *Browser* tree control
|
||||
too.
|
||||
|
||||
* Use the *Region* field to select the region.
|
||||
|
||||
@@ -74,8 +74,8 @@ details.
|
||||
Use the fields from the Database Details tab to specify the Instance details.
|
||||
|
||||
* Use the drop-down list box in the *Server group* field to select the parent
|
||||
node for the server; the server will be displayed in the *Object Explorer*
|
||||
within the specified group.
|
||||
node for the server; the server will be displayed in the *Browser* tree
|
||||
control within the specified group.
|
||||
|
||||
* Use the *Database type* field to specify the PostgreSQL
|
||||
type, EnterpriseDB PostgreSQL Advanced Server or PostgreSQL.
|
||||
|
||||
@@ -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
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -12,7 +12,7 @@ The Entity-Relationship Diagram (ERD) tool is a database design tool that provid
|
||||
* Save the diagram and open it later to continue working on it.
|
||||
* Generate ready to run SQL from the database design.
|
||||
* Generate the database diagram for an existing database.
|
||||
* Drag and drop tables from object explorer to the diagram.
|
||||
* Drag and drop tables from browser tree to the diagram.
|
||||
|
||||
.. image:: images/erd_tool.png
|
||||
:alt: ERD tool window
|
||||
|
||||
|
After Width: | Height: | Size: 43 KiB |
|
After Width: | Height: | Size: 45 KiB |
|
After Width: | Height: | Size: 68 KiB |
|
Before Width: | Height: | Size: 119 KiB |
|
Before Width: | Height: | Size: 95 KiB |
|
Before Width: | Height: | Size: 56 KiB |
|
Before Width: | Height: | Size: 119 KiB |
|
Before Width: | Height: | Size: 135 KiB |
|
Before Width: | Height: | Size: 151 KiB |
|
Before Width: | Height: | Size: 86 KiB |
|
Before Width: | Height: | Size: 116 KiB |
|
Before Width: | Height: | Size: 184 KiB After Width: | Height: | Size: 108 KiB |
|
Before Width: | Height: | Size: 179 KiB After Width: | Height: | Size: 114 KiB |
|
Before Width: | Height: | Size: 123 KiB After Width: | Height: | Size: 77 KiB |
|
Before Width: | Height: | Size: 91 KiB |
|
Before Width: | Height: | Size: 98 KiB After Width: | Height: | Size: 57 KiB |
|
Before Width: | Height: | Size: 217 KiB After Width: | Height: | Size: 132 KiB |
|
Before Width: | Height: | Size: 184 KiB After Width: | Height: | Size: 92 KiB |
|
Before Width: | Height: | Size: 17 KiB After Width: | Height: | Size: 13 KiB |
|
Before Width: | Height: | Size: 113 KiB |
|
Before Width: | Height: | Size: 6.0 KiB |
|
Before Width: | Height: | Size: 124 KiB After Width: | Height: | Size: 67 KiB |
@@ -20,7 +20,7 @@ Use the fields in the *General* tab to specify import and export preferences:
|
||||
server should import data to a table from a file. The default is *Import*.
|
||||
|
||||
* Enter the name of the source or target file in the *Filename* field.
|
||||
Optionally, select the *Browse* icon (ellipsis) to the right to navigate
|
||||
Optionally, select the *Browser* icon (ellipsis) to the right to navigate
|
||||
into a directory and select a file.
|
||||
|
||||
* Use the drop-down listbox in the *Format* field to specify the file type.
|
||||
|
||||
@@ -20,7 +20,7 @@ When using main browser window, the following keyboard shortcuts are available:
|
||||
+============================+=======================================================+
|
||||
| Shift+Ctrl+a | Add grid row |
|
||||
+----------------------------+-------------------------------------------------------+
|
||||
| Shift+Alt+b | Object explorer |
|
||||
| Shift+Alt+b | Browser tree |
|
||||
+----------------------------+-------------------------------------------------------+
|
||||
| Shift+Alt+n | Create object |
|
||||
+----------------------------+-------------------------------------------------------+
|
||||
@@ -50,7 +50,7 @@ When using main browser window, the following keyboard shortcuts are available:
|
||||
+----------------------------+-------------------------------------------------------+
|
||||
| Shift+Ctrl+f | Quick Search |
|
||||
+----------------------------+-------------------------------------------------------+
|
||||
| F5 | Refresh object explorer |
|
||||
| F5 | Refresh browser tree |
|
||||
+----------------------------+-------------------------------------------------------+
|
||||
| Shift+Alt+s | Search objects |
|
||||
+----------------------------+-------------------------------------------------------+
|
||||
|
||||
@@ -31,7 +31,7 @@ Use the fields on the *Display* panel to specify general display preferences:
|
||||
be automatically expanded if a treeview node is expanded and has only a single
|
||||
child.
|
||||
|
||||
* Use the *Object explorer state saving interval* field to set the treeview state
|
||||
* Use the *Browser tree state saving interval* field to set the treeview state
|
||||
saving interval. A value of *-1* will disable the treeview state saving
|
||||
functionality.
|
||||
|
||||
@@ -44,7 +44,7 @@ Use the fields on the *Display* panel to specify general display preferences:
|
||||
them to continue.
|
||||
|
||||
* When the *Hide shared servers?* switch is set to *True*, the client will hide
|
||||
all the shared servers from the object explorer.
|
||||
all the shared servers from the browser tree.
|
||||
|
||||
* Use the *Lock layout* field to lock the UI layout at different levels. This
|
||||
can also be changed from File menu on the :ref:`menu bar <menu_bar>`
|
||||
@@ -88,30 +88,6 @@ displayed in the *Browser* tree control:
|
||||
catalogs, you can reduce the number of object types displayed to increase
|
||||
speed.
|
||||
|
||||
Use the fields on the *Object Breadcrumbs* panel to change object breadcrumbs
|
||||
related settings:
|
||||
|
||||
.. image:: images/preferences_browser_breadcrumbs.png
|
||||
:alt: Preferences dialog object breadcrumbs section
|
||||
:align: center
|
||||
|
||||
* Use *Enable object breadcrumbs?* to enable or disable object breadcrumbs
|
||||
displayed on on object mouse hover.
|
||||
|
||||
* Use *Show comment with object breadcrumbs?* to enable or disable the
|
||||
comment visibility which comes displayed with object breadcrumbs.
|
||||
|
||||
|
||||
Use the fields on the *Processes* panel to change processes tab
|
||||
related settings:
|
||||
|
||||
.. image:: images/preferences_browser_processes.png
|
||||
:alt: Preferences dialog processes section
|
||||
:align: center
|
||||
|
||||
* Change *Process details/logs retention days* to the number of days,
|
||||
the process info and logs will be automatically cleared.
|
||||
|
||||
Use fields on the *Properties* panel to specify browser properties:
|
||||
|
||||
.. image:: images/preferences_browser_properties.png
|
||||
@@ -464,9 +440,6 @@ preferences for copied data.
|
||||
* Specify the maximum width of the column in pixels when 'Columns sized by' is
|
||||
set to *Column data*. If 'Columns sized by' is set to *Column name* then this
|
||||
setting won't have any effect.
|
||||
* Specify the number of records to fetch in one batch in query tool when
|
||||
query result set is large. Changing this value will override
|
||||
ON_DEMAND_ROW_COUNT setting from config file.
|
||||
* Use the *Result copy field separator* drop-down listbox to select the field
|
||||
separator for copied data.
|
||||
* Use the *Result copy quote character* drop-down listbox to select the quote
|
||||
|
||||
@@ -7,10 +7,10 @@
|
||||
The PSQL tool allows users to connect to PostgreSQL or EDB Advanced server using
|
||||
the psql command line interface through their browser.
|
||||
|
||||
* Open the PSQL tool from the Tools or object explorer context menu, or use PSQL
|
||||
tool button at the top of the object explorer.
|
||||
* Open the PSQL tool from the Tools or browser tree context menu, or use PSQL
|
||||
tool button at the top of the browser tree.
|
||||
|
||||
* PSQL will connect to the current connected database from the object explorer.
|
||||
* PSQL will connect to the current connected database from the browser tree.
|
||||
|
||||
.. image:: images/psql_tool.png
|
||||
:alt: PSQL tool window
|
||||
|
||||
@@ -7,7 +7,7 @@
|
||||
The Query Tool is a powerful, feature-rich environment that allows you to
|
||||
execute arbitrary SQL commands and review the result set. You can access the
|
||||
Query Tool via the *Query Tool* menu option on the *Tools* menu, or through the
|
||||
context menu of select nodes of the Object explorer control. The Query Tool
|
||||
context menu of select nodes of the Browser tree control. The Query Tool
|
||||
allows you to:
|
||||
|
||||
* Issue ad-hoc SQL queries.
|
||||
|
||||
@@ -178,12 +178,7 @@ Data Editing Options
|
||||
| | | |
|
||||
| | * Click *Copy with headers* to copy the highlighted content along with the header. | |
|
||||
+----------------------+---------------------------------------------------------------------------------------------------+----------------+
|
||||
| *Paste* | Click the *Paste* icon to paste a previously copied row with or without serial/identity values: | Accesskey + P |
|
||||
| | | |
|
||||
| | * Click the *Paste* icon to paste a previously copied row into a new row. | |
|
||||
| | | |
|
||||
| | * Click the *Paste with SERIAL/IDENTITY values?* if you want to paste the copied column values | |
|
||||
| | in the serial/identity columns. | |
|
||||
| *Paste* | Click the *Paste* icon to paste a previously copied row into a new row. | Accesskey + P |
|
||||
+----------------------+---------------------------------------------------------------------------------------------------+----------------+
|
||||
| *Delete* | Click the *Delete* icon to mark the selected rows for deletion. These marked rows get deleted | Accesskey + D |
|
||||
| | when you click the *Save Data Changes* icon. | |
|
||||
|
||||
@@ -11,8 +11,6 @@ notes for it.
|
||||
.. toctree::
|
||||
:maxdepth: 1
|
||||
|
||||
release_notes_7_1
|
||||
release_notes_7_0
|
||||
release_notes_6_21
|
||||
release_notes_6_20
|
||||
release_notes_6_19
|
||||
|
||||
@@ -1,73 +0,0 @@
|
||||
***********
|
||||
Version 7.0
|
||||
***********
|
||||
|
||||
Release date: 2023-04-13
|
||||
|
||||
This release contains a number of bug fixes and new features since the release of pgAdmin 4 v6.21.
|
||||
|
||||
Supported Database Servers
|
||||
**************************
|
||||
**PostgreSQL**: 11, 12, 13, 14 and 15
|
||||
|
||||
**EDB Advanced Server**: 11, 12, 13, 14 and 15
|
||||
|
||||
Bundled PostgreSQL Utilities
|
||||
****************************
|
||||
**psql**, **pg_dump**, **pg_dumpall**, **pg_restore**: 15.2
|
||||
|
||||
|
||||
New features
|
||||
************
|
||||
|
||||
| `Issue #3298 <https://github.com/pgadmin-org/pgadmin4/issues/3298>`_ - Auto expand row edit form when a new row is added for Primary Key, Foreign Key, Unique Constraint and Exclusion Constraint.
|
||||
| `Issue #5014 <https://github.com/pgadmin-org/pgadmin4/issues/5014>`_ - Added support for mounting shared storage in server mode.
|
||||
| `Issue #5022 <https://github.com/pgadmin-org/pgadmin4/issues/5022>`_ - Add a note on top of keyboard shortcuts preferences to show the Accesskey of the browser.
|
||||
| `Issue #5750 <https://github.com/pgadmin-org/pgadmin4/issues/5750>`_ - Added capability to deploy PostgreSQL servers on Google Cloud.
|
||||
| `Issue #5805 <https://github.com/pgadmin-org/pgadmin4/issues/5805>`_ - Added support of BigAnimal v3 API.
|
||||
| `Issue #5854 <https://github.com/pgadmin-org/pgadmin4/issues/5854>`_ - On pressing Ctrl+C on a tree object, copy the fully qualified name to clipboard.
|
||||
| `Issue #5855 <https://github.com/pgadmin-org/pgadmin4/issues/5855>`_ - Added option to create unique constraint with nulls not distinct.
|
||||
|
||||
Housekeeping
|
||||
************
|
||||
|
||||
| `Issue #4734 <https://github.com/pgadmin-org/pgadmin4/issues/4734>`_ - Rename the "Properties..." context menu option of the objects to "Edit Object..." and the "Browser" tree to "Object Explorer".
|
||||
| `Issue #5011 <https://github.com/pgadmin-org/pgadmin4/issues/5011>`_ - Upgrade from psycopg2 to psycopg3.
|
||||
| `Issue #5701 <https://github.com/pgadmin-org/pgadmin4/issues/5701>`_ - Remove Bootstrap and jQuery usage.
|
||||
| `Issue #5830 <https://github.com/pgadmin-org/pgadmin4/issues/5830>`_ - Add .ts and .tsx files under linter and fix linter issues.
|
||||
| `Issue #5901 <https://github.com/pgadmin-org/pgadmin4/issues/5901>`_ - Update SQLAlchemy, Flask, Flask-SQLAlchemy, and other packages to current versions.
|
||||
|
||||
Bug fixes
|
||||
*********
|
||||
|
||||
| `Issue #4423 <https://github.com/pgadmin-org/pgadmin4/issues/4423>`_ - Fixed an issue where list of tables is not displayed in a SQL_ASCII database.
|
||||
| `Issue #4784 <https://github.com/pgadmin-org/pgadmin4/issues/4784>`_ - Handle errors occurring during decoding UTF-8 encoded query result data which contains ascii characters.
|
||||
| `Issue #4884 <https://github.com/pgadmin-org/pgadmin4/issues/4884>`_ - Fixed an issue where it is not possible to import csv data to tables having columns with german umlauts in their name.
|
||||
| `Issue #4891 <https://github.com/pgadmin-org/pgadmin4/issues/4891>`_ - Fixed 'rawunicodeescape' codec can't decode issue in a SQL_ASCII database.
|
||||
| `Issue #5504 <https://github.com/pgadmin-org/pgadmin4/issues/5504>`_ - Fixed an issue where incorrect view of text[] fields in query and table results when use other then UTF8 (win1251) codepage and symbols.
|
||||
| `Issue #5735 <https://github.com/pgadmin-org/pgadmin4/issues/5735>`_ - Show appropriate error message when master password is not set instead of 'Crypt key missing'.
|
||||
| `Issue #5775 <https://github.com/pgadmin-org/pgadmin4/issues/5775>`_ - Display the 'No menu available for this object' message if the selected tree node does not have any options.
|
||||
| `Issue #5824 <https://github.com/pgadmin-org/pgadmin4/issues/5824>`_ - Ensure that the user's storage directory is created when the users are created, as well as for those users whose directories have not yet been created.
|
||||
| `Issue #5833 <https://github.com/pgadmin-org/pgadmin4/issues/5833>`_ - Fixed an issue where user MFA entry was not getting delete after deleting a user.
|
||||
| `Issue #5834 <https://github.com/pgadmin-org/pgadmin4/issues/5834>`_ - Fixed issue where pgAgent jobs were not getting dropped from properties tab.
|
||||
| `Issue #5874 <https://github.com/pgadmin-org/pgadmin4/issues/5874>`_ - Make "using" and "with check" fields a textarea in the RLS policy.
|
||||
| `Issue #5894 <https://github.com/pgadmin-org/pgadmin4/issues/5894>`_ - Use fetch instead of axios to close connections in SQLEditor, ERD, Schema Diff and Debugger to ensure it completes.
|
||||
| `Issue #5904 <https://github.com/pgadmin-org/pgadmin4/issues/5904>`_ - Fixed an issue where the count query should not be triggered when the estimated count is less than zero.
|
||||
| `Issue #5907 <https://github.com/pgadmin-org/pgadmin4/issues/5907>`_ - Validate user inputs provided in configuration files before starting pgadmin server.
|
||||
| `Issue #5916 <https://github.com/pgadmin-org/pgadmin4/issues/5916>`_ - Fix an issue in search objects where objects were unable to locate occasionally.
|
||||
| `Issue #5919 <https://github.com/pgadmin-org/pgadmin4/issues/5919>`_ - While restoring the database connections due to lost server connection, ensure that the databases which were previously connected are only reconnected.
|
||||
| `Issue #5921 <https://github.com/pgadmin-org/pgadmin4/issues/5921>`_ - Ensure that when pasting rows the rows are added right below the selected rows for copying.
|
||||
| `Issue #5929 <https://github.com/pgadmin-org/pgadmin4/issues/5929>`_ - Dashboard graph Y-axis width should increase with label.
|
||||
| `Issue #5934 <https://github.com/pgadmin-org/pgadmin4/issues/5934>`_ - Ensure that default values are set only for insert statement if user does not provide any values, in case of updating existing values to blank it should be set to null.
|
||||
| `Issue #5941 <https://github.com/pgadmin-org/pgadmin4/issues/5941>`_ - Fixed an issue where migration on external database is not working.
|
||||
| `Issue #5943 <https://github.com/pgadmin-org/pgadmin4/issues/5943>`_ - Use http for SVG namespace URLs which were changed to https for SonarQube fixes.
|
||||
| `Issue #5952 <https://github.com/pgadmin-org/pgadmin4/issues/5952>`_ - Ensure that the schema diff tool should not allow comparison between Postgres Server and EDB Postgres Advanced Server.
|
||||
| `Issue #5953 <https://github.com/pgadmin-org/pgadmin4/issues/5953>`_ - Fixed error while executing continue in debugging session after some time of debug execution.
|
||||
| `Issue #5955 <https://github.com/pgadmin-org/pgadmin4/issues/5955>`_ - Fix an issue where query tool is stuck when running query after discarding changed data.
|
||||
| `Issue #5958 <https://github.com/pgadmin-org/pgadmin4/issues/5958>`_ - Fix an issue where new dashboard graphs are partially following theme colors.
|
||||
| `Issue #5959 <https://github.com/pgadmin-org/pgadmin4/issues/5959>`_ - Fix an issue where Backup, Restore, and Maintenance not working if connection timeout is set in the server dialog.
|
||||
| `Issue #6018 <https://github.com/pgadmin-org/pgadmin4/issues/6018>`_ - Change the foreground color of the code mirror text for Dark Theme.
|
||||
| `Issue #6093 <https://github.com/pgadmin-org/pgadmin4/issues/6093>`_ - Fix the dependents SQL of Roles which is throwing a type casting error on PostgreSQL 15.
|
||||
| `Issue #6100 <https://github.com/pgadmin-org/pgadmin4/issues/6100>`_ - Fixed the LDAP authentication issue for the simultaneous login attempts.(CVE-2023-1907)
|
||||
| `Issue #6109 <https://github.com/pgadmin-org/pgadmin4/issues/6109>`_ - Fixed asyncio random task error messages in Query tool.
|
||||
| `Issue #6122 <https://github.com/pgadmin-org/pgadmin4/issues/6122>`_ - Fixed CSV export from Query Tool results does not include all columns for multiple CTEs.
|
||||
@@ -1,53 +0,0 @@
|
||||
***********
|
||||
Version 7.1
|
||||
***********
|
||||
|
||||
Release date: 2023-05-04
|
||||
|
||||
This release contains a number of bug fixes and new features since the release of pgAdmin 4 v7.0.
|
||||
|
||||
Supported Database Servers
|
||||
**************************
|
||||
**PostgreSQL**: 11, 12, 13, 14 and 15
|
||||
|
||||
**EDB Advanced Server**: 11, 12, 13, 14 and 15
|
||||
|
||||
Bundled PostgreSQL Utilities
|
||||
****************************
|
||||
**psql**, **pg_dump**, **pg_dumpall**, **pg_restore**: 15.2
|
||||
|
||||
|
||||
New features
|
||||
************
|
||||
|
||||
| `Issue #2078 <https://github.com/pgadmin-org/pgadmin4/issues/2078>`_ - Show object breadcrumbs path along with its comment on object hover.
|
||||
| `Issue #3275 <https://github.com/pgadmin-org/pgadmin4/issues/3275>`_ - Allow on demand record count setting to be changed per user using preferences.
|
||||
| `Issue #3316 <https://github.com/pgadmin-org/pgadmin4/issues/3316>`_ - Added support to show statistics for materialized views.
|
||||
| `Issue #3318 <https://github.com/pgadmin-org/pgadmin4/issues/3318>`_ - Added support to create an unnamed index.
|
||||
|
||||
Housekeeping
|
||||
************
|
||||
|
||||
|
||||
Bug fixes
|
||||
*********
|
||||
|
||||
| `Issue #5044 <https://github.com/pgadmin-org/pgadmin4/issues/5044>`_ - Fixed an issue where query tool hangs for some time when multiple columns are selected to open geometry viewer.
|
||||
| `Issue #5777 <https://github.com/pgadmin-org/pgadmin4/issues/5777>`_ - Fixed an issue where the browser tree state is not remembered when reopening pgAdmin.
|
||||
| `Issue #5820 <https://github.com/pgadmin-org/pgadmin4/issues/5820>`_ - Fixed an issue where collation was set to none if we remove it while creating partitioned table.
|
||||
| `Issue #5922 <https://github.com/pgadmin-org/pgadmin4/issues/5922>`_ - Ensure that when pasting a row in query tool grid, default value is used for autogenerated/serial columns.
|
||||
| `Issue #6059 <https://github.com/pgadmin-org/pgadmin4/issues/6059>`_ - Show proper message if the debugger is stopped by the user.
|
||||
| `Issue #6075 <https://github.com/pgadmin-org/pgadmin4/issues/6075>`_ - Ensure that the save button is enabled when registering a new server fails due to an API error.
|
||||
| `Issue #6077 <https://github.com/pgadmin-org/pgadmin4/issues/6077>`_ - The search object, query tool, and psql tool menu should not be displayed for pgAgent.
|
||||
| `Issue #6120 <https://github.com/pgadmin-org/pgadmin4/issues/6120>`_ - Fixed error occurring while logging out from pgAdmin keeping a query tool opened.
|
||||
| `Issue #6128 <https://github.com/pgadmin-org/pgadmin4/issues/6128>`_ - Fix a SQL error occurring on roles dependents SQL.
|
||||
| `Issue #6130 <https://github.com/pgadmin-org/pgadmin4/issues/6130>`_ - Ensure to quote the primary key value if needed while deleting rows from the table.
|
||||
| `Issue #6137 <https://github.com/pgadmin-org/pgadmin4/issues/6137>`_ - Fixed error occurring while dumping the servers from CLI.
|
||||
| `Issue #6138 <https://github.com/pgadmin-org/pgadmin4/issues/6138>`_ - Throw an appropriate error when a table for which View/Edit data is open, is deleted, and query is executed.
|
||||
| `Issue #6151 <https://github.com/pgadmin-org/pgadmin4/issues/6151>`_ - Ensure that internal users are able to login when auth sources are [ldap, internal].
|
||||
| `Issue #6158 <https://github.com/pgadmin-org/pgadmin4/issues/6158>`_ - Fixed an issue with the properties tab not getting updated if the user updates the selected node.
|
||||
| `Issue #6159 <https://github.com/pgadmin-org/pgadmin4/issues/6159>`_ - Ensure that the ERD tool should work with the external database after moving to psycopg3.
|
||||
| `Issue #6180 <https://github.com/pgadmin-org/pgadmin4/issues/6180>`_ - Fixed an issue where PSQL is not working if the PGUSER env variable is set and service file is used for server connection details.
|
||||
| `Issue #6183 <https://github.com/pgadmin-org/pgadmin4/issues/6183>`_ - Mac crash when you press Command-Shift-C.
|
||||
| `Issue #6189 <https://github.com/pgadmin-org/pgadmin4/issues/6189>`_ - Fix an issue in View SQL when column level privileges are set with multiple roles.
|
||||
| `Issue #6191 <https://github.com/pgadmin-org/pgadmin4/issues/6191>`_ - Fixed an issue where Reset Password is not working after upgrading to latest flask-security-too.
|
||||
@@ -30,7 +30,7 @@ restore process:
|
||||
* Select *Directory* to restore from a compressed directory-format archive.
|
||||
|
||||
* Enter the complete path to the backup file in the *Filename* field.
|
||||
Optionally, select the *Browse* icon (ellipsis) to the right to navigate
|
||||
Optionally, select the *Browser* icon (ellipsis) to the right to navigate
|
||||
into a directory and select the file that contains the archive.
|
||||
* Use the *Number of Jobs* field to specify if pg_restore should use multiple
|
||||
(concurrent) jobs to process the restore. Each job uses a separate connection
|
||||
|
||||
@@ -54,7 +54,7 @@ The Schema Diff Object Comparison Panel
|
||||
|
||||
In the object comparison panel, you can select the source and target servers
|
||||
of the same major version, and databases to be compared. You can
|
||||
select any server listed under the object explorer whether it is connected or
|
||||
select any server listed under the browser tree whether it is connected or
|
||||
disconnected. If you select a server that is not connected then it will
|
||||
prompt you for the password before using the server.
|
||||
|
||||
|
||||
@@ -21,9 +21,9 @@ You can only search for object names currently. Examples are: abc,
|
||||
%ab%, ab%c, %%%, etc.
|
||||
|
||||
The result is presented in the grid with object name, object type and
|
||||
the object path in the :ref:`object explorer <tree_control>`. You can double
|
||||
the object tree path in the :ref:`browser <tree_control>`. You can double
|
||||
click on a result row to select the object in the
|
||||
:ref:`object explorer <tree_control>`. If the object is greyed out, this means that you
|
||||
:ref:`browser <tree_control>`. If the object is greyed out, this means that you
|
||||
have not enabled those object types in the :ref:`preferences <preferences>`,
|
||||
so you can't double click on it. You can click on the ellipsis appended to
|
||||
the function and procedure names to see their arguments.
|
||||
@@ -33,5 +33,5 @@ You can filter based on a particular object type by selecting one from the
|
||||
object type dropdown. If the search button is hit when one of the object type
|
||||
is selected then only those types will be fetch from the database.
|
||||
An object type will not be visible in the dropdown if the database server
|
||||
does not support it or if it is not enabled from the
|
||||
does not support it or if it is not enabled from the
|
||||
:ref:`preferences <preferences>`.
|
||||
@@ -15,10 +15,10 @@ allows connections from the host of the client.
|
||||
Use the fields in the *General* tab to identify the server:
|
||||
|
||||
* Use the *Name* field to add a descriptive name for the server; the name
|
||||
specified will be displayed in the *Object Explorer*.
|
||||
specified will be displayed in the *Browser* tree control.
|
||||
|
||||
* Use the drop-down list box in the *Server group* field to select the parent
|
||||
node for the server; the server will be displayed in the *Object Explorer*
|
||||
node for the server; the server will be displayed in the *Browser* tree
|
||||
control within the specified group.
|
||||
|
||||
* Use the color-picker in the *Background* field to specify the background
|
||||
@@ -42,7 +42,7 @@ Use the fields in the *General* tab to identify the server:
|
||||
* Change of host, port, and maintenance database
|
||||
|
||||
Please note that once the server is shared, it's icon is changed in the
|
||||
object explorer.
|
||||
browser tree.
|
||||
|
||||
* Provide a comment about the server in the *Comments* field.
|
||||
|
||||
|
||||
@@ -7,7 +7,6 @@
|
||||
*Storage Manager* is a feature that helps you manage your systems storage device. You can use *Storage Manager* to:
|
||||
|
||||
* Download, upload, or manage operating system files. To use this feature, *pgAdmin* must be running in *Server Mode* on your client machine.
|
||||
* The shared storage option allows users to access the shared storages that are shared by admin users.
|
||||
* Download *backup* or *export* files (custom, tar and plain text format) on a client machine.
|
||||
* Download *export* dump files of tables.
|
||||
|
||||
@@ -19,12 +18,6 @@ You can access *Storage Manager* from the *Tools* Menu.
|
||||
|
||||
Use icons on the top of the *Storage Manager* window to manage storage:
|
||||
|
||||
Use the ``Folder`` icon |Shared Storage| to access shared storage. In order to enable shared storage,
|
||||
admins need to add the SHARED_STORAGE variable to the config file. Users can access the shared storage
|
||||
with this and share files with one another.
|
||||
|
||||
.. |Shared Storage| image:: images/sm_ss.png
|
||||
|
||||
Use the ``Home`` icon |home| to return to the home directory.
|
||||
|
||||
.. |home| image:: images/sm_home.png
|
||||
@@ -47,22 +40,6 @@ Use the ``New Folder`` icon |folder| to add a new folder.
|
||||
|
||||
Use the *Format* drop down list to select the format of the files to be displayed; choose from *sql*, *csv*, or *All Files*.
|
||||
|
||||
Shared Storage
|
||||
*********************
|
||||
.. image:: images/shared_storage.png
|
||||
:alt: Other options
|
||||
:align: center
|
||||
|
||||
|
||||
In the storage manager, ``My Storage`` is the pgAdmin user’s storage directory, and other listed directories are shared
|
||||
storages set by the pgAdmin server administrator. Using these, pgAdmin users can have common storages to share files.
|
||||
pgAdmin server administrator can configure the shared storages using the :ref:`config file <config_py>`. Storages can be
|
||||
marked as restricted to give read-only access to non-admin pgAdmin users.
|
||||
|
||||
|
||||
.. note:: You must ensure the directories specified are writeable by the user that the web server processes will be running as, e.g. apache or www-data.*
|
||||
|
||||
|
||||
Other Options
|
||||
*********************
|
||||
|
||||
|
||||
@@ -470,7 +470,7 @@ Use the *Partition* tab to create that partition as a partitioned table.
|
||||
* Select a partition type from the *Partition Type* selection box.
|
||||
* Use the *Partition Keys* panel to define the partition keys.
|
||||
|
||||
View of multi level Partitioned Table in object explorer:
|
||||
View of multi level Partitioned Table in browser tree:
|
||||
|
||||
.. image:: images/table_partition_tree.png
|
||||
:alt: Table dialog partition tree
|
||||
|
||||
@@ -8,7 +8,7 @@ The left pane of the main window displays a tree control (the *pgAdmin* tree
|
||||
control) that provides access to the objects that reside on a server.
|
||||
|
||||
.. image:: /images/main_left_pane.png
|
||||
:alt: object explorer panel
|
||||
:alt: Browser tree panel
|
||||
:align: center
|
||||
|
||||
You can expand nodes in the tree control to view the database objects that
|
||||
|
||||
@@ -22,7 +22,7 @@ Features of pgAdmin 4 include:
|
||||
* online help and information about using pgAdmin dialogs and tools.
|
||||
|
||||
When pgAdmin opens, the interface features a menu bar and a window divided into
|
||||
two panes: the *Object Explorer* tree control in the left pane, and a tabbed browser in
|
||||
two panes: the *Browser* tree control in the left pane, and a tabbed browser in
|
||||
the right pane.
|
||||
|
||||
.. image:: images/welcome.png
|
||||
|
||||
@@ -6,6 +6,7 @@ set -e
|
||||
# Debugging shizz
|
||||
trap 'ERRCODE=$? && if [ ${ERRCODE} -ne 0 ]; then echo "The command \"${BASH_COMMAND}\" failed in \"${FUNCNAME}\" with exit code ${ERRCODE}."; fi' EXIT
|
||||
|
||||
OS_VERSION=$(grep "^VERSION_ID=" /etc/os-release | awk -F "=" '{ print $2 }' | sed 's/"//g')
|
||||
OS_ARCH=$(dpkg-architecture -qDEB_HOST_ARCH)
|
||||
|
||||
# Stop creating pyc files.
|
||||
@@ -31,25 +32,13 @@ _copy_code
|
||||
echo "Creating the server package..."
|
||||
mkdir "${SERVERROOT}/DEBIAN"
|
||||
|
||||
echo "Creating preinst script..."
|
||||
cat << EOF > "${SERVERROOT}/DEBIAN/preinst"
|
||||
#!/bin/sh
|
||||
|
||||
rm -rf /usr/pgadmin4/venv
|
||||
if [ -d /usr/pgadmin4/web ]; then
|
||||
cd /usr/pgadmin4/web && rm -rf \$(ls -A -I config_local.py)
|
||||
fi
|
||||
EOF
|
||||
|
||||
chmod 755 "${SERVERROOT}/DEBIAN/preinst"
|
||||
|
||||
cat << EOF > "${SERVERROOT}/DEBIAN/control"
|
||||
Package: ${APP_NAME}-server
|
||||
Version: ${APP_LONG_VERSION}
|
||||
Architecture: ${OS_ARCH}
|
||||
Section: database
|
||||
Priority: optional
|
||||
Depends: ${PYTHON_BINARY}, libpq5 (>= 11.0), libgssapi-krb5-2
|
||||
Depends: python3, libpq5 (>= 11.0), libgssapi-krb5-2
|
||||
Recommends: postgresql-client | postgresql-client-15 | postgresql-client-14 | postgresql-client-13 | postgresql-client-12 | postgresql-client-11 | postgresql-client-10
|
||||
Maintainer: pgAdmin Development Team <pgadmin-hackers@postgresql.org>
|
||||
Description: The core server package for pgAdmin. pgAdmin is the most popular and feature rich Open Source administration and development platform for PostgreSQL, the most advanced Open Source database in the world.
|
||||
|
||||
@@ -18,17 +18,6 @@ _setup_env() {
|
||||
if [ -n "${APP_SUFFIX}" ]; then
|
||||
APP_LONG_VERSION=${APP_LONG_VERSION}-${APP_SUFFIX}
|
||||
fi
|
||||
|
||||
# Setting up the correct Python version for Ubuntu 18 and EL-8, which have
|
||||
# new Python versions installed parallel to the old ones.
|
||||
OS_VERSION=$(grep "^VERSION_ID=" /etc/os-release | awk -F "=" '{ print $2 }' | sed 's/"//g' | awk -F "." '{ print $1 }')
|
||||
SYSTEM_PYTHON_PATH='/usr/bin/python3'
|
||||
PYTHON_BINARY='python3'
|
||||
if [ "$2" == 'redhat' ] && [ "${OS_VERSION}" == "8" ]; then
|
||||
SYSTEM_PYTHON_PATH='/usr/bin/python3.9'
|
||||
PYTHON_BINARY='python3.9'
|
||||
fi
|
||||
PYTHON_BINARY_WITHOUT_DOTS=$(echo ${PYTHON_BINARY} | sed -e 's/\.//g')
|
||||
}
|
||||
|
||||
_cleanup() {
|
||||
@@ -62,16 +51,16 @@ _create_python_virtualenv() {
|
||||
cd "usr/${APP_NAME}" || exit
|
||||
|
||||
# Create the blank venv
|
||||
"${SYSTEM_PYTHON_PATH}" -m venv venv
|
||||
python3 -m venv venv
|
||||
# shellcheck disable=SC1091
|
||||
. venv/bin/activate
|
||||
source venv/bin/activate
|
||||
|
||||
# Make sure we have the wheel package present, as well as the latest pip
|
||||
pip3 install --upgrade pip
|
||||
pip3 install wheel
|
||||
|
||||
# Install the requirements
|
||||
pip3 install --no-cache-dir --no-binary psycopg -r "${SOURCEDIR}/requirements.txt"
|
||||
pip3 install --no-cache-dir --no-binary psycopg2 -r "${SOURCEDIR}/requirements.txt"
|
||||
|
||||
# Fixup the paths in the venv activation scripts
|
||||
sed -i 's/VIRTUAL_ENV=.*/VIRTUAL_ENV="\/usr\/pgadmin4\/venv"/g' venv/bin/activate
|
||||
@@ -89,11 +78,11 @@ _create_python_virtualenv() {
|
||||
PYMODULES_PATH=$(python3 -c "from distutils.sysconfig import get_python_lib; print(get_python_lib())")
|
||||
DIR_PYMODULES_PATH=$(dirname "${PYMODULES_PATH}")
|
||||
|
||||
# Use {SYSTEM_PYTHON_PATH} here as we want the system path
|
||||
# Use /usr/bin/python3 here as we want the system path
|
||||
if [ "$1" == "debian" ]; then
|
||||
PYSYSLIB_PATH=$("${SYSTEM_PYTHON_PATH}" -c "import sys; print('%s/lib/python%d.%.d' % (sys.prefix, sys.version_info.major, sys.version_info.minor))")
|
||||
PYSYSLIB_PATH=$(/usr/bin/python3 -c "import sys; print('%s/lib/python%d.%.d' % (sys.prefix, sys.version_info.major, sys.version_info.minor))")
|
||||
else
|
||||
PYSYSLIB_PATH=$("${SYSTEM_PYTHON_PATH}" -c "import sys; print('%s/lib64/python%d.%.d' % (sys.prefix, sys.version_info.major, sys.version_info.minor))")
|
||||
PYSYSLIB_PATH=$(/usr/bin/python3 -c "import sys; print('%s/lib64/python%d.%.d' % (sys.prefix, sys.version_info.major, sys.version_info.minor))")
|
||||
fi
|
||||
|
||||
# Symlink in the rest of the Python libs. This is required because the runtime
|
||||
@@ -141,9 +130,10 @@ _build_runtime() {
|
||||
# YARN END
|
||||
|
||||
# WGET:
|
||||
# Comment out the below line as the latest version (0.73.0) having some
|
||||
# problem in launching the pgAdmin 4 in CentOS 7
|
||||
# hardcoded the version to 0.72.0
|
||||
# NW_VERSION=$(yarn info nw | grep latest | awk -F "'" '{ print $2}')
|
||||
# Remove the above commented code once below issue is fixed
|
||||
# Pining NWjs because of https://github.com/nwjs/nw.js/issues/8039 in 0.74.0
|
||||
NW_VERSION="0.72.0"
|
||||
|
||||
pushd "${BUILDROOT}" > /dev/null || exit
|
||||
@@ -202,9 +192,13 @@ _build_docs() {
|
||||
cd "${SERVERROOT}" && mkdir -p "usr/${APP_NAME}/share/docs/en_US/html"
|
||||
cd "${SOURCEDIR}/docs/en_US" || exit
|
||||
python3 build_code_snippet.py
|
||||
SYS_PYTHONPATH=$("${SYSTEM_PYTHON_PATH}" -c "import sys; print(':'.join([p for p in sys.path if p]))")
|
||||
SYS_PYTHONPATH=$(/usr/bin/python3 -c "import sys; print(':'.join([p for p in sys.path if p]))")
|
||||
# shellcheck disable=SC2153
|
||||
PYTHONPATH=$PYTHONPATH:${SYS_PYTHONPATH} python3 -msphinx . "${SERVERROOT}/usr/${APP_NAME}/share/docs/en_US/html"
|
||||
if [ "$1" == "redhat" ] && [ "${OS_VERSION}" == "7" ]; then
|
||||
PYTHONPATH=$PYTHONPATH:${SYS_PYTHONPATH} python3 /usr/local/bin/sphinx-build . "${SERVERROOT}/usr/${APP_NAME}/share/docs/en_US/html"
|
||||
else
|
||||
PYTHONPATH=$PYTHONPATH:${SYS_PYTHONPATH} python3 -msphinx . "${SERVERROOT}/usr/${APP_NAME}/share/docs/en_US/html"
|
||||
fi
|
||||
}
|
||||
|
||||
_copy_code() {
|
||||
@@ -240,8 +234,8 @@ _copy_code() {
|
||||
# user has configured an alternative default.
|
||||
# DO THIS LAST!
|
||||
cd "${SERVERROOT}/usr/${APP_NAME}/venv/bin" || exit
|
||||
PYTHON_INTERPRETER=$("${SYSTEM_PYTHON_PATH}" -c "import os, sys; print(os.path.realpath(sys.executable))")
|
||||
PYTHON_VERSION=$("${SYSTEM_PYTHON_PATH}" -c "import sys; print('%d.%d' % (sys.version_info.major, sys.version_info.minor))")
|
||||
PYTHON_INTERPRETER=$(/usr/bin/python3 -c "import os, sys; print(os.path.realpath(sys.executable))")
|
||||
PYTHON_VERSION=$(/usr/bin/python3 -c "import sys; print('%d.%d' % (sys.version_info.major, sys.version_info.minor))")
|
||||
rm python && ln -s python3 python
|
||||
rm "python${PYTHON_VERSION}" && ln -s python3 "python${PYTHON_VERSION}"
|
||||
rm python3 && ln -s "${PYTHON_INTERPRETER}" python3
|
||||
|
||||
@@ -12,7 +12,6 @@ _setup_env() {
|
||||
fi
|
||||
BUNDLE_DIR="${BUILD_ROOT}/${APP_NAME}.app"
|
||||
DMG_NAME="${DIST_ROOT}"/$(echo "${APP_NAME}" | sed 's/ //g' | awk '{print tolower($0)}')-"${APP_LONG_VERSION}.dmg"
|
||||
PYTHON_OS_VERSION="11"
|
||||
}
|
||||
|
||||
_cleanup() {
|
||||
@@ -35,9 +34,10 @@ _build_runtime() {
|
||||
# YARN END
|
||||
|
||||
# WGET:
|
||||
# Comment out the below line as the latest version (0.73.0) having some
|
||||
# problem in launching the pgAdmin 4 in CentOS 7
|
||||
# hardcoded the version to 0.72.0
|
||||
# NW_VERSION=$(yarn info nw | grep latest | awk -F "'" '{ print $2}')
|
||||
# Remove the above commented code once below issue is fixed
|
||||
# Pining NWjs because of https://github.com/nwjs/nw.js/issues/8039 in 0.74.0
|
||||
NW_VERSION="0.72.0"
|
||||
|
||||
pushd "${BUILD_ROOT}" > /dev/null || exit
|
||||
@@ -87,7 +87,6 @@ _create_python_env() {
|
||||
"${BUILD_ROOT}/relocatable_python/make_relocatable_python_framework.py" \
|
||||
--upgrade-pip \
|
||||
--python-version "${PGADMIN_PYTHON_VERSION}" \
|
||||
--os-version "${PYTHON_OS_VERSION}" \
|
||||
--pip-requirements "${SOURCE_DIR}/requirements.txt" \
|
||||
--destination "${BUNDLE_DIR}/Contents/Frameworks/"
|
||||
|
||||
@@ -138,7 +137,7 @@ _build_docs() {
|
||||
source "${BUILD_ROOT}/venv/bin/activate"
|
||||
pip3 install --upgrade pip
|
||||
pip3 install -r "${SOURCE_DIR}/requirements.txt"
|
||||
pip3 install sphinx==6.1.3
|
||||
pip3 install sphinx
|
||||
pip3 install sphinxcontrib-youtube
|
||||
|
||||
cd "${SOURCE_DIR}" || exit
|
||||
|
||||
@@ -53,8 +53,8 @@ if [ "${PGADMIN_POSTGRES_DIR}" == "" ]; then
|
||||
fi
|
||||
|
||||
if [ "${PGADMIN_PYTHON_VERSION}" == "" ]; then
|
||||
echo "PGADMIN_PYTHON_VERSION not set. Setting it to the default: 3.11.2"
|
||||
export PGADMIN_PYTHON_VERSION=3.11.2
|
||||
echo "PGADMIN_PYTHON_VERSION not set. Setting it to the default: 3.9.9"
|
||||
export PGADMIN_PYTHON_VERSION=3.9.9
|
||||
fi
|
||||
|
||||
# shellcheck disable=SC1091
|
||||
|
||||
@@ -36,11 +36,11 @@ with open(req_file, 'r') as req_lines:
|
||||
|
||||
requires = []
|
||||
kerberos_extras = []
|
||||
# Ensure the Wheel will use psycopg-binary, not the source distro, and stick
|
||||
# Ensure the Wheel will use psycopg2-binary, not the source distro, and stick
|
||||
# gssapi in it's own list
|
||||
for index, req in enumerate(all_requires):
|
||||
if 'psycopg[c]' in req:
|
||||
req = req.replace('psycopg[c]', 'psycopg[binary]')
|
||||
if 'psycopg2' in req:
|
||||
req = req.replace('psycopg2', 'psycopg2-binary')
|
||||
|
||||
if 'gssapi' in req:
|
||||
kerberos_extras.append(req)
|
||||
@@ -75,11 +75,11 @@ setup(
|
||||
'Development Status :: 5 - Production/Stable',
|
||||
|
||||
# Supported programming languages
|
||||
'Programming Language :: Python :: 3.6',
|
||||
'Programming Language :: Python :: 3.7',
|
||||
'Programming Language :: Python :: 3.8',
|
||||
'Programming Language :: Python :: 3.9',
|
||||
'Programming Language :: Python :: 3.10',
|
||||
'Programming Language :: Python :: 3.11'
|
||||
'Programming Language :: Python :: 3.10'
|
||||
],
|
||||
|
||||
keywords='pgadmin4,postgresql,postgres',
|
||||
|
||||
@@ -6,7 +6,8 @@ Redhat distributions.
|
||||
## Supported platforms
|
||||
|
||||
* Fedora 36 & 37
|
||||
* RHEL 8
|
||||
* RHEL 7 & 8
|
||||
* CentOS 7
|
||||
* Rocky Linux 8 (x86_64)
|
||||
* AlmaLinux/RHEL/Rocky Linux 9 (x86_64)
|
||||
|
||||
@@ -46,6 +47,11 @@ The desktop runtime. Requires the server package.
|
||||
The server mode setup script for configuring Apache HTTPD. Requires the server
|
||||
package.
|
||||
|
||||
*pgadmin4-python3-mod_wsgi-4.7.1-2.el7.<arch>.rpm*
|
||||
|
||||
The Python 3 build of mod_wsgi for the Apache HTTPD server. Only built on
|
||||
RHEL/CentOS 7.
|
||||
|
||||
## Signing Packages
|
||||
|
||||
It is good practice to sign RPMs to prove their provenance. The build scripts
|
||||
|
||||
@@ -6,6 +6,7 @@ set -e
|
||||
# Debugging shizz
|
||||
trap 'ERRCODE=$? && if [ ${ERRCODE} -ne 0 ]; then echo "The command \"${BASH_COMMAND}\" failed in \"${FUNCNAME}\" with exit code ${ERRCODE}."; fi' EXIT
|
||||
|
||||
OS_VERSION=$(grep "^VERSION_ID=" /etc/os-release | awk -F "=" '{ print $2 }' | sed 's/"//g')
|
||||
OS_ARCH=$(arch)
|
||||
|
||||
# Make sure we get the latest libpq
|
||||
@@ -49,6 +50,11 @@ cat << EOF > "${BUILDROOT}/server.spec"
|
||||
# virtualenv, in particular Pillow.libs.
|
||||
%global __brp_check_rpaths %{nil}
|
||||
|
||||
# Bytecompiling Python 3 doesn't work on RHEL/CentOS 7, so make it a no-op
|
||||
%if 0%{?rhel} && 0%{?rhel} == 7
|
||||
%define __python /bin/true
|
||||
%endif
|
||||
|
||||
# Don't strip binaries when packaging them as this might break cpython modules
|
||||
%define __strip /bin/true
|
||||
|
||||
@@ -62,17 +68,11 @@ Summary: The core server package for pgAdmin.
|
||||
License: PostgreSQL
|
||||
URL: https://www.pgadmin.org/
|
||||
|
||||
Requires: ${PYTHON_BINARY}, libpq5, krb5-libs
|
||||
Requires: python3, postgresql-libs >= 11, krb5-libs
|
||||
|
||||
%description
|
||||
The core server package for pgAdmin. pgAdmin is the most popular and feature rich Open Source administration and development platform for PostgreSQL, the most advanced Open Source database in the world.
|
||||
|
||||
%pre
|
||||
rm -rf /usr/pgadmin4/venv
|
||||
if [ -d /usr/pgadmin4/web ]; then
|
||||
cd /usr/pgadmin4/web && rm -rf \$(ls -A -I config_local.py)
|
||||
fi
|
||||
|
||||
%build
|
||||
|
||||
%install
|
||||
@@ -155,7 +155,11 @@ BuildArch: noarch
|
||||
Summary: The web interface for pgAdmin, hosted under Apache HTTPD.
|
||||
License: PostgreSQL
|
||||
URL: https://www.pgadmin.org/
|
||||
Requires: ${APP_NAME}-server = ${RPM_VERSION}, httpd, ${PYTHON_BINARY_WITHOUT_DOTS}-mod_wsgi
|
||||
%if 0%{?rhel} && 0%{?rhel} == 7
|
||||
Requires: ${APP_NAME}-server = ${RPM_VERSION}, httpd, pgadmin4-python3-mod_wsgi
|
||||
%else
|
||||
Requires: ${APP_NAME}-server = ${RPM_VERSION}, httpd, python3-mod_wsgi
|
||||
%endif
|
||||
|
||||
%description
|
||||
The web interface for pgAdmin, hosted under Apache HTTPD. pgAdmin is the most popular and feature rich Open Source administration and development platform for PostgreSQL, the most advanced Open Source database in the world.
|
||||
@@ -215,13 +219,26 @@ EOF
|
||||
# Build the Redhat package for the meta package
|
||||
rpmbuild --define "pga_build_root ${BUILDROOT}" -bb "${BUILDROOT}/meta.spec"
|
||||
|
||||
#
|
||||
# mod_wsgi for CentOS 7
|
||||
#
|
||||
if [ "${OS_VERSION}" == 7 ]; then
|
||||
cp "${SOURCEDIR}/pkg/redhat/pgadmin4-python3-mod_wsgi-exports.patch" "${HOME}/rpmbuild/SOURCES"
|
||||
cp "${SOURCEDIR}/pkg/redhat/pgadmin4-python3-mod_wsgi.conf" "${HOME}/rpmbuild/SOURCES"
|
||||
curl -o "${HOME}/rpmbuild/SOURCES/mod_wsgi-4.9.0.tar.gz" https://codeload.github.com/GrahamDumpleton/mod_wsgi/tar.gz/4.9.0
|
||||
rpmbuild -bb "${SOURCEDIR}/pkg/redhat/pgadmin4-python-mod_wsgi.spec"
|
||||
fi
|
||||
|
||||
# Get the libpq we need
|
||||
yumdownloader -y --downloadonly --destdir="${DISTROOT}" libpq5 libpq5-devel postgresql$(ls -d /usr/pgsql-1* | sort -r | head -1 | awk -F '-' '{ print $2 }')-libs
|
||||
yumdownloader -y --downloadonly --destdir="${DISTROOT}" postgresql$(ls -d /usr/pgsql-1* | sort -r | head -1 | awk -F '-' '{ print $2 }')-libs
|
||||
|
||||
#
|
||||
# Get the results!
|
||||
#
|
||||
cp "${HOME}/rpmbuild/RPMS/${OS_ARCH}/${APP_NAME}-"*"${RPM_VERSION}-"*".${OS_ARCH}.rpm" "${DISTROOT}/"
|
||||
cp "${HOME}/rpmbuild/RPMS/noarch/${APP_NAME}-"*"${RPM_VERSION}-"*".noarch.rpm" "${DISTROOT}/"
|
||||
if [ "${OS_VERSION}" == 7 ]; then
|
||||
cp "${HOME}/rpmbuild/RPMS/${OS_ARCH}/pgadmin4-python3-mod_wsgi-4.9.0-1.el7.x86_64.rpm" "${DISTROOT}/"
|
||||
fi
|
||||
|
||||
echo "Completed. RPMs created in ${DISTROOT}."
|
||||
@@ -0,0 +1,71 @@
|
||||
%global sname mod_wsgi
|
||||
|
||||
%{!?_httpd_apxs: %{expand: %%global _httpd_apxs %%{_sbindir}/apxs}}
|
||||
|
||||
%{!?_httpd_mmn: %{expand: %%global _httpd_mmn %%(cat %{_includedir}/httpd/.mmn 2>/dev/null || echo 0-0)}}
|
||||
%{!?_httpd_confdir: %{expand: %%global _httpd_confdir %%{_sysconfdir}/httpd/conf.d}}
|
||||
# /etc/httpd/conf.d with httpd < 2.4 and defined as /etc/httpd/conf.modules.d with httpd >= 2.4
|
||||
%{!?_httpd_modconfdir: %{expand: %%global _httpd_modconfdir %%{_sysconfdir}/httpd/conf.d}}
|
||||
%{!?_httpd_moddir: %{expand: %%global _httpd_moddir %%{_libdir}/httpd/modules}}
|
||||
|
||||
%global debug_package %{nil}
|
||||
|
||||
Name: pgadmin4-python3-%{sname}
|
||||
Version: 4.9.0
|
||||
Release: 1%{?dist}
|
||||
Summary: A WSGI interface for Python web applications in Apache (customized for pgAdmin4)
|
||||
License: ASL 2.0
|
||||
URL: https://modwsgi.readthedocs.io/
|
||||
Source0: https://github.com/GrahamDumpleton/%{sname}/archive/%{version}.tar.gz#/mod_wsgi-%{version}.tar.gz
|
||||
Source2: %{name}.conf
|
||||
Patch1: %{name}-exports.patch
|
||||
|
||||
Requires: httpd-mmn = %{_httpd_mmn}
|
||||
BuildRequires: python3-devel
|
||||
BuildRequires: httpd-devel
|
||||
BuildRequires: gcc
|
||||
|
||||
# Suppress auto-provides for module DSO
|
||||
%{?filter_provides_in: %filter_provides_in %{_httpd_moddir}/.*\.so$}
|
||||
%{?filter_setup}
|
||||
|
||||
%global _description\
|
||||
The mod_wsgi adapter is an Apache module that provides a WSGI compliant\
|
||||
interface for hosting Python based web applications within Apache. The\
|
||||
adapter is written completely in C code against the Apache C runtime and\
|
||||
for hosting WSGI applications within Apache has a lower overhead than using\
|
||||
existing WSGI adapters for mod_python or CGI.\
|
||||
|
||||
%description %_description
|
||||
|
||||
%prep
|
||||
%autosetup -p1 -n %{sname}-%{version}
|
||||
|
||||
%build
|
||||
export LDFLAGS="$RPM_LD_FLAGS -L%{_libdir}"
|
||||
export CFLAGS="$RPM_OPT_FLAGS -fno-strict-aliasing"
|
||||
|
||||
%configure --enable-shared --with-apxs=%{_httpd_apxs} --with-python=python3
|
||||
%{__make} %{?_smp_mflags}
|
||||
%{_bindir}/python3 setup.py build
|
||||
|
||||
%install
|
||||
%{__make} install DESTDIR=%{buildroot} LIBEXECDIR=%{_httpd_moddir}
|
||||
%{__install} -d -m 755 %{buildroot}%{_httpd_modconfdir}
|
||||
%{__install} -p -m 644 %{SOURCE2} %{buildroot}%{_httpd_modconfdir}/10-pgadmin4-python3-mod_wsgi.conf
|
||||
%{_bindir}/python3 setup.py install -O1 --skip-build --root %{buildroot}
|
||||
%{__mv} %{buildroot}%{_httpd_moddir}/mod_wsgi.so %{buildroot}%{_httpd_moddir}/pgadmin4-python3-mod_wsgi.so
|
||||
%{__mv} %{buildroot}%{_bindir}/mod_wsgi-express %{buildroot}%{_bindir}/pgadmin4-mod_wsgi-express-3
|
||||
|
||||
%files
|
||||
%license LICENSE
|
||||
%doc CREDITS.rst README.rst
|
||||
%config(noreplace) %{_httpd_modconfdir}/*pgadmin4-python3-mod_wsgi.conf
|
||||
%{_httpd_moddir}/pgadmin4-python3-mod_wsgi.so
|
||||
%{python3_sitearch}/mod_wsgi-*.egg-info
|
||||
%{python3_sitearch}/mod_wsgi
|
||||
%{_bindir}/pgadmin4-mod_wsgi-express-3
|
||||
|
||||
%changelog
|
||||
* Fri Mar 6 2020 Devrim Gündüz <devrim@gunduz.org> - 4.6.8-2
|
||||
- Initial packaging for the PostgreSQL YUM repository
|
||||
@@ -0,0 +1,11 @@
|
||||
--- mod_wsgi-4.5.20/Makefile.in.exports
|
||||
+++ mod_wsgi-4.5.20/Makefile.in
|
||||
@@ -28,7 +28,7 @@
|
||||
all : src/server/mod_wsgi.la
|
||||
|
||||
src/server/mod_wsgi.la : $(SRCFILES)
|
||||
- $(APXS) -c $(CPPFLAGS) $(CFLAGS) $(SRCFILES) $(LDFLAGS) $(LDLIBS)
|
||||
+ $(APXS) -Wl,-export-symbols-regex -Wl,wsgi_module -c $(CPPFLAGS) $(CFLAGS) $(SRCFILES) $(LDFLAGS) $(LDLIBS)
|
||||
|
||||
$(DESTDIR)$(LIBEXECDIR) :
|
||||
mkdir -p $@
|
||||
@@ -0,0 +1,4 @@
|
||||
<IfModule !wsgi_module>
|
||||
LoadModule wsgi_module modules/pgadmin4-python3-mod_wsgi.so
|
||||
</IfModule>
|
||||
|
||||
@@ -8,18 +8,18 @@ fi
|
||||
OS_VERSION=$(grep "^VERSION_ID=" /etc/os-release | awk -F "=" '{ print $2 }' | sed 's/"//g' | awk -F "." '{ print $1 }')
|
||||
|
||||
# EPEL & other repos
|
||||
if [ "${OS_VERSION}" != "9" ]; then
|
||||
if [ "${OS_VERSION}" != 9 ]; then
|
||||
yum -y install centos-release-scl
|
||||
fi
|
||||
|
||||
yum install -y "https://dl.fedoraproject.org/pub/epel/epel-release-latest-${OS_VERSION}.noarch.rpm"
|
||||
if [ "${OS_VERSION}" == "8" ] || [ "${OS_VERSION}" == "9" ]; then
|
||||
if [ "${OS_VERSION}" == 8 ] || [ "${OS_VERSION}" == 9 ]; then
|
||||
yum config-manager --enable PowerTools AppStream BaseOS "*epel"
|
||||
dnf -qy module disable postgresql
|
||||
fi
|
||||
|
||||
# PostgreSQL repo
|
||||
if [ "${OS_VERSION}" == "8" ] || [ "${OS_VERSION}" == "9" ]; then
|
||||
if [ "${OS_VERSION}" == 7 ] || [ "${OS_VERSION}" == 8 ] || [ "${OS_VERSION}" == 9 ]; then
|
||||
yum install -y "https://download.postgresql.org/pub/repos/yum/reporpms/EL-${OS_VERSION}-x86_64/pgdg-redhat-repo-latest.noarch.rpm"
|
||||
else
|
||||
yum install -y "https://download.postgresql.org/pub/repos/yum/reporpms/F-${OS_VERSION}-x86_64/pgdg-fedora-repo-latest.noarch.rpm"
|
||||
@@ -37,23 +37,35 @@ curl --silent --location https://dl.yarnpkg.com/rpm/yarn.repo | sudo tee /etc/yu
|
||||
echo "Installing build pre-requisites..."
|
||||
yum groupinstall -y "Development Tools"
|
||||
|
||||
if [ "${OS_VERSION}" == "8" ]; then
|
||||
yum install -y expect fakeroot postgresql15-devel python3.9-devel nodejs yarn rpm-build rpm-sign yum-utils krb5-devel
|
||||
pip3.9 install sphinx==6.1.3
|
||||
pip3.9 install sphinxcontrib-youtube
|
||||
elif [ "${OS_VERSION}" == "9" ]; then
|
||||
yum install -y expect libpq5-devel postgresql15-devel python3-devel nodejs yarn rpm-build rpm-sign yum-utils krb5-devel
|
||||
pip3 install sphinx==6.1.3
|
||||
if [ "${OS_VERSION}" == 7 ]; then
|
||||
yum install -y expect fakeroot httpd-devel postgresql14-devel python3-devel nodejs yarn rpm-build rpm-sign yum-utils krb5-devel
|
||||
pip3 install sphinx
|
||||
pip3 install sphinxcontrib-youtube
|
||||
elif [ "${OS_VERSION}" == 9 ]; then
|
||||
yum install -y expect postgresql14-devel python3-devel nodejs yarn rpm-build rpm-sign yum-utils krb5-devel
|
||||
pip3 install sphinx
|
||||
pip3 install sphinxcontrib-youtube
|
||||
else
|
||||
yum install -y expect fakeroot postgresql15-devel python3-devel nodejs yarn rpm-build rpm-sign yum-utils krb5-devel
|
||||
pip3 install sphinx==6.1.3
|
||||
yum install -y expect fakeroot postgresql14-devel python3-devel nodejs yarn rpm-build rpm-sign yum-utils krb5-devel
|
||||
pip3 install sphinx
|
||||
pip3 install sphinxcontrib-youtube
|
||||
fi
|
||||
|
||||
# Setup RPM macros for signing
|
||||
echo "Please add the following macros to ~/.rpmmacros for the user that will sign the RPMs if required:"
|
||||
echo
|
||||
if [ "${OS_VERSION}" == 7 ]; then
|
||||
cat << EOF
|
||||
# Macros for signing RPMs.
|
||||
|
||||
%_signature gpg
|
||||
%_gpg_path ~/.gnupg
|
||||
%_gpg_name Package Manager
|
||||
%_gpgbin /usr/bin/gpg2
|
||||
%__gpg_sign_cmd %{__gpg} gpg --force-v3-sigs --batch --verbose --no-armor --passphrase-fd 3 --no-secmem-warning -u "%{_gpg_name}" -sbo %{__
|
||||
signature_filename} --digest-algo sha256 %{__plaintext_filename}
|
||||
EOF
|
||||
else
|
||||
cat << EOF
|
||||
# Macros for signing RPMs.
|
||||
|
||||
@@ -64,5 +76,6 @@ echo
|
||||
%__gpg_sign_cmd %{__gpg} gpg --force-v3-sigs --batch --verbose --no-armor --no-secmem-warning -u "%{_gpg_name}" -sbo %{__signature_filename
|
||||
} --digest-algo sha256 %{__plaintext_filename}
|
||||
EOF
|
||||
fi
|
||||
|
||||
echo
|
||||
@@ -69,6 +69,18 @@ do
|
||||
tar cf - "${FILE}" | (cd "src-build/${TARBALL_NAME}"; tar xf -)
|
||||
done
|
||||
|
||||
pushd web > /dev/null || exit
|
||||
yarn install
|
||||
yarn run bundle
|
||||
|
||||
for FILE in pgadmin/static/js/generated/*
|
||||
do
|
||||
echo Adding "${FILE}"
|
||||
# shellcheck disable=SC2164
|
||||
tar cf - "${FILE}" | (cd "../src-build/${TARBALL_NAME}/web"; tar xf -)
|
||||
done
|
||||
popd > /dev/null || exit
|
||||
|
||||
# Create the tarball
|
||||
echo Creating tarball...
|
||||
cd src-build || exit
|
||||
|
||||
@@ -199,7 +199,7 @@ begin
|
||||
else
|
||||
begin
|
||||
// Suppose system is running a 32-bit version of Windows then no need to check HKLM64 in RegQueryStringValue
|
||||
// So IsWin64 - will make sure its should only execute on 64-bit version of windows.
|
||||
// So IsWin64 - will make sure its should only execute on 64-bit veersion of windows.
|
||||
if IsWin64 then
|
||||
begin
|
||||
// Check if pgAdmin 64 bit is already installed
|
||||
|
||||
@@ -8,49 +8,57 @@
|
||||
#
|
||||
###############################################################################
|
||||
|
||||
Flask==2.2.*
|
||||
Flask==2.0.3; python_version <= '3.6'
|
||||
Flask==2.1.*; python_version >= '3.7'
|
||||
Flask-Gravatar==0.*
|
||||
Flask-Login==0.*
|
||||
Flask-Mail==0.*
|
||||
Flask-Migrate==4.*
|
||||
dnspython==2.2.1
|
||||
greenlet==1.1.2; python_version <= '3.10'
|
||||
Flask-SQLAlchemy==3.0.*
|
||||
Flask-WTF==1.1.1
|
||||
Flask-SQLAlchemy==2.5.*
|
||||
Flask-WTF==1.0.1
|
||||
Flask-Compress==1.*
|
||||
Flask-Paranoid==0.*
|
||||
Flask-Babel==3.1.*
|
||||
Flask-Security-Too==5.1.*
|
||||
Flask-SocketIO==5.3.*
|
||||
WTForms==3.0.*
|
||||
Flask-Babel==2.*
|
||||
Flask-Security-Too==4.1.*
|
||||
Flask-SocketIO<=5.2.0
|
||||
WTForms==3.*
|
||||
passlib==1.*
|
||||
pytz==2023.*
|
||||
pytz==2021.*
|
||||
simplejson==3.*
|
||||
speaklater3==1.*
|
||||
sqlparse==0.*
|
||||
psutil==5.9.*
|
||||
psycopg[c]==3.1.8
|
||||
psutil==5.9.3
|
||||
psycopg2==2.9.*
|
||||
python-dateutil==2.*
|
||||
SQLAlchemy==2.*
|
||||
bcrypt==4.0.*
|
||||
cryptography==40.0.*
|
||||
SQLAlchemy==1.4.44; python_version <= '3.6'
|
||||
SQLAlchemy==1.4.*; python_version >= '3.7'
|
||||
bcrypt==3.*
|
||||
cryptography==3.*
|
||||
sshtunnel==0.*
|
||||
ldap3==2.*
|
||||
gssapi==1.8.*
|
||||
eventlet==0.33.3
|
||||
gssapi==1.7.*; python_version <= '3.6'
|
||||
gssapi==1.8.*; python_version >= '3.7'
|
||||
eventlet==0.33.0
|
||||
httpagentparser==1.9.*
|
||||
user-agents==2.2.0
|
||||
pywinpty==2.0.*; sys_platform=="win32"
|
||||
Authlib==1.2.*
|
||||
requests==2.28.*
|
||||
pywinpty==1.1.*; sys_platform=="win32"
|
||||
Authlib==0.15.*; python_version <= '3.6'
|
||||
Authlib==1.1.*; python_version >= '3.7'
|
||||
requests==2.25.*
|
||||
pyotp==2.*
|
||||
qrcode==7.*
|
||||
Pillow==9.*
|
||||
boto3==1.26.*
|
||||
botocore==1.29.*
|
||||
Pillow==8.4.*; python_version <= '3.6'
|
||||
Pillow==9.*; python_version >= '3.7'
|
||||
boto3==1.23.*; python_version <= '3.6'
|
||||
boto3==1.26.*; python_version >= '3.7'
|
||||
botocore==1.26.*; python_version <= '3.6'
|
||||
botocore==1.29.*; python_version >= '3.7'
|
||||
urllib3==1.26.*
|
||||
Werkzeug==2.0.3; python_version <= '3.6'
|
||||
Werkzeug==2.1.2; python_version >= '3.7'
|
||||
azure-mgmt-rdbms==10.1.0
|
||||
azure-mgmt-resource==23.0.0
|
||||
azure-mgmt-subscription==3.1.1
|
||||
azure-identity==1.12.0
|
||||
google-api-python-client==2.*
|
||||
google-auth-oauthlib==1.0.0
|
||||
Werkzeug==2.2.3
|
||||
azure-mgmt-resource==21.0.0
|
||||
azure-mgmt-subscription==3.0.0
|
||||
azure-identity==1.9.0
|
||||
@@ -5,7 +5,7 @@
|
||||
"repository": "https://github.com/postgres/pgadmin4.git",
|
||||
"author": "pgAdmin Development Team (https://www.pgadmin.org/)",
|
||||
"license": "PostgreSQL",
|
||||
"chromium-args": "--disable-popup-blocking --disable-gpu --disable-devtools",
|
||||
"chromium-args": "--disable-popup-blocking --disable-gpu",
|
||||
"user-agent": "Nwjs:%nwver-%osinfo-%chromium_ver",
|
||||
"nodejs": true,
|
||||
"window": {
|
||||
@@ -20,12 +20,12 @@
|
||||
"icon": "assets/pgAdmin4.png"
|
||||
},
|
||||
"dependencies": {
|
||||
"axios": "^1.3.5",
|
||||
"axios": "^0.21.2",
|
||||
"bootstrap": "^4.5.3"
|
||||
},
|
||||
"devDependencies": {
|
||||
"eslint": "^8.38.0",
|
||||
"nw": "^0.72.0"
|
||||
"eslint": "^6.3.0",
|
||||
"nw": "0.72.0"
|
||||
},
|
||||
"scripts": {
|
||||
"linter": "yarn eslint --no-eslintrc -c .eslintrc.js --ext .js ."
|
||||
|
||||
@@ -424,18 +424,6 @@ let ConfigureStore = {
|
||||
},
|
||||
};
|
||||
|
||||
function parseConsoleArgs(_method, args) {
|
||||
const retData = Array.from(args).map(arg => {
|
||||
try {
|
||||
if(arg.stack) return arg.stack;
|
||||
return JSON.stringify(arg);
|
||||
} catch (e) {
|
||||
return arg
|
||||
}
|
||||
});
|
||||
return retData?.join(' ');
|
||||
}
|
||||
|
||||
|
||||
module.exports = {
|
||||
readServerLog: readServerLog,
|
||||
@@ -456,5 +444,4 @@ module.exports = {
|
||||
unregisterZoomEvents: unregisterZoomEvents,
|
||||
setZoomLevelForAllWindows: setZoomLevelForAllWindows,
|
||||
ConfigureStore: ConfigureStore,
|
||||
parseConsoleArgs: parseConsoleArgs,
|
||||
};
|
||||
@@ -11,7 +11,6 @@ const fs = require('fs');
|
||||
const path = require('path');
|
||||
const misc = require('../js/misc.js');
|
||||
const spawn = require('child_process').spawn;
|
||||
const {EOL} = require('os');
|
||||
|
||||
let pgadminServerProcess = null;
|
||||
let startPageUrl = null;
|
||||
@@ -79,12 +78,6 @@ function startDesktopMode() {
|
||||
let updated_path = process.env[key] + ':/usr/local/bin';
|
||||
process.env[key] = updated_path;
|
||||
}
|
||||
|
||||
if (platform() === 'win32' && (key === 'PATH' || key == 'Path')) {
|
||||
let _libpq_path = path.join(path.dirname(path.dirname(path.resolve(pgadminFile))), 'runtime');
|
||||
process.env[key] = _libpq_path + ';' + process.env[key];
|
||||
}
|
||||
|
||||
misc.writeServerLog(' - ' + key + ': ' + process.env[key]);
|
||||
});
|
||||
misc.writeServerLog('--------------------------------------------------------\n');
|
||||
@@ -250,10 +243,6 @@ function launchPgAdminWindow() {
|
||||
* nothing but a splash screen. We will have to make it null,
|
||||
* so that open in new browser tab will work.
|
||||
*/
|
||||
pgadminWindow.window.hookConsole((method, args)=>{
|
||||
misc.writeServerLog(
|
||||
`--------------[UI ${method}]---------------${EOL}${misc.parseConsoleArgs(method, args)}${EOL}------------[UI End]----------------`);
|
||||
});
|
||||
pgadminWindow.window.opener = null;
|
||||
|
||||
// Show new window
|
||||
@@ -685,4 +674,4 @@ function refreshMenuItems(menu) {
|
||||
}
|
||||
});
|
||||
|
||||
}
|
||||
}
|
||||
@@ -1,51 +0,0 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
|
||||
##########################################################################
|
||||
#
|
||||
# pgAdmin 4 - PostgreSQL Tools
|
||||
#
|
||||
# Copyright (C) 2013 - 2023, The pgAdmin Development Team
|
||||
# This software is released under the PostgreSQL Licence
|
||||
#
|
||||
##########################################################################
|
||||
|
||||
# Get the URL to the latest version of a package in a StackBuilder catalog
|
||||
|
||||
import os
|
||||
import sys
|
||||
|
||||
from urllib.request import urlopen, urlretrieve
|
||||
import xml.etree.ElementTree as ET
|
||||
|
||||
if len(sys.argv) != 4:
|
||||
print('Usage: {} <Catalog URL> <Application ID> <Platform>'.
|
||||
format(sys.argv[0]))
|
||||
sys.exit(1)
|
||||
|
||||
# Get the catalog
|
||||
catalog = urlopen(sys.argv[1]).read().decode('utf-8')
|
||||
apps = ET.fromstring(catalog)
|
||||
|
||||
downloads = []
|
||||
for a in apps:
|
||||
if a.find('id').text == sys.argv[2] and \
|
||||
a.find('platform').text == sys.argv[3]:
|
||||
downloads.append({'version': a.find('version').text,
|
||||
'url': a.find('alturl').text,
|
||||
'format': a.find('format').text})
|
||||
|
||||
if len(downloads) == 0:
|
||||
print('No matching URLs found.')
|
||||
sys.exit(1)
|
||||
|
||||
# Make sure we're looking at the latest version
|
||||
downloads = sorted(downloads, key=lambda d: d['version'], reverse=True)
|
||||
|
||||
# Get the file
|
||||
filename, headers = urlretrieve(downloads[0]['url'])
|
||||
|
||||
if sys.argv[3].startswith('windows') and downloads[0]['format'] == 'exe':
|
||||
os.rename(filename, '{}.exe'.format(filename))
|
||||
filename = '{}.exe'.format(filename)
|
||||
|
||||
print(filename)
|
||||
@@ -1,25 +0,0 @@
|
||||
#!/usr/bin/env sh
|
||||
|
||||
TEST=0
|
||||
if [ "$1" = "--test" ];
|
||||
then
|
||||
TEST=1
|
||||
fi
|
||||
|
||||
echo Creating a blank environment...
|
||||
python3 -m venv venv || { echo 'ERROR: Failed to create the blank virtual env.' ; exit 1; }
|
||||
|
||||
echo Activating the virtual environment...
|
||||
. venv/bin/activate || { echo 'ERROR: Failed to activate the virtual env.' ; exit 1; }
|
||||
|
||||
echo Installing requirements...
|
||||
pip install --upgrade pip
|
||||
|
||||
if [ ${TEST} -eq 1 ];
|
||||
then
|
||||
echo Installing requirements for running Python tests...
|
||||
pip install --no-cache-dir wheel sphinx==6.1.3 sphinxcontrib-youtube -r web/regression/requirements.txt || { echo 'ERROR: Failed to install Python requirements.' ; exit 1; }
|
||||
else
|
||||
echo Installing requirements for executing and building only...
|
||||
pip install --no-cache-dir wheel sphinx==6.1.3 sphinxcontrib-youtube -r requirements.txt || { echo 'ERROR: Failed to install Python requirements.' ; exit 1; }
|
||||
fi
|
||||
@@ -221,8 +221,6 @@ def edit_browsers_json(browser_name, browser_version):
|
||||
'port': '4444', 'path': '/wd/hub'}})
|
||||
(existing_data['firefox']['versions']).update(data_to_insert)
|
||||
updated_data = existing_data
|
||||
print(updated_data)
|
||||
|
||||
else:
|
||||
print("Browser version not matched")
|
||||
file_edited = False
|
||||
|
||||
@@ -42,20 +42,6 @@ module.exports = {
|
||||
'react',
|
||||
'@babel',
|
||||
],
|
||||
'overrides': [
|
||||
{
|
||||
'files': ['**/*.ts', '**/*.tsx'],
|
||||
'plugins': [
|
||||
'@typescript-eslint',
|
||||
],
|
||||
'extends': ['eslint:recommended', 'plugin:@typescript-eslint/recommended', 'plugin:@typescript-eslint/eslint-recommended'],
|
||||
'parser': '@typescript-eslint/parser',
|
||||
'rules': {
|
||||
'@typescript-eslint/no-explicit-any': ['off'],
|
||||
'@typescript-eslint/no-this-alias': ['off'],
|
||||
}
|
||||
},
|
||||
],
|
||||
'globals': {
|
||||
'_': true,
|
||||
'module': true,
|
||||
|
||||
@@ -1,5 +0,0 @@
|
||||
nodeLinker: node-modules
|
||||
|
||||
logFilters:
|
||||
- code: YN0013
|
||||
level: discard
|
||||
@@ -42,8 +42,8 @@ APP_ICON = 'pg-icon'
|
||||
#
|
||||
|
||||
# Application version number components
|
||||
APP_RELEASE = 7
|
||||
APP_REVISION = 1
|
||||
APP_RELEASE = 6
|
||||
APP_REVISION = 21
|
||||
|
||||
# Application version suffix, e.g. 'beta1', 'dev'. Usually an empty string
|
||||
# for GA releases.
|
||||
@@ -52,7 +52,7 @@ APP_SUFFIX = ''
|
||||
# Numeric application version for upgrade checks. Should be in the format:
|
||||
# [X]XYYZZ, where X is the release version, Y is the revision, with a leading
|
||||
# zero if needed, and Z represents the suffix, with a leading zero if needed
|
||||
APP_VERSION_INT = 70100
|
||||
APP_VERSION_INT = 62100
|
||||
|
||||
# DO NOT CHANGE!
|
||||
# The application version string, constructed from the components
|
||||
@@ -78,7 +78,6 @@ LANGUAGES = {
|
||||
'cs': 'Czech',
|
||||
'fr': 'French',
|
||||
'de': 'German',
|
||||
'id': 'Indonesian',
|
||||
'it': 'Italian',
|
||||
'ja': 'Japanese',
|
||||
'ko': 'Korean',
|
||||
@@ -304,7 +303,7 @@ LOG_ROTATION_MAX_LOG_FILES = 90 # Maximum number of backups to retain
|
||||
##########################################################################
|
||||
|
||||
# The default driver used for making connection with PostgreSQL
|
||||
PG_DEFAULT_DRIVER = 'psycopg3'
|
||||
PG_DEFAULT_DRIVER = 'psycopg2'
|
||||
|
||||
# Maximum allowed idle time in minutes before which releasing the connection
|
||||
# for the particular session. (in minutes)
|
||||
@@ -830,18 +829,6 @@ ENABLE_PSQL = False
|
||||
##########################################################################
|
||||
ENABLE_BINARY_PATH_BROWSING = False
|
||||
|
||||
##########################################################################
|
||||
# In server mode, the SHARED_STORAGE setting is used to enable shared storage.
|
||||
# Specify the name, path, and restricted_access values that should be shared
|
||||
# between users. When restricted_access is set to True, non-admin users cannot
|
||||
# upload/add, delete, or rename files/folders in shared storage, only admins
|
||||
# can do that. Users must provide the absolute path to the folder, and the name
|
||||
# can be anything they see on the user interface.
|
||||
# [{ 'name': 'Shared 1', 'path': '/shared_folder',
|
||||
# 'restricted_access': True/False}]
|
||||
##########################################################################
|
||||
SHARED_STORAGE = []
|
||||
|
||||
#############################################################################
|
||||
# AUTO_DISCOVER_SERVERS setting is used to enable the pgAdmin to discover the
|
||||
# database server automatically on the local machine.
|
||||
@@ -857,8 +844,80 @@ AUTO_DISCOVER_SERVERS = True
|
||||
#############################################################################
|
||||
SERVER_HEARTBEAT_TIMEOUT = 30 # In seconds
|
||||
|
||||
#############################################################################
|
||||
# Patch the default config with custom config and other manipulations
|
||||
#############################################################################
|
||||
from pgadmin.evaluate_config import evaluate_and_patch_config
|
||||
locals().update(evaluate_and_patch_config(locals()))
|
||||
##########################################################################
|
||||
# Local config settings
|
||||
##########################################################################
|
||||
# User configs loaded from config_local, config_distro etc.
|
||||
user_config_settings = {}
|
||||
|
||||
|
||||
# Function to Extract settings from config_local, config_distro etc.
|
||||
def get_variables_from_module(module_name):
|
||||
module = globals().get(module_name, None)
|
||||
variables = {}
|
||||
if module:
|
||||
variables = {key: value for key, value in module.__dict__.items()
|
||||
if not (key.startswith('__') or key.startswith('_'))}
|
||||
return variables
|
||||
|
||||
|
||||
# Load distribution-specific config overrides
|
||||
try:
|
||||
import config_distro
|
||||
config_distro_settings = get_variables_from_module('config_distro')
|
||||
user_config_settings.update(config_distro_settings)
|
||||
except ImportError:
|
||||
pass
|
||||
|
||||
# Load local config overrides
|
||||
try:
|
||||
import config_local
|
||||
config_local_settings = get_variables_from_module('config_local')
|
||||
user_config_settings.update(config_local_settings)
|
||||
except ImportError:
|
||||
pass
|
||||
|
||||
# Load system config overrides. We do this last, so that the sysadmin can
|
||||
# override anything they want from a config file that's in a protected system
|
||||
# directory and away from pgAdmin to avoid invalidating signatures.
|
||||
system_config_dir = '/etc/pgadmin'
|
||||
if sys.platform.startswith('win32'):
|
||||
system_config_dir = os.environ['CommonProgramFiles'] + '/pgadmin'
|
||||
elif sys.platform.startswith('darwin'):
|
||||
system_config_dir = '/Library/Preferences/pgadmin'
|
||||
|
||||
if os.path.exists(system_config_dir + '/config_system.py'):
|
||||
try:
|
||||
sys.path.insert(0, system_config_dir)
|
||||
import config_system
|
||||
config_system_settings = get_variables_from_module('config_system')
|
||||
user_config_settings.update(config_system_settings)
|
||||
except ImportError:
|
||||
pass
|
||||
|
||||
# Update settings for 'LOG_FILE', 'SQLITE_PATH', 'SESSION_DB_PATH',
|
||||
# 'AZURE_CREDENTIAL_CACHE_DIR', 'KERBEROS_CCACHE_DIR', 'STORAGE_DIR'
|
||||
# of DATA_DIR is user defined
|
||||
data_dir_dependent_settings = ['LOG_FILE', 'SQLITE_PATH', 'SESSION_DB_PATH',
|
||||
'AZURE_CREDENTIAL_CACHE_DIR',
|
||||
'KERBEROS_CCACHE_DIR', 'STORAGE_DIR']
|
||||
|
||||
if 'DATA_DIR' in user_config_settings:
|
||||
for setting in data_dir_dependent_settings:
|
||||
if setting not in user_config_settings:
|
||||
data_dir = user_config_settings['DATA_DIR']
|
||||
file_dir_name = os.path.basename(locals().get(setting))
|
||||
locals().update({setting: os.path.join(data_dir, file_dir_name)})
|
||||
|
||||
# Finally update config user configs
|
||||
locals().update(user_config_settings)
|
||||
|
||||
# Override DEFAULT_SERVER value from environment variable.
|
||||
if 'PGADMIN_CONFIG_DEFAULT_SERVER' in os.environ:
|
||||
DEFAULT_SERVER = os.environ['PGADMIN_CONFIG_DEFAULT_SERVER']
|
||||
|
||||
# Disable USER_INACTIVITY_TIMEOUT when SERVER_MODE=False
|
||||
if not SERVER_MODE:
|
||||
USER_INACTIVITY_TIMEOUT = 0
|
||||
# Enable PSQL in Desktop Mode.
|
||||
ENABLE_PSQL = True
|
||||
@@ -123,9 +123,9 @@ def upgrade():
|
||||
|
||||
if version < 11:
|
||||
# get metadata from current connection
|
||||
meta = sa.MetaData()
|
||||
meta = sa.MetaData(bind=op.get_bind())
|
||||
# define table representation
|
||||
meta.reflect(op.get_bind(), only=('role',))
|
||||
meta.reflect(only=('role',))
|
||||
role_table = sa.Table('role', meta)
|
||||
|
||||
op.execute(
|
||||
@@ -166,9 +166,9 @@ def upgrade():
|
||||
'value': security_password_salt}])
|
||||
|
||||
# get metadata from current connection
|
||||
meta = sa.MetaData()
|
||||
meta = sa.MetaData(bind=op.get_bind())
|
||||
# define table representation
|
||||
meta.reflect(op.get_bind(), only=('version',))
|
||||
meta.reflect(only=('version',))
|
||||
version_table = sa.Table('version', meta)
|
||||
|
||||
op.execute(
|
||||
|
||||
@@ -35,9 +35,9 @@ def upgrade():
|
||||
['username', 'auth_source'])
|
||||
|
||||
# For internal email is a user name, so update the existing records.
|
||||
meta = sa.MetaData()
|
||||
meta = sa.MetaData(bind=op.get_bind())
|
||||
# define table representation
|
||||
meta.reflect(op.get_bind(), only=('user',))
|
||||
meta.reflect(only=('user',))
|
||||
user_table = sa.Table('user', meta)
|
||||
|
||||
op.execute(
|
||||
|
||||
@@ -27,9 +27,9 @@ depends_on = None
|
||||
|
||||
def upgrade():
|
||||
# get metadata from current connection
|
||||
meta = sa.MetaData()
|
||||
meta = sa.MetaData(bind=op.get_bind())
|
||||
# define table representation
|
||||
meta.reflect(op.get_bind(), only=('server',))
|
||||
meta.reflect(only=('server',))
|
||||
server_table = sa.Table('server', meta)
|
||||
op.execute(
|
||||
server_table.update().where(server_table.c.connect_timeout == 0 or
|
||||
|
||||
@@ -29,9 +29,9 @@ def upgrade():
|
||||
op.add_column('user', sa.Column('fs_uniquifier', sa.String(),
|
||||
nullable=True))
|
||||
|
||||
meta = sa.MetaData()
|
||||
meta = sa.MetaData(bind=op.get_bind())
|
||||
# define table representation
|
||||
meta.reflect(op.get_bind(), only=('user',))
|
||||
meta.reflect(only=('user',))
|
||||
user_table = sa.Table('user', meta)
|
||||
|
||||
op.execute(
|
||||
|
||||
@@ -30,9 +30,9 @@ def upgrade():
|
||||
# If password is already exists for any existing server then change the
|
||||
# save_password column to 1 (True) else set 0
|
||||
# get metadata from current connection
|
||||
meta = sa.MetaData()
|
||||
meta = sa.MetaData(bind=op.get_bind())
|
||||
# define table representation
|
||||
meta.reflect(op.get_bind(), only=('server',))
|
||||
meta.reflect(only=('server',))
|
||||
server_table = sa.Table('server', meta)
|
||||
|
||||
op.execute(
|
||||
|
||||
@@ -52,25 +52,25 @@ def migrate_connection_params(table_name):
|
||||
pass
|
||||
|
||||
# define table representation
|
||||
meta = sa.MetaData()
|
||||
meta.reflect(op.get_bind(), only=(table_name,))
|
||||
meta = sa.MetaData(bind=op.get_bind())
|
||||
meta.reflect(only=(table_name,))
|
||||
server_table = sa.Table(table_name, meta)
|
||||
|
||||
# Create a select statement
|
||||
stmt = sa.select(
|
||||
stmt = sa.select([
|
||||
server_table.columns.id, server_table.columns.ssl_mode,
|
||||
server_table.columns.sslcert, server_table.columns.sslkey,
|
||||
server_table.columns.sslrootcert, server_table.columns.sslcrl,
|
||||
server_table.columns.sslcompression, server_table.columns.hostaddr,
|
||||
server_table.columns.passfile, server_table.columns.connect_timeout
|
||||
)
|
||||
])
|
||||
|
||||
# Fetch the data from the server table
|
||||
results = op.get_bind().execute(stmt).fetchall()
|
||||
for rows in results:
|
||||
connection_params = {}
|
||||
server_id = 0
|
||||
for key, value in rows._asdict().items():
|
||||
for key, value in rows.items():
|
||||
if key == 'id':
|
||||
server_id = value
|
||||
# Name is changed from ssl_mode to sslmode
|
||||
|
||||
@@ -114,8 +114,7 @@ def upgrade():
|
||||
current_app.config['SECURITY_PASSWORD_SALT'] = current_salt
|
||||
current_app.config['SECRET_KEY'] = secret_key
|
||||
user_datastore = SQLAlchemyUserDatastore(db, User, Role)
|
||||
Security(current_app.app_context().app, user_datastore,
|
||||
register_blueprint=False)
|
||||
Security(current_app, user_datastore, register_blueprint=False)
|
||||
else:
|
||||
current_app.config['SECURITY_PASSWORD_SALT'] = current_salt
|
||||
current_app.config['SECRET_KEY'] = secret_key
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
"license": "PostgreSQL",
|
||||
"devDependencies": {
|
||||
"@babel/core": "^7.10.2",
|
||||
"@babel/eslint-parser": "^7.21.3",
|
||||
"@babel/eslint-parser": "^7.17.0",
|
||||
"@babel/eslint-plugin": "^7.17.7",
|
||||
"@babel/plugin-proposal-object-rest-spread": "^7.10.1",
|
||||
"@babel/plugin-syntax-jsx": "^7.16.0",
|
||||
@@ -20,24 +20,22 @@
|
||||
"@emotion/styled": "^10.0.14",
|
||||
"@emotion/utils": "^1.0.0",
|
||||
"@svgr/webpack": "^6.2.1",
|
||||
"@typescript-eslint/eslint-plugin": "^5.57.0",
|
||||
"@typescript-eslint/parser": "^5.57.0",
|
||||
"@wojtekmaj/enzyme-adapter-react-17": "^0.8.0",
|
||||
"@wojtekmaj/enzyme-adapter-react-17": "^0.4.1",
|
||||
"autoprefixer": "^10.2.4",
|
||||
"axios-mock-adapter": "^1.17.0",
|
||||
"babel-loader": "^8.1.0",
|
||||
"browserify": "^17.0.0",
|
||||
"buffer": "^6.0.3",
|
||||
"copy-webpack-plugin": "^11.0.0",
|
||||
"copy-webpack-plugin": "^7.0.0",
|
||||
"core-js": "^3.2.1",
|
||||
"cross-env": "^7.0.3",
|
||||
"css-loader": "^6.7.2",
|
||||
"css-minimizer-webpack-plugin": "^3.0.0",
|
||||
"enzyme": "^3.11.0",
|
||||
"eslint": "^8.37.0",
|
||||
"eslint-plugin-react": "^7.32.2",
|
||||
"eslint": "^7.19.0",
|
||||
"eslint-plugin-react": "^7.20.5",
|
||||
"eslint-plugin-react-hooks": "^4.3.0",
|
||||
"exports-loader": "^4.0.0",
|
||||
"exports-loader": "^2.0.0",
|
||||
"html-react-parser": "^1.2.7",
|
||||
"image-minimizer-webpack-plugin": "^2.2.0",
|
||||
"imagemin-mozjpeg": "^10.0.0",
|
||||
@@ -56,11 +54,12 @@
|
||||
"karma-jasmine-html-reporter": "^1.4.0",
|
||||
"karma-requirejs": "~1.1.0",
|
||||
"karma-source-map-support": "^1.4.0",
|
||||
"karma-sourcemap-loader": "^0.4.0",
|
||||
"karma-sourcemap-loader": "^0.3.7",
|
||||
"karma-webpack": "^5.0.0",
|
||||
"loader-utils": "^3.2.1",
|
||||
"mini-css-extract-plugin": "^1.3.5",
|
||||
"postcss-loader": "^7.1.0",
|
||||
"popper.js": "^1.16.1",
|
||||
"postcss-loader": "^5.0.0",
|
||||
"process": "^0.11.10",
|
||||
"prop-types": "^15.7.2",
|
||||
"resize-observer-polyfill": "^1.5.1",
|
||||
@@ -68,18 +67,18 @@
|
||||
"sass-loader": "^11.0.0",
|
||||
"sass-resources-loader": "^2.2.1",
|
||||
"shim-loader": "^1.0.1",
|
||||
"style-loader": "^3.3.2",
|
||||
"style-loader": "^3.3.1",
|
||||
"stylis": "^4.0.7",
|
||||
"svgo": "^2.7.0",
|
||||
"svgo-loader": "^2.2.0",
|
||||
"terser-webpack-plugin": "^5.1.1",
|
||||
"typescript": "^3.2.2",
|
||||
"url-loader": "^4.1.1",
|
||||
"webfonts-loader": "^8.0.1",
|
||||
"webpack": "^5.76.3",
|
||||
"webpack-bundle-analyzer": "^4.8.0",
|
||||
"webfonts-loader": "^7.5.2",
|
||||
"webpack": "^5.21.2",
|
||||
"webpack-bundle-analyzer": "^4.4.0",
|
||||
"webpack-cli": "^4.5.0",
|
||||
"yarn-audit-html": "4.0.0"
|
||||
"yarn-audit-html": "^4.0.0"
|
||||
},
|
||||
"dependencies": {
|
||||
"@babel/plugin-proposal-class-properties": "^7.10.4",
|
||||
@@ -96,7 +95,7 @@
|
||||
"@szhsin/react-menu": "^2.2.0",
|
||||
"@types/classnames": "^2.2.6",
|
||||
"@types/react": "^16.7.18",
|
||||
"@types/react-dom": "^17.0.11",
|
||||
"@types/react-dom": "^16.0.11",
|
||||
"ajv": "^8.8.2",
|
||||
"anti-trojan-source": "^1.4.0",
|
||||
"aspen-decorations": "^1.0.2",
|
||||
@@ -104,6 +103,8 @@
|
||||
"babelify": "~10.0.0",
|
||||
"bignumber.js": "^9.0.1",
|
||||
"bootstrap": "^4.3.1",
|
||||
"bootstrap-datepicker": "^1.8.0",
|
||||
"bootstrap4-toggle": "^3.6.1",
|
||||
"brace": "^0.11.1",
|
||||
"browserfs": "^1.4.3",
|
||||
"chart.js": "^3.0.0",
|
||||
@@ -121,7 +122,6 @@
|
||||
"insert-if": "^1.1.0",
|
||||
"ip-address": "^7.1.0",
|
||||
"jquery": "^3.6.0",
|
||||
"jquery-contextmenu": "^2.9.2",
|
||||
"json-bignumber": "^1.0.1",
|
||||
"jsoneditor": "^9.5.4",
|
||||
"karma-coverage": "^2.0.3",
|
||||
@@ -136,37 +136,38 @@
|
||||
"path-fx": "^2.0.0",
|
||||
"pathfinding": "^0.4.18",
|
||||
"paths-js": "^0.4.9",
|
||||
"popper.js": "^1.16.1",
|
||||
"postcss": "^8.2.15",
|
||||
"raf": "^3.4.1",
|
||||
"rc-dock": "^3.2.9",
|
||||
"react": "^17.0.1",
|
||||
"react-aspen": "^1.1.0",
|
||||
"react-checkbox-tree": "^1.7.2",
|
||||
"react-data-grid": "https://github.com/pgadmin-org/react-data-grid.git#200d2f5e02de694e3e9ffbe177c279bc40240fb8",
|
||||
"react-data-grid": "git+https://github.com/pgadmin-org/react-data-grid.git/#200d2f5e02de694e3e9ffbe177c279bc40240fb8",
|
||||
"react-dnd": "^16.0.1",
|
||||
"react-dnd-html5-backend": "^16.0.1",
|
||||
"react-dom": "^17.0.1",
|
||||
"react-draggable": "^4.4.4",
|
||||
"react-dropzone": "^14.2.1",
|
||||
"react-leaflet": "^3.2.2",
|
||||
"react-resize-detector": "^9.1.0",
|
||||
"react-resize-detector": "^8.0.3",
|
||||
"react-rnd": "^10.3.5",
|
||||
"react-router-dom": "^6.2.2",
|
||||
"react-select": "^5.7.2",
|
||||
"react-select": "^4.2.1",
|
||||
"react-table": "^7.6.3",
|
||||
"react-timer-hook": "^3.0.5",
|
||||
"react-virtualized-auto-sizer": "^1.0.6",
|
||||
"react-window": "^1.8.5",
|
||||
"select2": "^4.0.13",
|
||||
"snapsvg-cjs": "^0.0.6",
|
||||
"socket.io-client": "^4.5.0",
|
||||
"split.js": "^1.5.10",
|
||||
"styled-components": "^5.2.1",
|
||||
"tempusdominus-bootstrap-4": "^5.1.2",
|
||||
"tempusdominus-core": "^5.19.3",
|
||||
"uplot": "^1.6.24",
|
||||
"uplot-react": "^1.1.4",
|
||||
"valid-filename": "^2.0.1",
|
||||
"webcabin-docker": "https://github.com/pgadmin-org/wcdocker#460fc6d90ba170bb177faaa8277f5fbb8279522a",
|
||||
"webcabin-docker": "git+https://github.com/pgadmin-org/wcdocker/#3df8aac825ee2892f4d824de273b779cc6dbcad8",
|
||||
"wkx": "^0.5.0",
|
||||
"xterm": "^4.11.0",
|
||||
"xterm-addon-fit": "^0.5.0",
|
||||
@@ -174,13 +175,13 @@
|
||||
"xterm-addon-web-links": "^0.4.0"
|
||||
},
|
||||
"scripts": {
|
||||
"linter": "yarn eslint --no-eslintrc -c .eslintrc.js --ext .js --ext .jsx --ext .ts --ext .tsx .",
|
||||
"linter": "yarn eslint --no-eslintrc -c .eslintrc.js --ext .js --ext .jsx .",
|
||||
"webpacker": "yarn run webpack --config webpack.config.js --progress",
|
||||
"webpacker:watch": "yarn run webpack --config webpack.config.js --progress --watch",
|
||||
"bundle:watch": "yarn run linter && yarn run webpacker:watch",
|
||||
"bundle:dev": "yarn run linter && yarn run webpacker",
|
||||
"bundle:analyze": "cross-env NODE_ENV=production ANALYZE=true yarn run bundle:dev",
|
||||
"bundle": "cross-env NODE_ENV=production NODE_OPTIONS=--max-old-space-size=2048 yarn run bundle:dev",
|
||||
"bundle": "cross-env NODE_ENV=production NODE_OPTIONS=--max-old-space-size=8192 yarn run bundle:dev",
|
||||
"test:karma-once": "yarn run linter && yarn run karma start --single-run",
|
||||
"test:karma": "yarn run linter && yarn run karma start",
|
||||
"test:karma-coverage": "yarn run test:karma-once --reporters coverage,progress",
|
||||
@@ -191,6 +192,5 @@
|
||||
"auditjs": "yarn audit --groups dependencies",
|
||||
"auditpy": "safety check --full-report -i 51668 -i 52495",
|
||||
"audit": "yarn run auditjs && yarn run auditpy"
|
||||
},
|
||||
"packageManager": "yarn@3.5.0"
|
||||
}
|
||||
}
|
||||
@@ -11,11 +11,13 @@
|
||||
a webserver, this will provide the WSGI interface, otherwise, we're going
|
||||
to start a web server."""
|
||||
|
||||
|
||||
import sys
|
||||
|
||||
if sys.version_info < (3, 4):
|
||||
raise RuntimeError('This application must be run under Python 3.4 '
|
||||
'or later.')
|
||||
|
||||
import builtins
|
||||
import os
|
||||
|
||||
@@ -33,17 +35,6 @@ if 'PGADMIN_SERVER_MODE' in os.environ:
|
||||
else:
|
||||
builtins.SERVER_MODE = None
|
||||
|
||||
if (3, 10) > sys.version_info > (3, 8) and os.name == 'posix':
|
||||
# Fix eventlet issue with Python 3.9.
|
||||
# Ref: https://github.com/eventlet/eventlet/issues/670
|
||||
# This was causing issue in psycopg3
|
||||
import select
|
||||
from eventlet import hubs
|
||||
hubs.use_hub("poll")
|
||||
|
||||
import selectors
|
||||
selectors.DefaultSelector = selectors.PollSelector
|
||||
|
||||
import config
|
||||
import setup
|
||||
from pgadmin import create_app, socketio
|
||||
@@ -100,6 +91,7 @@ if not os.path.isfile(config.SQLITE_PATH):
|
||||
# it can be imported
|
||||
##########################################################################
|
||||
app = create_app()
|
||||
app.debug = False
|
||||
app.config['sessions'] = dict()
|
||||
|
||||
if setup_db_required:
|
||||
@@ -161,6 +153,22 @@ def main():
|
||||
setattr(sys, _name,
|
||||
open(os.devnull, 'r' if _name == 'stdin' else 'w'))
|
||||
|
||||
# Build Javascript files when DEBUG
|
||||
if config.DEBUG:
|
||||
from pgadmin.utils.javascript.javascript_bundler import \
|
||||
JavascriptBundler, JsState
|
||||
app.debug = True
|
||||
|
||||
javascript_bundler = JavascriptBundler()
|
||||
javascript_bundler.bundle()
|
||||
if javascript_bundler.report() == JsState.NONE:
|
||||
app.logger.error(
|
||||
"Unable to generate javascript.\n"
|
||||
"To run the app ensure that yarn install command runs "
|
||||
"successfully"
|
||||
)
|
||||
raise RuntimeError("No generated javascript, aborting")
|
||||
|
||||
# Output a startup message if we're not under the runtime and startup.
|
||||
# If we're under WSGI, we don't need to worry about this
|
||||
if not app.PGADMIN_RUNTIME:
|
||||
@@ -195,19 +203,19 @@ def main():
|
||||
app.run(
|
||||
host=config.DEFAULT_SERVER,
|
||||
port=config.EFFECTIVE_SERVER_PORT,
|
||||
debug=config.DEBUG,
|
||||
use_reloader=(
|
||||
(not app.PGADMIN_RUNTIME) and
|
||||
(not app.PGADMIN_RUNTIME) and app.debug and
|
||||
os.environ.get("WERKZEUG_RUN_MAIN") is not None
|
||||
),
|
||||
threaded=config.THREADED_MODE
|
||||
)
|
||||
else:
|
||||
# Can use cheroot instead of flask dev server when not in debug
|
||||
# 10 is default thread count in CherootServer
|
||||
# num_threads = 10 if config.THREADED_MODE else 1
|
||||
try:
|
||||
socketio.run(
|
||||
app,
|
||||
debug=config.DEBUG,
|
||||
allow_unsafe_werkzeug=True,
|
||||
host=config.DEFAULT_SERVER,
|
||||
port=config.EFFECTIVE_SERVER_PORT,
|
||||
)
|
||||
|
||||