Merge pull request #280556 from gador/pgadmin-8.2

pgadmin: 8.1 -> 8.2, python3Packages.webauthn 1.11.1 -> 2.0.0, python3Packages.flask-security-too: fix pydantic issue
This commit is contained in:
Maciej Krüger 2024-01-17 08:30:24 +01:00 committed by GitHub
commit f666630f4a
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
7 changed files with 37 additions and 67 deletions

View File

@ -168,7 +168,7 @@ in
echo "$PW"
# Retype password:
echo "$PW"
) | ${cfg.package}/bin/pgadmin4-setup
) | ${cfg.package}/bin/pgadmin4-cli setup-db
'';
restartTriggers = [

View File

@ -55,6 +55,11 @@ import ./make-test-python.nix ({ pkgs, lib, ... }:
machine.wait_until_succeeds("curl -sS localhost:5051/login | grep \"<title>pgAdmin 4</title>\" > /dev/null")
# check for missing support files (css, js etc). Should catch not-generated files during build. See e.g. https://github.com/NixOS/nixpkgs/pull/229184
machine.succeed("wget -nv --level=1 --spider --recursive localhost:5051/login")
# test idempotenceny
machine.systemctl("restart pgadmin.service")
machine.wait_for_unit("pgadmin")
machine.wait_until_succeeds("curl -sS localhost:5051")
machine.wait_until_succeeds("curl -sS localhost:5051/login | grep \"<title>pgAdmin 4</title>\" > /dev/null")
# pgadmin4 module saves the configuration to /etc/pgadmin/config_system.py
# pgadmin4-desktopmode tries to read that as well. This normally fails with a PermissionError, as the config file

View File

@ -3,7 +3,7 @@
, fetchPypi
, pythonOlder
, setuptools
, pydantic
, fetchpatch
# extras: babel
, babel
@ -59,6 +59,16 @@ buildPythonPackage rec {
hash = "sha256-we2TquU28qP/ir4eE67J0Nlft/8IL8w7Ny3ypSE5cNk=";
};
patches = [
# https://github.com/Flask-Middleware/flask-security/pull/901
(fetchpatch {
name = "fixes-for-py_webauthn-2.0.patch";
url = "https://github.com/Flask-Middleware/flask-security/commit/5725f7021343567ec0b25c890e859f4e84c93ba6.patch";
hash = "sha256-4EgwT4zRj0mh4ZaoZFz7H5KeiZ9zs+BY4siYm8DwMfU=";
excludes = [ "CHANGES.rst" ];
})
];
nativeBuildInputs = [
setuptools
];
@ -128,7 +138,5 @@ buildPythonPackage rec {
description = "Simple security for Flask apps (fork)";
license = licenses.mit;
maintainers = with maintainers; [ gador ];
# https://github.com/Flask-Middleware/flask-security/pull/851
broken = versionAtLeast pydantic.version "2";
};
}

View File

@ -4,29 +4,27 @@
, asn1crypto
, cbor2
, pythonOlder
, pydantic
, pyopenssl
, pytestCheckHook
}:
buildPythonPackage rec {
pname = "webauthn";
version = "1.11.1";
version = "2.0.0";
format = "setuptools";
disabled = pythonOlder "3.7";
disabled = pythonOlder "3.8";
src = fetchFromGitHub {
owner = "duo-labs";
repo = "py_webauthn";
rev = "refs/tags/v${version}";
hash = "sha256-+pp21rtwavtjj6ahG091xsJpsYOH3zpqU3xH2/YFXqY=";
hash = "sha256-StqoSrzErV13/OUpSWbI+6N5tSFPEpvnmQcDiZMaXPI=";
};
propagatedBuildInputs = [
asn1crypto
cbor2
pydantic
pyopenssl
];

View File

@ -14,14 +14,14 @@
let
pname = "pgadmin";
version = "8.1";
yarnHash = "sha256-KAiY5TX2O8mxP7PjIJstYEzCBbqDgT+CpEhreuAGW/U=";
version = "8.2";
yarnHash = "sha256-uMSgpkYoLD32VYDAkjywC9bZjm7UKA0hhwVNc/toEbA=";
src = fetchFromGitHub {
owner = "pgadmin-org";
repo = "pgadmin4";
rev = "REL-${lib.versions.major version}_${lib.versions.minor version}";
hash = "sha256-zzS/fydNOXpIWdyLtWQhY+hVpneca+3wD88DmZEkS8s=";
hash = "sha256-RfpZXy265kwpMsWUBDVfbL/0eX0By79I4VNkG8zwVOs=";
};
# keep the scope, as it is used throughout the derivation and tests
@ -181,6 +181,8 @@ pythonPackages.buildPythonApplication rec {
google-auth-oauthlib
google-api-python-client
keyring
typer
rich
];
passthru.tests = {

View File

@ -1,64 +1,16 @@
pkg/pip/setup_pip.py | 5 ++++-
web/setup.py | 14 ++++++++------
2 files changed, 12 insertions(+), 7 deletions(-)
diff --git a/pkg/pip/setup_pip.py b/pkg/pip/setup_pip.py
index 5592d1b04..131eaa1ed 100644
index c65795b10..e56b6a6f3 100644
--- a/pkg/pip/setup_pip.py
+++ b/pkg/pip/setup_pip.py
@@ -95,7 +95,10 @@ setup(
},
@@ -101,7 +101,7 @@ setup(
entry_points={
- 'console_scripts': ['pgadmin4=pgadmin4.pgAdmin4:main'],
+ 'console_scripts': [
+ 'pgadmin4=pgadmin4.pgAdmin4:main',
+ 'pgadmin4-setup=pgadmin4.setup:main'
+ ],
'console_scripts': ['pgadmin4=pgadmin4.pgAdmin4:main',
- 'pgadmin4-cli=pgadmin4.setup:main'],
+ 'pgadmin4-cli=pgadmin4.setup:app'],
},
)
diff --git a/web/setup.py b/web/setup.py
index 2204ffb..d5fda9f 100644
--- a/web/setup.py
+++ b/web/setup.py
@@ -14,7 +14,6 @@ import argparse
import os
import sys
import builtins
-import config
# Grab the SERVER_MODE if it's been set by the runtime
if 'SERVER_MODE' in globals():
@@ -91,6 +90,9 @@ def load_servers(args):
def setup_db(app):
"""Setup the configuration database."""
+ # here we need an additional import, since the call to setup_db changed
+ # https://redmine.postgresql.org/projects/pgadmin4/repository/2/revisions/3a69d50458f57d19948b867aec55c55d635a36e5/diff/web/setup.py
+ import config
create_app_data_directory(config)
print("pgAdmin 4 - Application Initialisation")
@@ -139,8 +141,9 @@ def clear_servers():
clear_database_servers(load_user, True)
-if __name__ == '__main__':
+def main():
# Configuration settings
+ import config
parser = argparse.ArgumentParser(description='Setup the pgAdmin config DB')
exp_group = parser.add_argument_group('Dump server config')
@@ -191,3 +194,6 @@ if __name__ == '__main__':
else:
app = create_app()
setup_db(app)
+
+if __name__ == '__main__':
+ main()
diff --git a/web/pgadmin/model/__init__.py b/web/pgadmin/model/__init__.py
index 4c36dd1..a492365 100644
--- a/web/pgadmin/model/__init__.py

View File

@ -12716,3 +12716,8 @@ zustand@^4.4.1:
resolved "https://github.com/pgadmin-org/react-data-grid.git#200d2f5e02de694e3e9ffbe177c279bc40240fb8"
dependencies:
"clsx" "^1.1.1"
"react-data-grid@https://github.com/pgadmin-org/react-data-grid.git#200d2f5e02de694e3e9ffbe177c279bc40240fb8":
version "7.0.0-beta.14"
resolved "https://github.com/pgadmin-org/react-data-grid.git#200d2f5e02de694e3e9ffbe177c279bc40240fb8"
dependencies:
"clsx" "^1.1.1"