Docs(ADN): Actualización de manifiestos, guías y reglas del ADN (03_seguridad.md, 05_ia.md, triggers.yml, configuracion_bd.md) para reflejar la última reorganización de arquitectura de ADN Tools

This commit is contained in:
Ricardo Monla
2026-03-10 21:03:22 -03:00
parent bffffeaab9
commit 188d31f611
5 changed files with 18 additions and 24 deletions
+8 -8
View File
@@ -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` ## 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 ### 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. 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 | | Archivo | Ubicación | Git | Descripción |
| :--- | :--- | :---: | :--- | | :--- | :--- | :---: | :--- |
| `ns8-candados.rb` | `tools/ns8-candados/` | ✅ | Script Ruby unificado: cifrado, bóveda y autorización SSH. | | `ns8-candados.rb` | `tools/adn/seguridad/` | ✅ | Script Ruby unificado: cifrado, bóveda y autorización SSH. |
| `.boveda.json` | `tools/ns8-candados/` | ❌ | Payloads AES-256-GCM cifrados. | | `.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). | | `.master.key` | Raíz del proyecto | ❌ | Clave maestra de la bóveda (nunca en Git). |
### 2.3 Comandos Disponibles ### 2.3 Comandos Disponibles
```bash ```bash
ruby tools/ns8-candados/ns8-candados.rb <comando> [args] ruby tools/adn/seguridad/ns8-candados.rb <comando> [args]
``` ```
| Comando | Descripción | | Comando | Descripción |
@@ -51,7 +51,7 @@ ruby tools/ns8-candados/ns8-candados.rb <comando> [args]
```bash ```bash
# Obtener password para uso en comando remoto # 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" 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: El operador ejecuta el comando **interactivamente** para cargar su identidad SSH:
```bash ```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). 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): **Uso programático** (ej: desde ns8-bkps):
```bash ```bash
# 1. Cargar llave SSH # 1. Cargar llave SSH
ruby tools/ns8-candados/ns8-candados.rb abrir ruby tools/adn/seguridad/ns8-candados.rb abrir
# 2. Acceder a hipervisor # 2. Acceder a hipervisor
ssh root@10.0.10.201 "qm list" 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: Los siguientes artefactos **nunca** deben ser rastreados por Git:
- `.master.key` (clave maestra de la bóveda) - `.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) - `.agent_token` (token legacy, obsoleto)
- `*.key` (claves privadas) - `*.key` (claves privadas)
- `tmp/` (artefactos transitorios de la IA) - `tmp/` (artefactos transitorios de la IA)
+2 -2
View File
@@ -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. - **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.) ### 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. 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. 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. 4. **Validación**: La herramienta valida el contexto técnico (VMID, Host IP) consultando las fichas del ADN.
+3 -3
View File
@@ -21,14 +21,14 @@ El directorio `adn/` constituye el "núcleo genético" del servidor `srv-ns8`. N
## ⚙️ Configuración y Dependencias ## ⚙️ Configuración y Dependencias
- **Tecnologías Clave**: - **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. - **Formatos**: Markdown para documentación y YAML para reglas de automatización.
- **Entorno**: Dockerizado para servicios de red (Nginx, Homepage, Bitácoras). - **Entorno**: Dockerizado para servicios de red (Nginx, Homepage, Bitácoras).
- **Configuración Relevante**: - **Configuración Relevante**:
- `triggers.yml`: Define qué acciones disparar ante eventos específicos (ej. cierre de tareas, creación de nuevas bitácoras). - `triggers.yml`: Define qué acciones disparar ante eventos específicos (ej. cierre de tareas, creación de nuevas bitácoras).
- **Comandos Necesarios**: - **Comandos Necesarios**:
- `ruby tools/adn.rb triggers`: Procesa y sincroniza los cambios basados en las reglas del ADN. - `./tools/adn/run 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. - `ruby tools/adn/seguridad/ns8-candados.rb`: Gestiona la seguridad y secretos del servidor.
## 🧠 Contexto para IA ## 🧠 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. - **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.
+2 -8
View File
@@ -26,8 +26,8 @@ La persistencia de nuestras bitácoras vive dentro de un contenedor dedicado.
docker ps | grep postgres docker ps | grep postgres
``` ```
## 3. Configuración de Credenciales CLI (`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/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] > [!IMPORTANT]
> El entorno de `development` se define por defecto e interactúa en el puerto `5433` usando credenciales locales (`dtic_user` / `dtic_pass_2026`). > 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: Si recibes el siguiente dictamen, el sistema funciona correctamente:
`✅ Conexión a PostgreSQL establecida` `✅ 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
```
+3 -3
View File
@@ -190,13 +190,13 @@ configuracion:
# implementado en la Fase 2 del plan de mejoras del ADN. # implementado en la Fase 2 del plan de mejoras del ADN.
# #
# La implementación del motor de triggers se encuentra en: # 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: # 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: # 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 # ⚠️ ADVERTENCIA: No modificar manualmente las secciones marcadas como
# "GENERADO AUTOMÁTICAMENTE" una vez que el sistema esté en producción. # "GENERADO AUTOMÁTICAMENTE" una vez que el sistema esté en producción.