# Seguridad en LightInventory

> Dónde están sus datos, qué acceso a Google pedimos, cómo funcionan el inicio de sesión, los roles y el historial a prueba de manipulaciones, y qué proveedores usamos.

Source: https://www.lightinventory.com/es/seguridad · Last updated: 2026-10-30

Sus datos de inventario se quedan en su propia hoja de cálculo de Google. LightInventory lee y escribe en ese archivo en su nombre, no guarda ninguna copia de su contenido en nuestros servidores y solo almacena lo que necesita para gestionar su cuenta. Esta página explica exactamente cómo funciona, de qué le protegemos y dónde están los límites.

> **Note:** LightInventory está en desarrollo y todavía no está disponible para el público general. Esta página describe el sistema tal como está diseñado. No afirma tener auditorías, certificaciones ni un historial de disponibilidad, porque todavía no existen.

## Dónde están sus datos

Los datos de negocio (artículos, ubicaciones, movimientos de stock, precios, notas, propuestas de aprobación y los valores anteriores y posteriores de su historial) solo están en hojas de cálculo de su cuenta de Google. Nuestros servidores leen los valores de las celdas en memoria para mostrar páginas, comparar cambios, generar exportaciones y escribir sus cambios. Esos valores no se guardan en nuestra base de datos, en nuestros registros ni en nuestros informes de errores. Un conjunto de pruebas automatizadas comprueba que ninguna tabla, línea de registro ni evento de error contenga valores de celdas.

Sí guardamos los datos necesarios para gestionar su cuenta:

| Qué guardamos | Por qué | Protección |
|---|---|---|
| Usuarios, perfiles, organizaciones, miembros, roles, invitaciones (solo un hash de cada token de invitación) | Inicio de sesión y gestión del equipo | Cifrado en reposo por el proveedor de la base de datos |
| Factores de inicio de sesión: claves públicas de las claves de acceso, secretos TOTP, códigos de recuperación con hash | Autenticación multifactor | Los secretos TOTP se cifran además con cifrado de sobre, con claves guardadas en un servicio de gestión de claves |
| Token de actualización de Google de la hoja de cálculo conectada | Leer y escribir en su archivo | Con cifrado de sobre; nunca se envía al navegador ni se escribe en los registros |
| Metadatos de la hoja de cálculo: ID del archivo, ID de las pestañas, versión del esquema, modo de bloqueo | Encontrar y comprobar su archivo | No contiene valores de celdas |
| Huellas de las filas (hashes con clave de cada fila) | Detectar ediciones hechas directamente en la hoja | Con clave, así que no se pueden revertir para obtener los valores |
| Cadena de hashes de auditoría: números de secuencia, ID de entrada, hashes, ID del autor, tipo de acción, hora | Demostrar que su historial no ha cambiado | No contiene valores |
| Referencias de facturación de nuestro proveedor de pagos | Suscripciones y facturas | No contiene números de tarjeta |
| Eventos de seguridad: intentos de inicio de sesión, fallos de permisos, dirección IP, navegador | Detectar abusos | La dirección IP se elimina a los 90 días y los eventos, al cabo de 1 año |

Nuestro propio sistema funciona en **Londres**. La base de datos (Supabase, región `eu-west-2`), los servidores de la aplicación (Vercel, región `lhr1`) y nuestras claves de cifrado y anclajes del historial (Google Cloud, región `europe-west2`) están todos fijados allí. El correo electrónico transaccional es la única excepción documentada y se explica en [infraestructura y subencargados del tratamiento](#infraestructura-y-subencargados-del-tratamiento).

## El acceso a Google que pedimos

LightInventory pide dos cosas a Google. Al iniciar sesión con Google, pide su perfil básico: `openid`, `email` y `profile`. Al conectar una hoja de cálculo, pide por separado un único permiso de Drive: `drive.file`.

Dicho de forma sencilla, `drive.file` permite que una aplicación trabaje solo con los archivos que usted crea con ella o elige para ella. Google lo describe como acceso a los archivos que se abren con una aplicación o que el usuario comparte con una aplicación mientras usa la API de Google Picker ([ámbitos de la API de Google Drive](https://developers.google.com/workspace/drive/api/guides/api-specific-auth?hl=es)). Google lo clasifica como un ámbito no sensible.

Qué significa esto para usted:

- LightInventory no puede listar, abrir ni buscar en el resto de su Google Drive. Un archivo que nunca creó con LightInventory ni eligió en el selector de archivos de Google le resulta invisible.
- Nunca pedimos el ámbito más amplio `spreadsheets` ni ningún ámbito de acceso a todo Drive.
- Después de cada autorización, comprobamos que Google ha devuelto exactamente el acceso que pedimos.
- Puede retirar el acceso en cualquier momento desde su cuenta de Google. Consulte [Revocar el acceso de LightInventory a Google](/es/ayuda/datos-y-privacidad/revocar-acceso-de-google).

Solo la persona que conecta la hoja de cálculo concede este acceso, y esa persona debe ser la propietaria del archivo. Los miembros de su equipo nunca se añaden al archivo en Google. Trabajan a través de la aplicación, con los roles que usted les asigne.

## Inicio de sesión y sesiones

Todos los usuarios inician sesión con dos factores, en todos los planes y cada vez que empieza una sesión.

1. **Primer factor:** el inicio de sesión con Google, o un correo electrónico y una contraseña. Las contraseñas deben tener al menos 12 caracteres y se comprueban con listas de contraseñas filtradas. El inicio de sesión con Google cuenta solo como primer factor, nunca como los dos.
2. **Segundo factor:** una clave de acceso, que es la opción predeterminada y resiste el phishing, o un código TOTP de una aplicación de autenticación. Cada usuario registra al menos dos métodos y recibe 10 códigos de recuperación de un solo uso.

Para los Propietarios y los Administradores, el inicio de sesión resistente al phishing es obligatorio de forma predeterminada, así que el TOTP está desactivado para esos roles salvo que el propietario cambie el ajuste. Las llaves de seguridad físicas funcionan como claves de acceso. Un enlace por correo electrónico puede restablecer una contraseña, pero nunca sustituye al segundo factor.

La autenticación multifactor se comprueba en dos lugares independientes: en el código de nuestro servidor y en las propias reglas de acceso de la base de datos. Una sesión que solo ha superado el primer factor no puede leer nada, aunque llame directamente a la base de datos.

| Ajuste de sesión | Valor |
|---|---|
| Cierre de sesión por inactividad | 60 minutos |
| Duración máxima de la sesión | 24 horas |
| Segundo factor reciente para acciones sensibles | En los últimos 5 minutos |
| Intentos fallidos del segundo factor antes del bloqueo | 10, con esperas de 30 segundos a 1 hora |

Las acciones sensibles incluyen los cambios de rol, los cambios de facturación, conectar o desconectar una hoja de cálculo, las exportaciones, las reversiones masivas, los cambios en los métodos de inicio de sesión y la eliminación de la organización. Puede ver sus sesiones activas y finalizar cualquiera de ellas. Le enviamos un correo electrónico cuando un dispositivo nuevo inicia sesión, cuando se añade o se elimina un método de inicio de sesión y cuando se usan códigos de recuperación.

## Roles, ubicaciones y aprobaciones

Cada organización tiene cinco roles: Propietario, Administrador, Aprobador, Editor y Lector. Los Editores y los Lectores pueden limitarse a ubicaciones concretas, de modo que el equipo de una tienda solo ve y cambia su propio stock.

| Capacidad | Propietario | Administrador | Aprobador | Editor | Lector |
|---|---|---|---|---|---|
| Ver artículos, stock e historial | Sí | Sí | Sí | Sus ubicaciones | Sus ubicaciones |
| Registrar movimientos | Sí | Sí | Sí | Sus ubicaciones | No |
| Aprobar solicitudes | Sí | Sí | Sí, salvo las suyas | No | No |
| Reversión masiva | Sí | Sí | No | No | No |
| Gestionar miembros | Sí | Sí | No | No | No |
| Conectar la hoja de cálculo, eliminar la organización | Sí | No | No | No | No |

Los permisos se leen en tiempo real en cada solicitud, así que retirar a alguien o cambiar su rol surte efecto en su siguiente acción. Toda solicitud se deniega salvo que una regla la permita. Cada rol se explica en [Equipo y roles](/es/ayuda/equipo-y-roles).

Las aprobaciones son opcionales. Cuando están activadas, una organización puede exigir aprobación para cambios como ediciones de precios o ajustes de stock. El cambio propuesto se escribe en una pestaña protegida de su hoja de cálculo, y nadie puede aprobar su propia solicitud. Más información en el resumen del [registro de auditoría](/es/funciones/registro-de-auditoria).

## Historial a prueba de manipulaciones

Cada cambio hecho a través de LightInventory se escribe como una entrada de historial en una pestaña `Log` protegida dentro de su hoja de cálculo, en la misma actualización de Google que el propio cambio. El stock nunca se edita como un número. Se calcula a partir de una lista de movimientos en la que solo se añaden filas, y una reversión es una entrada nueva y opuesta, no una eliminación.

A prueba de manipulaciones significa que, si alguien modifica o elimina una entrada anterior, la verificación lo muestra. No significa que el cambio sea imposible. Así funciona:

- **Una cadena con clave.** Cada entrada recibe un código calculado a partir de su contenido y del código de la entrada anterior, con HMAC-SHA256 y una clave secreta de su organización que solo tiene LightInventory. Cambiar una entrada rompe la cadena a partir de ese punto. Como la clave es secreta, nadie puede recalcular los códigos discretamente después de una edición.
- **Una copia de la cadena, sin valores.** Guardamos los códigos de la cadena, nunca sus valores, en una tabla de la base de datos que rechaza modificaciones y eliminaciones.
- **Anclajes diarios fuera de nuestra base de datos.** Una vez al día, una única huella de la última posición de la cadena de cada organización se escribe en un bucket de Google Cloud Storage con una política de retención bloqueada de 7 años. Una vez bloqueada, esa política no se puede acortar ni eliminar. Un atacante que pudiera modificar nuestra base de datos seguiría sin poder reescribir esos anclajes.
- **Verificación nocturna.** Cada noche, y siempre que el propietario lo pida, recalculamos la cadena a partir de su pestaña `Log` y la comparamos con nuestra copia y con el anclaje más reciente. Si algo no coincide, todos los miembros ven un aviso de integridad y el Propietario y los Administradores reciben un correo electrónico.

El límite es la propiedad. El propietario de un archivo de Google siempre puede editarlo, desbloquearlo, copiarlo o eliminarlo; Google no permite excluir a nadie de eso. La cadena no puede impedirlo, pero lo hace visible. Google también registra las escrituras de nuestra aplicación con la cuenta del propietario, porque escribimos con su permiso. Nuestro `Log` registra el miembro del equipo real.

## Ediciones hechas directamente en la hoja

De forma predeterminada, sus pestañas gestionadas están protegidas para que solo el propietario pueda editarlas en Hojas de cálculo de Google, y los editores del archivo no pueden volver a compartirlo. Un bloqueo estricto opcional deja el archivo en solo lectura en Google hasta que el propietario lo desbloquea expresamente.

Como el propietario siempre puede hacer cambios, LightInventory también los detecta. Cada vez que la aplicación lee su hoja, compara cada fila con su huella guardada. También se ejecuta una comprobación en segundo plano para las organizaciones que nadie está consultando. Cuando una fila ha cambiado fuera de la aplicación, la aplicación lo registra con la mejor atribución posible a partir de los datos de revisión de Google y, después, aplica la política de su organización: bloquear el cambio hasta que un Propietario o un Administrador lo adopte o lo restaure, aceptarlo y registrarlo, o retenerlo para su aprobación. Las ediciones de movimientos o entradas de historial anteriores siempre se señalan.

## Cifrado y secretos

- **En tránsito:** todo el tráfico usa HTTPS. Se indica a los navegadores que usen solo HTTPS (HSTS con precarga), y nuestras páginas usan una política de seguridad de contenido (CSP) estricta.
- **En reposo:** nuestra base de datos está cifrada en reposo por su proveedor. Su hoja de cálculo la almacena y la cifra Google.
- **Tokens y claves:** los tokens de actualización de Google, los secretos TOTP y las claves de historial de cada organización se cifran con AES-256-GCM con una clave nueva por registro. Esa clave está protegida a su vez por una clave maestra en Google Cloud KMS en Londres, que nunca sale de KMS y se rota cada año. KMS se ejecuta en un proyecto de nube aparte con sus propios controles de acceso, y nuestros servidores acceden a él sin ninguna credencial de larga duración almacenada.
- **Sin acceso de soporte a su hoja.** No existe ninguna función para que nuestro personal inicie sesión como usted ni ninguna herramienta de soporte que abra su hoja de cálculo. El acceso a nuestra base de datos de producción requiere a dos personas y queda registrado.

## Infraestructura y subencargados del tratamiento

| Proveedor | Función | Región |
|---|---|---|
| Supabase | Base de datos y autenticación (solo datos de sistema) | Londres (`eu-west-2`) |
| Vercel | Alojamiento de la aplicación y cortafuegos; red de distribución de contenidos | Funciones en Londres (`lhr1`); CDN global |
| Google Cloud | Gestión de claves y anclajes del historial (solo datos de sistema) | Londres (`europe-west2`) |
| Resend | Correo electrónico transaccional (invitaciones, avisos de seguridad y de facturación) | Estados Unidos |
| Stripe | Facturación y pagos | Sin región fija |
| Cloudflare | DNS con DNSSEC y el CAPTCHA de los formularios de inicio de sesión | Red global |

Las API de Sheets y Drive de Google procesan su hoja de cálculo como su propio proveedor. Los correos electrónicos que enviamos nunca contienen sus datos de inventario. En el caso de los proveedores con sede en EE. UU., las transferencias están amparadas por el Marco de Privacidad de Datos UE-EE. UU. con la Extensión del Reino Unido, o por cláusulas contractuales tipo.

Nuestro Acuerdo de Tratamiento de Datos está diseñado para dar a los clientes un preaviso de al menos 30 días antes de incorporar un nuevo subencargado y el derecho a oponerse. La lista completa de subencargados y el acuerdo se publicarán en el lanzamiento.

## Comunicar una vulnerabilidad

Si encuentra un problema de seguridad, escriba a **support@lightinventory.com** con los pasos para reproducirlo. Le rogamos que no acceda a datos de otras personas ni interrumpa el servicio, y que se ponga en contacto con nosotros antes de hacer cualquier prueba activa, porque nuestras condiciones no permiten pruebas de seguridad sin autorización. Nuestros datos de contacto para investigadores de seguridad también están publicados en formato legible por máquina en [security.txt](/.well-known/security.txt). Antes del lanzamiento se publicará una política completa de divulgación responsable.

## Estado

LightInventory se prepara para su lanzamiento. Antes del lanzamiento, el plan incluye una prueba de penetración externa que abarca el inicio de sesión, el aislamiento entre clientes, la autorización de Google, los webhooks y la inyección en hojas de cálculo, además de una autoevaluación completa según el OWASP Application Security Verification Standard 5.0. Esta página incorporará esas evaluaciones independientes cuando existan. Hasta entonces, describe el diseño, no una certificación.

Consulte [qué guarda LightInventory](/es/ayuda/datos-y-privacidad/que-datos-guardamos) para ver la lista completa, y [precios](/es/precios) para saber qué incluye cada plan.
