Base de pruebas sintéticas para PC y dispositivos móviles.
Comprobando entorno
!
Modo de desarrollo con datos exclusivamente sintéticos.
El gate técnico SQLCipher WASM + OPFS SAH Pool está aprobado. Esta integración no habilita inventario, ventas, reservas ni migración del XLSM.
ALMACENAMIENTO LOCAL · SQLCIPHER + OPFS SAH POOL
Copia de prueba cifrada
Verificando runtime
Inicializando el worker y verificando el motor cifrado…
Verificando versión del Service Worker y estilos…
Otra pestaña mantiene el bloqueo de esta copia. Cerrala y volvé a intentar.
Guardá la clave de recuperación de prueba
Se muestra una sola vez y no se escribe en el registro de pruebas.
Configurar TOTP
Agregá esta clave a Google Authenticator u otra aplicación compatible. La validación es local.
URI de configuración
Guardá los códigos de recuperación TOTP
Sesión autorizada
Prueba de persistencia con un único marcador sintético; no hay operaciones comerciales expuestas.
La conexión SQLCipher y el Web Lock se cerraron. Podés reabrir la copia, incluso sin conexión.
Conexión——OPFS—Almacenamiento persistente del navegadorWeb Locks—Control de una instancia por origenCifrado de baseVerificandoSQLCipher WASM fijado y confirmado al abrir
ESTADO DE LA ETAPA
Componentes del núcleo
Local · sintético
✓
Esquema SQLite y migraciones3 versiones, checksums y comprobación de integridad.
Pruebas unitarias
✓
Operaciones y trazabilidadStock, reservas Free, ventas, snapshots y liquidaciones.
Pruebas unitarias
✓
Cadena de operacionesSecuencia, hash enlazado e idempotencia.
Pruebas unitarias
✓
Integración principal SQLCipher + OPFSChrome confirmó creación sintética cifrada, bloqueo, cierre y reapertura offline.
CI · Actions #25
✓
Prueba física Android · almacenamientoSamsung Chrome verificó SQLCipher, TOTP, OPFS offline y recuperación tras reinicio con datos sintéticos.
Aprobada · shell-7
Respaldo cifrado y restauración entre dispositivosFlujo integrado en desarrollo; falta la prueba física Samsung → PC y su reapertura offline.
Prueba manual
La URL temporal de pruebas no está configurada en este proyecto. No se configuró el dominio de producción y no se cargaron archivos del XLSM.
CLAVE MAESTRA + SEGUNDO FACTOR
Seguridad local
Google Authenticator genera TOTP sin conectarse a Google.
Separación de claves
La clave maestra desbloquea la clave aleatoria que cifra la base SQLCipher. TOTP autoriza la sesión después del desbloqueo; no se usa como clave de cifrado.
La semilla TOTP y los hashes de los códigos de recuperación quedan dentro de la base cifrada. La pantalla de prueba usa claves y datos sintéticos; no habilita inventario ni ventas.
La clave de recuperación de la base y los códigos de recuperación TOTP cumplen funciones distintas. Perder la clave maestra y la clave de recuperación de la base significa perder el acceso a los datos cifrados.
COPIA PORTABLE · SIN SOBRESCRITURA SILENCIOSA
Datos y respaldos
Los respaldos quedan cifrados y autenticados, y se validan contra la secuencia del historial.
Exportar respaldo cifrado
Disponible sólo con sesión autorizada. Se vuelve a comprobar la clave maestra antes de generar el archivo.
Restaurar en una instalación vacía
Elegí un respaldo cifrado y su clave maestra. La restauración verifica SQLCipher, integridad y relaciones antes de guardar el puntero. Al terminar, tendrás que desbloquear la copia y validar el TOTP importado. Como esta instalación está vacía, no tiene un historial local con el que detectar si existe un respaldo más reciente: confirma en el dispositivo de origen que exportaste la última copia.
Restaurar sobre una copia existente
Requiere sesión autorizada y revalidación de la clave actual. Para un conjunto diferente o un avance compatible, la aplicación exigirá confirmación escrita. Una restauración efectiva bloquea la sesión y exige autenticar nuevamente la copia importada.
Los archivos de respaldo están cifrados; sin el acceso correcto no se pueden restaurar.
Protecciones
Respaldo anterior: se rechaza sin modificar la copia actual.
Historial divergente o secuencia igual con contenido distinto: se rechaza.
Avance de historial: exige confirmación escrita antes de cambiar la copia activa.
Otro conjunto de datos: exige reemplazo explícito.
La candidata se valida antes del cambio atómico del puntero; ante error se descarta y queda la copia anterior activa.