Saltar al contenido
Henry Rincón
Sin sellarH1

Velo

Velo para entregar. Desvelo para recuperar.

QUÉ TE DELATASE VELALA FRONTERAY VUELVE
Esquema de las ideas de la app, dibujado en el lenguaje visual de esta página. No es una captura de pantalla.

La aduana de tus datos: revisa tus tablas antes de que salgan hacia una IA, una herramienta en la nube o el computador de un tercero, te dice a quién señalan con el dedo, te las devuelve tratadas — y cuando el trabajo vuelve, recupera los valores originales. Todo ocurre dentro del navegador: no hay servidor, no hay carga, no hay copia.

Para quién

Para quien tiene que entregar datos de personas a un tercero —un consultor, una herramienta, un modelo— y hoy elige entre mandar el archivo tal cual o no mandarlo. En Colombia, además, con la Ley 1581 de 2012 encima.

Qué no hace nadie más

El mercado hace media travesía: micro-herramientas que anonimizan en un solo sentido, o suites empresariales inaccesibles. Velo es la única que hace el viaje completo dentro del navegador —entregas sin entregar, y recuperas con tu bóveda— con validadores que citan su fuente oficial, certificado con las dos huellas, y cero inteligencia artificial: el mismo archivo produce siempre el mismo resultado, byte por byte.

Las cifras

  • 14funcionalidades

    Funcionalidades del MVP

    medido
  • 5pantallas

    Pantallas de la app

    medido
  • 740pruebas

    Pruebas unitarias y de integración

    medido
  • 153pruebas

    Pruebas de extremo a extremo

    medido
  • 96,17%

    Cobertura de líneas

    medido
  • 8paquetes

    Dependencias en tiempo de ejecución

    medido
  • 0llamadas

    Llamadas de red que llevan datos del usuario

    medido
  • 0servicios

    Servicios de backend

    medido
  • 0USD

    Costo de operación mensual

    calculada
  • 500.000filas

    Filas procesadas sin bloquear la pestaña

    medido
  • 484.920bytes

    Peso de este brochure

    medido
  • 8ADR

    Decisiones de arquitectura registradas

    medido

Qué hace

14 funcionalidades, agrupadas. Cada tarjeta se abre sola al llegar leyendo — y si la tocas, manda tu toque.

El diagnóstico· Pantalla real de la app corriendo, con datos inventados — repintada con la paleta de esta página.
Carga de CSV y Excel, por arrastre y por teclado

CSV sin tope, porque se lee por partes y nunca existe entero en memoria; Excel hasta 150 MB, porque hay que abrirlo completo. El progreso dice la etapa real —tomando la huella, leyendo, reconociendo columnas, midiendo el riesgo— y no dibuja una barra donde no hay fracción que mostrar.

Detección por columna con las cuatro categorías de la Ley 1581

Identificador directo, dato sensible del artículo 5, cuasi-identificador y no personal, con tres niveles de certeza: confirmado por un dígito de verificación oficial (NIT con el mod 11 de la DIAN, tarjetas con Luhn, IBAN con el 97-10), reconocido por su forma, o sin confirmar cuando la pista es el nombre de la columna. Cada validador cita su fuente en el código.

Reporte del diagnóstico, autocontenido y con huella

Un HTML que se abre con doble clic sin internet y sin instalar nada, con lo detectado, las categorías, las cifras de riesgo y el SHA-256 del archivo. No lleva ni una fila de la tabla: las muestras van enmascaradas y las columnas sensibles no llevan ninguna.

Qué se le hace a cada columna· Pantalla real de la app corriendo, con datos inventados — repintada con la paleta de esta página.
Política por columna, exportable como archivo

Una fila por columna con su técnica. La política no se guarda en ningún sitio —lleva los nombres de las columnas, que son datos del usuario— así que se exporta e importa como archivo, con su propio hash SHA-256 como identidad: dos archivos que compartan los ocho caracteres del nombre recibieron el mismo tratamiento.

Políticas de fábrica: Habeas Data y HIPAA Safe Harbor

Habeas Data (Ley 1581 de 2012 y Decreto 1377 de 2013, con las técnicas de la guía AGN + SIC y un objetivo de grupo mínimo de 5) o HIPAA Safe Harbor (los 18 identificadores de 45 CFR §164.514(b)(2), que manda borrar y no seudonimizar). Cada una declara cuántos de sus puntos reconoce por contenido, cuántos solo por el nombre y cuántos quedan para la persona. Al tocar una regla, Velo avisa de que ya no es esa política.

Cuatro familias de técnicas

Enmascarar, seudonimizar (HMAC-SHA256 con llave derivada por PBKDF2 de 600.000 vueltas), generalizar y suprimir, elegidas columna por columna, con vista previa de lo que va a recibir la otra persona antes de escribir nada.

Formato conservado con el dígito de verificación recalculado

Un NIT sigue siendo un NIT: el seudónimo mantiene la forma y su dígito de verificación se recalcula con el mod 11 de la DIAN. No es cifrado que preserva formato —FF3 está roto y el código dice por qué— y las colisiones que el formato provoca se cuentan y se declaran.

Seudónimos estables entre entregas

La misma frase de paso y la misma sal producen los mismos seudónimos, así que el archivo de marzo se puede cruzar con el de abril sin tener los datos reales delante. Perder la frase es perder la vuelta, y se dice antes.

El riesgo, medido· Pantalla real de la app corriendo, con datos inventados — repintada con la paleta de esta página.
k-anonimato con Mondrian y consejero de cruces

El consejero muestra qué columnas delatan solas y qué combinaciones son las más delatoras, con su k real, y declara cuántas evaluó y qué quedó fuera con su motivo. «Generalizar hasta alcanzar el k» reparte con Mondrian (LeFevre et al., ICDE 2006) sobre las columnas marcadas, con l-diversity y t-closeness medidas — y sin borrar filas para lograrlo.

Riesgo exacto y riesgo poblacional estimado, separados

Las cifras del archivo se cuentan registro por registro y van marcadas «cifra exacta» (modelo prosecutor). El riesgo de la población sale de un modelo con su supuesto, va marcado «estimado» con su fuente al lado —Benedetti–Franconi (1998) y Zayatz (1991)— y solo aparece si la persona declara la población. Nunca se promedian entre sí.

Balance de antes y después, con la advertencia arriba de la cifra

Qué cambió, cuánto riesgo se redujo y cuánta utilidad se perdió — con una regla dura: si queda algo sin tratar, eso se lee antes que cualquier porcentaje, y la cifra pierde el tratamiento de titular hasta que nada la desmienta.

El regreso· Pantalla real de la app corriendo, con datos inventados — repintada con la paleta de esta página.
LA FRONTERATU MESATU BÓVEDA · NO CRUZAVELADOEL TERCERO TRABAJAY VUELVE — SE DESVELA
La escena mayor de su producto de presentación, re-dibujada en el lenguaje visual de esta página.
La bóveda cifrada y el regreso

Un seudónimo no vuelve por sí solo, y eso es lo que lo hace seguro de entregar. La bóveda —archivo aparte, cifrado con AES-GCM y llave derivada por PBKDF2 de 600.000 vueltas— sí lo deshace. La restauración es por VALOR, jamás por posición, y reconoce las columnas por su contenido: sobrevive a que el tercero reordene filas, añada columnas, borre otras y corrija valores a mano. Las cuatro cosas que le pueden pasar a una celda se cuentan todas, y las ambiguas se declaran ANTES de restaurar.

Certificado del tratamiento con las dos huellas

El documento que viaja con el archivo: qué se le hizo, el balance con sus advertencias, la utilidad perdida, el hash completo de la política, y las huellas del archivo que entró y del que sale. Con la segunda, quien lo recibe comprueba que el documento habla de su copia en vez de creerlo — con la orden exacta para macOS, Linux y Windows. No es una firma digital, y lo dice.

Bitácora cifrada de los tratamientos

Qué se trató, cuándo, con qué política y con qué riesgo antes y después — las dos proporciones y no la resta entre ellas, porque una bitácora se lee meses después sin ninguna pantalla al lado que la matice. Va cifrada porque un nombre de archivo ya cuenta de qué va su contenido, en archivo propio y con su propia frase de paso.

Los detalles finos

Privacidad
  • red saliente con datos: no
  • datos persisten en servidor: no
  • usa ia: no

El archivo se abre dentro de la pestaña, en un hilo aparte, y ahí se queda: no hay subida, no hay servidor que lo reciba y no queda copia al cerrar. La garantía tiene tres capas —un e2e que intercepta todas las peticiones del navegador durante el flujo completo, una CSP con connect-src 'self' que impide abrir cualquier conexión ajena, y un test de código fuente que veta fetch, localStorage e indexedDB en el motor—. La bóveda y la bitácora son la única excepción al «nada persiste», y son archivos cifrados que el usuario descarga y custodia con una acción explícita. Sin IA generativa en ninguna parte del producto: por eso el mismo archivo con la misma política y la misma llave produce siempre la misma salida, byte por byte, y por eso el resultado es auditable.

Stack
  • Next.js — la aplicación entera; el hosting la sirve y no recibe un solo dato
  • TypeScript — modo estricto en todo el repositorio
  • Web Workers — la frontera: los datos crudos viven ahí y hacia la interfaz solo cruzan conteos, nombres de columna y muestras enmascaradas
  • Web Crypto — HMAC-SHA256 para los seudónimos y AES-GCM con PBKDF2 de 600.000 vueltas para la bóveda y la bitácora; cero dependencias de criptografía
  • PapaParse y SheetJS — CSV en streaming y Excel con su tope declarado y medido
  • Vitest y Playwright — las pruebas, incluidas las permanentes de determinismo, de honestidad del lenguaje y de la garantía de red

Cómo se accede

Velo está desplegado y funcionando, pero su dirección todavía no se publica: el acceso va por lista de espera mientras se completa la ronda de pruebas.

El repositorio no se enlaza desde la vitrina (regla de cero enlaces del portafolio).

Avísame cuando abraEntras a la lista de espera. Sin promesa de fecha.

Ficha anclada al export del 2026-08-21 · v0.1.0 · 4 sprints cerrados

Cómo se accede

Solo las apps tienen lista de espera: dime cuál te interesa y te aviso cuando abra. Sin promesa de fecha.

Avísame cuando abra