Add Cloudflare API token helpers
This commit is contained in:
parent
abceabd066
commit
ebc21a4add
5 changed files with 51 additions and 1 deletions
10
AGENTS.md
10
AGENTS.md
|
|
@ -560,6 +560,8 @@ Estado atual:
|
|||
- `secrets/matrix_android_firebase_service_account.age`
|
||||
- `secrets/matrix_android_google_services.age`
|
||||
- `secrets/matrix_android_commander_credentials.age`
|
||||
- `secrets/cloudflare_worker_api_token.age`
|
||||
- `secrets/cloudflare_dns_api_token.age`
|
||||
- `secrets/minecraft_rcon_password.age`
|
||||
- `secrets/wireguard_private_key.age`
|
||||
|
||||
|
|
@ -593,6 +595,14 @@ Estado atual:
|
|||
- O helper `matrix-android-secrets [project-dir]` cria symlinks desses tres arquivos para `/run/agenix`; por default usa o diretorio atual.
|
||||
- Nao migre `local.properties`, debug keystores, `.gradle`, `.wrangler` ou caches locais do `matrix-android` para este repo sem um motivo explicito.
|
||||
|
||||
### Cloudflare
|
||||
|
||||
- `secrets/cloudflare_worker_api_token.age` contem um token para deploy de Workers no account local.
|
||||
- `secrets/cloudflare_dns_api_token.age` contem um token para DNS/Zone Read.
|
||||
- `cloudflare-worker-env <comando>` exporta `CLOUDFLARE_API_TOKEN` apenas para o comando filho usando o token de Workers.
|
||||
- `cloudflare-dns-env <comando>` exporta `CLOUDFLARE_API_TOKEN` apenas para o comando filho usando o token de DNS.
|
||||
- O token bootstrap usado para criar outros tokens e temporario; nao mantenha `cloudflare_bootstrap_api_token.age` no repo depois de revogar o token na Cloudflare.
|
||||
|
||||
## Dependencias implicitas e pontos de atencao
|
||||
|
||||
Itens que um agente deve verificar antes de mexer:
|
||||
|
|
|
|||
|
|
@ -77,6 +77,27 @@ let
|
|||
link_secret /run/agenix/matrix_android_google_services "$project_dir/app/google-services.json"
|
||||
link_secret /run/agenix/matrix_android_commander_credentials "$project_dir/.mc/credentials.json"
|
||||
'';
|
||||
cloudflareEnv = name: secret: pkgs.writeShellScriptBin name ''
|
||||
set -eu
|
||||
|
||||
secret_path=/run/agenix/${secret}
|
||||
if [ ! -r "$secret_path" ]; then
|
||||
echo "Missing readable Cloudflare token: $secret_path" >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
export CLOUDFLARE_API_TOKEN="$(${pkgs.coreutils}/bin/cat "$secret_path")"
|
||||
|
||||
if [ "$#" -eq 0 ]; then
|
||||
echo "Cloudflare API token environment is ready."
|
||||
exit 0
|
||||
fi
|
||||
|
||||
exec "$@"
|
||||
'';
|
||||
cloudflareWorkerEnv =
|
||||
cloudflareEnv "cloudflare-worker-env" "cloudflare_worker_api_token";
|
||||
cloudflareDnsEnv = cloudflareEnv "cloudflare-dns-env" "cloudflare_dns_api_token";
|
||||
haAirConditioner = "climate.ar";
|
||||
haLaundryDryingToggle = "input_boolean.secar_roupas";
|
||||
haClimateAction = action: data: {
|
||||
|
|
@ -297,6 +318,22 @@ in {
|
|||
mode = "0400";
|
||||
};
|
||||
} // lib.optionalAttrs
|
||||
(builtins.pathExists ../../secrets/cloudflare_worker_api_token.age) {
|
||||
cloudflare_worker_api_token = {
|
||||
file = ../../secrets/cloudflare_worker_api_token.age;
|
||||
owner = username;
|
||||
group = "users";
|
||||
mode = "0400";
|
||||
};
|
||||
} // lib.optionalAttrs
|
||||
(builtins.pathExists ../../secrets/cloudflare_dns_api_token.age) {
|
||||
cloudflare_dns_api_token = {
|
||||
file = ../../secrets/cloudflare_dns_api_token.age;
|
||||
owner = username;
|
||||
group = "users";
|
||||
mode = "0400";
|
||||
};
|
||||
} // lib.optionalAttrs
|
||||
(builtins.pathExists ../../secrets/minecraft_rcon_password.age) {
|
||||
minecraft_rcon_password.file =
|
||||
../../secrets/minecraft_rcon_password.age;
|
||||
|
|
@ -1499,6 +1536,8 @@ in {
|
|||
fishPlugins.z
|
||||
androidSigningEnv
|
||||
matrixAndroidSecrets
|
||||
cloudflareWorkerEnv
|
||||
cloudflareDnsEnv
|
||||
];
|
||||
|
||||
# environment.loginShellInit = ''
|
||||
|
|
|
|||
BIN
secrets/cloudflare_dns_api_token.age
Normal file
BIN
secrets/cloudflare_dns_api_token.age
Normal file
Binary file not shown.
BIN
secrets/cloudflare_worker_api_token.age
Normal file
BIN
secrets/cloudflare_worker_api_token.age
Normal file
Binary file not shown.
|
|
@ -16,7 +16,8 @@ in {
|
|||
"secrets/matrix_android_firebase_service_account.age".publicKeys = [ users.ltadeu6 systems.Nixos ];
|
||||
"secrets/matrix_android_google_services.age".publicKeys = [ users.ltadeu6 systems.Nixos ];
|
||||
"secrets/matrix_android_commander_credentials.age".publicKeys = [ users.ltadeu6 systems.Nixos ];
|
||||
"secrets/cloudflare_bootstrap_api_token.age".publicKeys = [ users.ltadeu6 systems.Nixos ];
|
||||
"secrets/cloudflare_worker_api_token.age".publicKeys = [ users.ltadeu6 systems.Nixos ];
|
||||
"secrets/cloudflare_dns_api_token.age".publicKeys = [ users.ltadeu6 systems.Nixos ];
|
||||
"secrets/minecraft_rcon_password.age".publicKeys = [ users.ltadeu6 systems.Nixos ];
|
||||
"secrets/wireguard_private_key.age".publicKeys = [ users.ltadeu6 systems.Nixos ];
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue