let users = { alin = [ "age1se1qwz9tsr7fq6m7rh3fj44fh6vcth53x9lcff9jeangg43v66vznxus3vp5mz" # marvin age-plugin-se ]; }; machines = { r5 = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIHM1oPhD2wJA0MSQPqTBdjxWlNbZN0nOT9D9sxWJBFcS"; smrk = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAINU03etY1me+35aJ7DTJID60cHlvYx6lV8A6V+OiR7hr"; }; secrets = with machines; { acme = [ smrk r5 ]; redis-website = [ smrk ]; caddy = [ smrk ]; pocket-id = [ smrk ]; binarycache = [ smrk ]; paperless = [ smrk ]; powerdns = [ smrk ]; readeck = [ smrk ]; open-webui = [ smrk ]; codeberg-runner = [ smrk ]; opia-codeberg-runner = [ smrk ]; tg-archive = [ smrk ]; vpsfreectl = [ smrk ]; dyndns = [ r5 ]; syncthing = [ r5 ]; }; in builtins.listToAttrs ( map (secretName: { name = "${secretName}.age"; value.publicKeys = secrets.${secretName} ++ users.alin; }) (builtins.attrNames secrets) )