[ADDED] Script ai_token.sh para gestionar múltiples tokens de proveedores de IA
🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
parent
1a4c7e609a
commit
894235d7e5
8 changed files with 291 additions and 188 deletions
258
bin/ai_token.sh
Executable file
258
bin/ai_token.sh
Executable file
|
@ -0,0 +1,258 @@
|
||||||
|
#!/bin/bash
|
||||||
|
#Script : ai_token.sh
|
||||||
|
#Apps : MRDEVS TOOLS
|
||||||
|
#Description : Gestiona tokens de proveedores de IA usando SOPS
|
||||||
|
#Author : Sora Rosero One <sora@rosero.one>
|
||||||
|
#Generated by : Claude Code (claude-3-7-sonnet-20250219)
|
||||||
|
#Created : 2025/03/21 16:06:20
|
||||||
|
#Modified : 2025/03/21 16:53:56
|
||||||
|
#Version : 1.0.0
|
||||||
|
#Use Notes :
|
||||||
|
# Gestiona múltiples tokens de IA definidos en ai.tokens
|
||||||
|
#==============================================================================
|
||||||
|
# Derechos de Autor [2025] [Mauro Rosero P. <mauro@rosero.one>]
|
||||||
|
#==============================================================================
|
||||||
|
# Este programa es software libre: usted puede redistribuirlo y/o modificarlo
|
||||||
|
# bajo los términos de la Licencia Pública Affero General de GNU tal como
|
||||||
|
# lo publica la Free Software Foundation, ya sea la versión 3 de la licencia,
|
||||||
|
# o (a su elección) cualquier versión posterior.
|
||||||
|
#
|
||||||
|
# Este programa se distribuye con la esperanza de que sea útil,
|
||||||
|
# pero SIN NINGUNA GARANTÍA; sin siquiera la garantía implícita de
|
||||||
|
# COMERCIABILIDAD o IDONEIDAD PARA UN PROPÓSITO PARTICULAR. Consulte la
|
||||||
|
# Licencia Pública Affero General de GNU para obtener más detalles.
|
||||||
|
#
|
||||||
|
# Debería haber recibido una copia de la Licencia Pública Affero General
|
||||||
|
# junto con este programa. Si no la recibió, consulte <https://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
|
# Configuración inicial
|
||||||
|
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
||||||
|
BIN_BASE="bin"
|
||||||
|
BIN_LIBS="lib"
|
||||||
|
BIN_MESG="msg"
|
||||||
|
BIN_CFGS="config"
|
||||||
|
BIN_SOPS="sops"
|
||||||
|
|
||||||
|
# Leer DEVSPATH desde el archivo de configuración o usar "devs" por defecto
|
||||||
|
if [ -f "$SCRIPT_DIR/$BIN_CFGS/devspath.dat" ]; then
|
||||||
|
DEVSPATH=$(cat "$SCRIPT_DIR/$BIN_CFGS/devspath.dat")
|
||||||
|
else
|
||||||
|
DEVSPATH="devs"
|
||||||
|
fi
|
||||||
|
|
||||||
|
BIN_HOME="$HOME/$DEVSPATH"
|
||||||
|
BIN_PATH=$BIN_HOME/$BIN_BASE
|
||||||
|
VERSION=$(cat "$BIN_HOME/$BIN_BASE/$BIN_CFGS/version")
|
||||||
|
|
||||||
|
# CHECK SHELL LANGUAGE
|
||||||
|
BIN_LANG=${LANG:0:2}
|
||||||
|
|
||||||
|
# Importar bibliotecas necesarias
|
||||||
|
source "${BIN_HOME}/${BIN_BASE}/${BIN_LIBS}/base.lib"
|
||||||
|
source "${BIN_HOME}/${BIN_BASE}/${BIN_LIBS}/developers.lib"
|
||||||
|
source "${BIN_HOME}/${BIN_BASE}/${BIN_LIBS}/console.lib"
|
||||||
|
|
||||||
|
# Cargar mensajes en el idioma del sistema o español por defecto
|
||||||
|
load_messages "${BIN_HOME}/${BIN_BASE}" "${BIN_MESG}" "${BIN_LANG}" "head"
|
||||||
|
load_messages "${BIN_HOME}/${BIN_BASE}" "${BIN_MESG}" "${BIN_LANG}" "developers"
|
||||||
|
apps_title="Gestor de Tokens de IA"
|
||||||
|
title="${head_000} ${head_002}"
|
||||||
|
|
||||||
|
# Comprobar dependencias necesarias
|
||||||
|
check_dependencies() {
|
||||||
|
# Verificar que 'dialog' esté instalado
|
||||||
|
if ! command -v dialog &>/dev/null; then
|
||||||
|
echo "${npm_001}"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Verificar que 'sops' esté instalado
|
||||||
|
if ! command -v sops &>/dev/null; then
|
||||||
|
dialog --backtitle "$title" --title "${head_error}" --msgbox "${npm_051}" 7 50
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
# Función para cargar la lista de proveedores desde el archivo de configuración
|
||||||
|
load_providers() {
|
||||||
|
local config_file="$BIN_HOME/$BIN_BASE/$BIN_CFGS/ai.tokens"
|
||||||
|
|
||||||
|
if [ ! -f "$config_file" ]; then
|
||||||
|
echo "ERROR: El archivo de configuración de proveedores no existe: $config_file"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Inicializar arrays globales para los proveedores
|
||||||
|
provider_codes=()
|
||||||
|
provider_descs=()
|
||||||
|
|
||||||
|
# Leer el archivo de configuración y llenar los arrays
|
||||||
|
while IFS=',' read -r provider_code provider_desc enabled active extra; do
|
||||||
|
# Eliminar comillas
|
||||||
|
provider_code=$(echo "$provider_code" | tr -d '"')
|
||||||
|
provider_desc=$(echo "$provider_desc" | tr -d '"')
|
||||||
|
|
||||||
|
# Agregar a los arrays
|
||||||
|
provider_codes+=("$provider_code")
|
||||||
|
provider_descs+=("$provider_desc")
|
||||||
|
done < <(grep -v "^#" "$config_file")
|
||||||
|
}
|
||||||
|
|
||||||
|
# Función para encriptar token con SOPS
|
||||||
|
encrypt_token() {
|
||||||
|
local provider_code="$1"
|
||||||
|
local token="$2"
|
||||||
|
local output_file="$BIN_HOME/$BIN_SOPS/${provider_code}.sops.yaml"
|
||||||
|
local temp_file="/tmp/ai_token_$$"
|
||||||
|
|
||||||
|
# Crear directorio si no existe
|
||||||
|
mkdir -p "$BIN_HOME/$BIN_SOPS"
|
||||||
|
|
||||||
|
# Codificar el token en base64
|
||||||
|
local token_base64=$(echo -n "$token" | base64)
|
||||||
|
|
||||||
|
# Crear archivo temporal con token codificado
|
||||||
|
echo "$token_base64" > "$temp_file"
|
||||||
|
|
||||||
|
# Encriptar usando SOPS
|
||||||
|
if sops --encrypt "$temp_file" > "$output_file"; then
|
||||||
|
# Asegurar permisos adecuados
|
||||||
|
chmod 600 "$output_file"
|
||||||
|
rm -f "$temp_file"
|
||||||
|
return 0
|
||||||
|
else
|
||||||
|
rm -f "$temp_file"
|
||||||
|
return 1
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
# Función para mostrar menú de proveedores usando console.lib
|
||||||
|
show_provider_menu() {
|
||||||
|
local options=""
|
||||||
|
local menu_text=""
|
||||||
|
|
||||||
|
# Construir el menú usando console.lib
|
||||||
|
for i in "${!provider_codes[@]}"; do
|
||||||
|
# Asegurarnos de que la clave sea única
|
||||||
|
if [ -n "$options" ]; then
|
||||||
|
options+="\n"
|
||||||
|
fi
|
||||||
|
options+="${i}:${provider_descs[i]}"
|
||||||
|
|
||||||
|
# Añadir descripción para el menú
|
||||||
|
if [ -n "$menu_text" ]; then
|
||||||
|
menu_text+="\n"
|
||||||
|
fi
|
||||||
|
menu_text+="${i} ${provider_codes[i]}"
|
||||||
|
done
|
||||||
|
|
||||||
|
# Añadir opción para salir
|
||||||
|
options+="\n999:Salir"
|
||||||
|
|
||||||
|
# Mostrar menú usando console.lib
|
||||||
|
choice=$(menu_actions "Seleccione el proveedor de IA para configurar su token:" "$options" 12)
|
||||||
|
|
||||||
|
# Verificar salida
|
||||||
|
if [ "$choice" == "${head_key_end}" ] || [ "$choice" == "999" ]; then
|
||||||
|
clear
|
||||||
|
echo "Operación cancelada por el usuario."
|
||||||
|
exit 0
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Obtener el código y descripción del proveedor seleccionado
|
||||||
|
selected_provider_code="${provider_codes[$choice]}"
|
||||||
|
selected_provider_desc="${provider_descs[$choice]}"
|
||||||
|
|
||||||
|
return 0
|
||||||
|
}
|
||||||
|
|
||||||
|
# Función para solicitar el token al usuario usando console.lib
|
||||||
|
get_token() {
|
||||||
|
local provider_name="$1"
|
||||||
|
local provider_code="$2"
|
||||||
|
|
||||||
|
while true; do
|
||||||
|
# Usar dialog_input_pass de console.lib
|
||||||
|
dialog_input_pass "Token de API para $provider_name" "Ingrese su token de API para $provider_code:" ""
|
||||||
|
|
||||||
|
# Comprobar si el usuario canceló
|
||||||
|
if [ $codex -ne 0 ]; then
|
||||||
|
return 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Validar token
|
||||||
|
if [ -z "$value" ]; then
|
||||||
|
dialog_error_box "${head_error}" "El token no puede estar vacío. Por favor ingrese un token válido."
|
||||||
|
continue
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Comprobar longitud del token (debe tener al menos 20 caracteres)
|
||||||
|
if [ ${#value} -lt 20 ]; then
|
||||||
|
dialog_error_box "${head_warning}" "El token parece ser demasiado corto. Verifique que haya copiado el token completo."
|
||||||
|
|
||||||
|
# Preguntar si continuar
|
||||||
|
dialog_yesno "¿Desea continuar de todos modos con este token?"
|
||||||
|
if [ $result -ne 0 ]; then
|
||||||
|
continue
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Token válido
|
||||||
|
break
|
||||||
|
done
|
||||||
|
|
||||||
|
# Devolver el token
|
||||||
|
echo "$value"
|
||||||
|
return 0
|
||||||
|
}
|
||||||
|
|
||||||
|
# Función principal
|
||||||
|
main() {
|
||||||
|
check_dependencies
|
||||||
|
|
||||||
|
# Cargar proveedores
|
||||||
|
load_providers
|
||||||
|
|
||||||
|
# Mostrar menú de proveedores
|
||||||
|
show_provider_menu
|
||||||
|
|
||||||
|
# Ahora tenemos selected_provider_code y selected_provider_desc
|
||||||
|
provider_code="$selected_provider_code"
|
||||||
|
provider_desc="$selected_provider_desc"
|
||||||
|
|
||||||
|
# Verificar archivo de token si ya existe
|
||||||
|
sops_file="$BIN_HOME/$BIN_SOPS/${provider_code}.sops.yaml"
|
||||||
|
if [ -f "$sops_file" ]; then
|
||||||
|
# Preguntar con dialog_yesno de console.lib
|
||||||
|
dialog_yesno "El archivo $sops_file ya existe. ¿Desea sobrescribirlo?"
|
||||||
|
|
||||||
|
if [ $result -ne 0 ]; then
|
||||||
|
dialog_error_box "${head_canceled}" "Operación cancelada por el usuario."
|
||||||
|
clear
|
||||||
|
exit 0
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Obtener token
|
||||||
|
token=$(get_token "$provider_desc" "$provider_code")
|
||||||
|
if [ $? -ne 0 ]; then
|
||||||
|
dialog_error_box "${head_canceled}" "Operación cancelada por el usuario."
|
||||||
|
clear
|
||||||
|
exit 0
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Encriptar token
|
||||||
|
if encrypt_token "$provider_code" "$token"; then
|
||||||
|
dialog_error_box "${head_success}" "El token de $provider_desc ha sido encriptado exitosamente en: $sops_file"
|
||||||
|
else
|
||||||
|
dialog_error_box "${head_error}" "Falló la encriptación del token de $provider_desc."
|
||||||
|
clear
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
# Ejecutar función principal
|
||||||
|
main
|
||||||
|
clear
|
||||||
|
exit 0
|
12
bin/config/ai.tokens
Normal file
12
bin/config/ai.tokens
Normal file
|
@ -0,0 +1,12 @@
|
||||||
|
"claude","Anthropic Calude API",0,1,0
|
||||||
|
"router","Open Router API",0,1,0
|
||||||
|
"chatgpt","OpenAI ChatGPT API",0,1,0
|
||||||
|
"dpseek","DeepSeek API",0,1,0
|
||||||
|
"groq","Groq Cloud API",0,1,0
|
||||||
|
"gemini","Google Gemini API",0,1,0
|
||||||
|
"hface","HuggingFace API",0,1,0
|
||||||
|
"brave","Brave Search API",0,1,0
|
||||||
|
"replica","Replicate API",0,1,0
|
||||||
|
"serper","Serper Search API",0,1,0
|
||||||
|
"voyage","Voyage RAG API",0,1,0
|
||||||
|
"apify","Apify Scrapping API",0,1,0
|
|
@ -1,32 +0,0 @@
|
||||||
FWD_TOKEN: ENC[AES256_GCM,data:sxOyv9fj4w+eOgpYFSsVwZ2nZFfUNs9eK/oP5GMiEMYErwgT,iv:lxJLIGzsWoBaCoutKzq3qNi+oJ8igOLXfv6n+K+zI1w=,tag:CfrKKHyxCTskON+RLdkCtg==,type:str]
|
|
||||||
sops:
|
|
||||||
kms: []
|
|
||||||
gcp_kms: []
|
|
||||||
azure_kv: []
|
|
||||||
hc_vault: []
|
|
||||||
age: []
|
|
||||||
lastmodified: "2024-07-27T01:17:25Z"
|
|
||||||
mac: ENC[AES256_GCM,data:V2LYucUmH22bNoUnvNlVF8MGHmhsTOQJ5iSW0IC8t/zTwUuHzCZDR6PP4Cy4PK3rDaiUYdsRH8s0byOwWoKlE6+Z0W7ZKpGKv9yKaUwqAl6/f71oHECZVYCupZhbAYxiQ3Yxec+NbS/OIwrmzWNXCLFc9yTAnOMK1ZFYOsrkn+Y=,iv:rSfegBdDF8MtMwDsiLq42lM+J5nUj/MC28srL86l0Kk=,tag:CsOIqs4lo8Yz/Ir3AVPuyQ==,type:str]
|
|
||||||
pgp:
|
|
||||||
- created_at: "2024-06-26T16:08:02Z"
|
|
||||||
enc: |
|
|
||||||
-----BEGIN PGP MESSAGE-----
|
|
||||||
|
|
||||||
hQIMAx5Q8cfEImn/AQ//eFlqcYujdwa9I6jgJGjG3xbfY5ongvORk/0w3sndiBwH
|
|
||||||
RjygleZU/00C+ZJYC3eN/wG9QYrhQ6eIfQ5dPKNVNG+to9OHrwGZNyp1SJyQZwgA
|
|
||||||
tWtLWemo4896tj4rDtIfJ1+dk8RYUVhwBXfSRzhNlsQRyTIhiyDWpyC26cRy/Yb1
|
|
||||||
D/8xxU4ChQWKFBfTXIxkLtGLcE5apa7qvQOQ/KjxUHKEmbSuyLVe/7vyR336xTek
|
|
||||||
XD5EJeOeRokZyv7jZx76iSBIErKGq46AFzgBk2S4zbDQfuairOp3evRxD8isvBSn
|
|
||||||
Wk34Ejjq8cUidPOmEfMZ6m4m+dfBxeHdF8Z0BfJqm8ciL7f96zMH+3wfnCcOwTs+
|
|
||||||
0oceYqZjXSStZuxy8fiao4xnvhSHQSXutnyHkW4fqRGHi+4RjjZ5DQsVgfzIjTZK
|
|
||||||
qBQ8oek5g5RshRF20B/ercG019Xu2EjsmvRS7Qo+UFqdkiAQss75dvhC5o1KQ9B7
|
|
||||||
XFZbiabApT6ugmGierXb9rd/JdlZXG4QvtvFpUeXiHMwTJxfmpVJmUd1OUDNy9kj
|
|
||||||
pE+C1szj2Bwm4DGEHLughtxI6lBJvnhK1T/RUH0Ay/JyZl9GnUiheRQgVkHJAQE/
|
|
||||||
BDKjaNA+cJ7lCEf1vEqOj7Sys3Ow4WmtEPexlkfWU/MtFKrB9iTx0Anhn1iYesPS
|
|
||||||
XgFAT1JjPn/QnX3UdYDaDdRjzU5RZ6QYGRZx1f4uOcYveT4/zY2yOVRo75JAYZY6
|
|
||||||
mOt8EqC4FbGMBnNtPCSW/O1fGz4zvQv1+enJLAWVOYCSwPmKobHDCBEuxtUN/Vw=
|
|
||||||
=5s0f
|
|
||||||
-----END PGP MESSAGE-----
|
|
||||||
fp: 5E03E50A10EF95AD7082F2331E50F1C7C42269FF
|
|
||||||
unencrypted_suffix: _unencrypted
|
|
||||||
version: 3.9.0
|
|
21
sops/groq.sops.yaml
Normal file
21
sops/groq.sops.yaml
Normal file
|
@ -0,0 +1,21 @@
|
||||||
|
{
|
||||||
|
"data": "ENC[AES256_GCM,data:G4t/rJUQ+D5kXKpa9Z6ho0j63PjcqAJszUHfTaj6mY99HO5Oq44cmoNTJF3B8T+jLe6L+tCmGjCprtxf9gn6rJH2J7yZNg+rM34AZnE=,iv:mUjUwD+JxfGdWQCU3EpkSEdAtJfeagK2qgWRe50aQb0=,tag:IfMBpStbF1WN8QED8ce4iA==,type:str]",
|
||||||
|
"sops": {
|
||||||
|
"kms": null,
|
||||||
|
"gcp_kms": null,
|
||||||
|
"azure_kv": null,
|
||||||
|
"hc_vault": null,
|
||||||
|
"age": null,
|
||||||
|
"lastmodified": "2025-03-21T22:05:23Z",
|
||||||
|
"mac": "ENC[AES256_GCM,data:bJhHUYvPCnW70WDrmMQlXYVl+YlUXISaq3Jl0+yUn0f58UTAw+tV/VRAhwQ4Idem2qh/O9O/z6agoRfAmcBsM33nFqltS19jDkfH8p69wSAqkpgFG+5/1uQuQuFdZPsDuBHWWVQPifk8B7ou9K+aZoBMtDN3+1KXKOfzy5ZE/6A=,iv:K1IDjtKZZbrkJ/d/KHLqv27fE8C+PkCWAO2UF5kvUKo=,tag:k4jvC0x0Aptr4iHrJNhB6A==,type:str]",
|
||||||
|
"pgp": [
|
||||||
|
{
|
||||||
|
"created_at": "2025-03-21T22:05:23Z",
|
||||||
|
"enc": "-----BEGIN PGP MESSAGE-----\n\nhQIMAx5Q8cfEImn/ARAAlnbMPu1hX3CoWRbVBL4WoLM/4YkI63hMyezqVVGX9H0i\nFt+nts0Y+quG9NcS0VBdEhR/fsCoJMIsDRf4KG6Hx0iW7KizOpOMhekhjoDKDms/\n4qAy5y5JxSLJCi2Q/6ATOsBMceK+tZyvsMEEcptsp+rd1i6Ij19+mWY3S6HCtIjT\nRbK54vMgOOmmoja6RZpYS+1jwEm3Elk6MfnKRBuZf1DYbcp3VL9jQdsViG9rB5gf\nJvvo8/nACa1Du4plgrwLEL70OFU0ZYq5Ag1J3e5G3wSD4Wfvynn/vw7Cc4mixmlj\nuZyPgsoLFxEYMGDoIupi/ztdWGTH7rFJxc0wFgVIj1bLKXJ0MRarR0tNkuTN2tFV\n7oZoRzEjU7yKP+OEXBn4EKNrAXzgDQK4x/Vrp111ucsZd6hlz0EhbUHSuXZDzkVX\nm7uKa/1/drjYNuOoaFOEAjAC8C0lYbatncihOjqsv/4QNCL0xW5Lhm7kn0CeUxnk\nSt5KNIejL8aTgtWTGuHmgDMIjVwcifIMi4TY11z9s1Qm8qWraTr83dufuMRfJ/S2\nn4WA0sRNLhPjaLrNX6TqhsBbbdDa7qZugVWiy1vFfO3s25WWMGjuee7PC3ROziTF\n0Z8PNYUliMCpkwnzrIXZLJGiSDa2pYgjdj7Oq8FFXKqWhlAROvMprdX5lBPX7h7S\nXgGfnc1LlfxuK1fZ5jIUgq5g089+gUaRh7w04a2hEfAdLjMwuy3Pp5M+q4dBDwj/\nrtMNLfsLx7KZvY5RH5t/kp9EO652ckxRp+6q+XFUf0vc/Be/H2FhioCIAakq3MI=\n=KHeg\n-----END PGP MESSAGE-----",
|
||||||
|
"fp": "ACB17A9DB7A680D0FED714E2A17ADF8EA1E9DB07"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"unencrypted_suffix": "_unencrypted",
|
||||||
|
"version": "3.9.2"
|
||||||
|
}
|
||||||
|
}
|
|
@ -1,39 +0,0 @@
|
||||||
email_user: ENC[AES256_GCM,data:N/WCt9AOEujAGYm1VNBNvxU=,iv:Yo9skhS/IcqwVztYGfltinNoIGB/wn0Pl3zwWw9MCK4=,tag:oSoVyy6shqaKj4/yCDBPJA==,type:str]
|
|
||||||
email_password: ENC[AES256_GCM,data:FYAJovKCynakjlbeL16dJUMfWO190wAk,iv:BMdolWsXVSmiBmQJ9Uzd5iFYWHUxsIE8+5v4mYqqIE8=,tag:fChsO7RRTCS5OEzQKwHIpg==,type:str]
|
|
||||||
imap_server: ENC[AES256_GCM,data:FgUcmb8GP0XKE81nrW0FNMoSWW35,iv:GrBb8Wb5lxy7PMpWXeug3NrNSrSWZC69t9y7MeZffko=,tag:hXHMiulPBeAlBYcz+Mr5YQ==,type:str]
|
|
||||||
imap_port: ENC[AES256_GCM,data:exfu,iv:jfi1/6afTMwyvUhwPF7nDgb7ftBEZuNIsjH5X6RMmyw=,tag:sYihTxL4dWDFAcpcGSu4QQ==,type:int]
|
|
||||||
imap_ssl: ENC[AES256_GCM,data:y2WVvQ==,iv:1tMskaB6wglPf1RsxytDbMcaIS+ArVZp69leZYBpKZQ=,tag:g+z0fu8NIBYStVuklJtrcg==,type:bool]
|
|
||||||
smtp_server: ENC[AES256_GCM,data:FbBQTXtJPS5DtL1W3Zrh9kkwFJ9Z,iv:rkOxOx3TDvAFfEu0KtK33lHVhrmfqMYbfSIjAhC7/q8=,tag:0arS3HPEghfoqtfdshzHig==,type:str]
|
|
||||||
smtp_port: ENC[AES256_GCM,data:OAQy,iv:r41gwA6EQANqQgV1rFeTFlbDhJic11n55dKLMR0Ea3s=,tag:FSVRfjPCWE6lxjA+HtjguQ==,type:int]
|
|
||||||
smtp_ssl: ENC[AES256_GCM,data:nIDVoA==,iv:bWszsK64EJz/HG75v17XWWEWlnWjbfZLjhwKlhL2rZw=,tag:0xApqNAA2sb3GvbiIgxvZw==,type:bool]
|
|
||||||
sops:
|
|
||||||
kms: []
|
|
||||||
gcp_kms: []
|
|
||||||
azure_kv: []
|
|
||||||
hc_vault: []
|
|
||||||
age: []
|
|
||||||
lastmodified: "2025-01-06T14:01:44Z"
|
|
||||||
mac: ENC[AES256_GCM,data:W6CcDi95USxKgQRabUuyoxdUH76Y9m/HVGsTZGp/64tAKsZ021CGofWxzq3oC9NrRR57u67vUs3simoJfMdxKWUldkL9dV54U2jIvXHiVUN9daPnYXzhb8f+JajES08fGymiMVsfKSCYVWsYZ4oPqbY3N2up9kyj1Iv67vh8HOQ=,iv:Yb2f+y+1EeE3IDNXOPqfTeFAXhcVzODpd0Jtnbzykrs=,tag:qHxP/ts1s5jpa1J2tg4n1g==,type:str]
|
|
||||||
pgp:
|
|
||||||
- created_at: "2024-06-26T16:08:02Z"
|
|
||||||
enc: |
|
|
||||||
-----BEGIN PGP MESSAGE-----
|
|
||||||
|
|
||||||
hQIMAx5Q8cfEImn/AQ//eFlqcYujdwa9I6jgJGjG3xbfY5ongvORk/0w3sndiBwH
|
|
||||||
RjygleZU/00C+ZJYC3eN/wG9QYrhQ6eIfQ5dPKNVNG+to9OHrwGZNyp1SJyQZwgA
|
|
||||||
tWtLWemo4896tj4rDtIfJ1+dk8RYUVhwBXfSRzhNlsQRyTIhiyDWpyC26cRy/Yb1
|
|
||||||
D/8xxU4ChQWKFBfTXIxkLtGLcE5apa7qvQOQ/KjxUHKEmbSuyLVe/7vyR336xTek
|
|
||||||
XD5EJeOeRokZyv7jZx76iSBIErKGq46AFzgBk2S4zbDQfuairOp3evRxD8isvBSn
|
|
||||||
Wk34Ejjq8cUidPOmEfMZ6m4m+dfBxeHdF8Z0BfJqm8ciL7f96zMH+3wfnCcOwTs+
|
|
||||||
0oceYqZjXSStZuxy8fiao4xnvhSHQSXutnyHkW4fqRGHi+4RjjZ5DQsVgfzIjTZK
|
|
||||||
qBQ8oek5g5RshRF20B/ercG019Xu2EjsmvRS7Qo+UFqdkiAQss75dvhC5o1KQ9B7
|
|
||||||
XFZbiabApT6ugmGierXb9rd/JdlZXG4QvtvFpUeXiHMwTJxfmpVJmUd1OUDNy9kj
|
|
||||||
pE+C1szj2Bwm4DGEHLughtxI6lBJvnhK1T/RUH0Ay/JyZl9GnUiheRQgVkHJAQE/
|
|
||||||
BDKjaNA+cJ7lCEf1vEqOj7Sys3Ow4WmtEPexlkfWU/MtFKrB9iTx0Anhn1iYesPS
|
|
||||||
XgFAT1JjPn/QnX3UdYDaDdRjzU5RZ6QYGRZx1f4uOcYveT4/zY2yOVRo75JAYZY6
|
|
||||||
mOt8EqC4FbGMBnNtPCSW/O1fGz4zvQv1+enJLAWVOYCSwPmKobHDCBEuxtUN/Vw=
|
|
||||||
=5s0f
|
|
||||||
-----END PGP MESSAGE-----
|
|
||||||
fp: 5E03E50A10EF95AD7082F2331E50F1C7C42269FF
|
|
||||||
unencrypted_suffix: _unencrypted
|
|
||||||
version: 3.9.0
|
|
|
@ -1,39 +0,0 @@
|
||||||
email_user: ENC[AES256_GCM,data:NVoOIuEDMzZjzrr0EZNZfPw=,iv:bylMgoFkwH1oEMPujvrq/Vc4RCIeOZlJxOW+rBU7GuQ=,tag:iFv++8qiF+baIIIeuW7lGQ==,type:str]
|
|
||||||
email_password: ENC[AES256_GCM,data:ZNrTYejjgEETe9FTldy2qH3TYaIblVgc,iv:ULaupM9Gqp3UcFkxU1Fu7ZQGAzxsu2G/lfyTT7sd5Ng=,tag:idlYHSI//JyS1IYUpr+LBw==,type:str]
|
|
||||||
imap_server: ENC[AES256_GCM,data:FgUcmb8GP0XKE81nrW0FNMoSWW35,iv:GrBb8Wb5lxy7PMpWXeug3NrNSrSWZC69t9y7MeZffko=,tag:hXHMiulPBeAlBYcz+Mr5YQ==,type:str]
|
|
||||||
imap_port: ENC[AES256_GCM,data:exfu,iv:jfi1/6afTMwyvUhwPF7nDgb7ftBEZuNIsjH5X6RMmyw=,tag:sYihTxL4dWDFAcpcGSu4QQ==,type:int]
|
|
||||||
imap_ssl: ENC[AES256_GCM,data:y2WVvQ==,iv:1tMskaB6wglPf1RsxytDbMcaIS+ArVZp69leZYBpKZQ=,tag:g+z0fu8NIBYStVuklJtrcg==,type:bool]
|
|
||||||
smtp_server: ENC[AES256_GCM,data:FbBQTXtJPS5DtL1W3Zrh9kkwFJ9Z,iv:rkOxOx3TDvAFfEu0KtK33lHVhrmfqMYbfSIjAhC7/q8=,tag:0arS3HPEghfoqtfdshzHig==,type:str]
|
|
||||||
smtp_port: ENC[AES256_GCM,data:OAQy,iv:r41gwA6EQANqQgV1rFeTFlbDhJic11n55dKLMR0Ea3s=,tag:FSVRfjPCWE6lxjA+HtjguQ==,type:int]
|
|
||||||
smtp_ssl: ENC[AES256_GCM,data:nIDVoA==,iv:bWszsK64EJz/HG75v17XWWEWlnWjbfZLjhwKlhL2rZw=,tag:0xApqNAA2sb3GvbiIgxvZw==,type:bool]
|
|
||||||
sops:
|
|
||||||
kms: []
|
|
||||||
gcp_kms: []
|
|
||||||
azure_kv: []
|
|
||||||
hc_vault: []
|
|
||||||
age: []
|
|
||||||
lastmodified: "2025-01-06T14:28:45Z"
|
|
||||||
mac: ENC[AES256_GCM,data:IUIIi3UACwwqHNqWFApgJMRxiCG5WBsjZ98OAMCrpaPXwcf9sCa/K9MGk6sNZi2QSX4WP1L6dYszBEWnCCbkJDiAbHyeKRy9qFUdUc9N2aD6NscyFZyRbUkuAf4SZCEMaNP9k1ekk1NViOfp3pQBnefLQYOSv2J8AJX8ujTZ6hA=,iv:AXXJ1STjHSnEU3ILv2wh5gO6+xxRCDXCvNYpRbXg/bI=,tag:cXO4KhAs47rz0rDqGPA70Q==,type:str]
|
|
||||||
pgp:
|
|
||||||
- created_at: "2024-06-26T16:08:02Z"
|
|
||||||
enc: |
|
|
||||||
-----BEGIN PGP MESSAGE-----
|
|
||||||
|
|
||||||
hQIMAx5Q8cfEImn/AQ//eFlqcYujdwa9I6jgJGjG3xbfY5ongvORk/0w3sndiBwH
|
|
||||||
RjygleZU/00C+ZJYC3eN/wG9QYrhQ6eIfQ5dPKNVNG+to9OHrwGZNyp1SJyQZwgA
|
|
||||||
tWtLWemo4896tj4rDtIfJ1+dk8RYUVhwBXfSRzhNlsQRyTIhiyDWpyC26cRy/Yb1
|
|
||||||
D/8xxU4ChQWKFBfTXIxkLtGLcE5apa7qvQOQ/KjxUHKEmbSuyLVe/7vyR336xTek
|
|
||||||
XD5EJeOeRokZyv7jZx76iSBIErKGq46AFzgBk2S4zbDQfuairOp3evRxD8isvBSn
|
|
||||||
Wk34Ejjq8cUidPOmEfMZ6m4m+dfBxeHdF8Z0BfJqm8ciL7f96zMH+3wfnCcOwTs+
|
|
||||||
0oceYqZjXSStZuxy8fiao4xnvhSHQSXutnyHkW4fqRGHi+4RjjZ5DQsVgfzIjTZK
|
|
||||||
qBQ8oek5g5RshRF20B/ercG019Xu2EjsmvRS7Qo+UFqdkiAQss75dvhC5o1KQ9B7
|
|
||||||
XFZbiabApT6ugmGierXb9rd/JdlZXG4QvtvFpUeXiHMwTJxfmpVJmUd1OUDNy9kj
|
|
||||||
pE+C1szj2Bwm4DGEHLughtxI6lBJvnhK1T/RUH0Ay/JyZl9GnUiheRQgVkHJAQE/
|
|
||||||
BDKjaNA+cJ7lCEf1vEqOj7Sys3Ow4WmtEPexlkfWU/MtFKrB9iTx0Anhn1iYesPS
|
|
||||||
XgFAT1JjPn/QnX3UdYDaDdRjzU5RZ6QYGRZx1f4uOcYveT4/zY2yOVRo75JAYZY6
|
|
||||||
mOt8EqC4FbGMBnNtPCSW/O1fGz4zvQv1+enJLAWVOYCSwPmKobHDCBEuxtUN/Vw=
|
|
||||||
=5s0f
|
|
||||||
-----END PGP MESSAGE-----
|
|
||||||
fp: 5E03E50A10EF95AD7082F2331E50F1C7C42269FF
|
|
||||||
unencrypted_suffix: _unencrypted
|
|
||||||
version: 3.9.0
|
|
|
@ -1,39 +0,0 @@
|
||||||
email_user: ENC[AES256_GCM,data:Shu1ND3+QxeOjuYTXpSqZDo=,iv:UWFX7n3IhrKmV+c2rJc0LJfbuw7j/hj3zTnutKlW1GU=,tag:xF6etHWv+DB4k/NxfCWfCw==,type:str]
|
|
||||||
email_password: ENC[AES256_GCM,data:OVGlxUU2PmVLg2uhaE6dSyS3tDVWZy9U,iv:j5TPbR7KYT9kRiux8I7tYXAqX1LbLIm90TgR0F3TxIM=,tag:vYjdfWuBoeQRxOwMT3Y0pA==,type:str]
|
|
||||||
imap_server: ENC[AES256_GCM,data:FgUcmb8GP0XKE81nrW0FNMoSWW35,iv:GrBb8Wb5lxy7PMpWXeug3NrNSrSWZC69t9y7MeZffko=,tag:hXHMiulPBeAlBYcz+Mr5YQ==,type:str]
|
|
||||||
imap_port: ENC[AES256_GCM,data:exfu,iv:jfi1/6afTMwyvUhwPF7nDgb7ftBEZuNIsjH5X6RMmyw=,tag:sYihTxL4dWDFAcpcGSu4QQ==,type:int]
|
|
||||||
imap_ssl: ENC[AES256_GCM,data:y2WVvQ==,iv:1tMskaB6wglPf1RsxytDbMcaIS+ArVZp69leZYBpKZQ=,tag:g+z0fu8NIBYStVuklJtrcg==,type:bool]
|
|
||||||
smtp_server: ENC[AES256_GCM,data:FbBQTXtJPS5DtL1W3Zrh9kkwFJ9Z,iv:rkOxOx3TDvAFfEu0KtK33lHVhrmfqMYbfSIjAhC7/q8=,tag:0arS3HPEghfoqtfdshzHig==,type:str]
|
|
||||||
smtp_port: ENC[AES256_GCM,data:OAQy,iv:r41gwA6EQANqQgV1rFeTFlbDhJic11n55dKLMR0Ea3s=,tag:FSVRfjPCWE6lxjA+HtjguQ==,type:int]
|
|
||||||
smtp_ssl: ENC[AES256_GCM,data:nIDVoA==,iv:bWszsK64EJz/HG75v17XWWEWlnWjbfZLjhwKlhL2rZw=,tag:0xApqNAA2sb3GvbiIgxvZw==,type:bool]
|
|
||||||
sops:
|
|
||||||
kms: []
|
|
||||||
gcp_kms: []
|
|
||||||
azure_kv: []
|
|
||||||
hc_vault: []
|
|
||||||
age: []
|
|
||||||
lastmodified: "2025-01-06T13:56:42Z"
|
|
||||||
mac: ENC[AES256_GCM,data:sfkJr/26JA+xPdzQP6yNz2qkn2kYJLSHu8Kb2lLbKZCu0oUOzMtfK65wfHm5a70WuvIKxCJ0zKSZI4FOKV0XEszetUvrCLY8Uw8u2/qVTV7zVqD4hjTPSJoxA+EEuuc8jZ8V/ntSAxo88M30/ZbUJX8b60q9XRPzfcCeq9XjX+E=,iv:BcYVr5Qzp6XAUz4RbGqe+IJqNOOvCkC8SxsrMXZj/ok=,tag:kYjyNLAG/1XHw94DrYETYA==,type:str]
|
|
||||||
pgp:
|
|
||||||
- created_at: "2024-06-26T16:08:02Z"
|
|
||||||
enc: |
|
|
||||||
-----BEGIN PGP MESSAGE-----
|
|
||||||
|
|
||||||
hQIMAx5Q8cfEImn/AQ//eFlqcYujdwa9I6jgJGjG3xbfY5ongvORk/0w3sndiBwH
|
|
||||||
RjygleZU/00C+ZJYC3eN/wG9QYrhQ6eIfQ5dPKNVNG+to9OHrwGZNyp1SJyQZwgA
|
|
||||||
tWtLWemo4896tj4rDtIfJ1+dk8RYUVhwBXfSRzhNlsQRyTIhiyDWpyC26cRy/Yb1
|
|
||||||
D/8xxU4ChQWKFBfTXIxkLtGLcE5apa7qvQOQ/KjxUHKEmbSuyLVe/7vyR336xTek
|
|
||||||
XD5EJeOeRokZyv7jZx76iSBIErKGq46AFzgBk2S4zbDQfuairOp3evRxD8isvBSn
|
|
||||||
Wk34Ejjq8cUidPOmEfMZ6m4m+dfBxeHdF8Z0BfJqm8ciL7f96zMH+3wfnCcOwTs+
|
|
||||||
0oceYqZjXSStZuxy8fiao4xnvhSHQSXutnyHkW4fqRGHi+4RjjZ5DQsVgfzIjTZK
|
|
||||||
qBQ8oek5g5RshRF20B/ercG019Xu2EjsmvRS7Qo+UFqdkiAQss75dvhC5o1KQ9B7
|
|
||||||
XFZbiabApT6ugmGierXb9rd/JdlZXG4QvtvFpUeXiHMwTJxfmpVJmUd1OUDNy9kj
|
|
||||||
pE+C1szj2Bwm4DGEHLughtxI6lBJvnhK1T/RUH0Ay/JyZl9GnUiheRQgVkHJAQE/
|
|
||||||
BDKjaNA+cJ7lCEf1vEqOj7Sys3Ow4WmtEPexlkfWU/MtFKrB9iTx0Anhn1iYesPS
|
|
||||||
XgFAT1JjPn/QnX3UdYDaDdRjzU5RZ6QYGRZx1f4uOcYveT4/zY2yOVRo75JAYZY6
|
|
||||||
mOt8EqC4FbGMBnNtPCSW/O1fGz4zvQv1+enJLAWVOYCSwPmKobHDCBEuxtUN/Vw=
|
|
||||||
=5s0f
|
|
||||||
-----END PGP MESSAGE-----
|
|
||||||
fp: 5E03E50A10EF95AD7082F2331E50F1C7C42269FF
|
|
||||||
unencrypted_suffix: _unencrypted
|
|
||||||
version: 3.9.0
|
|
|
@ -1,39 +0,0 @@
|
||||||
email_user: ENC[AES256_GCM,data:x7Ae2seQ952FvGjGdOg=,iv:qPsx2hR2ChcrY3qB++qn3Ddwp/rlvp43PiyzH9lKKUM=,tag:aOUKQUzNOddofT3w/hkEJg==,type:str]
|
|
||||||
email_password: ENC[AES256_GCM,data:5uLanDzDAFLmu/LodFJNVc9mgt63rOmM,iv:d3t7zOJyxMXgAydZteos59VUShz+pi7lpDECg+zB644=,tag:pLVc00z+elvXC0paMYVZng==,type:str]
|
|
||||||
imap_server: ENC[AES256_GCM,data:FgUcmb8GP0XKE81nrW0FNMoSWW35,iv:GrBb8Wb5lxy7PMpWXeug3NrNSrSWZC69t9y7MeZffko=,tag:hXHMiulPBeAlBYcz+Mr5YQ==,type:str]
|
|
||||||
imap_port: ENC[AES256_GCM,data:exfu,iv:jfi1/6afTMwyvUhwPF7nDgb7ftBEZuNIsjH5X6RMmyw=,tag:sYihTxL4dWDFAcpcGSu4QQ==,type:int]
|
|
||||||
imap_ssl: ENC[AES256_GCM,data:y2WVvQ==,iv:1tMskaB6wglPf1RsxytDbMcaIS+ArVZp69leZYBpKZQ=,tag:g+z0fu8NIBYStVuklJtrcg==,type:bool]
|
|
||||||
smtp_server: ENC[AES256_GCM,data:FbBQTXtJPS5DtL1W3Zrh9kkwFJ9Z,iv:rkOxOx3TDvAFfEu0KtK33lHVhrmfqMYbfSIjAhC7/q8=,tag:0arS3HPEghfoqtfdshzHig==,type:str]
|
|
||||||
smtp_port: ENC[AES256_GCM,data:OAQy,iv:r41gwA6EQANqQgV1rFeTFlbDhJic11n55dKLMR0Ea3s=,tag:FSVRfjPCWE6lxjA+HtjguQ==,type:int]
|
|
||||||
smtp_ssl: ENC[AES256_GCM,data:nIDVoA==,iv:bWszsK64EJz/HG75v17XWWEWlnWjbfZLjhwKlhL2rZw=,tag:0xApqNAA2sb3GvbiIgxvZw==,type:bool]
|
|
||||||
sops:
|
|
||||||
kms: []
|
|
||||||
gcp_kms: []
|
|
||||||
azure_kv: []
|
|
||||||
hc_vault: []
|
|
||||||
age: []
|
|
||||||
lastmodified: "2025-01-06T14:19:10Z"
|
|
||||||
mac: ENC[AES256_GCM,data:lPv22fULp6zfni/Icq2VyoExX3gHL9n+LQldDgC7ew22NmVP0SxmSj19NBDQz4xONF/5DykuxYqCLsrOCeMJC0ax6g9OxkcA05bL6gigEowAoVsbULLeGU9oSRRAo6XeZjHFmF+iJWKxrvH9y6AlDJaHAj+XnTNeh7ArfQt2dy0=,iv:NNRUM2NWECcbAP3X3OuN+Oe70BJx2j7rimBYHk3oWRM=,tag:IXLjnqj2rKVbBmTdYnNQnA==,type:str]
|
|
||||||
pgp:
|
|
||||||
- created_at: "2024-06-26T16:08:02Z"
|
|
||||||
enc: |
|
|
||||||
-----BEGIN PGP MESSAGE-----
|
|
||||||
|
|
||||||
hQIMAx5Q8cfEImn/AQ//eFlqcYujdwa9I6jgJGjG3xbfY5ongvORk/0w3sndiBwH
|
|
||||||
RjygleZU/00C+ZJYC3eN/wG9QYrhQ6eIfQ5dPKNVNG+to9OHrwGZNyp1SJyQZwgA
|
|
||||||
tWtLWemo4896tj4rDtIfJ1+dk8RYUVhwBXfSRzhNlsQRyTIhiyDWpyC26cRy/Yb1
|
|
||||||
D/8xxU4ChQWKFBfTXIxkLtGLcE5apa7qvQOQ/KjxUHKEmbSuyLVe/7vyR336xTek
|
|
||||||
XD5EJeOeRokZyv7jZx76iSBIErKGq46AFzgBk2S4zbDQfuairOp3evRxD8isvBSn
|
|
||||||
Wk34Ejjq8cUidPOmEfMZ6m4m+dfBxeHdF8Z0BfJqm8ciL7f96zMH+3wfnCcOwTs+
|
|
||||||
0oceYqZjXSStZuxy8fiao4xnvhSHQSXutnyHkW4fqRGHi+4RjjZ5DQsVgfzIjTZK
|
|
||||||
qBQ8oek5g5RshRF20B/ercG019Xu2EjsmvRS7Qo+UFqdkiAQss75dvhC5o1KQ9B7
|
|
||||||
XFZbiabApT6ugmGierXb9rd/JdlZXG4QvtvFpUeXiHMwTJxfmpVJmUd1OUDNy9kj
|
|
||||||
pE+C1szj2Bwm4DGEHLughtxI6lBJvnhK1T/RUH0Ay/JyZl9GnUiheRQgVkHJAQE/
|
|
||||||
BDKjaNA+cJ7lCEf1vEqOj7Sys3Ow4WmtEPexlkfWU/MtFKrB9iTx0Anhn1iYesPS
|
|
||||||
XgFAT1JjPn/QnX3UdYDaDdRjzU5RZ6QYGRZx1f4uOcYveT4/zY2yOVRo75JAYZY6
|
|
||||||
mOt8EqC4FbGMBnNtPCSW/O1fGz4zvQv1+enJLAWVOYCSwPmKobHDCBEuxtUN/Vw=
|
|
||||||
=5s0f
|
|
||||||
-----END PGP MESSAGE-----
|
|
||||||
fp: 5E03E50A10EF95AD7082F2331E50F1C7C42269FF
|
|
||||||
unencrypted_suffix: _unencrypted
|
|
||||||
version: 3.9.0
|
|
Loading…
Reference in a new issue