lol

nixos/powerdns-admin: adapt for newer flask-session

It broke somewhere between NixOS 24.05 and 24.11 due to flask-session
being upgraded. It now requires an explicit value and an empty string
will no longer do.
cachelib's SimpleCache was chosen as it doesn't require any other
configuration, and keeps previous behaviour.

+12 -1
+8 -1
nixos/modules/services/web-apps/powerdns-admin.nix
··· 42 42 type = types.str; 43 43 default = ""; 44 44 example = '' 45 + import cachelib 46 + 45 47 BIND_ADDRESS = '127.0.0.1' 46 48 PORT = 8000 47 49 SQLALCHEMY_DATABASE_URI = 'postgresql://powerdnsadmin@/powerdnsadmin?host=/run/postgresql' 50 + SESSION_TYPE = 'cachelib' 51 + SESSION_CACHELIB = cachelib.simple.SimpleCache() 48 52 ''; 49 53 description = '' 50 54 Configuration python file. 51 55 See [the example configuration](https://github.com/ngoduykhanh/PowerDNS-Admin/blob/v${pkgs.powerdns-admin.version}/configs/development.py) 52 56 for options. 57 + Also see [Flask Session configuration](https://flask-session.readthedocs.io/en/latest/config.html#SESSION_TYPE) 58 + as the version shipped with NixOS is more recent than the one PowerDNS-Admin expects 59 + and it requires explicit configuration. 53 60 ''; 54 61 }; 55 62 ··· 85 92 serviceConfig = { 86 93 ExecStart = "${pkgs.powerdns-admin}/bin/powerdns-admin --pid /run/powerdns-admin/pid ${escapeShellArgs cfg.extraArgs}"; 87 94 # Set environment variables only for starting flask database upgrade 88 - ExecStartPre = "${pkgs.coreutils}/bin/env FLASK_APP=${pkgs.powerdns-admin}/share/powerdnsadmin/__init__.py SESSION_TYPE= ${pkgs.python3Packages.flask}/bin/flask db upgrade -d ${pkgs.powerdns-admin}/share/migrations"; 95 + ExecStartPre = "${pkgs.coreutils}/bin/env FLASK_APP=${pkgs.powerdns-admin}/share/powerdnsadmin/__init__.py ${pkgs.python3Packages.flask}/bin/flask db upgrade -d ${pkgs.powerdns-admin}/share/migrations"; 89 96 ExecReload = "${pkgs.coreutils}/bin/kill -HUP $MAINPID"; 90 97 ExecStop = "${pkgs.coreutils}/bin/kill -TERM $MAINPID"; 91 98 PIDFile = "/run/powerdns-admin/pid";
+4
nixos/tests/powerdns-admin.nix
··· 9 9 with pkgs.lib; 10 10 let 11 11 defaultConfig = '' 12 + import cachelib 13 + 12 14 BIND_ADDRESS = '127.0.0.1' 13 15 PORT = 8000 14 16 CAPTCHA_ENABLE = False 17 + SESSION_TYPE = 'cachelib' 18 + SESSION_CACHELIB = cachelib.simple.SimpleCache() 15 19 ''; 16 20 17 21 makeAppTest =