Aislamiento que puedes verificar
La memoria de tu agente contiene tus decisiones, tu arquitectura, tus trade-offs. Nunca debería filtrarse a otro tenant — y deberías poder demostrarlo.
Aprendimos aislamiento de datos por las malas
En mayo de 2026, descubrimos que un fallback de proyecto por defecto en nuestra ruta de inyección de contexto causó que
6,500+ observaciones de 5 proyectos diferentes
compartieran un único namespace llamado "default". Cuando un plugin no podía derivar
un nombre de proyecto del directorio de trabajo actual, recurría silenciosamente a este scope genérico — mezclando
observaciones de codebases no relacionados en un pool compartido.
Este no era un riesgo teórico. Era data real de proyectos reales — decisiones arquitectónicas, rastros de debugging, resúmenes de sesión — todo consultable por cualquier tenant cuyo plugin alcanzara la misma ruta de fallback.
Lo que hicimos
- 1 Eliminamos permanentemente el fallback. El nombre de proyecto
"default"ahora está prohibido en las rutas de inyección de contexto. Cuando un plugin no puede derivar un nombre de proyecto, devuelve cero resultados — no una fuga de otro proyecto. - 2 Retrofillamos toda la data afectada. Cada observación previamente almacenada bajo
"default"fue migrada a su namespace de proyecto correcto — tanto en la base de datos primaria como en la réplica cloud secundaria. - 3 Escribimos pruebas de regresión. Las pruebas guardia en
leak01-guard.test.tsse ejecutan en CI en cada push. La instrucción permanente: "Si esta prueba falla, NO cambies la prueba. Corrige el código del instalador." - 4 Documentamos la corrección públicamente. La mayoría de las empresas ocultan incidentes. Nosotros publicamos el nuestro — porque una prueba que puedes leer vale más que una afirmación que no puedes verificar.
Demo de verificación de aislamiento
Ningún competidor ofrece un endpoint de API que puedas consultar para verificar el aislamiento de proyectos. Nosotros sí. Ejecuta este comando curl contra tu propio proyecto:
# Verifica que tu proyecto devuelve solo sus propias observaciones $ curl -s https://api.telepathine.ai/v1/context/inject \ -G -d "projects=your-project" -d "limit=5" \ -H "Authorization: Bearer $TELEPATHINE_API_KEY" # Devuelve SOLO las observaciones de tu proyecto # Nunca incluye el scope "default" # Cero observaciones para proyectos desconocidos
Prueba 1
Consulta tu propio proyecto — recibe solo tu data.
Prueba 2
Consulta un nombre de proyecto desconocido — recibe cero observaciones.
Prueba 3
Nunca ves un scope fallback "default" en ninguna respuesta.
Cómo funciona el aislamiento
Seguridad a Nivel de Fila con políticas FORCE
Cada tabla de la base de datos usa Seguridad a Nivel de Fila de PostgreSQL con políticas FORCE. El aislamiento de tenant se aplica en la capa de base de datos — no en la capa de aplicación. Incluso un endpoint de API mal configurado no puede recuperar datos de otro tenant porque la base de datos rechaza la consulta antes de devolver filas.
Las API keys llevan contexto de tenant. Los scopes read, write y admin limitan lo que cada key puede hacer. Las configuraciones de visibilidad de proyecto (privado, tenant, compartido) ofrecen control granular dentro de tu organización.
Consultas scoped por proyecto
Cada observación, sesión e inyección de contexto está scoped a un proyecto específico. Las consultas nunca cruzan fronteras de proyecto — no por defecto, no por accidente, no por fallback. Cuando un proyecto no tiene datos, recibes cero resultados — no una fuga del historial de otro proyecto.
Los nombres de proyecto se derivan del remote de Git, archivo de configuración o basename del CWD. No existe un scope fallback genérico. El postmortem LEAK-01 arriba explica por qué.
Tus keys, tus modelos
BYOK en cada plan
En cada plan — incluyendo el plan gratuito — puedes configurar tus propias keys de proveedores de LLM y embeddings. OpenAI, Anthropic o cualquier endpoint compatible. Tus keys de proveedor de IA están encriptadas en reposo y nunca se comparten entre tenants ni se usan para ningún propósito que no sea tu propio pipeline Morpheus y operaciones de embeddings.
Nunca entrenamos con tu data. Nunca usamos tus keys de IA para las peticiones de nadie más.
Seguridad de API keys
Las API keys están hasheadas en reposo usando SHA-256. Las keys nunca se almacenan en texto plano y nunca aparecen en comandos de hook, logs o mensajes de error. El archivo ~/.agent-memory/env proporciona gestión segura de keys con permisos de sistema de archivos.
La exportación completa por REST API está disponible en cualquier momento. Sin vendor lock-in, sin data como rehén. Tu memoria viaja contigo.
# Exportar todas las observaciones de un proyecto $ curl https://api.telepathine.ai/v1/observations \ -H "Authorization: Bearer $TELEPATHINE_API_KEY" \ -G -d "project=my-project&limit=10000" \ > export.json
Hoja de ruta de cumplimiento
Estado honesto, no afirmaciones de marketing. En progreso no significa conforme. Parcial no significa certificado.
| Estándar | Estado | Qué esperar |
|---|---|---|
| RLS (políticas FORCE) | Activo | Cada tabla, políticas FORCE. Aplicación en la capa de base de datos. |
| BYOK | Activo | Tus keys, tus modelos. Gratis en todos los planes. |
| Exportación (REST API completa) | Activo | REST API completa, sin lock-in. Exporta en cualquier momento. |
| SOC 2 Type I | En progreso | Objetivo Q3 2026. Aún no certificado. |
| SOC 2 Type II | Planificado | Objetivo Q3 2027. Depende de completar Type I. |
| GDPR | Parcial | La API de exportación soporta derecho de acceso. El endpoint de derecho de supresión y DPA están en progreso. Aún no conforme. |
| HIPAA | N/A | No procesamos Información de Salud Protegida. HIPAA no aplica. |
Lo que decimos y por qué
Lenguaje específico y verificable por sobre abstracción de marketing. Si no podemos demostrarlo, no lo afirmamos.
| Decimos | Nunca decimos |
|---|---|
| Seguridad a Nivel de Fila con políticas FORCE | Seguridad de nivel empresarial |
| Aislamiento por tenant y por proyecto | Los datos se mantienen seguros |
| API keys hasheadas en reposo (SHA-256) | Encriptación de grado militar |
| Sin fallback por defecto — cero resultados para proyectos desconocidos | Tomamos el aislamiento en serio |
| Las pruebas de regresión previenen reintroducción | Esto nunca volverá a pasar |
| BYOK — tus keys, tus modelos | Protegemos tus datos |
| REST API completa, sin lock-in | Integración seamless |
Principios de seguridad
Aislamiento por defecto
Los datos están scoped a tu tenant y proyecto. No existe modo "ver todo". Cero resultados para un proyecto nuevo es comportamiento correcto — no un bug para solucionar con scopes de fallback.
Verifica, no confíes
Las pruebas de regresión protegen contra fallas de aislamiento conocidas. Cuando encontramos una fuga, la corregimos, retrofillamos la data afectada y escribimos una prueba que detecta recurrencias. Las pruebas guardia se ejecutan en CI en cada push.
Transparencia por sobre silencio
Cuando encontramos un problema de seguridad, lo documentamos. Publicamos los detalles de nuestra corrección de aislamiento entre proyectos porque la transparencia genera confianza — y porque una prueba que puedes leer vale más que una afirmación que no puedes verificar.
Tus keys, tus modelos
BYOK en cada plan. Nunca usamos tus keys de proveedor de IA para nada más que tus propias peticiones. Nunca entrenamos con tu data. Tus llamadas LLM, tus embeddings, tus resúmenes Morpheus — todo procesado con keys que tú controlas.
Reporta una vulnerabilidad
¿Encontraste un problema de seguridad? Queremos saber de él — y creditaremos las divulgaciones responsables.
Correo
PGP
Disponible bajo solicitud. Encripta reportes sensibles antes de enviarlos.
Tiempo de respuesta
Dentro de 48 horas.
Política
Creditamos divulgaciones responsables. No emprendemos acciones legales contra investigadores de buena fe.