El problema inicial
El proyecto comenzó con una necesidad concreta: extraer de Jira historias de usuario, tareas, subtareas, comentarios, históricos y adjuntos a través de una VPN y un proxy corporativo. La información debía quedar ordenada por proyecto y conservar evidencias suficientes para poder analizarla sin repetir cada consulta.
El primer reto fue de conectividad. La VPN podía estar levantada y, aun así, el proxy devolver un HTTP 407 antes de llegar a la negociación TLS con Jira. Separar túnel, proxy, certificados y API evitó atribuir el fallo a la capa equivocada y llevó a diseñar comprobaciones independientes para cada frontera.
De exportador a aplicación web
El exportador evolucionó hasta una plataforma web multiusuario. La captura sigue utilizando un contenedor conectado al espacio de red de OpenConnect, pero la web y PostgreSQL pueden arrancar sin VPN. Las funciones que dependen de los sistemas corporativos permanecen bloqueadas hasta que la sesión personal está conectada.
La aplicación conserva en PostgreSQL:
- historias, tareas y subtareas con sus datos originales;
- páginas y adjuntos de Confluence relacionados;
- binarios, tamaños y hashes SHA-256;
- ejecuciones, avisos, usuarios, roles y auditoría;
- inventarios y relaciones entre requisitos funcionales y de desarrollo.
Identidad y secretos por usuario
Cada persona completa un alta corporativa y necesita aprobación. La configuración común se separa de las preferencias y credenciales personales. Los secretos se cifran por usuario, el MFA de la VPN solo viaja al proceso que lo necesita y nunca se guarda, y los detalles mostrados en monitorización se sanean.
La navegación refleja las dependencias reales: sin VPN pueden consultarse inicio, configuración y administración, pero captura, datos, matching, preparación RF/RD, Dimensions y el visor de diagnóstico quedan protegidos.
Unir Jira, Confluence y Dimensions
Después de capturar Jira y Confluence, el proyecto permite asociar historias con requisitos funcionales existentes y preparar versiones de requisitos de desarrollo. La integración con Dimensions combina Selenium para el inicio de sesión corporativo con llamadas HTTP para operaciones estructuradas, reduciendo la fragilidad de automatizar toda la interfaz visual.
Los datos de cada proyecto se mantienen separados. Los selectores de contexto comparten la misma elección y las capturas incrementales reutilizan elementos cerrados que no han cambiado, evitando descargas y procesamiento innecesarios.
IA con candidatos acotados y revisión humana
El matching ejecuta primero un algoritmo local y después utiliza workers de IA por lotes para los casos que necesitan más contexto. El modelo solo puede elegir entre candidatos previamente acotados; sus propuestas no crean relaciones automáticamente.
Cada resultado conserva método, porcentaje, evidencias y diferencia frente a otras alternativas. El usuario selecciona qué asociaciones aplicar. Para generar una versión técnica, la IA analiza las historias agrupadas, Confluence e imágenes asociadas, pero el texto debe revisarse y aprobarse antes de habilitar el paquete correspondiente.
Operaciones sensibles sobre requisitos
Las operaciones capaces de modificar Dimensions se han diseñado con más barreras que las lecturas. La creación de relaciones y la retirada de requisitos gestionados exigen rol suficiente, sesión activa, código de un solo uso, relectura del estado y auditoría.
El borrado solo admite objetos cuya procedencia pueda demostrarse. Se excluyen requisitos manuales, previos o sin marca verificable; antes de confirmar se vuelven a comprobar sus relaciones. Los agrupadores únicamente se eliminan cuando quedan vacíos y no contienen nodos protegidos.
Las pruebas automatizadas no borraron requisitos reales. Esta distinción es importante: el mecanismo y sus barreras están implementados y desplegados, pero una validación sin escrituras reales no equivale a haber ejecutado una limpieza productiva.
Evolución reciente
La versión documentada actualmente es la 3.2.3. Entre las mejoras recientes están el acceso exclusivamente web, el pool central de diez workers de IA, la monitorización de sesiones, el bloqueo funcional por VPN, la lectura más robusta de inventarios, la limpieza segura de jerarquías vacías y la recuperación correcta del estado después de trabajos en segundo plano.
La validación actual reúne 297 pruebas y 6 subpruebas. La web se ha publicado mediante imágenes firmadas y las comprobaciones posteriores verificaron respuesta HTTP correcta y estabilidad del contenedor.
Lo que aprendí
- Una integración empresarial debe modelar las fronteras de red y autenticación, no ocultarlas.
- La procedencia del dato es tan importante como el dato cuando existen operaciones destructivas.
- La IA resulta más segura cuando trabaja sobre candidatos acotados y requiere confirmación humana.
- Las operaciones largas necesitan cola, progreso persistente, reanudación y reconciliación final.
- Una plataforma mantenible debe distinguir con precisión lo desplegado, lo probado con dobles y lo validado contra sistemas reales.
