From 1502faf3458f9d11aeb74b6ddacdc022eed9b9b6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Leon=20Schwarz=C3=A4ugl?= Date: Mon, 22 Dec 2025 14:15:12 +0100 Subject: [PATCH] feat: support vars in pii --- SwarselSystems.org | 6 +++--- modules/nixos/common/pii.nix | 4 ++-- secrets/repo/globals.nix.enc | 6 +++--- 3 files changed, 8 insertions(+), 8 deletions(-) diff --git a/SwarselSystems.org b/SwarselSystems.org index 2404d5a..f602e41 100644 --- a/SwarselSystems.org +++ b/SwarselSystems.org @@ -2784,7 +2784,7 @@ This is my main server that I run at home. It handles most tasks that require bi :CUSTOM_ID: h:8ad68406-4a75-45ba-97ad-4c310b921124 :END: #+begin_src nix-ts :tangle hosts/nixos/x86_64-linux/winters/default.nix - { self, lib, minimal, ... }: + { self, lib, minimal, globals, ... }: { imports = [ @@ -6440,7 +6440,7 @@ This is also exposed to home-manager configurations, in case this ever breaks, I #+begin_src nix-ts :tangle modules/nixos/common/pii.nix # largely based on https://github.com/oddlama/nix-config/blob/main/modules/secrets.nix - { config, inputs, lib, ... }: + { config, inputs, lib, nodes, ... }: let # If the given expression is a bare set, it will be wrapped in a function, # so that the imported file can always be applied to the inputs, similar to @@ -6494,7 +6494,7 @@ This is also exposed to home-manager configurations, in case this ever breaks, I secrets = lib.mkOption { readOnly = true; - default = lib.mapAttrs (_: x: importEncrypted x inputs) config.repo.secretFiles; + default = lib.mapAttrs (_: x: importEncrypted x { inherit lib nodes inputs; }) config.repo.secretFiles; type = lib.types.unspecified; description = "Exposes the loaded repo secrets. This option is read-only."; }; diff --git a/modules/nixos/common/pii.nix b/modules/nixos/common/pii.nix index b39de85..4c5d1f5 100644 --- a/modules/nixos/common/pii.nix +++ b/modules/nixos/common/pii.nix @@ -1,5 +1,5 @@ # largely based on https://github.com/oddlama/nix-config/blob/main/modules/secrets.nix -{ config, inputs, lib, ... }: +{ config, inputs, lib, nodes, ... }: let # If the given expression is a bare set, it will be wrapped in a function, # so that the imported file can always be applied to the inputs, similar to @@ -53,7 +53,7 @@ in secrets = lib.mkOption { readOnly = true; - default = lib.mapAttrs (_: x: importEncrypted x inputs) config.repo.secretFiles; + default = lib.mapAttrs (_: x: importEncrypted x { inherit lib nodes inputs; }) config.repo.secretFiles; type = lib.types.unspecified; description = "Exposes the loaded repo secrets. This option is read-only."; }; diff --git a/secrets/repo/globals.nix.enc b/secrets/repo/globals.nix.enc index 8355641..4fb98ce 100644 --- a/secrets/repo/globals.nix.enc +++ b/secrets/repo/globals.nix.enc @@ -1,5 +1,5 @@ { - "data": "ENC[AES256_GCM,data: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,iv:5B9BO9Pf254uA5ovKKhU6qcKCvsxgU/z2SXSuvvrXRM=,tag:63d6vx0R+pth+2pjFY3XoA==,type:str]", + "data": "ENC[AES256_GCM,data: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,iv:lIDbetXOcbEk3F/OkAb01rmXu820Sq7qXyJE/SEY1aw=,tag://ndiLviaDLDAiwWG408bQ==,type:str]", "sops": { "age": [ { @@ -51,8 +51,8 @@ "enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSAvbTFqR3RScWxnTFR3dlhv\nNUNEVGRkUDB4L3J6ckJIMWZCWk44RjdpVmxRCkhzZTBuSGduanBmQWsvNW5XMWQv\nYVZmNS9FVzN3a05kUVBheDljYUUrcHcKLS0tIGxPN1dWVkg4NUpnZGJ6VWFJWFVZ\nYnNvRG94MmFxYnlDQ0JyeDNFQldzdlkKsp+nYSR6Lxq8b3/dpMO7uTbNnO0Bva7w\nb9s908PLaZEN1jywEoba3yq743vuEHCKQWFIfDtsRcbNR6Yr4d2eGw==\n-----END AGE ENCRYPTED FILE-----\n" } ], - "lastmodified": "2025-12-19T16:42:32Z", - "mac": "ENC[AES256_GCM,data:+x9MU+PNHfd7FgWTvx/Dt68IonCM99J54bOSgZzhN1uDepGCCbw9VvkqHLOy3+w+9i7R4o+xLggeV29WrGPqrx8aT5LNVo3jIjGXGTkOxwQ2X1GUkzZb4VrIMJlA/1P7Zt2XhnfoiFg/DZtjyhi4WB4WY2lC5QY1ZSH7ixBstU4=,iv:Wz1ndrqvP2666viHYdcCdYEiLvz2K0y54Uvv2Uzz1Wk=,tag:C5d8dxTtjTEGnhoy9nfUnw==,type:str]", + "lastmodified": "2025-12-22T13:11:00Z", + "mac": "ENC[AES256_GCM,data:NDk4ChgEfqnX4lltTZ7uX0ZPa/AVmRM7BK0G81uHRQ/UtrsbZG3YRnjJ9p0LIIHdprH5Fcs9XZHZBpoSR6MhzwviqPZJAsmaYFmTVqoJcicqL8pW2UNYP30yRZqlLMzVrVkk3hEedwO9RKeTJndu0gGzs2XKZBRVi0/5j3Uf9n8=,iv:GdoYMc39Ug0CwnvY9NIFoOwMI8rJmdXF/HdkXCDqgE4=,tag:Q/LD1WTMYmxqURpAN0NOFA==,type:str]", "pgp": [ { "created_at": "2025-12-15T21:53:38Z",