Catálogo de Funcionalidades de API — o que o TLSStress.Art destrava via APIs REST¶
Leia no seu idioma: English · Português · Español
Status do escopo (pós-congelamento de escopo 2026-05-10) — Ver ARCHITECTURE.md para os 37 MÓDULOs canônicos + 7 Test Kinds + arquitetura de safety DOM/CPOS/PIE-PA. ADRs 0014, 0019-0025 cobrem adições pós-Freeze. Este documento cataloga toda funcionalidade concreta destravada ao falar com as APIs REST dos elementos de laboratório (Cisco FTD, Cisco Nexus 9000 NX-API DME, Cisco UCS CIMC Redfish, futuros Palo Alto + Fortinet). É o roadmap da integração de API: o que está entregue, o que está conectado, o que está planejado.
Para detalhes de implementação, veja DUT_API_INTEGRATION.pt-BR.md.
Legenda de status¶
| Símbolo | Significado |
|---|---|
| ✅ | Entregue — método do adapter existe e o dashboard / relatório consome |
| 🟡 | Método do adapter existe, mas a conexão com UI / dashboard está pendente |
| 🔵 | Desenhado — método do adapter agendado |
| ⚪ | Ideia capturada, ainda não planejada |
Três pilares de telemetria¶
| Pilar | Origem | O que entrega |
|---|---|---|
| Métricas | SNMP, node-exporter, kubelet | Estado numérico em séries temporais |
| Eventos | Syslog, eventos do K8s | Fluxo reativo de eventos |
| API (este catálogo) | APIs REST dos fornecedores | Configuração viva, políticas aplicadas, saúde de hardware, topologia, ações de escrita |
Os três combinados produzem o nível de completude forense que o Test Run Report exige.
A. Verificações de pré-voo (recusar execução se o estado estiver errado)¶
Antes de permitir que um Test Plan inicie, o engine consulta os endpoints de API relevantes para confirmar que o laboratório está em estado executável. Se qualquer verificação falhar, a execução é recusada com um erro específico e acionável.
| # | Funcionalidade | Origem | Status |
|---|---|---|---|
| A-1 | Confirmar que o status de deploy do NGFW é DEPLOYED (não pendente) |
FTD /operational/deploy |
🟡 |
| A-2 | Confirmar que a política de decrypt está habilitada e se aplica às interfaces de teste | FTD /policy/sslpolicies |
🟡 |
| A-3 | Confirmar que a fonte NTP do NGFW corresponde à expectativa do laboratório | FTD /devicesettings/default/ntp |
🟡 |
| A-4 | Confirmar que o Nexus tem LLDP e CDP habilitados | Nexus sys/lldp/inst + sys/cdp/inst |
🟡 |
| A-5 | Confirmar que o UCS CIMC não reporta falhas críticas de hardware | UCS LogServices/Faults/Entries |
🟡 |
| A-6 | Confirmar que sensores térmicos do UCS estão abaixo do limiar | UCS Chassis/<id>/Thermal |
🟡 |
| A-7 | Confirmar que os papéis active+standby do par HA estão corretos no FTD | FTD /devices/default/ha |
🟡 |
| A-8 | Confirmar que a smart license do FTD tem capacidade suficiente | FTD /license (planejado v6.x) |
🔵 |
| A-9 | Confirmar que o perfil de QoS do Nexus corresponde ao baseline esperado | Nexus sys/qos |
🔵 |
| A-10 | Confirmar a revisão de firmware do UCS contra a lista aprovada | UCS Systems/<id> Bios + Firmware |
🔵 |
O pré-voo roda em paralelo contra cada dispositivo registrado. Orçamento total de tempo: ≤30 s. O resumo de falhas é mostrado ao operador com um único botão "Sobrepor e executar mesmo assim (registra como não-forense)" — opt-in explícito do operador para casos incomuns.
B. Métricas em tempo real durante execuções¶
Assim que uma execução está ativa, o worker de polling aumenta sua cadência nos dispositivos ativos e transmite snapshots de métricas para o Prometheus via um exporter customizado — exibido como painéis Grafana ao lado das métricas de agente já coletadas.
| # | Funcionalidade | Origem | Status |
|---|---|---|---|
| B-1 | Utilização de CPU do NGFW durante o teste | FTD /operational/systemmonitoring/cpu |
🔵 |
| B-2 | Utilização de memória do NGFW | FTD /operational/systemmonitoring/memory |
🔵 |
| B-3 | Conexões ativas do NGFW + novas conexões/s | FTD /operational/systemmonitoring/connections |
🔵 |
| B-4 | Contagens atuais de hits da regra de decrypt do NGFW | FTD /operational/policy/sslpolicy/<id>/hitcount |
🔵 |
| B-5 | Contadores de interface do Nexus (bytes, erros, drops) a 1 Hz | Nexus sys/intf/<id>/counters |
🔵 |
| B-6 | RPM dos fans do UCS durante a execução | UCS Chassis/<id>/Thermal |
🔵 |
| B-7 | Temperatura de CPU do UCS durante a execução | UCS Chassis/<id>/Thermal |
🔵 |
| B-8 | Consumo de energia do UCS (watts) | UCS Chassis/<id>/Power |
🔵 |
| B-9 | Contagens de hits do IPS do NGFW | FTD /operational/policy/intrusionpolicy/<id>/hitcount |
🔵 |
| B-10 | Profundidade de fila + drops de QoS do Nexus | Nexus sys/qos/<class>/queue |
⚪ |
Essas métricas dão ao operador uma visão em tempo real de "o que o dispositivo vê" — sem nunca precisar logar no console de gerência do NGFW ou no CLI do Nexus.
C. Topologia e inventário¶
| # | Funcionalidade | Origem | Status |
|---|---|---|---|
| C-1 | Construção automática de diagrama de topologia do laboratório a partir de LLDP/CDP | Nexus sys/lldp/inst + sys/cdp/inst |
✅ adapter / 🟡 dashboard |
| C-2 | Anexo de inventário de hardware (S/N + firmware + PSU + DIMM) | Nexus sys/ch?rsp-subtree=full + UCS Systems/<id> |
✅ adapter / 🟡 dashboard / 🔵 relatório |
| C-3 | Verificação de vínculo de service profile (apenas UCS gerenciado por UCSM) | UCSM serviceProfile/<id> |
⚪ |
| C-4 | Estado de interface do NGFW + status do cabo | FTD /operational/interfaces |
✅ adapter / 🟡 dashboard |
| C-5 | Estado de link da NIC do UCS + negociação de velocidade | UCS Systems/<id>/EthernetInterfaces |
✅ adapter / 🟡 dashboard |
O Anexo A do Test Run Report — topologia auto-gerada — é produzido a partir de C-1.
D. Forense e conformidade¶
| # | Funcionalidade | Origem | Status |
|---|---|---|---|
| D-1 | Snapshot de configuração pré-execução de cada dispositivo + SHA-256 | Todos os adapters | ✅ adapter / 🔵 conectado ao engine de Test Plan |
| D-2 | Diff de config pós-execução contra snapshot pré-execução | Query interna dut_api_snapshots |
🔵 |
| D-3 | Atestado de conformidade contra baseline de política | FTD /policy/* + Nexus running-config |
🔵 |
| D-4 | SHA-256 por snapshot citado nos Anexos B + C + D do Relatório | Interno | ✅ campo existe / 🔵 conexão ao relatório |
| D-5 | Cadeia tamper-evident — SHA-256 do Snapshot ancorado no PDF | Assinatura Cosign futura | 🔵 |
E. Correlação entre origens¶
O valor único: combinar os três pilares para detectar coisas que nenhum pilar isolado consegue.
| # | Funcionalidade | Combinação de origens | Status |
|---|---|---|---|
| E-1 | Syslog do NGFW "decrypt error" + verificação simultânea via API do estado da política de decrypt. Diff = drift de config no meio da execução | Syslog (decrypt error) + API (estado da política de decrypt) | 🔵 |
| E-2 | Falha do CIMC do UCS + falhas de agente correlacionadas. Mesma janela de tempo = atribuição de causa raiz | API (falhas do UCS) + Postgres (falhas da tabela runs) |
🔵 |
| E-3 | Pico de contador de erros de interface do Nexus + pico de latência p99 correlacionado | API (contadores Nexus) + Prometheus (p99 do agente) | 🔵 |
| E-4 | TLS Decrypt Probe diz "off" + API confirma política de decrypt habilitada. Discrepância → NGFW quebrado | Métrica do probe + API (política de decrypt) | 🔵 |
| E-5 | Estado de deploy do NGFW muda no meio da execução = execução invalidada | Delta de polling de API | 🔵 |
F. Operações de escrita (confirmadas pelo operador)¶
Somente leitura está entregue; escritas exigem confirmação do operador, trilha de auditoria e rollback automático em caso de falha.
| # | Funcionalidade | Origem | Status |
|---|---|---|---|
| F-1 | Definir servidor NTP do NGFW via API | FTD PUT /devicesettings/default/ntp/<id> + POST /operational/deploy |
🔵 |
| F-2 | Alternar estado da política de decrypt para teste A/B | FTD PUT /policy/sslpolicies/<id> |
🔵 |
| F-3 | Aplicar política de QoS específica do test-bed no Nexus pré-execução, reverter pós-execução | Nexus DME PUT | 🔵 |
| F-4 | Resetar contadores de interface antes da execução | Ação Nexus DME | ⚪ |
| F-5 | Preparar configuração de rollback antes de qualquer escrita | Interno: snapshot antes, restore depois | 🔵 |
| F-6 | Mudança de perfil de energia BIOS do UCS para execuções "max-perf" | UCS Redfish Systems/<id>/Bios PATCH |
⚪ |
Cada escrita exige: 1. Re-autenticação de admin no momento da requisição 2. Confirmação explícita do operador na UI ("prestes a alterar a fonte NTP do NGFW — prosseguir?") 3. Entrada em audit log com snapshots before/after 4. Rollback automático se a leitura pós-escrita confirmar divergência da intenção
G. Energia, sustentabilidade, performance-per-watt¶
| # | Funcionalidade | Origem | Status |
|---|---|---|---|
| G-1 | Série temporal de consumo de energia do UCS durante execuções | UCS Chassis/<id>/Power |
🔵 |
| G-2 | Métrica "throughput-per-watt" por execução de plano | UCS Power + throughput do Prometheus | ⚪ |
| G-3 | Detecção de throttle térmico (avisar se temp de CPU exceder limiar) | UCS Thermal + alerting | 🔵 |
| G-4 | Estimativa de equivalente de carbono por execução (fator de grid fornecido pelo operador) | Computado a partir de G-1 | ⚪ |
H. Saúde de hardware para execuções SOAK¶
Planos de 24 horas ou mais demandam vigilância em nível de hardware. A integração de API fornece o que o node-exporter não consegue.
| # | Funcionalidade | Origem | Status |
|---|---|---|---|
| H-1 | Contagens de erros de DIMM do UCS (correctable + uncorrectable) | UCS Memory?$expand=. |
✅ adapter / 🔵 alerting |
| H-2 | Status de redundância de PSU durante execuções 24 h+ | UCS Chassis/<id>/Power |
✅ adapter / 🔵 alerting |
| H-3 | Baseline de taxa de erro de NIC + comparação durante execução | Contadores de interface UCS + Nexus | 🔵 |
| H-4 | Dados SMART de disco no armazenamento local UCS | UCS SimpleStorage/<id> |
⚪ |
| H-5 | Relatório de fim de SOAK: pico de RPM de fan, pico de temp, energia total, pico de watts | Agregação sobre snapshots coletados | 🔵 |
I. Auto-rollback¶
| # | Funcionalidade | Origem | Status |
|---|---|---|---|
| I-1 | Captura pré-execução da configuração completa dos 3 tipos de dispositivo | Adapters + nova tabela pre_run_config |
🔵 |
| I-2 | Restore automático pós-execução (operador opt-in via parâmetro do plano) | Métodos de escrita dos adapters | 🔵 (depende de F-*) |
| I-3 | Detecção de drift no meio da execução → auto-pause + alerta | Diff de polling contra pré-execução | 🔵 |
| I-4 | Verificação de rollback: snapshot pós-restore corresponde ao pré-execução | Comparação de SHA-256 | 🔵 |
J. Integração com test plan¶
O YAML do Test Plan pode expressar "o laboratório PRECISA estar neste estado para este plano ser válido":
| # | Funcionalidade | Campo YAML | Status |
|---|---|---|---|
| J-1 | Plano declara ngfw_state_required: decrypt-on e adapter verifica |
já existe | ✅ |
| J-2 | Plano declara ntp_source_must_match: lab-relay |
novo campo | 🔵 |
| J-3 | Plano declara expected_ngfw_models: [FPR1010, FPR1140] e recusa em mismatch |
novo campo | 🔵 |
| J-4 | Plano declara pre_run_capture_config: true para execuções de conformidade |
novo campo | 🔵 |
| J-5 | Conclusão de plano dispara snapshot final de config automaticamente | hook do engine | 🔵 |
| J-6 | Falha de plano dispara snapshot post-mortem automático | hook do engine | 🔵 |
K. Abstração multi-vendor¶
Mesmas queries de endpoint_label retornam dados independentemente do fornecedor — código de Dashboard e Report fica vendor-agnostic.
| # | Funcionalidade | Origem | Status |
|---|---|---|---|
| K-1 | Mesma query "show NGFW NTP config" funciona em FTD / Palo Alto / Fortinet | Abstração de adapter | ✅ FTD / 🔵 Palo Alto / 🔵 Fortinet |
| K-2 | Dashboard do operador mostra "todos os NGFWs" de forma agnóstica | View Postgres + Grafana | 🟡 |
| K-3 | Futuros adapters Palo Alto + Fortinet encaixam transparentemente | Arquitetura suporta | ✅ |
| K-4 | Matriz de funcionalidades do adapter exposta na UI admin ("FTD tem decrypt_policy, Palo Alto também, Fortinet não") | Introspecção de adapter | 🔵 |
L. Relatório¶
O Test Run Report (Fase 3 → 5) consome snapshots de API intensamente.
| # | Funcionalidade | Origem | Status |
|---|---|---|---|
| L-1 | Anexo A — topologia auto-gerada a partir de LLDP/CDP | Adapter Nexus | ✅ adapter / 🔵 render SVG |
| L-2 | Anexo B — inventário Nexus + running-config sanitizada | Adapter Nexus | ✅ adapter / 🔵 conexão ao relatório |
| L-3 | Anexo C — inventário NGFW + política de decrypt + estado IPS | Adapter FTD | ✅ adapter / 🔵 conexão ao relatório |
| L-4 | Anexo D — inventário de hardware UCS + leituras de sensor | Adapter UCS | ✅ adapter / 🔵 conexão ao relatório |
| L-5 | Cadeia de custódia SHA-256 por anexo (já no formato) | Todos os adapters | ✅ |
| L-6 | Apêndice "o que mudou durante a execução" — diff pré vs pós | Computação interna | 🔵 |
M. Exposição na UI — o operador nunca abre o console do NGFW¶
A meta "single pane of glass" do operador — tudo visível em Grafana / Dashboard / Report.
| # | Funcionalidade | Superfície | Status |
|---|---|---|---|
| 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 / testar dispositivos | Nova /admin/dut-api/ |
🔵 |
| M-4 | Dashboard — navegador de snapshots por dispositivo ("me mostre o que o FTD-1 disse sobre sua config NTP 30 min atrás") | Nova página | 🔵 |
| M-5 | Dashboard — botão de disparo manual de snapshot por dispositivo | Novo endpoint de API | 🔵 |
| M-6 | Dashboard — modal de confirmação de operação de escrita | Novo componente | 🔵 (depende de F-*) |
| M-7 | Test Run Report — contexto DUT completo auto-incorporado | Builder de relatório da Fase 3 | 🔵 |
N. Long-tail e ideias futuras¶
| # | Funcionalidade | Status |
|---|---|---|
| N-1 | Integração com Cisco Intersight (UCS gerenciado em nuvem) | ⚪ |
| N-2 | UCS Manager (UCSM) XML API para chassi B-series | ⚪ |
| N-3 | Integração com Cisco DNA Center para fabric de switch | ⚪ |
| N-4 | Suporte a NetConf/YANG como alternativa ao NX-API DME | ⚪ |
| N-5 | Telemetria de streaming gNMI a partir do Nexus (métricas sub-second) | ⚪ |
| N-6 | Modelos OpenConfig YANG — interface vendor-neutral | ⚪ |
| N-7 | Export de playbook Ansible — "TLSStress.Art configurou meu NGFW assim; aqui está o playbook para reproduzir" | ⚪ |
| N-8 | Provider Terraform — TLSStress.Art como tipo de recurso | ⚪ |
| N-9 | Webhook para ServiceNow / Jira / PagerDuty quando escrita de API falhar | ⚪ |
| N-10 | Replay de chamada de API — gravar + reproduzir uma sequência de chamadas de API de um engagement para outro | ⚪ |
Prioridade de implementação — próximos 3 PRs recomendados¶
Baseado em valor para o operador vs custo de implementação:
- PR-B (maior ROI) — Worker de polling + UI admin para registro de dispositivo. Sem isso, os adapters não rodam em agenda. ~1 semana de trabalho.
- PR-C — Verificações de pré-voo (A-1 a A-7) integradas ao engine de Test Plan. Recusa execuções em estados inválidos. ~3 dias de trabalho.
- PR-D — Conexão dos Anexos B / C / D do Test Run Report (L-2, L-3, L-4). Fecha o loop de "dados derivados de API para PDF". ~1 semana de trabalho.
As categorias restantes (B real-time, F escritas, I auto-rollback) seguem assim que a fundação estiver sólida.
Comparação de capacidades vs alternativas comerciais¶
| Grupo de funcionalidades | Spirent CyberFlood | Ixia BreakingPoint | TLSStress.Art (este catálogo) |
|---|---|---|---|
| Verificações de pré-voo via API | parcial (DUTs vendor-locked) | parcial | completa (arquitetura aberta multi-vendor) |
| Visibilidade em tempo real da config do NGFW | nenhuma | nenhuma | completa |
| Descoberta automática de topologia | manual | manual | LLDP/CDP automático |
| Saúde de hardware durante SOAK | nenhuma | nenhuma | UCS Redfish completo |
| Cadeia de custódia forense em config | nenhuma | nenhuma | SHA-256 por snapshot |
| Abstração multi-vendor | vendor-locked | vendor-locked | open adapter pattern |
| Integração com relatório | formato proprietário fechado | formato proprietário fechado | JSON versionado + PDF assinado |
Relacionados¶
DUT_API_INTEGRATION.pt-BR.md— fundação de implementação para este catálogoSYSLOG_OPERATIONS.pt-BR.md— segundo pilarMONITORING_TEST_VALIDITY.pt-BR.md— primeiro pilarTIME_SYNC.pt-BR.md— sem sync, todas as alegações forenses colapsamUSAGE_POLICY.pt-BR.md— restrições de licença se aplicam aos dados de API coletados aqui
Referências¶
- 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