4.2. Flujo de Datos y Privacidad (Carga Útil)
Uno de los pilares de esta arquitectura es la privacidad por diseño. Es imperativo destacar que los archivos de configuración del usuario (que pueden contener tokens, contraseñas o datos sensibles) nunca abandonan la máquina local.
Cuando el cliente local encuentra un archivo desconocido y necesita la ayuda del servidor Java o de la IA, genera un Payload (JSON). Esta carga útil contiene únicamente metadatos despersonalizados:
-
Hash de la Ruta (Identificador Principal): Un hash
criptográfico (ej. SHA-256) de la ruta relativa normalizada (ej.
$HOME/.config/app_desconocida/config). Esto permite al servidor realizar una comprobación directa e instantánea en su base de datos para verificar si ese archivo ya ha sido registrado y clasificado previamente gracias a las peticiones de otros usuarios. - Firma Estructural y Aprendizaje Continuo: Si el hash no existe (es un archivo completamente nuevo para el sistema), el cliente adjunta una pequeña muestra estructural (nombres de variables o formato, omitiendo estrictamente los valores reales). El servidor utiliza esta firma para consultar al LLM. Una vez la IA identifica la aplicación, el servidor almacena esta nueva relación (Hash -> Aplicación) en su base de datos y devuelve la respuesta. De esta forma, aunque el servidor inicie con un conocimiento mínimo, las iteraciones de la comunidad alimentan y expanden masivamente la base de datos global para futuras peticiones.
A continuación se muestra un ejemplo del "contrato de datos" o respuesta estructurada que el servidor Java devuelve al cliente Python tras clasificar exitosamente un directorio oculto:
{
"1password_cli": {
"app_name": "1Password CLI",
"category": "Security",
"subcategory": "Password Manager",
"files_info_json": [
{
"path": ".op",
"type": "folder"
}
],
"packages_json": [
"1password-cli"
]
}
}