PRIVACIDAD AL SUBIR UNA FACTURA (IMPORTANTE)
Aclaración técnica del funcionamiento
Hola,
Entiendo perfectamente la desconfianza a la hora de arrastrar un documento tan sensible como una
factura de la luz a una web “desconocida”.
Como desarrollador de la herramienta, me gustaría aclarar técnicamente cómo funciona la opción de “subir factura”, porque en realidad
NO hay subida.
La web está diseñada con una arquitectura
Client-Side Only (solo cliente). Esto es lo que ocurre cuando arrastráis un PDF:
1) Procesamiento local en memoria (Zero-Upload)
- El archivo nunca sale de vuestro dispositivo.
- No existe un servidor backend recibiendo el fichero (la web está alojada en GitHub Pages, que es estático).
- Todo el proceso ocurre dentro del navegador usando la API FileReader de HTML5.
- El PDF se carga en un ArrayBuffer dentro de la RAM de la pestaña y se libera al cerrar/recargar la web.
2) Lectura del PDF con librerías JS/WASM (sin servidor)
Para extraer los datos del PDF sin enviar nada fuera utilizo:
- PDF.js (la misma librería que usa Firefox para visualizar PDFs)
- Tesseract.js en WebAssembly para OCR si el PDF es una imagen escaneada
Todo esto se ejecuta
en vuestro navegador (PC/móvil), no en servidores externos.
3) “Kill Switch” de analítica mientras se procesa la factura
Este detalle no se ve a simple vista, pero
está implementado en el código:
La web usa
GoatCounter para estadísticas anónimas de visita, pero el tracking se bloquea automáticamente en el momento en el que se abre el asistente de “importar factura”.
Se activa un flag interno:
Código:
window.__LF_PRIVACY_MODE = true
Mientras ese modo está activo:
- la función de analítica (trackEvent) hace return inmediato
- no se envía absolutamente ningún metadato relacionado con la factura
- ni el PDF ni su contenido se transmiten ni se registran
4) Auditoría / cómo comprobarlo vosotros mismos
Podéis verificarlo de forma independiente de dos maneras:
- Red: DevTools (F12) → pestaña Network.
Veréis que al procesar la factura no hay ninguna petición POST/PUT con el archivo ni llamadas externas para “procesarlo”.
- Código: el proyecto es open-source.
La lógica del bloqueo de tracking está en js/tracking.js y el parseo local en js/factura.js.
En resumen: vuestra factura
no viaja por internet. Se procesa igual que si abrierais el PDF con el lector del ordenador, con la diferencia de que el navegador extrae automáticamente los valores necesarios para el cálculo.
Un saludo.