identity API update to take an object
This commit is contained in:
@@ -1,7 +1,12 @@
|
|||||||
|
let
|
||||||
|
artemKey = {
|
||||||
|
publicKey = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIBxRBsFGa8OFbviYDGSAKLgfm/K2XUxvCo+31FW37yab";
|
||||||
|
};
|
||||||
|
in
|
||||||
rec {
|
rec {
|
||||||
# API
|
# API
|
||||||
getAccessKeys =
|
getAccessKeys =
|
||||||
user:
|
{ user }:
|
||||||
let
|
let
|
||||||
u = users.${user};
|
u = users.${user};
|
||||||
in
|
in
|
||||||
@@ -10,59 +15,65 @@ rec {
|
|||||||
let
|
let
|
||||||
k = u.access.${name};
|
k = u.access.${name};
|
||||||
in
|
in
|
||||||
"${k.key} ${name}"
|
"${k.publicKey} ${name}"
|
||||||
) (builtins.attrNames u.access);
|
) (builtins.attrNames u.access);
|
||||||
|
|
||||||
getSigningEntries =
|
getSigningEntries =
|
||||||
user:
|
{
|
||||||
|
user ? null,
|
||||||
|
}:
|
||||||
let
|
let
|
||||||
u = users.${user};
|
getEntries =
|
||||||
|
u:
|
||||||
|
map (
|
||||||
|
name:
|
||||||
|
let
|
||||||
|
k = u.sign.${name};
|
||||||
|
in
|
||||||
|
"${u.email} namespaces=\"${k.namespace}\" ${k.publicKey} ${name}"
|
||||||
|
) (builtins.attrNames u.sign);
|
||||||
in
|
in
|
||||||
map (
|
if user == null then
|
||||||
name:
|
builtins.concatLists (map getEntries (builtins.attrValues users))
|
||||||
let
|
else
|
||||||
k = u.sign.${name};
|
getEntries users.${user};
|
||||||
in
|
|
||||||
"${u.email} namespaces=\"${k.namespace}\" ${k.key} ${name}"
|
|
||||||
) (builtins.attrNames u.sign);
|
|
||||||
|
|
||||||
# Data
|
# Data
|
||||||
users = {
|
users = {
|
||||||
artem = {
|
artem = {
|
||||||
email = "dot.doom@gmail.com";
|
email = "dot.doom@gmail.com";
|
||||||
access = {
|
access = {
|
||||||
"ssh@mars".key =
|
"ssh@mars".publicKey =
|
||||||
"ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBJg7zQ4H0LQeQcILZBwCzQ+MYKtCgKm7HPe9oFeoyprKZXAvpm+HDHtaYdU39JF9f+nvRztzXuMhgETAQMAQCkc=";
|
"ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBJg7zQ4H0LQeQcILZBwCzQ+MYKtCgKm7HPe9oFeoyprKZXAvpm+HDHtaYdU39JF9f+nvRztzXuMhgETAQMAQCkc=";
|
||||||
yubikey-office.key = "sk-ssh-ed25519@openssh.com AAAAGnNrLXNzaC1lZDI1NTE5QG9wZW5zc2guY29tAAAAIPAtIXXHm58julnr7S0xzBTM1jN5JkKxOL4JpuWDOa2jAAAABHNzaDo=";
|
yubikey-office.publicKey = "sk-ssh-ed25519@openssh.com AAAAGnNrLXNzaC1lZDI1NTE5QG9wZW5zc2guY29tAAAAIPAtIXXHm58julnr7S0xzBTM1jN5JkKxOL4JpuWDOa2jAAAABHNzaDo=";
|
||||||
yubikey-keychain.key = "sk-ssh-ed25519@openssh.com AAAAGnNrLXNzaC1lZDI1NTE5QG9wZW5zc2guY29tAAAAIHY1xx0huqV6Mcc2WngYDabITeNUbGamJ8//206MxxVTAAAABHNzaDo=";
|
yubikey-keychain.publicKey = "sk-ssh-ed25519@openssh.com AAAAGnNrLXNzaC1lZDI1NTE5QG9wZW5zc2guY29tAAAAIHY1xx0huqV6Mcc2WngYDabITeNUbGamJ8//206MxxVTAAAABHNzaDo=";
|
||||||
yubikey-safe.key = "sk-ssh-ed25519@openssh.com AAAAGnNrLXNzaC1lZDI1NTE5QG9wZW5zc2guY29tAAAAIHzY2eOz+JdaKOpIgZbF5FsZzQy0l8vPJjAQdTpBFGsoAAAABHNzaDo=";
|
yubikey-safe.publicKey = "sk-ssh-ed25519@openssh.com AAAAGnNrLXNzaC1lZDI1NTE5QG9wZW5zc2guY29tAAAAIHzY2eOz+JdaKOpIgZbF5FsZzQy0l8vPJjAQdTpBFGsoAAAABHNzaDo=";
|
||||||
artem.key = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIBxRBsFGa8OFbviYDGSAKLgfm/K2XUxvCo+31FW37yab";
|
artem = artemKey;
|
||||||
};
|
};
|
||||||
|
|
||||||
sign = {
|
sign = {
|
||||||
# Access keys as signers
|
# Access keys as signers
|
||||||
artem = {
|
artem = artemKey // {
|
||||||
key = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIBxRBsFGa8OFbviYDGSAKLgfm/K2XUxvCo+31FW37yab";
|
|
||||||
namespace = "git";
|
namespace = "git";
|
||||||
};
|
};
|
||||||
|
|
||||||
# Sign-only keys
|
# Sign-only keys
|
||||||
"sign@mars" = {
|
"sign@mars" = {
|
||||||
key = "ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBNwSX/Ib6kNzgRKqWfcb3HsAQQo++Gt9KeXSvP6NDk6YQPjDsi+//IiBovgLjQ34El+x8l8y3aYhfIGlCyX7aOM=";
|
publicKey = "ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBNwSX/Ib6kNzgRKqWfcb3HsAQQo++Gt9KeXSvP6NDk6YQPjDsi+//IiBovgLjQ34El+x8l8y3aYhfIGlCyX7aOM=";
|
||||||
namespace = "git";
|
namespace = "git";
|
||||||
};
|
};
|
||||||
yubikey-office = {
|
yubikey-office = {
|
||||||
key = "sk-ssh-ed25519@openssh.com AAAAGnNrLXNzaC1lZDI1NTE5QG9wZW5zc2guY29tAAAAIHqC278Y4NCvNh4qiGtfpK5+CNQv+tTDseP67HLFX6u3AAAAEXNzaDpnaXQtc2lnbmF0dXJl";
|
publicKey = "sk-ssh-ed25519@openssh.com AAAAGnNrLXNzaC1lZDI1NTE5QG9wZW5zc2guY29tAAAAIHqC278Y4NCvNh4qiGtfpK5+CNQv+tTDseP67HLFX6u3AAAAEXNzaDpnaXQtc2lnbmF0dXJl";
|
||||||
namespace = "git";
|
namespace = "git";
|
||||||
serial = "36027052";
|
serial = "36027052";
|
||||||
};
|
};
|
||||||
yubikey-keychain = {
|
yubikey-keychain = {
|
||||||
key = "sk-ssh-ed25519@openssh.com AAAAGnNrLXNzaC1lZDI1NTE5QG9wZW5zc2guY29tAAAAIPBpgGDNkJHMtpZQ+1CcWdZRDUEXdjcZsxH9M9ebexb6AAAAEXNzaDpnaXQtc2lnbmF0dXJl";
|
publicKey = "sk-ssh-ed25519@openssh.com AAAAGnNrLXNzaC1lZDI1NTE5QG9wZW5zc2guY29tAAAAIPBpgGDNkJHMtpZQ+1CcWdZRDUEXdjcZsxH9M9ebexb6AAAAEXNzaDpnaXQtc2lnbmF0dXJl";
|
||||||
namespace = "git";
|
namespace = "git";
|
||||||
serial = "20723090";
|
serial = "20723090";
|
||||||
};
|
};
|
||||||
yubikey-safe = {
|
yubikey-safe = {
|
||||||
key = "sk-ssh-ed25519@openssh.com AAAAGnNrLXNzaC1lZDI1NTE5QG9wZW5zc2guY29tAAAAIOd/DCO4lo8PH9EjKMtgGBGoc6SevLvTdWVlNbjrc6NsAAAAEXNzaDpnaXQtc2lnbmF0dXJl";
|
publicKey = "sk-ssh-ed25519@openssh.com AAAAGnNrLXNzaC1lZDI1NTE5QG9wZW5zc2guY29tAAAAIOd/DCO4lo8PH9EjKMtgGBGoc6SevLvTdWVlNbjrc6NsAAAAEXNzaDpnaXQtc2lnbmF0dXJl";
|
||||||
namespace = "git";
|
namespace = "git";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|||||||
Reference in New Issue
Block a user