Configuración de nginx para servir el Generador de Notas:
Cambios realizados:
- servicios/nginx/conf.d/ns8.conf: Agregados locations /notas/ y /notas/plantillas/
- servicios/nginx/conf.d/notas.conf: Configuración modular creada
Acceso web:
- https://ns8.frlr.utn.edu.ar/notas/ - Generador de Notas
- https://ns8.frlr.utn.edu.ar/notas/plantillas/ - Plantillas markdown
Documentación actualizada:
- A08.P001_Sistema-Web-Notas.md: Fase 4 completada
- A08_dtic-NOTAS.md: Tabla de nodos y acceso web
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Nuevo ámbito A08 para gestión de notas e informes formales:
Arquitectura:
- Separación contenido (archivos .md) de presentación (web HTML)
- Plantillas configurables para diferentes tipos de notas
- Vista previa con membrete institucional UTN-FRLR
- Impresión/PDF via window.print() con CSS @media print
Archivos creados:
- docs/ambito/dtic-NOTAS/A08_dtic-NOTAS.md (manifiesto)
- docs/ambito/dtic-NOTAS/A08.P001_Sistema-Web-Notas.md (plan)
- docs/ambito/dtic-NOTAS/app/index.html (interfaz)
- docs/ambito/dtic-NOTAS/app/styles.css (estilos institucionales)
- docs/ambito/dtic-NOTAS/app/app.js (lógica + marked.js CDN)
- docs/ambito/dtic-NOTAS/plantillas/nota-simple.md
- docs/ambito/dtic-NOTAS/contenido/2026/ejemplo-nota.md
Migración:
- dtic-NOTAs/ movido a docs/ambito/dtic-NOTAS/dtic-NOTAs/
- Histórico 2019-2025 preservado en .Hist/
- Convención de nombres documentada: Nota-<AÑO><NUMERO>_<Asunto>.<ext>
Uso:
1. Abrir docs/ambito/dtic-NOTAS/app/index.html en navegador
2. Seleccionar plantilla o cargar archivo .md
3. Completar datos de nota
4. Generar vista previa e imprimir
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Implementación 22:10:
- Registro DMARC agregado con p=none (monitoreo)
- Reportes de agregado y forense a dtic@frlr.utn.edu.ar
- Alineación estricta (adkim=s, aspf=s)
Estado:
- SPF: ✅ v=spf1 mx ip4:190.114.205.2 include:spf.protection.outlook.com -all
- DKIM: ✅ Selectores 1 y 2 respondiendo
- DMARC: ✅ p=none con reportes
Gmail: Período de calentamiento 24-72 horas para mejora de reputación.
Documentación actualizada:
- Plan A07.P002: Triada completa
- A07_dtic-DNS: Estado actualizado
- IA.md: Actualización
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Actualización post-verificación 22:00:
Documentación actualizada:
- A07.P002: Fase 4 actualizada con observaciones de spam
- A07_dtic-DNS: Estado cambiado a 'En Monitoreo'
- IA.md: Lección agregada sobre Gmail spam y causas
Próximo paso: Agregar registro DMARC p=none
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Crear plan A07.P002_Resolver-DKIM-Gmail.md
- Diagnóstico inicial: registros selector1/2._domainkey NO existen
- SPF configurado correctamente (include:spf.protection.outlook.com)
- DMARC no configurado (opcional, no bloqueante)
Acciones requeridas:
1. Agregar 2 registros CNAME en DNS de la UTN
2. Esperar propagación (15-30 min)
3. Habilitar DKIM en Microsoft 365 Admin Center
Dron enviado: dron_172429_2784151_e8aa34 (evento AUTO registrado)
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Armonía Integral post-creación del ámbito dtic-DNS:
- Agregar referencia a docs/ambito/dtic-DNS/ en docs/contexto/IA.md
- Registrar evento #1417 en bitácora web (ámbito dtic-DNS operativo)
- Crear ámbito 'dtic-DNS' en base de datos (ID: 8)
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Crear ámbito A07_dtic-DNS con manifiesto y plan A07.P001
- Implementar CLI dns.rb con 7 subcomandos (status, zona, registros, buscar, backup, reload, corefile)
- Detectar servidor srvv-dns: CoreDNS en Docker (10.0.10.2, VM 112 en srv-pmox1)
- Documentar zona frlr.utn.edu.ar con 20+ registros (A, CNAME, MX, TXT, SRV)
- Actualizar ficha nodos/srvv-dns.md con información técnica completa
- Agregar script reparar.sh para ns8-apps (pendiente de ejecución)
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Cambios:
- Estado: En Planificación → En Implementación (Fase 1 completa)
- Documentar atomisidad como principio de codificación
- Actualizar tabla de herramientas existentes
- Marcar Fase 0 y Fase 1 como ✅ completas
- Actualizar diagrama de flujo con Dron::Base
- Actualizar componentes implementados
- Agregar sección de entregables Fase 1
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Actualización del plan A01.P009 para definir la arquitectura de
registros y comunicación de drones mediante la Bitácora Web.
Arquitectura de registros:
- CAPA 1 (Interna): Tablas dron_logs, dron_avances, dron_metricas
- NO visibles directamente en la web
- Almacenan detalle paso-a-paso de cada dron
- Usadas por dron_vigilante para monitoreo
- CAPA 2 (Visible): Bitácora Web (events consolidados)
- Resumen legible de flujos/orquestaciones
- Estado: ⏳ En ejecución | ✅ Completado | ❌ Fallido
- URL: http://localhost:5174/bitacoras/
Dron Vigilante:
- Escanea flota y detecta zombies (heartbeat > 5min)
- Registra avances en bitacoras.dron_avances
- Consolida resumen en bitacoras.events (visible en web)
- Alerta anomalías (>5 fallos en 1h)
Nueva Fase 0 (Prioritaria):
- F0.T1-T3: Migraciones de tablas internas
- F0.T4: dron_db.rb para acceso a datos
- F0.T5: Hooks DB-First para auto-registro
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Nuevo plan A01.P009 que define la arquitectura de drones como engranajes
especializados que forman una maquinaria integral mediante composición.
Filosofía de diseño:
- AtomicDrones: Cada dron hace UNA cosa y la hace bien
- Inteligencia de Colmena: Soluciones complejas emergen de drones simples
- No FrankenDrones: Rechazar monolitos que intentan hacer todo mal
Tipos de drones definidos:
- 🛠️ Ejecutor: Ejecuta comando y reporta resultado
- 👁️ Vigilante: Monitorea estado de otros drones
- 🩹 Sanador: Repara drones zombies/fallidos
- 📅 Planificador: Lanza drones según cron
- 📨 Mensajero: Notifica resultados
- 🎼 Orquestador: Compone múltiples drones en flujo
Fases de implementación:
- Fase 1: Atomicidad (separación de responsabilidades)
- Fase 2: Composición (orquestación de flujos)
- Fase 3: Planificación (drones programados)
- Fase 4: Inteligencia de Colmena (comunicación por eventos)
- Fase 5: Observabilidad (dashboard y métricas)
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Despliegue de clave RSA al servidor SSH en nodo pcv-dasu0.
- Ejecución de Rename-Computer con DomainCredential via PowerShell Remoto.
- Actualización de nombre en Proxmox VE (VM 102).
- Comprobación de propagación DNS exitosa.
- Actualización de fichas de nodo y planes.
- Renombramiento resuelto vía WinRM/Invoke-Command desde dasu-srvv-sql.
- SSHD de dc-dasuten estaba instalado pero fallaba al iniciar; solucionado interactuando desde sql.
- qm set 100 --name ejecutado.
- Ficha de nodo y referencias en documentacion actualizadas.
Completado:
- Clave RSA generada en srv-dasu (rmonla@srv-dasu) y desplegada en VMs
- sshpass instalado en srv-dasu para deploy inicial de claves
- Rename-Computer con credenciales de dominio (DomainCredential)
- Proxmox display name actualizado (qm set 101 --name)
- Ficha nodos/sql-dasuten.md → nodos/dasu-srvv-sql.md
- Referencias actualizadas en P2601 manifiesto y plan AD-Join
Nuevo subcomando: ./adn/tools/run nodos info <nodo>
- Muestra IP, puerto SSH, usuario, auth, bóveda, host, SO, VMID
- Lecturas directas de fichas nodos/*.md via NodosInfo
- Campos no detectados se marcan como (no detectado)
- Completa la arquitectura: info.rb es submódulo + herramienta CLI
Ejemplo: nodos info pcv-dasu0 → IP, puerto 7022, DASUTEN\admindasu...
- 15 tests, 0 failures
- Evento 1079 (17:25→17:28)