mirror of
https://github.com/gensokyo-zone/infrastructure.git
synced 2026-02-09 12:29:19 -08:00
fix(samba): accounts
This commit is contained in:
parent
5dcd5a5be0
commit
8335b8f3a0
12 changed files with 164 additions and 37 deletions
|
|
@ -8,10 +8,13 @@
|
|||
name,
|
||||
attr ? name,
|
||||
subdir ? null,
|
||||
}:
|
||||
pkgs.writeShellScriptBin name ''
|
||||
exe ? null,
|
||||
}: let
|
||||
subcommand = if exe == null then "run" else "shell";
|
||||
exeArg = if exe == null then "--" else "-c ${exe}";
|
||||
in pkgs.writeShellScriptBin name ''
|
||||
${optionalString (subdir != null) ''cd "$NF_CONFIG_ROOT${subdir}"''}
|
||||
exec nix run ''${FLAKE_OPTS-} "$NF_CONFIG_ROOT#${attr}" -- "$@"
|
||||
exec nix ${subcommand} ''${FLAKE_OPTS-} "$NF_CONFIG_ROOT#${attr}" ${exeArg} "$@"
|
||||
'';
|
||||
nf-actions = pkgs.writeShellScriptBin "nf-actions" ''
|
||||
NF_CONFIG_FILES=($NF_CONFIG_ROOT/ci/{nodes,flake-cron}.nix)
|
||||
|
|
@ -84,6 +87,11 @@
|
|||
name = "deploy";
|
||||
attr = "deploy-rs";
|
||||
})
|
||||
(mkWrapper rec {
|
||||
name = "smbencrypt";
|
||||
attr = "pkgs.freeradius";
|
||||
exe = name;
|
||||
})
|
||||
];
|
||||
shellHook = ''
|
||||
export NIX_BIN_DIR=$(dirname $(readlink -f $(type -P nix)))
|
||||
|
|
|
|||
|
|
@ -56,6 +56,13 @@ in {
|
|||
default = "usershare-template";
|
||||
};
|
||||
};
|
||||
guest = {
|
||||
enable = mkEnableOption "guest account";
|
||||
user = mkOption {
|
||||
type = str;
|
||||
default = "nobody";
|
||||
};
|
||||
};
|
||||
idmap = let
|
||||
idmapModule = { config, name, ... }: {
|
||||
options = {
|
||||
|
|
@ -133,7 +140,7 @@ in {
|
|||
];
|
||||
settings = mkMerge ([
|
||||
(mkIf (cfg.passdb.smbpasswd.path != null) {
|
||||
"passdb backend" = "smbpasswd:${cfg.passdb.smbpasswd.path}";
|
||||
"passdb backend" = mkOptionDefault "smbpasswd:${cfg.passdb.smbpasswd.path}";
|
||||
})
|
||||
(mkIf cfg.ldap.enable {
|
||||
"passdb backend" = mkOptionDefault ''ldapsam:"${cfg.ldap.url}"'';
|
||||
|
|
@ -153,6 +160,11 @@ in {
|
|||
"usershare path" = mkOptionDefault cfg.usershare.path;
|
||||
"usershare prefix allow list" = mkOptionDefault [ cfg.usershare.path ];
|
||||
})
|
||||
(mkIf cfg.guest.enable {
|
||||
"map to guest" = mkOptionDefault "Bad User";
|
||||
"guest account" = mkOptionDefault cfg.guest.user;
|
||||
"valid users" = [ cfg.guest.user ];
|
||||
})
|
||||
] ++ mapAttrsToList (_: idmap: mapAttrs' (key: value: nameValuePair "idmap config ${idmap.domain} : ${key}" (mkOptionDefault value)) idmap.settings) cfg.idmap.domains);
|
||||
extraConfig = mkMerge (mapAttrsToList (key: value: ''${key} = ${settingValue value}'') cfg.settings);
|
||||
shares.${cfg.usershare.templateShare} = mkIf cfg.usershare.enable {
|
||||
|
|
|
|||
|
|
@ -41,7 +41,7 @@ in {
|
|||
group ? name,
|
||||
enable ? !config.services.${serviceName}.enable, serviceName ? name,
|
||||
uid ? config.ids.uids.${name},
|
||||
gid ? config.ids.gids.${group}
|
||||
gid ? config.ids.gids.${group},
|
||||
}: mkIf enable {
|
||||
users.${name} = {
|
||||
group = mkIf (group != null) group;
|
||||
|
|
|
|||
|
|
@ -19,31 +19,41 @@ in {
|
|||
};
|
||||
shares = mkIf cfg.enable {
|
||||
kyuuto-transfer = {
|
||||
comment = "Kyuuto Media Transfer Area";
|
||||
path = kyuuto.transferDir;
|
||||
writeable = true;
|
||||
browseable = true;
|
||||
public = true;
|
||||
"acl group control" = true;
|
||||
#"guest only" = true;
|
||||
comment = "Kyuuto Media Transfer Area";
|
||||
"hosts allow" = localAddrs;
|
||||
"acl group control" = true;
|
||||
"create mask" = "0664";
|
||||
"force directory mode" = "3000";
|
||||
"directory mask" = "7775";
|
||||
};
|
||||
kyuuto-access = {
|
||||
path = kyuuto.libraryDir;
|
||||
comment = "Kyuuto Media Access";
|
||||
writeable = false;
|
||||
browseable = true;
|
||||
public = true;
|
||||
comment = "Kyuuto Media Access";
|
||||
"hosts allow" = localAddrs;
|
||||
};
|
||||
kyuuto-media = {
|
||||
path = kyuuto.mountDir;
|
||||
comment = "Kyuuto Media";
|
||||
writeable = true;
|
||||
browseable = true;
|
||||
public = false;
|
||||
comment = "Kyuuto Media";
|
||||
"valid users" = [ "@kyuuto" ];
|
||||
"valid users" = [ "@kyuuto-peeps" ];
|
||||
"acl group control" = true;
|
||||
"create mask" = "0664";
|
||||
"force directory mode" = "3000";
|
||||
"directory mask" = "7775";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
# give guest users proper access to the transfer share
|
||||
users.users.guest.extraGroups = [ "kyuuto" ];
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,17 +1,12 @@
|
|||
{
|
||||
config,
|
||||
lib,
|
||||
access,
|
||||
pkgs,
|
||||
...
|
||||
}: let
|
||||
inherit (lib.modules) mkIf mkMerge mkDefault;
|
||||
inherit (lib.modules) mkIf mkDefault;
|
||||
inherit (lib.lists) any;
|
||||
inherit (lib.strings) hasInfix concatMapStringsSep splitString;
|
||||
inherit (config.services) samba samba-wsdd;
|
||||
system = access.systemFor "tei";
|
||||
inherit (system.services) kanidm;
|
||||
enableLdap = false;
|
||||
cfg = config.services.samba;
|
||||
hasIpv4 = any (hasInfix ".") config.systemd.network.networks.eth0.address or [ ];
|
||||
in {
|
||||
services.samba = {
|
||||
|
|
@ -26,6 +21,10 @@ in {
|
|||
usershare = {
|
||||
group = mkDefault "peeps";
|
||||
};
|
||||
guest = {
|
||||
enable = mkDefault true;
|
||||
user = mkDefault "guest";
|
||||
};
|
||||
passdb.smbpasswd.path = mkDefault config.sops.secrets.smbpasswd.path;
|
||||
settings = {
|
||||
workgroup = "GENSOKYO";
|
||||
|
|
@ -35,17 +34,15 @@ in {
|
|||
"winbind scan trusted domains" = false;
|
||||
"winbind use default domain" = true;
|
||||
"domain master" = false;
|
||||
"valid users" = [ "nobody" "@peeps" ];
|
||||
"map to guest" = "Bad User";
|
||||
"guest account" = "nobody";
|
||||
"valid users" = [ "@peeps" ];
|
||||
"remote announce" = mkIf hasIpv4 [
|
||||
"10.1.1.255/${samba.settings.workgroup}"
|
||||
"10.1.1.255/${cfg.settings.workgroup}"
|
||||
];
|
||||
};
|
||||
};
|
||||
|
||||
services.samba-wsdd = mkIf samba.enable {
|
||||
enable = mkDefault true;
|
||||
services.samba-wsdd = {
|
||||
enable = mkIf cfg.enable (mkDefault true);
|
||||
hostname = mkDefault config.networking.hostName;
|
||||
};
|
||||
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
smbpasswd: ENC[AES256_GCM,data:9dpSVTTjpUKyNlo/8BhQbjyTqblkr1hF17ML0fpqik/1W75sDmn9enRfR7GtTKztRTxAbRTXS9yP9+ngIJREF1XG6gERK95H7cYm00Ep1D23qz66caWW1VuYYH0damnVhEkAfJO2t1yhbqA0uWy9WToAyOfyh2XJgrLe14P0rYw9QPjrpqxByXb29lNpINVuZKLWXbresqH6X9Rqd63tT6kRXtMVMdyPypEvMuM7N6/UjHFgCgNW2Fdfch1VSPwxj/C3Z1ZOIRz9AMQu3lU=,iv:xl8VAaeF1zYplm0XHDU8H5fMmxKSko9hdGO2971F01Q=,tag:HK6DMGrhiz7OGs5e/6Sr5Q==,type:str]
|
||||
smbpasswd: ENC[AES256_GCM,data:T9ajprFSoJ8zot3GKKT44Gkc18H/R2O/sVcwoxkCcn8cNQoD+uCOv7t9dDKnvGQKSF6FsC9WxUSL6ZetR0opxH5nvULGpc9WCoxFn6UPZpDRFtp9J3WMbFGNzw+dnwlKJQVy8WqAqajlpjV7+OR1Q+nYGm0EwIjO0JSqE5fX7FcDBzUQJr5gry14Dvzpzh04rOqsGD+aAGXcJLEJej7zLeALPCMOy21VdpKt0wzd1PfeowJCMdIoLAYTlGl33gbONIIEHefa1QY3jn6ZRGmoNF2qWmwueUguak9kdACtocUrJcUhnpbSC3h4HrNVTcMuvoL4SrJ/kxec+Xzv23zc5ylffkpT2XuKjk7M6uiwe+tgVczxvnGn5rtp33nBszausrO9JwD8I5l0pW+BSApdpaVwMv72cNdMRV9nPuUGY/uYlcQ7nTWKypJnmcbbcg/w+WWCfCdSx4HhWN26oQotivY+unrWL/uHkYjVUzefh2/s0cmBbS0wrV//haqkUFGw3oJgM7c6nHYnCNugdYhsrB8u2gRTy+jvZrnYY4ukuuoYiLrXOYVcS38Co8PphCX2h/wnwzVyneaWHg5ttkvf+cEU6on3efzSKZamt+HsbwHB5M/4oiUEDWMH4K6X/xF3cTgHTV6bxUTL/jzLNwW6tKl9bjHnkAjNb6iYOIVXT5KjxpLfcwXr/SvRCINNN1enAEU=,iv:rXRyeDF7kUtfcOhHI8ILCCg9vpHDzCKn4K/2J/dEZLw=,tag:OZ7r2mu9xPTI7JJlddafkg==,type:str]
|
||||
sops:
|
||||
shamir_threshold: 1
|
||||
kms: []
|
||||
|
|
@ -42,8 +42,8 @@ sops:
|
|||
VitlT3d6d1FOSzFKTFRIWDU3cmJ2aXMKDN7HPa6pQSZd21cLvfk+sYvLqZm9eN+7
|
||||
K1v7M9MXLY+nh1YGGbtDbWHh09p8g37tS1OwgGAiETh+z7hWsGHYdw==
|
||||
-----END AGE ENCRYPTED FILE-----
|
||||
lastmodified: "2024-01-30T23:29:25Z"
|
||||
mac: ENC[AES256_GCM,data:I/ijClic5JxlFV3ICyMczq3t4xo5V2trhl5B97HIwrgmDGtKeCiHjQc9TE/OtunvLUXaH3W8zjHWCsJDT+pFD0YO6EVo4G0MtJe35GNMsDT1x2Uwny13tTxWjKtjmP9lqB0I+cv4uL42vbt7Bdl3lv3jw0Hz/2wvlvnSUpPdFMo=,iv:YnVT6FvBhw5P1IBDNlRuxE9lk8tCsxR2JzHSYMA6dr8=,tag:MVayewWg5Ny/5lPwu90B9w==,type:str]
|
||||
lastmodified: "2024-02-09T21:54:53Z"
|
||||
mac: ENC[AES256_GCM,data:tlGNpKn6rWCawNkmCdWJZRQqmNhDHFg5qAxMWRJ7A76I8/1XPZHXjG8m1vw9VaP3XDO15FPrLDUsAsVImXs0xc769GzlYsOa/WhjSbtrbT+WsAU6nXMs1OksKhzeAzCnQ04VCJPowMk09XIASZbIuES1+V6bFFgJbiK44UTHkW0=,iv:Hl+VzbDMI37nSaU4PHZ86362s6zqJWQ35J+qgSG3w20=,tag:uqMjhJ9eqgDsX587f0UCNQ==,type:str]
|
||||
pgp:
|
||||
- created_at: "2024-01-30T22:23:56Z"
|
||||
enc: |-
|
||||
|
|
|
|||
14
nixos/users/connie.nix
Normal file
14
nixos/users/connie.nix
Normal file
|
|
@ -0,0 +1,14 @@
|
|||
{ config, ... }:
|
||||
|
||||
{
|
||||
users.users.connieallure = { name, ... }: {
|
||||
uid = 8003;
|
||||
isNormalUser = true;
|
||||
autoSubUidGidRange = false;
|
||||
group = name;
|
||||
extraGroups = [ "users" "peeps" "kyuuto" ];
|
||||
};
|
||||
users.groups.connieallure = { name, ... }: {
|
||||
gid = config.users.users.${name}.uid;
|
||||
};
|
||||
}
|
||||
|
|
@ -1,5 +1,12 @@
|
|||
{ ... }:
|
||||
{
|
||||
config,
|
||||
lib,
|
||||
...
|
||||
}: let
|
||||
inherit (lib.attrsets) filterAttrs mapAttrsToList;
|
||||
inherit (lib.lists) elem;
|
||||
userIs = group: user: elem group (user.extraGroups ++ [ user.group ]);
|
||||
in {
|
||||
users.groups = {
|
||||
peeps = {
|
||||
gid = 8128;
|
||||
|
|
@ -7,5 +14,18 @@
|
|||
kyuuto = {
|
||||
gid = 8129;
|
||||
};
|
||||
kyuuto-peeps = {
|
||||
gid = 8130;
|
||||
members = mapAttrsToList (_: user: user.name) (
|
||||
filterAttrs (_: user: userIs "peeps" user && userIs "kyuuto" user) config.users.users
|
||||
);
|
||||
};
|
||||
};
|
||||
users.users = {
|
||||
guest = {
|
||||
uid = 8127;
|
||||
group = "nogroup";
|
||||
isSystemUser = true;
|
||||
};
|
||||
};
|
||||
}
|
||||
|
|
|
|||
14
nixos/users/kaosu.nix
Normal file
14
nixos/users/kaosu.nix
Normal file
|
|
@ -0,0 +1,14 @@
|
|||
{ config, ... }:
|
||||
|
||||
{
|
||||
users.users.kaosubaloo = { name, ... }: {
|
||||
uid = 8002;
|
||||
isNormalUser = true;
|
||||
autoSubUidGidRange = false;
|
||||
group = name;
|
||||
extraGroups = [ "users" "peeps" "kyuuto" ];
|
||||
};
|
||||
users.groups.kaosubaloo = { name, ... }: {
|
||||
gid = config.users.users.${name}.uid;
|
||||
};
|
||||
}
|
||||
|
|
@ -140,6 +140,7 @@
|
|||
fi
|
||||
'';
|
||||
nf-statix = pkgs.writeShellScriptBin "nf-statix" ''
|
||||
set -eu
|
||||
if [[ $# -eq 0 ]]; then
|
||||
set -- check
|
||||
fi
|
||||
|
|
|
|||
|
|
@ -37,8 +37,12 @@ provider "proxmox" {
|
|||
}
|
||||
}
|
||||
|
||||
data "proxmox_virtual_environment_role" "vm_admin" {
|
||||
role_id = "PVEVMAdmin"
|
||||
data "proxmox_virtual_environment_role" "vm_user" {
|
||||
role_id = "PVEVMUser"
|
||||
}
|
||||
|
||||
data "proxmox_virtual_environment_role" "auditor" {
|
||||
role_id = "PVEAuditor"
|
||||
}
|
||||
|
||||
data "proxmox_virtual_environment_role" "administrator" {
|
||||
|
|
@ -56,6 +60,22 @@ resource "proxmox_virtual_environment_group" "admin" {
|
|||
}
|
||||
}
|
||||
|
||||
resource "proxmox_virtual_environment_group" "user" {
|
||||
group_id = "user"
|
||||
comment = "Users"
|
||||
|
||||
acl {
|
||||
path = "/"
|
||||
propagate = true
|
||||
role_id = data.proxmox_virtual_environment_role.auditor.id
|
||||
}
|
||||
acl {
|
||||
path = "/"
|
||||
propagate = true
|
||||
role_id = data.proxmox_virtual_environment_role.vm_user.id
|
||||
}
|
||||
}
|
||||
|
||||
resource "random_password" "proxmox_initial" {
|
||||
length = 32
|
||||
special = false
|
||||
|
|
@ -103,15 +123,46 @@ resource "proxmox_virtual_environment_user" "kat" {
|
|||
}
|
||||
}
|
||||
|
||||
variable "proxmox_user_liz_last_name" {
|
||||
variable "proxmox_user_kaosubaloo_email" {
|
||||
type = string
|
||||
}
|
||||
|
||||
resource "proxmox_virtual_environment_user" "liz" {
|
||||
user_id = "liz@pve"
|
||||
first_name = "Elizabeth"
|
||||
last_name = var.proxmox_user_liz_last_name
|
||||
variable "proxmox_user_kaosubaloo_first_name" {
|
||||
type = string
|
||||
}
|
||||
|
||||
variable "proxmox_user_kaosubaloo_last_name" {
|
||||
type = string
|
||||
}
|
||||
|
||||
resource "proxmox_virtual_environment_user" "kaosubaloo" {
|
||||
user_id = "kaosubaloo@pve"
|
||||
email = var.proxmox_user_kaosubaloo_email
|
||||
first_name = var.proxmox_user_kaosubaloo_first_name
|
||||
last_name = var.proxmox_user_kaosubaloo_last_name
|
||||
password = random_password.proxmox_initial.result
|
||||
groups = [proxmox_virtual_environment_group.user.id]
|
||||
|
||||
lifecycle {
|
||||
ignore_changes = [password]
|
||||
}
|
||||
}
|
||||
|
||||
variable "proxmox_user_connieallure_email" {
|
||||
type = string
|
||||
}
|
||||
|
||||
variable "proxmox_user_connieallure_last_name" {
|
||||
type = string
|
||||
}
|
||||
|
||||
resource "proxmox_virtual_environment_user" "connieallure" {
|
||||
user_id = "connieallure@pve"
|
||||
email = var.proxmox_user_connieallure_email
|
||||
first_name = "Connie"
|
||||
last_name = var.proxmox_user_connieallure_last_name
|
||||
password = random_password.proxmox_initial.result
|
||||
groups = [proxmox_virtual_environment_group.user.id]
|
||||
|
||||
lifecycle {
|
||||
ignore_changes = [password]
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
{
|
||||
"data": "ENC[AES256_GCM,data:LLzklOKNkbqIa9C50BODDA06COkVWgmzH+nqU9rDDt/ZGzUWyrcrr4vsxPoqTr9EaKpaB4VfCe+2phXSGuNpoPrsRuWvLm2UUL8zujLMpR/MIm6cKSANy2Sm5vxLFNXmVoOU4YMmMclyuAvwGM/v22V39luIKN1ZqWJo2P0+FsrzSHAScx1NHp4xqw9AH1jwdGvy+jWRTsGPPqDc5vG+PQpbsh6ZQvTe77PAcBjHjSl6jc1Da73nKb7Sag/GeaDek84aB6De/lXuSv9gAfZF1mEoi5X1GSM8SOrDoZEHGLLJ6H+TVTens0UyW1VfMkb6Vw6E54V4qSfigheUORapl2nhvD/wRCgMadBpPgyQLdT8jOfryKlupObgSu2e3QowSBvo2wJ+51bE+LEhWZKXiv2Ogh27K4dCpuwlhpLjyblb+cUS0q76kHL4ALGcjm8AOb2bwPwvAwXmCCbzegLNbGHbisGwWRpBPnw2PBA7oCrbAmei1ThiBFD9L9RvydSFLbsVNDSTo/U7E63b8WbQ6EI7EUj4St9u7Mt3Fy7sbpxSRjawfdEhKiHrlvFfB/a45aOyRK6MjObxy0rjtmiX6+STnC2ICNmV+lNbIg7iCuI0s+lryGpxZdDOHCjfk3rawzUfZxsTVcELqjr7WmAORyBZ6STYVG9S06vFn51wcJb4NLzXa6hMG2V92PGzf90Vd7TVyPbgQj/1KxIz0Nz/cQxB9I96EwnmS2Ovfxi50G5Q5gU09jpXtpAUOlxpVRSHx5qs4u0uEZhtk+WmtIo8Kip+V0Z98n4eGQT/pxPBAZQcrIlzlauvKIFEQAoIrl9iebVfYQhzUGPAw+KmOuxEfpjhQp0zHjIgHE1TaGjOnOyHje8LmnQnuW787ovqdZFKcmU0UHFmv3fNi9cIdlPdayF1qyOW2Tq+3Pq917QMDv8R5FxV/MzJsPbLwTliPMfv5AMSXPVCuijcVfL1nOQRGlxRAHdLc82vJ0yzB9s8MPKjTqetM1cPT6omgCoH0u07c8//iQwZT4tYKmy13z6GdR62FRjm/kt2cE9jhcSl72TKmvBlB7FeePZ07TzaUW6kmvBnjxsGYMzpjbcO7GEFwHBfMIctLvhKG6hopZ8N7rPByKKZd53lApcNrBm2kQGPcEr9UBlGwJUC09qdYkg0uTTBVpixqPUDytNdgupy7mx48SlcJhXQi+NwNGf6Mjcx8jUhT/l63EBKdV6wNI59LM0davt9sgKIxBorOGjAxrETC7xwh9ER7WrVQwYmIdOsvtw+ozvTEwzI+GPYRY1PQDsaAvbca5m6FAu9SepRtbIshvTqJxPGkEW2+YWELVdico6rA3x0zG3nJ9ahXECap3wUW63d1X3W/vQ8s1hKzJdzKB67iwfj6c1kwma0nNXcBw1iWwht7bkS13JzJLAdWWGxtyYJjREAlsPZaqh1BCnTwrPuB7U+EI4A0/Hn1bl5qzalMjzeX8K9VUOEQgc5pqKuhKcbCcUc9Rck3STbyrODdrvcfIc8FChJc9HMF0Rj/PuwDGZy+Bc52IF7iLAD6vcYVht2QoaM2m9sjScVJsyDBaxn8br6I/Mx66ANUY7dkh4L51uFRO5wL3EJxF10hZzX1sYvkPZ6XoNwjcHPgS9Zlk9OPRmpOaTbEWmOhsn7avYWFpeaqCU=,iv:ZtdTd0Hyg3MeBC6rquwilcROlfOu99+Ti/DtgXsk3fg=,tag:rKDfuKNyH9bBeprtGtmY6w==,type:str]",
|
||||
"data": "ENC[AES256_GCM,data:mlS9WffOo+tcNAred2xm8kHsxM+UrsEnd2t0Sx24dYIZURXi1rQyujlvzYiEOF/2CEFmUMOtjJF1rU9OGWT1GHCrK55ZSlL5O4rgOH1ldaaNnYzbPMMiGnv9vzJf221Mj3r9I18w+EsO88sD5GiqCCgT9TWDgYDYR06xq43UBwjQi8JLjCgERSSNAZFLbqN5byKfROUkyKteOHguZBnB8FVtSPzlshpv1XYAoTYu8jPCH/Nqre2NF2PtqyYV0+kMaF362wh0nC3SKcqhY43J4fcsheG/X7HSznsg+rPDOuQr6+R3EDyQOjWYMTbUMYs1cCLhnoWiPnLHpnZ0MXUp8EHgs0iU7TUGkadA48WB9YbYDNPGtvxG7oAkMk+z2P482su3Lz+teShBdnX+vemsOpF4egfrqIMeKJUQIB1fhbXbIXi6eQq+jp7b0X6Q2OqvCKXjIvlcml4WgY9euf7UwIf5R1n8myGja5XQWpVlXePeJoDvmNlTUJgNxfPMXTefOxHcrtsY17nYXdm/DVIwQ/CSWWrPdqk4AezQBHsJc78GSBQKhVFFkpIpwDSM8XDNRUzX8/d/mL6zj0UAATxK4vHBdoX4wM/curkwJssvh/RhMU+UhYqWmBe2BDeBvoOKBiYjdICMoGKXJsgIJ0naWygu6kc9SL2SWSjZLctXZuqGHDHld/Cg/yy86xDZMTe6JwjG8NhDOJ7YhBuxFIa0Y2Z0zAMSUdCrgTaVQ72H43wBldqIjR5syIHHO4wDTTunPSpaQfo5uKXVR+TERVCjVPFtQqhoyuwJBrtdDFGkyx4T9eDHNCPnDpZvrvWkXP9k32JLPr9JFtjD9iS27o6SXin/z1PW3em5j8wpSjSLJK8exdTVqz2WPufRqYuWo8l7FVg+6fdL/e1lDnwYHHZxBSB1O8GSFYNI59sZVRRKSO4MFbvDSm6IXoPlc+UeCa6s5tq5+4VZIDuho5svywyehSI9ZigWBh07t2LYhmVtRyH2I7ub39CHlk4bNajZn7Y65G6WkcYDT2dWO6+jxnu1pM22w5FvNWTljGWtCp0ZnExLNsLEL35EvnazIdZdu9+m2RSb63yg3unz/8gGL4N8pUNfyeEbrAfuMqjt2BNdzdPTARISej2TwUGGPYfWQpglKHvwYgx+mRR2bdABx7axuRZhC+zOgPXWzRd3vKK/JsmSlaRfxXqA9nt2prxKjZkSO07KOrjQVoDyU7tidA1Z+eg3jUHqfwC/deiL0xhYetk+eO3TMQai8CxW/KvRzERxrfzmLXPd4emc00bnn/WrgxTFmj8QvypHjtrQUToRSh5J5tG1YHxo+swLFx3HpucLxEBE6nY/TbnmP+V8D9XlCY1VKx5Jt5afwif84DPOPYFzwv+5uJH4T5RpXUGmKhxJxKoVVQB07CEr72j8biivycQoGcg36UYp+T8HCxeWC3m5gEsEcu++Iu3TAj7z+18nbSVToF7jq4WH9CTC1zsf7P1GMQhgsm0rzq9c46W0XrCbRG/3iAHyp5rEf75FlnSf7XQgbsd2LDW9/kT/ffV/CTC/HR2ky0URwCXAyTT2Dk7LkEFBynPs5rJtulfrBJMPHza7rRMnAkCWTyeOmLrkKIFv4mf3ToGgph4aOaKdZTOPKalxVoc/oRNo+TNvdEl/Jat2wWaQo1OUSITFeXWQXUWLvQN/S5cc4K6DaZGfUafbjyGLRFT5ZSLM+5Y/5AAOLh9nl7bnJ3GHdnJ1YDMW+ViLzVZ8VyyRUcaL8HQ9TMlC5Xjyzfb7U1QyZBQIYFkXicM9FtG22uXrHLS1jBjZPlUcQQrGNC+ctZarwKiw5p/QwfUaHsyjgnbq8PZlJzrdgD1nofBwf1tdQ88yurQcrisjXy6PZ40pyKZBnXvXgSk3VuexLhrNSh+bE54tIikmC5ppw2mXUDGax5k633yvzWPoFhUxC6qU0Bjfa0dl2TuXC2k7Hwecyce/g1ON,iv:JHWAkB9pFrbqXjZUUnvJFhLJK3efwcsPeMjgOjNmSDs=,tag:hT/R/OBXoSkRtj3qwU0K4g==,type:str]",
|
||||
"sops": {
|
||||
"shamir_threshold": 1,
|
||||
"kms": null,
|
||||
|
|
@ -7,8 +7,8 @@
|
|||
"azure_kv": null,
|
||||
"hc_vault": null,
|
||||
"age": null,
|
||||
"lastmodified": "2024-01-28T05:17:30Z",
|
||||
"mac": "ENC[AES256_GCM,data:EbKeIgTkJgItseG5sXE4HBJYS4Kf+/7JhmJbFTxZzHXx7NwTzSjowMruhCQvHZ4r2QPohnSkmcVq6YnNod5jAtPOoTvyVq6FZE6EZ4943WF8IUy1Vu8R4mzFP6FSa+/CD+Mb8mN+nQwUXd5vz1XQZcMo2uEmvWB/ZYgEqCJ5suA=,iv:AEYxEokcU2/2+P5IopuaDKbs69I7TtSzXcBPQ05TeN4=,tag:3zf3yDVQOLaxbSbvCuWJ9Q==,type:str]",
|
||||
"lastmodified": "2024-02-09T21:18:23Z",
|
||||
"mac": "ENC[AES256_GCM,data:bvNVyiwZ4m8/UjKvDUDBt6UXYP2Y8BV4paedPzPmE5mow5Sx5J1r4CJXk/pSjxMY77gs5TtXcQdBTtQUpqU43kH+gUjWHIFK0m/AV+QfyFmlXe/dPGvYsM4T4LBrncMOJxRxuDT6B+zmOAHGjuypLrasqZ4aEajotFxUaw4hBaE=,iv:NxkU2QDcJjeIW50Bvh8R+jOBE0ApgK0A9BMCAf8gzE0=,tag:VagNJlK235Hv+seO48vpxQ==,type:str]",
|
||||
"pgp": [
|
||||
{
|
||||
"created_at": "2024-01-14T19:49:29Z",
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue