forked from DGNum/infrastructure
feat(compute01): Init satosa at 8.4.0
This commit is contained in:
parent
8cce7e19cb
commit
e0bd555d2f
9 changed files with 316 additions and 0 deletions
9
machines/compute01/satosa/default.nix
Normal file
9
machines/compute01/satosa/default.nix
Normal file
|
@ -0,0 +1,9 @@
|
|||
{ lib, pkgs, ... }:
|
||||
|
||||
let
|
||||
package = import ./package { inherit lib pkgs; };
|
||||
|
||||
host = "saml.dgnum.eu";
|
||||
in {
|
||||
|
||||
}
|
|
@ -0,0 +1,30 @@
|
|||
{ lib
|
||||
, python3
|
||||
, fetchPypi
|
||||
}:
|
||||
|
||||
python3.pkgs.buildPythonPackage rec {
|
||||
pname = "cookies-samesite-compat";
|
||||
version = "0.0.1";
|
||||
pyproject = true;
|
||||
|
||||
src = fetchPypi {
|
||||
pname = "cookies_samesite_compat";
|
||||
inherit version;
|
||||
hash = "sha256-eC0rthOt3ahUUp+FD09guDag8MRQSRZ0lUkPxK8HOsA=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = with python3.pkgs; [
|
||||
setuptools
|
||||
wheel
|
||||
];
|
||||
|
||||
pythonImportsCheck = [ "cookies_samesite_compat" ];
|
||||
|
||||
meta = with lib; {
|
||||
description = "WSGI Middleware to duplicate the configured cookies and remove the SameSite attribute";
|
||||
homepage = "https://pypi.org/project/cookies-samesite-compat";
|
||||
license = licenses.asl20;
|
||||
maintainers = with maintainers; [ ];
|
||||
};
|
||||
}
|
15
machines/compute01/satosa/package/default.nix
Normal file
15
machines/compute01/satosa/package/default.nix
Normal file
|
@ -0,0 +1,15 @@
|
|||
{ lib, pkgs, ... }:
|
||||
|
||||
let
|
||||
callPackage = lib.callPackageWith (pkgs // self);
|
||||
|
||||
self = {
|
||||
cookies-samesite-compat = callPackage ./cookies-samesite-compat.nix { };
|
||||
pyop = callPackage ./pyop.nix { };
|
||||
oic = callPackage ./oic.nix { };
|
||||
pydantic-settings = callPackage ./pydantic-settings.nix { };
|
||||
pydantic = callPackage ./pydantic.nix { };
|
||||
pydantic-core = callPackage ./pydantic-core.nix { };
|
||||
};
|
||||
|
||||
in callPackage ./satosa.nix { }
|
42
machines/compute01/satosa/package/oic.nix
Normal file
42
machines/compute01/satosa/package/oic.nix
Normal file
|
@ -0,0 +1,42 @@
|
|||
{ lib
|
||||
, python3
|
||||
, fetchPypi
|
||||
, pydantic-settings
|
||||
}:
|
||||
|
||||
python3.pkgs.buildPythonPackage rec {
|
||||
pname = "oic";
|
||||
version = "1.6.1";
|
||||
pyproject = true;
|
||||
|
||||
src = fetchPypi {
|
||||
inherit pname version;
|
||||
hash = "sha256-OFofZLtZUZ3x4jhAUwkhv0FnQCQPUF6m0WHjMdPTn60=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
python3.pkgs.setuptools
|
||||
python3.pkgs.wheel
|
||||
];
|
||||
|
||||
propagatedBuildInputs = with python3.pkgs; [
|
||||
cryptography
|
||||
defusedxml
|
||||
mako
|
||||
pycryptodomex
|
||||
pydantic-settings
|
||||
pyjwkest
|
||||
requests
|
||||
typing-extensions
|
||||
];
|
||||
|
||||
pythonImportsCheck = [ "oic" ];
|
||||
|
||||
meta = with lib; {
|
||||
description = "Python implementation of OAuth2 and OpenID Connect";
|
||||
homepage = "https://pypi.org/project/oic/";
|
||||
license = licenses.asl20;
|
||||
maintainers = with maintainers; [ ];
|
||||
mainProgram = "oic";
|
||||
};
|
||||
}
|
47
machines/compute01/satosa/package/pydantic-core.nix
Normal file
47
machines/compute01/satosa/package/pydantic-core.nix
Normal file
|
@ -0,0 +1,47 @@
|
|||
{ lib
|
||||
, python3
|
||||
, fetchPypi
|
||||
, cargo
|
||||
, rustPlatform
|
||||
, rustc
|
||||
}:
|
||||
|
||||
python3.pkgs.buildPythonPackage rec {
|
||||
pname = "pydantic-core";
|
||||
version = "2.10.1";
|
||||
pyproject = true;
|
||||
|
||||
src = fetchPypi {
|
||||
pname = "pydantic_core";
|
||||
inherit version;
|
||||
hash = "sha256-D4aC290vZ/jh7d3L/8wp9gphgrSQHDZ/yMHEDTC7CoI=";
|
||||
};
|
||||
|
||||
cargoDeps = rustPlatform.fetchCargoTarball {
|
||||
inherit src;
|
||||
name = "${pname}-${version}";
|
||||
hash = "sha256-wHiIVM0x+xH0SpP6UmlGh6r7sg0rnnppGrIchHTVJcc=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
cargo
|
||||
python3.pkgs.typing-extensions
|
||||
rustPlatform.cargoSetupHook
|
||||
rustPlatform.maturinBuildHook
|
||||
rustc
|
||||
];
|
||||
|
||||
propagatedBuildInputs = with python3.pkgs; [
|
||||
typing-extensions
|
||||
];
|
||||
|
||||
pythonImportsCheck = [ "pydantic_core" ];
|
||||
|
||||
meta = with lib; {
|
||||
description = "";
|
||||
homepage = "https://pypi.org/project/pydantic-core";
|
||||
license = licenses.mit;
|
||||
maintainers = with maintainers; [ ];
|
||||
mainProgram = "pydantic-core";
|
||||
};
|
||||
}
|
36
machines/compute01/satosa/package/pydantic-settings.nix
Normal file
36
machines/compute01/satosa/package/pydantic-settings.nix
Normal file
|
@ -0,0 +1,36 @@
|
|||
{ lib
|
||||
, python3
|
||||
, fetchPypi
|
||||
, pydantic
|
||||
}:
|
||||
|
||||
python3.pkgs.buildPythonPackage rec {
|
||||
pname = "pydantic-settings";
|
||||
version = "2.0.3";
|
||||
pyproject = true;
|
||||
|
||||
src = fetchPypi {
|
||||
pname = "pydantic_settings";
|
||||
inherit version;
|
||||
hash = "sha256-li3DZySVqtaulqQ5D6x+WTWR4URiXlES01n49n+3WUU=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
python3.pkgs.hatchling
|
||||
];
|
||||
|
||||
propagatedBuildInputs = with python3.pkgs; [
|
||||
pydantic
|
||||
python-dotenv
|
||||
];
|
||||
|
||||
pythonImportsCheck = [ "pydantic_settings" ];
|
||||
|
||||
meta = with lib; {
|
||||
description = "Settings management using Pydantic";
|
||||
homepage = "https://pypi.org/project/pydantic-settings/";
|
||||
license = licenses.mit;
|
||||
maintainers = with maintainers; [ ];
|
||||
mainProgram = "pydantic-settings";
|
||||
};
|
||||
}
|
43
machines/compute01/satosa/package/pydantic.nix
Normal file
43
machines/compute01/satosa/package/pydantic.nix
Normal file
|
@ -0,0 +1,43 @@
|
|||
{ lib
|
||||
, python3
|
||||
, fetchPypi
|
||||
, pydantic-core
|
||||
}:
|
||||
|
||||
python3.pkgs.buildPythonPackage rec {
|
||||
pname = "pydantic";
|
||||
version = "2.4.1";
|
||||
pyproject = true;
|
||||
|
||||
src = fetchPypi {
|
||||
inherit pname version;
|
||||
hash = "sha256-sXJQWIYCjkNWho1hfS0ad2168WJdExNFD9Ub3RnZ1h8=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
python3.pkgs.hatch-fancy-pypi-readme
|
||||
python3.pkgs.hatchling
|
||||
];
|
||||
|
||||
propagatedBuildInputs = with python3.pkgs; [
|
||||
annotated-types
|
||||
pydantic-core
|
||||
typing-extensions
|
||||
];
|
||||
|
||||
passthru.optional-dependencies = with python3.pkgs; {
|
||||
email = [
|
||||
email-validator
|
||||
];
|
||||
};
|
||||
|
||||
pythonImportsCheck = [ "pydantic" ];
|
||||
|
||||
meta = with lib; {
|
||||
description = "Data validation using Python type hints";
|
||||
homepage = "https://pypi.org/project/pydantic";
|
||||
license = licenses.mit;
|
||||
maintainers = with maintainers; [ ];
|
||||
mainProgram = "pydantic";
|
||||
};
|
||||
}
|
35
machines/compute01/satosa/package/pyop.nix
Normal file
35
machines/compute01/satosa/package/pyop.nix
Normal file
|
@ -0,0 +1,35 @@
|
|||
{ lib
|
||||
, python3
|
||||
, fetchPypi
|
||||
, oic
|
||||
}:
|
||||
|
||||
python3.pkgs.buildPythonPackage rec {
|
||||
pname = "pyop";
|
||||
version = "3.4.0";
|
||||
pyproject = true;
|
||||
|
||||
src = fetchPypi {
|
||||
inherit pname version;
|
||||
hash = "sha256-4Iq+TVNH7Pq1Q/Xkdeg8FTqLIjGF673qq0AV/4TjkvE=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = with python3.pkgs; [
|
||||
setuptools
|
||||
wheel
|
||||
];
|
||||
|
||||
propagatedBuildInputs = with python3.pkgs; [
|
||||
oic
|
||||
pycryptodomex
|
||||
];
|
||||
|
||||
pythonImportsCheck = [ "pyop" ];
|
||||
|
||||
meta = with lib; {
|
||||
description = "OpenID Connect Provider (OP) library in Python";
|
||||
homepage = "https://pypi.org/project/pyop";
|
||||
license = licenses.asl20;
|
||||
maintainers = with maintainers; [ ];
|
||||
};
|
||||
}
|
59
machines/compute01/satosa/package/satosa.nix
Normal file
59
machines/compute01/satosa/package/satosa.nix
Normal file
|
@ -0,0 +1,59 @@
|
|||
{ lib
|
||||
, python3
|
||||
, fetchPypi
|
||||
, cookies-samesite-compat
|
||||
, pyop
|
||||
}:
|
||||
|
||||
python3.pkgs.buildPythonPackage rec {
|
||||
pname = "satosa";
|
||||
version = "8.4.0";
|
||||
pyproject = true;
|
||||
|
||||
src = fetchPypi {
|
||||
pname = "SATOSA";
|
||||
inherit version;
|
||||
hash = "sha256-KREROjb157RJJVRr9YefzoR/eflR/U7ZmG6yOH5DjcU=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
python3.pkgs.setuptools
|
||||
python3.pkgs.wheel
|
||||
];
|
||||
|
||||
propagatedBuildInputs = with python3.pkgs; [
|
||||
chevron
|
||||
click
|
||||
cookies-samesite-compat
|
||||
gunicorn
|
||||
importlib-metadata
|
||||
pycryptodomex
|
||||
pyop
|
||||
pysaml2
|
||||
pyyaml
|
||||
requests
|
||||
werkzeug
|
||||
];
|
||||
|
||||
passthru.optional-dependencies = with python3.pkgs; {
|
||||
ldap = [
|
||||
ldap3
|
||||
];
|
||||
pyop_mongo = [
|
||||
pyop
|
||||
];
|
||||
pyop_redis = [
|
||||
pyop
|
||||
];
|
||||
};
|
||||
|
||||
pythonImportsCheck = [ "satosa" ];
|
||||
|
||||
meta = with lib; {
|
||||
description = "Protocol proxy (SAML/OIDC)";
|
||||
homepage = "https://pypi.org/project/SATOSA";
|
||||
license = licenses.asl20;
|
||||
maintainers = with maintainers; [ ];
|
||||
mainProgram = "satosa";
|
||||
};
|
||||
}
|
Loading…
Reference in a new issue