1. Qué tecnologías utilizamos
Frame puede utilizar cookies HTTP y almacenamiento del navegador (localStorage y sessionStorage). Las cookies HTTP pueden ser estrictamente necesarias para autenticación, seguridad o funciones solicitadas como registrar un navegador Enterprise de confianza; el almacenamiento del navegador se limita al consentimiento, preferencias de interfaz y, tras consentimiento, estado opcional de analítica/producto; las categorías opcionales no deben activarse antes de obtener consentimiento cuando este sea exigible.
2. Cómo se solicita el consentimiento
En la primera visita sin una preferencia guardada se muestra un panel con opciones para rechazar las categorías opcionales, configurarlas o aceptarlas. Aceptar y rechazar las categorías opcionales se ofrecen con una prominencia equivalente en la primera capa. Rechazar no desactiva el almacenamiento estrictamente necesario ni impide usar las funciones esenciales del servicio.
Puede revisar o cambiar su decisión en cualquier momento desde .
3. Categorías
- Esenciales: necesarias para seguridad, autenticación, conservar la elección de privacidad o prestar una función solicitada.
- Funcionales: recuerdan preferencias de interfaz en este navegador. No almacenan el proyecto como fuente de verdad.
- Analítica: medición agregada/estadística opcional cuando exista una integración habilitada y consentimiento.
- Producto: telemetría opcional sobre interacción con el producto destinada a entender uso y mejorar funcionalidades.
4. Inventario actual
| Clave | Tecnología | Finalidad | Conservación | Categoría |
|---|---|---|---|---|
| frame.cookie-consent.v2 | localStorage | Guarda las preferencias de consentimiento para categorías opcionales. | Hasta que se cambie o borre | esencial |
| ph_frame_posthog* | localStorage | Guarda identificadores, metadatos de sesión y estado de feature flags de PostHog únicamente después de aceptar una categoría opcional. | Hasta retirar el consentimiento, borrar el almacenamiento del navegador o dejar de ser necesario el identificador local | analítica |
| ph_frame_posthog_session_registered_properties | sessionStorage | Mantiene las claves de propiedades de sesión de PostHog para la pestaña actual tras el consentimiento. | Durante la pestaña/sesión actual o hasta retirar el consentimiento | analítica |
| frame_posthog_consent* | localStorage | Guarda el marcador local de opt-in/opt-out de PostHog después de cambiar el consentimiento opcional de Frame. | Hasta cambiar la elección de consentimiento o borrar el almacenamiento del navegador | analítica |
| frame.block-library.favorites.v1 | localStorage | Guarda favoritos de la biblioteca de bloques en este navegador. | Hasta que se cambie o borre | funcional |
| frame.block-library.recent.v1 | localStorage | Guarda bloques insertados recientemente en este navegador. | Hasta 16 entradas hasta borrar | funcional |
| frame.editor.effect-favorites.v1 | localStorage | Stores favorite effect presets on this browser. | Until changed or cleared | funcional |
| frame.editor.effect-recents.v1 | localStorage | Stores recently used effect presets on this browser. | Up to 64 entries until cleared | funcional |
| frame.editor.fonts.recent | localStorage | Guarda las fuentes usadas recientemente en el editor. | Hasta 5 entradas hasta borrar | funcional |
| frame.editor.onboarding.dismissed | localStorage | Recuerda si se ha cerrado el onboarding del editor. | Hasta borrar | funcional |
| frame.dashboard.onboarding.dismissed | localStorage | Recuerda si se ha completado la guía inicial del workspace. | Hasta borrar | funcional |
| frame.workspace.missions.v1 | localStorage | Guarda las misiones de onboarding completadas en este navegador. | Hasta borrar | funcional |
| frame-layer-collapsed:* | localStorage | Recuerda las filas de capas contraídas en el editor. | Hasta borrar | funcional |
| frame:configure:v4-ui:* | localStorage | Recuerda la pestaña activa de configuración del proyecto. | Hasta borrar | funcional |
| frame:settings:v5-tab | localStorage | Recuerda la pestaña activa de ajustes. | Hasta borrar | funcional |
| frame:workspace-sidebar:v1:* | localStorage | Remembers whether the authenticated workspace sidebar is collapsed on this browser. | Until changed or cleared | funcional |
| frame_device_trust_v1 | cookie | Guarda el token opaco del navegador de confianza usado por la política de sesión Enterprise tras registrar explícitamente el dispositivo. | Cookie hasta 365 días; la confianza efectiva caduca según la política del workspace (1–365 días), por revocación o al borrar la cookie | esencial |
| Frame GitHub OAuth flow cookies | cookie | Cookies temporales de state, verificador PKCE, vínculo con la cuenta iniciadora e idioma de retorno usadas únicamente al conectar GitHub. | 10 minutos o hasta completar el callback OAuth | esencial |
| Frame Vercel OAuth flow cookies | cookie | Cookies temporales de state, vínculo con la cuenta iniciadora e idioma de retorno usadas únicamente al conectar Vercel. | 10 minutos o hasta completar el callback OAuth | esencial |
| Clerk session cookies | cookie | Autenticación alojada y seguridad de sesión. | Según la configuración de sesión del proveedor de autenticación | esencial |
5. Cookies de terceros
Cuando una función configurada dependa de un tercero, ese tercero puede establecer almacenamiento técnico propio —por ejemplo, para autenticación o seguridad— o, si se habilita una función opcional, almacenamiento sujeto al consentimiento correspondiente. La integración opcional de PostHog solo se carga después de aceptar analítica o telemetría de producto; Frame la configura con persistencia en localStorage, proxy first-party y controles para retirar el consentimiento. El inventario debe actualizarse antes de activar en producción una tecnología nueva que cambie las categorías, finalidades o terceros descritos aquí.
5 bis. Cookies necesarias de conexión OAuth
Al iniciar voluntariamente la conexión con GitHub o Vercel, Frame crea cookies HttpOnly temporales para validar el state OAuth, vincular el flujo a la cuenta de Frame que lo inició y devolver al idioma correcto tras el callback. La conexión de GitHub conserva además temporalmente el verificador PKCE. Son estrictamente necesarias para proteger el flujo solicitado, usan SameSite=Lax, se marcan Secure en producción y caducan aproximadamente a los 10 minutos o al finalizar el callback. No se utilizan para publicidad ni analítica.
5 ter. Sesiones de colaboración en tiempo real
La colaboración en tiempo real no añade una clave propia de localStorage ni una cookie persistente de Frame. El navegador obtiene un ticket de WebSocket de corta duración después de autenticarse; el ticket se mantiene en memoria y se renueva mediante la sesión autenticada de Frame. La presencia y el estado CRDT se transmiten al servicio realtime de Cloudflare cuando esta función de pago está activa.
6. Retirar el consentimiento y borrar datos locales
Puede retirar o modificar el consentimiento mediante . La retirada afecta a usos futuros de categorías opcionales y no invalida el tratamiento realizado lícitamente antes de retirarlo.
También puede borrar cookies y almacenamiento desde la configuración del navegador. Si elimina la clave que guarda su elección, el panel de consentimiento volverá a mostrarse para que pueda elegir de nuevo.
7. Base jurídica
El almacenamiento estrictamente necesario se utiliza para prestar una función solicitada, mantener seguridad o recordar la propia elección de privacidad cuando la normativa permite ese uso sin consentimiento. Las categorías opcionales de analítica o producto se basan en consentimiento cuando este resulte exigible y permanecen desactivadas hasta obtenerlo.
8. Actualizaciones y contacto
Si cambia el inventario de almacenamiento, sus finalidades o las categorías opcionales, esta política y, cuando corresponda, el mecanismo de consentimiento se actualizarán antes de aplicar el nuevo uso. Consultas: privacy@balla.es.