Ir al contenido

Privacidad y seguridad de datos

La privacidad es un valor fundamental de DevLingo. Explicamos en detalle como fluyen los datos, donde se almacenan y quien puede acceder a ellos.

Escenario 1: Consulta individual (sin sincronizacion en la nube)

Sección titulada «Escenario 1: Consulta individual (sin sincronizacion en la nube)»
Paso 1: Usted selecciona "idempotent" en Slack
Paso 2: Presiona ⌘⇧D
Paso 3: La aplicacion Mac verifica la base de datos local y el cache
Paso 4: Si no hay resultado, envia la consulta a Cloudflare Workers (cifrado HTTPS)
La solicitud incluye:
• Texto seleccionado: "idempotent"
• Contexto (texto circundante)
• Identificador de la aplicacion (Slack)
• Modo: Word
Paso 5: Workers llama a la Claude API
Paso 6: Claude devuelve un resultado JSON estructurado
Paso 7: La aplicacion Mac recibe el resultado
Paso 8: A menos que el usuario haga clic en "Guardar", el resultado no se almacena
(los datos desaparecen al cerrar el panel flotante)

Escenario 2: Guardar en el cuaderno de palabras

Sección titulada «Escenario 2: Guardar en el cuaderno de palabras»
Pasos 1-7: Igual que arriba
Paso 8: El usuario hace clic en "Save to Word Book"
Paso 9: Los datos se almacenan en SwiftData local
(completamente en el dispositivo, sin ir a la nube)
Paso 10: Sincronizacion en la nube desactivada → Listo (solo local)
Sincronizacion en la nube activada → Paso 11
Paso 11: El dispositivo del usuario sincroniza con Cloudflare D1
(base de datos privada del usuario, con autenticacion)

Importante: Cualquier texto que DevLingo envie a traves de la Claude API no se usara para entrenar a Claude ni a ningun otro modelo. Seguimos la politica predeterminada de Anthropic.

✓ Su texto es de uso unico
✓ Claude lo descarta inmediatamente despues de procesarlo (no lo almacena)
✓ No se usa para ninguna forma de mineria de datos

:::note Metodo de verificacion Todas las solicitudes de la Claude API de Anthropic se marcan con “user=”, indicando “estos son datos de usuario final y no deben usarse para entrenamiento”. :::

El almacenamiento local tiene la sincronizacion en la nube desactivada por defecto

Sección titulada «El almacenamiento local tiene la sincronizacion en la nube desactivada por defecto»

El cuaderno de palabras (Word Book) se guarda por defecto solo en su Mac, usando SwiftData:

~/Library/Containers/com.devglish.com/Data/
└── default.store/
└── word_entries.db (SQLite local)

Esta base de datos es privada del dispositivo; solo la aplicacion DevLingo puede acceder a ella.

Si desea sincronizar su cuaderno de palabras en varias Macs, puede elegir explicitamente habilitar la sincronizacion en la nube:

Settings → iCloud Sync → Toggle ON

Una vez habilitada, el cuaderno de palabras se cifra y se carga a Cloudflare D1:

Cifrado: Cifrado del lado del cliente (Curve25519) → Almacenamiento en servidor
Autenticacion: Token JWT del usuario (token de seguridad)
Control de acceso: Cada usuario solo puede acceder a sus propios datos
Aislamiento: Aislamiento a nivel de fila de la base de datos, previniendo acceso entre usuarios

:::caution Transferencia de datos Despues de habilitar la sincronizacion en la nube, si cancela su suscripcion o elimina su cuenta, los datos en la nube se eliminaran automaticamente despues de 30 dias. Los datos locales en SwiftData no se ven afectados y permanecen en su dispositivo. :::

DevLingo sigue estrictamente el principio de “recopilacion minima”:

✗ Contenido de codigo (aunque puede usarlo en Xcode)
✗ Historial completo de navegacion o uso de aplicaciones
✗ Registros de chat o contenido de correo electronico
✗ Su historial de Git
✗ Otros archivos privados en su dispositivo
✓ El texto que usted selecciona para consultar
✓ 50 caracteres de contexto antes y despues (solo para comprension de la IA)
✓ El Bundle Identifier de la aplicacion actual (ayuda a la IA a ajustar el estilo)
✓ Su configuracion de idioma nativo (para consejos de interferencia L1)
✓ Contenido del cuaderno de palabras (solo cuando habilita explicitamente la sincronizacion en la nube)

El backend de DevLingo (Cloudflare Workers) posee la clave de la Claude API. Su aplicacion Mac no necesita exponer directamente la clave, sino que envia todas las solicitudes API a traves del proxy de Workers.

Mac App Workers (edge)
↓ (HTTPS) ↓
│── Bearer: user_jwt ────────→ │
│ │
│ (validez de 1 hora) │ (Claude API Key)
│ │
│← Structured Response ←────── Claude API

Beneficios:

  • La clave no se almacena localmente (no puede filtrarse)
  • Todas las llamadas API se procesan en el borde confiable de Cloudflare
  • Incluso si su Mac es comprometida, la clave esta segura

Al iniciar sesion, el usuario obtiene un token JWT de corta duracion (1 hora de validez):

Algoritmo: HS256 (HMAC SHA-256)
Clave de firma: Cloudflare Secret (no almacenado localmente)
Ubicacion de almacenamiento: macOS Keychain (cifrado del sistema)
Renovacion: Se renueva automaticamente cuando el token esta por expirar

Nivel de seguridad del Keychain:

Vinculado con la clave de desbloqueo de iCloud del Mac
El sistema solicita confirmacion del usuario en cada acceso
Incluso si alguien roba su disco duro, no puede leerlo

Toda la comunicacion desde Mac a Cloudflare Workers esta cifrada con HTTPS:

TLS 1.3 (protocolo mas reciente)
Certificado: LetsEncrypt (renovacion automatica)
Secreto perfecto hacia adelante (Perfect Forward Secrecy)

El sistema de consulta por capas de DevLingo asegura que pueda usar la aplicacion sin conexion:

En modo avion, seleccione "idempotent"
Consulta la base de datos local de terminos tecnicos (85+ terminos) → Exito!
El resultado se muestra inmediatamente, sin necesidad de red

Solo las siguientes situaciones requieren red:

✓ Consultar nuevo vocabulario no encontrado en la base local
✓ Sincronizar el cuaderno de palabras a la nube
✓ Obtener el cache de audio TTS mas reciente

El otro 95% de las consultas pueden completarse totalmente sin conexion.

Si decide eliminar su cuenta de DevLingo:

Paso 1: Configuracion → Cuenta → Delete Account
Paso 2: El sistema le pedira que confirme nuevamente
Paso 3: Cloudflare elimina:
• Cuenta de usuario
• Cuaderno de palabras en la nube
• Historial de inicio de sesion
• Registros de uso de API
(eliminacion completa despues de 30 dias)
Paso 4: Los datos locales no se ven afectados
(permanecen en su Mac, puede eliminarlos usted mismo)

:::caution Permanencia de datos Una vez eliminada la cuenta, los datos en la nube no pueden recuperarse. Pero puede exportar su cuaderno de palabras local como CSV para guardarlo permanentemente. :::

DevLingo cumple con las siguientes regulaciones:

RegionRegulacionEstado
Union EuropeaGDPR (Reglamento General de Proteccion de Datos)Cumple
Estados UnidosCCPA / CPRACumple
LatinoamericaLeyes locales de proteccion de datosCumple; almacenamiento local; sincronizacion en la nube usa Cloudflare (opcional)

:::note Oficial de proteccion de datos Si tiene preguntas sobre privacidad, puede contactar a [email protected]. Respondemos en 24 horas. :::

El equipo de ingenieria de DevLingo realiza periodicamente:

• Auditorias de seguridad de codigo (OWASP Top 10)
• Escaneo de dependencias (npm audit, Xcode security)
• Pruebas de penetracion (terceros)
• Auditorias de acceso a bases de datos (quien accedio a que)

Los informes de auditoria se publican trimestralmente de forma transparente para los usuarios.


Resumen: El diseno de privacidad de DevLingo sigue el principio de “confianza cero” — asume que la red esta siendo monitoreada, asume que el dispositivo esta comprometido, pero a traves de cifrado, autenticacion e recopilacion minima, asegura que sus datos esten siempre bajo su control.