Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
9e58717321 | ||
|
|
c3a334f8df | ||
|
|
72a4f93e4f | ||
|
|
09e13b2f37 | ||
|
|
60078c37a3 | ||
|
|
1cf9ced260 | ||
|
|
50cf6489b9 | ||
|
|
621a48c642 | ||
|
|
c841c82220 | ||
|
|
22b89265d6 | ||
|
|
e2c20b5022 | ||
|
|
2dd7de73b9 | ||
|
|
bd227e03bd | ||
|
|
413202899f | ||
|
|
bd2a484c2f | ||
|
|
5e8a75cdf9 | ||
|
|
d8ed75dbfd | ||
|
|
4392b83a98 | ||
|
|
256d1e55c8 | ||
|
|
c2dcfdb96f | ||
|
|
46c7562ed2 | ||
|
|
42018e69a5 | ||
|
|
56c6fc6b72 | ||
|
|
c0a6ff3029 | ||
|
|
79f3db5ea5 | ||
|
|
b5327cbe17 | ||
|
|
217e9ed0b1 | ||
|
|
82c7a94023 | ||
|
|
1a1b63f92a | ||
|
|
6810fa6ce6 | ||
|
|
8876c4241f | ||
|
|
190574b3af | ||
|
|
fac1857579 | ||
|
|
acedd38899 | ||
|
|
e3bf110f1f | ||
|
|
638d597061 | ||
|
|
588aa88144 | ||
|
|
c918407eb3 | ||
|
|
f87c981974 | ||
|
|
360ec29963 | ||
|
|
657b0f82ec | ||
|
|
2813d82996 | ||
|
|
b13dd2abc2 | ||
|
|
a5a5503821 | ||
|
|
cd2f48aeb1 | ||
|
|
88e515093c | ||
|
|
9ef5a53790 | ||
|
|
da530824d6 | ||
|
|
ea693396b8 | ||
|
|
f4cba74bf6 | ||
|
|
8b68ea6465 | ||
|
|
69046a9429 | ||
|
|
f3f8c1b7e8 | ||
|
|
042888f5d7 | ||
|
|
ec197c68b8 | ||
|
|
026c0d2389 | ||
|
|
032583e280 | ||
|
|
57b3771450 | ||
|
|
4dbfdd8740 | ||
|
|
f23fe38e0b | ||
|
|
321366489d | ||
|
|
6d5b1673e6 | ||
|
|
8be65ceb7b | ||
|
|
a8384a8826 | ||
|
|
9645bb3911 | ||
|
|
847059b717 | ||
|
|
08c776e308 | ||
|
|
716ef2f0db | ||
|
|
c5d5fbdafd | ||
|
|
9a8d520abd | ||
|
|
296befc881 | ||
|
|
00d3aaa1fd | ||
|
|
64399901ad | ||
|
|
0aba9703cd | ||
|
|
f8192b82b8 | ||
|
|
040e988323 | ||
|
|
849cd65bb7 | ||
|
|
382a35c25e | ||
|
|
0c22b78cf9 | ||
|
|
7d1a08f22f | ||
|
|
bce53e02e5 | ||
|
|
606b5287be | ||
|
|
b278265005 | ||
|
|
f9d881ffa6 | ||
|
|
6fcc4ae6a2 | ||
|
|
67d3f14c3d | ||
|
|
947dbf6d0a | ||
|
|
173cfb72b2 | ||
|
|
2e61eb0990 | ||
|
|
3417186df7 | ||
|
|
772c6ecd84 | ||
|
|
efe7f1de6a | ||
|
|
b51eef12b7 | ||
|
|
6cb71c9ae4 | ||
|
|
2e098c487a | ||
|
|
e592dfde2a | ||
|
|
7168499521 | ||
|
|
f5f79a516a | ||
|
|
44dc78f4df | ||
|
|
25c3142586 | ||
|
|
a44424d5fa | ||
|
|
bb4777578a | ||
|
|
2f4cae35bd | ||
|
|
a9bfa8a71d | ||
|
|
9e3f5f53cc | ||
|
|
8b354aec1d | ||
|
|
6101e72552 | ||
|
|
898c7b27df | ||
|
|
4d7fc8be52 | ||
|
|
f819841430 | ||
|
|
5d008f0525 | ||
|
|
b0d4200aa0 | ||
|
|
167bbe100e | ||
|
|
4e7422ed4b | ||
|
|
867b2a5149 | ||
|
|
2cc8f5f272 | ||
|
|
9be0fef470 | ||
|
|
b4759e776e | ||
|
|
1d8dfc110e | ||
|
|
6ed615a1fc | ||
|
|
7d12dc3b80 | ||
|
|
72a102aac8 | ||
|
|
17883fbd84 | ||
|
|
7a7782a350 | ||
|
|
b649094d36 | ||
|
|
8c45dea975 | ||
|
|
509c696aa3 | ||
|
|
866db40f48 | ||
|
|
9169d3d4bf | ||
|
|
f1e48b719d | ||
|
|
081bebaf80 | ||
|
|
1fe840fcac | ||
|
|
6cccb5da31 | ||
|
|
6c3f0a4606 | ||
|
|
d736f4266c | ||
|
|
33c88ceb68 | ||
|
|
a1f8e010b7 | ||
|
|
d924a7fb8d | ||
|
|
95905cfd5b | ||
|
|
c0122a72c8 | ||
|
|
ff838e43df | ||
|
|
c6d7a0a8da | ||
|
|
485c654c6e | ||
|
|
265bf61adf | ||
|
|
0bcabd59d3 | ||
|
|
6bda0d4891 | ||
|
|
97ddab93af | ||
|
|
6322674d98 | ||
|
|
f8fb78be11 | ||
|
|
15c37b620e | ||
|
|
28eb2c0b4b | ||
|
|
535c7eeef8 | ||
|
|
f0ecc95ca9 | ||
|
|
0e63914ab3 | ||
|
|
9b64acb3d2 | ||
|
|
0ab5e0d4ef | ||
|
|
4cb0f87dfd | ||
|
|
fa64e8b38f | ||
|
|
fb6cca415d | ||
|
|
b757d26933 | ||
|
|
9f64f5b8db | ||
|
|
a0aa185518 | ||
|
|
1f53baee8f | ||
|
|
6a79d0a195 | ||
|
|
8fd5efaa84 | ||
|
|
53cdc80df2 | ||
|
|
38d4728333 | ||
|
|
b0cd028ff8 | ||
|
|
100f59f78b | ||
|
|
23ea201325 | ||
|
|
441cc57bb8 | ||
|
|
a361fd94ff | ||
|
|
acb0eb2141 | ||
|
|
315d1a40a4 | ||
|
|
92dd13e72a | ||
|
|
0d39e791c9 | ||
|
|
53760dbf59 | ||
|
|
dd6f6cf1af | ||
|
|
5e96f0fd61 | ||
|
|
98d703645c | ||
|
|
cead7b0a6f | ||
|
|
139d9e21da | ||
|
|
d81bd595aa | ||
|
|
ed211a2bbb | ||
|
|
e21911b1c6 | ||
|
|
d3d1eb3355 | ||
|
|
d8381918a7 | ||
|
|
e9af0c3226 | ||
|
|
e5012ea9c6 | ||
|
|
306269af5d | ||
|
|
6563067892 | ||
|
|
8bae604129 | ||
|
|
f451f89d38 | ||
|
|
61413c1902 | ||
|
|
f88ca891fa | ||
|
|
445e89576b | ||
|
|
1a1734cf5c | ||
|
|
a0f7d0d50f | ||
|
|
c4dc839d7c | ||
|
|
f5c1cd9df8 | ||
|
|
177653370a | ||
|
|
6bf522da0f | ||
|
|
922603975f | ||
|
|
7284f98c79 | ||
|
|
8bbc6ecdb8 | ||
|
|
7cbde91140 | ||
|
|
5bdff56b8d | ||
|
|
96ce010635 | ||
|
|
47fcf87ae4 | ||
|
|
1257ec9969 | ||
|
|
cda7d7de90 | ||
|
|
e7981c7f11 | ||
|
|
ba87cbecfd | ||
|
|
bf6b963c45 | ||
|
|
9f8acfc51d | ||
|
|
8cf316b853 | ||
|
|
55817f685f | ||
|
|
35d585251a | ||
|
|
242dd48cbd | ||
|
|
30134800f3 | ||
|
|
e517fdf6bc | ||
|
|
b00ea3cd99 | ||
|
|
c0b6c8726e | ||
|
|
52c550e3fe | ||
|
|
57e72ce598 | ||
|
|
ba3deb5b9b | ||
|
|
fb0022923a | ||
|
|
ccaea82341 | ||
|
|
1a143c9e2c | ||
|
|
23d15bde8b | ||
|
|
49c55b41a2 | ||
|
|
4f822c8021 | ||
|
|
c3801165a5 | ||
|
|
fdf58f2d85 | ||
|
|
9a3b3530a6 | ||
|
|
b280c91013 | ||
|
|
95f6a63c70 | ||
|
|
96965797f6 | ||
|
|
7b5d96c5a6 | ||
|
|
00e2480b7b | ||
|
|
f98e3fa1fd | ||
|
|
81d8ea56f8 | ||
|
|
654dc0e2d7 | ||
|
|
b4e4b9d498 | ||
|
|
52af8d3e49 | ||
|
|
546806c40c | ||
|
|
ca7e93cc2c | ||
|
|
4ee76ba8c9 | ||
|
|
5d7ec14076 | ||
|
|
88f033e2a8 | ||
|
|
2e878a3fb2 | ||
|
|
c6e7ce03cc | ||
|
|
c45fb47b08 | ||
|
|
d39fe78239 | ||
|
|
0399d0be15 | ||
|
|
19237fe247 | ||
|
|
729c370125 | ||
|
|
636c224bd0 | ||
|
|
ab25238f17 | ||
|
|
b9ffbf73e0 | ||
|
|
23cad47f8d | ||
|
|
5fd308aafc | ||
|
|
88bee071e5 | ||
|
|
1fcb1f0228 | ||
|
|
9544ce1d18 | ||
|
|
8cf15ea17c | ||
|
|
bc10fa5c03 | ||
|
|
1d5f5a2067 | ||
|
|
70a7c42be1 | ||
|
|
d0e6090761 | ||
|
|
87ba177ff3 | ||
|
|
0511554db9 | ||
|
|
026292f07b | ||
|
|
18d507780d | ||
|
|
3aedae1436 | ||
|
|
9cbb9a3d24 | ||
|
|
b173fda116 | ||
|
|
d9ccef94a2 | ||
|
|
eff63931f2 | ||
|
|
3ec676194b | ||
|
|
8030bc708b | ||
|
|
fd78faf0cc | ||
|
|
bfcdcdc4f1 | ||
|
|
a75273a714 | ||
|
|
c9cc5257c7 | ||
|
|
3b4fa40253 | ||
|
|
9ee896aac4 | ||
|
|
01cb1839f8 | ||
|
|
1eb07608e9 | ||
|
|
8e16e000c3 | ||
|
|
64d7c2c62d | ||
|
|
e028ebc152 | ||
|
|
30051f3257 | ||
|
|
c4a52687b6 | ||
|
|
a06c13623d | ||
|
|
b303693ae8 | ||
|
|
6b012193e3 | ||
|
|
cd6ff48cc0 | ||
|
|
dbdea181a9 | ||
|
|
721a5da895 | ||
|
|
8578acd915 | ||
|
|
f3c95d9643 | ||
|
|
5c5b61c4db | ||
|
|
760e38293c | ||
|
|
dcfef154ce | ||
|
|
10b2e91e29 | ||
|
|
4f415f9768 | ||
|
|
93b5bc6bf8 | ||
|
|
60c2d0e23b | ||
|
|
c44710c9d7 | ||
|
|
37e034b3ef | ||
|
|
adb8fdb096 | ||
|
|
22cdb86aab | ||
|
|
576dc55615 | ||
|
|
f8fa1cf6d6 | ||
|
|
3bb9f0ba8c | ||
|
|
91eb60a363 | ||
|
|
4457a6a6a1 | ||
|
|
6f8cde67a6 | ||
|
|
391db5131d | ||
|
|
62a61b403e | ||
|
|
e8f108154d | ||
|
|
ccd84b7c2a | ||
|
|
522f3458f6 | ||
|
|
7efed95ac3 | ||
|
|
754cd223c1 | ||
|
|
a0b7dcca64 | ||
|
|
8876183981 | ||
|
|
feb3093c6d | ||
|
|
6f96f67655 | ||
|
|
3be2221948 | ||
|
|
7d0bbf30ec | ||
|
|
9933a9a9e5 | ||
|
|
227f047810 | ||
|
|
95ce9e976e | ||
|
|
4a645343a9 | ||
|
|
3d107ea618 | ||
|
|
19f5e41b09 | ||
|
|
f7eeefa3a9 | ||
|
|
a8f0f5bb4f | ||
|
|
44d40f0785 | ||
|
|
d0b2752fea | ||
|
|
8e0c080faf | ||
|
|
6410ae5f69 | ||
|
|
a60cbf00c8 | ||
|
|
3e7a220225 | ||
|
|
9026f46220 | ||
|
|
fedbe550db | ||
|
|
2b45a1f7d5 | ||
|
|
31a91409a0 | ||
|
|
9279393dcd | ||
|
|
20caa63508 | ||
|
|
6984e97f8d | ||
|
|
95ffd1b9a1 | ||
|
|
4c5639bee6 | ||
|
|
d4b72e2d89 | ||
|
|
0452828cc7 | ||
|
|
007c4840c2 | ||
|
|
2b04f3ca1d | ||
|
|
3706c3126a | ||
|
|
1ba9f005a7 | ||
|
|
c3d6f8887a | ||
|
|
439d6cb28f | ||
|
|
b0e7847962 | ||
|
|
a946c70869 | ||
|
|
5866da8194 | ||
|
|
ad34ee2699 | ||
|
|
e03d65d547 | ||
|
|
b5c8692f34 | ||
|
|
f96977733f | ||
|
|
33bd02d337 | ||
|
|
ab01dde2ba | ||
|
|
dea5335ce5 | ||
|
|
288fd7ed12 | ||
|
|
c98cea2ea9 | ||
|
|
056aff4742 | ||
|
|
6357672387 | ||
|
|
bdadc77235 | ||
|
|
0cb75bdcab | ||
|
|
bc3052ed1b | ||
|
|
df2f3460f0 | ||
|
|
bdf4f39b2b | ||
|
|
fff192eb95 | ||
|
|
c47390e643 | ||
|
|
fd944280f1 | ||
|
|
fa71b06874 | ||
|
|
591308fbe8 | ||
|
|
a03b513389 | ||
|
|
8857f0d179 | ||
|
|
2d2aa45ec5 | ||
|
|
ba5b66ff4f | ||
|
|
285e3afeee | ||
|
|
b3cf9ce185 | ||
|
|
18deb16e36 | ||
|
|
1a1266a5d6 | ||
|
|
7cdcaa0533 | ||
|
|
d5f6802e5f | ||
|
|
bc1a2a0b4d | ||
|
|
7cb1d74c05 | ||
|
|
02dbb20b41 | ||
|
|
6b9e3f5d1c | ||
|
|
5f4db94179 | ||
|
|
de712b0805 | ||
|
|
fdfd6c7792 | ||
|
|
c6739ebd6b | ||
|
|
f673e68677 | ||
|
|
85d4473af4 | ||
|
|
45cafd2cff | ||
|
|
d5ac441ab7 | ||
|
|
8e372f194c | ||
|
|
55ad67ac52 | ||
|
|
cc999ae5a5 |
No files matched your search
@@ -1,4 +1,3 @@
|
||||
.git
|
||||
web/node_modules
|
||||
web/*.log
|
||||
web/regression
|
||||
|
||||
@@ -3,7 +3,7 @@ updates:
|
||||
- package-ecosystem: "docker"
|
||||
directory: "/"
|
||||
schedule:
|
||||
interval: "daily"
|
||||
interval: "weekly"
|
||||
labels:
|
||||
- "Dependencies"
|
||||
commit-message:
|
||||
@@ -12,7 +12,7 @@ updates:
|
||||
- package-ecosystem: "pip"
|
||||
directory: "/"
|
||||
schedule:
|
||||
interval: "daily"
|
||||
interval: "weekly"
|
||||
labels:
|
||||
- "Dependencies"
|
||||
commit-message:
|
||||
@@ -21,7 +21,7 @@ updates:
|
||||
- package-ecosystem: "pip"
|
||||
directory: "/tools"
|
||||
schedule:
|
||||
interval: "daily"
|
||||
interval: "weekly"
|
||||
labels:
|
||||
- "Dependencies"
|
||||
commit-message:
|
||||
@@ -30,7 +30,7 @@ updates:
|
||||
- package-ecosystem: "pip"
|
||||
directory: "/web/regression"
|
||||
schedule:
|
||||
interval: "daily"
|
||||
interval: "weekly"
|
||||
labels:
|
||||
- "Dependencies"
|
||||
commit-message:
|
||||
@@ -39,7 +39,7 @@ updates:
|
||||
- package-ecosystem: "npm"
|
||||
directory: "/runtime"
|
||||
schedule:
|
||||
interval: "daily"
|
||||
interval: "weekly"
|
||||
labels:
|
||||
- "Dependencies"
|
||||
commit-message:
|
||||
@@ -48,7 +48,7 @@ updates:
|
||||
- package-ecosystem: "npm"
|
||||
directory: "/web"
|
||||
schedule:
|
||||
interval: "daily"
|
||||
interval: "weekly"
|
||||
labels:
|
||||
- "Dependencies"
|
||||
commit-message:
|
||||
|
||||
@@ -14,10 +14,15 @@ concurrency:
|
||||
|
||||
jobs:
|
||||
build-container:
|
||||
runs-on: ubuntu-latest
|
||||
runs-on: ubuntu-22.04
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
with:
|
||||
fetch-depth: 2
|
||||
|
||||
- name: Build the container
|
||||
run: docker build .
|
||||
uses: docker/build-push-action@v6
|
||||
with:
|
||||
push: false
|
||||
context: .
|
||||
@@ -14,7 +14,7 @@ concurrency:
|
||||
|
||||
jobs:
|
||||
build-docs:
|
||||
runs-on: ubuntu-latest
|
||||
runs-on: ubuntu-22.04
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
|
||||
@@ -14,7 +14,7 @@ concurrency:
|
||||
|
||||
jobs:
|
||||
check-javascript-style:
|
||||
runs-on: ubuntu-latest
|
||||
runs-on: ubuntu-22.04
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
|
||||
@@ -14,7 +14,7 @@ concurrency:
|
||||
|
||||
jobs:
|
||||
build-python-package:
|
||||
runs-on: ubuntu-latest
|
||||
runs-on: ubuntu-22.04
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
|
||||
@@ -14,7 +14,7 @@ concurrency:
|
||||
|
||||
jobs:
|
||||
check-python-style:
|
||||
runs-on: ubuntu-latest
|
||||
runs-on: ubuntu-22.04
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
|
||||
@@ -14,7 +14,7 @@ concurrency:
|
||||
|
||||
jobs:
|
||||
build-tarball:
|
||||
runs-on: ubuntu-latest
|
||||
runs-on: ubuntu-22.04
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
|
||||
@@ -14,7 +14,7 @@ concurrency:
|
||||
|
||||
jobs:
|
||||
check-translations:
|
||||
runs-on: ubuntu-latest
|
||||
runs-on: ubuntu-22.04
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
|
||||
@@ -23,16 +23,14 @@ jobs:
|
||||
matrix:
|
||||
pgver: [12, 13, 14, 15, 16]
|
||||
|
||||
runs-on: ubuntu-latest
|
||||
runs-on: ubuntu-22.04
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
|
||||
- name: Setup the EDB APT repo on Linux
|
||||
run: |
|
||||
sudo su -c 'echo "deb [arch=amd64] https://apt.enterprisedb.com/$(lsb_release -cs)-edb/ $(lsb_release -cs) main" > /etc/apt/sources.list.d/edb-$(lsb_release -cs).list'
|
||||
sudo su -c 'echo "machine apt.enterprisedb.com login ${{ secrets.EDB_REPO_USERNAME }} password ${{ secrets.EDB_REPO_PASSWORD }}" > /etc/apt/auth.conf.d/edb.conf'
|
||||
sudo wget -q -O - https://apt.enterprisedb.com/edb-deb.gpg.key | sudo apt-key add -
|
||||
curl -1sLf 'https://downloads.enterprisedb.com/${{ secrets.CLOUDSMITH_TOKEN }}/enterprise/setup.deb.sh' | sudo -E bash
|
||||
|
||||
- name: Install platform dependencies
|
||||
run: |
|
||||
|
||||
@@ -22,7 +22,7 @@ jobs:
|
||||
matrix:
|
||||
pgver: [12, 13, 14, 15, 16]
|
||||
|
||||
runs-on: ubuntu-latest
|
||||
runs-on: ubuntu-22.04
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
|
||||
@@ -17,7 +17,7 @@ jobs:
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
os: [macos-latest, ubuntu-latest, windows-latest]
|
||||
os: [macos-latest, ubuntu-22.04, windows-latest]
|
||||
|
||||
runs-on: ${{ matrix.os }}
|
||||
|
||||
|
||||
@@ -42,9 +42,7 @@ jobs:
|
||||
- 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 -
|
||||
curl -1sLf 'https://downloads.enterprisedb.com/${{ secrets.CLOUDSMITH_TOKEN }}/enterprise/setup.deb.sh' | sudo -E bash
|
||||
|
||||
- name: Install platform dependencies on Linux
|
||||
if: ${{ matrix.os == 'ubuntu-22.04' }}
|
||||
|
||||
@@ -20,7 +20,7 @@ jobs:
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
os: [macos-latest, ubuntu-latest, windows-latest]
|
||||
os: [macos-latest, ubuntu-22.04, windows-latest]
|
||||
pgver: [12, 13, 14, 15, 16]
|
||||
|
||||
runs-on: ${{ matrix.os }}
|
||||
@@ -29,13 +29,13 @@ jobs:
|
||||
- uses: actions/checkout@v4
|
||||
|
||||
- name: Setup the PGDG APT repo on Linux
|
||||
if: ${{ matrix.os == 'ubuntu-latest' }}
|
||||
if: ${{ matrix.os == 'ubuntu-22.04' }}
|
||||
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' }}
|
||||
if: ${{ matrix.os == 'ubuntu-22.04' }}
|
||||
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
|
||||
@@ -62,13 +62,13 @@ jobs:
|
||||
ECHO Running %INSTALLER_EXE%...
|
||||
%INSTALLER_EXE% --prefix C:\PostgreSQL\${{ matrix.pgver }} --datadir C:\PostgreSQL\${{ matrix.pgver }}\data --serverport 59${{ matrix.pgver }} --superpassword postgres --install_runtimes 0 --mode unattended --unattendedmodeui none --disable-components pgAdmin,stackbuilder --enable-components server,commandlinetools"
|
||||
choco install -y mitkerberos
|
||||
|
||||
|
||||
REM Ignore error 3010 (reboot required)
|
||||
IF %ERRORLEVEL% EQU 3010 cmd /c "exit /b 0"
|
||||
shell: cmd
|
||||
|
||||
- name: Create the tablespace directory on Linux
|
||||
if: ${{ matrix.os == 'ubuntu-latest' }}
|
||||
if: ${{ matrix.os == 'ubuntu-22.04' }}
|
||||
run: |
|
||||
sudo mkdir -p /var/lib/postgresql/tablespaces/${{ matrix.pgver }}
|
||||
sudo chown postgres:postgres /var/lib/postgresql/tablespaces/${{ matrix.pgver }}
|
||||
@@ -86,18 +86,18 @@ jobs:
|
||||
shell: cmd
|
||||
|
||||
- name: Start PostgreSQL on Linux
|
||||
if: ${{ matrix.os == 'ubuntu-latest' }}
|
||||
if: ${{ matrix.os == 'ubuntu-22.04' }}
|
||||
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;'
|
||||
|
||||
@@ -107,16 +107,16 @@ jobs:
|
||||
echo local all all trust > /opt/homebrew/var/postgresql@${{ matrix.pgver }}/pg_hba.conf
|
||||
sed -i '' "s/#port = 543[0-9]/port = 59${{ matrix.pgver }}/g" /opt/homebrew/var/postgresql@${{ matrix.pgver }}/postgresql.conf
|
||||
brew services restart postgresql@${{ matrix.pgver }}
|
||||
|
||||
|
||||
until /opt/homebrew/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' }}
|
||||
if: ${{ matrix.os == 'macos-latest' || matrix.os == 'ubuntu-22.04' }}
|
||||
run: make install-python-testing
|
||||
|
||||
- name: Install Python dependencies on Windows
|
||||
@@ -131,25 +131,25 @@ jobs:
|
||||
shell: cmd
|
||||
|
||||
- name: Create the test configuration on Linux and macOS
|
||||
if: ${{ matrix.os == 'macos-latest' || matrix.os == 'ubuntu-latest' }}
|
||||
if: ${{ matrix.os == 'macos-latest' || 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"
|
||||
@@ -157,7 +157,7 @@ jobs:
|
||||
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": {
|
||||
@@ -181,7 +181,7 @@ jobs:
|
||||
"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' }}",
|
||||
"host": "${{ matrix.os == 'macos-latest' && '/tmp' || matrix.os == 'ubuntu-22.04' && '/var/run/postgresql' || '127.0.0.1' }}",
|
||||
"db_password": "postgres",
|
||||
"db_port": 59${{ matrix.pgver }},
|
||||
"maintenance_db": "postgres",
|
||||
@@ -206,7 +206,7 @@ jobs:
|
||||
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.
|
||||
@@ -231,7 +231,7 @@ jobs:
|
||||
@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": {
|
||||
@@ -278,7 +278,7 @@ jobs:
|
||||
shell: cmd
|
||||
|
||||
- name: Run the tests on Linux and macOS
|
||||
if: ${{ matrix.os == 'macos-latest' || matrix.os == 'ubuntu-latest' }}
|
||||
if: ${{ matrix.os == 'macos-latest' || matrix.os == 'ubuntu-22.04' }}
|
||||
run: |
|
||||
. venv/bin/activate
|
||||
make check-python
|
||||
|
||||
@@ -22,7 +22,7 @@ jobs:
|
||||
# Only run if the project key is set
|
||||
if: vars.SONARQUBE_PROJECT_KEY != null
|
||||
|
||||
runs-on: ubuntu-latest
|
||||
runs-on: ubuntu-22.04
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
|
||||
@@ -9,6 +9,7 @@
|
||||
.DS_Store
|
||||
.idea
|
||||
.vscode
|
||||
.sonarlint
|
||||
.yarn
|
||||
/*.diff
|
||||
/*.patch
|
||||
@@ -38,6 +39,7 @@ runtime/pgAdmin4.app/
|
||||
runtime/pgAdmin4.pro.user*
|
||||
runtime/pgAdmin4_resource.rc
|
||||
runtime/release/
|
||||
runtime/dev_config.json
|
||||
runtime/ui_BrowserWindow.h
|
||||
web/config_local.py
|
||||
web/pgadmin/misc/themes/pgadmin.themes.json
|
||||
@@ -48,6 +50,7 @@ node_modules/
|
||||
web/pgAdmin/static/js/generated
|
||||
web/pgadmin/static/js/generated
|
||||
web/yarn-error.log
|
||||
web/commit_hash
|
||||
/web/cacert.pem
|
||||
auditjs.html
|
||||
auditpy.txt
|
||||
|
||||
@@ -31,6 +31,7 @@ RUN apk add --no-cache \
|
||||
yarn \
|
||||
zlib-dev
|
||||
|
||||
COPY .git .git
|
||||
# Create the /pgadmin4 directory and copy the source into it. Explicitly
|
||||
# remove the node_modules directory as we'll recreate a clean version, as well
|
||||
# as various other files we don't want
|
||||
@@ -60,7 +61,8 @@ RUN export CPPFLAGS="-DPNG_ARM_NEON_OPT=0" && \
|
||||
webpack.* \
|
||||
jest.config.js \
|
||||
babel.* \
|
||||
./pgadmin/static/js/generated/.cache
|
||||
./pgadmin/static/js/generated/.cache \
|
||||
/pgadmin4/.git
|
||||
|
||||
#########################################################################
|
||||
# Next, create the base environment for Python
|
||||
@@ -70,7 +72,7 @@ FROM alpine:latest AS env-builder
|
||||
|
||||
# Install dependencies
|
||||
COPY requirements.txt /
|
||||
RUN apk add --no-cache \
|
||||
RUN apk add --no-cache \
|
||||
make \
|
||||
python3 \
|
||||
py3-pip && \
|
||||
@@ -123,6 +125,7 @@ FROM postgres:13-alpine AS pg13-builder
|
||||
FROM postgres:14-alpine AS pg14-builder
|
||||
FROM postgres:15-alpine AS pg15-builder
|
||||
FROM postgres:16-alpine AS pg16-builder
|
||||
FROM postgres:17-alpine AS pg17-builder
|
||||
|
||||
FROM alpine:latest AS tool-builder
|
||||
|
||||
@@ -152,6 +155,11 @@ COPY --from=pg16-builder /usr/local/bin/pg_dumpall /usr/local/pgsql/pgsql-16/
|
||||
COPY --from=pg16-builder /usr/local/bin/pg_restore /usr/local/pgsql/pgsql-16/
|
||||
COPY --from=pg16-builder /usr/local/bin/psql /usr/local/pgsql/pgsql-16/
|
||||
|
||||
COPY --from=pg17-builder /usr/local/bin/pg_dump /usr/local/pgsql/pgsql-17/
|
||||
COPY --from=pg17-builder /usr/local/bin/pg_dumpall /usr/local/pgsql/pgsql-17/
|
||||
COPY --from=pg17-builder /usr/local/bin/pg_restore /usr/local/pgsql/pgsql-17/
|
||||
COPY --from=pg17-builder /usr/local/bin/psql /usr/local/pgsql/pgsql-17/
|
||||
|
||||
#########################################################################
|
||||
# Assemble everything into the final container.
|
||||
#########################################################################
|
||||
@@ -163,12 +171,12 @@ COPY --from=env-builder /venv /venv
|
||||
|
||||
# Copy in the tools
|
||||
COPY --from=tool-builder /usr/local/pgsql /usr/local/
|
||||
COPY --from=pg16-builder /usr/local/lib/libpq.so.5.16 /usr/lib/
|
||||
COPY --from=pg16-builder /usr/lib/libzstd.so.1.5.6 /usr/lib/
|
||||
COPY --from=pg16-builder /usr/lib/liblz4.so.1.9.4 /usr/lib/
|
||||
COPY --from=pg17-builder /usr/local/lib/libpq.so.5.17 /usr/lib/
|
||||
COPY --from=pg17-builder /usr/lib/libzstd.so.1.5.6 /usr/lib/
|
||||
COPY --from=pg17-builder /usr/lib/liblz4.so.1.9.4 /usr/lib/
|
||||
|
||||
RUN ln -s libpq.so.5.16 /usr/lib/libpq.so.5 && \
|
||||
ln -s libpq.so.5.16 /usr/lib/libpq.so && \
|
||||
RUN ln -s libpq.so.5.17 /usr/lib/libpq.so.5 && \
|
||||
ln -s libpq.so.5.17 /usr/lib/libpq.so && \
|
||||
ln -s libzstd.so.1.5.6 /usr/lib/libzstd.so.1 && \
|
||||
ln -s liblz4.so.1.9.4 /usr/lib/liblz4.so.1
|
||||
|
||||
@@ -187,8 +195,9 @@ COPY LICENSE /pgadmin4/LICENSE
|
||||
COPY DEPENDENCIES /pgadmin4/DEPENDENCIES
|
||||
|
||||
# Install runtime dependencies and configure everything in one RUN step
|
||||
RUN apk add \
|
||||
RUN apk add --no-cache \
|
||||
python3 \
|
||||
bash \
|
||||
py3-pip \
|
||||
postfix \
|
||||
krb5-libs \
|
||||
|
||||
@@ -52,15 +52,13 @@ REM Main build sequence Ends
|
||||
|
||||
:SET_ENVIRONMENT
|
||||
ECHO Configuring the environment...
|
||||
IF "%PGADMIN_PYTHON_DIR%" == "" SET "PGADMIN_PYTHON_DIR=C:\Python38"
|
||||
IF "%PGADMIN_PYTHON_DIR%" == "" SET "PGADMIN_PYTHON_DIR=C:\Python312"
|
||||
IF "%PGADMIN_KRB5_DIR%" == "" SET "PGADMIN_KRB5_DIR=C:\Program Files\MIT\Kerberos"
|
||||
IF "%PGADMIN_POSTGRES_DIR%" == "" SET "PGADMIN_POSTGRES_DIR=C:\Program Files (x86)\PostgreSQL\12"
|
||||
IF "%PGADMIN_POSTGRES_DIR%" == "" SET "PGADMIN_POSTGRES_DIR=C:\Program Files\PostgreSQL\17"
|
||||
IF "%PGADMIN_INNOTOOL_DIR%" == "" SET "PGADMIN_INNOTOOL_DIR=C:\Program Files (x86)\Inno Setup 6"
|
||||
IF "%PGADMIN_VCREDIST_DIR%" == "" SET "PGADMIN_VCREDIST_DIR=C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\VC\Redist\MSVC\14.16.27012"
|
||||
IF "%PGADMIN_SIGNTOOL_DIR%" == "" SET "PGADMIN_SIGNTOOL_DIR=C:\Program Files (x86)\Windows Kits\10\bin\10.0.17763.0\x64"
|
||||
|
||||
REM Set REDIST_NAME (the filename)
|
||||
set "VCREDIST_FILE=vcredist_x64.exe"
|
||||
IF "%PGADMIN_VCREDIST_DIR%" == "" SET "PGADMIN_VCREDIST_DIR=C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Redist\MSVC\14.40.33807"
|
||||
IF "%PGADMIN_VCREDIST_FILE%" == "" SET "PGADMIN_VCREDIST_FILE=vc_redist.x64.exe"
|
||||
IF "%PGADMIN_SIGNTOOL_DIR%" == "" SET "PGADMIN_SIGNTOOL_DIR=C:\Program Files (x86)\Windows Kits\10\bin\10.0.22621.0\x64"
|
||||
|
||||
REM Set additional variables we need
|
||||
FOR /F "tokens=3" %%a IN ('findstr /C:"APP_RELEASE =" %WD%\web\version.py') DO SET APP_MAJOR=%%a
|
||||
@@ -98,7 +96,7 @@ REM Main build sequence Ends
|
||||
ECHO PostgreSQL directory: %PGADMIN_POSTGRES_DIR%
|
||||
ECHO.
|
||||
ECHO VC++ redist directory: %PGADMIN_VCREDIST_DIR%
|
||||
ECHO VC++ redist file: %VCREDIST_FILE%
|
||||
ECHO VC++ redist file: %PGADMIN_VCREDIST_FILE%
|
||||
ECHO InnoTool directory: %PGADMIN_INNOTOOL_DIR%
|
||||
ECHO signtool directory: %PGADMIN_SIGNTOOL_DIR%
|
||||
ECHO.
|
||||
@@ -217,6 +215,8 @@ REM Main build sequence Ends
|
||||
|
||||
ECHO Installing javascript dependencies...
|
||||
CD "%BUILDROOT%\web"
|
||||
CALL yarn set version berry || EXIT /B 1
|
||||
CALL yarn set version 3 || EXIT /B 1
|
||||
CALL yarn install || EXIT /B 1
|
||||
CALL npm rebuild || EXIT /B 1
|
||||
|
||||
@@ -231,6 +231,8 @@ REM Main build sequence Ends
|
||||
RD /Q /S "%BUILDROOT%\web\regression" 1> nul 2>&1
|
||||
ECHO Removing tools...
|
||||
RD /Q /S "%BUILDROOT%\web\tools" 1> nul 2>&1
|
||||
ECHO Removing yarn cache...
|
||||
RD /Q /S "%BUILDROOT%\web\.yarn" 1> nul 2>&1
|
||||
ECHO Removing any existing configurations...
|
||||
DEL /q "%BUILDROOT%\web\pgadmin4.db" 1> nul 2>&1
|
||||
DEL /q "%BUILDROOT%\web\config_local.py" 1> nul 2>&1
|
||||
@@ -260,47 +262,53 @@ REM Main build sequence Ends
|
||||
RD /Q /S "%BUILDROOT%\docs\en_US\html\_sources" 1> nul 2>&1
|
||||
|
||||
ECHO Staging runtime components...
|
||||
XCOPY /S /I /E /H /Y "%WD%\runtime\assets" "%BUILDROOT%\runtime\assets" > nul || EXIT /B 1
|
||||
XCOPY /S /I /E /H /Y "%WD%\runtime\src" "%BUILDROOT%\runtime\src" > nul || EXIT /B 1
|
||||
MKDIR "%BUILDROOT%\runtime\resources\app"
|
||||
XCOPY /S /I /E /H /Y "%WD%\runtime\assets" "%BUILDROOT%\runtime\resources\app\assets" > nul || EXIT /B 1
|
||||
XCOPY /S /I /E /H /Y "%WD%\runtime\src" "%BUILDROOT%\runtime\resources\app\src" > nul || EXIT /B 1
|
||||
|
||||
COPY "%WD%\runtime\package.json" "%BUILDROOT%\runtime\" > nul || EXIT /B 1
|
||||
CD "%BUILDROOT%\runtime\"
|
||||
CALL yarn install --production=true || EXIT /B 1
|
||||
COPY "%WD%\runtime\package.json" "%BUILDROOT%\runtime\resources\app\" > nul || EXIT /B 1
|
||||
COPY "%WD%\runtime\.yarnrc.yml" "%BUILDROOT%\runtime\resources\app\" > nul || EXIT /B 1
|
||||
|
||||
ECHO Downloading NWjs to %TMPDIR%...
|
||||
REM Get a fresh copy of nwjs.
|
||||
REM NOTE: The nw download servers seem to be very unreliable, so at the moment we're using wget which retries
|
||||
CD "%BUILDROOT%\runtime\resources\app\"
|
||||
|
||||
REM YARN
|
||||
REM CALL yarn --cwd "%TMPDIR%" add nw || EXIT /B
|
||||
REM YARN END
|
||||
CALL yarn set version berry || EXIT /B 1
|
||||
CALL yarn set version 3 || EXIT /B 1
|
||||
CALL yarn plugin import workspace-tools || EXIT /B 1
|
||||
CALL yarn workspaces focus --production || EXIT /B 1
|
||||
|
||||
ECHO Removing yarn cache...
|
||||
RD /Q /S "%BUILDROOT%\runtime\resources\app\.yarn" 1> nul 2>&1
|
||||
|
||||
ECHO Downloading Electron to %TMPDIR%...
|
||||
REM Get a fresh copy of electron.
|
||||
|
||||
REM WGET
|
||||
REM Comment out the below line as the latest version having some
|
||||
REM problem https://github.com/nwjs/nw.js/issues/7964, so for the time being
|
||||
REM hardcoded the version to 0.77.0
|
||||
REM 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
|
||||
FOR /f "tokens=*" %%i IN ('npm info electron version') DO SET "ELECTRON_VERSION=%%i"
|
||||
:GET_NW
|
||||
wget https://github.com/electron/electron/releases/download/v%ELECTRON_VERSION%/electron-v%ELECTRON_VERSION%-win32-x64.zip -O "%TMPDIR%\electron-v%ELECTRON_VERSION%-win32-x64.zip"
|
||||
IF %ERRORLEVEL% NEQ 0 GOTO GET_NW
|
||||
|
||||
SET "NW_VERSION=0.77.0"
|
||||
wget https://dl.nwjs.io/v%NW_VERSION%/nwjs-v%NW_VERSION%-win-x64.zip -O "%TMPDIR%\nwjs-v%NW_VERSION%-win-x64.zip"
|
||||
|
||||
tar -C "%TMPDIR%" -xvf "%TMPDIR%\nwjs-v%NW_VERSION%-win-x64.zip" || EXIT /B 1
|
||||
MKDIR "%TMPDIR%\electron-v%ELECTRON_VERSION%-win32-x64" || EXIT /B 1
|
||||
tar -C "%TMPDIR%\electron-v%ELECTRON_VERSION%-win32-x64" -xvf "%TMPDIR%\electron-v%ELECTRON_VERSION%-win32-x64.zip" || EXIT /B 1
|
||||
REM WGET END
|
||||
|
||||
REM YARN
|
||||
REM XCOPY /S /I /E /H /Y "%TMPDIR%\node_modules\nw\nwjs\*" "%BUILDROOT%\runtime" > nul || EXIT /B 1
|
||||
REM YARN END
|
||||
REM XCOPY
|
||||
XCOPY /S /I /E /H /Y "%TMPDIR%\electron-v%ELECTRON_VERSION%-win32-x64\*" "%BUILDROOT%\runtime" > nul || EXIT /B 1
|
||||
REM XCOPY END
|
||||
|
||||
REM WGET
|
||||
XCOPY /S /I /E /H /Y "%TMPDIR%\nwjs-v%NW_VERSION%-win-x64\*" "%BUILDROOT%\runtime" > nul || EXIT /B 1
|
||||
REM WGET END
|
||||
MOVE "%BUILDROOT%\runtime\electron.exe" "%BUILDROOT%\runtime\pgAdmin4.exe"
|
||||
|
||||
ECHO Downloading rcedit.exe...
|
||||
wget https://github.com/electron/rcedit/releases/download/v2.0.0/rcedit-x64.exe -O "%TMPDIR%\rcedit-x64.exe"
|
||||
|
||||
ECHO Replacing executable icon, description, version...
|
||||
%TMPDIR%\rcedit-x64.exe "%BUILDROOT%\runtime\pgAdmin4.exe" --set-icon "%WD%\pkg\win32\Resources\pgAdmin4.ico"
|
||||
%TMPDIR%\rcedit-x64.exe "%BUILDROOT%\runtime\pgAdmin4.exe" --set-version-string "FileDescription" "%APP_NAME%"
|
||||
%TMPDIR%\rcedit-x64.exe "%BUILDROOT%\runtime\pgAdmin4.exe" --set-version-string "ProductName" "%APP_NAME%"
|
||||
%TMPDIR%\rcedit-x64.exe "%BUILDROOT%\runtime\pgAdmin4.exe" --set-product-version "%APP_VERSION%""
|
||||
|
||||
MOVE "%BUILDROOT%\runtime\nw.exe" "%BUILDROOT%\runtime\pgAdmin4.exe"
|
||||
ECHO Attempting to sign the pgAdmin4.exe...
|
||||
CALL "%PGADMIN_SIGNTOOL_DIR%\signtool.exe" sign /tr http://timestamp.digicert.com "%BUILDROOT%\runtime\pgAdmin4.exe"
|
||||
CALL "%PGADMIN_SIGNTOOL_DIR%\signtool.exe" sign /fd certHash /tr http://timestamp.digicert.com /td SHA256 "%BUILDROOT%\runtime\pgAdmin4.exe"
|
||||
IF %ERRORLEVEL% NEQ 0 (
|
||||
ECHO.
|
||||
ECHO ************************************************************
|
||||
@@ -309,16 +317,14 @@ REM Main build sequence Ends
|
||||
PAUSE
|
||||
)
|
||||
|
||||
ECHO Replacing executable icon...
|
||||
CALL yarn --cwd "%TMPDIR%" add winresourcer || EXIT /B
|
||||
"%TMPDIR%\node_modules\winresourcer\bin\Resourcer.exe" -op:upd -src:"%BUILDROOT%\runtime\pgAdmin4.exe" -type:Icongroup -name:IDR_MAINFRAME -file:"%WD%\pkg\win32\Resources\pgAdmin4.ico"
|
||||
|
||||
ECHO Staging PostgreSQL components...
|
||||
COPY "%PGADMIN_POSTGRES_DIR%\bin\libpq.dll" "%BUILDROOT%\runtime" > nul || EXIT /B 1
|
||||
COPY "%PGADMIN_POSTGRES_DIR%\bin\libcrypto-*-x64.dll" "%BUILDROOT%\runtime" > nul || EXIT /B 1
|
||||
COPY "%PGADMIN_POSTGRES_DIR%\bin\libssl-*-x64.dll" "%BUILDROOT%\runtime" > nul || EXIT /B 1
|
||||
IF EXIST "%PGADMIN_POSTGRES_DIR%\bin\libintl-*.dll" COPY "%PGADMIN_POSTGRES_DIR%\bin\libintl-*.dll" "%BUILDROOT%\runtime" > nul
|
||||
IF EXIST "%PGADMIN_POSTGRES_DIR%\bin\libiconv-*.dll" COPY "%PGADMIN_POSTGRES_DIR%\bin\libiconv-*.dll" "%BUILDROOT%\runtime" > nul
|
||||
IF EXIST "%PGADMIN_POSTGRES_DIR%\bin\liblz4.dll" COPY "%PGADMIN_POSTGRES_DIR%\bin\liblz4.dll" "%BUILDROOT%\runtime" > nul
|
||||
IF EXIST "%PGADMIN_POSTGRES_DIR%\bin\libzstd.dll" COPY "%PGADMIN_POSTGRES_DIR%\bin\libzstd.dll" "%BUILDROOT%\runtime" > nul
|
||||
COPY "%PGADMIN_POSTGRES_DIR%\bin\zlib1.dll" "%BUILDROOT%\runtime" > nul || EXIT /B 1
|
||||
COPY "%PGADMIN_POSTGRES_DIR%\bin\pg_dump.exe" "%BUILDROOT%\runtime" > nul || EXIT /B 1
|
||||
COPY "%PGADMIN_POSTGRES_DIR%\bin\pg_dumpall.exe" "%BUILDROOT%\runtime" > nul || EXIT /B 1L%
|
||||
@@ -327,7 +333,7 @@ REM Main build sequence Ends
|
||||
|
||||
ECHO Staging VC++ runtime...
|
||||
MKDIR "%BUILDROOT%\installer" || EXIT /B 1
|
||||
COPY "%PGADMIN_VCREDIST_DIR%\%VCREDIST_FILE%" "%BUILDROOT%\installer" > nul || EXIT /B 1
|
||||
COPY "%PGADMIN_VCREDIST_DIR%\%PGADMIN_VCREDIST_FILE%" "%BUILDROOT%\installer" > nul || EXIT /B 1
|
||||
|
||||
CD %WD%
|
||||
EXIT /B 0
|
||||
@@ -345,7 +351,7 @@ REM Main build sequence Ends
|
||||
ECHO Processing installer configuration script...
|
||||
CALL "%PGADMIN_PYTHON_DIR%\python" "%WD%\pkg\win32\replace.py" "-i" "%WD%\pkg\win32\installer.iss.in" "-o" "%WD%\pkg\win32\installer.iss.in_stage1" "-s" MYAPP_FULLVERSION -r """%APP_VERSION%"""
|
||||
CALL "%PGADMIN_PYTHON_DIR%\python" "%WD%\pkg\win32\replace.py" "-i" "%WD%\pkg\win32\installer.iss.in_stage1" "-o" "%WD%\pkg\win32\installer.iss.in_stage2" "-s" MYAPP_VERSION -r """v%APP_MAJOR%"""
|
||||
CALL "%PGADMIN_PYTHON_DIR%\python" "%WD%\pkg\win32\replace.py" "-i" "%WD%\pkg\win32\installer.iss.in_stage2" "-o" "%WD%\pkg\win32\installer.iss" "-s" MYAPP_VCDIST -r """%PGADMIN_VCREDIST_DIRNAME%\%VCREDIST_FILE%"""
|
||||
CALL "%PGADMIN_PYTHON_DIR%\python" "%WD%\pkg\win32\replace.py" "-i" "%WD%\pkg\win32\installer.iss.in_stage2" "-o" "%WD%\pkg\win32\installer.iss" "-s" MYAPP_VCDIST -r """%PGADMIN_VCREDIST_DIRNAME%\%PGADMIN_VCREDIST_FILE%"""
|
||||
|
||||
ECHO Cleaning up...
|
||||
DEL /s "%WD%\pkg\win32\installer.iss.in_stage*" > nul
|
||||
@@ -366,9 +372,11 @@ REM Main build sequence Ends
|
||||
ECHO Generating SBOM...
|
||||
CALL syft "%BUILDROOT%" -o cyclonedx-json > "%BUILDROOT%\sbom.json"
|
||||
|
||||
EXIT /B 0
|
||||
|
||||
:SIGN_INSTALLER
|
||||
ECHO Attempting to sign the installer...
|
||||
CALL "%PGADMIN_SIGNTOOL_DIR%\signtool.exe" sign /tr http://timestamp.digicert.com "%DISTROOT%\%INSTALLERNAME%"
|
||||
CALL "%PGADMIN_SIGNTOOL_DIR%\signtool.exe" sign /fd certHash /tr http://timestamp.digicert.com /td SHA256 "%DISTROOT%\%INSTALLERNAME%"
|
||||
IF %ERRORLEVEL% NEQ 0 (
|
||||
ECHO.
|
||||
ECHO ************************************************************
|
||||
|
||||
@@ -118,6 +118,7 @@ debian:
|
||||
|
||||
docker:
|
||||
echo $(APP_NAME)
|
||||
git checkout HEAD
|
||||
docker build --pull -t ${APP_NAME} -t $(APP_NAME):latest -t $(APP_NAME):$(APP_RELEASE) -t $(APP_NAME):$(APP_RELEASE).$(APP_REVISION) .
|
||||
|
||||
docs:
|
||||
|
||||
@@ -14,7 +14,7 @@ and ReactJS, HTML5 with CSS for the client side processing and UI.
|
||||
|
||||
Although developed using web technologies, pgAdmin 4 can be deployed either on
|
||||
a web server using a browser, or standalone on a workstation. The runtime/
|
||||
subdirectory contains an NWjs based runtime application intended to allow this,
|
||||
subdirectory contains an Electron based runtime application intended to allow this,
|
||||
which will execute the Python server and display the UI.
|
||||
|
||||
## Building the Runtime
|
||||
@@ -35,13 +35,7 @@ paths it would expect to find in the standard package for your platform.
|
||||
You can then execute the runtime by running something like:
|
||||
|
||||
```bash
|
||||
node_modules/nw/nwjs/nw .
|
||||
```
|
||||
|
||||
or on macOS:
|
||||
|
||||
```bash
|
||||
node_modules/nw/nwjs/nwjs.app/Contents/MacOS/nwjs .
|
||||
yarn run start
|
||||
```
|
||||
|
||||
# Configuring the Python Environment
|
||||
|
||||
@@ -7,12 +7,12 @@
|
||||
The bulk of pgAdmin is a Python web application written using the Flask framework
|
||||
on the backend, and HTML5 with CSS3,ReactJS on the front end. A
|
||||
desktop runtime is also included for users that prefer a desktop application to
|
||||
a web application, which is written using NWjs (Node Webkit).
|
||||
a web application, which is written using Electron.
|
||||
|
||||
Runtime
|
||||
*******
|
||||
|
||||
The runtime is based on NWjs which integrates a browser and the Python server
|
||||
The runtime is based on Electron which integrates a browser and the Python server
|
||||
creating a standalone application. The source code can be found in the
|
||||
**/runtime** directory in the source tree.
|
||||
|
||||
|
||||
@@ -142,6 +142,21 @@ Override the default file path for the preferences customization at the containe
|
||||
/pgadmin4/preferences.json mapped file below for more information. See the format
|
||||
of the `Preferences JSON file <https://www.pgadmin.org/docs/pgadmin4/latest/preferences.html#json-format>`_.
|
||||
|
||||
**PGADMIN_CUSTOM_CONFIG_DISTRO_FILE**
|
||||
|
||||
*Default: /pgadmin4/config_distro.py*
|
||||
|
||||
Override the default file path for the pgadmin configurations file.This can be used while provisioning
|
||||
container with read only root file system to achieve a more secure pgadmin4 deployment for kubernetes.
|
||||
Note that if you are externally mapping this file, then environment variables passed using *PGADMIN_CONFIG_*
|
||||
suffix will be ignored.
|
||||
|
||||
**PGPASS_FILE**
|
||||
|
||||
*Default: <null>*
|
||||
This varible should be set to if you want to pass password using pgpass
|
||||
file for the servers added in pgadmin.
|
||||
|
||||
**GUNICORN_ACCESS_LOGFILE**
|
||||
|
||||
*Default: -* (stdout)
|
||||
|
||||
@@ -44,8 +44,9 @@ Use the *Definition* tab to set properties for the database:
|
||||
* Select the strategy from the drop-down listbox in the *Strategy* field while
|
||||
creating a new database. This option is available from v15 and above.
|
||||
* Select the locale provider from the drop-down listbox in the *Locale Provider*
|
||||
field to set the default collation for this database. Possible values are: icu, libc.
|
||||
This option is available from v15 and above.
|
||||
field to set the default collation for this database. Possible values are: icu, libc and builtin.
|
||||
This option is available from v15 and above. **Note:** The icu and libc options are available
|
||||
from v15 and builtin option is available from v17 onwards.
|
||||
* Select the collation order from the drop-down listbox in the *Collation* field.
|
||||
* Select the character classification from the drop-down listbox in the
|
||||
*Character Type* field. This affects the categorization of characters, e.g.
|
||||
@@ -57,6 +58,8 @@ Use the *Definition* tab to set properties for the database:
|
||||
* Specify the icu rules in the *ICU Rules* field as additional collation
|
||||
rules to customize the behavior of the default collation of this database.
|
||||
This option is available from v16 and above.
|
||||
* Select the builtin locale from the drop-down listbox in the *Builtin Locale* if the
|
||||
builtin locale provider is used. This option is available from v17 and above.
|
||||
* Specify a connection limit in the *Connection Limit* field to configure the
|
||||
maximum number of connection requests. The default value (*-1*) allows
|
||||
unlimited connections to the database.
|
||||
|
||||
@@ -36,43 +36,34 @@ See :ref:`config_py` for more information on configuration settings.
|
||||
Desktop Runtime Standalone Application
|
||||
======================================
|
||||
|
||||
The Desktop Runtime is based on `NWjs <https://nwjs.io/>`_ which integrates a
|
||||
The Desktop Runtime is based on `Electron <https://www.electronjs.org/>`_ which integrates a
|
||||
browser and the Python server creating a standalone application.
|
||||
|
||||
.. image:: images/runtime_standalone.png
|
||||
:alt: Runtime Standalone
|
||||
:align: center
|
||||
|
||||
Runtime Menu
|
||||
------------
|
||||
Runtime Menu Items
|
||||
------------------
|
||||
|
||||
.. image:: images/runtime_menu.png
|
||||
:alt: Runtime Menu
|
||||
:align: center
|
||||
|
||||
Use the *File Menu* to access the *Runtime Menu*:
|
||||
Use the *File Menu* to access the runtime menu items:
|
||||
|
||||
+-------------------------+---------------------------------------------------------------------------------------------------------+
|
||||
| Option | Action |
|
||||
+=========================+=========================================================================================================+
|
||||
| *Configure...* | Click to open configuration dialog to configure fixed port, port number and connection timeout. |
|
||||
| *View logs...* | Click to open the view log dialog to view the pgAdmin 4 logs. |
|
||||
+-------------------------+---------------------------------------------------------------------------------------------------------+
|
||||
| *View log...* | Click to open the view log dialog to view the pgAdmin 4 logs. |
|
||||
+-------------------------+---------------------------------------------------------------------------------------------------------+
|
||||
| *Enter Full Screen* | Click to enter/exit the full screen mode. Keyboard Shortcuts: OSX (Cmd + Ctrl + F), Other OS (F10). |
|
||||
+-------------------------+---------------------------------------------------------------------------------------------------------+
|
||||
| *Actual Size* | Click to change the window size to it original size. Keyboard Shortcuts: OSX (Cmd + 0), |
|
||||
| | Other OS (Ctrl + 0). |
|
||||
+-------------------------+---------------------------------------------------------------------------------------------------------+
|
||||
| *Zoom In* | Click to increase the zoom level. Keyboard Shortcuts: OSX (Cmd + +), Other OS (Ctrl + +). |
|
||||
+-------------------------+---------------------------------------------------------------------------------------------------------+
|
||||
| *Zoom Out* | Click to decrease the zoom level. Keyboard Shortcuts: OSX (Cmd + -), Other OS (Ctrl + -). |
|
||||
| *Configure runtime...* | Click to open configuration dialog to configure fixed port, port number and connection timeout. |
|
||||
+-------------------------+---------------------------------------------------------------------------------------------------------+
|
||||
|
||||
Configuration Dialog
|
||||
--------------------
|
||||
|
||||
Use the *Runtime Menu* to access the *Configuration* dialog:
|
||||
Use the *Configure runtime...* option to access the *Configuration* dialog:
|
||||
|
||||
.. image:: images/runtime_configuration.png
|
||||
:alt: Runtime Configuration
|
||||
@@ -101,7 +92,7 @@ Timeout*, and 'Open Documentation in Default Browser?' configuration parameters:
|
||||
Log dialog
|
||||
----------
|
||||
|
||||
Use the *Runtime Menu* to access the *Log* dialog:
|
||||
Use the *File Menu* to access the *View Logs* dialog:
|
||||
|
||||
.. image:: images/runtime_view_log.png
|
||||
:alt: Runtime View Log
|
||||
|
||||
@@ -212,6 +212,7 @@ To add new column(s) in data sorting grid, click on the [+] icon.
|
||||
|
||||
* Use the drop-down *Column* to select the column you want to sort.
|
||||
* Use the drop-down *Order* to select the sort order for the column.
|
||||
* Use the drop-down *NULLs* to select the NULL values order for the column.
|
||||
|
||||
To delete a row from the grid, click the trash icon.
|
||||
|
||||
|
||||
|
After Width: | Height: | Size: 67 KiB |
|
After Width: | Height: | Size: 188 KiB |
|
After Width: | Height: | Size: 284 KiB |
|
After Width: | Height: | Size: 152 KiB |
|
Before Width: | Height: | Size: 110 KiB After Width: | Height: | Size: 123 KiB |
|
Before Width: | Height: | Size: 61 KiB After Width: | Height: | Size: 158 KiB |
|
Before Width: | Height: | Size: 26 KiB After Width: | Height: | Size: 47 KiB |
|
Before Width: | Height: | Size: 337 KiB After Width: | Height: | Size: 282 KiB |
|
Before Width: | Height: | Size: 116 KiB After Width: | Height: | Size: 121 KiB |
|
Before Width: | Height: | Size: 184 KiB After Width: | Height: | Size: 191 KiB |
|
Before Width: | Height: | Size: 185 KiB After Width: | Height: | Size: 190 KiB |
|
Before Width: | Height: | Size: 123 KiB After Width: | Height: | Size: 124 KiB |
|
Before Width: | Height: | Size: 91 KiB After Width: | Height: | Size: 96 KiB |
|
Before Width: | Height: | Size: 98 KiB After Width: | Height: | Size: 102 KiB |
|
Before Width: | Height: | Size: 217 KiB After Width: | Height: | Size: 214 KiB |
|
Before Width: | Height: | Size: 75 KiB After Width: | Height: | Size: 128 KiB |
|
Before Width: | Height: | Size: 82 KiB After Width: | Height: | Size: 142 KiB |
|
Before Width: | Height: | Size: 160 KiB After Width: | Height: | Size: 167 KiB |
|
Before Width: | Height: | Size: 171 KiB After Width: | Height: | Size: 178 KiB |
|
Before Width: | Height: | Size: 178 KiB After Width: | Height: | Size: 188 KiB |
|
Before Width: | Height: | Size: 132 KiB After Width: | Height: | Size: 140 KiB |
|
Before Width: | Height: | Size: 60 KiB After Width: | Height: | Size: 108 KiB |
|
Before Width: | Height: | Size: 76 KiB After Width: | Height: | Size: 148 KiB |
|
Before Width: | Height: | Size: 45 KiB After Width: | Height: | Size: 104 KiB |
|
Before Width: | Height: | Size: 236 KiB After Width: | Height: | Size: 245 KiB |
|
Before Width: | Height: | Size: 58 KiB After Width: | Height: | Size: 103 KiB |
|
Before Width: | Height: | Size: 158 KiB After Width: | Height: | Size: 162 KiB |
|
Before Width: | Height: | Size: 72 KiB After Width: | Height: | Size: 126 KiB |
|
Before Width: | Height: | Size: 69 KiB After Width: | Height: | Size: 121 KiB |
|
Before Width: | Height: | Size: 123 KiB After Width: | Height: | Size: 131 KiB |
|
Before Width: | Height: | Size: 92 KiB After Width: | Height: | Size: 193 KiB |
|
Before Width: | Height: | Size: 93 KiB After Width: | Height: | Size: 100 KiB |
|
Before Width: | Height: | Size: 181 KiB After Width: | Height: | Size: 186 KiB |
|
Before Width: | Height: | Size: 169 KiB After Width: | Height: | Size: 182 KiB |
|
Before Width: | Height: | Size: 114 KiB After Width: | Height: | Size: 186 KiB |
|
Before Width: | Height: | Size: 190 KiB After Width: | Height: | Size: 176 KiB |
|
Before Width: | Height: | Size: 55 KiB After Width: | Height: | Size: 94 KiB |
|
After Width: | Height: | Size: 18 KiB |
|
After Width: | Height: | Size: 20 KiB |
|
Before Width: | Height: | Size: 78 KiB After Width: | Height: | Size: 219 KiB |
|
Before Width: | Height: | Size: 105 KiB After Width: | Height: | Size: 231 KiB |
|
Before Width: | Height: | Size: 74 KiB After Width: | Height: | Size: 178 KiB |
|
Before Width: | Height: | Size: 21 KiB After Width: | Height: | Size: 47 KiB |
|
Before Width: | Height: | Size: 74 KiB After Width: | Height: | Size: 209 KiB |
|
Before Width: | Height: | Size: 83 KiB After Width: | Height: | Size: 137 KiB |
|
Before Width: | Height: | Size: 26 KiB After Width: | Height: | Size: 115 KiB |
|
Before Width: | Height: | Size: 34 KiB After Width: | Height: | Size: 78 KiB |
|
Before Width: | Height: | Size: 127 KiB After Width: | Height: | Size: 149 KiB |
|
Before Width: | Height: | Size: 100 KiB After Width: | Height: | Size: 176 KiB |
|
Before Width: | Height: | Size: 65 KiB After Width: | Height: | Size: 53 KiB |
|
Before Width: | Height: | Size: 125 KiB After Width: | Height: | Size: 107 KiB |
|
Before Width: | Height: | Size: 93 KiB After Width: | Height: | Size: 190 KiB |
|
After Width: | Height: | Size: 42 KiB |
@@ -48,6 +48,8 @@ When using main browser window, the following keyboard shortcuts are available:
|
||||
+----------------------------+--------------------+------------------------------------+
|
||||
| Shift + Alt + ] | Shift + Option + ] | Tabbed panel forward |
|
||||
+----------------------------+--------------------+------------------------------------+
|
||||
| Shift + Alt + w | Shift + Ctrl + w | Close tab panel |
|
||||
+----------------------------+--------------------+------------------------------------+
|
||||
| Shift + Alt + l | Shift + Option + l | Tools main menu |
|
||||
+----------------------------+--------------------+------------------------------------+
|
||||
| Shift + Alt + v | Shift + Option + v | View data |
|
||||
|
||||
@@ -34,7 +34,7 @@ and modify the values for the following parameters:
|
||||
"OAUTH2_AUTHORIZATION_URL", "Endpoint for user authorization"
|
||||
"OAUTH2_SERVER_METADATA_URL", "Server metadata url for your OAuth2 provider"
|
||||
"OAUTH2_API_BASE_URL", "Oauth2 base URL endpoint to make requests simple, ex: *https://api.github.com/*"
|
||||
"OAUTH2_USERINFO_ENDPOINT", "User Endpoint, ex: *user* (for github) and *useinfo* (for google)"
|
||||
"OAUTH2_USERINFO_ENDPOINT", "User Endpoint, ex: *user* (for github) and *userinfo* (for google)"
|
||||
"OAUTH2_SCOPE", "Oauth scope, ex: 'openid email profile'. Note that an 'email' claim is required in the resulting profile."
|
||||
"OAUTH2_ICON", "The Font-awesome icon to be placed on the oauth2 button, ex: fa-github"
|
||||
"OAUTH2_BUTTON_COLOR", "Oauth2 button color"
|
||||
|
||||
@@ -11,9 +11,7 @@ The left pane of the *Preferences* dialog displays a tree control; each node of
|
||||
the tree control provides access to options that are related to the node under
|
||||
which they are displayed.
|
||||
|
||||
* Use the plus sign (+) to the left of a node name to expand a segment of the
|
||||
tree control.
|
||||
* Use the minus sign (-) to the left of a node name to close that node.
|
||||
* Click the *Reset all preferences* button to restore all preferences to their default values.
|
||||
|
||||
The Browser Node
|
||||
****************
|
||||
@@ -232,7 +230,7 @@ Use the fields on the *Options* panel to manage ERD preferences.
|
||||
|
||||
|
||||
* Use *Cardinality Notation* to change the cardinality notation format
|
||||
used to present relationship links.
|
||||
used to present relationship links.
|
||||
|
||||
* When the *SQL With DROP Table* switch is set to *True*, the SQL
|
||||
generated by the ERD Tool will add DROP table DDL before each CREATE
|
||||
@@ -282,7 +280,8 @@ Expand the *Miscellaneous* node to specify miscellaneous display preferences.
|
||||
* Use the *Themes* drop-down listbox to select the theme for pgAdmin. You'll also get a preview just below the
|
||||
drop down. You can also submit your own themes,
|
||||
check `here <https://github.com/pgadmin-org/pgadmin4/blob/master/README.md>`_ how.
|
||||
Currently we support Standard, Dark and High Contrast theme.
|
||||
Currently we support Standard, Dark and High Contrast and System theme. Selecting System option will follow
|
||||
your computer's settings.
|
||||
|
||||
The Paths Node
|
||||
**************
|
||||
@@ -399,6 +398,9 @@ Use the fields on the *Editor* panel to change settings of the query editor.
|
||||
changed to text/plain. Keyword highlighting and code folding will be disabled.
|
||||
This will improve editor performance with large files.
|
||||
|
||||
* When the *Highlight selection matches?* switch is set to *True*, the editor will
|
||||
highlight matched selected text.
|
||||
|
||||
.. image:: images/preferences_sql_explain.png
|
||||
:alt: Preferences dialog sqleditor explain options
|
||||
:align: center
|
||||
@@ -474,11 +476,11 @@ Use the fields on the *Options* panel to manage editor preferences.
|
||||
* When the *Show View/Edit Data Promotion Warning?* switch is set to *True*
|
||||
View/Edit Data tool will show promote to Query tool confirm dialog on query edit.
|
||||
|
||||
* When the *Underline query at cursor?* switch is set to *True*, query tool will
|
||||
* When the *Underline query at cursor?* switch is set to *True*, query tool will
|
||||
parse and underline the query at the cursor position.
|
||||
|
||||
* When the *Underlined query execute warning?* switch is set to *True*, query tool
|
||||
will warn upon clicking the *Execute Query* button in the query tool. The warning
|
||||
* When the *Underlined query execute warning?* switch is set to *True*, query tool
|
||||
will warn upon clicking the *Execute Query* button in the query tool. The warning
|
||||
will appear only if *Underline query at cursor?* is set to *False*.
|
||||
|
||||
.. image:: images/preferences_sql_results_grid.png
|
||||
@@ -495,15 +497,16 @@ 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.
|
||||
* Specify the number of records to fetch in one batch. Changing this value will
|
||||
override DATA_RESULT_ROWS_PER_PAGE 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
|
||||
character for copied data.
|
||||
* Use the *Result copy quoting* drop-down listbox to select which type of fields
|
||||
require quoting; select *All*, *None*, or *Strings*.
|
||||
* When the *Striped rows?* switch is set to true, the result grid will display
|
||||
rows with alternating background colors.
|
||||
|
||||
.. image:: images/preferences_sql_keyboard_shortcuts.png
|
||||
:alt: Preferences dialog sql keyboard shortcuts section
|
||||
@@ -521,7 +524,7 @@ reformatting of SQL.
|
||||
|
||||
* Use the *Data type case* option to specify whether to change data types
|
||||
into upper, lower, or preserve case.
|
||||
* Use the *Expression width* option to specify maximum number of characters
|
||||
* Use the *Expression width* option to specify maximum number of characters
|
||||
in parenthesized expressions to be kept on single line.
|
||||
* Use the *Function case* option to specify whether to change function
|
||||
names into upper, lower, or preserve case.
|
||||
@@ -529,7 +532,7 @@ reformatting of SQL.
|
||||
(object names) into upper, lower, or capitalized case.
|
||||
* Use the *Keyword case* option to specify whether to change keywords into
|
||||
upper, lower, or preserve case.
|
||||
* Use *Lines between queries* to specify how many empty lines to leave
|
||||
* Use *Lines between queries* to specify how many empty lines to leave
|
||||
between SQL statements. If set to zero it puts no new line.
|
||||
* Use *Logical operator new line* to specify newline placement before or
|
||||
after logical operators (AND, OR, XOR).
|
||||
|
||||
@@ -74,8 +74,8 @@ key combination to select from a popup menu of autocomplete options.
|
||||
|
||||
After entering a query, select the *Execute script* icon from the toolbar. The
|
||||
complete contents of the SQL editor panel will be sent to the database server
|
||||
for execution. To execute only a section of the code that is displayed in the
|
||||
SQL editor, highlight the text that you want the server to execute, and click the
|
||||
for execution. To execute only a section of the code that is displayed in the
|
||||
SQL editor, highlight the text that you want the server to execute, and click the
|
||||
*Execute script* icon.
|
||||
|
||||
.. image:: images/query_execute_script.png
|
||||
@@ -177,6 +177,7 @@ You can:
|
||||
* Use the *Save results to file* icon to save the content of the *Data Output*
|
||||
tab as a comma-delimited file.
|
||||
* Edit the data in the result set of a SELECT query if it is updatable.
|
||||
* Move between pages of data result.
|
||||
|
||||
.. _updatable-result-set:
|
||||
|
||||
|
||||
@@ -194,6 +194,8 @@ Data Editing Options
|
||||
| | | |
|
||||
| | * Click the *Paste with SERIAL/IDENTITY values?* if you want to paste the copied column values | |
|
||||
| | in the serial/identity columns. | |
|
||||
| | | |
|
||||
| | Note that copied row having *Bytea* datatype cell will be pasted as *Null*. | |
|
||||
+----------------------+---------------------------------------------------------------------------------------------------+----------------+
|
||||
| *Delete* | Click the *Delete* icon to mark the selected rows for deletion. These marked rows get deleted | Option/Alt + |
|
||||
| | | Shift + D |
|
||||
@@ -212,6 +214,48 @@ Data Editing Options
|
||||
| SQL | Use the SQL button to check the current query that gave the data. | |
|
||||
+----------------------+---------------------------------------------------------------------------------------------------+----------------+
|
||||
|
||||
|
||||
Pagination Options
|
||||
********************
|
||||
|
||||
.. image:: images/query_data_pagination.png
|
||||
:alt: Query tool data pagination options
|
||||
:align: center
|
||||
|
||||
.. table::
|
||||
:class: longtable
|
||||
:widths: 1 4 1
|
||||
|
||||
+----------------------+---------------------------------------------------------------------------------------------------+----------------+
|
||||
| Icon | Behavior | Shortcut |
|
||||
+======================+===================================================================================================+================+
|
||||
| *Rows Range* | Show the current row numbers visible in the data grid. | |
|
||||
+----------------------+---------------------------------------------------------------------------------------------------+----------------+
|
||||
| *Edit Range* | Click to open the from and to rows range inputs to allow setting them. | |
|
||||
+----------------------+---------------------------------------------------------------------------------------------------+----------------+
|
||||
| *Page No* | Enter the page no you want to jump to out of total shown next to this input | |
|
||||
+----------------------+---------------------------------------------------------------------------------------------------+----------------+
|
||||
| *First Page* | Click to go to the first page. | |
|
||||
+----------------------+---------------------------------------------------------------------------------------------------+----------------+
|
||||
| *Previous Page* | Click to go to the previous page. | |
|
||||
+----------------------+---------------------------------------------------------------------------------------------------+----------------+
|
||||
| *Next Page* | Click to go to the next page. | |
|
||||
+----------------------+---------------------------------------------------------------------------------------------------+----------------+
|
||||
| *Last Page* | Click to go to the last page. | |
|
||||
+----------------------+---------------------------------------------------------------------------------------------------+----------------+
|
||||
|
||||
|
||||
.. image:: images/query_data_pagination_edit.png
|
||||
:alt: Query tool data pagination options
|
||||
:align: center
|
||||
|
||||
One can click the edit range button to open rows range editor:
|
||||
|
||||
* From and to range should be between 1 and total rows.
|
||||
* The range can be applied by clicking the *Apply* button or by pressing enter in the range inputs.
|
||||
* Once the range is applied, pgAdmin will recalculate the rows per page. The pagination will then behave based on the new rows per page.
|
||||
* It may be possible that on pressing next page button, the new rows range is not next to manually enterred range.
|
||||
|
||||
Status Bar
|
||||
**********
|
||||
|
||||
@@ -224,6 +268,8 @@ The status bar shows the following information:
|
||||
* **Total rows**: The total number of rows returned by the query.
|
||||
* **Query complete**: The time is taken by the query to complete.
|
||||
* **Rows selected**: The number of rows selected in the data output panel.
|
||||
* **Changes staged**: This information showed the number of rows added, deleted, and updated.
|
||||
* **Changes staged**: This information shows the number of rows added, deleted, and updated.
|
||||
* **LF/CRLF**: It shows the end of line sequence to be used for the editor. When opening an empty editor, it will be decided based on OS.
|
||||
And when opening an existing file, it will be based on file end of lines. One can change the EOL by clicking on any of the options.
|
||||
* **Ln**: In the Query tab, it is the line number at which the cursor is positioned.
|
||||
* **Col**: In the Query tab, it is the column number at which the cursor is positioned
|
||||
@@ -12,6 +12,12 @@ notes for it.
|
||||
:maxdepth: 1
|
||||
|
||||
|
||||
release_notes_8_14
|
||||
release_notes_8_13
|
||||
release_notes_8_12
|
||||
release_notes_8_11
|
||||
release_notes_8_10
|
||||
release_notes_8_9
|
||||
release_notes_8_8
|
||||
release_notes_8_7
|
||||
release_notes_8_6
|
||||
|
||||
@@ -0,0 +1,59 @@
|
||||
************
|
||||
Version 8.10
|
||||
************
|
||||
|
||||
Release date: 2024-07-29
|
||||
|
||||
This release contains a number of bug fixes and new features since the release of pgAdmin 4 v8.9.
|
||||
|
||||
Supported Database Servers
|
||||
**************************
|
||||
**PostgreSQL**: 12, 13, 14, 15, 16 and 17
|
||||
|
||||
**EDB Advanced Server**: 12, 13, 14, 15, and 16
|
||||
|
||||
Bundled PostgreSQL Utilities
|
||||
****************************
|
||||
**psql**, **pg_dump**, **pg_dumpall**, **pg_restore**: 16.3
|
||||
|
||||
|
||||
New features
|
||||
************
|
||||
|
||||
| `Issue #3981 <https://github.com/pgadmin-org/pgadmin4/issues/3981>`_ - Add support for Postgres Server Logs for Text, CSV and JSON format in plain and tabular formats. Upgrade React to version 18.
|
||||
| `Issue #6572 <https://github.com/pgadmin-org/pgadmin4/issues/6572>`_ - Add a keyboard shortcut to close active tab panel.
|
||||
| `Issue #7530 <https://github.com/pgadmin-org/pgadmin4/issues/7530>`_ - Add support for highlighting selection matches in the query editor.
|
||||
|
||||
Housekeeping
|
||||
************
|
||||
|
||||
| `Issue #7494 <https://github.com/pgadmin-org/pgadmin4/issues/7494>`_ - Replace pgAdmin NW.js container with Electron container.
|
||||
| `Issue #7501 <https://github.com/pgadmin-org/pgadmin4/issues/7501>`_ - Updated to the latest version of the Notistack library.
|
||||
| `Issue #7537 <https://github.com/pgadmin-org/pgadmin4/issues/7537>`_ - Ensure that pgAdmin 4 is compatible with PostgreSQL v17.
|
||||
| `Issue #7607 <https://github.com/pgadmin-org/pgadmin4/issues/7607>`_ - Automatically apply virtualization in the DataGridView of SchemaView if the schema contains only one collection.
|
||||
| `Issue #7623 <https://github.com/pgadmin-org/pgadmin4/issues/7623>`_ - Add the git commit hash details to the About dialog.
|
||||
|
||||
Bug fixes
|
||||
*********
|
||||
|
||||
| `Issue #3199 <https://github.com/pgadmin-org/pgadmin4/issues/3199>`_ - Fixed an issue where paste operation in query tool data grid should skip bytea columns and put the value as NULL instead.
|
||||
| `Issue #4165 <https://github.com/pgadmin-org/pgadmin4/issues/4165>`_ - Fixed an issue where the taskbar icon appeared as a red square for the query tool and schema diff when opened in a new window.
|
||||
| `Issue #5345 <https://github.com/pgadmin-org/pgadmin4/issues/5345>`_ - Fix issue with missing new added records in download file.
|
||||
| `Issue #5610 <https://github.com/pgadmin-org/pgadmin4/issues/5610>`_ - Fixed an issue where the File Open dialog did not show files without a dot extension.
|
||||
| `Issue #6548 <https://github.com/pgadmin-org/pgadmin4/issues/6548>`_ - Ensure pgAdmin never makes network requests to Google etc.
|
||||
| `Issue #6571 <https://github.com/pgadmin-org/pgadmin4/issues/6571>`_ - Fixed an issue where pop-up notifications from Object Explorer wouldn't get dismissed automatically if the Query Tool was opened.
|
||||
| `Issue #7035 <https://github.com/pgadmin-org/pgadmin4/issues/7035>`_ - Fixed the permission denied issue for functions of the pgstattuple extension when accessing statistics with a non-admin user.
|
||||
| `Issue #7219 <https://github.com/pgadmin-org/pgadmin4/issues/7219>`_ - Ensure processes related notifiers disappears.
|
||||
| `Issue #7297 <https://github.com/pgadmin-org/pgadmin4/issues/7297>`_ - Updated entrypoint.sh to utilize the email-validator package for email validation.
|
||||
| `Issue #7511 <https://github.com/pgadmin-org/pgadmin4/issues/7511>`_ - Fixed an issue where users could not insert characters at the desired location, as it was added to the end of the line.
|
||||
| `Issue #7554 <https://github.com/pgadmin-org/pgadmin4/issues/7554>`_ - Fixed an issue where sorting the database activity table on the dashboard by any column caused the details to expand in the wrong position.
|
||||
| `Issue #7618 <https://github.com/pgadmin-org/pgadmin4/issues/7618>`_ - Fix an issue where the preferences JSON file has no effect when an external database is used.
|
||||
| `Issue #7626 <https://github.com/pgadmin-org/pgadmin4/issues/7626>`_ - Fixed an issue where theme preview under theme options was broken in pgAdmin server mode.
|
||||
| `Issue #7627 <https://github.com/pgadmin-org/pgadmin4/issues/7627>`_ - Fixed an issue where users could not autofill their saved passwords in the connect server dialog in the browser.
|
||||
| `Issue #7638 <https://github.com/pgadmin-org/pgadmin4/issues/7638>`_ - Fixed an issue where Generate Script button should be disabled if no objects are selected in the schema diff result.
|
||||
| `Issue #7639 <https://github.com/pgadmin-org/pgadmin4/issues/7639>`_ - Fixed an issue where ERD Open/Save shorcuts were not working on Windows/Linux.
|
||||
| `Issue #7660 <https://github.com/pgadmin-org/pgadmin4/issues/7660>`_ - Add a precautionary check for the query tool connection cursor to fix the error 'NoneType' object has no attribute '_query'.
|
||||
| `Issue #7662 <https://github.com/pgadmin-org/pgadmin4/issues/7662>`_ - Fixed an issue where boolean values in node details of graphical explain plan were not interpreted correctly.
|
||||
| `Issue #7663 <https://github.com/pgadmin-org/pgadmin4/issues/7663>`_ - Fixed an issue where Reassign/Drop Owned dialog not opening for Role.
|
||||
| `Issue #7679 <https://github.com/pgadmin-org/pgadmin4/issues/7679>`_ - Ensure pgadmin does not try to connect to the server if saved password is not available.
|
||||
| `Issue #7681 <https://github.com/pgadmin-org/pgadmin4/issues/7681>`_ - Ensure that pgAdmin works when opened in an iframe.
|
||||
@@ -0,0 +1,45 @@
|
||||
************
|
||||
Version 8.11
|
||||
************
|
||||
|
||||
Release date: 2024-08-22
|
||||
|
||||
This release contains a number of bug fixes and new features since the release of pgAdmin 4 v8.10.
|
||||
|
||||
Supported Database Servers
|
||||
**************************
|
||||
**PostgreSQL**: 12, 13, 14, 15, 16 and 17
|
||||
|
||||
**EDB Advanced Server**: 12, 13, 14, 15, and 16
|
||||
|
||||
Bundled PostgreSQL Utilities
|
||||
****************************
|
||||
**psql**, **pg_dump**, **pg_dumpall**, **pg_restore**: 16.3
|
||||
|
||||
|
||||
New features
|
||||
************
|
||||
|
||||
| `Issue #2046 <https://github.com/pgadmin-org/pgadmin4/issues/2046>`_ - Add a home button to the geometry viewer to set original zoom level when the viewer was opened.
|
||||
|
||||
Housekeeping
|
||||
************
|
||||
|
||||
| `Issue #7705 <https://github.com/pgadmin-org/pgadmin4/issues/7705>`_ - Upgrade react-data-grid fork to latest and change pgAdmin accordingly.
|
||||
| `Issue #7776 <https://github.com/pgadmin-org/pgadmin4/issues/7776>`_ - Introduce custom React Hook useSchemaState to simplify SchemaView component.
|
||||
|
||||
Bug fixes
|
||||
*********
|
||||
|
||||
| `Issue #7499 <https://github.com/pgadmin-org/pgadmin4/issues/7499>`_ - Fixed an issue where refreshing the Schema Diff tool opened in a new tab caused an error.
|
||||
| `Issue #7540 <https://github.com/pgadmin-org/pgadmin4/issues/7540>`_ - Fix server heartbeat logging error after deleting the server.
|
||||
| `Issue #7682 <https://github.com/pgadmin-org/pgadmin4/issues/7682>`_ - Fixed an issue where the Generate Script ignored filter conditions when a parent node was selected.
|
||||
| `Issue #7683 <https://github.com/pgadmin-org/pgadmin4/issues/7683>`_ - Fixed an issue where delete object(shortcut key) affecting both text and Object Explorer items.
|
||||
| `Issue #7688 <https://github.com/pgadmin-org/pgadmin4/issues/7688>`_ - Fix an issue where ERD tool should to be able to open saved pgerd file when using keyboard shortcuts.
|
||||
| `Issue #7728 <https://github.com/pgadmin-org/pgadmin4/issues/7728>`_ - Updated the documentation for web server authentication.
|
||||
| `Issue #7737 <https://github.com/pgadmin-org/pgadmin4/issues/7737>`_ - Fixed an issue where the REVOKE statement in the create script was throwing an error if the role contained special characters.
|
||||
| `Issue #7748 <https://github.com/pgadmin-org/pgadmin4/issues/7748>`_ - Improve code highlighting in query editor.
|
||||
| `Issue #7754 <https://github.com/pgadmin-org/pgadmin4/issues/7754>`_ - Fix an issue where the wheel package is not getting installed on the arm64-based macOS version < 14.
|
||||
| `Issue #7772 <https://github.com/pgadmin-org/pgadmin4/issues/7772>`_ - Fixed an issue where column resizing is not working in search objects dialog.
|
||||
| `Issue #7775 <https://github.com/pgadmin-org/pgadmin4/issues/7775>`_ - Fixed an issue where the value in the find box is not updating with selected text in editor if find is already open and re-triggered.
|
||||
| `Issue #7793 <https://github.com/pgadmin-org/pgadmin4/issues/7793>`_ - Fixed paths for Flatpak broken after Electron changes.
|
||||
@@ -0,0 +1,43 @@
|
||||
************
|
||||
Version 8.12
|
||||
************
|
||||
|
||||
Release date: 2024-09-23
|
||||
|
||||
This release contains a number of bug fixes and new features since the release of pgAdmin 4 v8.11.
|
||||
|
||||
Supported Database Servers
|
||||
**************************
|
||||
**PostgreSQL**: 12, 13, 14, 15, 16 and 17
|
||||
|
||||
**EDB Advanced Server**: 12, 13, 14, 15, and 16
|
||||
|
||||
Bundled PostgreSQL Utilities
|
||||
****************************
|
||||
**psql**, **pg_dump**, **pg_dumpall**, **pg_restore**: 16.4
|
||||
|
||||
|
||||
New features
|
||||
************
|
||||
|
||||
| `Issue #1900 <https://github.com/pgadmin-org/pgadmin4/issues/1900>`_ - Added feature to restore preferences to their default values.
|
||||
| `Issue #6222 <https://github.com/pgadmin-org/pgadmin4/issues/6222>`_ - Add a new config variable - ALLOW_SPECIAL_EMAIL_DOMAINS to allow special domains for pgAdmin user emails.
|
||||
| `Issue #7293 <https://github.com/pgadmin-org/pgadmin4/issues/7293>`_ - Allow running non-continuous selected SQL code blocks in the query tool.
|
||||
|
||||
Housekeeping
|
||||
************
|
||||
|
||||
| `Issue #7884 <https://github.com/pgadmin-org/pgadmin4/issues/7884>`_ - Improved the extendability of the SchemaView and DataGridView.
|
||||
|
||||
Bug fixes
|
||||
*********
|
||||
|
||||
| `Issue #6502 <https://github.com/pgadmin-org/pgadmin4/issues/6502>`_ - Fix the query tool restore connection issue on the server disconnection from the left side object explorer.
|
||||
| `Issue #7076 <https://github.com/pgadmin-org/pgadmin4/issues/7076>`_ - Revamp the current password saving implementation to a keyring and reduce repeated OS user password prompts.
|
||||
| `Issue #7571 <https://github.com/pgadmin-org/pgadmin4/issues/7571>`_ - Fixed an issue where users could not use pgAdmin if they did not have access to the management database.
|
||||
| `Issue #7811 <https://github.com/pgadmin-org/pgadmin4/issues/7811>`_ - Fixed an issue where servers listed in the servers.json file were being reimported upon container restart.
|
||||
| `Issue #7839 <https://github.com/pgadmin-org/pgadmin4/issues/7839>`_ - Added support for OIDC based OAuth2 authentication.
|
||||
| `Issue #7878 <https://github.com/pgadmin-org/pgadmin4/issues/7878>`_ - Fixed an issue where cursor moves to end of line when editing input fields.
|
||||
| `Issue #7890 <https://github.com/pgadmin-org/pgadmin4/issues/7890>`_ - Fixed an issue where "Quit App" confirmation modal in desktop app is not respecting "Confirm on close or refresh?".
|
||||
| `Issue #7895 <https://github.com/pgadmin-org/pgadmin4/issues/7895>`_ - Fixed an issue where different client backend shows all SQL are same.
|
||||
| `Issue #7945 <https://github.com/pgadmin-org/pgadmin4/issues/7945>`_ - Fixed a security issue where the OAuth2 client ID and secret exposed through the web browser (CVE-2024-9014).
|
||||
@@ -0,0 +1,55 @@
|
||||
************
|
||||
Version 8.13
|
||||
************
|
||||
|
||||
Release date: 2024-11-14
|
||||
|
||||
This release contains a number of bug fixes and new features since the release of pgAdmin 4 v8.12.
|
||||
|
||||
Supported Database Servers
|
||||
**************************
|
||||
**PostgreSQL**: 12, 13, 14, 15, 16 and 17
|
||||
|
||||
**EDB Advanced Server**: 12, 13, 14, 15, and 16
|
||||
|
||||
Bundled PostgreSQL Utilities
|
||||
****************************
|
||||
**psql**, **pg_dump**, **pg_dumpall**, **pg_restore**: 17.0
|
||||
|
||||
|
||||
New features
|
||||
************
|
||||
|
||||
| `Issue #1780 <https://github.com/pgadmin-org/pgadmin4/issues/1780>`_ - Replace infinite scrolling with pagination in query tool data output for better UX and performance.
|
||||
| `Issue #1984 <https://github.com/pgadmin-org/pgadmin4/issues/1984>`_ - Add an object menu option to disconnect all server and database connections.
|
||||
| `Issue #2874 <https://github.com/pgadmin-org/pgadmin4/issues/2874>`_ - Alternate the background color of rows to enhance readability.
|
||||
| `Issue #5869 <https://github.com/pgadmin-org/pgadmin4/issues/5869>`_ - Allow to pass PGADMIN_CONFIG_CONFIG_DATABASE_URI from docker secrets.
|
||||
| `Issue #6016 <https://github.com/pgadmin-org/pgadmin4/issues/6016>`_ - Format dashboard graph metrics for better readability.
|
||||
| `Issue #7393 <https://github.com/pgadmin-org/pgadmin4/issues/7393>`_ - Added support for auto-detecting and setting the End-of-line character (LF/CRLF) in the query tool editor.
|
||||
| `Issue #7863 <https://github.com/pgadmin-org/pgadmin4/issues/7863>`_ - Make the background color for the serial number and header cells distinct.
|
||||
|
||||
Housekeeping
|
||||
************
|
||||
|
||||
| `Issue #8061 <https://github.com/pgadmin-org/pgadmin4/issues/8061>`_ - Updated the react-menu library from v2 to v4.
|
||||
| `Issue #8077 <https://github.com/pgadmin-org/pgadmin4/issues/8077>`_ - Remove bootstrap from the runtime code.
|
||||
| `Issue #8102 <https://github.com/pgadmin-org/pgadmin4/issues/8077>`_ - Remove the dependency on python packages eventlet and greenlet.
|
||||
|
||||
Bug fixes
|
||||
*********
|
||||
|
||||
| `Issue #5307 <https://github.com/pgadmin-org/pgadmin4/issues/5307>`_ - Fixed an issue to allow the Enter key to save data in the result grid text editor.
|
||||
| `Issue #7289 <https://github.com/pgadmin-org/pgadmin4/issues/7289>`_ - Move 'About pgAdmin 4' to app menu on macOS.
|
||||
| `Issue #7655 <https://github.com/pgadmin-org/pgadmin4/issues/7655>`_ - Fixed an issue where the query tool was crashing when an empty geometry was being rendered.
|
||||
| `Issue #7837 <https://github.com/pgadmin-org/pgadmin4/issues/7837>`_ - Fixed an issue where role properties were not loading.
|
||||
| `Issue #7883 <https://github.com/pgadmin-org/pgadmin4/issues/7883>`_ - Fix multiple issues related to debugger params dialog input.
|
||||
| `Issue #7919 <https://github.com/pgadmin-org/pgadmin4/issues/7919>`_ - Fixed an issue where the dock layout was not saved upon closing a tab.
|
||||
| `Issue #7920 <https://github.com/pgadmin-org/pgadmin4/issues/7920>`_ - Fixed an issue where the copy shortcut CTRL +C was not working in the Query Tool data grid.
|
||||
| `Issue #7955 <https://github.com/pgadmin-org/pgadmin4/issues/7955>`_ - Fixed an issue where Dashboard tab showing 'Something went wrong'.
|
||||
| `Issue #7957 <https://github.com/pgadmin-org/pgadmin4/issues/7957>`_ - Fixed an issue where cursor selection is not visible in the PSQL tool.
|
||||
| `Issue #7965 <https://github.com/pgadmin-org/pgadmin4/issues/7965>`_ - Allow OAuth2 params OAUTH2_NAME, OAUTH2_DISPLAY_NAME, OAUTH2_ICON, OAUTH2_BUTTON_COLOR to be optional.
|
||||
| `Issue #7988 <https://github.com/pgadmin-org/pgadmin4/issues/7988>`_ - Add appropriate minimum width and height setting for desktop apps to avoid app accidentally going below visibility levels.
|
||||
| `Issue #7993 <https://github.com/pgadmin-org/pgadmin4/issues/7993>`_ - Fixed an issue where graphical explain keeps the node details open even after plan changed.
|
||||
| `Issue #8007 <https://github.com/pgadmin-org/pgadmin4/issues/8007>`_ - Fixed an issue in the debugger where function arguments of the character data type were being truncated.
|
||||
| `Issue #8013 <https://github.com/pgadmin-org/pgadmin4/issues/8013>`_ - Fix the issue where rows do not retain shading when scrolling.
|
||||
| `Issue #8022 <https://github.com/pgadmin-org/pgadmin4/issues/8022>`_ - Use PG17 as the default in the container.
|
||||
@@ -0,0 +1,53 @@
|
||||
************
|
||||
Version 8.14
|
||||
************
|
||||
|
||||
Release date: 2024-12-12
|
||||
|
||||
This release contains a number of bug fixes and new features since the release of pgAdmin 4 v8.13.
|
||||
|
||||
Supported Database Servers
|
||||
**************************
|
||||
**PostgreSQL**: 12, 13, 14, 15, 16 and 17
|
||||
|
||||
**EDB Advanced Server**: 12, 13, 14, 15, 16 and 17
|
||||
|
||||
Bundled PostgreSQL Utilities
|
||||
****************************
|
||||
**psql**, **pg_dump**, **pg_dumpall**, **pg_restore**: 17.0
|
||||
|
||||
|
||||
New features
|
||||
************
|
||||
|
||||
| `Issue #3317 <https://github.com/pgadmin-org/pgadmin4/issues/3317>`_ - Allow setting NULL ordering for columns in view/edit data filter dialog.
|
||||
| `Issue #3751 <https://github.com/pgadmin-org/pgadmin4/issues/3751>`_ - Show auto-complete column names in filtered rows dialog of table and filter options of view/edit data tool.
|
||||
| `Issue #5786 <https://github.com/pgadmin-org/pgadmin4/issues/5786>`_ - Allow the use of a pgpass file in the pgAdmin container via Docker secrets.
|
||||
| `Issue #6592 <https://github.com/pgadmin-org/pgadmin4/issues/6592>`_ - Fixed multiple issues and improved ERD auto-layout.
|
||||
| `Issue #6794 <https://github.com/pgadmin-org/pgadmin4/issues/6794>`_ - Add support for passing connection details as placeholders in the passexec command.
|
||||
| `Issue #7330 <https://github.com/pgadmin-org/pgadmin4/issues/7330>`_ - Add support to deploy pgAdmin in a container with readOnlyRootFilesystem to true.
|
||||
| `Issue #8095 <https://github.com/pgadmin-org/pgadmin4/issues/8095>`_ - Added support for a builtin locale provider in the Database dialog.
|
||||
| `Issue #8192 <https://github.com/pgadmin-org/pgadmin4/issues/8192>`_ - Added support for adding tags on a server node.
|
||||
|
||||
Housekeeping
|
||||
************
|
||||
|
||||
|
||||
Bug fixes
|
||||
*********
|
||||
|
||||
| `Issue #5099 <https://github.com/pgadmin-org/pgadmin4/issues/5099>`_ - Fixed an issue where Ctrl/Cmd + A was not selecting all data in query tool data grid.
|
||||
| `Issue #7384 <https://github.com/pgadmin-org/pgadmin4/issues/7384>`_ - Fixed an issue where querying a foreign table gives the error 'ForeignTableCommand' object has no attribute 'auto_commit'.
|
||||
| `Issue #7486 <https://github.com/pgadmin-org/pgadmin4/issues/7486>`_ - Fixed an issue where indent with space was not aligning to next tab position.
|
||||
| `Issue #7809 <https://github.com/pgadmin-org/pgadmin4/issues/7809>`_ - Fixed an issue where pgAdmin crashes on accessing the dashboard state tab when database is super busy.
|
||||
| `Issue #7865 <https://github.com/pgadmin-org/pgadmin4/issues/7865>`_ - Fixed an issue related to the query tool update connection after the server disconnected from the object explorer.
|
||||
| `Issue #7892 <https://github.com/pgadmin-org/pgadmin4/issues/7892>`_ - Fixed an issue where a column name change in the edit dialog of the table node does not show the updated column name.
|
||||
| `Issue #8010 <https://github.com/pgadmin-org/pgadmin4/issues/8010>`_ - Fixed an issue where query tool should show results and messages only from the last executed query.
|
||||
| `Issue #8028 <https://github.com/pgadmin-org/pgadmin4/issues/8028>`_ - Fixed an issue where query tool throws syntax error if a newly added row is untouched and saved.
|
||||
| `Issue #8065 <https://github.com/pgadmin-org/pgadmin4/issues/8065>`_ - Ensure the crypt key is retrieved correctly on backend server restart.
|
||||
| `Issue #8098 <https://github.com/pgadmin-org/pgadmin4/issues/8098>`_ - Fixed an issue in schema diff where an error message popup was showing some garbage without any info.
|
||||
| `Issue #8127 <https://github.com/pgadmin-org/pgadmin4/issues/8127>`_ - Fixed an issue where query tool should not prompt for unsaved changes when there are no changes.
|
||||
| `Issue #8134 <https://github.com/pgadmin-org/pgadmin4/issues/8134>`_ - Add a user preference to enable/disable alternating row background colors in the data output of query tool.
|
||||
| `Issue #8157 <https://github.com/pgadmin-org/pgadmin4/issues/8157>`_ - Fixed an issue where doing Ctrl/Cmd+C on a selected text in a cell editor of data output in the query tool copied the complete text.
|
||||
| `Issue #8158 <https://github.com/pgadmin-org/pgadmin4/issues/8158>`_ - Fixed an issue where auto-width of wide columns in data output is incorrectly calculated.
|
||||
| `Issue #8215 <https://github.com/pgadmin-org/pgadmin4/issues/8215>`_ - Ensure correct custom SSL certificate passed in connection string.
|
||||
@@ -0,0 +1,50 @@
|
||||
***********
|
||||
Version 8.9
|
||||
***********
|
||||
|
||||
Release date: 2024-06-27
|
||||
|
||||
This release contains a number of bug fixes and new features since the release of pgAdmin 4 v8.8.
|
||||
|
||||
Supported Database Servers
|
||||
**************************
|
||||
**PostgreSQL**: 12, 13, 14, 15, and 16
|
||||
|
||||
**EDB Advanced Server**: 12, 13, 14, 15, and 16
|
||||
|
||||
Bundled PostgreSQL Utilities
|
||||
****************************
|
||||
**psql**, **pg_dump**, **pg_dumpall**, **pg_restore**: 16.3
|
||||
|
||||
|
||||
New features
|
||||
************
|
||||
|
||||
| `Issue #5932 <https://github.com/pgadmin-org/pgadmin4/issues/5932>`_ - Provide option to set theme based on OS theme preference.
|
||||
|
||||
Housekeeping
|
||||
************
|
||||
|
||||
| `Issue #7363 <https://github.com/pgadmin-org/pgadmin4/issues/7363>`_ - Remove the usage of MUI makeStyles as it doesn't support React 18.
|
||||
|
||||
Bug fixes
|
||||
*********
|
||||
|
||||
| `Issue #6357 <https://github.com/pgadmin-org/pgadmin4/issues/6357>`_ - Disable the query tool editor input if any SQL is being loaded to prevent users from typing.
|
||||
| `Issue #7241 <https://github.com/pgadmin-org/pgadmin4/issues/7241>`_ - Fixed an issue where resizable data editors in query tool should not be allowed to resize beyond the app window bounds.
|
||||
| `Issue #7295 <https://github.com/pgadmin-org/pgadmin4/issues/7295>`_ - Fixed new line indentation in query editor and add a user preference to disable it.
|
||||
| `Issue #7306 <https://github.com/pgadmin-org/pgadmin4/issues/7306>`_ - Ensure that a user can connect to a server using SSL certificates and identity files from a shared storage.
|
||||
| `Issue #7316 <https://github.com/pgadmin-org/pgadmin4/issues/7316>`_ - Fixed an issue where object explorer toolbar button not showing shortcut in the tooltip.
|
||||
| `Issue #7414 <https://github.com/pgadmin-org/pgadmin4/issues/7414>`_ - Add support for comments on RLS policy object.
|
||||
| `Issue #7476 <https://github.com/pgadmin-org/pgadmin4/issues/7476>`_ - Fixed an issue where changing a column name should reflect in all the constraints in table object dialog and ERD table dialog.
|
||||
| `Issue #7481 <https://github.com/pgadmin-org/pgadmin4/issues/7481>`_ - Fixed an issue where dark theme shows white background when all tabs are closed.
|
||||
| `Issue #7516 <https://github.com/pgadmin-org/pgadmin4/issues/7516>`_ - Ensure preferences can be loaded using preferences.json.
|
||||
| `Issue #7523 <https://github.com/pgadmin-org/pgadmin4/issues/7523>`_ - Fixed an issue where the schema diff incorrectly marked tables as different due to schema-qualified trigger functions in the trigger definitions.
|
||||
| `Issue #7528 <https://github.com/pgadmin-org/pgadmin4/issues/7528>`_ - Fixed an issue where backslash breaks syntax highlighting.
|
||||
| `Issue #7536 <https://github.com/pgadmin-org/pgadmin4/issues/7536>`_ - Search Objects dialog should focus on search input on open.
|
||||
| `Issue #7542 <https://github.com/pgadmin-org/pgadmin4/issues/7542>`_ - Fixed incorrect sorting of size in statistics tab.
|
||||
| `Issue #7555 <https://github.com/pgadmin-org/pgadmin4/issues/7555>`_ - Fixed an issue where query tool shortcuts for find/replace are not working.
|
||||
| `Issue #7556 <https://github.com/pgadmin-org/pgadmin4/issues/7556>`_ - Fixed migration failure while using external database.
|
||||
| `Issue #7593 <https://github.com/pgadmin-org/pgadmin4/issues/7593>`_ - Fixed an issue where query tool auto-complete stops working after connection change.
|
||||
| `Issue #7605 <https://github.com/pgadmin-org/pgadmin4/issues/7605>`_ - Fix the permissions issue in the pgAdmin installation directory on Debian and RHEL-8 platforms (CVE-2024-6238).
|
||||
| `Issue #7616 <https://github.com/pgadmin-org/pgadmin4/issues/7616>`_ - Fixed an issue where delete button in Users data was enabled for incorrect rows.
|
||||
@@ -21,6 +21,7 @@ Use the fields in the *General* tab to define the RLS Policy:
|
||||
* Use the *Name* field to add a descriptive name for the RLS Policy. The name will be displayed in the *pgAdmin* tree control.
|
||||
* Use the drop-down listbox next to *Role* to select the Role to which the RLS Policy is to be applied.
|
||||
* Use the drop-down listbox next to *Type* to select the type of the policy.
|
||||
* Store notes about the policy in the Comment field.
|
||||
|
||||
Click the *Commands* tab to continue.
|
||||
|
||||
|
||||
@@ -205,6 +205,9 @@ Use the fields in the *Advanced* tab to configure a connection:
|
||||
command will be used as the SQL password. This may be useful when the password
|
||||
should be generated as a transient authorization token instead of providing a
|
||||
password when connecting in `PAM authentication <https://www.postgresql.org/docs/current/auth-pam.html>`_ scenarios.
|
||||
You can pass server hostname, port and DB username to the password exec command as variable by providing placeholders
|
||||
like ``%HOST%``, ``%PORT%`` and ``%USERNAME%`` which will be replace with the server connection information.
|
||||
Example: ``/path/to/script --hostnmae %HOST% --port %PORT% --username %USERNAME%``
|
||||
* Use the *Password exec expiration* field to specify a maximum age, in seconds,
|
||||
of the password generated with a *Password exec command*. If not specified,
|
||||
the password will not expire until your pgAdmin session does.
|
||||
@@ -230,3 +233,18 @@ Use the fields in the *Advanced* tab to configure a connection:
|
||||
.. toctree::
|
||||
|
||||
clear_saved_passwords
|
||||
|
||||
|
||||
Click the *Tags* tab to continue.
|
||||
|
||||
.. image:: images/server_tags.png
|
||||
:alt: Server dialog tags tab
|
||||
:align: center
|
||||
|
||||
Use the table in the *Tags* tab to add tags. The tags will be shown on the right side of
|
||||
a server node label in the object explorer tree.
|
||||
|
||||
Click on the *+* button to add a new tag. Some of the parameters are:
|
||||
|
||||
* *Text* field to specify the tag name.
|
||||
* *Color* field to select the accent color of the tag.
|
||||
@@ -9,14 +9,14 @@ display information about the object currently selected in the *pgAdmin* tree
|
||||
control in the left window. Select a tab to access information about the
|
||||
highlighted object in the tree control.
|
||||
|
||||
.. image:: images/main_dashboard_general.png
|
||||
:alt: Dashboard panel
|
||||
.. image:: images/dashboard_activity.png
|
||||
:alt: Dashboard Activity
|
||||
:align: center
|
||||
|
||||
The graphs and tables on the *Dashboard* tab provides an active analysis of system statistics and the usage
|
||||
statistics for the selected server or database.
|
||||
|
||||
Click the *General* tab to get the usage statistics for the selected server or database:
|
||||
Click the *Activity* tab to get the usage statistics for the selected server or database:
|
||||
|
||||
* The *Server sessions* or *Database sessions* graph displays the interactions
|
||||
with the server or database.
|
||||
@@ -30,8 +30,14 @@ Click the *General* tab to get the usage statistics for the selected server or d
|
||||
or fetched from the buffer cache (but not the operating system's file system
|
||||
cache) for the server or database.
|
||||
|
||||
The *Server activity* panel displays information about sessions, locks, prepared
|
||||
transactions, and server configuration (if applicable). The information is
|
||||
.. image:: images/dashboard_stat.png
|
||||
:alt: Dashboard Activity
|
||||
:align: center
|
||||
|
||||
Click the *Stat* tab to get the usage statistics for the selected server or database:
|
||||
|
||||
The *Stat* panel displays information about sessions, locks, prepared
|
||||
transactions. The information is
|
||||
presented in context-sensitive tables. Use controls located above the table to:
|
||||
|
||||
* Click the *Refresh* button to update the information displayed in each table.
|
||||
@@ -56,6 +62,23 @@ session:
|
||||
* Use the *Details* icon (located in the third column) to open the *Details*
|
||||
tab; the tab displays information about the selected session.
|
||||
|
||||
.. image:: images/dashboard_config.png
|
||||
:alt: Dashboard Activity
|
||||
:align: center
|
||||
|
||||
Click the *Configuration* tab to get the server configuration details.
|
||||
|
||||
|
||||
.. image:: images/dashboard_logs.png
|
||||
:alt: Dashboard Activity
|
||||
:align: center
|
||||
|
||||
Click the *Logs* tab to get the server logs.
|
||||
|
||||
* Use the Log Format switch to select the format you want. Text/Plain, JSON and CSV are supported.
|
||||
The enable/disable state of the log format depends on the Postgresql.conf setting.
|
||||
* Use the Logs in tabular format? switch if you want to see the logs in a tabular format.
|
||||
|
||||
Click the *System Statistics* tab to get the statistics for the system:
|
||||
|
||||
.. image:: images/main_dashboard_sys_statistics_summary.png
|
||||
|
||||
@@ -14,12 +14,12 @@
|
||||
{% trans copyright=copyright|e %}<li class="left" style="margin-left: 10px">© Copyright {{ copyright }}.</li>{% endtrans %}
|
||||
{%- endif %}
|
||||
{%- endif %}
|
||||
<li class="right" style="margin-right: 10px"><a href="genindex.html" title="General Index" accesskey="I">index</a></li>
|
||||
<li class="right" style="margin-right: 10px"><a href="genindex.html" title="General Index">index</a></li>
|
||||
{%- if next %}
|
||||
<li class="right" ><a href="{{ next.link|e }}" title="{{ next.title|striptags|e }}" accesskey="N">next</a> |</li>
|
||||
<li class="right" ><a href="{{ next.link|e }}" title="{{ next.title|striptags|e }}">next</a> |</li>
|
||||
{%- endif %}
|
||||
{%- if prev %}
|
||||
<li class="right" ><a href="{{ prev.link|e }}" title="{{ prev.title|striptags|e }}" accesskey="P">previous</a> |</li>
|
||||
<li class="right" ><a href="{{ prev.link|e }}" title="{{ prev.title|striptags|e }}">previous</a> |</li>
|
||||
{%- endif %}
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
@@ -37,6 +37,7 @@ and modify the values for the following parameters:
|
||||
The default value is REMOTE_USER and the possible values are REMOTE_USER,
|
||||
HTTP_X_FORWARDED_USER, X-Forwarded-User."
|
||||
|
||||
.. note:: If REMOTE_USER does not work, try replacing it with either REMOTE-USER or Remote-user.
|
||||
|
||||
Master Password
|
||||
===============
|
||||
|
||||
@@ -21,7 +21,7 @@ _setup_dirs
|
||||
_create_python_virtualenv "debian"
|
||||
_build_runtime
|
||||
_build_docs "debian"
|
||||
_copy_code
|
||||
_copy_code "debian"
|
||||
_generate_sbom
|
||||
|
||||
#
|
||||
@@ -57,6 +57,7 @@ Description: The core server package for pgAdmin. pgAdmin is the most popular an
|
||||
EOF
|
||||
|
||||
# Build the Debian package for the server
|
||||
chmod -R u+rwX,go+rX,go-w "${SERVERROOT}"
|
||||
fakeroot dpkg-deb --build "${SERVERROOT}" "${DISTROOT}/${APP_NAME}-server_${APP_LONG_VERSION}_${OS_ARCH}.deb"
|
||||
|
||||
#
|
||||
@@ -67,6 +68,27 @@ fakeroot dpkg-deb --build "${SERVERROOT}" "${DISTROOT}/${APP_NAME}-server_${APP_
|
||||
echo "Creating the desktop package..."
|
||||
mkdir "${DESKTOPROOT}/DEBIAN"
|
||||
|
||||
# Ubuntu 24 requires apparmor profile to work.
|
||||
OS_ID=$(grep "^ID=" /etc/os-release | awk -F "=" '{ print $2 }')
|
||||
OS_VERSION=$(grep "^VERSION_ID=" /etc/os-release | awk -F "=" '{ print $2 }' | sed 's/"//g' | awk -F "." '{ print $1 }')
|
||||
|
||||
if [ "${OS_ID}" == 'ubuntu' ] && [ "${OS_VERSION}" -ge "24" ]; then
|
||||
cat << EOF > "${DESKTOPROOT}/DEBIAN/conffiles"
|
||||
/etc/apparmor.d/pgadmin4
|
||||
EOF
|
||||
|
||||
mkdir -p "${DESKTOPROOT}/etc/apparmor.d"
|
||||
cp "${SOURCEDIR}/pkg/debian/pgadmin4-aa-profile" "${DESKTOPROOT}/etc/apparmor.d/pgadmin4"
|
||||
|
||||
cat << EOF > "${DESKTOPROOT}/DEBIAN/postinst"
|
||||
#!/bin/sh
|
||||
|
||||
echo "Load apparmor pgAdmin profile..."
|
||||
apparmor_parser -r /etc/apparmor.d/pgadmin4
|
||||
EOF
|
||||
chmod 755 "${DESKTOPROOT}/DEBIAN/postinst"
|
||||
fi
|
||||
|
||||
cat << EOF > "${DESKTOPROOT}/DEBIAN/control"
|
||||
Package: ${APP_NAME}-desktop
|
||||
Version: ${APP_LONG_VERSION}
|
||||
@@ -79,6 +101,7 @@ Description: The desktop user interface for pgAdmin. pgAdmin is the most popular
|
||||
EOF
|
||||
|
||||
# Build the Debian package for the desktop
|
||||
chmod -R u+rwX,go+rX,go-w "${DESKTOPROOT}"
|
||||
fakeroot dpkg-deb --build "${DESKTOPROOT}" "${DISTROOT}/${APP_NAME}-desktop_${APP_LONG_VERSION}_${OS_ARCH}.deb"
|
||||
|
||||
#
|
||||
@@ -108,6 +131,7 @@ mkdir -p "${WEBROOT}/etc/apache2/conf-available"
|
||||
cp "${SOURCEDIR}/pkg/debian/pgadmin4.conf" "${WEBROOT}/etc/apache2/conf-available"
|
||||
|
||||
# Build the Debian package for the web
|
||||
chmod -R u+rwX,go+rX,go-w "${WEBROOT}"
|
||||
fakeroot dpkg-deb --build "${WEBROOT}" "${DISTROOT}/${APP_NAME}-web_${APP_LONG_VERSION}_all.deb"
|
||||
|
||||
#
|
||||
|
||||
@@ -0,0 +1,12 @@
|
||||
# This profile allows everything and only exists to give the
|
||||
# application a name instead of having the label "unconfined"
|
||||
|
||||
abi <abi/4.0>,
|
||||
include <tunables/global>
|
||||
|
||||
profile pgadmin4 /usr/pgadmin4/bin/pgadmin4 flags=(unconfined) {
|
||||
userns,
|
||||
|
||||
# Site-specific additions and overrides. See local/README for details.
|
||||
include if exists <local/pgadmin4>
|
||||
}
|
||||
@@ -1,4 +1,4 @@
|
||||
#!/bin/sh
|
||||
#!/usr/bin/env bash
|
||||
|
||||
# Fixup the passwd file, in case we're on OpenShift
|
||||
if ! whoami > /dev/null 2>&1; then
|
||||
@@ -9,17 +9,47 @@ if ! whoami > /dev/null 2>&1; then
|
||||
fi
|
||||
fi
|
||||
|
||||
# usage: file_env VAR [DEFAULT] ie: file_env 'XYZ_DB_PASSWORD' 'example'
|
||||
# (will allow for "$XYZ_DB_PASSWORD_FILE" to fill in the value of
|
||||
# "$XYZ_DB_PASSWORD" from a file, for Docker's secrets feature)
|
||||
function file_env() {
|
||||
local var="$1"
|
||||
local fileVar="${var}_FILE"
|
||||
local def="${2:-}"
|
||||
if [ "${!var:-}" ] && [ "${!fileVar:-}" ]; then
|
||||
printf >&2 'error: both %s and %s are set (but are exclusive)\n' "$var" "$fileVar"
|
||||
exit 1
|
||||
fi
|
||||
local val="$def"
|
||||
if [ "${!var:-}" ]; then
|
||||
val="${!var}"
|
||||
elif [ "${!fileVar:-}" ]; then
|
||||
val="$(< "${!fileVar}")"
|
||||
fi
|
||||
export "$var"="$val"
|
||||
unset "$fileVar"
|
||||
}
|
||||
|
||||
# Set values for config variables that can be passed using secrets
|
||||
if [ -n "${PGADMIN_CONFIG_CONFIG_DATABASE_URI_FILE}" ]; then
|
||||
file_env PGADMIN_CONFIG_CONFIG_DATABASE_URI
|
||||
fi
|
||||
file_env PGADMIN_DEFAULT_PASSWORD
|
||||
|
||||
# TO enable custom path for config_distro, pass config distro path via environment variable.
|
||||
export CONFIG_DISTRO_FILE_PATH="${PGADMIN_CUSTOM_CONFIG_DISTRO_FILE:-/pgadmin4/config_distro.py}"
|
||||
# Populate config_distro.py. This has some default config, as well as anything
|
||||
# provided by the user through the PGADMIN_CONFIG_* environment variables.
|
||||
# Only update the file on first launch. The empty file is created during the
|
||||
# container build so it can have the required ownership.
|
||||
if [ "$(wc -m /pgadmin4/config_distro.py | awk '{ print $1 }')" = "0" ]; then
|
||||
cat << EOF > /pgadmin4/config_distro.py
|
||||
if [ "$(wc -m "${CONFIG_DISTRO_FILE_PATH}" | awk '{ print $1 }')" = "0" ]; then
|
||||
cat << EOF > "${CONFIG_DISTRO_FILE_PATH}"
|
||||
CA_FILE = '/etc/ssl/certs/ca-certificates.crt'
|
||||
LOG_FILE = '/dev/null'
|
||||
HELP_PATH = '../../docs'
|
||||
DEFAULT_BINARY_PATHS = {
|
||||
'pg': '/usr/local/pgsql-16',
|
||||
'pg': '/usr/local/pgsql-17',
|
||||
'pg-17': '/usr/local/pgsql-17',
|
||||
'pg-16': '/usr/local/pgsql-16',
|
||||
'pg-15': '/usr/local/pgsql-15',
|
||||
'pg-14': '/usr/local/pgsql-14',
|
||||
@@ -33,26 +63,40 @@ EOF
|
||||
for var in $(env | grep "^PGADMIN_CONFIG_" | cut -d "=" -f 1); do
|
||||
# shellcheck disable=SC2086
|
||||
# shellcheck disable=SC2046
|
||||
echo ${var#PGADMIN_CONFIG_} = $(eval "echo \$$var") >> /pgadmin4/config_distro.py
|
||||
echo ${var#PGADMIN_CONFIG_} = $(eval "echo \$$var") >> "${CONFIG_DISTRO_FILE_PATH}"
|
||||
done
|
||||
fi
|
||||
|
||||
if [ ! -f /var/lib/pgadmin/pgadmin4.db ]; then
|
||||
# Check whether the external configuration database exists if it is being used.
|
||||
external_config_db_exists="False"
|
||||
if [ -n "${PGADMIN_CONFIG_CONFIG_DATABASE_URI}" ]; then
|
||||
external_config_db_exists=$(cd /pgadmin4/pgadmin/utils && /venv/bin/python3 -c "from check_external_config_db import check_external_config_db; val = check_external_config_db("${PGADMIN_CONFIG_CONFIG_DATABASE_URI}"); print(val)")
|
||||
fi
|
||||
|
||||
if [ ! -f /var/lib/pgadmin/pgadmin4.db ] && [ "${external_config_db_exists}" = "False" ]; then
|
||||
if [ -z "${PGADMIN_DEFAULT_EMAIL}" ] || { [ -z "${PGADMIN_DEFAULT_PASSWORD}" ] && [ -z "${PGADMIN_DEFAULT_PASSWORD_FILE}" ]; }; then
|
||||
echo 'You need to define the PGADMIN_DEFAULT_EMAIL and PGADMIN_DEFAULT_PASSWORD or PGADMIN_DEFAULT_PASSWORD_FILE environment variables.'
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if ! echo "${PGADMIN_DEFAULT_EMAIL}" | grep -E "^[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,}$" > /dev/null; then
|
||||
echo "'${PGADMIN_DEFAULT_EMAIL}' does not appear to be a valid email address. Please reset the PGADMIN_DEFAULT_EMAIL environment variable and try again."
|
||||
exit 1
|
||||
# Validate PGADMIN_DEFAULT_EMAIL
|
||||
CHECK_EMAIL_DELIVERABILITY="False"
|
||||
if [ -n "${PGADMIN_CONFIG_CHECK_EMAIL_DELIVERABILITY}" ]; then
|
||||
CHECK_EMAIL_DELIVERABILITY=${PGADMIN_CONFIG_CHECK_EMAIL_DELIVERABILITY}
|
||||
fi
|
||||
|
||||
# Read secret contents
|
||||
if [ -n "${PGADMIN_DEFAULT_PASSWORD_FILE}" ]; then
|
||||
PGADMIN_DEFAULT_PASSWORD=$(cat "${PGADMIN_DEFAULT_PASSWORD_FILE}")
|
||||
export PGADMIN_DEFAULT_PASSWORD
|
||||
ALLOW_SPECIAL_EMAIL_DOMAINS="[]"
|
||||
if [ -n "${PGADMIN_CONFIG_ALLOW_SPECIAL_EMAIL_DOMAINS}" ]; then
|
||||
ALLOW_SPECIAL_EMAIL_DOMAINS=${PGADMIN_CONFIG_ALLOW_SPECIAL_EMAIL_DOMAINS}
|
||||
fi
|
||||
email_config="{'CHECK_EMAIL_DELIVERABILITY': ${CHECK_EMAIL_DELIVERABILITY}, 'ALLOW_SPECIAL_EMAIL_DOMAINS': ${ALLOW_SPECIAL_EMAIL_DOMAINS}}"
|
||||
echo "email config is ${email_config}"
|
||||
is_valid_email=$(cd /pgadmin4/pgadmin/utils && /venv/bin/python3 -c "from validation_utils import validate_email; val = validate_email('${PGADMIN_DEFAULT_EMAIL}', ${email_config}); print(val)")
|
||||
if echo "${is_valid_email}" | grep "False" > /dev/null; then
|
||||
echo "'${PGADMIN_DEFAULT_EMAIL}' does not appear to be a valid email address. Please reset the PGADMIN_DEFAULT_EMAIL environment variable and try again."
|
||||
exit 1
|
||||
fi
|
||||
# Switch back to root directory for further process
|
||||
cd /pgadmin4
|
||||
|
||||
# Set the default username and password in a
|
||||
# backwards compatible way
|
||||
@@ -76,9 +120,8 @@ if [ ! -f /var/lib/pgadmin/pgadmin4.db ]; then
|
||||
/venv/bin/python3 /pgadmin4/setup.py load-servers "${PGADMIN_SERVER_JSON_FILE}" --user "${PGADMIN_DEFAULT_EMAIL}"
|
||||
fi
|
||||
fi
|
||||
# Pre-load any required preferences
|
||||
if [ -f "${PGADMIN_PREFERENCES_JSON_FILE}" ]; then
|
||||
# When running in Desktop mode, no user is created
|
||||
# so we have to import servers anonymously
|
||||
if [ "${PGADMIN_CONFIG_SERVER_MODE}" = "False" ]; then
|
||||
DESKTOP_USER=$(cd /pgadmin4 && /venv/bin/python3 -c 'import config; print(config.DESKTOP_USER)')
|
||||
/venv/bin/python3 /pgadmin4/setup.py set-prefs "${DESKTOP_USER}" --input-file "${PGADMIN_PREFERENCES_JSON_FILE}"
|
||||
@@ -86,6 +129,18 @@ if [ ! -f /var/lib/pgadmin/pgadmin4.db ]; then
|
||||
/venv/bin/python3 /pgadmin4/setup.py set-prefs "${PGADMIN_DEFAULT_EMAIL}" --input-file "${PGADMIN_PREFERENCES_JSON_FILE}"
|
||||
fi
|
||||
fi
|
||||
# Copy the pgpass file passed using secrets
|
||||
if [ -f "${PGPASS_FILE}" ]; then
|
||||
if [ "${PGADMIN_CONFIG_SERVER_MODE}" = "False" ]; then
|
||||
cp ${PGPASS_FILE} /var/lib/pgadmin/.pgpass
|
||||
chmod 600 /var/lib/pgadmin/.pgpass
|
||||
else
|
||||
PGADMIN_USER_CONFIG_DIR=$(echo "${PGADMIN_DEFAULT_EMAIL}" | sed 's/@/_/g')
|
||||
mkdir -p /var/lib/pgadmin/storage/${PGADMIN_USER_CONFIG_DIR}
|
||||
cp ${PGPASS_FILE} /var/lib/pgadmin/storage/${PGADMIN_USER_CONFIG_DIR}/.pgpass
|
||||
chmod 600 /var/lib/pgadmin/storage/${PGADMIN_USER_CONFIG_DIR}/.pgpass
|
||||
fi
|
||||
fi
|
||||
|
||||
fi
|
||||
|
||||
|
||||
@@ -133,55 +133,56 @@ _create_python_virtualenv() {
|
||||
_build_runtime() {
|
||||
echo "Assembling the desktop runtime..."
|
||||
|
||||
# Get a fresh copy of nwjs.
|
||||
# NOTE: The nw download servers seem to be very unreliable, so at the moment we're using wget
|
||||
# in a retry loop as Yarn/Npm don't seem to like that.
|
||||
# Get a fresh copy of electron.
|
||||
|
||||
# YARN:
|
||||
# yarn add --cwd "${BUILDROOT}" nw
|
||||
# YARN END
|
||||
ELECTRON_ARCH="x64"
|
||||
if [ "$(uname -m)" == "arm64" ]; then
|
||||
ELECTRON_ARCH="arm64"
|
||||
fi
|
||||
|
||||
# WGET:
|
||||
# Comment out the below line as the latest version having some
|
||||
# problem https://github.com/nwjs/nw.js/issues/7964, so for the time being
|
||||
# hardcoded the version to 0.77.0
|
||||
# NW_VERSION=$(yarn info nw | grep latest | awk -F "'" '{ print $2}')
|
||||
NW_VERSION="0.77.0"
|
||||
ELECTRON_VERSION="$(npm info electron version)"
|
||||
|
||||
pushd "${BUILDROOT}" > /dev/null || exit
|
||||
while true;do
|
||||
wget "https://dl.nwjs.io/v${NW_VERSION}/nwjs-v${NW_VERSION}-linux-x64.tar.gz" && break
|
||||
rm "nwjs-v${NW_VERSION}-linux-x64.tar.gz"
|
||||
wget "https://github.com/electron/electron/releases/download/v${ELECTRON_VERSION}/electron-v${ELECTRON_VERSION}-linux-${ELECTRON_ARCH}.zip" && break
|
||||
rm "electron-v${ELECTRON_VERSION}-linux-${ELECTRON_ARCH}.zip"
|
||||
done
|
||||
tar -zxvf "nwjs-v${NW_VERSION}-linux-x64.tar.gz"
|
||||
unzip "electron-v${ELECTRON_VERSION}-linux-${ELECTRON_ARCH}.zip" -d "electron-v${ELECTRON_VERSION}-linux-${ELECTRON_ARCH}"
|
||||
popd > /dev/null || exit
|
||||
# WGET END
|
||||
|
||||
# Copy nwjs into the staging directory
|
||||
# Copy electron into the staging directory
|
||||
mkdir -p "${DESKTOPROOT}/usr/${APP_NAME}/bin"
|
||||
|
||||
# The chmod command below is needed to fix the permission issue of
|
||||
# the NWjs binaries and files.
|
||||
# Change the permission for others and group the same as the owner
|
||||
chmod -R og=u "${BUILDROOT}/nwjs-v${NW_VERSION}-linux-x64"/*
|
||||
chmod -R og=u "${BUILDROOT}/electron-v${ELECTRON_VERSION}-linux-${ELECTRON_ARCH}"/*
|
||||
# Explicitly remove write permissions for others and group
|
||||
chmod -R og-w "${BUILDROOT}/nwjs-v${NW_VERSION}-linux-x64"/*
|
||||
chmod -R og-w "${BUILDROOT}/electron-v${ELECTRON_VERSION}-linux-${ELECTRON_ARCH}"/*
|
||||
|
||||
# YARN:
|
||||
# cp -r "${BUILDROOT}/node_modules/nw/nwjs"/* "${DESKTOPROOT}/usr/${APP_NAME}/bin"
|
||||
# YARN END
|
||||
BUNDLEDIR="${DESKTOPROOT}/usr/${APP_NAME}/bin"
|
||||
|
||||
# WGET:
|
||||
cp -r "${BUILDROOT}/nwjs-v${NW_VERSION}-linux-x64"/* "${DESKTOPROOT}/usr/${APP_NAME}/bin"
|
||||
cp -r "${BUILDROOT}/electron-v${ELECTRON_VERSION}-linux-${ELECTRON_ARCH}"/* "${BUNDLEDIR}"
|
||||
# WGET END
|
||||
|
||||
mv "${DESKTOPROOT}/usr/${APP_NAME}/bin/nw" "${DESKTOPROOT}/usr/${APP_NAME}/bin/${APP_NAME}"
|
||||
mv "${BUNDLEDIR}/electron" "${BUNDLEDIR}/${APP_NAME}"
|
||||
|
||||
cp -r "${SOURCEDIR}/runtime/assets" "${DESKTOPROOT}/usr/${APP_NAME}/bin/assets"
|
||||
cp -r "${SOURCEDIR}/runtime/src" "${DESKTOPROOT}/usr/${APP_NAME}/bin/src"
|
||||
mkdir -p "${BUNDLEDIR}/resources/app"
|
||||
cp -r "${SOURCEDIR}/runtime/assets" "${BUNDLEDIR}/resources/app/assets"
|
||||
cp -r "${SOURCEDIR}/runtime/src" "${BUNDLEDIR}/resources/app/src"
|
||||
|
||||
cp "${SOURCEDIR}/runtime/package.json" "${DESKTOPROOT}/usr/${APP_NAME}/bin/"
|
||||
yarn --cwd "${DESKTOPROOT}/usr/${APP_NAME}/bin" install --production=true
|
||||
cp "${SOURCEDIR}/runtime/package.json" "${BUNDLEDIR}/resources/app"
|
||||
cp "${SOURCEDIR}/runtime/.yarnrc.yml" "${BUNDLEDIR}/resources/app"
|
||||
|
||||
# Install the runtime node_modules
|
||||
pushd "${BUNDLEDIR}/resources/app" > /dev/null || exit
|
||||
yarn set version berry
|
||||
yarn set version 3
|
||||
yarn plugin import workspace-tools
|
||||
yarn workspaces focus --production
|
||||
|
||||
# remove the yarn cache
|
||||
rm -rf .yarn .yarn*
|
||||
popd > /dev/null || exit
|
||||
|
||||
# Create the icon
|
||||
mkdir -p "${DESKTOPROOT}/usr/share/icons/hicolor/128x128/apps/"
|
||||
@@ -212,10 +213,18 @@ _build_docs() {
|
||||
_copy_code() {
|
||||
echo "Copying the server code..."
|
||||
|
||||
OS_VERSION=$(grep "^VERSION_ID=" /etc/os-release | awk -F "=" '{ print $2 }' | sed 's/"//g' | awk -F "." '{ print $1 }')
|
||||
if [ "$1" == 'redhat' ] && [ "${OS_VERSION}" == "8" ]; then
|
||||
echo "Setting file permission through umask..."
|
||||
umask u+rwx,go+rx,go-w
|
||||
fi
|
||||
|
||||
# Remove any TCL-related files that may cause us problems
|
||||
find "${SERVERROOT}/usr/${APP_NAME}/venv/" -name "_tkinter*" -print0 | xargs -0 rm -rf
|
||||
|
||||
pushd "${SOURCEDIR}/web" > /dev/null || exit
|
||||
yarn set version berry
|
||||
yarn set version 3
|
||||
yarn install
|
||||
yarn run bundle
|
||||
popd > /dev/null || exit
|
||||
@@ -225,7 +234,7 @@ _copy_code() {
|
||||
cp "${SOURCEDIR}/pkg/linux/config_distro.py" "${SERVERROOT}/usr/${APP_NAME}/web/"
|
||||
cd "${SERVERROOT}/usr/${APP_NAME}/web/" || exit
|
||||
rm -f pgadmin4.db config_local.*
|
||||
rm -rf jest.config.js babel.* package.json node_modules/ regression/ tools/ pgadmin/static/js/generated/.cache
|
||||
rm -rf jest.config.js babel.* package.json .yarn* yarn* .editorconfig .eslint* node_modules/ regression/ tools/ pgadmin/static/js/generated/.cache
|
||||
find . -name "tests" -type d -print0 | xargs -0 rm -rf
|
||||
find . -name "feature_tests" -type d -print0 | xargs -0 rm -rf
|
||||
find . -name "__pycache__" -type d -print0 | xargs -0 rm -rf
|
||||
|
||||
@@ -93,6 +93,7 @@ fi
|
||||
# Set SELinux up:
|
||||
if [ ${IS_REDHAT} == 1 ]; then
|
||||
echo "Configuring SELinux..."
|
||||
setsebool -P httpd_tmp_exec 1 1> /dev/null
|
||||
setsebool -P httpd_can_network_connect 1 1> /dev/null
|
||||
setsebool -P httpd_can_network_connect_db 1 1> /dev/null
|
||||
semanage fcontext -a -t httpd_var_lib_t '/var/lib/pgadmin(/.*)?' 1> /dev/null
|
||||
|
||||