Seguridad por diseño
Seguridad
Última actualización: 27 de abril de 2026
Cifrado
- En tránsito: TLS 1.3 obligatorio en todos los endpoints (web, API, base de datos). HSTS activo.
- En reposo: Cloudflare R2 cifra cada objeto con AES-256 server-side. PostgreSQL en disco cifrado a nivel sistema.
- Subida directa: el audio sube de tu navegador a R2 vía URL presignada. Nuestro API nunca toca el binario — reduce superficie de ataque y latencia.
Identidad y autenticación
- Identidad federada con Keycloak 26 en auth.codelabs.studio (servidor propio). Soporta MFA, login con Google/Microsoft.
- Tokens JWT firmados con claves rotables. Validación contra JWKS público de Keycloak.
- Sesiones renovables con refresh tokens. Nunca almacenamos contraseñas — Keycloak es el único custodio.
Infraestructura europea, soberanía del dato
- Servidor dedicado en Europa bajo nuestra gestión exclusiva. Aloja la base de datos PostgreSQL, la cola de trabajos y el motor de embeddings semánticos. NO usamos servicios cloud de BD: control total sobre dónde viven tus datos.
- Embeddings locales con bge-m3 — los textos de tus transcripciones jamás salen del servidor europeo para generar los vectores de búsqueda semántica.
- Aplicación en Docker Swarm con Traefik + Let's Encrypt automático. Despliegue gestionado vía Dokploy.
- Cola de trabajos asíncronos en Redis (BullMQ). Reintentos con backoff exponencial e idempotencia por nota.
Audit log de consents
Cada vez que aceptas un consentimiento registramos un row append-only en la tabla consents con: timestamp UTC, IP, user-agent, versión del texto legal y el hash del documento aceptado.
No actualizamos rows: cuando revocas un consent, insertamos una fila NUEVA con revoked_at set. Esto permite reconstruir el estado en cualquier instante histórico.
Gestión de vulnerabilidades
- Sentry monitoriza cada error en producción. Filtros que evitan enviar contenido sensible.
- Dependencias auditadas con
pnpm auditen CI; CVEs altos bloquean merge. - Política de divulgación responsable: [email protected]. Respondemos en menos de 48 horas.