Viernes por la tarde, fallo intermitente en el proceso de facturación y un proveedor externo que pide el log completo para poder mirarlo. El fichero tiene decenas de miles de líneas y dentro hay correos de clientes, cabeceras Authorization: Bearer …, números de póliza y algún IBAN suelto dentro de una traza de error. Mandarlo tal cual no es una opción. Limpiarlo a mano, tampoco.
Así que toca escribir el filtro: un scrub que lee el log línea a línea y cambia lo sensible por marcadores antes de que el fichero salga de tu equipo.
Lo difícil no es la primera regla
La regex del correo la escribe cualquiera. El problema empieza en la segunda, y sobre todo en cómo conviven entre ellas:
- La regla de tokens (cadenas largas alfanuméricas) se comía los hashes de commit y los identificadores de petición. Justo lo que soporte necesita para correlacionar el fallo.
- El IBAN aparecía unas veces con espacios y otras sin ellos, y en una traza venía partido por un salto de línea del propio formateador.
- Pasar el filtro dos veces volvía a redactar los marcadores ya puestos, y el diff dejaba de cuadrar. Tenía que ser idempotente.
- Al tapar el identificador de usuario perdías la capacidad de seguir una sesión entera. No servía borrar: hacía falta seudonimizar de forma estable, el mismo correo al mismo marcador, siempre.
Iterar con el log de verdad delante
Aquí es donde tener el modelo corriendo en el mismo sitio que los datos cambia el trabajo. Pegas veinte líneas reales en el IDE, le pides que ajuste el orden de las reglas, ves el resultado, señalas las tres líneas que no debería haber tocado, pide una excepción para los hashes de cuarenta caracteres, vuelves a pasar. Cinco o seis vueltas cortas mirando el caso concreto, no un ejemplo inventado.
Con un asistente en la nube ese ciclo directamente no existe. Cada iteración significaría subir el material que estás intentando proteger.
Para construir la herramienta que oculta los datos, necesitas ver los datos.
Es un pez que se muerde la cola y solo se desenreda si el modelo trabaja donde ya está el fichero. Y no es un caso raro: pasa igual con un anonimizador de dumps, con un normalizador de exportaciones de CRM o con cualquier cosa que toque datos de clientes.
De ahí salieron también las pruebas: unas cuantas líneas reales convertidas en fixtures con los valores cambiados a mano, más un test que aplica el filtro dos veces y comprueba que la salida no se mueve. Esas sí se pueden versionar.
El resultado son unas doscientas líneas, una tabla de reglas ordenadas y una lista de excepciones explícitas. Lo interesante no es el filtro en sí. Es que se pudo escribir mirando el problema real, sin que ni el log ni el prompt cruzaran ninguna red.
Elffuss Code es un IDE con la IA corriendo dentro de tu navegador: ábrelo y escribe tu propio filtro con el log real delante, porque ni el código ni lo que le preguntes suben a ningún sitio.
Abrir Code →