Política de privacidad
En esta página
Resumen: lo esencial en lenguaje claro
- El escaneo de turnos (la función original) envía la única imagen que selecciones a Claude (Anthropic) para extraer el horario. La imagen se elimina de nuestro servidor en un plazo de 24 horas. Nunca exploramos ni respaldamos tu biblioteca de fotos.
- Tus mensajes directos y chats grupales están cifrados de extremo a extremo. No podemos leerlos. Las claves de cifrado viven en tu teléfono, no en nuestros servidores.
- Las publicaciones en el Muro Comunitario NO están cifradas. Son visibles para todos los miembros del grupo. Las escaneamos automáticamente en busca de abuso antes de publicarlas.
- Tú controlas tus datos. Elimina un mensaje, bloquea a un usuario, sal de un grupo o elimina por completo tu cuenta desde dentro de la app en cualquier momento.
- Recopilamos lo mínimo necesario para que Rostr funcione, tu información de inicio de sesión, tu horario, los amigos con quienes elijas compartir. Nada más. Nunca vendemos tus datos.
Quién opera Rostr
Rostr es operado por ARAMI TECH LLC, una sociedad de responsabilidad limitada estadounidense.
Contacto: info@arami.tech
Cuando esta política dice «nosotros» o «nuestro», se refiere a ARAMI TECH LLC.
Qué recopilamos: y por qué
| Datos | Por qué los tenemos | Dónde se almacenan |
|---|---|---|
| Correo electrónico + Apple ID / Google ID | Solo para inicio de sesión | Supabase Auth (TLS + AES-256 en reposo) |
| Nombre visible, avatar, nombre de usuario | Mostrado a tus amigos y miembros del grupo | Base de datos Supabase (TLS + AES-256 en reposo) |
| Entradas de horario (turnos, fechas, tipos) | Función principal | Base de datos Supabase |
| Imágenes de escaneo de horarios (captura de cámara / selección de foto) | OCR vía Claude (Anthropic), la imagen se elimina en 24h | Supabase Storage (transitorio) → Anthropic |
| Membresía de Grupos de Horario + Grupos Comunitarios | Con quién compartes | Base de datos Supabase |
| Token de notificación push (APNs / FCM) | Entregar alertas | Base de datos Supabase; nunca compartido con anunciantes |
| Publicaciones del Muro Comunitario (texto + imágenes) | Visibles a los miembros del grupo | Supabase DB + Storage; escaneadas en busca de abuso |
| Mensajes directos | Cifrado de extremo a extremo (E2EE), no podemos leer | Supabase DB (solo texto cifrado) |
| Mensajes de chat grupal | Cifrado de extremo a extremo (E2EE) | Supabase DB (solo texto cifrado) |
| Reportes de contenido abusivo | Actuar según la política de abuso en 24h | Base de datos Supabase |
| Datos de fallos + rendimiento (anónimos) | Encontrar errores | Firebase Crashlytics |
| Identificador publicitario (IDFA en iOS / AAID en Android, solo si optas por incluirlo) | Segmentación de anuncios vía Google AdMob | |
| Ubicación aproximada (solo código de país, opcional) | Sugerir comunidades cercanas en Descubrir. Derivamos solo un código de país en tu dispositivo; las coordenadas exactas nunca se almacenan ni se envían. Si lo rechazas, Descubrir sigue funcionando (usa la región de tu dispositivo). | Supabase DB (solo código de país) |
Cifrado de extremo a extremo (E2EE): qué significa realmente
Los mensajes directos y chats grupales usan la familia de protocolos Signal, implementada con criptografía nativa de plataforma (Apple CryptoKit en iOS, Google Tink + AndroidX Security en Android). El formato de transmisión es compatible byte a byte en ambas plataformas.
- Cada dispositivo genera un par de claves de identidad Curve25519 en el primer arranque. La clave privada nunca sale del dispositivo, vive en iOS Keychain (
AfterFirstUnlockThisDeviceOnly) o Android Keystore (StrongBox cuando esté disponible). - Los mensajes DM se cifran con ChaCha20-Poly1305 usando una clave por conversación derivada de un intercambio Diffie-Hellman.
- Los chats grupales usan Sender Keys: los mensajes salientes de cada miembro se cifran con su propia sender key, distribuida una vez por el canal DM por pares. Cuando alguien sale del grupo, la sender key se rota.
- Las imágenes, mensajes de voz y archivos en chats DM/grupales también se cifran antes de salir de tu teléfono. Almacenamos blobs de texto cifrado en Supabase Storage; la clave por archivo se cifra dentro del cuerpo del mensaje y solo el destinatario puede descifrarla.
- Las notificaciones push no llevan vista previa del mensaje para chats E2EE, solo «Nuevo mensaje».
Escaneo de horario (OCR): la función original
La función principal de Rostr es la extracción automática de horarios desde una imagen. Así funciona exactamente la canalización:
- Tú la inicias. Toca Agregar Horario → Escanear Captura. La primera vez que lo uses, iOS o Android muestra la solicitud de permiso del sistema para Cámara o Biblioteca de Fotos.
- Una imagen a la vez. O capturas una foto nueva o seleccionas una captura existente. La app NO explora tu biblioteca de fotos, el iOS Photos Picker / Android Photo Picker nos entrega solo el archivo que realmente seleccionas.
- Comprimida y subida. La imagen se reduce de tamaño (máximo 1024 px de ancho) y se envía a nuestra Supabase Edge Function por HTTPS.
- Leída por Claude (Anthropic). La Edge Function reenvía la imagen al modelo Claude de Anthropic con capacidad visual para OCR. Esto opera bajo los términos de la API comercial de Anthropic: sin entrenamiento del modelo con entradas API, retención máxima de 30 días de las entradas para confianza y seguridad, luego se eliminan.
- Horario extraído, imagen eliminada. El horario estructurado (fechas, horarios de turno, tipos) se guarda en tu cuenta. La imagen original se elimina de nuestro Supabase Storage en un plazo de 24 horas.
Qué SÍ escaneamos (y por qué)
Las políticas de App Store y Play Store requieren que filtremos el contenido generado por usuarios en superficies de difusión. Lo hacemos en tres lugares:
| Superficie | Qué escaneamos | Cómo |
|---|---|---|
| Publicaciones del Muro Comunitario (texto) | Cuerpo del texto | OpenAI Moderation |
| Publicaciones del Muro Comunitario (imágenes) | Contenido de la imagen | OpenAI gpt-4o-mini Vision |
| Chat del Grupo de Horario (legado texto plano) | Texto + imágenes | Igual que arriba |
| Mensajes DM | Nada, E2EE | No podemos leer |
| Mensajes de chat grupal | Nada, E2EE | No podemos leer |
Si una publicación o imagen es marcada por revisión automatizada, se oculta inmediatamente a los demás usuarios. El autor conserva su copia y ve la razón del retiro.
También dependemos de ti. Si encuentras contenido abusivo en un DM o chat grupal, toca Reportar. Reportar desbloquea un descifrado único de ESE mensaje y sube el texto plano a nuestra cola de administradores para revisión humana (SLA de 24 horas). Reportar es la ÚNICA forma en que el contenido de un mensaje E2EE sale legible de tu dispositivo.
Subprocesadores de IA (Anthropic + OpenAI)
Usamos dos proveedores de IA separados, cada uno acotado a una función diferente. Ninguno tiene acceso superpuesto.
Anthropic: Solo OCR de horarios
La imagen que selecciones para escanear se envía a Anthropic, PBC bajo sus términos de API comerciales:
- No entrenan a Claude con nuestras solicitudes API
- Retienen las entradas un máximo de 30 días para confianza y seguridad, luego las eliminan
- No usamos Claude.ai (producto de consumo, política diferente)
Qué enviamos a Anthropic:
- Imágenes de escaneo de horarios para OCR (modelo Claude con capacidad visual), imagen eliminada de nuestro servidor en 24h
OpenAI: Solo moderación del Muro Comunitario
Para la moderación del contenido del Muro Comunitario enviamos cierto contenido a OpenAI, Inc. bajo su política de datos Enterprise / API:
- No entrenan modelos con nuestras solicitudes API
- Retienen las entradas un máximo de 30 días para monitoreo de abuso, luego las eliminan
- No usamos ChatGPT (que tiene una política diferente)
Qué enviamos a OpenAI:
- Texto de publicaciones del Muro Comunitario (Moderation API), detección de discurso de odio y abuso
- URLs de imágenes del Muro Comunitario (Vision, gpt-4o-mini), detección de imágenes abusivas
Qué nunca enviamos a Anthropic ni a OpenAI:
- Contenido de mensajes DM
- Contenido de imágenes / voz / archivos DM
- Contenido de mensajes de chat grupal
- Tus credenciales de cuenta, información de pago o identificadores de dispositivo
Otros subprocesadores
| Proveedor | Propósito | Región |
|---|---|---|
| Supabase (Postgres + Storage + Auth + Realtime) | Alojamiento, base de datos, almacenamiento, autenticación, websocket | UE (eu-central) |
| Firebase Cloud Messaging (Google) | Notificaciones push (Android + iOS) | EE.UU. |
| Anthropic, PBC | OCR de horario (Claude Vision) | EE.UU. |
| OpenAI | Moderación de texto + imágenes del Muro Comunitario | EE.UU. |
| Apple Push Notification Service | Entrega push de iOS | EE.UU. |
| Google AdMob | Servicio de anuncios (solo si permites el seguimiento) | EE.UU. |
Hemos firmado Acuerdos de Procesamiento de Datos (o tenemos términos comerciales equivalentes) con Supabase, Google, OpenAI, Anthropic y Apple. Ninguno de estos proveedores vende tus datos.
Retención de datos
| Datos | Retenidos por |
|---|---|
| Cuenta, horario, membresías de grupo | Mientras exista tu cuenta |
| Imágenes de escaneo de horario (tras subida OCR) | 24 horas, luego eliminadas de nuestro Supabase Storage |
| Mensajes de voz (bytes de audio, texto cifrado para chats E2EE) | 180 días, luego anulados |
| Publicaciones del Muro Comunitario | Mientras el grupo exista; puedes eliminar en cualquier momento |
| DM / chat grupal (texto cifrado) | Mientras ambas partes conserven la conversación |
| Reportes + notas administrativas | 1 año (regulatorio) |
| Registros de fallos | 90 días |
| Tokens push | Hasta que cierres sesión / desactives las notificaciones |
| Cuentas eliminadas (soft-delete) | Período de gracia de 30 días para restaurar, luego eliminación permanente |
Puedes eliminar tu cuenta desde Perfil → Eliminar Cuenta. Tu registro se elimina suavemente (recuperable por 30 días), luego se elimina de forma permanente junto con todos los mensajes que hayas escrito. Los chats de otras personas contigo se conservan (su contenido, su copia).
Tus derechos
Tienes derecho a:
- Acceder a lo que tenemos sobre ti (envía un correo a info@arami.tech)
- Corregir cualquier cosa que tengamos mal
- Exportar tus datos (enviaremos un volcado JSON en 30 días)
- Eliminar tu cuenta (en la app, al instante)
- Oponerte a la personalización de anuncios (Ajustes iOS → Privacidad → Seguimiento, o Ajustes Android → Google → Anuncios)
- Presentar una queja ante tu autoridad de protección de datos
Residentes UE / Reino Unido (GDPR)
Tu base legal bajo el GDPR es:
- Contrato para el servicio principal (inicio de sesión, horario, chat)
- Interés legítimo para moderación, anti-abuso y registros de fallos
- Consentimiento para personalización de anuncios (puedes retirarlo en cualquier momento)
Residentes de California (CCPA / CPRA)
No vendemos ni compartimos tu información personal para publicidad conductual entre contextos, según define la ley de California. Puedes solicitar conocer, eliminar o corregir tus datos vía info@arami.tech.
Niños
Rostr está clasificado como 17+. No recopilamos a sabiendas datos de menores de 13 años (EE.UU.: COPPA) ni de menores de 16 años (UE: GDPR). Si crees que un menor ha creado una cuenta, envía un correo a info@arami.tech y la eliminaremos.
Cambios en esta política
Actualizaremos la fecha de «Última actualización» en la parte superior cada vez que cambiemos algo. Los cambios materiales (nuevos proveedores, nuevas categorías de datos) reciben un banner en la app la próxima vez que la abras.
Para revisores de App Store / Play Store
Si eres un revisor de Apple App o de Google Play leyendo esto, aquí tienes el resumen de cumplimiento relevante:
- Canalización OCR: Captura de cámara / selección de biblioteca de fotos → imagen reducida a 1024 px → HTTPS a Supabase Edge Function (
ocr-roster-claude) → modelo Claude de Anthropic con capacidad visual → horario estructurado devuelto → imagen original eliminada de Supabase Storage en 24h. iOS usa Photos Picker; Android usaActivityResultContracts.PickVisualMedia. Ninguno requiereREAD_MEDIA_IMAGES; el picker es fuera de proceso. - Moderación UGC: texto + imagen en el Muro Comunitario se escanean vía OpenAI Moderation + gpt-4o-mini Vision antes de publicar. DM y chat grupal (incluyendo voz) son E2EE; el reporte de usuario es la red de seguridad (SLA de 24h).
- Flujo de reporte: mantén pulsado cualquier mensaje → Reportar → añade fila a la tabla
reports; el administrador revisa vía panel en 24h. - Bloquear / Expulsar: en vivo dentro de la app, todas las superficies.
- Cumplimiento de exportación de cifrado (iOS): Apple CryptoKit (X25519 + ChaCha20-Poly1305 + HKDF) usado para cifrado de extremo a extremo de DM y chat grupal. Declarado como
ITSAppUsesNonExemptEncryption = YES; clasificado bajo ECCN 5D992.c con License Exception ENC §740.17(b)(1) (mercado masivo, solo algoritmos estándar). Cuestionario de cifrado de App Store Connect completado para esta presentación, no se requiere subida de documentación. - Cumplimiento de exportación de cifrado (Android): Google Tink + AndroidX Security (X25519 + ChaCha20-Poly1305 + HKDF). Solo criptografía estándar de mercado masivo; misma clasificación ECCN 5D992.c.
- Eliminación de cuenta: Perfil → Eliminar Cuenta, eliminación suave con gracia de 30 días, luego eliminación permanente + cascada.