Skip to content

Releases: amirmiir/PC2-Repo

Release list

v1.0.0

Choose a tag to compare

@amirmiir amirmiir released this 04 Oct 07:49
60664de

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 ss hacia 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 2

v0.1.0

Choose a tag to compare

@amirmiir amirmiir released this 03 Oct 03:27
effdfb5

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.