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_firebase_service_account.age`
|
||||||
- `secrets/matrix_android_google_services.age`
|
- `secrets/matrix_android_google_services.age`
|
||||||
- `secrets/matrix_android_commander_credentials.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/minecraft_rcon_password.age`
|
||||||
- `secrets/wireguard_private_key.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.
|
- 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.
|
- 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
|
## Dependencias implicitas e pontos de atencao
|
||||||
|
|
||||||
Itens que um agente deve verificar antes de mexer:
|
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_google_services "$project_dir/app/google-services.json"
|
||||||
link_secret /run/agenix/matrix_android_commander_credentials "$project_dir/.mc/credentials.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";
|
haAirConditioner = "climate.ar";
|
||||||
haLaundryDryingToggle = "input_boolean.secar_roupas";
|
haLaundryDryingToggle = "input_boolean.secar_roupas";
|
||||||
haClimateAction = action: data: {
|
haClimateAction = action: data: {
|
||||||
|
|
@ -297,6 +318,22 @@ in {
|
||||||
mode = "0400";
|
mode = "0400";
|
||||||
};
|
};
|
||||||
} // lib.optionalAttrs
|
} // 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) {
|
(builtins.pathExists ../../secrets/minecraft_rcon_password.age) {
|
||||||
minecraft_rcon_password.file =
|
minecraft_rcon_password.file =
|
||||||
../../secrets/minecraft_rcon_password.age;
|
../../secrets/minecraft_rcon_password.age;
|
||||||
|
|
@ -1499,6 +1536,8 @@ in {
|
||||||
fishPlugins.z
|
fishPlugins.z
|
||||||
androidSigningEnv
|
androidSigningEnv
|
||||||
matrixAndroidSecrets
|
matrixAndroidSecrets
|
||||||
|
cloudflareWorkerEnv
|
||||||
|
cloudflareDnsEnv
|
||||||
];
|
];
|
||||||
|
|
||||||
# environment.loginShellInit = ''
|
# 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_firebase_service_account.age".publicKeys = [ users.ltadeu6 systems.Nixos ];
|
||||||
"secrets/matrix_android_google_services.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/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/minecraft_rcon_password.age".publicKeys = [ users.ltadeu6 systems.Nixos ];
|
||||||
"secrets/wireguard_private_key.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