From 188d31f6117908771d04a7429fdc45298eb9d887 Mon Sep 17 00:00:00 2001 From: Ricardo Monla Date: Tue, 10 Mar 2026 21:03:22 -0300 Subject: [PATCH] =?UTF-8?q?Docs(ADN):=20Actualizaci=C3=B3n=20de=20manifies?= =?UTF-8?q?tos,=20gu=C3=ADas=20y=20reglas=20del=20ADN=20(03=5Fseguridad.md?= =?UTF-8?q?,=2005=5Fia.md,=20triggers.yml,=20configuracion=5Fbd.md)=20para?= =?UTF-8?q?=20reflejar=20la=20=C3=BAltima=20reorganizaci=C3=B3n=20de=20arq?= =?UTF-8?q?uitectura=20de=20ADN=20Tools?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- adn/03_seguridad.md | 16 ++++++++-------- adn/05_ia.md | 4 ++-- adn/README.md | 6 +++--- adn/conocimiento/configuracion_bd.md | 10 ++-------- adn/triggers.yml | 6 +++--- 5 files changed, 18 insertions(+), 24 deletions(-) diff --git a/adn/03_seguridad.md b/adn/03_seguridad.md index c75d4014..0cf15f3c 100644 --- a/adn/03_seguridad.md +++ b/adn/03_seguridad.md @@ -18,7 +18,7 @@ Esta hebra gobierna los protocolos de seguridad de red, gestión de secretos y a ## 2. Gestión de Secretos — `ns8-candados` -Herramienta unificada de seguridad: [`tools/ns8-candados/ns8-candados.rb`](../tools/ns8-candados/ns8-candados.rb) +Herramienta unificada de seguridad: [`tools/adn/seguridad/ns8-candados.rb`](../tools/adn/seguridad/ns8-candados.rb) ### 2.1 Prohibición de Texto Plano La Inteligencia Artificial operante tiene **expresamente prohibido** solicitar contraseñas administrativas, tokens o claves privadas al operador, así como también plasmarlas en logs, comandos literales temporales o en la bitácora. @@ -27,14 +27,14 @@ La Inteligencia Artificial operante tiene **expresamente prohibido** solicitar c | Archivo | Ubicación | Git | Descripción | | :--- | :--- | :---: | :--- | -| `ns8-candados.rb` | `tools/ns8-candados/` | ✅ | Script Ruby unificado: cifrado, bóveda y autorización SSH. | -| `.boveda.json` | `tools/ns8-candados/` | ❌ | Payloads AES-256-GCM cifrados. | +| `ns8-candados.rb` | `tools/adn/seguridad/` | ✅ | Script Ruby unificado: cifrado, bóveda y autorización SSH. | +| `.boveda.json` | `tools/adn/seguridad/` | ❌ | Payloads AES-256-GCM cifrados. | | `.master.key` | Raíz del proyecto | ❌ | Clave maestra de la bóveda (nunca en Git). | ### 2.3 Comandos Disponibles ```bash -ruby tools/ns8-candados/ns8-candados.rb [args] +ruby tools/adn/seguridad/ns8-candados.rb [args] ``` | Comando | Descripción | @@ -51,7 +51,7 @@ ruby tools/ns8-candados/ns8-candados.rb [args] ```bash # Obtener password para uso en comando remoto -PASS=$(ruby tools/ns8-candados/ns8-candados.rb get admindasu) +PASS=$(ruby tools/adn/seguridad/ns8-candados.rb get admindasu) sshpass -p "$PASS" ssh -J root@10.0.10.205 admindasu@10.0.100.12 "cmd" ``` @@ -74,7 +74,7 @@ La llave SSH del operador está protegida con passphrase. El agente SSH no retie El operador ejecuta el comando **interactivamente** para cargar su identidad SSH: ```bash -ruby tools/ns8-candados/ns8-candados.rb abrir +ruby tools/adn/seguridad/ns8-candados.rb abrir ``` Las identidades permanecen activas mientras dure la sesión del agente SSH (sin timeout artificial). @@ -93,7 +93,7 @@ Las identidades permanecen activas mientras dure la sesión del agente SSH (sin **Uso programático** (ej: desde ns8-bkps): ```bash # 1. Cargar llave SSH -ruby tools/ns8-candados/ns8-candados.rb abrir +ruby tools/adn/seguridad/ns8-candados.rb abrir # 2. Acceder a hipervisor ssh root@10.0.10.201 "qm list" @@ -106,7 +106,7 @@ ssh rmonla@10.0.10.4 "sudo shutdown -h now" Los siguientes artefactos **nunca** deben ser rastreados por Git: - `.master.key` (clave maestra de la bóveda) -- `tools/ns8-candados/.boveda.json` (payloads cifrados) +- `tools/adn/seguridad/.boveda.json` (payloads cifrados) - `.agent_token` (token legacy, obsoleto) - `*.key` (claves privadas) - `tmp/` (artefactos transitorios de la IA) diff --git a/adn/05_ia.md b/adn/05_ia.md index ab980d94..d94a4d64 100644 --- a/adn/05_ia.md +++ b/adn/05_ia.md @@ -50,9 +50,9 @@ Antes de iniciar escaneos, pruebas de red, o conexiones SSH a un nodo de un proy - **Objetivo:** Identificar si el nodo objetivo está en una subred aislada, detrás de un NAT, o si requiere un salto de red (ProxyJump) a través de un hypervisor anfitrión, previniendo errores ciegos y garantizando trazabilidad geográfica. ### 14. Protocolo Autónomo de Ejecución (P.A.E.) -Para tareas operativas complejas (ej. backups), la IA **DEBE** utilizar las herramientas unificadas (`tools/adn.rb`) que ya integran la lógica de seguridad y registro: +Para tareas operativas complejas (ej. backups), la IA **DEBE** utilizar las herramientas unificadas (`tools/adn/run`) que ya integran la lógica de seguridad y registro: -1. **Ejecución**: Usar `ruby tools/adn.rb backup [nodo]`. +1. **Ejecución**: Usar `./tools/adn/run backup [nodo]`. 2. **Seguridad**: La herramienta utilizará internamente `ns8-candados run` para no exponer secretos. 3. **Bitácora**: El registro en `docs/bitacoras/YYYY-MM-DD.md` es automático mediante la herramienta. 4. **Validación**: La herramienta valida el contexto técnico (VMID, Host IP) consultando las fichas del ADN. diff --git a/adn/README.md b/adn/README.md index 2f37f071..5a060cc2 100644 --- a/adn/README.md +++ b/adn/README.md @@ -21,14 +21,14 @@ El directorio `adn/` constituye el "núcleo genético" del servidor `srv-ns8`. N ## ⚙️ Configuración y Dependencias - **Tecnologías Clave**: - - **Motor de ejecución**: Ruby (utilizado para scripts de automatización como `tools/adn.rb`). + - **Motor de ejecución**: Ruby (utilizado para scripts de automatización como `tools/adn/run`). - **Formatos**: Markdown para documentación y YAML para reglas de automatización. - **Entorno**: Dockerizado para servicios de red (Nginx, Homepage, Bitácoras). - **Configuración Relevante**: - `triggers.yml`: Define qué acciones disparar ante eventos específicos (ej. cierre de tareas, creación de nuevas bitácoras). - **Comandos Necesarios**: - - `ruby tools/adn.rb triggers`: Procesa y sincroniza los cambios basados en las reglas del ADN. - - `ruby tools/ns8-candados/ns8-candados.rb`: Gestiona la seguridad y secretos del servidor. + - `./tools/adn/run triggers`: Procesa y sincroniza los cambios basados en las reglas del ADN. + - `ruby tools/adn/seguridad/ns8-candados.rb`: Gestiona la seguridad y secretos del servidor. ## 🧠 Contexto para IA - **Patrones y Convenciones**: Se debe mantener estrictamente la iconografía semántica (`04_iconografia.md`) y seguir las directivas de la Hebra 05. Ningún cambio debe romper la "Armonía Integral" definida en el índice. diff --git a/adn/conocimiento/configuracion_bd.md b/adn/conocimiento/configuracion_bd.md index ec805c5b..860384bc 100644 --- a/adn/conocimiento/configuracion_bd.md +++ b/adn/conocimiento/configuracion_bd.md @@ -26,8 +26,8 @@ La persistencia de nuestras bitácoras vive dentro de un contenedor dedicado. docker ps | grep postgres ``` -## 3. Configuración de Credenciales CLI (`tools/config/database.yml`) -Las herramientas ADN alojadas en `tools/adn/run` delegaron su configuración al archivo maestro que se sitúa en `tools/config/database.yml`. +## 3. Configuración de Credenciales CLI (`tools/adn/config/database.yml`) +Las herramientas ADN alojadas en `tools/adn/run` delegaron su configuración al archivo maestro que se sitúa en `tools/adn/config/database.yml`. > [!IMPORTANT] > El entorno de `development` se define por defecto e interactúa en el puerto `5433` usando credenciales locales (`dtic_user` / `dtic_pass_2026`). @@ -53,9 +53,3 @@ La mejor forma de testear que todo se ha inicializado y configurado correctament Si recibes el siguiente dictamen, el sistema funciona correctamente: `✅ Conexión a PostgreSQL establecida` -## 5. Pruebas Unitarias Integradas (Minitest) -Si estás desarrollando nuevas funcionalidades o has migrado el esquema, ejecuta el paquete `bitacora_db_test.rb` incluido para validar CRUD sin ensuciar la base de datos final. El sistema de tests encapsula todo el script dentro de comandos `BEGIN` / `ROLLBACK`. - -```bash -ruby tools/adn/spec/bitacora_db_test.rb -``` diff --git a/adn/triggers.yml b/adn/triggers.yml index 376f639c..1b5a1e43 100644 --- a/adn/triggers.yml +++ b/adn/triggers.yml @@ -190,13 +190,13 @@ configuracion: # 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) +# tools/adn/core/triggers.rb (Fase 2) # # Los triggers se ejecutarán mediante: -# ruby tools/adn.rb triggers [--test] [--force] +# ./tools/adn/run triggers [--test] [--force] # # Para probar triggers individualmente durante el desarrollo: -# ruby tools/adn.rb triggers --test --trigger="nombre_del_trigger" +# ./tools/adn/run 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.