Repository navigation
Releases: amirmiir/PC2-Repo
Releases · amirmiir/PC2-Repo
Release list
v1.0.0
v1.0.0 - Sprint 2: Grafo DNS con Ciclos y Conectividad
Fecha de Release: 2025-10-03
Tipo: Meta - Sprint 2 Completo
Funcionalidades Principales
Detección de Ciclos CNAME
- Algoritmo visited tracking para identificar bucles infinitos en cadenas CNAME
- Reporte estructurado con nodos involucrados y recomendaciones
- Validación automática con palabra clave "CYCLE" para tests
Verificación de Conectividad DNS
- Socket statistics con
sshacia IPs finales del grafo - Sondas HTTP/HTTPS con
curl(puertos 80/443) - Timeouts configurables y manejo robusto de errores
Construcción de Grafo DNS
- Edge list determinista desde resoluciones DNS
- Métricas de profundidad máxima y promedio
- Post-procesamiento respetando separación C-L-E
Artefactos Generados
out/
├── dns_resolves.csv # Resoluciones DNS normalizadas
├── edges.csv # Edge list del grafo
├── depth_report.txt # Métricas de profundidad
├── cycles_report.txt # Detección de ciclos CNAME
├── connectivity_ss.txt # Verificación con ss
└── curl_probe.txt # Sondas HTTP/HTTPS
Cobertura de Tests
- 40 casos de prueba Bats implementados
- Metodología AAA en todos los tests
- 4 suites completas: resolve, cycles/depth, connectivity, env contracts
Documentación
- Contratos de salidas con validaciones grep/awk
- Bitácoras Sprint 1-2 documentadas por alumno
- Comandos de validación para cada artefacto
Mejoras Técnicas
Caché Incremental
- Make dependencies para builds optimizados
- 32x más rápido en segunda corrida sin cambios
- Regeneración inteligente solo cuando cambian dependencias
Robustez de Tests
- Aislamiento BATS_TEST_TMPDIR entre tests
- Teardown automático con cleanup garantizado
- Validaciones numéricas de profundidad y métricas
12-Factor Compliance
- Configuración via variables de entorno (DOMAINS_FILE, DNS_SERVER)
- Separación C-L-E mantenida en todos los scripts
- Build determinista y reproducible
Comandos Principales
# Build completo con caché
make build
# Ejecutar tests completos
make test
# Generar todos los artefactos
make run
# Limpiar generados
make clean
Métricas de Sprint 2
- 6 artefactos de salida generados
- 3 scripts principales (resolve_dns, build_graph, verify_connectivity)
- 931 líneas de código en tests
- 100% completitud según guía Sprint 2v0.1.0
Sprint 1 Completado - Resolución DNS con normalización y contratos
Funcionalidades implementadas:
- Resolución DNS A/CNAME con dig configurable por variables de entorno
- Normalización de salidas en formato CSV estandarizado
- Deduplicación automática de registros DNS duplicados
- Sistema de build automatizado con Make (tools, build, test, clean)
- Contratos de salida documentados con validaciones awk
- Suite de pruebas Bats para validación de formato y funcionalidad
Artefactos generados:
- out/dns_resolves.csv: Resoluciones normalizadas con TTL y timestamp
- Makefile: Automatización completa del flujo de trabajo
- docs/contrato-salidas.md: Especificación de formatos de salida
- tests/01_resolve_basic.bats: 8 casos de prueba validados
Cumplimiento 12-Factor:
- Configuración via variables de entorno (DOMAINS_FILE, DNS_SERVER)
- Separación Configurar-Lanzar-Ejecutar implementada
- Build reproducible y determinista
Base sólida establecida para Sprint 2: construcción de grafo y detección de ciclos.