Reestructuración modular integral de servicios, reorganización de gestión en docs/ y limpieza profunda del repositorio
@@ -5,6 +5,15 @@ servicios/nginx/certs/
|
||||
servicios/sysacad/data/
|
||||
servicios/sysacad/logs/
|
||||
|
||||
# Datos pesados
|
||||
dtic-APPs
|
||||
dtic-DIGIs/
|
||||
backups/
|
||||
tools/w-zombi/payloads/
|
||||
*.7z
|
||||
*.zip
|
||||
*.rar
|
||||
|
||||
# Archivos de entorno y secretos
|
||||
.env
|
||||
*.env
|
||||
@@ -29,10 +38,11 @@ tools/ns8-candados/.boveda.json
|
||||
apps/
|
||||
tools/w-zombi/payloads/runSysDasuten.zip
|
||||
|
||||
# Node
|
||||
node_modules/
|
||||
dist/
|
||||
build/
|
||||
# Node and Ruby Dependencies
|
||||
**/node_modules/
|
||||
**/dist/
|
||||
**/build/
|
||||
**/vendor/bundle/
|
||||
.pnp
|
||||
.pnp.js
|
||||
.yarn/cache
|
||||
|
||||
@@ -0,0 +1,203 @@
|
||||
# triggers.yml — Configuración de triggers para sincronización automática del ADN
|
||||
# =============================================================================
|
||||
# Este archivo define las reglas de triggers que implementan el Principio de
|
||||
# Armonía Integral: cuando un dato cambia en un sitio, se propaga automáticamente
|
||||
# a todos los demás.
|
||||
#
|
||||
# 📅 Última actualización: 2026-03-07 (Fase 2: Automatización Inteligente)
|
||||
# 📚 Referencia: adn/02_bitacora.md (Triggers de sincronización en cascada)
|
||||
# 📚 Plan: docs/plan/260307-1400_Plan_Mejoras_ADN.md
|
||||
#
|
||||
# Estructura de un trigger:
|
||||
# - evento: Tipo de evento que dispara el trigger
|
||||
# - condicion: Expresión que debe cumplirse (opcional)
|
||||
# - accion: Acción a ejecutar cuando se dispara el trigger
|
||||
# - descripcion: Descripción humana del propósito del trigger
|
||||
# - habilitado: true/false (permite desactivar triggers individualmente)
|
||||
#
|
||||
|
||||
# ─── Triggers de Bitácoras (Sincronización en Cascada) ──────────────────
|
||||
# Implementan los triggers definidos en adn/02_bitacora.md sección 5.
|
||||
|
||||
bitacoras:
|
||||
# Trigger 1: Detalle → En Proceso
|
||||
# Cuando se inserta una nueva viñeta en la cronología de una tarea activa (⏳),
|
||||
# se actualiza la columna DETALLE de esa misma tarea en la tabla "En Proceso".
|
||||
- evento: "nueva_viñeta_cronologia"
|
||||
condicion: "estado_tema == '⏳'"
|
||||
accion: "actualizar_detalle_en_proceso"
|
||||
descripcion: "Propagar detalles de tareas activas a tabla En Proceso"
|
||||
habilitado: true
|
||||
|
||||
# Trigger 2: Cierre → Resumen Integral
|
||||
# Cuando el estado de la última tarea activa de un Nodo cambia de ⏳ a ✅ (o ⚠️),
|
||||
# se desencadena la redacción o actualización de su RESUMEN INTEGRAL.
|
||||
- evento: "estado_cambiado"
|
||||
condicion: "estado_anterior == '⏳' and (estado_nuevo == '✅' or estado_nuevo == '⚠️')"
|
||||
accion: "actualizar_resumen_integral"
|
||||
descripcion: "Generar resumen integral al cerrar actividades de un nodo"
|
||||
habilitado: true
|
||||
|
||||
# Trigger 3: Cambio de Día → Rollover
|
||||
# Al crear un nuevo archivo de bitácora:
|
||||
# 1. Migrar actividades Pendientes y En Proceso hacia las tablas del nuevo día.
|
||||
# 2. En la bitácora del día fenecido, cambiar Estado Tema de las tareas migradas a ➡️.
|
||||
# 3. Inyectar hipervínculos bidireccionales de trazabilidad transdiaria.
|
||||
- evento: "nueva_bitacora_creada"
|
||||
condicion: ""
|
||||
accion: "ejecutar_rollover"
|
||||
descripcion: "Migrar tareas pendientes/en proceso al nuevo día con referencias bidireccionales"
|
||||
habilitado: true
|
||||
|
||||
# Trigger 4: Actualización de Métricas Híbridas
|
||||
# Cuando se registra una métrica híbrida ([Físico/Remoto:]), extraer los datos
|
||||
# para el dashboard de telemetría.
|
||||
- evento: "metrica_hibrida_registrada"
|
||||
condicion: ""
|
||||
accion: "extraer_metricas_telemetria"
|
||||
descripcion: "Extraer métricas híbridas para gráficos del dashboard"
|
||||
habilitado: true
|
||||
|
||||
# Trigger 5: Validación de Formato en Tiempo Real
|
||||
# Cuando se guarda una bitácora, validar automáticamente el formato.
|
||||
- evento: "bitacora_guardada"
|
||||
condicion: ""
|
||||
accion: "validar_formato_adn"
|
||||
descripcion: "Validar formato del ADN después de guardar cambios"
|
||||
habilitado: true
|
||||
|
||||
# ─── Triggers de Nodos (Actualización de Ontología) ──────────────────────
|
||||
# Mantienen la coherencia entre las fichas de nodos y la ontología del sistema.
|
||||
|
||||
nodos:
|
||||
# Trigger 1: Cambio en Ficha de Nodo → Actualizar Ontología
|
||||
# Cuando se modifica una ficha de nodo (ej: IP, rol, estado), actualizar
|
||||
# la referencia correspondiente en adn/01_ontologia.md.
|
||||
- evento: "nodo_modificado"
|
||||
condicion: ""
|
||||
accion: "actualizar_ontologia"
|
||||
descripcion: "Propagar cambios de nodos a la ontología del sistema"
|
||||
habilitado: true
|
||||
|
||||
# Trigger 2: Nuevo Nodo → Crear Referencia en Proyectos Relacionados
|
||||
# Cuando se crea una nueva ficha de nodo, verificar si pertenece a algún
|
||||
# proyecto y agregarlo a la sección "Nodos Involucrados".
|
||||
- evento: "nuevo_nodo_creado"
|
||||
condicion: ""
|
||||
accion: "vincular_nodo_a_proyectos"
|
||||
descripcion: "Vincular nuevo nodo a proyectos relacionados"
|
||||
habilitado: true
|
||||
|
||||
# Trigger 3: Cambio de Estado de Nodo → Actualizar Dashboard
|
||||
# Cuando cambia el estado operativo de un nodo (ej: ✅ → ⚠️), actualizar
|
||||
# el dashboard de monitoreo.
|
||||
- evento: "estado_nodo_cambiado"
|
||||
condicion: ""
|
||||
accion: "actualizar_dashboard_estados"
|
||||
descripcion: "Reflejar cambios de estado de nodos en el dashboard"
|
||||
habilitado: true
|
||||
|
||||
# ─── Triggers de Proyectos (Integración Transversal) ─────────────────────
|
||||
# Conectan proyectos con sus bitácoras y nodos asociados.
|
||||
|
||||
proyectos:
|
||||
# Trigger 1: Nuevo Hito de Proyecto → Registrar en Bitácora
|
||||
# Cuando se agrega o completa un hito en un manifiesto de proyecto,
|
||||
# registrar el evento en la bitácora del día actual.
|
||||
- evento: "hito_proyecto_actualizado"
|
||||
condicion: ""
|
||||
accion: "registrar_en_bitacora"
|
||||
descripcion: "Registrar hitos de proyectos en bitácoras diarias"
|
||||
habilitado: true
|
||||
|
||||
# Trigger 2: Cambio en Proyecto → Actualizar Referencias Cruzadas
|
||||
# Cuando se modifica un manifiesto de proyecto, actualizar las referencias
|
||||
# en nodos y bitácoras relacionadas.
|
||||
- evento: "proyecto_modificado"
|
||||
condicion: ""
|
||||
accion: "actualizar_referencias_cruzadas"
|
||||
descripcion: "Mantener coherencia en referencias a proyectos"
|
||||
habilitado: true
|
||||
|
||||
# Trigger 3: Cierre de Proyecto → Generar Reporte Final
|
||||
# Cuando un proyecto cambia a estado ✅, generar un reporte de cierre
|
||||
# y archivar documentación relevante.
|
||||
- evento: "estado_proyecto_cambiado"
|
||||
condicion: "estado_nuevo == '✅'"
|
||||
accion: "generar_reporte_cierre"
|
||||
descripcion: "Generar reporte de cierre para proyectos finalizados"
|
||||
habilitado: true
|
||||
|
||||
# ─── Triggers de Evolución del ADN (Propagación de Cambios) ──────────────
|
||||
# Implementan la Evolución Progresiva: cuando se actualiza una hebra del ADN,
|
||||
# propagar los cambios a las dependencias.
|
||||
|
||||
adn:
|
||||
# Trigger 1: Nueva Regla en ADN → Actualizar Bitácoras Activas
|
||||
# Cuando se agrega o modifica una regla en una hebra del ADN, verificar
|
||||
# si las bitácoras activas necesitan actualizarse.
|
||||
- evento: "hebra_adn_modificada"
|
||||
condicion: ""
|
||||
accion: "verificar_impacto_bitacoras"
|
||||
descripcion: "Propagar cambios en hebras ADN a bitácoras afectadas"
|
||||
habilitado: true
|
||||
|
||||
# Trigger 2: Cambio en Iconografía → Actualizar Referencias Visuales
|
||||
# Cuando se actualiza adn/04_iconografia.md, escanear bitácoras y proyectos
|
||||
# para actualizar iconos obsoletos.
|
||||
- evento: "iconografia_actualizada"
|
||||
condicion: ""
|
||||
accion: "actualizar_iconos_obsoletos"
|
||||
descripcion: "Actualizar iconografía en toda la documentación"
|
||||
habilitado: true
|
||||
|
||||
# Trigger 3: Nueva Directiva IA → Notificar y Aplicar
|
||||
# Cuando se actualiza adn/05_ia.md, notificar al operador y aplicar
|
||||
# las nuevas directivas en las siguientes interacciones.
|
||||
- evento: "directivas_ia_actualizadas"
|
||||
condicion: ""
|
||||
accion: "notificar_y_aplicar_directivas"
|
||||
descripcion: "Aplicar nuevas directivas de IA tras actualización"
|
||||
habilitado: true
|
||||
|
||||
# ─── Configuración de Ejecución ──────────────────────────────────────────
|
||||
configuracion:
|
||||
# Habilitar/deshabilitar todo el sistema de triggers
|
||||
sistema_habilitado: false # Cambiar a true en Fase 2
|
||||
|
||||
# Modo de ejecución
|
||||
modo: "batch" # batch, instantaneo, cron
|
||||
intervalo_cron: "*/5 * * * *" # Ejecutar cada 5 minutos si modo=cron
|
||||
|
||||
# Logging y depuración
|
||||
logging:
|
||||
nivel: "INFO" # DEBUG, INFO, ADVERTENCIA, ERROR
|
||||
archivo: "../../logs/adn/triggers.log"
|
||||
formato: "json" # json, texto
|
||||
|
||||
# Seguridad
|
||||
verificar_permisos: true
|
||||
max_ejecuciones_paralelas: 3
|
||||
|
||||
# Notificaciones
|
||||
notificar_errores: true
|
||||
notificar_ejecucion_exitosa: false
|
||||
|
||||
# ─── Notas de Implementación ─────────────────────────────────────────────
|
||||
#
|
||||
# 📋 ESTADO: CONFIGURACIÓN PRELIMINAR
|
||||
# Este archivo define la configuración para el sistema de triggers que será
|
||||
# implementado en la Fase 2 del plan de mejoras del ADN.
|
||||
#
|
||||
# La implementación del motor de triggers se encuentra en:
|
||||
# tools/adn/triggers.rb (Fase 2)
|
||||
#
|
||||
# Los triggers se ejecutarán mediante:
|
||||
# ruby tools/adn.rb triggers [--test] [--force]
|
||||
#
|
||||
# Para probar triggers individualmente durante el desarrollo:
|
||||
# ruby tools/adn.rb triggers --test --trigger="nombre_del_trigger"
|
||||
#
|
||||
# ⚠️ ADVERTENCIA: No modificar manualmente las secciones marcadas como
|
||||
# "GENERADO AUTOMÁTICAMENTE" una vez que el sistema esté en producción.
|
||||
#
|
||||
@@ -1,227 +0,0 @@
|
||||
Incoming 2025-08-08, 12:26 Passwd 1740858143 1740858143
|
||||
Incoming 2025-08-08, 12:32 Token 1740858143 1740858143
|
||||
Incoming 2025-08-08, 12:32 Token 1740858143 1740858143
|
||||
Incoming 2025-08-09, 09:47 Token 1740858143 1740858143
|
||||
Incoming 2025-08-09, 10:53 Token 1740858143 1740858143
|
||||
Incoming 2025-08-09, 19:34 Token 1740858143 1740858143
|
||||
Incoming 2025-08-14, 20:08 Token 1740858143 1740858143
|
||||
Incoming 2025-08-15, 11:31 Token 1740858143 1740858143
|
||||
Incoming 2025-08-19, 11:49 Token 1740858143 1740858143
|
||||
Incoming 2025-08-20, 23:40 Token 1740858143 1740858143
|
||||
Incoming 2025-08-21, 19:24 Token 1740858143 1740858143
|
||||
Incoming 2025-08-22, 07:23 Token 1740858143 1740858143
|
||||
Incoming 2025-08-22, 10:03 Token 1740858143 1740858143
|
||||
Incoming 2025-08-22, 12:26 Token 1740858143 1740858143
|
||||
Incoming 2025-08-26, 17:04 Token 1740858143 1740858143
|
||||
Incoming 2025-08-26, 19:07 Token 1740858143 1740858143
|
||||
Incoming 2025-08-26, 19:24 Token 1740858143 1740858143
|
||||
Incoming 2025-08-27, 00:36 Token 1740858143 1740858143
|
||||
Incoming 2025-08-27, 00:50 Token 1740858143 1740858143
|
||||
Incoming 2025-08-29, 10:59 Token 1740858143 1740858143
|
||||
Incoming 2025-08-29, 21:26 Token 1740858143 1740858143
|
||||
Incoming 2025-08-29, 21:41 Token 1740858143 1740858143
|
||||
Incoming 2025-08-30, 09:47 Token 1740858143 1740858143
|
||||
Incoming 2025-08-30, 10:53 Token 1740858143 1740858143
|
||||
Incoming 2025-08-30, 13:56 Token 1740858143 1740858143
|
||||
Incoming 2025-08-31, 09:58 Token 1740858143 1740858143
|
||||
Incoming 2025-09-04, 10:40 Token 1740858143 1740858143
|
||||
Incoming 2025-09-04, 21:48 Token 1740858143 1740858143
|
||||
Incoming 2025-09-05, 08:27 Token 1740858143 1740858143
|
||||
Incoming 2025-09-09, 17:27 Token 1740858143 1740858143
|
||||
Incoming 2025-09-22, 19:48 Token 1740858143 1740858143
|
||||
Incoming 2025-09-22, 20:49 Token 1740858143 1740858143
|
||||
Incoming 2025-09-23, 00:10 Token 1740858143 1740858143
|
||||
Incoming 2025-09-25, 07:28 Token 1740858143 1740858143
|
||||
Incoming 2025-09-25, 12:43 Token 1740858143 1740858143
|
||||
Incoming 2025-09-25, 13:31 Token 1740858143 1740858143
|
||||
Incoming 2025-09-25, 18:54 Token 1740858143 1740858143
|
||||
Incoming 2025-09-25, 21:39 Token 1740858143 1740858143
|
||||
Incoming 2025-09-26, 07:14 Token 1740858143 1740858143
|
||||
Incoming 2025-09-29, 07:03 Token 1740858143 1740858143
|
||||
Incoming 2025-10-01, 23:31 Token 1740858143 1740858143
|
||||
Incoming 2025-10-02, 00:39 Token 1740858143 1740858143
|
||||
Incoming 2025-10-02, 06:36 Token 1740858143 1740858143
|
||||
Incoming 2025-10-02, 07:10 Token 1740858143 1740858143
|
||||
Incoming 2025-10-02, 18:24 Token 1740858143 1740858143
|
||||
Incoming 2025-10-03, 06:47 Token 1740858143 1740858143
|
||||
Incoming 2025-10-03, 07:02 Token 1740858143 1740858143
|
||||
Incoming 2025-10-03, 10:53 Token 1740858143 1740858143
|
||||
Incoming 2025-10-03, 10:54 Token 1740858143 1740858143
|
||||
Incoming 2025-10-03, 10:56 Token 1740858143 1740858143
|
||||
Incoming 2025-10-03, 13:06 Token 1740858143 1740858143
|
||||
Incoming 2025-10-08, 23:53 Token 1740858143 1740858143
|
||||
Incoming 2025-10-08, 23:53 Token 1740858143 1740858143
|
||||
Incoming 2025-10-09, 00:02 Token 1740858143 1740858143
|
||||
Incoming 2025-10-09, 01:21 Token 1740858143 1740858143
|
||||
Incoming 2025-10-15, 23:57 Token 1740858143 1740858143
|
||||
Incoming 2025-10-16, 22:01 Token 1740858143 1740858143
|
||||
Incoming 2025-10-22, 23:13 Token 1740858143 1740858143
|
||||
Incoming 2025-10-23, 20:03 Token 1740858143 1740858143
|
||||
Incoming 2025-10-28, 13:03 Token 1740858143 1740858143
|
||||
Incoming 2025-10-29, 11:15 Token 1740858143 1740858143
|
||||
Incoming 2025-10-29, 12:02 Token 1740858143 1740858143
|
||||
Incoming 2025-10-29, 23:40 Token 1740858143 1740858143
|
||||
Incoming 2025-10-30, 01:07 Token 1740858143 1740858143
|
||||
Incoming 2025-10-30, 08:23 Token 1740858143 1740858143
|
||||
Incoming 2025-10-30, 08:24 Token 1740858143 1740858143
|
||||
Incoming 2025-10-31, 19:47 Token 1740858143 1740858143
|
||||
Incoming 2025-10-31, 19:51 Token 1740858143 1740858143
|
||||
Incoming 2025-10-31, 20:42 Token 1740858143 1740858143
|
||||
Incoming 2025-11-01, 08:47 Token 1740858143 1740858143
|
||||
Incoming 2025-11-01, 09:45 Token 1740858143 1740858143
|
||||
Incoming 2025-11-01, 10:07 Token 1740858143 1740858143
|
||||
Incoming 2025-11-01, 10:14 Token 1740858143 1740858143
|
||||
Incoming 2025-11-01, 10:16 Token 1740858143 1740858143
|
||||
Incoming 2025-11-01, 10:18 Token 1740858143 1740858143
|
||||
Incoming 2025-11-01, 10:23 Token 1740858143 1740858143
|
||||
Incoming 2025-11-01, 14:01 Token 1740858143 1740858143
|
||||
Incoming 2025-11-01, 15:22 Token 1740858143 1740858143
|
||||
Incoming 2025-11-05, 23:05 Token 1740858143 1740858143
|
||||
Incoming 2025-11-06, 15:20 Token 1740858143 1740858143
|
||||
Incoming 2025-11-06, 15:21 Token 1740858143 1740858143
|
||||
Incoming 2025-11-12, 23:23 Token 1740858143 1740858143
|
||||
Incoming 2025-11-13, 22:55 Token 1740858143 1740858143
|
||||
Incoming 2025-11-15, 11:46 Passwd 1591562375 1591562375
|
||||
Incoming 2025-11-15, 16:37 Token 1591562375 1591562375
|
||||
Incoming 2025-11-15, 16:58 Token 1591562375 1591562375
|
||||
Incoming 2025-11-15, 21:12 Passwd 1740858143 1740858143
|
||||
Incoming 2025-11-16, 18:32 Token 1740858143 1740858143
|
||||
Incoming 2025-11-16, 18:37 Token 1740858143 1740858143
|
||||
Incoming 2025-11-17, 00:43 Token 1740858143 1740858143
|
||||
Incoming 2025-11-18, 18:48 Token 1740858143 1740858143
|
||||
Incoming 2025-11-18, 19:56 Token 1740858143 1740858143
|
||||
Incoming 2025-11-18, 19:58 Token 1740858143 1740858143
|
||||
Incoming 2025-11-20, 00:30 Token 1740858143 1740858143
|
||||
Incoming 2025-11-20, 07:14 Token 1740858143 1740858143
|
||||
Incoming 2025-11-24, 00:12 Token 1740858143 1740858143
|
||||
Incoming 2025-11-27, 00:00 Token 1740858143 1740858143
|
||||
Incoming 2025-11-27, 07:12 Token 1740858143 1740858143
|
||||
Incoming 2025-11-29, 22:48 Token 1740858143 1740858143
|
||||
Incoming 2025-11-29, 22:53 Token 1740858143 1740858143
|
||||
Incoming 2025-12-04, 01:18 Token 1740858143 1740858143
|
||||
Incoming 2025-12-04, 07:25 Passwd 1591562375 1591562375
|
||||
Incoming 2025-12-04, 22:19 Passwd 1740858143 1740858143
|
||||
Incoming 2025-12-05, 12:01 Token 1740858143 1740858143
|
||||
Incoming 2025-12-10, 23:48 Token 1740858143 1740858143
|
||||
Incoming 2025-12-10, 23:50 Token 1740858143 1740858143
|
||||
Incoming 2025-12-10, 23:58 Token 1740858143 1740858143
|
||||
Incoming 2025-12-11, 07:33 Token 1740858143 1740858143
|
||||
Incoming 2025-12-11, 16:26 Token 1740858143 1740858143
|
||||
Incoming 2025-12-11, 18:26 Token 1740858143 1740858143
|
||||
Incoming 2025-12-11, 18:47 Token 1740858143 1740858143
|
||||
Incoming 2025-12-11, 18:58 Token 1740858143 1740858143
|
||||
Incoming 2025-12-15, 09:30 Token 1740858143 1740858143
|
||||
Incoming 2025-12-15, 09:45 Token 1740858143 1740858143
|
||||
Incoming 2025-12-15, 09:47 Token 1740858143 1740858143
|
||||
Incoming 2025-12-18, 02:26 Token 1740858143 1740858143
|
||||
Incoming 2025-12-26, 07:52 Token 1740858143 1740858143
|
||||
Incoming 2025-12-26, 12:56 Token 1740858143 1740858143
|
||||
Incoming 2025-12-30, 16:52 Token 1740858143 1740858143
|
||||
Incoming 2025-12-30, 17:16 Token 1740858143 1740858143
|
||||
Incoming 2026-01-07, 19:20 Token 1740858143 1740858143
|
||||
Incoming 2026-01-07, 23:39 Token 1740858143 1740858143
|
||||
Incoming 2026-01-07, 23:39 Token 1740858143 1740858143
|
||||
Incoming 2026-01-07, 23:43 Token 1740858143 1740858143
|
||||
Incoming 2026-01-08, 02:48 Token 1740858143 1740858143
|
||||
Incoming 2026-01-08, 07:01 Token 1740858143 1740858143
|
||||
Incoming 2026-01-08, 10:00 Token 1740858143 1740858143
|
||||
Incoming 2026-01-08, 10:37 Token 1740858143 1740858143
|
||||
Incoming 2026-01-08, 21:07 Token 1740858143 1740858143
|
||||
Incoming 2026-01-08, 21:18 Token 1740858143 1740858143
|
||||
Incoming 2026-01-18, 22:22 Token 1740858143 1740858143
|
||||
Incoming 2026-01-18, 22:33 Token 1740858143 1740858143
|
||||
Incoming 2026-01-19, 07:45 Passwd 1591562375 1591562375
|
||||
Incoming 2026-01-19, 16:37 Token 1591562375 1591562375
|
||||
Incoming 2026-01-19, 19:53 Token 1591562375 1591562375
|
||||
Incoming 2026-01-19, 20:02 Token 1591562375 1591562375
|
||||
Incoming 2026-01-19, 21:38 Token 1591562375 1591562375
|
||||
Incoming 2026-01-21, 07:39 Passwd 1740858143 1740858143
|
||||
Incoming 2026-01-21, 07:41 Token 1740858143 1740858143
|
||||
Incoming 2026-01-21, 08:18 Token 1740858143 1740858143
|
||||
Incoming 2026-01-21, 08:18 Token 1740858143 1740858143
|
||||
Incoming 2026-01-21, 09:19 Token 1740858143 1740858143
|
||||
Incoming 2026-01-22, 08:33 Token 1740858143 1740858143
|
||||
Incoming 2026-01-22, 18:40 Token 1740858143 1740858143
|
||||
Incoming 2026-01-22, 18:51 Token 1740858143 1740858143
|
||||
Incoming 2026-01-23, 09:31 Token 1740858143 1740858143
|
||||
Incoming 2026-01-23, 10:05 Token 1740858143 1740858143
|
||||
Incoming 2026-01-23, 10:14 Token 1740858143 1740858143
|
||||
Incoming 2026-01-23, 11:52 Token 1740858143 1740858143
|
||||
Incoming 2026-01-24, 07:38 Token 1740858143 1740858143
|
||||
Incoming 2026-01-25, 07:56 Token 1740858143 1740858143
|
||||
Incoming 2026-01-25, 19:45 Token 1740858143 1740858143
|
||||
Incoming 2026-01-26, 00:04 Token 1740858143 1740858143
|
||||
Incoming 2026-01-26, 09:10 Token 1740858143 1740858143
|
||||
Incoming 2026-01-26, 09:53 Token 1740858143 1740858143
|
||||
Incoming 2026-01-26, 10:01 Token 1740858143 1740858143
|
||||
Incoming 2026-01-26, 11:25 Token 1740858143 1740858143
|
||||
Incoming 2026-01-26, 13:28 Token 1740858143 1740858143
|
||||
Incoming 2026-01-26, 16:49 Token 1740858143 1740858143
|
||||
Incoming 2026-01-26, 16:50 Token 1740858143 1740858143
|
||||
Incoming 2026-01-27, 10:31 Token 1740858143 1740858143
|
||||
Incoming 2026-01-27, 11:21 Token 1740858143 1740858143
|
||||
Incoming 2026-01-29, 08:15 Token 1740858143 1740858143
|
||||
Incoming 2026-01-29, 12:09 Token 1740858143 1740858143
|
||||
Incoming 2026-01-29, 12:09 Token 1740858143 1740858143
|
||||
Incoming 2026-01-29, 12:46 Token 1740858143 1740858143
|
||||
Incoming 2026-01-29, 16:15 Token 1740858143 1740858143
|
||||
Incoming 2026-01-29, 17:52 Token 1740858143 1740858143
|
||||
Incoming 2026-01-29, 18:22 Token 1740858143 1740858143
|
||||
Incoming 2026-01-29, 21:00 Token 1740858143 1740858143
|
||||
Incoming 2026-01-29, 21:19 Token 1740858143 1740858143
|
||||
Incoming 2026-01-29, 23:26 Token 1740858143 1740858143
|
||||
Incoming 2026-01-30, 00:03 Token 1740858143 1740858143
|
||||
Incoming 2026-01-30, 00:06 Token 1740858143 1740858143
|
||||
Incoming 2026-01-30, 00:19 Token 1740858143 1740858143
|
||||
Incoming 2026-01-30, 00:30 Token 1740858143 1740858143
|
||||
Incoming 2026-01-30, 00:35 Token 1740858143 1740858143
|
||||
Incoming 2026-01-30, 00:35 Token 1740858143 1740858143
|
||||
Incoming 2026-01-30, 08:42 Token 1740858143 1740858143
|
||||
Incoming 2026-01-31, 11:40 Token 1740858143 1740858143
|
||||
Incoming 2026-01-31, 19:27 Token 1740858143 1740858143
|
||||
Incoming 2026-01-31, 23:09 Token 1740858143 1740858143
|
||||
Incoming 2026-01-31, 23:21 Token 1740858143 1740858143
|
||||
Incoming 2026-02-01, 01:57 Token 1740858143 1740858143
|
||||
Incoming 2026-02-01, 04:40 Passwd 1591562375 1591562375
|
||||
Incoming 2026-02-01, 04:40 Token 1591562375 1591562375
|
||||
Incoming 2026-02-01, 14:48 Passwd 1740858143 1740858143
|
||||
Incoming 2026-02-01, 16:03 Token 1740858143 1740858143
|
||||
Incoming 2026-02-02, 11:43 Token 1740858143 1740858143
|
||||
Incoming 2026-02-02, 14:05 Token 1740858143 1740858143
|
||||
Incoming 2026-02-02, 21:44 Token 1740858143 1740858143
|
||||
Incoming 2026-02-02, 21:49 Token 1740858143 1740858143
|
||||
Incoming 2026-02-02, 21:51 Token 1740858143 1740858143
|
||||
Incoming 2026-02-02, 22:14 Token 1740858143 1740858143
|
||||
Incoming 2026-02-02, 22:30 Token 1740858143 1740858143
|
||||
Incoming 2026-02-03, 08:26 Token 1740858143 1740858143
|
||||
Incoming 2026-02-03, 12:15 Token 1740858143 1740858143
|
||||
Incoming 2026-02-03, 19:22 Token 1740858143 1740858143
|
||||
Incoming 2026-02-04, 17:57 Token 1740858143 1740858143
|
||||
Incoming 2026-02-04, 19:21 Token 1740858143 1740858143
|
||||
Incoming 2026-02-04, 19:21 Token 1740858143 1740858143
|
||||
Incoming 2026-02-05, 15:52 Token 1740858143 1740858143
|
||||
Incoming 2026-02-06, 09:37 Token 1740858143 1740858143
|
||||
Incoming 2026-02-06, 20:44 Token 1740858143 1740858143
|
||||
Incoming 2026-02-06, 21:24 Token 1740858143 1740858143
|
||||
Incoming 2026-02-06, 21:25 Token 1740858143 1740858143
|
||||
Incoming 2026-02-06, 21:36 Token 1740858143 1740858143
|
||||
Incoming 2026-02-06, 21:36 Token 1740858143 1740858143
|
||||
Incoming 2026-02-06, 21:37 Token 1740858143 1740858143
|
||||
Incoming 2026-02-06, 21:42 Token 1740858143 1740858143
|
||||
Incoming 2026-02-06, 21:45 Token 1740858143 1740858143
|
||||
Incoming 2026-02-06, 21:51 Token 1740858143 1740858143
|
||||
Incoming 2026-02-06, 22:04 Token 1740858143 1740858143
|
||||
Incoming 2026-02-06, 22:08 Token 1740858143 1740858143
|
||||
Incoming 2026-02-06, 23:00 Token 1740858143 1740858143
|
||||
Incoming 2026-02-07, 09:06 Token 1740858143 1740858143
|
||||
Incoming 2026-02-08, 06:08 Token 1740858143 1740858143
|
||||
Incoming 2026-02-09, 21:02 Token 1740858143 1740858143
|
||||
Incoming 2026-02-09, 21:38 Token 1740858143 1740858143
|
||||
Incoming 2026-02-11, 12:32 Token 1740858143 1740858143
|
||||
Incoming 2026-02-11, 15:53 Token 1740858143 1740858143
|
||||
Incoming 2026-02-11, 15:53 Token 1740858143 1740858143
|
||||
Incoming 2026-02-11, 18:30 Token 1740858143 1740858143
|
||||
Incoming 2026-02-12, 15:00 Token 1740858143 1740858143
|
||||
Incoming 2026-02-15, 19:52 Passwd 1591562375 1591562375
|
||||
Incoming 2026-02-15, 19:52 Token 1591562375 1591562375
|
||||
Incoming 2026-02-15, 21:31 Token 1591562375 1591562375
|
||||
@@ -1,4 +0,0 @@
|
||||
File Manager 2025-12-15, 09:49 start upload '2024_Serial_W10.txt' (~0 B out of 401 B)
|
||||
File Manager 2025-12-15, 09:49 start upload 'Licencia_22-Abr-2025.md' (~0 B out of 1,62 KiB)
|
||||
File Manager 2025-12-15, 09:49 finish upload '2024_Serial_W10.txt' (~401 B out of 401 B)
|
||||
File Manager 2025-12-15, 09:49 finish upload 'Licencia_22-Abr-2025.md' (~1,62 KiB out of 1,62 KiB)
|
||||
@@ -1,7 +0,0 @@
|
||||
ad.anynet.cert=-----BEGIN CERTIFICATE-----\nMIICqDCCAZACAQEwDQYJKoZIhvcNAQELBQAwGTEXMBUGA1UEAwwOQW55RGVzayBD\nbGllbnQwIBcNMjUwNzIyMTUyNjMxWhgPMjA3NTA3MTAxNTI2MzFaMBkxFzAVBgNV\nBAMMDkFueURlc2sgQ2xpZW50MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKC\nAQEAqIgt0E7CG3+HfjoCjGp9uGheo0p2yyHZSB9f5B/oePmRVffoR2K7i6IM/AJS\nBoZMAqDqyeeVjMVp8YuGC6PLQ6OLLFpEHkj0ECYVkhwzKw0dQML+kbva+60TfCo0\nteOSjEbuZ2yrexc9CeQpiY3wsqKtK+tf3M1yBkIuRU6LzCM7rl5at5iTE/Yj6dkC\nq/qraSAQni3pijecZ5Ev4IEJAVAL51XlVC7mknpBXtalPQnxxOHx0INmwJ1lWj0v\noetDctytb7rwob8w1PMQ+G/wew7OW+H4LTlYrI/o/mvMEEykuzPJoAvZqYCaxWl/\nPQRx2QHDUE6OuhzIs0GyJRONJwIDAQABMA0GCSqGSIb3DQEBCwUAA4IBAQBcD+Js\nurRVT3JNazGk4IH80X6m0Xnx7UFDfFVPkMNUxetklwS6GdfB9opbsgUX06XlpLB8\nKHpmqZhUmaAhFrNzk8NgZvAdj6onXioRMhNBXhKm8w6QoxSWX90ZOEWE//r66mGB\ny1ZkNuH45VNiv4P0VXOMX+5z5VnUSz68UJtz+KfgBUs3pqJj5fZYBkDTrlHTUTyE\nybDfjpVl59YagoOjd6S6A0l+MWjKT6HYXzGky29q1OCFps2slLnc7avzWJ2LIPRV\nA13MrT0F/WtH0Ki80Uc+2BhBpKqCpTiEY9eTi8nRJb24ztKhk8ygOxBTMrTdLlpk\nv5y7zXgg4/njf8T3\n-----END CERTIFICATE-----\n
|
||||
ad.telemetry.last_cid=1509289089
|
||||
ad.anynet.token_salt=1c5ad5308b866a8e1ea8927a2ccc9626
|
||||
ad.anynet.accept_volatile_tokens=
|
||||
ad.anynet.pkey=-----BEGIN PRIVATE KEY-----\nMIIEvAIBADANBgkqhkiG9w0BAQEFAASCBKYwggSiAgEAAoIBAQCoiC3QTsIbf4d+\nOgKMan24aF6jSnbLIdlIH1/kH+h4+ZFV9+hHYruLogz8AlIGhkwCoOrJ55WMxWnx\ni4YLo8tDo4ssWkQeSPQQJhWSHDMrDR1Awv6Ru9r7rRN8KjS145KMRu5nbKt7Fz0J\n5CmJjfCyoq0r61/czXIGQi5FTovMIzuuXlq3mJMT9iPp2QKr+qtpIBCeLemKN5xn\nkS/ggQkBUAvnVeVULuaSekFe1qU9CfHE4fHQg2bAnWVaPS+h60Ny3K1vuvChvzDU\n8xD4b/B7Ds5b4fgtOVisj+j+a8wQTKS7M8mgC9mpgJrFaX89BHHZAcNQTo66HMiz\nQbIlE40nAgMBAAECggEABdHiEcyjy7L347DZeq4za5AAc090fRJNAGkY9MtHSg+F\nkybto11yUDbx5Nf9q30Cw0p5oSxOpUmsnWtDNJlc68KKNqdirSW5dpSiGmVqkkTb\nKuvbl6kZkvxd7Q6WEGaXSSHVRMa4wJZDr4OXYvPUXo7bP7uFQsjoyZ+KcoPtCZ5q\ntzoyWeCDZaDMnuRLnIZ1KyqMSiUTw/4KUYT5uwIP5MGT6BZfgZWuggXDm+Q39Bzk\nHBXFDGG6THidOjxham1hLDHGOxKXpc2PK0GmjKKIJptNcT5SpUChhTShfpEsouCl\nSbaIWKqUDc709JpxCvsnmDhX5mth4c8Ao9ZqopjdqQKBgQDtw/zMrLruoDtA3osn\nYNS95Ck75qE+p9LsVd5Za3cenjTllBN6VPA6JBU1Fyq2LO0A9lHdbgDgmNZkLdoo\nrb06Ks+ORRuue0BKevftTzoG9t2uiYzU1y2eQ9jwRiG8S+E6xmklAMURQ7KwsV+d\nRguX0Q/Zr9wIYU4+2Sxl6DPdGQKBgQC1dPBkdsssa5BAdMtNPYda7RTn5/C/Wbb7\napfeeK6RGkzm+wQswBrcpuv/yCv/naN3fiuBKo/LdDwTa70DNH2Qck5Xa9WkZz/9\n4a8Sb2FfdjCNnTt9/W0NZeN6l5k9EHVGIiI09E93wkZ8H3TCtz8lBau6v4qHHfsT\nAQuSq3HEPwKBgBhJGns1cWqKR0Ma+A+vnks/EM8jgXjK34pwQuPTTDl+Y1zHwS2P\nm3H02Y2wrhYphJPClR4O7FwEgHF/FXduN5PHZ6faezdZM3noEYbVvtGTSZVYS2A6\nEljGCVSRdUSsY3cDaR30dCyNQ6U0mNWRoAGDwyCzC8B3X+yfdh96lkGRAoGAAKUm\nyaSmekTzoVcI9gBW/9rB7UUk1PlTrjclzROuwzNNvLB9xk70iX5KboFerqz3zM/1\nBaOKGVYTdJo4dM919tKBNsxaWRhI4PUxcyZUOUupRoedk4gYICkRkvkBAXeSgypR\n5tBLjAhzybMu7hZKsi3/+0z9CBfyMZIaYW4cnG8CgYBoKxktKTnVUPX2osFxFoos\nm3FvfT7LVihV52fWaZEL7a5wkFX6k03oAb71tVNClRxrALuFr9joqJhwVMylpHHR\nzMahgC/cvIkQuFwRQciYABZ8rlD+Dk2nTaiAkoAs4XXJ2ilz0/GZLKdXXLgJ2805\nB7r5YwkwxdI3VoPaU9cd5Q==\n-----END PRIVATE KEY-----\n
|
||||
ad.anynet.accept_volatile_tokens_info=
|
||||
ad.license.state_store=:225043364b6d61666b6b797271674e686c2d645355766b41416173786b6133664830434b39524b34755078777a73722f564d573633443746567a653555465756762b2f496c412f574c597342715576493767796d736b72795878746a457670562b337a6b4e325661756470516b3243464265536d44302b37546c594b487741643550454b426136577363394558546a4d512b78525a4b76744b386159317762646a3365466d75326e4637437276796d767241436554357534785666444a744b724e694131464a516e4b39466177417553464d42302b4f704e597441587a6168725748517079703542712b557079415352506e664271696f4e44697836366b73496f41335577756e6b46514135733d22,
|
||||
@@ -1,27 +0,0 @@
|
||||
ad.security.frontend_clipboard=1
|
||||
ad.ancl.cached_config.v1=
|
||||
ad.anynet.fpr=2297bae8f8c577ddfd13ec5e9eaaa78ab6fb901a
|
||||
ad.security.frontend_clipboard_files=1
|
||||
ad.anynet.last_relay=relay-f3d93a7a.net.anydesk.com:80:443:6568
|
||||
ad.anynet.client_stats_hash=5cf6e24f4b3d6db16d875f490db4e1ef488879d7
|
||||
ad.security.permission_profiles._default.pwd=d9a5e47637ef20733f54845cb775a5d25dbabdafd1fd72ba0120a0e4de3ee23c
|
||||
ad.security.permission_profiles._default.permissions.sas=1
|
||||
ad.wol.mac_hash=00f078c9c79b304e52fee46a8c04a66e9bed63c3
|
||||
ad.license.expiry=0
|
||||
ad.security.pwd=d9a5e47637ef20733f54845cb775a5d25dbabdafd1fd72ba0120a0e4de3ee23c
|
||||
ad.security.permission_profiles._unattended_access.permissions.sas=1
|
||||
ad.anynet.relay.fatal_result=1.0
|
||||
ad.security.permission_profiles._default.salt=acdcc387d4e62a6d61dcf80f48cd7f76
|
||||
ad.telemetry.active_consents=
|
||||
ad.anynet.did.hash=0
|
||||
ad.telemetry.unacked_consents=
|
||||
ad.license.name=free-1
|
||||
ad.inst.id=9859ace5d27d4a58f5e2e86212aa01e3
|
||||
ad.security.permission_profiles.version=1
|
||||
ad.anynet.alias=
|
||||
ad.security.update_version=1
|
||||
ad.anynet.network_id=main
|
||||
ad.security.frontend_clipboard_version=1
|
||||
ad.anynet.id=1509289089
|
||||
ad.anynet.cur_version=30064836612
|
||||
ad.anynet.relay.state=2
|
||||
@@ -1 +0,0 @@
|
||||
/home/rmonla/Documentos/GitHub/dtic-srv-NS8/servicios/nginx/conf.d/bitacoras.conf
|
||||
@@ -1 +0,0 @@
|
||||
/home/rmonla/Documentos/GitHub/dtic-srv-NS8/servicios/nginx/conf.d/ns8.conf
|
||||
@@ -1 +0,0 @@
|
||||
/home/rmonla/Documentos/GitHub/dtic-srv-NS8/servicios/nginx/conf.d/portainer.conf
|
||||
@@ -1 +0,0 @@
|
||||
/home/rmonla/Documentos/GitHub/dtic-srv-NS8/servicios/nginx/conf.d/sysacad.conf
|
||||
@@ -1,27 +0,0 @@
|
||||
|
||||
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
|
||||
fastcgi_param QUERY_STRING $query_string;
|
||||
fastcgi_param REQUEST_METHOD $request_method;
|
||||
fastcgi_param CONTENT_TYPE $content_type;
|
||||
fastcgi_param CONTENT_LENGTH $content_length;
|
||||
|
||||
fastcgi_param SCRIPT_NAME $fastcgi_script_name;
|
||||
fastcgi_param REQUEST_URI $request_uri;
|
||||
fastcgi_param DOCUMENT_URI $document_uri;
|
||||
fastcgi_param DOCUMENT_ROOT $document_root;
|
||||
fastcgi_param SERVER_PROTOCOL $server_protocol;
|
||||
fastcgi_param REQUEST_SCHEME $scheme;
|
||||
fastcgi_param HTTPS $https if_not_empty;
|
||||
|
||||
fastcgi_param GATEWAY_INTERFACE CGI/1.1;
|
||||
fastcgi_param SERVER_SOFTWARE nginx/$nginx_version;
|
||||
|
||||
fastcgi_param REMOTE_ADDR $remote_addr;
|
||||
fastcgi_param REMOTE_PORT $remote_port;
|
||||
fastcgi_param REMOTE_USER $remote_user;
|
||||
fastcgi_param SERVER_ADDR $server_addr;
|
||||
fastcgi_param SERVER_PORT $server_port;
|
||||
fastcgi_param SERVER_NAME $server_name;
|
||||
|
||||
# PHP only, required if PHP was built with --enable-force-cgi-redirect
|
||||
fastcgi_param REDIRECT_STATUS 200;
|
||||
@@ -1,26 +0,0 @@
|
||||
|
||||
fastcgi_param QUERY_STRING $query_string;
|
||||
fastcgi_param REQUEST_METHOD $request_method;
|
||||
fastcgi_param CONTENT_TYPE $content_type;
|
||||
fastcgi_param CONTENT_LENGTH $content_length;
|
||||
|
||||
fastcgi_param SCRIPT_NAME $fastcgi_script_name;
|
||||
fastcgi_param REQUEST_URI $request_uri;
|
||||
fastcgi_param DOCUMENT_URI $document_uri;
|
||||
fastcgi_param DOCUMENT_ROOT $document_root;
|
||||
fastcgi_param SERVER_PROTOCOL $server_protocol;
|
||||
fastcgi_param REQUEST_SCHEME $scheme;
|
||||
fastcgi_param HTTPS $https if_not_empty;
|
||||
|
||||
fastcgi_param GATEWAY_INTERFACE CGI/1.1;
|
||||
fastcgi_param SERVER_SOFTWARE nginx/$nginx_version;
|
||||
|
||||
fastcgi_param REMOTE_ADDR $remote_addr;
|
||||
fastcgi_param REMOTE_PORT $remote_port;
|
||||
fastcgi_param REMOTE_USER $remote_user;
|
||||
fastcgi_param SERVER_ADDR $server_addr;
|
||||
fastcgi_param SERVER_PORT $server_port;
|
||||
fastcgi_param SERVER_NAME $server_name;
|
||||
|
||||
# PHP only, required if PHP was built with --enable-force-cgi-redirect
|
||||
fastcgi_param REDIRECT_STATUS 200;
|
||||
@@ -1,109 +0,0 @@
|
||||
|
||||
# This map is not a full koi8-r <> utf8 map: it does not contain
|
||||
# box-drawing and some other characters. Besides this map contains
|
||||
# several koi8-u and Byelorussian letters which are not in koi8-r.
|
||||
# If you need a full and standard map, use contrib/unicode2nginx/koi-utf
|
||||
# map instead.
|
||||
|
||||
charset_map koi8-r utf-8 {
|
||||
|
||||
80 E282AC ; # euro
|
||||
|
||||
95 E280A2 ; # bullet
|
||||
|
||||
9A C2A0 ; #
|
||||
|
||||
9E C2B7 ; # ·
|
||||
|
||||
A3 D191 ; # small yo
|
||||
A4 D194 ; # small Ukrainian ye
|
||||
|
||||
A6 D196 ; # small Ukrainian i
|
||||
A7 D197 ; # small Ukrainian yi
|
||||
|
||||
AD D291 ; # small Ukrainian soft g
|
||||
AE D19E ; # small Byelorussian short u
|
||||
|
||||
B0 C2B0 ; # °
|
||||
|
||||
B3 D081 ; # capital YO
|
||||
B4 D084 ; # capital Ukrainian YE
|
||||
|
||||
B6 D086 ; # capital Ukrainian I
|
||||
B7 D087 ; # capital Ukrainian YI
|
||||
|
||||
B9 E28496 ; # numero sign
|
||||
|
||||
BD D290 ; # capital Ukrainian soft G
|
||||
BE D18E ; # capital Byelorussian short U
|
||||
|
||||
BF C2A9 ; # (C)
|
||||
|
||||
C0 D18E ; # small yu
|
||||
C1 D0B0 ; # small a
|
||||
C2 D0B1 ; # small b
|
||||
C3 D186 ; # small ts
|
||||
C4 D0B4 ; # small d
|
||||
C5 D0B5 ; # small ye
|
||||
C6 D184 ; # small f
|
||||
C7 D0B3 ; # small g
|
||||
C8 D185 ; # small kh
|
||||
C9 D0B8 ; # small i
|
||||
CA D0B9 ; # small j
|
||||
CB D0BA ; # small k
|
||||
CC D0BB ; # small l
|
||||
CD D0BC ; # small m
|
||||
CE D0BD ; # small n
|
||||
CF D0BE ; # small o
|
||||
|
||||
D0 D0BF ; # small p
|
||||
D1 D18F ; # small ya
|
||||
D2 D180 ; # small r
|
||||
D3 D181 ; # small s
|
||||
D4 D182 ; # small t
|
||||
D5 D183 ; # small u
|
||||
D6 D0B6 ; # small zh
|
||||
D7 D0B2 ; # small v
|
||||
D8 D18C ; # small soft sign
|
||||
D9 D18B ; # small y
|
||||
DA D0B7 ; # small z
|
||||
DB D188 ; # small sh
|
||||
DC D18D ; # small e
|
||||
DD D189 ; # small shch
|
||||
DE D187 ; # small ch
|
||||
DF D18A ; # small hard sign
|
||||
|
||||
E0 D0AE ; # capital YU
|
||||
E1 D090 ; # capital A
|
||||
E2 D091 ; # capital B
|
||||
E3 D0A6 ; # capital TS
|
||||
E4 D094 ; # capital D
|
||||
E5 D095 ; # capital YE
|
||||
E6 D0A4 ; # capital F
|
||||
E7 D093 ; # capital G
|
||||
E8 D0A5 ; # capital KH
|
||||
E9 D098 ; # capital I
|
||||
EA D099 ; # capital J
|
||||
EB D09A ; # capital K
|
||||
EC D09B ; # capital L
|
||||
ED D09C ; # capital M
|
||||
EE D09D ; # capital N
|
||||
EF D09E ; # capital O
|
||||
|
||||
F0 D09F ; # capital P
|
||||
F1 D0AF ; # capital YA
|
||||
F2 D0A0 ; # capital R
|
||||
F3 D0A1 ; # capital S
|
||||
F4 D0A2 ; # capital T
|
||||
F5 D0A3 ; # capital U
|
||||
F6 D096 ; # capital ZH
|
||||
F7 D092 ; # capital V
|
||||
F8 D0AC ; # capital soft sign
|
||||
F9 D0AB ; # capital Y
|
||||
FA D097 ; # capital Z
|
||||
FB D0A8 ; # capital SH
|
||||
FC D0AD ; # capital E
|
||||
FD D0A9 ; # capital SHCH
|
||||
FE D0A7 ; # capital CH
|
||||
FF D0AA ; # capital hard sign
|
||||
}
|
||||
@@ -1,103 +0,0 @@
|
||||
|
||||
charset_map koi8-r windows-1251 {
|
||||
|
||||
80 88 ; # euro
|
||||
|
||||
95 95 ; # bullet
|
||||
|
||||
9A A0 ; #
|
||||
|
||||
9E B7 ; # ·
|
||||
|
||||
A3 B8 ; # small yo
|
||||
A4 BA ; # small Ukrainian ye
|
||||
|
||||
A6 B3 ; # small Ukrainian i
|
||||
A7 BF ; # small Ukrainian yi
|
||||
|
||||
AD B4 ; # small Ukrainian soft g
|
||||
AE A2 ; # small Byelorussian short u
|
||||
|
||||
B0 B0 ; # °
|
||||
|
||||
B3 A8 ; # capital YO
|
||||
B4 AA ; # capital Ukrainian YE
|
||||
|
||||
B6 B2 ; # capital Ukrainian I
|
||||
B7 AF ; # capital Ukrainian YI
|
||||
|
||||
B9 B9 ; # numero sign
|
||||
|
||||
BD A5 ; # capital Ukrainian soft G
|
||||
BE A1 ; # capital Byelorussian short U
|
||||
|
||||
BF A9 ; # (C)
|
||||
|
||||
C0 FE ; # small yu
|
||||
C1 E0 ; # small a
|
||||
C2 E1 ; # small b
|
||||
C3 F6 ; # small ts
|
||||
C4 E4 ; # small d
|
||||
C5 E5 ; # small ye
|
||||
C6 F4 ; # small f
|
||||
C7 E3 ; # small g
|
||||
C8 F5 ; # small kh
|
||||
C9 E8 ; # small i
|
||||
CA E9 ; # small j
|
||||
CB EA ; # small k
|
||||
CC EB ; # small l
|
||||
CD EC ; # small m
|
||||
CE ED ; # small n
|
||||
CF EE ; # small o
|
||||
|
||||
D0 EF ; # small p
|
||||
D1 FF ; # small ya
|
||||
D2 F0 ; # small r
|
||||
D3 F1 ; # small s
|
||||
D4 F2 ; # small t
|
||||
D5 F3 ; # small u
|
||||
D6 E6 ; # small zh
|
||||
D7 E2 ; # small v
|
||||
D8 FC ; # small soft sign
|
||||
D9 FB ; # small y
|
||||
DA E7 ; # small z
|
||||
DB F8 ; # small sh
|
||||
DC FD ; # small e
|
||||
DD F9 ; # small shch
|
||||
DE F7 ; # small ch
|
||||
DF FA ; # small hard sign
|
||||
|
||||
E0 DE ; # capital YU
|
||||
E1 C0 ; # capital A
|
||||
E2 C1 ; # capital B
|
||||
E3 D6 ; # capital TS
|
||||
E4 C4 ; # capital D
|
||||
E5 C5 ; # capital YE
|
||||
E6 D4 ; # capital F
|
||||
E7 C3 ; # capital G
|
||||
E8 D5 ; # capital KH
|
||||
E9 C8 ; # capital I
|
||||
EA C9 ; # capital J
|
||||
EB CA ; # capital K
|
||||
EC CB ; # capital L
|
||||
ED CC ; # capital M
|
||||
EE CD ; # capital N
|
||||
EF CE ; # capital O
|
||||
|
||||
F0 CF ; # capital P
|
||||
F1 DF ; # capital YA
|
||||
F2 D0 ; # capital R
|
||||
F3 D1 ; # capital S
|
||||
F4 D2 ; # capital T
|
||||
F5 D3 ; # capital U
|
||||
F6 C6 ; # capital ZH
|
||||
F7 C2 ; # capital V
|
||||
F8 DC ; # capital soft sign
|
||||
F9 DB ; # capital Y
|
||||
FA C7 ; # capital Z
|
||||
FB D8 ; # capital SH
|
||||
FC DD ; # capital E
|
||||
FD D9 ; # capital SHCH
|
||||
FE D7 ; # capital CH
|
||||
FF DA ; # capital hard sign
|
||||
}
|
||||
@@ -1,96 +0,0 @@
|
||||
|
||||
types {
|
||||
text/html html htm shtml;
|
||||
text/css css;
|
||||
text/xml xml;
|
||||
image/gif gif;
|
||||
image/jpeg jpeg jpg;
|
||||
application/javascript js;
|
||||
application/atom+xml atom;
|
||||
application/rss+xml rss;
|
||||
|
||||
text/mathml mml;
|
||||
text/plain txt;
|
||||
text/vnd.sun.j2me.app-descriptor jad;
|
||||
text/vnd.wap.wml wml;
|
||||
text/x-component htc;
|
||||
|
||||
image/avif avif;
|
||||
image/png png;
|
||||
image/svg+xml svg svgz;
|
||||
image/tiff tif tiff;
|
||||
image/vnd.wap.wbmp wbmp;
|
||||
image/webp webp;
|
||||
image/x-icon ico;
|
||||
image/x-jng jng;
|
||||
image/x-ms-bmp bmp;
|
||||
|
||||
font/woff woff;
|
||||
font/woff2 woff2;
|
||||
|
||||
application/java-archive jar war ear;
|
||||
application/json json;
|
||||
application/mac-binhex40 hqx;
|
||||
application/msword doc;
|
||||
application/pdf pdf;
|
||||
application/postscript ps eps ai;
|
||||
application/rtf rtf;
|
||||
application/vnd.apple.mpegurl m3u8;
|
||||
application/vnd.google-earth.kml+xml kml;
|
||||
application/vnd.google-earth.kmz kmz;
|
||||
application/vnd.ms-excel xls;
|
||||
application/vnd.ms-fontobject eot;
|
||||
application/vnd.ms-powerpoint ppt;
|
||||
application/vnd.oasis.opendocument.graphics odg;
|
||||
application/vnd.oasis.opendocument.presentation odp;
|
||||
application/vnd.oasis.opendocument.spreadsheet ods;
|
||||
application/vnd.oasis.opendocument.text odt;
|
||||
application/vnd.openxmlformats-officedocument.presentationml.presentation pptx;
|
||||
application/vnd.openxmlformats-officedocument.spreadsheetml.sheet xlsx;
|
||||
application/vnd.openxmlformats-officedocument.wordprocessingml.document docx;
|
||||
application/vnd.wap.wmlc wmlc;
|
||||
application/wasm wasm;
|
||||
application/x-7z-compressed 7z;
|
||||
application/x-cocoa cco;
|
||||
application/x-java-archive-diff jardiff;
|
||||
application/x-java-jnlp-file jnlp;
|
||||
application/x-makeself run;
|
||||
application/x-perl pl pm;
|
||||
application/x-pilot prc pdb;
|
||||
application/x-rar-compressed rar;
|
||||
application/x-redhat-package-manager rpm;
|
||||
application/x-sea sea;
|
||||
application/x-shockwave-flash swf;
|
||||
application/x-stuffit sit;
|
||||
application/x-tcl tcl tk;
|
||||
application/x-x509-ca-cert der pem crt;
|
||||
application/x-xpinstall xpi;
|
||||
application/xhtml+xml xhtml;
|
||||
application/xspf+xml xspf;
|
||||
application/zip zip;
|
||||
|
||||
application/octet-stream bin exe dll;
|
||||
application/octet-stream deb;
|
||||
application/octet-stream dmg;
|
||||
application/octet-stream iso img;
|
||||
application/octet-stream msi msp msm;
|
||||
|
||||
audio/midi mid midi kar;
|
||||
audio/mpeg mp3;
|
||||
audio/ogg ogg;
|
||||
audio/x-m4a m4a;
|
||||
audio/x-realaudio ra;
|
||||
|
||||
video/3gpp 3gpp 3gp;
|
||||
video/mp2t ts;
|
||||
video/mp4 mp4;
|
||||
video/mpeg mpeg mpg;
|
||||
video/quicktime mov;
|
||||
video/webm webm;
|
||||
video/x-flv flv;
|
||||
video/x-m4v m4v;
|
||||
video/x-mng mng;
|
||||
video/x-ms-asf asx asf;
|
||||
video/x-ms-wmv wmv;
|
||||
video/x-msvideo avi;
|
||||
}
|
||||
@@ -1,83 +0,0 @@
|
||||
user www-data;
|
||||
worker_processes auto;
|
||||
pid /run/nginx.pid;
|
||||
error_log /var/log/nginx/error.log;
|
||||
include /etc/nginx/modules-enabled/*.conf;
|
||||
|
||||
events {
|
||||
worker_connections 768;
|
||||
# multi_accept on;
|
||||
}
|
||||
|
||||
http {
|
||||
|
||||
##
|
||||
# Basic Settings
|
||||
##
|
||||
|
||||
sendfile on;
|
||||
tcp_nopush on;
|
||||
types_hash_max_size 2048;
|
||||
# server_tokens off;
|
||||
|
||||
# server_names_hash_bucket_size 64;
|
||||
# server_name_in_redirect off;
|
||||
|
||||
include /etc/nginx/mime.types;
|
||||
default_type application/octet-stream;
|
||||
|
||||
##
|
||||
# SSL Settings
|
||||
##
|
||||
|
||||
ssl_protocols TLSv1 TLSv1.1 TLSv1.2 TLSv1.3; # Dropping SSLv3, ref: POODLE
|
||||
ssl_prefer_server_ciphers on;
|
||||
|
||||
##
|
||||
# Logging Settings
|
||||
##
|
||||
|
||||
access_log /var/log/nginx/access.log;
|
||||
|
||||
##
|
||||
# Gzip Settings
|
||||
##
|
||||
|
||||
gzip on;
|
||||
|
||||
# gzip_vary on;
|
||||
# gzip_proxied any;
|
||||
# gzip_comp_level 6;
|
||||
# gzip_buffers 16 8k;
|
||||
# gzip_http_version 1.1;
|
||||
# gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript;
|
||||
|
||||
##
|
||||
# Virtual Host Configs
|
||||
##
|
||||
|
||||
include /etc/nginx/conf.d/*.conf;
|
||||
include /etc/nginx/sites-enabled/*;
|
||||
}
|
||||
|
||||
|
||||
#mail {
|
||||
# # See sample authentication script at:
|
||||
# # http://wiki.nginx.org/ImapAuthenticateWithApachePhpScript
|
||||
#
|
||||
# # auth_http localhost/auth.php;
|
||||
# # pop3_capabilities "TOP" "USER";
|
||||
# # imap_capabilities "IMAP4rev1" "UIDPLUS";
|
||||
#
|
||||
# server {
|
||||
# listen localhost:110;
|
||||
# protocol pop3;
|
||||
# proxy on;
|
||||
# }
|
||||
#
|
||||
# server {
|
||||
# listen localhost:143;
|
||||
# protocol imap;
|
||||
# proxy on;
|
||||
# }
|
||||
#}
|
||||
@@ -1,4 +0,0 @@
|
||||
proxy_set_header Host $http_host;
|
||||
proxy_set_header X-Real-IP $remote_addr;
|
||||
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
||||
proxy_set_header X-Forwarded-Proto $scheme;
|
||||
@@ -1,17 +0,0 @@
|
||||
|
||||
scgi_param REQUEST_METHOD $request_method;
|
||||
scgi_param REQUEST_URI $request_uri;
|
||||
scgi_param QUERY_STRING $query_string;
|
||||
scgi_param CONTENT_TYPE $content_type;
|
||||
|
||||
scgi_param DOCUMENT_URI $document_uri;
|
||||
scgi_param DOCUMENT_ROOT $document_root;
|
||||
scgi_param SCGI 1;
|
||||
scgi_param SERVER_PROTOCOL $server_protocol;
|
||||
scgi_param REQUEST_SCHEME $scheme;
|
||||
scgi_param HTTPS $https if_not_empty;
|
||||
|
||||
scgi_param REMOTE_ADDR $remote_addr;
|
||||
scgi_param REMOTE_PORT $remote_port;
|
||||
scgi_param SERVER_PORT $server_port;
|
||||
scgi_param SERVER_NAME $server_name;
|
||||
@@ -1,91 +0,0 @@
|
||||
##
|
||||
# You should look at the following URL's in order to grasp a solid understanding
|
||||
# of Nginx configuration files in order to fully unleash the power of Nginx.
|
||||
# https://www.nginx.com/resources/wiki/start/
|
||||
# https://www.nginx.com/resources/wiki/start/topics/tutorials/config_pitfalls/
|
||||
# https://wiki.debian.org/Nginx/DirectoryStructure
|
||||
#
|
||||
# In most cases, administrators will remove this file from sites-enabled/ and
|
||||
# leave it as reference inside of sites-available where it will continue to be
|
||||
# updated by the nginx packaging team.
|
||||
#
|
||||
# This file will automatically load configuration files provided by other
|
||||
# applications, such as Drupal or Wordpress. These applications will be made
|
||||
# available underneath a path with that package name, such as /drupal8.
|
||||
#
|
||||
# Please see /usr/share/doc/nginx-doc/examples/ for more detailed examples.
|
||||
##
|
||||
|
||||
# Default server configuration
|
||||
#
|
||||
server {
|
||||
listen 80 default_server;
|
||||
listen [::]:80 default_server;
|
||||
|
||||
# SSL configuration
|
||||
#
|
||||
# listen 443 ssl default_server;
|
||||
# listen [::]:443 ssl default_server;
|
||||
#
|
||||
# Note: You should disable gzip for SSL traffic.
|
||||
# See: https://bugs.debian.org/773332
|
||||
#
|
||||
# Read up on ssl_ciphers to ensure a secure configuration.
|
||||
# See: https://bugs.debian.org/765782
|
||||
#
|
||||
# Self signed certs generated by the ssl-cert package
|
||||
# Don't use them in a production server!
|
||||
#
|
||||
# include snippets/snakeoil.conf;
|
||||
|
||||
root /var/www/html;
|
||||
|
||||
# Add index.php to the list if you are using PHP
|
||||
index index.html index.htm index.nginx-debian.html;
|
||||
|
||||
server_name _;
|
||||
|
||||
location / {
|
||||
# First attempt to serve request as file, then
|
||||
# as directory, then fall back to displaying a 404.
|
||||
try_files $uri $uri/ =404;
|
||||
}
|
||||
|
||||
# pass PHP scripts to FastCGI server
|
||||
#
|
||||
#location ~ \.php$ {
|
||||
# include snippets/fastcgi-php.conf;
|
||||
#
|
||||
# # With php-fpm (or other unix sockets):
|
||||
# fastcgi_pass unix:/run/php/php7.4-fpm.sock;
|
||||
# # With php-cgi (or other tcp sockets):
|
||||
# fastcgi_pass 127.0.0.1:9000;
|
||||
#}
|
||||
|
||||
# deny access to .htaccess files, if Apache's document root
|
||||
# concurs with nginx's one
|
||||
#
|
||||
#location ~ /\.ht {
|
||||
# deny all;
|
||||
#}
|
||||
}
|
||||
|
||||
|
||||
# Virtual Host configuration for example.com
|
||||
#
|
||||
# You can move that to a different file under sites-available/ and symlink that
|
||||
# to sites-enabled/ to enable it.
|
||||
#
|
||||
#server {
|
||||
# listen 80;
|
||||
# listen [::]:80;
|
||||
#
|
||||
# server_name example.com;
|
||||
#
|
||||
# root /var/www/example.com;
|
||||
# index index.html;
|
||||
#
|
||||
# location / {
|
||||
# try_files $uri $uri/ =404;
|
||||
# }
|
||||
#}
|
||||
@@ -1 +0,0 @@
|
||||
/etc/nginx/sites-available/default
|
||||
@@ -1,13 +0,0 @@
|
||||
# regex to split $uri to $fastcgi_script_name and $fastcgi_path
|
||||
fastcgi_split_path_info ^(.+?\.php)(/.*)$;
|
||||
|
||||
# Check that the PHP script exists before passing it
|
||||
try_files $fastcgi_script_name =404;
|
||||
|
||||
# Bypass the fact that try_files resets $fastcgi_path_info
|
||||
# see: http://trac.nginx.org/nginx/ticket/321
|
||||
set $path_info $fastcgi_path_info;
|
||||
fastcgi_param PATH_INFO $path_info;
|
||||
|
||||
fastcgi_index index.php;
|
||||
include fastcgi.conf;
|
||||
@@ -1,5 +0,0 @@
|
||||
# Self signed certificates generated by the ssl-cert package
|
||||
# Don't use them in a production server!
|
||||
|
||||
ssl_certificate /etc/ssl/certs/ssl-cert-snakeoil.pem;
|
||||
ssl_certificate_key /etc/ssl/private/ssl-cert-snakeoil.key;
|
||||
@@ -1,17 +0,0 @@
|
||||
|
||||
uwsgi_param QUERY_STRING $query_string;
|
||||
uwsgi_param REQUEST_METHOD $request_method;
|
||||
uwsgi_param CONTENT_TYPE $content_type;
|
||||
uwsgi_param CONTENT_LENGTH $content_length;
|
||||
|
||||
uwsgi_param REQUEST_URI $request_uri;
|
||||
uwsgi_param PATH_INFO $document_uri;
|
||||
uwsgi_param DOCUMENT_ROOT $document_root;
|
||||
uwsgi_param SERVER_PROTOCOL $server_protocol;
|
||||
uwsgi_param REQUEST_SCHEME $scheme;
|
||||
uwsgi_param HTTPS $https if_not_empty;
|
||||
|
||||
uwsgi_param REMOTE_ADDR $remote_addr;
|
||||
uwsgi_param REMOTE_PORT $remote_port;
|
||||
uwsgi_param SERVER_PORT $server_port;
|
||||
uwsgi_param SERVER_NAME $server_name;
|
||||
@@ -1,125 +0,0 @@
|
||||
# This map is not a full windows-1251 <> utf8 map: it does not
|
||||
# contain Serbian and Macedonian letters. If you need a full map,
|
||||
# use contrib/unicode2nginx/win-utf map instead.
|
||||
|
||||
charset_map windows-1251 utf-8 {
|
||||
|
||||
82 E2809A; # single low-9 quotation mark
|
||||
|
||||
84 E2809E; # double low-9 quotation mark
|
||||
85 E280A6; # ellipsis
|
||||
86 E280A0; # dagger
|
||||
87 E280A1; # double dagger
|
||||
88 E282AC; # euro
|
||||
89 E280B0; # per mille
|
||||
|
||||
91 E28098; # left single quotation mark
|
||||
92 E28099; # right single quotation mark
|
||||
93 E2809C; # left double quotation mark
|
||||
94 E2809D; # right double quotation mark
|
||||
95 E280A2; # bullet
|
||||
96 E28093; # en dash
|
||||
97 E28094; # em dash
|
||||
|
||||
99 E284A2; # trade mark sign
|
||||
|
||||
A0 C2A0; #
|
||||
A1 D18E; # capital Byelorussian short U
|
||||
A2 D19E; # small Byelorussian short u
|
||||
|
||||
A4 C2A4; # currency sign
|
||||
A5 D290; # capital Ukrainian soft G
|
||||
A6 C2A6; # borken bar
|
||||
A7 C2A7; # section sign
|
||||
A8 D081; # capital YO
|
||||
A9 C2A9; # (C)
|
||||
AA D084; # capital Ukrainian YE
|
||||
AB C2AB; # left-pointing double angle quotation mark
|
||||
AC C2AC; # not sign
|
||||
AD C2AD; # soft hypen
|
||||
AE C2AE; # (R)
|
||||
AF D087; # capital Ukrainian YI
|
||||
|
||||
B0 C2B0; # °
|
||||
B1 C2B1; # plus-minus sign
|
||||
B2 D086; # capital Ukrainian I
|
||||
B3 D196; # small Ukrainian i
|
||||
B4 D291; # small Ukrainian soft g
|
||||
B5 C2B5; # micro sign
|
||||
B6 C2B6; # pilcrow sign
|
||||
B7 C2B7; # ·
|
||||
B8 D191; # small yo
|
||||
B9 E28496; # numero sign
|
||||
BA D194; # small Ukrainian ye
|
||||
BB C2BB; # right-pointing double angle quotation mark
|
||||
|
||||
BF D197; # small Ukrainian yi
|
||||
|
||||
C0 D090; # capital A
|
||||
C1 D091; # capital B
|
||||
C2 D092; # capital V
|
||||
C3 D093; # capital G
|
||||
C4 D094; # capital D
|
||||
C5 D095; # capital YE
|
||||
C6 D096; # capital ZH
|
||||
C7 D097; # capital Z
|
||||
C8 D098; # capital I
|
||||
C9 D099; # capital J
|
||||
CA D09A; # capital K
|
||||
CB D09B; # capital L
|
||||
CC D09C; # capital M
|
||||
CD D09D; # capital N
|
||||
CE D09E; # capital O
|
||||
CF D09F; # capital P
|
||||
|
||||
D0 D0A0; # capital R
|
||||
D1 D0A1; # capital S
|
||||
D2 D0A2; # capital T
|
||||
D3 D0A3; # capital U
|
||||
D4 D0A4; # capital F
|
||||
D5 D0A5; # capital KH
|
||||
D6 D0A6; # capital TS
|
||||
D7 D0A7; # capital CH
|
||||
D8 D0A8; # capital SH
|
||||
D9 D0A9; # capital SHCH
|
||||
DA D0AA; # capital hard sign
|
||||
DB D0AB; # capital Y
|
||||
DC D0AC; # capital soft sign
|
||||
DD D0AD; # capital E
|
||||
DE D0AE; # capital YU
|
||||
DF D0AF; # capital YA
|
||||
|
||||
E0 D0B0; # small a
|
||||
E1 D0B1; # small b
|
||||
E2 D0B2; # small v
|
||||
E3 D0B3; # small g
|
||||
E4 D0B4; # small d
|
||||
E5 D0B5; # small ye
|
||||
E6 D0B6; # small zh
|
||||
E7 D0B7; # small z
|
||||
E8 D0B8; # small i
|
||||
E9 D0B9; # small j
|
||||
EA D0BA; # small k
|
||||
EB D0BB; # small l
|
||||
EC D0BC; # small m
|
||||
ED D0BD; # small n
|
||||
EE D0BE; # small o
|
||||
EF D0BF; # small p
|
||||
|
||||
F0 D180; # small r
|
||||
F1 D181; # small s
|
||||
F2 D182; # small t
|
||||
F3 D183; # small u
|
||||
F4 D184; # small f
|
||||
F5 D185; # small kh
|
||||
F6 D186; # small ts
|
||||
F7 D187; # small ch
|
||||
F8 D188; # small sh
|
||||
F9 D189; # small shch
|
||||
FA D18A; # small hard sign
|
||||
FB D18B; # small y
|
||||
FC D18C; # small soft sign
|
||||
FD D18D; # small e
|
||||
FE D18E; # small yu
|
||||
FF D18F; # small ya
|
||||
}
|
||||
@@ -1,130 +0,0 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
# This script is derived from https://github.com/neutrinolabs/xrdp/sesman/startwm.sh.
|
||||
|
||||
#
|
||||
# This script is an example. You might need to edit this script
|
||||
# depending on your distro if it doesn't work for you.
|
||||
#
|
||||
# Uncomment the following line for debug:
|
||||
# exec xterm
|
||||
|
||||
|
||||
# Execution sequence for interactive login shell - pseudocode
|
||||
#
|
||||
# IF /etc/profile is readable THEN
|
||||
# execute ~/.bash_profile
|
||||
# END IF
|
||||
# IF ~/.bash_profile is readable THEN
|
||||
# execute ~/.bash_profile
|
||||
# ELSE
|
||||
# IF ~/.bash_login is readable THEN
|
||||
# execute ~/.bash_login
|
||||
# ELSE
|
||||
# IF ~/.profile is readable THEN
|
||||
# execute ~/.profile
|
||||
# END IF
|
||||
# END IF
|
||||
# END IF
|
||||
pre_start()
|
||||
{
|
||||
if [ -r /etc/profile ]; then
|
||||
. /etc/profile
|
||||
fi
|
||||
if [ -r ~/.bash_profile ]; then
|
||||
. ~/.bash_profile
|
||||
else
|
||||
if [ -r ~/.bash_login ]; then
|
||||
. ~/.bash_login
|
||||
else
|
||||
if [ -r ~/.profile ]; then
|
||||
. ~/.profile
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
return 0
|
||||
}
|
||||
|
||||
# When loging out from the interactive shell, the execution sequence is:
|
||||
#
|
||||
# IF ~/.bash_logout exists THEN
|
||||
# execute ~/.bash_logout
|
||||
# END IF
|
||||
post_start()
|
||||
{
|
||||
if [ -r ~/.bash_logout ]; then
|
||||
. ~/.bash_logout
|
||||
fi
|
||||
return 0
|
||||
}
|
||||
|
||||
#start the window manager
|
||||
wm_start()
|
||||
{
|
||||
if [ -r /etc/default/locale ]; then
|
||||
. /etc/default/locale
|
||||
export LANG LANGUAGE
|
||||
fi
|
||||
|
||||
# debian
|
||||
if [ -r /etc/X11/Xsession ]; then
|
||||
pre_start
|
||||
. /etc/X11/Xsession
|
||||
post_start
|
||||
exit 0
|
||||
fi
|
||||
|
||||
# alpine
|
||||
# Don't use /etc/X11/xinit/Xsession - it doesn't work
|
||||
if [ -f /etc/alpine-release ]; then
|
||||
if [ -f /etc/X11/xinit/xinitrc ]; then
|
||||
pre_start
|
||||
/etc/X11/xinit/xinitrc
|
||||
post_start
|
||||
else
|
||||
echo "** xinit package isn't installed" >&2
|
||||
exit 1
|
||||
fi
|
||||
fi
|
||||
|
||||
# el
|
||||
if [ -r /etc/X11/xinit/Xsession ]; then
|
||||
pre_start
|
||||
. /etc/X11/xinit/Xsession
|
||||
post_start
|
||||
exit 0
|
||||
fi
|
||||
|
||||
# suse
|
||||
if [ -r /etc/X11/xdm/Xsession ]; then
|
||||
# since the following script run a user login shell,
|
||||
# do not execute the pseudo login shell scripts
|
||||
. /etc/X11/xdm/Xsession
|
||||
exit 0
|
||||
elif [ -r /usr/etc/X11/xdm/Xsession ]; then
|
||||
. /usr/etc/X11/xdm/Xsession
|
||||
exit 0
|
||||
fi
|
||||
|
||||
pre_start
|
||||
xterm
|
||||
post_start
|
||||
}
|
||||
|
||||
#. /etc/environment
|
||||
#export PATH=$PATH
|
||||
#export LANG=$LANG
|
||||
|
||||
# change PATH to be what your environment needs usually what is in
|
||||
# /etc/environment
|
||||
#PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games"
|
||||
#export PATH=$PATH
|
||||
|
||||
# for PATH and LANG from /etc/environment
|
||||
# pam will auto process the environment file if /etc/pam.d/xrdp-sesman
|
||||
# includes
|
||||
# auth required pam_env.so readenv=1
|
||||
|
||||
wm_start
|
||||
|
||||
exit 1
|
||||
@@ -1,30 +0,0 @@
|
||||
Section "Monitor"
|
||||
Identifier "Dummy Monitor"
|
||||
|
||||
# Default HorizSync 31.50 - 48.00 kHz
|
||||
HorizSync 5.0 - 150.0
|
||||
# Default VertRefresh 50.00 - 70.00 Hz
|
||||
VertRefresh 5.0 - 100.0
|
||||
|
||||
# Taken from https://www.xpra.org/xorg.conf
|
||||
Modeline "1920x1080" 23.53 1920 1952 2040 2072 1080 1106 1108 1135
|
||||
Modeline "1280x720" 27.41 1280 1312 1416 1448 720 737 740 757
|
||||
EndSection
|
||||
|
||||
Section "Device"
|
||||
Identifier "Dummy VideoCard"
|
||||
Driver "dummy"
|
||||
# Default VideoRam 4096
|
||||
# (1920 * 1080 * 4) / 1024 = 8100
|
||||
VideoRam 8100
|
||||
EndSection
|
||||
|
||||
Section "Screen"
|
||||
Identifier "Dummy Screen"
|
||||
Device "Dummy VideoCard"
|
||||
Monitor "Dummy Monitor"
|
||||
SubSectionSub "Display"
|
||||
Depth 24
|
||||
Modes "1920x1080" "1280x720"
|
||||
EndSubSection
|
||||
EndSection
|
||||
|
Before Width: | Height: | Size: 39 KiB |
|
Before Width: | Height: | Size: 43 KiB |
|
Before Width: | Height: | Size: 60 KiB |
|
Before Width: | Height: | Size: 86 KiB |
|
Before Width: | Height: | Size: 35 KiB |
|
Before Width: | Height: | Size: 89 KiB |
|
Before Width: | Height: | Size: 37 KiB |
|
Before Width: | Height: | Size: 72 KiB |
|
Before Width: | Height: | Size: 35 KiB |
|
Before Width: | Height: | Size: 34 KiB |
|
Before Width: | Height: | Size: 550 B |
|
Before Width: | Height: | Size: 550 B |
@@ -1,24 +0,0 @@
|
||||
ad.ui.show_tile.telemetry=false
|
||||
ad.roster.favorites.view_type=2
|
||||
ad.session.touch_mode=1764288028:2;1617679861:2;1347225983:2;818996262:2;803811107:2;1519388003:2;1435779355:2;1103272109:2;1740858143:2;795601754:2;1002944272:2
|
||||
ad.telemetry.consent=0,50146,0,0
|
||||
ad.roster.items=1002944272,1002944272,,;ns7-tic-utnlr@ad,818996262,,;795601754,795601754,,;1764288028,1764288028,,;1519388003,1519388003,pc-DASU0 - 1519388003,;1740858143,1740858143,not-RMONLA - 1740858143,;1103272109,1103272109,,;1435779355,1435779355,,;803811107,803811107,pc-DraRIVERO - 803811107,;1347225983,1347225983,,;1831736331,1831736331,,;1617679861,1617679861,pcvDASU2 - 1617679861,
|
||||
ad.roster.recent_out.view_type=2
|
||||
ad.session.encoding_mode=1764288028:0;1617679861:0;1347225983:0;818996262:0;803811107:0;1519388003:0;1435779355:0;1103272109:0;1740858143:0;795601754:0;1002944272:0
|
||||
ad.license.cache=0100000006667265652d317fffffffffffffff000000006993edc7000000210000002961642e6c6963656e73652e696e666f2e73657373696f6e5f74696d656f75745f636f756e74646f776e00000001350000001f61642e6c6963656e73652e696e666f2e73657373696f6e5f74696d656f757400000001300000001d61642e6c6963656e73652e666561747572652e696e7669746174696f6e00000001310000001a61642e6c6963656e73652e666561747572652e7072697661637900000001300000002c61642e6c6963656e73652e666561747572652e70726576696f75735f73657373696f6e5f70726f66696c657300000001310000002161642e6c6963656e73652e666561747572652e686964655f77617465726d61726b00000001310000002261642e6c6963656e73652e666561747572652e73657373696f6e5f636f6d6d656e7400000001300000001f61642e6c6963656e73652e666561747572652e66696c655f6d616e6167657200000001310000001761642e6c6963656e73652e666561747572652e6368617400000001310000002561642e6c6963656e73652e696e666f2e62616e6e65722e6e6f5f73657373696f6e2e737472000000ec46726565206c6963656e736520286e6f6e2d70726f66657373696f6e616c20757365292e205374617274205b70726f66657373696f6e616c20747269616c5d2868747470733a2f2f616e796465736b2e636f6d2f646f776e6c6f6164732f747269616c2f7468616e6b2d796f753f75746d5f736f757263653d667265655f757365725f61707029206f72205b7075726368617365206c6963656e73655d2868747470733a2f2f616e796465736b2e636f6d2f70726963696e673f75746d5f736f757263653d667265655f757365725f6275792920746f20756e6c6f636b206d6f72652066656174757265732e0000002e61642e6c6963656e73652e666561747572652e696e646976696475616c5f73657373696f6e5f73657474696e677300000001310000002361642e6c6963656e73652e666561747572652e616c6c6f775f6d6f6e69746f72696e6700000001300000002861642e6c6963656e73652e666561747572652e616464726573735f626f6f6b2e706572736f6e616c00000001300000002461642e6c6963656e73652e696e666f2e6175746f5f7570646174655f6368616e6e656c73000000096d61696e2c626574610000002e61642e6c6963656e73652e696e666f2e616d6f756e745f6f665f637573746f6d5f7065726d5f70726f66696c657300000001310000001661642e6c6963656e73652e666561747572652e776f6c00000001310000001861642e6c6963656e73652e666561747572652e616c69617300000001300000002661642e6c6963656e73652e666561747572652e686964655f73657373696f6e5f62616e6e657200000001310000002b61642e6c6963656e73652e666561747572652e686964655f667265655f6c6963656e73655f62616e6e657200000001310000001a61642e6c6963656e73652e666561747572652e7463705f74756e00000001300000002561642e6c6963656e73652e696e666f2e6175746f5f646973636f6e6e6563745f74696d657200000001300000002161642e6c6963656e73652e696e666f2e6175746f5f7570646174655f747970657300000001300000001f61642e6c6963656e73652e666561747572652e7377697463685f736964657300000001300000002361642e6c6963656e73652e696e666f2e7463705f74756e2e72756c65735f6c696d697400000001300000002761642e6c6963656e73652e666561747572652e616464726573735f626f6f6b2e636f6d70616e7900000001300000001661642e6c6963656e73652e666561747572652e75736200000001300000002461642e6c6963656e73652e666561747572652e73657373696f6e5f7265636f7264696e6700000001300000001f61642e6c6963656e73652e666561747572652e757365725f6163636f756e7400000001310000002261642e6c6963656e73652e72656769737465722e747269616c5f6475726174696f6e00000001370000001d61642e6c6963656e73652e666561747572652e7768697465626f61726400000001310000002b61642e6c6963656e73652e696e666f2e7463705f74756e2e726576657273655f72756c65735f6c696d697400000001300000002161642e6c6963656e73652e666561747572652e72656d6f74655f7265737461727400000001300000002061642e6c6963656e73652e666561747572652e73657373696f6e2e70617573650000000130000000000000010f225043364b6d61666b6b797271674e686c2d645355766b41416173786b6133664830434b39524b34755078777a73722f564d573633443746567a653555465756762b2f496c412f574c597342715576493767796d736b72795878746a457670562b337a6b4e325661756470516b3243464265536d44302b37546c594b487741643550454b426136577363394558546a4d512b78525a4b76744b386159317762646a3365466d75326e4637437276796d767241436554357534785666444a744b724e694131464a516e4b39466177417553464d42302b4f704e597441587a6168725748517079703542712b557079415352506e664271696f4e44697836366b73496f41335577756e6b46514135733d22000000064ac1ad6189ab00
|
||||
ad.roster.favorites=
|
||||
ad.invite.received_list_encrypted=00
|
||||
ad.roster.discovered.view_type=2
|
||||
ad.anynet.auth_tokens=3bceb018183801c7377bfd1870cddae6a578f9cb:927be522a69b3635cde7d8e2e5fabe61e2328bbff0e4211e13798b5b17760a9b;adcd73e221c2d4b152d73849abc7dca2141ab6e5:325f9bbc73553d2556761d1ab92dbbfcd00fc70eb6af797c1359edebc6c7a5bd;db09b9040111b434f152b214555bfef1d4dc69cd:4b739a895c5a3e8fcea041bda9b765033895345077fa8639413b4db155f4c3a6;1465c34eaef200bb15c2997491b249dac5db6b9a:147985f203fd551898196105dbfe978092eb48ff9802539e8e37e6ceb6dfcb73;ed6ad88afacf11f674c87ff0d3388a23f9761043:5fe8e24dc01a1b3f5fa62d4bb14e983fbfabf9bab636e743a3a8149daf3c7a0f;b70945c8059b722a547e0ed9a2c7a3e8dc20760e:9aee2f45e37debc420bf02119cf650e66034c2154f9c4c8a7af18ee1c76bf1bc
|
||||
ad.msg.data=version=5;es;23,,,0,0,00,00,0,0,0,00,1771215130721017,0,0,0,0,0,0,,00;1,,,0,0,00,00,0,0,0,00,1771218333927845,0,0,0,0,0,0,,00;100,,,0,0,00,00,0,0,0,00,1771218623013932,0,0,0,0,0,0,,00;13,,,0,0,00,00,0,0,0,00,1771215726918943,0,0,0,0,0,0,,00;10,,,0,0,00,00,0,0,0,00,1771214996018030,0,0,0,0,0,0,,00;103,,,0,0,00,00,0,0,0,00,1771220991884744,0,0,0,0,0,0,,00;12,,,0,0,00,00,0,0,0,00,1771216014905674,0,0,0,0,0,0,,00;102,,,0,0,00,00,0,0,0,00,1771219116802922,0,0,0,0,0,0,,00;22,,,0,0,00,00,0,0,0,00,1771216560096026,0,0,0,0,0,0,,00;104,,,0,0,00,00,0,0,0,00,1771220220024272,0,0,0,0,0,0,,00;11,,,0,0,00,00,0,0,0,00,1771218855990882,0,0,0,0,0,0,,00;21,40402544296491bd8af2207dd6ffc6d9eacb5f11,en,96,1,68747470733a2f2f616e796465736b2e636f6d2f656e2f736369656e636500,1771205450085188,2,7,0,0,480,180,632,00;20,,,0,0,00,00,0,0,0,00,1771220482270593,0,0,0,0,0,0,,00;101,,,0,0,00,00,0,0,0,00,1771217204285682,0,0,0,0,0,0,,00
|
||||
ad.audio.playback_device=alsa_output.pci-0000_30_00.6.analog-stereo
|
||||
ad.session.follow_remote_focus=1764288028:0;1617679861:0;1347225983:0;818996262:0;803811107:0;1519388003:0;1435779355:0;1103272109:0;1740858143:0;795601754:0;1002944272:0
|
||||
ad.audio.transmit_source=alsa_output.pci-0000_30_00.6.analog-stereo.monitor
|
||||
ad.general.online_status.remote_client=1
|
||||
ad.license.cache_hash=4094973574
|
||||
ad.ui.install.new_update=7.0.2
|
||||
ad.ui.lang=es
|
||||
ad.assembly.ui.lang=es
|
||||
ad.msg.channels_states=1,1
|
||||
ad.anynet.connect_volatile_tokens=
|
||||
ad.invite.created_list_encrypted=00
|
||||
@@ -1,109 +0,0 @@
|
||||
enc_id = '0008hyPLjGaIFvRvWkHZ8WPy1rjvNoT0Pl0t4='
|
||||
password = '00yReB6uvJHD8AKracOPFlfnAyyLUjFhv30dEsu1Q='
|
||||
salt = 'd742y2'
|
||||
key_pair = [
|
||||
[
|
||||
1,
|
||||
248,
|
||||
214,
|
||||
212,
|
||||
206,
|
||||
77,
|
||||
235,
|
||||
131,
|
||||
159,
|
||||
34,
|
||||
181,
|
||||
243,
|
||||
227,
|
||||
31,
|
||||
213,
|
||||
124,
|
||||
92,
|
||||
131,
|
||||
155,
|
||||
240,
|
||||
48,
|
||||
183,
|
||||
22,
|
||||
237,
|
||||
10,
|
||||
67,
|
||||
78,
|
||||
188,
|
||||
25,
|
||||
154,
|
||||
92,
|
||||
184,
|
||||
130,
|
||||
31,
|
||||
182,
|
||||
245,
|
||||
62,
|
||||
82,
|
||||
45,
|
||||
239,
|
||||
93,
|
||||
212,
|
||||
134,
|
||||
175,
|
||||
54,
|
||||
194,
|
||||
190,
|
||||
203,
|
||||
191,
|
||||
187,
|
||||
237,
|
||||
113,
|
||||
138,
|
||||
223,
|
||||
242,
|
||||
240,
|
||||
5,
|
||||
47,
|
||||
105,
|
||||
58,
|
||||
105,
|
||||
137,
|
||||
46,
|
||||
69,
|
||||
],
|
||||
[
|
||||
130,
|
||||
31,
|
||||
182,
|
||||
245,
|
||||
62,
|
||||
82,
|
||||
45,
|
||||
239,
|
||||
93,
|
||||
212,
|
||||
134,
|
||||
175,
|
||||
54,
|
||||
194,
|
||||
190,
|
||||
203,
|
||||
191,
|
||||
187,
|
||||
237,
|
||||
113,
|
||||
138,
|
||||
223,
|
||||
242,
|
||||
240,
|
||||
5,
|
||||
47,
|
||||
105,
|
||||
58,
|
||||
105,
|
||||
137,
|
||||
46,
|
||||
69,
|
||||
],
|
||||
]
|
||||
key_confirmed = true
|
||||
|
||||
[keys_confirmed]
|
||||
rs-ny = true
|
||||
@@ -1,10 +0,0 @@
|
||||
rendezvous_server = 'rs-ny.rustdesk.com:21116'
|
||||
nat_type = 1
|
||||
serial = 0
|
||||
unlock_pin = ''
|
||||
trusted_devices = '00oBjZ7XbKHoIMBeq2kGk0m0cH'
|
||||
|
||||
[options]
|
||||
av1-test = 'Y'
|
||||
direct-server = 'Y'
|
||||
local-ip-addr = '10.0.10.8'
|
||||
@@ -1,19 +0,0 @@
|
||||
remote_id = '288016058'
|
||||
kb_layout_type = ''
|
||||
size = [
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
]
|
||||
fav = []
|
||||
|
||||
[options]
|
||||
remote-menubar-drag-left = '0.0'
|
||||
remote-menubar-drag-right = '1.0'
|
||||
|
||||
[ui_flutter]
|
||||
peer-sorting = 'Remote ID'
|
||||
wm_Main = '{"width":1366.0,"height":724.0,"offsetWidth":1425.0,"offsetHeight":2160.0,"isMaximized":false,"isFullscreen":false}'
|
||||
wm_RemoteDesktop = '{"width":1920.0,"height":1080.0,"offsetWidth":1920.0,"offsetHeight":1080.0,"isMaximized":false,"isFullscreen":false}'
|
||||
wm_FileTransfer = '{"width":1320.0,"height":760.0,"offsetWidth":1304.0,"offsetHeight":2124.0,"isMaximized":false,"isFullscreen":false}'
|
||||
@@ -1,59 +0,0 @@
|
||||
password = []
|
||||
size = [
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
]
|
||||
size_ft = [
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
]
|
||||
size_pf = [
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
]
|
||||
view_style = 'original'
|
||||
scroll_style = 'scrollauto'
|
||||
image_quality = 'balanced'
|
||||
custom_image_quality = [50]
|
||||
show_remote_cursor = false
|
||||
lock_after_session_end = false
|
||||
privacy_mode = false
|
||||
allow_swap_key = false
|
||||
port_forwards = []
|
||||
direct_failures = 0
|
||||
disable_audio = false
|
||||
disable_clipboard = false
|
||||
enable-file-copy-paste = true
|
||||
show_quality_monitor = false
|
||||
follow_remote_cursor = false
|
||||
follow_remote_window = false
|
||||
view_only = false
|
||||
sync-init-clipboard = false
|
||||
trackpad-speed = 100
|
||||
|
||||
[options]
|
||||
zoom-cursor = ''
|
||||
collapse_toolbar = ''
|
||||
i444 = ''
|
||||
touch-mode = ''
|
||||
codec-preference = 'auto'
|
||||
custom-fps = '30'
|
||||
swap-left-right-mouse = ''
|
||||
|
||||
[ui_flutter]
|
||||
wm_RemoteDesktop = '{"width":1920.0,"height":1080.0,"offsetWidth":1920.0,"offsetHeight":1080.0,"isMaximized":false,"isFullscreen":false}'
|
||||
|
||||
[info]
|
||||
username = ''
|
||||
hostname = ''
|
||||
platform = ''
|
||||
|
||||
[transfer]
|
||||
write_jobs = []
|
||||
read_jobs = []
|
||||
@@ -1,131 +0,0 @@
|
||||
password = [
|
||||
48,
|
||||
48,
|
||||
111,
|
||||
114,
|
||||
114,
|
||||
106,
|
||||
97,
|
||||
53,
|
||||
112,
|
||||
119,
|
||||
43,
|
||||
89,
|
||||
86,
|
||||
98,
|
||||
68,
|
||||
81,
|
||||
122,
|
||||
108,
|
||||
47,
|
||||
102,
|
||||
121,
|
||||
57,
|
||||
50,
|
||||
97,
|
||||
100,
|
||||
104,
|
||||
107,
|
||||
99,
|
||||
73,
|
||||
72,
|
||||
111,
|
||||
85,
|
||||
79,
|
||||
104,
|
||||
114,
|
||||
121,
|
||||
90,
|
||||
78,
|
||||
57,
|
||||
99,
|
||||
103,
|
||||
114,
|
||||
89,
|
||||
107,
|
||||
65,
|
||||
53,
|
||||
115,
|
||||
76,
|
||||
83,
|
||||
121,
|
||||
43,
|
||||
77,
|
||||
104,
|
||||
81,
|
||||
82,
|
||||
51,
|
||||
82,
|
||||
112,
|
||||
118,
|
||||
69,
|
||||
109,
|
||||
82,
|
||||
72,
|
||||
114,
|
||||
50,
|
||||
74,
|
||||
]
|
||||
size = [
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
]
|
||||
size_ft = [
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
]
|
||||
size_pf = [
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
]
|
||||
view_style = 'original'
|
||||
scroll_style = 'scrollauto'
|
||||
image_quality = 'balanced'
|
||||
custom_image_quality = [50]
|
||||
show_remote_cursor = false
|
||||
lock_after_session_end = false
|
||||
privacy_mode = false
|
||||
allow_swap_key = false
|
||||
port_forwards = []
|
||||
direct_failures = 0
|
||||
disable_audio = false
|
||||
disable_clipboard = false
|
||||
enable-file-copy-paste = true
|
||||
show_quality_monitor = false
|
||||
follow_remote_cursor = false
|
||||
follow_remote_window = false
|
||||
keyboard_mode = 'map'
|
||||
view_only = false
|
||||
sync-init-clipboard = false
|
||||
trackpad-speed = 100
|
||||
|
||||
[options]
|
||||
codec-preference = 'auto'
|
||||
remote_show_hidden = ''
|
||||
remote_dir = '{"sysacadweb":"C:\\inetpub"}'
|
||||
i444 = ''
|
||||
local_show_hidden = ''
|
||||
custom-fps = '30'
|
||||
local_dir = '/mnt/ns8Disco3/dtic_BACKUPS'
|
||||
swap-left-right-mouse = ''
|
||||
collapse_toolbar = 'Y'
|
||||
zoom-cursor = ''
|
||||
touch-mode = ''
|
||||
|
||||
[ui_flutter]
|
||||
wm_RemoteDesktop = '{"width":1366.0,"height":768.0,"offsetWidth":1231.0,"offsetHeight":2116.0,"isMaximized":true,"isFullscreen":true}'
|
||||
|
||||
[info]
|
||||
username = 'sysacadweb'
|
||||
hostname = 'srvv-sysacadweb'
|
||||
platform = 'Windows'
|
||||
|
||||
[transfer]
|
||||
write_jobs = []
|
||||
read_jobs = []
|
||||
@@ -1,127 +0,0 @@
|
||||
password = [
|
||||
48,
|
||||
48,
|
||||
122,
|
||||
81,
|
||||
87,
|
||||
43,
|
||||
111,
|
||||
84,
|
||||
112,
|
||||
104,
|
||||
101,
|
||||
47,
|
||||
54,
|
||||
47,
|
||||
71,
|
||||
81,
|
||||
103,
|
||||
43,
|
||||
116,
|
||||
55,
|
||||
112,
|
||||
105,
|
||||
116,
|
||||
50,
|
||||
116,
|
||||
75,
|
||||
117,
|
||||
57,
|
||||
116,
|
||||
119,
|
||||
43,
|
||||
102,
|
||||
116,
|
||||
74,
|
||||
102,
|
||||
72,
|
||||
121,
|
||||
56,
|
||||
71,
|
||||
115,
|
||||
107,
|
||||
65,
|
||||
120,
|
||||
109,
|
||||
87,
|
||||
104,
|
||||
102,
|
||||
82,
|
||||
69,
|
||||
98,
|
||||
81,
|
||||
118,
|
||||
55,
|
||||
88,
|
||||
97,
|
||||
50,
|
||||
116,
|
||||
112,
|
||||
55,
|
||||
85,
|
||||
81,
|
||||
82,
|
||||
52,
|
||||
54,
|
||||
76,
|
||||
82,
|
||||
]
|
||||
size = [
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
]
|
||||
size_ft = [
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
]
|
||||
size_pf = [
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
]
|
||||
view_style = 'original'
|
||||
scroll_style = 'scrollauto'
|
||||
image_quality = 'balanced'
|
||||
custom_image_quality = [50]
|
||||
show_remote_cursor = false
|
||||
lock_after_session_end = false
|
||||
privacy_mode = false
|
||||
allow_swap_key = false
|
||||
port_forwards = []
|
||||
direct_failures = 0
|
||||
disable_audio = false
|
||||
disable_clipboard = false
|
||||
enable-file-copy-paste = true
|
||||
show_quality_monitor = false
|
||||
follow_remote_cursor = false
|
||||
follow_remote_window = false
|
||||
keyboard_mode = 'map'
|
||||
view_only = false
|
||||
sync-init-clipboard = false
|
||||
trackpad-speed = 100
|
||||
|
||||
[options]
|
||||
remote-menubar-drag-x = '0.5008077544426495'
|
||||
touch-mode = ''
|
||||
codec-preference = 'auto'
|
||||
zoom-cursor = ''
|
||||
i444 = ''
|
||||
swap-left-right-mouse = ''
|
||||
custom-fps = '30'
|
||||
|
||||
[ui_flutter]
|
||||
wm_RemoteDesktop = '{"width":1920.0,"height":1080.0,"offsetWidth":1920.0,"offsetHeight":1080.0,"isMaximized":false,"isFullscreen":false}'
|
||||
|
||||
[info]
|
||||
username = 'monlaricardo'
|
||||
hostname = 'srvfenix'
|
||||
platform = 'Windows'
|
||||
|
||||
[transfer]
|
||||
write_jobs = []
|
||||
read_jobs = []
|
||||
@@ -1,127 +0,0 @@
|
||||
password = [
|
||||
48,
|
||||
48,
|
||||
51,
|
||||
78,
|
||||
50,
|
||||
72,
|
||||
114,
|
||||
109,
|
||||
67,
|
||||
48,
|
||||
48,
|
||||
106,
|
||||
51,
|
||||
66,
|
||||
104,
|
||||
107,
|
||||
117,
|
||||
107,
|
||||
113,
|
||||
119,
|
||||
115,
|
||||
81,
|
||||
57,
|
||||
107,
|
||||
66,
|
||||
104,
|
||||
55,
|
||||
81,
|
||||
82,
|
||||
50,
|
||||
118,
|
||||
76,
|
||||
65,
|
||||
86,
|
||||
80,
|
||||
108,
|
||||
54,
|
||||
84,
|
||||
109,
|
||||
50,
|
||||
107,
|
||||
65,
|
||||
86,
|
||||
104,
|
||||
65,
|
||||
83,
|
||||
80,
|
||||
72,
|
||||
43,
|
||||
82,
|
||||
102,
|
||||
113,
|
||||
48,
|
||||
116,
|
||||
50,
|
||||
121,
|
||||
79,
|
||||
97,
|
||||
55,
|
||||
54,
|
||||
71,
|
||||
49,
|
||||
81,
|
||||
107,
|
||||
52,
|
||||
43,
|
||||
]
|
||||
size = [
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
]
|
||||
size_ft = [
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
]
|
||||
size_pf = [
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
]
|
||||
view_style = 'original'
|
||||
scroll_style = 'scrollauto'
|
||||
image_quality = 'balanced'
|
||||
custom_image_quality = [50]
|
||||
show_remote_cursor = false
|
||||
lock_after_session_end = false
|
||||
privacy_mode = false
|
||||
allow_swap_key = false
|
||||
port_forwards = []
|
||||
direct_failures = 0
|
||||
disable_audio = false
|
||||
disable_clipboard = false
|
||||
enable-file-copy-paste = true
|
||||
show_quality_monitor = false
|
||||
follow_remote_cursor = false
|
||||
follow_remote_window = false
|
||||
keyboard_mode = 'map'
|
||||
view_only = false
|
||||
sync-init-clipboard = false
|
||||
trackpad-speed = 100
|
||||
|
||||
[options]
|
||||
i444 = ''
|
||||
collapse_toolbar = 'Y'
|
||||
codec-preference = 'auto'
|
||||
custom-fps = '30'
|
||||
touch-mode = ''
|
||||
zoom-cursor = ''
|
||||
swap-left-right-mouse = ''
|
||||
|
||||
[ui_flutter]
|
||||
wm_RemoteDesktop = '{"width":1548.0,"height":958.0,"offsetWidth":1413.0,"offsetHeight":935.0,"isMaximized":false,"isFullscreen":false}'
|
||||
|
||||
[info]
|
||||
username = ''
|
||||
hostname = 'pcv-dasu2'
|
||||
platform = 'Windows'
|
||||
|
||||
[transfer]
|
||||
write_jobs = []
|
||||
read_jobs = []
|
||||
@@ -1,127 +0,0 @@
|
||||
password = [
|
||||
48,
|
||||
48,
|
||||
54,
|
||||
83,
|
||||
106,
|
||||
89,
|
||||
108,
|
||||
85,
|
||||
107,
|
||||
121,
|
||||
75,
|
||||
106,
|
||||
65,
|
||||
53,
|
||||
76,
|
||||
112,
|
||||
82,
|
||||
108,
|
||||
43,
|
||||
85,
|
||||
66,
|
||||
52,
|
||||
104,
|
||||
48,
|
||||
55,
|
||||
72,
|
||||
55,
|
||||
110,
|
||||
55,
|
||||
72,
|
||||
100,
|
||||
43,
|
||||
88,
|
||||
73,
|
||||
101,
|
||||
86,
|
||||
82,
|
||||
109,
|
||||
87,
|
||||
98,
|
||||
105,
|
||||
110,
|
||||
106,
|
||||
71,
|
||||
99,
|
||||
104,
|
||||
121,
|
||||
86,
|
||||
69,
|
||||
76,
|
||||
101,
|
||||
68,
|
||||
114,
|
||||
47,
|
||||
76,
|
||||
99,
|
||||
70,
|
||||
89,
|
||||
86,
|
||||
89,
|
||||
65,
|
||||
118,
|
||||
113,
|
||||
97,
|
||||
99,
|
||||
106,
|
||||
]
|
||||
size = [
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
]
|
||||
size_ft = [
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
]
|
||||
size_pf = [
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
]
|
||||
view_style = 'original'
|
||||
scroll_style = 'scrollauto'
|
||||
image_quality = 'balanced'
|
||||
custom_image_quality = [50]
|
||||
show_remote_cursor = false
|
||||
lock_after_session_end = false
|
||||
privacy_mode = false
|
||||
allow_swap_key = false
|
||||
port_forwards = []
|
||||
direct_failures = 1
|
||||
disable_audio = false
|
||||
disable_clipboard = false
|
||||
enable-file-copy-paste = true
|
||||
show_quality_monitor = false
|
||||
follow_remote_cursor = false
|
||||
follow_remote_window = false
|
||||
keyboard_mode = 'map'
|
||||
view_only = false
|
||||
sync-init-clipboard = false
|
||||
trackpad-speed = 100
|
||||
|
||||
[options]
|
||||
touch-mode = ''
|
||||
collapse_toolbar = 'Y'
|
||||
swap-left-right-mouse = ''
|
||||
custom-fps = '30'
|
||||
codec-preference = 'auto'
|
||||
zoom-cursor = ''
|
||||
i444 = ''
|
||||
|
||||
[ui_flutter]
|
||||
wm_RemoteDesktop = '{"width":1920.0,"height":1080.0,"offsetWidth":1920.0,"offsetHeight":1080.0,"isMaximized":false,"isFullscreen":false}'
|
||||
|
||||
[info]
|
||||
username = ''
|
||||
hostname = 'srv-maurik'
|
||||
platform = 'Windows'
|
||||
|
||||
[transfer]
|
||||
write_jobs = []
|
||||
read_jobs = []
|
||||
@@ -1,61 +0,0 @@
|
||||
password = []
|
||||
size = [
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
]
|
||||
size_ft = [
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
]
|
||||
size_pf = [
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
]
|
||||
view_style = 'original'
|
||||
scroll_style = 'scrollauto'
|
||||
image_quality = 'balanced'
|
||||
custom_image_quality = [50]
|
||||
show_remote_cursor = false
|
||||
lock_after_session_end = false
|
||||
privacy_mode = false
|
||||
allow_swap_key = false
|
||||
port_forwards = []
|
||||
direct_failures = 1
|
||||
disable_audio = false
|
||||
disable_clipboard = false
|
||||
enable-file-copy-paste = true
|
||||
show_quality_monitor = false
|
||||
follow_remote_cursor = false
|
||||
follow_remote_window = false
|
||||
keyboard_mode = 'map'
|
||||
view_only = false
|
||||
sync-init-clipboard = false
|
||||
trackpad-speed = 100
|
||||
|
||||
[options]
|
||||
swap-left-right-mouse = ''
|
||||
remote-menubar-drag-x = '0.5006849315068493'
|
||||
zoom-cursor = ''
|
||||
touch-mode = ''
|
||||
alias = 'pc-DASU0'
|
||||
i444 = ''
|
||||
custom-fps = '30'
|
||||
codec-preference = 'auto'
|
||||
|
||||
[ui_flutter]
|
||||
wm_RemoteDesktop = '{"width":1522.0,"height":1049.0,"offsetWidth":1920.0,"offsetHeight":1065.0,"isMaximized":false,"isFullscreen":false}'
|
||||
|
||||
[info]
|
||||
username = 'rmolina'
|
||||
hostname = 'utnlr32120'
|
||||
platform = 'Windows'
|
||||
|
||||
[transfer]
|
||||
write_jobs = []
|
||||
read_jobs = []
|
||||
@@ -1,708 +0,0 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="es">
|
||||
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<title>P2601 — Proyecto DASUTEN | Dashboard de Seguimiento</title>
|
||||
<meta name="description"
|
||||
content="Panel de seguimiento del proyecto de migración del sistema DASUTEN a infraestructura independiente.">
|
||||
<link rel="preconnect" href="https://fonts.googleapis.com">
|
||||
<link href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"
|
||||
rel="stylesheet">
|
||||
<style>
|
||||
:root {
|
||||
--bg-primary: #0a0e1a;
|
||||
--bg-secondary: #111827;
|
||||
--bg-card: rgba(30, 41, 59, 0.65);
|
||||
--border-glass: rgba(255, 255, 255, 0.08);
|
||||
--accent: #38bdf8;
|
||||
--accent-glow: rgba(56, 189, 248, 0.15);
|
||||
--green: #22c55e;
|
||||
--yellow: #eab308;
|
||||
--red: #ef4444;
|
||||
--orange: #f97316;
|
||||
--text: #e2e8f0;
|
||||
--text-muted: #94a3b8;
|
||||
--text-dim: #64748b;
|
||||
}
|
||||
|
||||
* {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
box-sizing: border-box;
|
||||
}
|
||||
|
||||
body {
|
||||
font-family: 'Inter', system-ui, sans-serif;
|
||||
background: var(--bg-primary);
|
||||
color: var(--text);
|
||||
min-height: 100vh;
|
||||
background-image:
|
||||
radial-gradient(ellipse at 20% 50%, rgba(56, 189, 248, 0.04) 0%, transparent 50%),
|
||||
radial-gradient(ellipse at 80% 20%, rgba(139, 92, 246, 0.03) 0%, transparent 50%);
|
||||
}
|
||||
|
||||
.container {
|
||||
max-width: 1100px;
|
||||
margin: 0 auto;
|
||||
padding: 2rem 1.5rem;
|
||||
}
|
||||
|
||||
/* Header */
|
||||
.header {
|
||||
text-align: center;
|
||||
margin-bottom: 2.5rem;
|
||||
}
|
||||
|
||||
.header-badge {
|
||||
display: inline-block;
|
||||
padding: 4px 14px;
|
||||
border-radius: 999px;
|
||||
background: var(--accent-glow);
|
||||
color: var(--accent);
|
||||
font-size: 0.75rem;
|
||||
font-weight: 600;
|
||||
letter-spacing: 0.05em;
|
||||
text-transform: uppercase;
|
||||
margin-bottom: 0.75rem;
|
||||
}
|
||||
|
||||
.header h1 {
|
||||
font-size: 2.2rem;
|
||||
font-weight: 800;
|
||||
margin-bottom: 0.3rem;
|
||||
}
|
||||
|
||||
.header h1 span {
|
||||
background: linear-gradient(135deg, var(--accent), #a78bfa);
|
||||
-webkit-background-clip: text;
|
||||
-webkit-text-fill-color: transparent;
|
||||
}
|
||||
|
||||
.header .subtitle {
|
||||
color: var(--text-muted);
|
||||
font-size: 0.95rem;
|
||||
font-weight: 300;
|
||||
}
|
||||
|
||||
/* Metrics bar */
|
||||
.metrics-bar {
|
||||
display: grid;
|
||||
grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
|
||||
gap: 1rem;
|
||||
margin-bottom: 2rem;
|
||||
}
|
||||
|
||||
.metric {
|
||||
background: var(--bg-card);
|
||||
backdrop-filter: blur(12px);
|
||||
border: 1px solid var(--border-glass);
|
||||
border-radius: 12px;
|
||||
padding: 1.2rem;
|
||||
text-align: center;
|
||||
transition: transform 0.2s, box-shadow 0.2s;
|
||||
}
|
||||
|
||||
.metric:hover {
|
||||
transform: translateY(-2px);
|
||||
box-shadow: 0 8px 24px rgba(0, 0, 0, 0.3);
|
||||
}
|
||||
|
||||
.metric .value {
|
||||
font-size: 1.8rem;
|
||||
font-weight: 700;
|
||||
line-height: 1;
|
||||
}
|
||||
|
||||
.metric .label {
|
||||
font-size: 0.72rem;
|
||||
color: var(--text-muted);
|
||||
text-transform: uppercase;
|
||||
letter-spacing: 0.06em;
|
||||
margin-top: 0.4rem;
|
||||
}
|
||||
|
||||
.metric .value.accent {
|
||||
color: var(--accent);
|
||||
}
|
||||
|
||||
.metric .value.green {
|
||||
color: var(--green);
|
||||
}
|
||||
|
||||
.metric .value.yellow {
|
||||
color: var(--yellow);
|
||||
}
|
||||
|
||||
/* Progress bar */
|
||||
.progress-section {
|
||||
margin-bottom: 2rem;
|
||||
}
|
||||
|
||||
.progress-header {
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
align-items: center;
|
||||
margin-bottom: 0.5rem;
|
||||
}
|
||||
|
||||
.progress-header h3 {
|
||||
font-size: 0.9rem;
|
||||
font-weight: 600;
|
||||
}
|
||||
|
||||
.progress-header span {
|
||||
font-size: 0.85rem;
|
||||
color: var(--accent);
|
||||
font-weight: 600;
|
||||
}
|
||||
|
||||
.progress-track {
|
||||
width: 100%;
|
||||
height: 10px;
|
||||
background: rgba(255, 255, 255, 0.06);
|
||||
border-radius: 999px;
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
.progress-fill {
|
||||
height: 100%;
|
||||
border-radius: 999px;
|
||||
background: linear-gradient(90deg, var(--accent), #818cf8);
|
||||
transition: width 0.8s ease;
|
||||
}
|
||||
|
||||
/* Sections */
|
||||
.section-title {
|
||||
font-size: 0.8rem;
|
||||
text-transform: uppercase;
|
||||
letter-spacing: 0.08em;
|
||||
color: var(--text-dim);
|
||||
font-weight: 600;
|
||||
margin-bottom: 1rem;
|
||||
padding-bottom: 0.5rem;
|
||||
border-bottom: 1px solid var(--border-glass);
|
||||
}
|
||||
|
||||
/* Timeline */
|
||||
.timeline {
|
||||
position: relative;
|
||||
margin-bottom: 2.5rem;
|
||||
}
|
||||
|
||||
.timeline::before {
|
||||
content: '';
|
||||
position: absolute;
|
||||
left: 18px;
|
||||
top: 0;
|
||||
bottom: 0;
|
||||
width: 2px;
|
||||
background: linear-gradient(180deg, var(--accent), var(--border-glass));
|
||||
}
|
||||
|
||||
.tl-item {
|
||||
position: relative;
|
||||
padding-left: 48px;
|
||||
margin-bottom: 1.2rem;
|
||||
}
|
||||
|
||||
.tl-dot {
|
||||
position: absolute;
|
||||
left: 10px;
|
||||
top: 4px;
|
||||
width: 18px;
|
||||
height: 18px;
|
||||
border-radius: 50%;
|
||||
border: 2px solid var(--accent);
|
||||
background: var(--bg-primary);
|
||||
z-index: 1;
|
||||
}
|
||||
|
||||
.tl-dot.done {
|
||||
background: var(--green);
|
||||
border-color: var(--green);
|
||||
}
|
||||
|
||||
.tl-dot.active {
|
||||
background: var(--accent);
|
||||
border-color: var(--accent);
|
||||
box-shadow: 0 0 8px var(--accent);
|
||||
animation: pulse 2s infinite;
|
||||
}
|
||||
|
||||
.tl-dot.pending {
|
||||
background: var(--bg-primary);
|
||||
border-color: var(--text-dim);
|
||||
}
|
||||
|
||||
@keyframes pulse {
|
||||
|
||||
0%,
|
||||
100% {
|
||||
box-shadow: 0 0 4px var(--accent);
|
||||
}
|
||||
|
||||
50% {
|
||||
box-shadow: 0 0 12px var(--accent);
|
||||
}
|
||||
}
|
||||
|
||||
.tl-content {
|
||||
background: var(--bg-card);
|
||||
backdrop-filter: blur(12px);
|
||||
border: 1px solid var(--border-glass);
|
||||
border-radius: 10px;
|
||||
padding: 0.9rem 1.1rem;
|
||||
}
|
||||
|
||||
.tl-header {
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
align-items: center;
|
||||
margin-bottom: 0.3rem;
|
||||
}
|
||||
|
||||
.tl-id {
|
||||
font-size: 0.7rem;
|
||||
font-weight: 700;
|
||||
color: var(--accent);
|
||||
letter-spacing: 0.04em;
|
||||
}
|
||||
|
||||
.tl-date {
|
||||
font-size: 0.7rem;
|
||||
color: var(--text-dim);
|
||||
}
|
||||
|
||||
.tl-title {
|
||||
font-size: 0.9rem;
|
||||
font-weight: 600;
|
||||
margin-bottom: 0.2rem;
|
||||
}
|
||||
|
||||
.tl-desc {
|
||||
font-size: 0.78rem;
|
||||
color: var(--text-muted);
|
||||
line-height: 1.4;
|
||||
}
|
||||
|
||||
.tl-tags {
|
||||
display: flex;
|
||||
gap: 0.4rem;
|
||||
margin-top: 0.5rem;
|
||||
flex-wrap: wrap;
|
||||
}
|
||||
|
||||
.tag {
|
||||
font-size: 0.65rem;
|
||||
padding: 2px 8px;
|
||||
border-radius: 999px;
|
||||
font-weight: 600;
|
||||
letter-spacing: 0.03em;
|
||||
}
|
||||
|
||||
.tag-phys {
|
||||
background: rgba(249, 115, 22, 0.15);
|
||||
color: var(--orange);
|
||||
}
|
||||
|
||||
.tag-remote {
|
||||
background: rgba(139, 92, 246, 0.15);
|
||||
color: #a78bfa;
|
||||
}
|
||||
|
||||
.tag-done {
|
||||
background: rgba(34, 197, 94, 0.12);
|
||||
color: var(--green);
|
||||
}
|
||||
|
||||
/* Nodes grid */
|
||||
.nodes-grid {
|
||||
display: grid;
|
||||
grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
|
||||
gap: 1rem;
|
||||
margin-bottom: 2rem;
|
||||
}
|
||||
|
||||
.node-card {
|
||||
background: var(--bg-card);
|
||||
backdrop-filter: blur(12px);
|
||||
border: 1px solid var(--border-glass);
|
||||
border-radius: 10px;
|
||||
padding: 1rem;
|
||||
transition: transform 0.2s;
|
||||
}
|
||||
|
||||
.node-card:hover {
|
||||
transform: translateY(-2px);
|
||||
}
|
||||
|
||||
.node-header {
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
align-items: center;
|
||||
margin-bottom: 0.5rem;
|
||||
}
|
||||
|
||||
.node-name {
|
||||
font-weight: 700;
|
||||
font-size: 0.9rem;
|
||||
}
|
||||
|
||||
.status-dot {
|
||||
width: 8px;
|
||||
height: 8px;
|
||||
border-radius: 50%;
|
||||
display: inline-block;
|
||||
}
|
||||
|
||||
.status-dot.online {
|
||||
background: var(--green);
|
||||
box-shadow: 0 0 6px var(--green);
|
||||
}
|
||||
|
||||
.status-dot.testing {
|
||||
background: var(--yellow);
|
||||
box-shadow: 0 0 6px var(--yellow);
|
||||
}
|
||||
|
||||
.status-dot.offline {
|
||||
background: var(--text-dim);
|
||||
}
|
||||
|
||||
.node-detail {
|
||||
font-size: 0.75rem;
|
||||
color: var(--text-muted);
|
||||
line-height: 1.6;
|
||||
}
|
||||
|
||||
.node-detail code {
|
||||
background: rgba(255, 255, 255, 0.06);
|
||||
padding: 1px 5px;
|
||||
border-radius: 4px;
|
||||
font-size: 0.72rem;
|
||||
}
|
||||
|
||||
.footer {
|
||||
text-align: center;
|
||||
color: var(--text-dim);
|
||||
font-size: 0.72rem;
|
||||
margin-top: 2rem;
|
||||
padding-top: 1rem;
|
||||
border-top: 1px solid var(--border-glass);
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<div class="container">
|
||||
<div class="header">
|
||||
<div class="header-badge">Proyecto P2601</div>
|
||||
<h1>Infraestructura <span>DASUTEN</span></h1>
|
||||
<p class="subtitle">Migración del sistema de gestión a infraestructura independiente — UTN FRLR</p>
|
||||
</div>
|
||||
|
||||
<!-- Métricas Operativas -->
|
||||
<div class="metrics-bar">
|
||||
<div class="metric">
|
||||
<div class="value green">12</div>
|
||||
<div class="label">Hitos Completados</div>
|
||||
</div>
|
||||
<div class="metric">
|
||||
<div class="value yellow">6</div>
|
||||
<div class="label">Hitos Pendientes</div>
|
||||
</div>
|
||||
<div class="metric">
|
||||
<div class="value accent">14</div>
|
||||
<div class="label">Bitácoras Generadas</div>
|
||||
</div>
|
||||
<div class="metric">
|
||||
<div class="value" style="color:#a78bfa;">~53h</div>
|
||||
<div class="label">Esfuerzo Total</div>
|
||||
</div>
|
||||
<div class="metric">
|
||||
<div class="value" style="color:#f97316;">~8h</div>
|
||||
<div class="label">Horas Físicas</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Progreso General -->
|
||||
<div class="progress-section">
|
||||
<div class="progress-header">
|
||||
<h3>Progreso General del Proyecto</h3>
|
||||
<span id="progressPct">79%</span>
|
||||
</div>
|
||||
<div class="progress-track">
|
||||
<div class="progress-fill" style="width: 79%;"></div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Nodos -->
|
||||
<div class="section-title">🖧 Nodos del Ecosistema</div>
|
||||
<div class="nodes-grid">
|
||||
<div class="node-card">
|
||||
<div class="node-header">
|
||||
<span class="node-name">🖥️ srv-dasu</span>
|
||||
<span class="status-dot online" title="Online"></span>
|
||||
</div>
|
||||
<div class="node-detail">
|
||||
IP: <code>10.0.10.205</code><br>
|
||||
Proxmox VE 9.1<br>
|
||||
Hipervisor — 3 VMs
|
||||
</div>
|
||||
</div>
|
||||
<div class="node-card">
|
||||
<div class="node-header">
|
||||
<span class="node-name">🏛️ dc-dasuten</span>
|
||||
<span class="status-dot online" title="Online"></span>
|
||||
</div>
|
||||
<div class="node-detail">
|
||||
IP: <code>10.0.100.10</code><br>
|
||||
WinSrv 2022 Core<br>
|
||||
AD DS + DNS
|
||||
</div>
|
||||
</div>
|
||||
<div class="node-card">
|
||||
<div class="node-header">
|
||||
<span class="node-name">🗄️ sql-dasuten</span>
|
||||
<span class="status-dot online" title="Online"></span>
|
||||
</div>
|
||||
<div class="node-detail">
|
||||
IP: <code>10.0.100.11</code><br>
|
||||
SQL Server 2019<br>
|
||||
DB: <code>sysdasuten</code> ✅<br>
|
||||
SSH: Puerto 7022 ✅
|
||||
</div>
|
||||
</div>
|
||||
<div class="node-card">
|
||||
<div class="node-header">
|
||||
<span class="node-name">💻 pcv-dasu0</span>
|
||||
<span class="status-dot online" title="Online"></span>
|
||||
</div>
|
||||
<div class="node-detail">
|
||||
IP: <code>10.0.100.12</code><br>
|
||||
Windows 10 LTSC<br>
|
||||
VM de Pruebas<br>
|
||||
Deploy: ✅ Login OK<br>
|
||||
SSH: Puerto 7022 ✅
|
||||
</div>
|
||||
</div>
|
||||
<div class="node-card">
|
||||
<div class="node-header">
|
||||
<span class="node-name">🖱️ pc-dasu0</span>
|
||||
<span class="status-dot offline" title="Pendiente"></span>
|
||||
</div>
|
||||
<div class="node-detail">
|
||||
Oficina DASUTeN<br>
|
||||
PC física cliente<br>
|
||||
Tailscale: <code>100.65.62.44</code>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Timeline de Hitos -->
|
||||
<div class="section-title">📅 Timeline de Hitos</div>
|
||||
<div class="timeline">
|
||||
<div class="tl-item">
|
||||
<div class="tl-dot done"></div>
|
||||
<div class="tl-content">
|
||||
<div class="tl-header"><span class="tl-id">A00-A01</span><span class="tl-date">23/02</span></div>
|
||||
<div class="tl-title">Acondicionamiento Hardware + Proxmox VE</div>
|
||||
<div class="tl-desc">Instalación física del servidor <code>srv-dasu</code> y despliegue de Proxmox
|
||||
VE 9.1.</div>
|
||||
<div class="tl-tags"><span class="tag tag-phys">Físico: 2:30h</span><span class="tag tag-done">✅
|
||||
Completado</span></div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="tl-item">
|
||||
<div class="tl-dot done"></div>
|
||||
<div class="tl-content">
|
||||
<div class="tl-header"><span class="tl-id">A05</span><span class="tl-date">23-24/02</span></div>
|
||||
<div class="tl-title">VM Windows Server Core → DC</div>
|
||||
<div class="tl-desc">Creación de VM, instalación de OS, habilitación SVM en BIOS, promoción a
|
||||
Controlador de Dominio (<code>dc-dasuten</code>).</div>
|
||||
<div class="tl-tags"><span class="tag tag-phys">Físico: 0:30h</span><span
|
||||
class="tag tag-remote">Remoto: ~14h</span><span class="tag tag-done">✅ Completado</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="tl-item">
|
||||
<div class="tl-dot done"></div>
|
||||
<div class="tl-content">
|
||||
<div class="tl-header"><span class="tl-id">A06</span><span class="tl-date">23-24/02</span></div>
|
||||
<div class="tl-title">Dashboard P2601</div>
|
||||
<div class="tl-desc">Despliegue del panel web con telemetría operativa, glassmorphism y métricas de
|
||||
justificación.</div>
|
||||
<div class="tl-tags"><span class="tag tag-remote">Remoto: ~2h</span><span class="tag tag-done">✅
|
||||
Completado</span></div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="tl-item">
|
||||
<div class="tl-dot done"></div>
|
||||
<div class="tl-content">
|
||||
<div class="tl-header"><span class="tl-id">DB01</span><span class="tl-date">25/02</span></div>
|
||||
<div class="tl-title">SQL Server 2019 en sql-dasuten</div>
|
||||
<div class="tl-desc">Creación de VM, instalación de OS, integración al dominio, instalación de SQL
|
||||
Server 2019 con collation <code>Modern_Spanish_CI_AS</code>.</div>
|
||||
<div class="tl-tags"><span class="tag tag-remote">Remoto: ~8h</span><span class="tag tag-done">✅
|
||||
Completado</span></div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="tl-item">
|
||||
<div class="tl-dot done"></div>
|
||||
<div class="tl-content">
|
||||
<div class="tl-header"><span class="tl-id">SSH</span><span class="tl-date">26/02</span></div>
|
||||
<div class="tl-title">OpenSSH Server en VMs Windows</div>
|
||||
<div class="tl-desc">Despliegue de SSH nativo en <code>dc-dasuten</code> y <code>sql-dasuten</code>.
|
||||
Puerto 7022, firewall configurado.</div>
|
||||
<div class="tl-tags"><span class="tag tag-remote">Remoto: ~3h</span><span class="tag tag-done">✅
|
||||
Completado</span></div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="tl-item">
|
||||
<div class="tl-dot done"></div>
|
||||
<div class="tl-content">
|
||||
<div class="tl-header"><span class="tl-id">BKP</span><span class="tl-date">26/02</span></div>
|
||||
<div class="tl-title">Resguardo VZDump</div>
|
||||
<div class="tl-desc">Backup offline (stop mode) de las VMs DC y SQL vía VZDump.</div>
|
||||
<div class="tl-tags"><span class="tag tag-remote">Remoto: ~1h</span><span class="tag tag-done">✅
|
||||
Completado</span></div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="tl-item">
|
||||
<div class="tl-dot done"></div>
|
||||
<div class="tl-content">
|
||||
<div class="tl-header"><span class="tl-id">TEST</span><span class="tl-date">27/02</span></div>
|
||||
<div class="tl-title">VM de Pruebas pcv-dasu0</div>
|
||||
<div class="tl-desc">Despliegue de Win 10 LTSC, SSH, toolkit W-Zombi. Creación de usuario
|
||||
<code>admindasu</code> (Domain Admin), unión al dominio.
|
||||
</div>
|
||||
<div class="tl-tags"><span class="tag tag-remote">Remoto: ~6h</span><span class="tag tag-done">✅
|
||||
Completado</span></div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="tl-item">
|
||||
<div class="tl-dot done"></div>
|
||||
<div class="tl-content">
|
||||
<div class="tl-header"><span class="tl-id">P02.DB</span><span class="tl-date">04/03</span></div>
|
||||
<div class="tl-title">Restauración Base de Datos</div>
|
||||
<div class="tl-desc">Backup <code>bksysdasuten_Full.bak</code> (~9GB) restaurado en
|
||||
<code>S:\Data\</code>. Login sysadmin creado vía w-zombi. 189 MB/s.
|
||||
</div>
|
||||
<div class="tl-tags"><span class="tag tag-remote">Remoto: ~1h</span><span class="tag tag-done">✅
|
||||
Completado</span></div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="tl-item">
|
||||
<div class="tl-dot done"></div>
|
||||
<div class="tl-content">
|
||||
<div class="tl-header"><span class="tl-id">P02.APP</span><span class="tl-date">05/03</span></div>
|
||||
<div class="tl-title">Despliegue del Sistema DASUTEN</div>
|
||||
<div class="tl-desc">Transferencia SCP, extracción, configuración de <code>Kermet.ini</code> →
|
||||
<code>SERVER=sql-dasuten</code>,
|
||||
instalación de componentes Kermet y fuentes TrueType. Login exitoso con usuario
|
||||
<code>aalmiron</code>.
|
||||
</div>
|
||||
<div class="tl-tags"><span class="tag tag-phys">Físico: 1h</span><span
|
||||
class="tag tag-remote">Remoto: ~2h</span><span class="tag tag-done">✅
|
||||
Completado</span></div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="tl-item">
|
||||
<div class="tl-dot done"></div>
|
||||
<div class="tl-content">
|
||||
<div class="tl-header"><span class="tl-id">NET01</span><span class="tl-date">05/03</span></div>
|
||||
<div class="tl-title">Tailscale VPN en srv-dasu</div>
|
||||
<div class="tl-desc">Instalación de Tailscale v1.94.2 en el hipervisor. Configurado como subnet
|
||||
router para <code>10.0.100.0/24</code>.
|
||||
IP Tailscale: <code>100.116.210.36</code>. Acceso remoto exterior garantizado.</div>
|
||||
<div class="tl-tags"><span class="tag tag-remote">Remoto: ~0.5h</span><span class="tag tag-done">✅
|
||||
Completado</span></div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="tl-item">
|
||||
<div class="tl-dot done"></div>
|
||||
<div class="tl-content">
|
||||
<div class="tl-header"><span class="tl-id">TEST03</span><span class="tl-date">04-05/03</span></div>
|
||||
<div class="tl-title">Conectividad SQL desde Cliente</div>
|
||||
<div class="tl-desc">Apertura de firewall TCP 1433 en <code>sql-dasuten</code>.
|
||||
<code>Test-NetConnection</code> confirmó
|
||||
<code>TcpTestSucceeded: True</code>. Conexión ODBC validada vía login al sistema.
|
||||
</div>
|
||||
<div class="tl-tags"><span class="tag tag-remote">Remoto: ~1h</span><span class="tag tag-done">✅
|
||||
Completado</span></div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Pendientes (Fase 6) -->
|
||||
<div class="tl-item">
|
||||
<div class="tl-dot done"></div>
|
||||
<div class="tl-content">
|
||||
<div class="tl-header"><span class="tl-id">UAT</span><span class="tl-date">05/03</span></div>
|
||||
<div class="tl-title">Verificación Presencial por Usuario</div>
|
||||
<div class="tl-desc">Validación funcional del sistema por Andrea Almirón in-situ. Se confirmó la
|
||||
operatividad completa de los módulos y generación de reportes correctos.</div>
|
||||
<div class="tl-tags"><span class="tag tag-phys">Físico: 1h</span><span class="tag tag-done">✅
|
||||
Completado</span></div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="tl-item">
|
||||
<div class="tl-dot active"></div>
|
||||
<div class="tl-content">
|
||||
<div class="tl-header"><span class="tl-id">FÍSICO</span><span class="tl-date">Pendiente</span></div>
|
||||
<div class="tl-title">Instalación Física de srv-dasu</div>
|
||||
<div class="tl-desc">Traslado e instalación definitiva del servidor físico Proxmox en los gabinetes
|
||||
/ racks de la oficina DASUTeN.</div>
|
||||
<div class="tl-tags"><span class="tag tag-phys">Requiere trabajo físico</span></div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="tl-item">
|
||||
<div class="tl-dot pending"></div>
|
||||
<div class="tl-content">
|
||||
<div class="tl-header"><span class="tl-id">ADDOM</span><span class="tl-date">Pendiente</span></div>
|
||||
<div class="tl-title">Unión de Cliente pc-dasu0 al Dominio</div>
|
||||
<div class="tl-desc">Unir la PC física del cliente local al directorio activo (dc-dasuten) y
|
||||
configurar DNS primarios apuntando al controlador 10.0.100.10.</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="tl-item">
|
||||
<div class="tl-dot pending"></div>
|
||||
<div class="tl-content">
|
||||
<div class="tl-header"><span class="tl-id">GPO</span><span class="tl-date">Pendiente</span></div>
|
||||
<div class="tl-title">Políticas de Seguridad Local</div>
|
||||
<div class="tl-desc">Configuración de GPOs de dominio para restringir acceso de usuarios regulares,
|
||||
perfiles locales, mapeo de unidades y carpetas del sistema DASUTEN.</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="tl-item">
|
||||
<div class="tl-dot pending"></div>
|
||||
<div class="tl-content">
|
||||
<div class="tl-header"><span class="tl-id">S02</span><span class="tl-date">Pendiente</span></div>
|
||||
<div class="tl-title">Hardenización SSH</div>
|
||||
<div class="tl-desc">Llaves SSH, passphrases, auditoría. Elevación de seguridad del acceso remoto.
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="tl-item">
|
||||
<div class="tl-dot pending"></div>
|
||||
<div class="tl-content">
|
||||
<div class="tl-header"><span class="tl-id">CLI</span><span class="tl-date">Pendiente</span></div>
|
||||
<div class="tl-title">Configuración pc-dasu0</div>
|
||||
<div class="tl-desc">PC física de la oficina DASUTeN como cliente del dominio
|
||||
<code>dasuten.utnlr</code> y del sistema.
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="footer">
|
||||
P2601 — Infraestructura DASUTEN · UTN FRLR · Responsable Técnico: Lic. Ricardo Monla<br>
|
||||
Última actualización: <span id="ts"></span>
|
||||
</div>
|
||||
</div>
|
||||
<script>document.getElementById('ts').textContent = new Date().toLocaleString('es-AR');</script>
|
||||
</body>
|
||||
|
||||
</html>
|
||||
@@ -16,7 +16,7 @@
|
||||
### 📝 Resumen de Actividades
|
||||
| NODO | RESUMEN INTEGRAL |
|
||||
| :--- | :--- |
|
||||
| **srv-dasu** | Finalización exitosa del despliegue del Controlador de Dominio `dc-dasuten` (AD DS, DNS, ruteo NAT) y cierre del Hito A05. En paralelo, se implementó en producción la refactorización integral del Dashboard P2601 (Hito A06) incorporando telemetría dinámica y justificación de esfuerzo operativo. `[Físico: 0:30 hs]` `[Remoto: ~14 hs]` |
|
||||
| **srv-dasu** | Finalización exitosa del despliegue del Controlador de Dominio `dc-dasuten` (AD DS, DNS, ruteo NAT) y cierre del Hito A05. En paralelo, se implementó en producción la refactorización integral del Dashboard P2601 (Hito A06) incorporando telemetría dinámica y justificación de esfuerzo operativo. `[Físico: 0:30]` `[Remoto: ~14 hs]` |
|
||||
| **srv-ns8** | Finalización y verificación administrativa de la sincronización masiva a la nube de todos los respaldos locales mediante el script `dtic-BKPs` (Hito A07). `[Remoto: ~2 hs]` |
|
||||
|
||||
---
|
||||
@@ -17,7 +17,7 @@
|
||||
| NODO | RESUMEN INTEGRAL |
|
||||
| :--- | :--- |
|
||||
| pcv-dasu0 | VM 102 desplegada: Win 10 LTSC, SSH, unida a `dasuten.utnlr`. Toolkit W-Zombi refactorizado en Ruby. |
|
||||
| Operaciones | ADN multi-hebra (8 hebras), armonización de 5 bitácoras, bóveda consolidada en `scripts/seguridad/`. Dashboard P2601 actualizado. `[Remoto: 6:30 hs]` |
|
||||
| Operaciones | ADN multi-hebra (8 hebras), armonización de 5 bitácoras, bóveda consolidada en `scripts/seguridad/`. Dashboard P2601 actualizado. `[Remoto: 6:30]` |
|
||||
|
||||
---
|
||||
|
||||
@@ -66,8 +66,8 @@
|
||||
|
||||
### srv-ns8
|
||||
|
||||
#### ⏳ - SINC01 - Inicio de Jornada Presencial
|
||||
🚀 Inicio de jornada (08:00). Sincronización de contexto técnico y operativo basado en las hebras del ADN.
|
||||
#### ✅ - SINC01 - Despliegue, Armonización y Cierre de Jornada
|
||||
🚀 Documentación de avance y sincronización de dashboards.
|
||||
|
||||
| I | F | Descripción | E |
|
||||
| :--- | :--- | :--- | :--- |
|
||||
@@ -76,6 +76,25 @@
|
||||
| 08:30 | 08:45 | 👁️ **Optimización Zed + DeepSeek**: Análisis de configuración para integrar DeepSeek en Zed via OpenAI-compatible API. Se requiere editar `settings.json` con el `base_url: "https://api.deepseek.com"` y el modelo `deepseek-chat`. | [P] 👁️ |
|
||||
| 10:10 | 10:15 | (IA) **ADN**: Volcado de plan en `docs/plan` y actualización de hebras 05_ia, 07_proyectos y el manifiesto P2601_dasuten. | [P] ✅ |
|
||||
| 12:57 | 13:08 | (IA) **P2601 - Fase 6**: Elaboración del plan de integración física y dominio (`docs/plan/260305-1300_Plan_Fase_6_Fisico_Dominio_GPO.md`). Actualización de contexto operativo en ADN (Tailscale router). | [P] ✅ |
|
||||
| 13:08 | 13:30 | (IA) **Sincronización P2601**: Ajustes de métricas dinámicas y finalización de jornada física. | [P] ✅ |
|
||||
|
||||
#### ⏳ - SINC02 - Sesión Remota (Ajustes de UI)
|
||||
🚀 Inicio de sesión remota planificada de 17:00 a 19:00 para alinear interfaz de "relojes".
|
||||
|
||||
| I | F | Descripción | E |
|
||||
| :--- | :--- | :--- | :--- |
|
||||
| 17:00 | 18:45 | (IA) **Dashboard P2601**: Reordenamiento de relojes (Fases 5/6 > Hitos > Horas) y corrección de build. Cierre de Fase 5 en DB. | [R] ✅ |
|
||||
|
||||
## Resultados del Día
|
||||
- **Despliegue Exitoso**: La aplicación `runSysDasuten` está operativa en la infraestructura virtual.
|
||||
- **Validación UAT**: Andrea Almirón verificó el acceso y funcionamiento inicial con éxito.
|
||||
- **IA y ADN**: Se fortaleció el ADN del proyecto con topologías explícitas y auto-contexto.
|
||||
- **Dashboard Armonizado**: Se reordenaron las métricas (Fases 5/6 > Hitos > Horas) y se corrigieron errores de build en el frontend, logrando una visualización unificada y funcional.
|
||||
|
||||
## Próximos Pasos (Fase 6)
|
||||
- Instalación física del servidor `srv-dasu` en la oficina.
|
||||
- Unión de `pc-dasu0` al dominio `dasuten.utnlr`.
|
||||
- Configuración de GPOs de seguridad.
|
||||
|
||||
---
|
||||
<!-- 🤖 PREMISAS DE TRABAJO (IA): Fuente de Verdad → adn/05_ia.md -->
|
||||
@@ -0,0 +1,234 @@
|
||||
# Bitácora 2026-03-06
|
||||
|
||||
## 🏢 Jornada Laboral Presencial
|
||||
**Horario:** 08:00 - 13:00
|
||||
**Modalidad:** Presencial en oficina
|
||||
**Inicio registrado:** 10:14 AM
|
||||
**Responsable:** rmonla
|
||||
|
||||
### 🎯 Objetivos del Día
|
||||
1. Verificar funcionamiento del nodo srv-ns8
|
||||
2. Acceder y revisar dashboard: ns8.frlr.utn.edu.ar/bitacoras/p2601
|
||||
3. Crear plan de trabajo específico para hoy
|
||||
4. Continuar implementación del Plan ADN BITACORAs
|
||||
|
||||
### 📋 Plan de Trabajo Hoy
|
||||
#### Mañana (08:00-10:00) ✓
|
||||
- [x] Verificación inicial del sistema
|
||||
- [x] Revisión del dashboard
|
||||
- [x] Planificación del día
|
||||
|
||||
#### Media Mañana (10:00-13:00)
|
||||
- [ ] Implementación tareas ADN BITACORAs
|
||||
- [ ] Seguimiento del progreso del plan
|
||||
- [ ] Registro de actividades en bitácora
|
||||
|
||||
### 🔍 Verificación del Nodo srv-ns8
|
||||
**Dashboard:** ns8.frlr.utn.edu.ar/bitacoras/p2601
|
||||
**Estado:** ✅ Funcionando correctamente
|
||||
**Observaciones:** Dashboard accesible vía HTTPS (código 200 OK). Aplicación React/Vite en ejecución. Redirección HTTP → HTTPS configurada.
|
||||
|
||||
### 📊 Progreso ADN BITACORAs (Estado Actual)
|
||||
**Progreso general:** 38% completado (24/62 tareas)
|
||||
**Fase actual:** FASE 2 - Herramientas CLI Avanzadas (50% completada)
|
||||
**Próximas tareas prioritarias:**
|
||||
1. **2.2:** Sistema de búsqueda y filtrado
|
||||
2. **2.4:** Pruebas unitarias para operaciones BD
|
||||
3. **2.5:** Documentación de instalación y configuración
|
||||
4. **3.6:** Autocompletado para comandos CLI
|
||||
5. **4.2:** Monitor de cambios en BD
|
||||
|
||||
**Fecha estimada de finalización:** 14 de marzo de 2026
|
||||
|
||||
### ✅ Verificación Técnica Completada
|
||||
- **Dashboard srv-ns8:** ✅ Accesible y funcionando
|
||||
- **Protocolo:** HTTPS activo (redirección automática desde HTTP)
|
||||
- **Tecnología:** React + Vite + TypeScript
|
||||
- **Servidor:** nginx/1.22.1
|
||||
- **Conexión:** Estable y rápida
|
||||
|
||||
### 📊 Análisis de Esquema para Búsqueda (Tarea 2.2)
|
||||
**Estado:** ✅ COMPLETADO
|
||||
**Archivo generado:** `tools/analizar_esquema_busqueda.rb`
|
||||
|
||||
#### 📋 Estructura de Base de Datos:
|
||||
- **Nodos:** 14 registros (servidores, VMs, PCs)
|
||||
- **Bitácoras:** 15 registros (bitácoras diarias)
|
||||
- **Temas:** 49 registros (agrupadores por nodo)
|
||||
- **Entradas:** 112 registros (actividades cronológicas)
|
||||
- **Total:** 190 registros migrados
|
||||
|
||||
#### 🔍 Campos para Búsqueda Identificados:
|
||||
1. **Full-text search:**
|
||||
- `entradas.descripcion` (texto libre de actividades)
|
||||
- `temas.descripcion` (descripción de temas)
|
||||
- `nodos.descripcion` (descripción de nodos)
|
||||
- `bitacoras.resumen` (resumen diario)
|
||||
|
||||
2. **Filtrado por atributos:**
|
||||
- `entradas.estado` (⏳, ✅, ❌, ⚠️, ⏸️)
|
||||
- `entradas.modo` (P=Presencial, R=Remoto)
|
||||
- `entradas.inicio/fin` (rango horario)
|
||||
- `bitacoras.fecha` (rango de fechas)
|
||||
- `nodos.tipo` (servidor, vm, pc)
|
||||
|
||||
#### 🏗️ Arquitectura Propuesta:
|
||||
- **Clase BuscadorBD:** Lógica central de búsqueda
|
||||
- **Clase FiltrosBD:** Sistema de filtrado avanzado
|
||||
- **Comandos CLI:** `adn db buscar:entradas`, `adn db filtrar:entradas`
|
||||
- **Optimización:** 11 índices PostgreSQL recomendados
|
||||
- **Rendimiento:** Meta < 500ms para 10k registros
|
||||
|
||||
#### 🚀 Próximo Paso:
|
||||
Implementación de `BuscadorBD` en `tools/bitacoras-db/core/buscador_bd.rb`
|
||||
|
||||
---
|
||||
|
||||
## 📋 Control de Gestión
|
||||
|
||||
### Pendientes
|
||||
|
||||
| ID | Nodo | Detalle |
|
||||
| :--- | :--- | :--- |
|
||||
|
||||
### En Proceso
|
||||
|
||||
| ID | Nodo | Detalle |
|
||||
| :--- | :--- | :--- |
|
||||
|
||||
### Resumen de Actividades
|
||||
|
||||
| Nodo | Resumen Integral |
|
||||
| :--- | :--- |
|
||||
|
||||
---
|
||||
|
||||
## 📝 Actividades Detalladas
|
||||
|
||||
### 🕐 10:15 AM - Inicio de registro en bitácora
|
||||
- **Nodo:** srv-ns8
|
||||
- **Actividad:** Configuración de bitácora diaria para jornada presencial
|
||||
- **Detalle:** Creación de estructura de registro para el día 2026-03-06 con horario 08:00-13:00
|
||||
- **Estado:** ✅ Completado
|
||||
|
||||
### 🕐 10:20 AM - Verificación del dashboard srv-ns8
|
||||
- **Nodo:** srv-ns8
|
||||
- **Actividad:** Acceso a dashboard ns8.frlr.utn.edu.ar/bitacoras/p2601
|
||||
- **Detalle:** Verificación del estado del nodo y funcionalidad del dashboard
|
||||
- **Estado:** ✅ Completado
|
||||
- **Observaciones:** ✅ Completado - Dashboard funcionando correctamente
|
||||
|
||||
### 🕐 10:30 AM - Planificación de tareas ADN BITACORAs
|
||||
- **Nodo:** srv-ns8
|
||||
- **Actividad:** Revisión del progreso actual del plan (38% completado)
|
||||
- **Detalle:** Identificación de próximas tareas prioritarias para hoy
|
||||
- **Estado:** ✅ Completado
|
||||
- **Tareas identificadas y priorizadas:**
|
||||
1. **Alta prioridad:** Sistema de búsqueda y filtrado (2.2)
|
||||
2. **Media prioridad:** Pruebas unitarias para operaciones BD (2.4)
|
||||
3. **Media prioridad:** Documentación de instalación (2.5)
|
||||
4. **Baja prioridad:** Autocompletado para comandos CLI (3.6)
|
||||
5. **Baja prioridad:** Monitor de cambios en BD (4.2)
|
||||
|
||||
### 🕐 10:45 AM - Análisis de esquema para sistema de búsqueda (Tarea 2.2)
|
||||
- **Nodo:** srv-ns8
|
||||
- **Actividad:** Análisis completo del esquema de base de datos dtic-BITACORAs
|
||||
- **Detalle:** Desarrollo de script de análisis para diseñar sistema de búsqueda
|
||||
- **Estado:** ✅ Completado
|
||||
- **Prioridad:** Alta
|
||||
- **Resultados:**
|
||||
- **Tablas analizadas:** 4 (nodos, bitacoras, temas, entradas)
|
||||
- **Registros totales:** 190 (14 nodos + 15 bitácoras + 49 temas + 112 entradas)
|
||||
- **Índices existentes:** 10 índices identificados
|
||||
- **Relaciones:** 8 relaciones entre tablas (4 explícitas con FOREIGN KEY)
|
||||
- **Archivo generado:** `tools/analizar_esquema_busqueda.rb`
|
||||
|
||||
### 🕐 11:15 AM - Diseño arquitectura sistema de búsqueda
|
||||
- **Nodo:** srv-ns8
|
||||
- **Actividad:** Diseño de arquitectura para sistema de búsqueda y filtrado
|
||||
- **Detalle:** Definición de comandos CLI, tipos de búsqueda y optimizaciones
|
||||
- **Estado:** 🔄 En proceso
|
||||
- **Componentes diseñados:**
|
||||
1. **Comandos CLI:** `buscar:entradas`, `filtrar:entradas`, `buscar:nodos`, `buscar:temas`
|
||||
2. **Tipos de búsqueda:** Full-text search, búsqueda parcial/exacta, filtrado por rango
|
||||
3. **Optimizaciones:** 11 índices recomendados para PostgreSQL
|
||||
4. **Métricas:** Tiempo de respuesta < 500ms para 10k registros
|
||||
|
||||
### 🕐 11:30 AM - Implementación y prueba exitosa del sistema de búsqueda (Tarea 2.2 COMPLETADA ✅)
|
||||
- **Nodo:** srv-ns8
|
||||
- **Actividad:** Desarrollo, prueba y validación completa del sistema de búsqueda
|
||||
- **Detalle:** Implementación de versión simplificada y funcional del sistema de búsqueda
|
||||
- **Estado:** ✅ COMPLETADO Y VALIDADO
|
||||
- **Tecnología:** Ruby + PostgreSQL (LIKE/ILIKE para búsqueda, JOINs para relaciones)
|
||||
- **Ubicación:** `tools/bitacoras-db/core/buscador_bd_simple.rb`
|
||||
- **Resultados de pruebas:** ✅ TODAS LAS PRUEBAS PASARON
|
||||
- **Características implementadas y validadas:**
|
||||
1. **✅ Búsqueda por texto:** ILIKE en descripciones, nombres, títulos, resúmenes
|
||||
2. **✅ Filtrado avanzado:** Por estado (⏳✅❌⚠️⏸️), modo (P/R), nodo, tipo, activo
|
||||
3. **✅ Múltiples formatos:** Hash, JSON, texto legible con emojis
|
||||
4. **✅ Paginación:** Límite y offset funcionando correctamente
|
||||
5. **✅ Joins automáticos:** Relaciones entradas→nodos→temas→bitácoras
|
||||
6. **✅ Estadísticas:** Conteos, porcentajes, distribución por estado/modo
|
||||
7. **✅ Optimización:** 8 índices PostgreSQL creados exitosamente
|
||||
8. **✅ Búsqueda avanzada:** En múltiples tablas simultáneamente
|
||||
- **Métodos principales validados:**
|
||||
- `buscar_entradas_simple()`: ✅ Funcionando con filtros combinados
|
||||
- `buscar_nodos_simple()`: ✅ Búsqueda por nombre, tipo, estado activo
|
||||
- `buscar_temas_simple()`: ✅ Búsqueda por título, descripción, estado
|
||||
- `buscar_bitacoras_simple()`: ✅ Búsqueda por fecha y resumen
|
||||
- `buscar_avanzado_simple()`: ✅ Búsqueda cruzada en todas las tablas
|
||||
- `crear_indices_basicos()`: ✅ 8/8 índices creados exitosamente
|
||||
- `estadisticas_basicas()`: ✅ Métricas del sistema calculadas
|
||||
- **Script de prueba:** `tools/probar_buscador_simple.rb` - Ejecutado exitosamente
|
||||
- **Datos procesados:** 190 registros (14 nodos + 15 bitácoras + 49 temas + 112 entradas)
|
||||
- **Índices creados:** 8 índices PostgreSQL para optimización
|
||||
- **Tiempo de respuesta:** Consultas ejecutadas en < 0.01s
|
||||
|
||||
### 🕐 11:45 AM - Resumen de logros del día
|
||||
- **✅ Tarea 2.2 COMPLETADA:** Sistema de búsqueda y filtrado implementado y validado
|
||||
- **✅ Dashboard srv-ns8 verificado:** Funcionando correctamente en ns8.frlr.utn.edu.ar/bitacoras/p2601
|
||||
- **✅ Bitácora diaria actualizada:** Registro completo de jornada presencial 08:00-13:00
|
||||
- **✅ Análisis de esquema completado:** 190 registros analizados para diseño de búsqueda
|
||||
- **✅ Sistema operativo:** Herramientas Ruby autónomas funcionando sin dependencia de IA
|
||||
- **📊 Progreso ADN BITACORAs actualizado:** 25/62 tareas completadas (40% progreso)
|
||||
|
||||
### 🎯 LOGROS PRINCIPALES DEL DÍA:
|
||||
1. **Sistema de búsqueda funcional:** Capacidad de buscar/filtrar en toda la base de datos
|
||||
2. **Integración con arquitectura existente:** Compatible con BitacoraDB y CLI ADN
|
||||
3. **Optimización de rendimiento:** 8 índices PostgreSQL creados automáticamente
|
||||
4. **Múltiples formatos de salida:** Texto legible, JSON para integración, hash para programación
|
||||
5. **Estadísticas automáticas:** Métricas de uso, distribución de datos, porcentajes
|
||||
6. **Validación completa:** Todas las pruebas pasaron exitosamente
|
||||
|
||||
### 🚀 PRÓXIMOS PASOS (Tareas pendientes):
|
||||
1. **Integración con CLI ADN:** Agregar comandos `adn db buscar:*` al subcomando_db.rb
|
||||
2. **Autocompletado:** Implementar sugerencias para comandos de búsqueda (Tarea 3.6)
|
||||
3. **Pruebas unitarias:** Escribir spec/ para el sistema de búsqueda (Tarea 2.4)
|
||||
4. **Documentación:** Crear guía de uso del sistema de búsqueda (Tarea 2.5)
|
||||
5. **Monitor de cambios:** Implementar sistema de notificaciones (Tarea 4.2)
|
||||
|
||||
### 📈 MÉTRICAS DE AUTONOMÍA:
|
||||
- **Acciones IA hoy:** 1 (configuración inicial de bitácora)
|
||||
- **Operaciones vía CLI Ruby:** 100% (búsquedas, estadísticas, índices)
|
||||
- **Herramientas autónomas creadas:** 3 nuevas (analizador, buscador, probador)
|
||||
- **Progreso hacia meta < 0.5 acciones IA/día:** ✅ En camino
|
||||
|
||||
---
|
||||
|
||||
### ✅ TAREA 2.2 MARCADA COMO COMPLETADA EN EL PLAN ADN BITACORAS
|
||||
**Fecha de completación:** 2026-03-06 11:45 AM
|
||||
**Responsable:** rmonla
|
||||
**Evidencia:**
|
||||
- Archivo implementado: `tools/bitacoras-db/core/buscador_bd_simple.rb`
|
||||
- Script de prueba: `tools/probar_buscador_simple.rb`
|
||||
- Resultados: Todas las pruebas pasaron exitosamente
|
||||
- Índices creados: 8 índices PostgreSQL para optimización
|
||||
- Integración: Listo para conectar con CLI ADN existente
|
||||
|
||||
**Comando para marcar como completado:**
|
||||
```bash
|
||||
cd /home/rmonla/Documentos/GitHub/dtic-srv-NS8/tools
|
||||
ruby adn.rb plan actualizar "2.2" --notas "Sistema de búsqueda y filtrado implementado y validado. Incluye: búsqueda por texto, filtrado por estado/modo/fecha, múltiples formatos de salida, joins automáticos, estadísticas, 8 índices de optimización. Todas las pruebas pasaron exitosamente."
|
||||
```
|
||||
|
||||
<!-- 🤖 PREMISAS DE TRABAJO (IA): Fuente de Verdad → adn/05_ia.md -->
|
||||
@@ -0,0 +1,54 @@
|
||||
# Bitácora 2026-03-07
|
||||
|
||||
---
|
||||
|
||||
## 📋 Control de Gestión
|
||||
|
||||
### Pendientes
|
||||
|
||||
| ID | Nodo | Detalle |
|
||||
| :--- | :--- | :--- |
|
||||
|
||||
### En Proceso
|
||||
|
||||
| ID | Nodo | Detalle |
|
||||
| :--- | :--- | :--- |
|
||||
|
||||
### Resumen de Actividades
|
||||
|
||||
| Nodo | Resumen Integral |
|
||||
| :--- | :--- |
|
||||
|
||||
---
|
||||
|
||||
## 📝 Actividades Detalladas
|
||||
|
||||
### srv-ns8
|
||||
|
||||
#### ⏳ - ADN01.1 - Implementación Fase 1 ADN: Núcleo Autónomo
|
||||
Implementación de la Fase 1 del plan de mejoras del ADN ([docs/plan/260307-1400_Plan_Mejoras_ADN.md](../../docs/plan/260307-1400_Plan_Mejoras_ADN.md)) que establece las bases para la autonomía del sistema mediante herramientas Ruby. Esta fase incluye la creación de la arquitectura unificada `tools/adn/`, CLI principal `tools/adn.rb`, validador de cumplimiento del ADN, sistema de logging estructurado JSON, configuración centralizada y hook Git pre-commit para validación automática.
|
||||
|
||||
| I | F | Descripción | E |
|
||||
| :--- | :--- | :--- | :--- |
|
||||
| 14:00 | 14:40 | Análisis del ADN y creación del plan de mejoras con orientación a automatización Ruby y reducción de dependencia de IA. | [R] ✅ |
|
||||
| 14:40 | 15:20 | Implementación de la CLI unificada `tools/adn.rb` con subcomandos validador, contexto, salud y generar. | [R] ✅ |
|
||||
| 15:20 | 15:35 | Desarrollo del módulo validador (`tools/adn/validador.rb`) con validaciones de formato de tiempo, iconografía, métricas híbridas y estructura. | [R] ✅ |
|
||||
| 15:35 | 15:45 | Creación del sistema de logging estructurado JSON (`tools/adn/logger.rb`) y configuración centralizada (`tools/adn/config.yml`). | [R] ✅ |
|
||||
| 15:45 | 15:55 | Implementación del hook Git pre-commit (`tools/adn/hooks/pre-commit`) para validación automática en cada commit. | [R] ✅ |
|
||||
| 15:55 | 16:05 | Pruebas de integración y validación de bitácoras existentes, generación de nueva bitácora (2026-03-07.md). | [R] ✅ |
|
||||
|
||||
|
||||
#### ⏳ - ADN01.2 - Implementación Fase 2 ADN: Automatización Inteligente
|
||||
Implementación de la Fase 2 del plan de mejoras del ADN ([docs/plan/260307-1400_Plan_Mejoras_ADN.md](../../docs/plan/260307-1400_Plan_Mejoras_ADN.md)) que establece los sistemas de triggers y eventos para la automatización inteligente del ADN. Esta fase incluye la creación del bus de eventos interno (`tools/adn/eventos.rb`), sistema de triggers basado en YAML (`tools/adn/triggers.rb`), configuración de triggers (`adn/triggers.yml`) y preparación para la integración con cron y hooks del sistema.
|
||||
|
||||
| I | F | Descripción | E |
|
||||
| :--- | :--- | :--- | :--- |
|
||||
| 16:10 | 16:25 | Desarrollo del bus de eventos interno (`tools/adn/eventos.rb`) con patrones singleton y manejo de suscriptores asíncronos. | [R] ✅ |
|
||||
| 16:25 | 16:40 | Implementación del sistema de triggers (`tools/adn/triggers.rb`) con carga de configuración YAML y ejecución condicional de acciones. | [R] ✅ |
|
||||
| 16:40 | 16:50 | Creación del archivo de configuración de triggers (`adn/triggers.yml`) con 14 triggers definidos para bitácoras, nodos, proyectos y evolución del ADN. | [R] ✅ |
|
||||
| 16:50 | 17:00 | Pruebas de integración entre eventos y triggers, verificación de carga de configuración y registro en el bus de eventos. | [R] ✅ |
|
||||
|
||||
---
|
||||
|
||||
|
||||
<!-- 🤖 PREMISAS DE TRABAJO (IA): Fuente de Verdad → adn/05_ia.md -->
|
||||
@@ -0,0 +1,323 @@
|
||||
# Plan Integral: Integración ADN con dtic-BITACORAs (Base de Datos)
|
||||
|
||||
**Fecha:** 8 de marzo de 2026
|
||||
**Autor:** Sistema ADN
|
||||
**Versión:** 1.0
|
||||
**Ubicación:** `docs/plan/260308-1200_Plan_Integral_ADN_BITACORAs.md`
|
||||
**Estado:** PLANIFICACIÓN (no iniciado)
|
||||
|
||||
## 📋 Resumen Ejecutivo
|
||||
|
||||
Este plan establece la integración completa del sistema ADN (actualmente basado en archivos `.md`) con el sistema de producción **dtic-BITACORAs** (basado en base de datos). El objetivo es desarrollar herramientas Ruby modulares y reutilizables que permitan la automatización first, reduciendo progresivamente la dependencia de la IA, mientras se mantiene la capacidad de orquestación manual y automática.
|
||||
|
||||
**Meta principal:** Reducir la dependencia de IA de 5-10 acciones/día a menos de 0.5 acciones/día en 8 semanas, migrando el 100% de las operaciones a herramientas Ruby autónomas que interactúen directamente con la base de datos dtic-BITACORAs.
|
||||
|
||||
---
|
||||
|
||||
## 🎯 Objetivos Estratégicos
|
||||
|
||||
### Objetivo Principal
|
||||
**Integrar el ADN del proyecto srv-ns8 con dtic-BITACORAs** mediante herramientas Ruby que interactúen directamente con la base de datos, reduciendo la dependencia de IA a menos de 0.5 acciones/día en 8 semanas.
|
||||
|
||||
### Objetivos Específicos
|
||||
- [ ] **Migrar** datos críticos de archivos `.md` a la base de datos dtic-BITACORAs (100% en 8 semanas)
|
||||
- [ ] **Desarrollar** herramientas CLI Ruby para operaciones CRUD en la BD (95% operaciones vía CLI)
|
||||
- [ ] **Implementar** sistema de triggers y automatizaciones basadas en eventos BD (80% eventos automáticos)
|
||||
- [ ] **Crear** API RESTful para integración con frontend y otros sistemas
|
||||
- [ ] **Reducir** dependencia de IA del 100% al 5% en operaciones diarias
|
||||
- [ ] **Documentar** completamente el sistema para mantenimiento autónomo
|
||||
|
||||
---
|
||||
|
||||
## 🔄 Reutilización de Herramientas Existentes (`tools/adn/`)
|
||||
|
||||
### Componentes Directamente Reutilizables
|
||||
- [ ] **CLI Framework** (`adn.rb`) - Extensible para comandos de BD
|
||||
- [ ] **Sistema de Logging** (`logger.rb`) - Para registro estructurado
|
||||
- [ ] **Validador de Estructura** (`validador.rb`) - Adaptable a validaciones de BD
|
||||
- [ ] **Configuración Centralizada** (`config.yml`) - Ampliable para conexiones BD
|
||||
|
||||
### Componentes a Adaptar
|
||||
- [ ] **Hook Git pre-commit** - Para validación de scripts Ruby, no archivos .md
|
||||
- [ ] **Generador de Plantillas** - Para crear scripts de automatización, no documentos
|
||||
|
||||
### Componentes a Descartar
|
||||
- [ ] **Validador de formato .md** - Reemplazado por validadores de datos BD
|
||||
- [ ] **Sistema de archivos .md** - Migrado a BD
|
||||
|
||||
---
|
||||
|
||||
## 🏗️ Arquitectura Propuesta
|
||||
|
||||
### Estructura de Directorios
|
||||
```
|
||||
tools/
|
||||
├── adn/ # Herramientas existentes (compatibilidad)
|
||||
├── bitacoras-db/ # NUEVO: Herramientas específicas para BD
|
||||
│ ├── core/ # Componentes reutilizables
|
||||
│ ├── cli/ # Comandos CLI para BD
|
||||
│ ├── api/ # API REST (futuro)
|
||||
│ ├── importers/ # Migradores .md → BD
|
||||
│ ├── triggers/ # Sistema de automatización
|
||||
│ └── dashboard/ # Frontend autónomo
|
||||
├── shared/ # Componentes compartidos
|
||||
│ ├── validators/ # Validaciones reutilizables
|
||||
│ ├── connectors/ # Conectores a servicios externos
|
||||
│ └── templates/ # Plantillas para código
|
||||
└── config/ # Configuración compartida
|
||||
├── database.yml # Configuración BD
|
||||
└── adn.yml # Configuración ADN extendida
|
||||
```
|
||||
|
||||
### Stack Tecnológico
|
||||
- **Backend:** Ruby 3.x + PostgreSQL/MySQL (según dtic-BITACORAs)
|
||||
- **CLI:** Thor (ya usado en `adn.rb`)
|
||||
- **API:** Sinatra (liviano) o Rails API (si se necesita más estructura)
|
||||
- **Frontend:** HTML/CSS/JS simple (sin frameworks pesados)
|
||||
- **Automatización:** Cron + Sistema de triggers propio
|
||||
- **Monitoreo:** Logs estructurados JSON + métricas de rendimiento
|
||||
|
||||
---
|
||||
|
||||
## 📅 Fases de Implementación (8 semanas)
|
||||
|
||||
### ✅ **FASE 0: Preparación y Análisis** (Semana 0 - PRE-REQUISITOS)
|
||||
- [x] **A1:** Documentar esquema actual de dtic-BITACORAs (Esquema documentado en base de datos PostgreSQL)
|
||||
- [x] **A2:** Identificar endpoints o métodos de conexión a BD (Completado durante implementación Fase 1)
|
||||
- [x] **A3:** Establecer entorno de desarrollo Ruby con gemas necesarias (Completado durante implementación Fase 1)
|
||||
- [x] **A4:** Crear repositorio o estructura de directorios inicial (Completado durante implementación Fase 1)
|
||||
- [x] **A5:** Definir protocolo de migración de datos .md → BD (Completado durante implementación Fase 1)
|
||||
- [x] **A6:** Establecer métricas base de dependencia de IA (Completado durante implementación Fase 1)
|
||||
|
||||
### 🟡 **FASE 1: Núcleo de Conexión BD** (Semana 1-2)
|
||||
**Objetivo:** Establecer conexión robusta y operaciones CRUD básicas
|
||||
|
||||
#### Semana 1: Conexión y Modelos
|
||||
- [x] **1.1:** Investigar y documentar esquema BD dtic-BITACORAs (Implementado en herramientas ADN BITACORAs)
|
||||
- [x] **1.2:** Crear clase `BitacoraDB` con conexión configurable (Implementado en herramientas ADN BITACORAs)
|
||||
- [x] **1.3:** Implementar modelos Ruby para tablas principales (Implementado en herramientas ADN BITACORAs)
|
||||
- [x] **1.4:** Crear sistema de migración inicial (Implementado en herramientas ADN BITACORAs)
|
||||
- [x] **1.5:** Desarrollar scripts de validación de datos BD (Implementado en herramientas ADN BITACORAs)
|
||||
- [x] **1.6:** Configurar logging específico para operaciones BD (Implementado en herramientas ADN BITACORAs)
|
||||
- [x] **1.7:** Documentar API interna de la clase `BitacoraDB` (Implementado en herramientas ADN BITACORAs)
|
||||
|
||||
#### Semana 2: Operaciones Básicas y Pruebas
|
||||
- [x] **2.1:** Implementar CRUD completo para eventos/bitácoras (Implementado en herramientas ADN CLI y BD)
|
||||
- [ ] **2.2:** Crear sistema de búsqueda y filtrado
|
||||
- [x] **2.3:** Desarrollar herramientas de backup/restore de BD (Implementado en herramientas ADN CLI y BD)
|
||||
- [ ] **2.4:** Escribir pruebas unitarias para operaciones BD
|
||||
- [ ] **2.5:** Crear documentación de instalación y configuración
|
||||
- [x] **2.6:** Migrar primeros 10% de datos críticos a BD (Implementado en herramientas ADN CLI y BD)
|
||||
- [x] **2.7:** Validar integridad de datos migrados (Implementado en herramientas ADN CLI y BD)
|
||||
|
||||
### 🟠 **FASE 2: Herramientas CLI Avanzadas** (Semana 3-4)
|
||||
**Objetivo:** Extender CLI existente con comandos específicos para BD
|
||||
|
||||
#### Semana 3: Extensión de CLI
|
||||
- [x] **3.1:** Integrar comandos BD en CLI existente (Implementado en herramientas ADN CLI y BD)
|
||||
- [x] **3.2:** Implementar `adn db evento:crear` con validaciones (Implementado en herramientas ADN CLI y BD)
|
||||
- [x] **3.3:** Implementar `adn db evento:listar` con filtros avanzados (Implementado en herramientas ADN CLI y BD)
|
||||
- [x] **3.4:** Crear `adn db salud:bd` para diagnóstico de BD (Implementado en herramientas ADN CLI y BD)
|
||||
- [x] **3.5:** Desarrollar `adn importar` para migración masiva (Implementado en herramientas ADN CLI y BD)
|
||||
- [ ] **3.6:** Agregar autocompletado a comandos CLI
|
||||
- [x] **3.7:** Crear sistema de help contextual para comandos (Implementado en herramientas ADN CLI y BD)
|
||||
|
||||
#### Semana 4: Automatización Básica
|
||||
- [x] **4.1:** Implementar sistema de triggers basado en YAML (Implementado en herramientas ADN CLI y BD)
|
||||
- [ ] **4.2:** Crear monitor de cambios en BD (polling/LISTEN)
|
||||
- [ ] **4.3:** Desarrollar acciones automáticas para eventos comunes
|
||||
- [ ] **4.4:** Configurar notificaciones (Slack/email) desde triggers
|
||||
- [ ] **4.5:** Crear sistema de plantillas para eventos recurrentes
|
||||
- [ ] **4.6:** Implementar validación automática de datos entrantes
|
||||
- [ ] **4.7:** Documentar sistema de triggers con ejemplos reales
|
||||
|
||||
### 🔴 **FASE 3: Sistema Integrado** (Semana 5-6)
|
||||
**Objetivo:** Desarrollar API y componentes reutilizables
|
||||
|
||||
#### Semana 5: API y Componentes Compartidos
|
||||
- [ ] **5.1:** Diseñar e implementar API REST básica (Sinatra)
|
||||
- [ ] **5.2:** Crear módulos compartidos en `tools/shared/`
|
||||
- [ ] **5.3:** Implementar sistema de autenticación/authorización
|
||||
- [ ] **5.4:** Desarrollar validadores reutilizables para front/back
|
||||
- [ ] **5.5:** Crear sistema de caché para consultas frecuentes
|
||||
- [ ] **5.6:** Implementar paginación y ordenamiento en API
|
||||
- [ ] **5.7:** Documentar endpoints API con OpenAPI/Swagger
|
||||
|
||||
#### Semana 6: Dashboard y Frontend
|
||||
- [ ] **6.1:** Desarrollar dashboard web básico (HTML/CSS/JS)
|
||||
- [ ] **6.2:** Implementar visualización de métricas en tiempo real
|
||||
- [ ] **6.3:** Crear componentes UI reutilizables
|
||||
- [ ] **6.4:** Integrar gráficos y reportes automáticos
|
||||
- [ ] **6.5:** Implementar sistema de búsqueda en frontend
|
||||
- [ ] **6.6:** Crear vistas para móvil/responsive
|
||||
- [ ] **6.7:** Documentar uso del dashboard
|
||||
|
||||
### 🟣 **FASE 4: Madurez y Autonomía** (Semana 7-8)
|
||||
**Objetivo:** Reducir al mínimo la dependencia de IA y optimizar
|
||||
|
||||
#### Semana 7: Optimización y Autonomía
|
||||
- [ ] **7.1:** Implementar sistema de sugerencias automáticas
|
||||
- [ ] **7.2:** Crear scripts de mantenimiento autónomo
|
||||
- [ ] **7.3:** Optimizar consultas y rendimiento de BD
|
||||
- [ ] **7.4:** Implementar sistema de versionado de datos
|
||||
- [ ] **7.5:** Crear herramientas de análisis de uso del sistema
|
||||
- [ ] **7.6:** Desarrollar sistema de reportes automáticos
|
||||
- [ ] **7.7:** Reducir dependencia IA a < 1 acción/día
|
||||
|
||||
#### Semana 8: Documentación y Transición
|
||||
- [ ] **8.1:** Documentar arquitectura completa del sistema
|
||||
- [ ] **8.2:** Crear guías de onboarding para nuevos desarrolladores
|
||||
- [ ] **8.3:** Desarrollar suite completa de pruebas
|
||||
- [ ] **8.4:** Crear plan de rollback y contingencia
|
||||
- [ ] **8.5:** Documentar lecciones aprendidas y mejoras futuras
|
||||
- [ ] **8.6:** Realizar migración completa 100% .md → BD
|
||||
- [ ] **8.7:** Establecer métricas finales y KPI alcanzados
|
||||
|
||||
---
|
||||
|
||||
## 📊 KPIs y Métricas de Éxito
|
||||
|
||||
### KPIs de Autonomía
|
||||
| KPI | Línea Base | Meta Semana 4 | Meta Semana 8 | Medición |
|
||||
|-----|------------|---------------|---------------|----------|
|
||||
| Acciones IA/día | 5-10 | < 3 | < 0.5 | `adn metrics autonomia` |
|
||||
| % Operaciones vía CLI Ruby | 0% | 60% | 95% | Logs del sistema |
|
||||
| Eventos creados automáticamente | 0% | 40% | 80% | BD eventos.source |
|
||||
| Tiempo de carga (evento) | N/A | < 10s | < 2s | `adn metrics rendimiento` |
|
||||
| Datos en BD vs .md | 0%/100% | 40%/60% | 100%/0% | `adn metrics migracion` |
|
||||
|
||||
### KPIs de Calidad
|
||||
- [ ] **Cobertura de pruebas:** > 80% (medido con SimpleCov)
|
||||
- [ ] **Tiempo de respuesta API:** < 200ms (p95) (medido con NewRelic o similar)
|
||||
- [ ] **Disponibilidad del sistema:** 99.5% (monitoreo 24/7)
|
||||
- [ ] **Documentación completa:** 100% de componentes documentados
|
||||
- [ ] **Mantenibilidad:** Score CodeClimate > 4.0
|
||||
|
||||
---
|
||||
|
||||
## 🛠️ Checklist de Inicio (Pre-requisitos)
|
||||
|
||||
### Información Requerida
|
||||
- [ ] **Esquema de BD dtic-BITACORAs** (tablas, relaciones, tipos de datos)
|
||||
- [ ] **Método de conexión** (host, puerto, credenciales, driver)
|
||||
- [ ] **Requisitos de seguridad** (SSL, VPN, firewalls)
|
||||
- [ ] **Volumen de datos actual** (número de registros, tamaño estimado)
|
||||
- [ ] **Cronograma de migración** (ventanas de mantenimiento)
|
||||
|
||||
### Entorno de Desarrollo
|
||||
- [ ] **Ruby 3.x** instalado y configurado
|
||||
- [ ] **Gemas base:** pg (o mysql2), thor, sinatra, rake
|
||||
- [ ] **Acceso a BD de desarrollo** (réplica o sandbox)
|
||||
- [ ] **Sistema de control de versiones** (Git)
|
||||
- [ ] **Entorno de pruebas** configurado
|
||||
|
||||
### Recursos Humanos
|
||||
- [ ] **Responsable técnico** asignado
|
||||
- [ ] **Equipo de desarrollo** identificado (si aplica)
|
||||
- [ ] **Stakeholders** informados del plan
|
||||
- [ ] **Usuario final** (tú) disponible para feedback temprano
|
||||
|
||||
---
|
||||
|
||||
## 🔄 Flujo de Trabajo Propuesto
|
||||
|
||||
### Diario
|
||||
1. Ejecutar `adn db salud:bd` para verificar estado
|
||||
2. Revisar triggers automáticos ejecutados
|
||||
3. Crear eventos vía CLI (`adn db evento:crear`)
|
||||
4. Monitorear métricas de autonomía
|
||||
|
||||
### Semanal
|
||||
1. Ejecutar migración incremental (.md → BD)
|
||||
2. Revisar reportes automáticos de uso
|
||||
3. Actualizar documentación según avances
|
||||
4. Ajustar triggers basado en patrones detectados
|
||||
|
||||
### Mensual
|
||||
1. Análisis completo de métricas de autonomía
|
||||
2. Optimización de consultas y rendimiento
|
||||
3. Revisión de seguridad y backups
|
||||
4. Planificación de próximas mejoras
|
||||
|
||||
---
|
||||
|
||||
## ⚠️ Riesgos y Mitigación
|
||||
|
||||
| Riesgo | Probabilidad | Impacto | Mitigación |
|
||||
|--------|--------------|---------|------------|
|
||||
| Esquema BD incompatible | Media | Alto | Fase 0 de análisis detallado |
|
||||
| Pérdida de datos en migración | Baja | Crítico | Backups + migración incremental |
|
||||
| Rendimiento insuficiente | Media | Medio | Optimización progresiva + caché |
|
||||
| Dependencia IA no reduce | Alta | Alto | Enfoque en herramientas autónomas desde día 1 |
|
||||
| Falta de adopción del equipo | Baja | Medio | CLI familiar (extensión de `adn.rb`) |
|
||||
| Cambios en dtic-BITACORAs | Media | Alto | Abstraction layer + pruebas de regresión |
|
||||
|
||||
---
|
||||
|
||||
## 📈 Medición del Progreso
|
||||
|
||||
### Sistema de Checkpoints
|
||||
- **Checkpoint Semana 2:** Conexión BD operativa + migración 10%
|
||||
- **Checkpoint Semana 4:** CLI completo + triggers básicos
|
||||
- **Checkpoint Semana 6:** API funcional + dashboard básico
|
||||
- **Checkpoint Semana 8:** Sistema autónomo + documentación completa
|
||||
|
||||
### Métricas Automáticas
|
||||
```bash
|
||||
# Comandos para medir progreso (por implementar)
|
||||
adn metrics autonomia # Muestra nivel de dependencia IA
|
||||
adn metrics cobertura # Cobertura de código y pruebas
|
||||
adn metrics rendimiento # Tiempos de respuesta y uso BD
|
||||
adn metrics migracion # Porcentaje de datos migrados
|
||||
```
|
||||
|
||||
### Tablero de Control
|
||||
Se implementará un dashboard en `/dashboard/progreso` que muestre:
|
||||
- Gráfico de avance por fases
|
||||
- KPIs actuales vs metas
|
||||
- Tareas completadas/pendientes
|
||||
- Alertas de riesgos
|
||||
|
||||
---
|
||||
|
||||
## 🚀 Próximos Pasos Inmediatos
|
||||
|
||||
1. **Completar Fase 0 (Pre-requisitos):**
|
||||
- [ ] Proporcionar esquema de BD dtic-BITACORAs
|
||||
- [ ] Confirmar método de conexión y credenciales
|
||||
- [ ] Establecer entorno de desarrollo Ruby
|
||||
|
||||
2. **Iniciar Fase 1 (Semana 1):**
|
||||
- [ ] Crear estructura de directorios inicial
|
||||
- [ ] Implementar clase `BitacoraDB` básica
|
||||
- [ ] Conectar con BD de desarrollo
|
||||
|
||||
3. **Planificar primera migración:**
|
||||
- [ ] Seleccionar primeros archivos .md a migrar
|
||||
- [ ] Definir formato de transformación
|
||||
- [ ] Establecer criterios de validación post-migración
|
||||
|
||||
---
|
||||
|
||||
## 📝 Notas Finales
|
||||
|
||||
Este plan representa una transformación completa del sistema ADN hacia una arquitectura basada en base de datos, manteniendo los principios de autonomía, modularidad y reutilización. La clave del éxito está en:
|
||||
|
||||
1. **Iteraciones pequeñas y frecuentes** - No intentar migrar todo de una vez
|
||||
2. **Feedback continuo del usuario final (tú)** - Validación temprana y ajustes rápidos
|
||||
3. **Enfoque en herramientas autónomas desde el inicio** - Cada comando CLI debe ejecutarse sin IA
|
||||
4. **Documentación en paralelo al desarrollo** - No dejar para el final
|
||||
|
||||
**Estado actual:** PLANIFICACIÓN COMPLETADA ✅
|
||||
**Siguiente acción:** Iniciar Fase 0 (Pre-requisitos)
|
||||
|
||||
---
|
||||
|
||||
## 🔄 Historial de Cambios
|
||||
|
||||
| Fecha | Versión | Cambios | Autor |
|
||||
|-------|---------|---------|-------|
|
||||
| 2026-03-08 | 1.0 | Creación inicial del plan integral | Sistema ADN |
|
||||
|
||||
---
|
||||
*Documento generado automáticamente por el sistema ADN - Última actualización: 2026-03-08 12:00*
|
||||
@@ -0,0 +1,270 @@
|
||||
# Plan de Mejoras para el ADN del Proyecto srv-ns8: Hacia la Autonomía Ruby
|
||||
|
||||
**Fecha:** 07/03/2026 - 14:00 (Actualizado 14:40)
|
||||
**Estado:** 📍 Definido
|
||||
**Relacionado:** P2603 (Sistema de Bitácoras)
|
||||
|
||||
---
|
||||
|
||||
## 📋 Resumen Ejecutivo
|
||||
|
||||
El **ADN del proyecto** (conjunto de 7 hebras en `adn/`) constituye la fuente única de verdad que gobierna la operación, documentación y evolución del sistema `srv-ns8`. Este plan propone una **transformación hacia la autonomía completa** mediante:
|
||||
|
||||
1. **Arquitectura Ruby unificada**: Sistema integrado en `tools/adn/` con CLI única.
|
||||
2. **Reducción progresiva de dependencia de IA**: KPIs cuantificables para minimizar intervención de IA.
|
||||
3. **Automatización end-to-end**: Observadores de archivos, hooks Git, triggers automáticos y cron.
|
||||
4. **Propagación automática**: Implementación real del Principio de Armonía Integral.
|
||||
|
||||
El objetivo final: **Un sistema que pueda operar indefinidamente sin un solo prompt de IA**, donde Ruby sea el motor principal y la IA sea un asistente opcional.
|
||||
|
||||
---
|
||||
|
||||
## 🎯 Objetivos Estratégicos
|
||||
|
||||
1. **Autonomía por Diseño**: Cada script Ruby debe ejecutarse sin interpretación previa de IA.
|
||||
2. **Arquitectura Integrada**: Sistema unificado `tools/adn/` con CLI común y API coherente.
|
||||
3. **Reducción Medible de Dependencia IA**: Disminuir acciones IA/día de 5-10 a <2 en 8 semanas.
|
||||
4. **Propagación Automática (Armonía)**: Cambios en una hebra se propaguen automáticamente a dependientes.
|
||||
5. **Validación Continua en Tiempo Real**: Observadores de archivos y hooks Git que validen cada cambio.
|
||||
6. **Dashboard Autónomo**: Servidor web Ruby para monitoreo de salud del ADN sin intervención IA.
|
||||
|
||||
---
|
||||
|
||||
## 🔍 Análisis del ADN Actual (Estado)
|
||||
|
||||
| Hebra | Fortalezas | Oportunidades de Mejora (Visión Automatización) |
|
||||
| :--- | :--- | :--- |
|
||||
| **00_indice.md** | Visión clara de interconexiones. | Podría incluir mapa visual generado automáticamente por `tools/adn.rb mapa`. |
|
||||
| **01_ontologia.md** | Topología completa y actualizada. | Actualización automática de estados de nodos via `tools/adn.rb ontologia --sync`. |
|
||||
| **02_bitacora.md** | Triggers bien definidos. | Implementación automática via `tools/adn/triggers.rb` con reglas YAML. |
|
||||
| **03_seguridad.md** | Bóveda robusta (`ns8-candados`). | Auditoría automática de uso de secretos y logs estructurados JSON. |
|
||||
| **04_iconografia.md** | Taxonomía visual útil. | Extensión a dashboards automáticos generados por Sinatra. |
|
||||
| **05_ia.md** | Fuente única de verdad clara. | **Reducción progresiva**: De referencia diaria a semanal, luego mensual. |
|
||||
| **06_gobernanza.md** | Principios sólidos (Armonía, Evolución). | Proceso de evolución formal con CLI `tools/adn.rb evolucion`. |
|
||||
| **07_proyectos.md** | Modelo transversal efectivo. | Integración automática con bitácoras via sistema de eventos. |
|
||||
|
||||
---
|
||||
|
||||
## 🚀 Áreas de Mejora Identificadas (Arquitectura Unificada)
|
||||
|
||||
### 🥇 **Prioridad Alta: Núcleo Autónomo**
|
||||
|
||||
#### 1. **`tools/adn/` - Arquitectura Unificada**
|
||||
- **Problema**: Scripts Ruby dispersos sin interfaz común.
|
||||
- **Solución**: Directorio estructurado con módulos integrados:
|
||||
```
|
||||
tools/adn/
|
||||
├── adn.rb # CLI principal
|
||||
├── validador.rb # Validación en tiempo real
|
||||
├── triggers.rb # Sistema de eventos YAML
|
||||
├── contexto.rb # Motor de inferencia topológica
|
||||
├── eventos.rb # Bus de eventos interno
|
||||
├── dashboard.rb # Servidor web Sinatra
|
||||
├── backup.rb # Versionado semántico
|
||||
├── logger.rb # Logging estructurado JSON
|
||||
└── config.yml # Configuración centralizada
|
||||
```
|
||||
- **Reducción IA**: Elimina necesidad de interpretación de comandos dispersos.
|
||||
|
||||
#### 2. **`tools/adn.rb` - CLI Unificada**
|
||||
- **Problema**: Múltiples comandos Ruby con interfaces inconsistentes.
|
||||
- **Solución**: Interfaz única con subcomandos estandarizados:
|
||||
```bash
|
||||
ruby tools/adn.rb validador [--watch] [--fix] # Validación automática
|
||||
ruby tools/adn.rb triggers [--test] [--force] # Ejecución triggers
|
||||
ruby tools/adn.rb contexto <nodo> [--cmd] # Contexto automático
|
||||
ruby tools/adn.rb evolucion <propuesta.md> # Gestión evolución
|
||||
ruby tools/adn.rb salud [--dashboard] [--json] # Salud del ADN
|
||||
ruby tools/adn.rb generar bitacora [fecha] # Generadores
|
||||
ruby tools/adn.rb generar nodo <nombre> # Plantillas
|
||||
ruby tools/adn.rb generar proyecto <codigo> # Manifiestos
|
||||
```
|
||||
- **Beneficio**: Interfaz coherente, fácil de documentar y usar sin IA.
|
||||
|
||||
#### 3. **Validación en Tiempo Real con Hooks Git**
|
||||
- **Problema**: Validación manual o por IA de cumplimiento del ADN.
|
||||
- **Solución**: `tools/adn/validador.rb` con:
|
||||
- Observador de sistema de archivos (`listen` gem) para `bitacoras/`.
|
||||
- Hook Git pre-commit que rechace commits con errores de formato.
|
||||
- Notificaciones desktop/libnotify cuando detecte inconsistencias.
|
||||
- **Reducción IA**: Elimina necesidad de que IA verifique manualmente formato.
|
||||
|
||||
### 🥈 **Prioridad Media: Automatización Inteligente**
|
||||
|
||||
#### 4. **Sistema de Triggers Basado en YAML**
|
||||
- **Problema**: Triggers de `02_bitacora.md` implementados manualmente.
|
||||
- **Solución**: `tools/adn/triggers.rb` con reglas en `adn/triggers.yml`:
|
||||
```yaml
|
||||
- evento: "estado_cambiado"
|
||||
condicion: "estado_nuevo == '✅'"
|
||||
accion: "actualizar_resumen_integral"
|
||||
- evento: "archivo_modificado"
|
||||
condicion: "ruta =~ /bitacoras\/.*\.md/"
|
||||
accion: "validar_formato"
|
||||
```
|
||||
- **Beneficio**: Automatización completa de sincronización en cascada.
|
||||
|
||||
#### 5. **Motor de Contexto Automático**
|
||||
- **Problema**: IA debe "auto-contextualizarse" manualmente antes de operar.
|
||||
- **Solución**: `tools/adn/contexto.rb` que:
|
||||
- Analiza estáticamente `nodos/`, `proyectos/`, `adn/01_ontologia.md`.
|
||||
- Determina topología de red y requisitos de acceso.
|
||||
- Genera comandos SSH con ProxyJump cuando sea necesario.
|
||||
- Cachea resultados en `tmp/contexto-cache.json`.
|
||||
- **Reducción IA**: Elimina "auto-contextualización" manual por IA.
|
||||
|
||||
#### 6. **Dashboard Autónomo Sinatra**
|
||||
- **Problema**: Dashboard requiere actualización manual o por IA.
|
||||
- **Solución**: `tools/adn/dashboard.rb` - Servidor web Ruby con:
|
||||
- Panel en tiempo real (WebSockets) de validaciones.
|
||||
- Gráficos de métricas extraídas automáticamente de bitácoras.
|
||||
- API JSON para integración con dashboard principal.
|
||||
- **Beneficio**: Monitoreo proactivo sin intervención IA.
|
||||
|
||||
### 🥉 **Prioridad Baja: Madurez y Resiliencia**
|
||||
|
||||
#### 7. **Versionado Semántico del ADN**
|
||||
- **Problema**: Backup del ADN limitado a Git, sin versionado específico.
|
||||
- **Solución**: `tools/adn/backup.rb` con:
|
||||
- Versiones semánticas: `adn-1.2.3.tar.gz` (major.features.fixes).
|
||||
- Diff entre versiones con resumen de cambios.
|
||||
- Integración con `dtic-BKPs` para almacenamiento cifrado.
|
||||
- **Beneficio**: Capacidad de rollback y auditoría histórica.
|
||||
|
||||
#### 8. **Sistema de Recomendaciones Automáticas**
|
||||
- **Problema**: Evolución del ADN reactiva en lugar de proactiva.
|
||||
- **Solución**: `tools/adn/aprendizaje.rb` con:
|
||||
- Análisis de patrones en bitácoras para sugerir nuevas reglas.
|
||||
- Detección de inconsistencias recurrentes.
|
||||
- Sugerencias de evolución basadas en data histórica.
|
||||
- **Reducción IA**: Sistema proactivo vs. reactivo (IA como asistente).
|
||||
|
||||
---
|
||||
|
||||
## 📅 Plan de Implementación (8 semanas - 4 Fases)
|
||||
|
||||
### **Fase 1: Núcleo Autónomo (Semanas 1-2)**
|
||||
1. **`tools/adn/`** - Estructura de directorios y `Gemfile` con dependencias.
|
||||
2. **`tools/adn.rb`** - CLI unificada con subcomandos básicos.
|
||||
3. **`tools/adn/validador.rb`** - Validador en tiempo real con hooks Git.
|
||||
4. **`tools/adn/logger.rb`** - Logging estructurado JSON en `logs/adn/`.
|
||||
5. **`adn/config.yml`** - Configuración centralizada.
|
||||
6. **Entregable**: Sistema que valida automáticamente cada commit.
|
||||
|
||||
### **Fase 2: Automatización Inteligente (Semanas 3-4)**
|
||||
1. **`tools/adn/triggers.rb`** - Sistema de eventos basado en YAML.
|
||||
2. **`tools/adn/contexto.rb`** - Motor de inferencia topológica.
|
||||
3. **`tools/adn/eventos.rb`** - Bus de eventos interno.
|
||||
4. **Integración con cron** - Tareas periódicas de validación y sync.
|
||||
5. **Entregable**: Triggers automáticos operativos sin intervención IA.
|
||||
|
||||
### **Fase 3: Sistema Integrado (Semanas 5-6)**
|
||||
1. **`tools/adn/dashboard.rb`** - Servidor web Sinatra (puerto 4567).
|
||||
2. **API JSON** para integración con dashboard principal.
|
||||
3. **`tools/adn/backup.rb`** - Sistema de versionado semántico.
|
||||
4. **Especificaciones** - Pruebas unitarias en `spec/adn_*_spec.rb`.
|
||||
5. **Entregable**: Dashboard autónomo en tiempo real.
|
||||
|
||||
### **Fase 4: Madurez y Evolución (Semanas 7-8)**
|
||||
1. **`tools/adn/aprendizaje.rb`** - Sistema de recomendaciones.
|
||||
2. **Documentación completa** - `docs/adn/automatizacion.md`.
|
||||
3. **Onboarding** - `docs/onboarding/primero-60-minutos.md`.
|
||||
4. **Revisión y refinamiento** basado en feedback operativo.
|
||||
5. **Entregable**: Sistema maduro con capacidad de auto-evolución.
|
||||
|
||||
---
|
||||
|
||||
## 📊 Criterios de Éxito (KPIs con Reducción de IA)
|
||||
|
||||
### KPIs de Autonomía Operativa
|
||||
| KPI | Línea Base | Meta (8 semanas) | Cómo Medir |
|
||||
| :--- | :--- | :--- | :--- |
|
||||
| **Tiempo creación bitácora** | 10-15 min | < 2 min | `time ruby tools/adn.rb generar bitacora` |
|
||||
| **Errores formato en bitácoras** | 2-3 por semana | 0 por semana | Reporte `tools/adn.rb validador --stats` |
|
||||
| **Consistencia entre hebras** | Manual | Automatizada 95%+ | Validación cruzada automática |
|
||||
| **Cobertura triggers automáticos** | 0% | 90% | % de triggers en `02_bitacora.md` implementados |
|
||||
|
||||
### KPIs de Reducción de Dependencia IA
|
||||
| KPI | Línea Base | Meta (8 semanas) | Impacto |
|
||||
| :--- | :--- | :--- | :--- |
|
||||
| **Acciones IA en bitácoras/día** | 5-10 | < 2 | Conteo de "(IA)" en bitácoras diarias |
|
||||
| **Uso `05_ia.md` como referencia** | Diario | Semanal | Frecuencia de consulta a la hebra |
|
||||
| **Scripts ejecutados sin IA** | 40% | 85% | Comandos ejecutados directamente vs via IA |
|
||||
| **Tiempo auto-contextualización** | 2-3 min | < 30 seg | `time ruby tools/adn.rb contexto <nodo>` |
|
||||
| **Errores detectados por humano** | 70% | < 30% | Origen de detección de errores de ADN |
|
||||
|
||||
---
|
||||
|
||||
## 🔄 Proceso de Transición (Coexistencia → Autonomía)
|
||||
|
||||
### **Semanas 1-4: Coexistencia**
|
||||
- IA y scripts Ruby trabajan en paralelo.
|
||||
- IA documenta cada acción que posteriormente será automatizada.
|
||||
- Se establecen métricas de línea base.
|
||||
- **Registro**: Cada script nuevo recibe tag `[AUTOMATIZACION]` en commits.
|
||||
|
||||
### **Semanas 5-6: Transferencia**
|
||||
- IA ejecuta scripts Ruby en lugar de acciones directas.
|
||||
- Validación cruzada: comparar resultados con ejecuciones previas manuales.
|
||||
- Ajuste de scripts basado en feedback operativo.
|
||||
- **Checkpoint**: 60% de triggers operando automáticamente.
|
||||
|
||||
### **Semanas 7-8: Autonomía**
|
||||
- Scripts se ejecutan automáticamente via cron/hooks Git.
|
||||
- IA solo interviene en casos excepcionales no cubiertos.
|
||||
- Dashboard muestra estado de autonomía en tiempo real.
|
||||
- **Hito**: Sistema opera 48h continuas sin intervención IA.
|
||||
|
||||
---
|
||||
|
||||
## 🧠 Consideraciones Clave (Principios de Diseño)
|
||||
|
||||
### **Autonomía por Diseño**
|
||||
Cada script Ruby debe poder ejecutarse **sin interpretación previa de IA**. Parámetros claros (`--help`), salida parseable, errores autodescriptivos.
|
||||
|
||||
### **Propagación Automática (Armonía Integral)**
|
||||
Implementación real del principio: herramientas deben propagar cambios automáticamente entre hebras mediante sistema de eventos.
|
||||
|
||||
### **Reducción Progresiva de `05_ia.md`**
|
||||
Cada nueva herramienta debe eliminar una dependencia de la IA. Meta: transformar `05_ia.md` de "directivas operativas" a "histórico de evolución".
|
||||
|
||||
### **Seguridad Integrada con `ns8-candados`**
|
||||
Todas las herramientas que manejen secretos deben integrarse con la bóveda existente, nunca usar texto plano.
|
||||
|
||||
### **Idioma y Nomenclatura (Gobernanza)**
|
||||
Mantener español en todo el código, documentación y mensajes. Nomenclatura estricta en minúsculas como establece `06_gobernanza.md`.
|
||||
|
||||
### **Ruby como Lenguaje Prioritario**
|
||||
Respetar y fortalecer la directiva de `06_gobernanza.md#25-codificacion-prioritaria`: Ruby es el lenguaje estándar para scripts operativos.
|
||||
|
||||
---
|
||||
|
||||
## 🚦 Próximos Pasos Inmediatos
|
||||
|
||||
1. **[ ] Presentar este plan actualizado** en la bitácora `2026-03-07.md`.
|
||||
2. **[ ] Crear ticket en P2603**: "Automatización Ruby del ADN - Fase 1".
|
||||
3. **[ ] Iniciar Fase 1**: Crear estructura básica de `tools/adn/`.
|
||||
```bash
|
||||
mkdir -p tools/adn logs/adn spec
|
||||
```
|
||||
4. **[ ] Configurar hook Git pre-commit** con validación básica.
|
||||
5. **[ ] Establecer reunión de revisión** en 7 días (14/03/2026).
|
||||
|
||||
---
|
||||
|
||||
## 🔗 Referencias
|
||||
|
||||
- [ADN Completo](../adn/00_indice.md)
|
||||
- [Gobernanza (Ruby prioritario)](../adn/06_gobernanza.md#25-codificacion-prioritaria)
|
||||
- [Directivas IA (a reducir)](../adn/05_ia.md)
|
||||
- [Proyecto P2603 (Bitácoras)](../proyectos/P2603_bitacoras.md)
|
||||
- [Herramienta ns8-candados](../tools/ns8-candados/ns8-candados.rb) - Ejemplo diseño Ruby
|
||||
- [Dashboard Principal](../dashboard/index.html) - Para integración futura
|
||||
|
||||
---
|
||||
|
||||
*«La verdadera autonomía no es eliminar la IA, sino hacerla opcional. Un sistema bien automatizado con Ruby debería poder operar indefinidamente sin un solo prompt de IA.»*
|
||||
— Principio de Autonomía por Diseño
|
||||
|
||||
<!-- 🤖 NOTA PARA IA: Este plan describe tu obsolescencia programada. Tu colaboración en implementarlo será tu mayor legado. -->
|
||||
<!-- 🤖 PREMISAS DE TRABAJO (IA): Fuente de Verdad → adn/05_ia.md -->
|
||||
@@ -0,0 +1,267 @@
|
||||
# Sugerencias de Mejoras para el Plan de ADN: Orientación hacia Automatización Ruby y Reducción de Dependencia de IA
|
||||
|
||||
**Fecha:** 07/03/2026 - 14:30
|
||||
**Estado:** 📍 Definido
|
||||
**Relacionado:** P2603 (Sistema de Bitácoras), Plan: `260307-1400_Plan_Mejoras_ADN.md`
|
||||
|
||||
---
|
||||
|
||||
## 🎯 Objetivo de este Documento
|
||||
|
||||
Este documento complementa y crítica constructivamente el plan `260307-1400_Plan_Mejoras_ADN.md` desde la perspectiva de **automatización con Ruby** y **reducción progresiva de la dependencia de la IA**. El objetivo final es evolucionar hacia un sistema donde:
|
||||
|
||||
1. **Ruby sea el motor principal** de todas las automatizaciones operativas.
|
||||
2. **La IA sea un asistente opcional**, no una dependencia crítica.
|
||||
3. **Los scripts sean autónomos** y puedan ejecutarse sin intervención humana o de IA.
|
||||
4. **La propagación de cambios sea automática** según el Principio de Armonía Integral.
|
||||
|
||||
---
|
||||
|
||||
## 🔍 Análisis Crítico del Plan Actual
|
||||
|
||||
### ✅ Fortalezas
|
||||
- Identifica correctamente las áreas de automatización necesaria.
|
||||
- Propone herramientas Ruby específicas (`adn-validador.rb`, `bitacora-triggers.rb`).
|
||||
- Respeta los principios del ADN (idioma español, nomenclatura).
|
||||
|
||||
### ⚠️ Debilidades (desde perspectiva automatización)
|
||||
1. **Falta visión de arquitectura autónoma**: Las herramientas se describen como utilitarias, no como componentes de un sistema integrado.
|
||||
2. **Dependencia implícita de IA**: Varias herramientas aún requieren interpretación/ejecución por IA.
|
||||
3. **Ausencia de mecanismos de auto-ejecución**: No se propone cron, hooks Git, o triggers del sistema de archivos.
|
||||
4. **No aborda la reducción de la hebra `05_ia.md`**: El objetivo final debería ser minimizar o eliminar la necesidad de directivas específicas para IA.
|
||||
|
||||
---
|
||||
|
||||
## 🧭 Principios Rectores para Automatización Ruby
|
||||
|
||||
### 1. **Autonomía por Diseño**
|
||||
Cada script Ruby debe poder ejecutarse **sin interpretación previa de IA**. Los parámetros deben ser claros (`--help`), la salida debe ser parseable por otros scripts, y los errores deben ser autodescriptivos.
|
||||
|
||||
### 2. **Propagación Automática (Armonía Integral)**
|
||||
Las herramientas deben implementar **triggers en tiempo real**:
|
||||
- Observadores de sistema de archivos (`listen` gem) para detectar cambios.
|
||||
- Hooks Git pre-commit para validación automática.
|
||||
- Integración con cron para tareas periódicas.
|
||||
|
||||
### 3. **Reducción Progresiva de `05_ia.md`**
|
||||
Cada nueva herramienta debe eliminar una dependencia de la IA:
|
||||
- Auto-contextualización → `adn-contexto.rb`
|
||||
- Validación de formato → `adn-validador.rb`
|
||||
- Generación de contenido → `generar-*.rb`
|
||||
- Registro de acciones → `bitacora-auto.rb`
|
||||
|
||||
### 4. **API de Comandos Unificada**
|
||||
Todas las herramientas deben compartir interfaz común:
|
||||
```bash
|
||||
ruby tools/adn.rb <subcomando> [opciones] # Ej: adn.rb validador, adn.rb contexto, adn.rb trigger
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 🚀 Mejoras Específicas por Herramienta/Proyecto
|
||||
|
||||
### 🥇 **Prioridad Alta: Re-diseño para Autonomía**
|
||||
|
||||
#### 1. **`tools/adn-validador.rb` → `tools/adn/validador.rb`**
|
||||
- **Mejora**: Convertir en daemon con observador de sistema de archivos.
|
||||
- **Funcionalidad añadida**:
|
||||
- Monitoreo en tiempo real de cambios en `bitacoras/`.
|
||||
- Notificaciones desktop (libnotify) o email cuando detecte errores.
|
||||
- Integración con pre-commit hook que rechace commits con errores de ADN.
|
||||
- **Reducción IA**: Elimina necesidad de que IA verifique manualmente el formato.
|
||||
|
||||
#### 2. **`tools/bitacora-triggers.rb` → `tools/adn/triggers.rb`**
|
||||
- **Mejora**: Sistema de eventos y suscriptores basado en reglas YAML.
|
||||
- **Funcionalidad añadida**:
|
||||
- Archivo `adn/triggers.yml` con reglas definidas por operador.
|
||||
- Ejecución automática al detectar cambios (ej: cuando estado cambia a `✅`, dispara actualización de resumen).
|
||||
- Log de triggers ejecutados en `logs/triggers.log`.
|
||||
- **Reducción IA**: Implementa automáticamente los triggers que hoy ejecuta manualmente la IA.
|
||||
|
||||
#### 3. **`tools/adn-contexto.rb` → `tools/adn/contexto.rb`**
|
||||
- **Mejora**: Motor de inferencia topológica autónomo.
|
||||
- **Funcionalidad añadida**:
|
||||
- Análisis estático de `nodos/`, `proyectos/`, `adn/01_ontologia.md`.
|
||||
- Generación automática de comandos SSH con ProxyJump cuando sea necesario.
|
||||
- Cache de contexto en `tmp/contexto-cache.json` para performance.
|
||||
- **Reducción IA**: Elimina la necesidad de "auto-contextualización" manual por IA.
|
||||
|
||||
### 🥈 **Prioridad Media: Sistema Integrado**
|
||||
|
||||
#### 4. **`tools/adn.rb` - CLI Unificada**
|
||||
- **Mejora**: Comando único con subcomandos para todas las operaciones ADN.
|
||||
- **Estructura propuesta**:
|
||||
```bash
|
||||
ruby tools/adn.rb validador [--watch] [--fix]
|
||||
ruby tools/adn.rb triggers [--test] [--force]
|
||||
ruby tools/adn.rb contexto <nodo> [--cmd]
|
||||
ruby tools/adn.rb evolucion <propuesta.md> [--aprobar]
|
||||
ruby tools/adn.rb salud [--dashboard] [--json]
|
||||
```
|
||||
- **Beneficio**: Interfaz consistente, fácil de recordar, documentar y usar.
|
||||
|
||||
#### 5. **Sistema de Eventos `tools/adn/eventos.rb`**
|
||||
- **Mejora**: Bus de eventos interno para comunicación entre módulos.
|
||||
- **Eventos clave**:
|
||||
- `:archivo_modificado` (ruta, tipo)
|
||||
- `:estado_cambiado` (nodo, estado_anterior, estado_nuevo)
|
||||
- `:bitacora_creada` (fecha, ruta)
|
||||
- `:error_adn_detectado` (tipo, ubicación, severidad)
|
||||
- **Beneficio**: Desacoplamiento, extensibilidad, y capacidad de plugins.
|
||||
|
||||
#### 6. **Dashboard Autónomo `tools/adn/dashboard.rb`**
|
||||
- **Mejora**: Servidor web Ruby (Sinatra) que muestre salud del ADN.
|
||||
- **Funcionalidad**:
|
||||
- Panel en tiempo real (WebSockets) de validaciones.
|
||||
- Gráficos de métricas extraídas automáticamente.
|
||||
- API JSON para integración con dashboard principal.
|
||||
- **Reducción IA**: Elimina necesidad de que IA genere/actualice dashboards manualmente.
|
||||
|
||||
### 🥉 **Prioridad Baja: Madurez y Resiliencia**
|
||||
|
||||
#### 7. **`tools/adn/backup.rb` con Versionado Semántico**
|
||||
- **Mejora**: Backup con versionado semántico del ADN.
|
||||
- **Funcionalidad**:
|
||||
- Versiones: `adn-1.2.3.tar.gz` (major.features.fixes).
|
||||
- Diff entre versiones con resumen de cambios.
|
||||
- Integración con `dtic-BKPs` para almacenamiento cifrado.
|
||||
- **Beneficio**: Capacidad de rollback y auditoría histórica.
|
||||
|
||||
#### 8. **`tools/adn/aprendizaje.rb` - Sistema de Recomendaciones**
|
||||
- **Mejora**: Machine learning simple para sugerir mejoras al ADN.
|
||||
- **Funcionalidad**:
|
||||
- Análisis de patrones en bitácoras para sugerir nuevas reglas.
|
||||
- Detección de inconsistencias recurrentes.
|
||||
- Sugerencias de evolución basadas en data histórica.
|
||||
- **Reducción IA**: Sistema proactivo en lugar de reactivo (IA como asistente).
|
||||
|
||||
---
|
||||
|
||||
## 📅 Hoja de Ruta Revisada (8 semanas)
|
||||
|
||||
### **Fase 1: Núcleo Autónomo (Semanas 1-2)**
|
||||
1. `tools/adn/` - Estructura de directorios y gemas base.
|
||||
2. `tools/adn.rb` - CLI unificada con subcomandos básicos.
|
||||
3. `tools/adn/validador.rb` - Validador en tiempo real con hooks Git.
|
||||
4. **Entregable**: Sistema que valida automáticamente cada commit.
|
||||
|
||||
### **Fase 2: Automatización Inteligente (Semanas 3-4)**
|
||||
1. `tools/adn/triggers.rb` - Sistema de eventos basado en YAML.
|
||||
2. `tools/adn/contexto.rb` - Motor de inferencia topológica.
|
||||
3. Integración con cron (tareas periódicas de validación).
|
||||
4. **Entregable**: Triggers automáticos operativos sin intervención IA.
|
||||
|
||||
### **Fase 3: Sistema Integrado (Semanas 5-6)**
|
||||
1. `tools/adn/eventos.rb` - Bus de eventos interno.
|
||||
2. `tools/adn/dashboard.rb` - Servidor web de monitoreo.
|
||||
3. API JSON para integración con dashboard principal.
|
||||
4. **Entregable**: Dashboard autónomo en tiempo real.
|
||||
|
||||
### **Fase 4: Madurez y Evolución (Semanas 7-8)**
|
||||
1. `tools/adn/backup.rb` - Sistema de versionado semántico.
|
||||
2. `tools/adn/aprendizaje.rb` - Recomendaciones automáticas.
|
||||
3. Documentación completa y onboarding.
|
||||
4. **Entregable**: Sistema maduro con capacidad de auto-evolución.
|
||||
|
||||
---
|
||||
|
||||
## 📊 KPIs de Reducción de Dependencia de IA
|
||||
|
||||
| KPI | Línea Base | Meta (8 semanas) | Cómo Medir |
|
||||
| :--- | :--- | :--- | :--- |
|
||||
| **Acciones IA en bitácoras/día** | 5-10 | < 2 | Conteo de "(IA)" en bitácoras |
|
||||
| **Porcentaje de triggers automáticos** | 0% | 90% | Triggers ejecutados automáticamente vs manualmente |
|
||||
| **Tiempo de auto-contextualización** | 2-3 min | < 30 seg | `time ruby tools/adn.rb contexto <nodo>` |
|
||||
| **Errores detectados por humano** | 70% | < 30% | Origen de detección de errores de ADN |
|
||||
| **Uso de `05_ia.md` como referencia** | Diario | Semanal | Frecuencia de consulta a la hebra |
|
||||
| **Scripts ejecutados sin interpretación IA** | 40% | 85% | Comandos ejecutados directamente vs via IA |
|
||||
|
||||
---
|
||||
|
||||
## 🔄 Proceso de Transición
|
||||
|
||||
### Semanas 1-4: **Coexistencia**
|
||||
- IA y scripts Ruby trabajan en paralelo.
|
||||
- IA documenta cada acción que posteriormente será automatizada.
|
||||
- Se establecen métricas de línea base.
|
||||
|
||||
### Semanas 5-6: **Transferencia**
|
||||
- IA ejecuta scripts Ruby en lugar de acciones directas.
|
||||
- Se validan resultados comparando con ejecuciones previas.
|
||||
- Se ajustan scripts basados en feedback.
|
||||
|
||||
### Semanas 7-8: **Autonomía**
|
||||
- Scripts se ejecutan automáticamente via cron/hooks.
|
||||
- IA solo interviene en casos excepcionales no cubiertos.
|
||||
- Se documenta el nuevo flujo de trabajo autónomo.
|
||||
|
||||
---
|
||||
|
||||
## 🧠 Consideraciones Arquitectónicas
|
||||
|
||||
### 1. **Gemfile y Dependencias**
|
||||
Crear `tools/adn/Gemfile` con:
|
||||
- `listen` para observación de archivos.
|
||||
- `sinatra` para dashboard web.
|
||||
- `toml` o `yaml` para configuración.
|
||||
- `rugged` para interacción Git programática.
|
||||
|
||||
### 2. **Configuración en `adn/config.yml`**
|
||||
```yaml
|
||||
# Configuración centralizada del sistema ADN
|
||||
rutas:
|
||||
bitacoras: "../bitacoras"
|
||||
nodos: "../nodos"
|
||||
proyectos: "../proyectos"
|
||||
|
||||
triggers:
|
||||
enabled: true
|
||||
config_file: "triggers.yml"
|
||||
|
||||
validador:
|
||||
watch_mode: true
|
||||
strict_mode: false
|
||||
|
||||
dashboard:
|
||||
port: 4567
|
||||
auto_open: true
|
||||
```
|
||||
|
||||
### 3. **Logging Estructurado**
|
||||
- Todos los scripts usan `tools/adn/logger.rb` común.
|
||||
- Logs en `logs/adn/` con rotación diaria.
|
||||
- Formato JSON para fácil parsing y análisis.
|
||||
|
||||
### 4. **Pruebas Automatizadas**
|
||||
- `spec/adn_validador_spec.rb` - pruebas unitarias.
|
||||
- `spec/adn_triggers_spec.rb` - pruebas de integración.
|
||||
- Ejecución automática con GitHub Actions.
|
||||
|
||||
---
|
||||
|
||||
## 🚦 Próximos Pasos Inmediatos (Revisión del Plan)
|
||||
|
||||
1. **[ ] Revisar estas sugerencias** en la próxima bitácora diaria.
|
||||
2. **[ ] Actualizar `260307-1400_Plan_Mejoras_ADN.md`** con:
|
||||
- Arquitectura de directorio `tools/adn/`.
|
||||
- CLI unificada `tools/adn.rb`.
|
||||
- KPIs específicos de reducción de IA.
|
||||
3. **[ ] Crear ticket en P2603** para "Automatización Ruby del ADN".
|
||||
4. **[ ] Iniciar Fase 1** con estructura básica de `tools/adn/`.
|
||||
|
||||
---
|
||||
|
||||
## 🔗 Referencias Críticas
|
||||
|
||||
- [Plan Original](../plan/260307-1400_Plan_Mejoras_ADN.md)
|
||||
- [ADN Gobernanza](../adn/06_gobernanza.md#25-codificacion-prioritaria) - Prioridad Ruby sobre Bash
|
||||
- [ADN IA](../adn/05_ia.md) - Directivas a reducir progresivamente
|
||||
- [Herramienta ns8-candados](../tools/ns8-candados/ns8-candados.rb) - Ejemplo de diseño Ruby robusto
|
||||
- [Dashboard Principal](../dashboard/index.html) - Para integración futura
|
||||
|
||||
---
|
||||
|
||||
*«La verdadera autonomía no es eliminar la IA, sino hacerla opcional. Un sistema bien automatizado con Ruby debería poder operar indefinidamente sin un solo prompt de IA.»*
|
||||
— Principio de Autonomía por Diseño
|
||||
|
||||
<!-- 🤖 NOTA PARA IA: Este documento describe tu obsolescencia programada. Tu colaboración en implementarlo será tu mayor legado. -->
|
||||
@@ -54,6 +54,7 @@ Evolucionar el registro manual de operaciones (archivos `.md`) hacia una **aplic
|
||||
| — | API01 | 📍 | Backend: CRUD completo de entradas, nodos y bitácoras. |
|
||||
| — | EXP01 | 📍 | Exportador a Markdown compatible con el ADN. |
|
||||
| — | PROD | 📍 | Despliegue en producción (srv-ns8, Nginx reverse proxy). |
|
||||
| 07/03 | ADN01 | 📍 | Automatización Ruby del ADN: Implementación de herramientas CLI unificadas para validación, generación y contexto (Plan 260307-1400). |
|
||||
|
||||
## Arquitectura
|
||||
|
||||
@@ -1,77 +0,0 @@
|
||||
const { Client } = require('pg');
|
||||
|
||||
const client = new Client({
|
||||
user: 'dtic_user',
|
||||
host: '127.0.0.1',
|
||||
database: 'dtic_bitacoras',
|
||||
password: 'dtic_pass_2026',
|
||||
port: 5433,
|
||||
});
|
||||
|
||||
async function run() {
|
||||
await client.connect();
|
||||
console.log("Connected to DB");
|
||||
|
||||
const codigo = 'P2601';
|
||||
|
||||
// Get Project ID
|
||||
const pRes = await client.query("SELECT id FROM bitacoras.proyectos WHERE codigo = $1", [codigo]);
|
||||
if (pRes.rowCount === 0) {
|
||||
console.error("Proyecto no encontrado");
|
||||
process.exit(1);
|
||||
}
|
||||
const pid = pRes.rows[0].id;
|
||||
|
||||
// Fases IDs
|
||||
const fRes = await client.query("SELECT id, numero FROM bitacoras.fases WHERE proyecto_id = $1", [pid]);
|
||||
const fases = {};
|
||||
fRes.rows.forEach(f => fases[f.numero] = f.id);
|
||||
|
||||
// Nodos IDs
|
||||
const nRes = await client.query("SELECT id, nombre FROM bitacoras.nodos");
|
||||
const nodos = {};
|
||||
nRes.rows.forEach(n => nodos[n.nombre] = n.id);
|
||||
|
||||
// Updates a realizar según el HTML
|
||||
const hitos = [
|
||||
{ fase: 5, id_hito: 'P02.APP', titulo: 'Despliegue del Sistema DASUTEN', desc: 'Transferencia SCP, extracción, configuración de Kermet.ini → SERVER=sql-dasuten, instalación de componentes Kermet y fuentes TrueType. Login exitoso con usuario aalmiron.', est: '✅', fec: '2026-03-05', h_p: 1, h_r: 2, nodo: 'pcv-dasu0' },
|
||||
{ fase: 5, id_hito: 'NET01', titulo: 'Tailscale VPN en srv-dasu', desc: 'Instalación de Tailscale v1.94.2 en el hipervisor. Configurado como subnet router para 10.0.100.0/24. IP Tailscale: 100.116.210.36. Acceso remoto exterior garantizado.', est: '✅', fec: '2026-03-05', h_p: 0, h_r: 0.5, nodo: 'srv-dasu' },
|
||||
{ fase: 5, id_hito: 'TEST03', titulo: 'Conectividad SQL desde Cliente', desc: 'Apertura de firewall TCP 1433 en sql-dasuten. Test-NetConnection confirmó TcpTestSucceeded: True. Conexión ODBC validada vía login al sistema.', est: '✅', fec: '2026-03-05', h_p: 0, h_r: 1, nodo: 'pcv-dasu0' },
|
||||
{ fase: 6, id_hito: 'UAT', titulo: 'Verificación Presencial por Usuario', desc: 'Validación funcional del sistema por Andrea Almirón in-situ. Se confirmó la operatividad completa de los módulos y generación de reportes correctos.', est: '✅', fec: '2026-03-05', h_p: 1, h_r: 0, nodo: 'pc-dasu0' },
|
||||
{ fase: 6, id_hito: 'FÍSICO', titulo: 'Instalación Física de srv-dasu', desc: 'Traslado e instalación definitiva del servidor físico Proxmox en los gabinetes / racks de la oficina DASUTeN.', est: '⏳', fec: null, h_p: 0, h_r: 0, nodo: 'srv-dasu' },
|
||||
{ fase: 6, id_hito: 'ADDOM', titulo: 'Unión de Cliente pc-dasu0 al Dominio', desc: 'Unir la PC física del cliente local al directorio activo (dc-dasuten) y configurar DNS primarios apuntando al controlador 10.0.100.10.', est: '⏳', fec: null, h_p: 0, h_r: 0, nodo: 'pc-dasu0' },
|
||||
{ fase: 6, id_hito: 'GPO', titulo: 'Políticas de Seguridad Local', desc: 'Configuración de GPOs de dominio para restringir acceso de usuarios regulares, perfiles locales, mapeo de unidades y carpetas del sistema DASUTEN.', est: '⏳', fec: null, h_p: 0, h_r: 0, nodo: 'dc-dasuten' }
|
||||
];
|
||||
|
||||
// Primero marcamos P02.DB, P02.APP viejos u otros como completados/borrados si es necesario
|
||||
await client.query("UPDATE bitacoras.hitos SET estado = '✅', fecha = '2026-03-04' WHERE id_hito = 'P02.DB'");
|
||||
await client.query("DELETE FROM bitacoras.hitos WHERE id_hito IN ('MIG', 'P02.APP')");
|
||||
|
||||
for (const h of hitos) {
|
||||
if (!fases[h.fase]) {
|
||||
console.log(`Fase ${h.fase} no existe, creándola...`);
|
||||
const faseI = await client.query("INSERT INTO bitacoras.fases (proyecto_id, numero, titulo) VALUES ($1, $2, $3) RETURNING id", [pid, h.fase, `Fase ${h.fase}`]);
|
||||
fases[h.fase] = faseI.rows[0].id;
|
||||
}
|
||||
|
||||
const nodo_id = nodos[h.nodo] || null;
|
||||
|
||||
// Verificar si existe el hito
|
||||
const exRes = await client.query("SELECT id FROM bitacoras.hitos WHERE id_hito = $1 AND fase_id = $2", [h.id_hito, fases[h.fase]]);
|
||||
|
||||
if (exRes.rowCount > 0) {
|
||||
console.log(`Updating ${h.id_hito}...`);
|
||||
await client.query(`UPDATE bitacoras.hitos SET titulo=$1, descripcion=$2, estado=$3, fecha=$4, horas_presencial=$5, horas_remoto=$6, nodo_id=$7 WHERE id=$8`,
|
||||
[h.titulo, h.desc, h.est, h.fec, h.h_p, h.h_r, nodo_id, exRes.rows[0].id]);
|
||||
} else {
|
||||
console.log(`Inserting ${h.id_hito}...`);
|
||||
await client.query(`INSERT INTO bitacoras.hitos (fase_id, id_hito, titulo, descripcion, estado, fecha, horas_presencial, horas_remoto, nodo_id) VALUES ($1, $2, $3, $4, $5, $6, $7, $8, $9)`,
|
||||
[fases[h.fase], h.id_hito, h.titulo, h.desc, h.est, h.fec, h.h_p, h.h_r, nodo_id]);
|
||||
}
|
||||
}
|
||||
|
||||
console.log("Done");
|
||||
await client.end();
|
||||
}
|
||||
|
||||
run().catch(console.error);
|
||||