Catálogo de Funcionalidades de API — qué desbloquea TLSStress.Art vía APIs REST¶
Estado del alcance (post-congelación de alcance 2026-05-10) — Ver ARCHITECTURE.md para los 37 MÓDULOs canónicos + 7 Test Kinds + arquitectura de safety DOM/CPOS/PIE-PA. ADRs 0014, 0019-0025 cubren adiciones post-Freeze.
Este documento cataloga toda funcionalidad concreta desbloqueada al hablar con las APIs REST de los elementos del laboratorio (Cisco FTD, Cisco Nexus 9000 NX-API DME, Cisco UCS CIMC Redfish, futuros Palo Alto + Fortinet). Es la hoja de ruta para la integración de API: lo que está entregado, lo que está conectado, lo que está planificado.
Para detalles de implementación véase DUT_API_INTEGRATION.es.md.
Leyenda de estado¶
| Símbolo | Significado |
|---|---|
| ✅ | Entregado — el método del adapter existe y el dashboard / informe lo consume |
| 🟡 | Método del adapter existe, pero la conexión con UI / dashboard está pendiente |
| 🔵 | Diseñado — método del adapter agendado |
| ⚪ | Idea capturada, aún no planificada |
Tres pilares de telemetría¶
| Pilar | Origen | Lo que entrega |
|---|---|---|
| Métricas | SNMP, node-exporter, kubelet | Estado numérico en series temporales |
| Eventos | Syslog, eventos de K8s | Flujo reactivo de eventos |
| API (este catálogo) | APIs REST de los proveedores | Configuración viva, políticas aplicadas, salud de hardware, topología, acciones de escritura |
Los tres combinados producen el nivel de completitud forense que el Test Run Report exige.
A. Verificaciones de pre-vuelo (rechazar ejecución si el estado es incorrecto)¶
Antes de permitir que un Test Plan inicie, el motor consulta los endpoints de API relevantes para confirmar que el laboratorio está en estado ejecutable. Si cualquier verificación falla, la ejecución se rechaza con un error específico y accionable.
| # | Funcionalidad | Origen | Estado |
|---|---|---|---|
| A-1 | Confirmar que el estado de deploy del NGFW es DEPLOYED (no pendiente) |
FTD /operational/deploy |
🟡 |
| A-2 | Confirmar que la política de decrypt está habilitada y se aplica a las interfaces de prueba | FTD /policy/sslpolicies |
🟡 |
| A-3 | Confirmar que la fuente NTP del NGFW corresponde a la expectativa del laboratorio | FTD /devicesettings/default/ntp |
🟡 |
| A-4 | Confirmar que el Nexus tiene LLDP y CDP habilitados | Nexus sys/lldp/inst + sys/cdp/inst |
🟡 |
| A-5 | Confirmar que el UCS CIMC no reporta fallas críticas de hardware | UCS LogServices/Faults/Entries |
🟡 |
| A-6 | Confirmar que sensores térmicos del UCS están bajo el umbral | UCS Chassis/<id>/Thermal |
🟡 |
| A-7 | Confirmar que los roles active+standby del par HA son correctos en FTD | FTD /devices/default/ha |
🟡 |
| A-8 | Confirmar que la smart license del FTD tiene capacidad suficiente | FTD /license (planeado v6.x) |
🔵 |
| A-9 | Confirmar que el perfil de QoS del Nexus corresponde al baseline esperado | Nexus sys/qos |
🔵 |
| A-10 | Confirmar la revisión de firmware del UCS contra la lista aprobada | UCS Systems/<id> Bios + Firmware |
🔵 |
El pre-vuelo se ejecuta en paralelo contra cada dispositivo registrado. Presupuesto total de tiempo: ≤30 s. El resumen de fallas se muestra al operador con un solo botón "Sobrescribir y ejecutar de todas formas (registra como no-forense)" — opt-in explícito del operador para casos inusuales.
B. Métricas en tiempo real durante ejecuciones¶
Una vez que una ejecución está activa, el worker de polling aumenta su cadencia en los dispositivos activos y transmite snapshots de métricas a Prometheus vía un exporter personalizado — exhibido como paneles Grafana junto a las métricas del agente ya recolectadas.
| # | Funcionalidad | Origen | Estado |
|---|---|---|---|
| B-1 | Utilización de CPU del NGFW durante la prueba | FTD /operational/systemmonitoring/cpu |
🔵 |
| B-2 | Utilización de memoria del NGFW | FTD /operational/systemmonitoring/memory |
🔵 |
| B-3 | Conexiones activas del NGFW + nuevas conexiones/s | FTD /operational/systemmonitoring/connections |
🔵 |
| B-4 | Conteos actuales de hits de la regla de decrypt del NGFW | FTD /operational/policy/sslpolicy/<id>/hitcount |
🔵 |
| B-5 | Contadores de interfaz del Nexus (bytes, errores, drops) a 1 Hz | Nexus sys/intf/<id>/counters |
🔵 |
| B-6 | RPM de los fans del UCS durante la ejecución | UCS Chassis/<id>/Thermal |
🔵 |
| B-7 | Temperatura de CPU del UCS durante la ejecución | UCS Chassis/<id>/Thermal |
🔵 |
| B-8 | Consumo de energía del UCS (watts) | UCS Chassis/<id>/Power |
🔵 |
| B-9 | Conteos de hits del IPS del NGFW | FTD /operational/policy/intrusionpolicy/<id>/hitcount |
🔵 |
| B-10 | Profundidad de cola + drops de QoS del Nexus | Nexus sys/qos/<class>/queue |
⚪ |
Estas métricas dan al operador una visión en tiempo real de "lo que el dispositivo ve" — sin nunca necesitar iniciar sesión en la consola de gestión del NGFW o en el CLI del Nexus.
C. Topología e inventario¶
| # | Funcionalidad | Origen | Estado |
|---|---|---|---|
| C-1 | Construcción automática de diagrama de topología del laboratorio a partir de LLDP/CDP | Nexus sys/lldp/inst + sys/cdp/inst |
✅ adapter / 🟡 dashboard |
| C-2 | Anexo de inventario de hardware (S/N + firmware + PSU + DIMM) | Nexus sys/ch?rsp-subtree=full + UCS Systems/<id> |
✅ adapter / 🟡 dashboard / 🔵 informe |
| C-3 | Verificación de vínculo de service profile (solo UCS gestionado por UCSM) | UCSM serviceProfile/<id> |
⚪ |
| C-4 | Estado de interfaz del NGFW + estado del cable | FTD /operational/interfaces |
✅ adapter / 🟡 dashboard |
| C-5 | Estado de link de NIC del UCS + negociación de velocidad | UCS Systems/<id>/EthernetInterfaces |
✅ adapter / 🟡 dashboard |
El Anexo A del Test Run Report — topología auto-generada — se produce a partir de C-1.
D. Forense y conformidad¶
| # | Funcionalidad | Origen | Estado |
|---|---|---|---|
| D-1 | Snapshot de configuración pre-ejecución de cada dispositivo + SHA-256 | Todos los adapters | ✅ adapter / 🔵 conectado al motor de Test Plan |
| D-2 | Diff de config post-ejecución contra snapshot pre-ejecución | Query interna dut_api_snapshots |
🔵 |
| D-3 | Atestación de conformidad contra baseline de política | FTD /policy/* + Nexus running-config |
🔵 |
| D-4 | SHA-256 por snapshot citado en los Anexos B + C + D del Informe | Interno | ✅ campo existe / 🔵 conexión al informe |
| D-5 | Cadena tamper-evident — SHA-256 del Snapshot anclado en PDF | Firma Cosign futura | 🔵 |
E. Correlación entre orígenes¶
El valor único: combinar los tres pilares para detectar cosas que ningún pilar aislado puede.
| # | Funcionalidad | Combinación de orígenes | Estado |
|---|---|---|---|
| E-1 | Syslog del NGFW "decrypt error" + verificación simultánea vía API del estado de la política de decrypt. Diff = drift de config a mitad de ejecución | Syslog (decrypt error) + API (estado de política de decrypt) | 🔵 |
| E-2 | Falla del CIMC del UCS + fallas de agente correlacionadas. Misma ventana de tiempo = atribución de causa raíz | API (fallas del UCS) + Postgres (fallas de tabla runs) |
🔵 |
| E-3 | Pico de contador de errores de interfaz del Nexus + pico de latencia p99 correlacionado | API (contadores Nexus) + Prometheus (p99 del agente) | 🔵 |
| E-4 | TLS Decrypt Probe dice "off" + API confirma política de decrypt habilitada. Discrepancia → NGFW roto | Métrica del probe + API (política de decrypt) | 🔵 |
| E-5 | Estado de deploy del NGFW cambia a mitad de ejecución = ejecución invalidada | Delta de polling de API | 🔵 |
F. Operaciones de escritura (confirmadas por el operador)¶
Solo lectura está entregado; las escrituras requieren confirmación del operador, traza de auditoría y rollback automático en caso de falla.
| # | Funcionalidad | Origen | Estado |
|---|---|---|---|
| F-1 | Establecer servidor NTP del NGFW vía API | FTD PUT /devicesettings/default/ntp/<id> + POST /operational/deploy |
🔵 |
| F-2 | Alternar estado de la política de decrypt para prueba A/B | FTD PUT /policy/sslpolicies/<id> |
🔵 |
| F-3 | Aplicar política de QoS específica del test-bed en Nexus pre-ejecución, revertir post-ejecución | Nexus DME PUT | 🔵 |
| F-4 | Resetear contadores de interfaz antes de la ejecución | Acción Nexus DME | ⚪ |
| F-5 | Preparar configuración de rollback antes de cualquier escritura | Interno: snapshot antes, restore después | 🔵 |
| F-6 | Cambio de perfil de energía BIOS del UCS para ejecuciones "max-perf" | UCS Redfish Systems/<id>/Bios PATCH |
⚪ |
Cada escritura requiere: 1. Re-autenticación de admin en el momento del request 2. Confirmación explícita del operador en la UI ("a punto de cambiar la fuente NTP del NGFW — ¿proceder?") 3. Entrada de audit log con snapshots before/after 4. Rollback automático si la lectura post-escritura confirma divergencia de la intención
G. Energía, sostenibilidad, performance-per-watt¶
| # | Funcionalidad | Origen | Estado |
|---|---|---|---|
| G-1 | Serie temporal de consumo de energía del UCS durante ejecuciones | UCS Chassis/<id>/Power |
🔵 |
| G-2 | Métrica "throughput-per-watt" por ejecución de plan | UCS Power + throughput de Prometheus | ⚪ |
| G-3 | Detección de throttle térmico (advertir si temp de CPU excede umbral) | UCS Thermal + alerting | 🔵 |
| G-4 | Estimación de equivalente de carbono por ejecución (factor de grid suministrado por el operador) | Computado a partir de G-1 | ⚪ |
H. Salud de hardware para ejecuciones SOAK¶
Planes de 24 horas o más demandan vigilancia a nivel de hardware. La integración de API provee lo que el node-exporter no puede.
| # | Funcionalidad | Origen | Estado |
|---|---|---|---|
| H-1 | Conteos de errores de DIMM del UCS (correctable + uncorrectable) | UCS Memory?$expand=. |
✅ adapter / 🔵 alerting |
| H-2 | Estado de redundancia de PSU durante ejecuciones 24 h+ | UCS Chassis/<id>/Power |
✅ adapter / 🔵 alerting |
| H-3 | Baseline de tasa de error de NIC + comparación durante ejecución | Contadores de interfaz UCS + Nexus | 🔵 |
| H-4 | Datos SMART de disco en almacenamiento local UCS | UCS SimpleStorage/<id> |
⚪ |
| H-5 | Informe de fin de SOAK: pico de RPM de fan, pico de temp, energía total, pico de watts | Agregación sobre snapshots recolectados | 🔵 |
I. Auto-rollback¶
| # | Funcionalidad | Origen | Estado |
|---|---|---|---|
| I-1 | Captura pre-ejecución de la configuración completa de los 3 tipos de dispositivo | Adapters + nueva tabla pre_run_config |
🔵 |
| I-2 | Restore automático post-ejecución (operador opt-in vía parámetro del plan) | Métodos de escritura de los adapters | 🔵 (depende de F-*) |
| I-3 | Detección de drift a mitad de ejecución → auto-pause + alerta | Diff de polling contra pre-ejecución | 🔵 |
| I-4 | Verificación de rollback: snapshot post-restore corresponde al pre-ejecución | Comparación de SHA-256 | 🔵 |
J. Integración con test plan¶
El YAML del Test Plan puede expresar "el laboratorio DEBE estar en este estado para que este plan sea válido":
| # | Funcionalidad | Campo YAML | Estado |
|---|---|---|---|
| J-1 | El plan declara ngfw_state_required: decrypt-on y el adapter verifica |
ya existe | ✅ |
| J-2 | El plan declara ntp_source_must_match: lab-relay |
nuevo campo | 🔵 |
| J-3 | El plan declara expected_ngfw_models: [FPR1010, FPR1140] y rechaza en mismatch |
nuevo campo | 🔵 |
| J-4 | El plan declara pre_run_capture_config: true para ejecuciones de conformidad |
nuevo campo | 🔵 |
| J-5 | La conclusión del plan dispara snapshot final de config automáticamente | hook del motor | 🔵 |
| J-6 | La falla del plan dispara snapshot post-mortem automático | hook del motor | 🔵 |
K. Abstracción multi-vendor¶
Las mismas queries de endpoint_label retornan datos independientemente del proveedor — el código de Dashboard y Report queda vendor-agnostic.
| # | Funcionalidad | Origen | Estado |
|---|---|---|---|
| K-1 | La misma query "show NGFW NTP config" funciona en FTD / Palo Alto / Fortinet | Abstracción de adapter | ✅ FTD / 🔵 Palo Alto / 🔵 Fortinet |
| K-2 | El dashboard del operador muestra "todos los NGFWs" de forma agnóstica | Vista Postgres + Grafana | 🟡 |
| K-3 | Futuros adapters Palo Alto + Fortinet encajan transparentemente | La arquitectura soporta | ✅ |
| K-4 | Matriz de funcionalidades del adapter expuesta en la UI admin ("FTD tiene decrypt_policy, Palo Alto también, Fortinet no") | Introspección de adapter | 🔵 |
L. Informe¶
El Test Run Report (Fase 3 → 5) consume snapshots de API intensamente.
| # | Funcionalidad | Origen | Estado |
|---|---|---|---|
| L-1 | Anexo A — topología auto-generada a partir de LLDP/CDP | Adapter Nexus | ✅ adapter / 🔵 render SVG |
| L-2 | Anexo B — inventario Nexus + running-config sanitizada | Adapter Nexus | ✅ adapter / 🔵 conexión al informe |
| L-3 | Anexo C — inventario NGFW + política de decrypt + estado IPS | Adapter FTD | ✅ adapter / 🔵 conexión al informe |
| L-4 | Anexo D — inventario de hardware UCS + lecturas de sensor | Adapter UCS | ✅ adapter / 🔵 conexión al informe |
| L-5 | Cadena de custodia SHA-256 por anexo (ya en formato) | Todos los adapters | ✅ |
| L-6 | Apéndice "qué cambió durante la ejecución" — diff pre vs post | Computación interna | 🔵 |
M. Exposición en la UI — el operador nunca abre la consola del NGFW¶
La meta "single pane of glass" del operador — todo visible en Grafana / Dashboard / Report.
| # | Funcionalidad | Superficie | Estado |
|---|---|---|---|
| M-1 | Grafana — dashboard DUT API Status | dashboards/dut-api-status-cm.yaml | ✅ |
| M-2 | Grafana — dashboard DUT Live State (NGFW + Switch + UCS) | dashboards/dut-live-state-cm.yaml | ✅ |
| M-3 | Dashboard — página admin para registrar / probar dispositivos | Nueva /admin/dut-api/ |
🔵 |
| M-4 | Dashboard — navegador de snapshots por dispositivo ("muéstrame lo que FTD-1 dijo sobre su config NTP hace 30 min") | Nueva página | 🔵 |
| M-5 | Dashboard — botón de disparo manual de snapshot por dispositivo | Nuevo endpoint de API | 🔵 |
| M-6 | Dashboard — modal de confirmación de operación de escritura | Nuevo componente | 🔵 (depende de F-*) |
| M-7 | Test Run Report — contexto DUT completo auto-incrustado | Builder de informe de la Fase 3 | 🔵 |
N. Long-tail e ideas futuras¶
| # | Funcionalidad | Estado |
|---|---|---|
| N-1 | Integración con Cisco Intersight (UCS gestionado en la nube) | ⚪ |
| N-2 | UCS Manager (UCSM) XML API para chasis B-series | ⚪ |
| N-3 | Integración con Cisco DNA Center para fabric de switch | ⚪ |
| N-4 | Soporte a NetConf/YANG como alternativa a NX-API DME | ⚪ |
| N-5 | Telemetría de streaming gNMI desde Nexus (métricas sub-second) | ⚪ |
| N-6 | Modelos OpenConfig YANG — interfaz vendor-neutral | ⚪ |
| N-7 | Export de playbook Ansible — "TLSStress.Art configuró mi NGFW así; aquí está el playbook para reproducir" | ⚪ |
| N-8 | Provider Terraform — TLSStress.Art como tipo de recurso | ⚪ |
| N-9 | Webhook a ServiceNow / Jira / PagerDuty cuando una escritura de API falle | ⚪ |
| N-10 | Replay de llamada de API — grabar + reproducir una secuencia de llamadas de API de un engagement a otro | ⚪ |
Prioridad de implementación — próximos 3 PRs recomendados¶
Basado en valor para el operador vs costo de implementación:
- PR-B (mayor ROI) — Worker de polling + UI admin para registro de dispositivo. Sin esto, los adapters no corren en agenda. ~1 semana de trabajo.
- PR-C — Verificaciones de pre-vuelo (A-1 a A-7) integradas al motor de Test Plan. Rechaza ejecuciones en estados inválidos. ~3 días de trabajo.
- PR-D — Conexión de los Anexos B / C / D del Test Run Report (L-2, L-3, L-4). Cierra el loop de "datos derivados de API hacia PDF". ~1 semana de trabajo.
Las categorías restantes (B real-time, F escrituras, I auto-rollback) siguen una vez que la fundación esté sólida.
Comparación de capacidades vs alternativas comerciales¶
| Grupo de funcionalidades | Spirent CyberFlood | Ixia BreakingPoint | TLSStress.Art (este catálogo) |
|---|---|---|---|
| Verificaciones de pre-vuelo vía API | parcial (DUTs vendor-locked) | parcial | completa (arquitectura abierta multi-vendor) |
| Visibilidad en tiempo real de la config del NGFW | ninguna | ninguna | completa |
| Descubrimiento automático de topología | manual | manual | LLDP/CDP automático |
| Salud de hardware durante SOAK | ninguna | ninguna | UCS Redfish completo |
| Cadena de custodia forense en config | ninguna | ninguna | SHA-256 por snapshot |
| Abstracción multi-vendor | vendor-locked | vendor-locked | open adapter pattern |
| Integración con informe | formato propietario cerrado | formato propietario cerrado | JSON versionado + PDF firmado |
Relacionados¶
DUT_API_INTEGRATION.es.md— fundación de implementación para este catálogoSYSLOG_OPERATIONS.es.md— segundo pilarMONITORING_TEST_VALIDITY.es.md— primer pilarTIME_SYNC.es.md— sin sync, todas las afirmaciones forenses colapsanUSAGE_POLICY.es.md— restricciones de licencia se aplican a los datos de API recolectados aquí
Referencias¶
- Cisco FTD REST API — https://developer.cisco.com/docs/ftd-api-reference/latest/
- Cisco Nexus 9000 NX-API SDK — https://developer.cisco.com/docs/nx-os-n3k-n9k-api-ref/
- Cisco UCS programmability — https://developer.cisco.com/docs/ucs-dev-center/cicso-ucs-programmabilty/
- DMTF Redfish standard — https://www.dmtf.org/standards/redfish