Passo 3 v2.0.0: mapeamento de perfis de carga confirmado contra export real

- docs/13-v2-perfis-carga.html: mapeamento completo coluna a coluna pra
  DL_TECH_CMDB_V2 (12 campos) e DL_TECH_VULNERABILIDADE_V3 (23 campos),
  conferido campo a campo contra um export real (Artefatos/ da
  V1_Cliente, só linhas AM...) em vez de suposição.
- Correções encontradas na conferência: definition.patch_published e
  definition.vulnerability_published têm prefixo 'definition.' no
  export real (não estava assim documentado antes); flags booleanos
  confirmados como texto 'true'/'false' (Tenable) e
  'Verdadeiro(a)'/'Falso(a)' (ServiceNow, mesma convenção já usada em
  SOX/COFRE/TENABLE/SIEM no capítulo 10).
- RAW_JSON deliberadamente fora do escopo deste passo — Data Load só
  carrega colunas mapeadas, não a linha completa; população real de
  RAW_JSON depende da tabela de staging (próximo item do TASKS.md).
- Nav (13 páginas) e pillnav do capítulo 12 atualizados.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
2026-09-09 17:30:42 -03:00
parent 530c07cd94
commit df0d775540
14 changed files with 168 additions and 2 deletions

View File

@@ -43,7 +43,10 @@ teste — a menos que você peça explicitamente o contrário.
(bloco grande) foi pulado na primeira passada — o checkpoint de compilação deu `VALID` (bloco grande) foi pulado na primeira passada — o checkpoint de compilação deu `VALID`
porque a view *antiga* (46 colunas) já era válida antes. Resolvido rodando o bloco porque a view *antiga* (46 colunas) já era válida antes. Resolvido rodando o bloco
explicitamente; segunda checagem confirmou as 81 colunas. explicitamente; segunda checagem confirmou as 81 colunas.
- [ ] Novos perfis de carga (`DL_TECH_VULNERABILIDADE_V3`, `DL_TECH_CMDB_V2`) - [ ] **Mapeamento pronto e confirmado contra export real** (ver
[docs/13-v2-perfis-carga.html](docs/13-v2-perfis-carga.html)) — falta só criar os dois
perfis de fato no App Builder (não é scriptável, precisa ser feito na UI). `RAW_JSON`
deliberadamente fora do escopo deste item — depende do item de staging abaixo.
- [ ] Pipeline de staging: bucket → `TB_26AI_TECH_V2_STG` via `DBMS_CLOUD.COPY_DATA` (tabela nova, - [ ] Pipeline de staging: bucket → `TB_26AI_TECH_V2_STG` via `DBMS_CLOUD.COPY_DATA` (tabela nova,
não mexe nas existentes) não mexe nas existentes)
- [ ] `MERGE` com histórico (`LOAD_BATCH_ID`, `TB_26AI_TECH_V2_HIST` — tabela nova), honrando o - [ ] `MERGE` com histórico (`LOAD_BATCH_ID`, `TB_26AI_TECH_V2_HIST` — tabela nova), honrando o

View File

@@ -29,6 +29,7 @@
<li><a class="" href="10-carga-cmdb-vulnerabilidades.html"><span class="step-no">10</span>Carga: CMDB & Vulnerabilidades</a></li> <li><a class="" href="10-carga-cmdb-vulnerabilidades.html"><span class="step-no">10</span>Carga: CMDB & Vulnerabilidades</a></li>
<li><a class="" href="11-v2-evolucao-schema.html"><span class="step-no">11</span>v2.0.0 — Evolução de schema</a></li> <li><a class="" href="11-v2-evolucao-schema.html"><span class="step-no">11</span>v2.0.0 — Evolução de schema</a></li>
<li><a class="" href="12-v2-view-procedure.html"><span class="step-no">12</span>v2.0.0 — View & Procedure</a></li> <li><a class="" href="12-v2-view-procedure.html"><span class="step-no">12</span>v2.0.0 — View & Procedure</a></li>
<li><a class="" href="13-v2-perfis-carga.html"><span class="step-no">13</span>v2.0.0 — Perfis de carga</a></li>
</ul> </ul>
<div class="sidebar-footer"> <div class="sidebar-footer">
Vulnerability &amp; Audit AI Insights<br> Vulnerability &amp; Audit AI Insights<br>

View File

@@ -29,6 +29,7 @@
<li><a class="" href="10-carga-cmdb-vulnerabilidades.html"><span class="step-no">10</span>Carga: CMDB & Vulnerabilidades</a></li> <li><a class="" href="10-carga-cmdb-vulnerabilidades.html"><span class="step-no">10</span>Carga: CMDB & Vulnerabilidades</a></li>
<li><a class="" href="11-v2-evolucao-schema.html"><span class="step-no">11</span>v2.0.0 — Evolução de schema</a></li> <li><a class="" href="11-v2-evolucao-schema.html"><span class="step-no">11</span>v2.0.0 — Evolução de schema</a></li>
<li><a class="" href="12-v2-view-procedure.html"><span class="step-no">12</span>v2.0.0 — View & Procedure</a></li> <li><a class="" href="12-v2-view-procedure.html"><span class="step-no">12</span>v2.0.0 — View & Procedure</a></li>
<li><a class="" href="13-v2-perfis-carga.html"><span class="step-no">13</span>v2.0.0 — Perfis de carga</a></li>
</ul> </ul>
<div class="sidebar-footer"> <div class="sidebar-footer">
Vulnerability &amp; Audit AI Insights<br> Vulnerability &amp; Audit AI Insights<br>

View File

@@ -29,6 +29,7 @@
<li><a class="" href="10-carga-cmdb-vulnerabilidades.html"><span class="step-no">10</span>Carga: CMDB & Vulnerabilidades</a></li> <li><a class="" href="10-carga-cmdb-vulnerabilidades.html"><span class="step-no">10</span>Carga: CMDB & Vulnerabilidades</a></li>
<li><a class="" href="11-v2-evolucao-schema.html"><span class="step-no">11</span>v2.0.0 — Evolução de schema</a></li> <li><a class="" href="11-v2-evolucao-schema.html"><span class="step-no">11</span>v2.0.0 — Evolução de schema</a></li>
<li><a class="" href="12-v2-view-procedure.html"><span class="step-no">12</span>v2.0.0 — View & Procedure</a></li> <li><a class="" href="12-v2-view-procedure.html"><span class="step-no">12</span>v2.0.0 — View & Procedure</a></li>
<li><a class="" href="13-v2-perfis-carga.html"><span class="step-no">13</span>v2.0.0 — Perfis de carga</a></li>
</ul> </ul>
<div class="sidebar-footer"> <div class="sidebar-footer">
Vulnerability &amp; Audit AI Insights<br> Vulnerability &amp; Audit AI Insights<br>

View File

@@ -29,6 +29,7 @@
<li><a class="" href="10-carga-cmdb-vulnerabilidades.html"><span class="step-no">10</span>Carga: CMDB & Vulnerabilidades</a></li> <li><a class="" href="10-carga-cmdb-vulnerabilidades.html"><span class="step-no">10</span>Carga: CMDB & Vulnerabilidades</a></li>
<li><a class="" href="11-v2-evolucao-schema.html"><span class="step-no">11</span>v2.0.0 — Evolução de schema</a></li> <li><a class="" href="11-v2-evolucao-schema.html"><span class="step-no">11</span>v2.0.0 — Evolução de schema</a></li>
<li><a class="" href="12-v2-view-procedure.html"><span class="step-no">12</span>v2.0.0 — View & Procedure</a></li> <li><a class="" href="12-v2-view-procedure.html"><span class="step-no">12</span>v2.0.0 — View & Procedure</a></li>
<li><a class="" href="13-v2-perfis-carga.html"><span class="step-no">13</span>v2.0.0 — Perfis de carga</a></li>
</ul> </ul>
<div class="sidebar-footer"> <div class="sidebar-footer">
Vulnerability &amp; Audit AI Insights<br> Vulnerability &amp; Audit AI Insights<br>

View File

@@ -29,6 +29,7 @@
<li><a class="" href="10-carga-cmdb-vulnerabilidades.html"><span class="step-no">10</span>Carga: CMDB & Vulnerabilidades</a></li> <li><a class="" href="10-carga-cmdb-vulnerabilidades.html"><span class="step-no">10</span>Carga: CMDB & Vulnerabilidades</a></li>
<li><a class="" href="11-v2-evolucao-schema.html"><span class="step-no">11</span>v2.0.0 — Evolução de schema</a></li> <li><a class="" href="11-v2-evolucao-schema.html"><span class="step-no">11</span>v2.0.0 — Evolução de schema</a></li>
<li><a class="" href="12-v2-view-procedure.html"><span class="step-no">12</span>v2.0.0 — View & Procedure</a></li> <li><a class="" href="12-v2-view-procedure.html"><span class="step-no">12</span>v2.0.0 — View & Procedure</a></li>
<li><a class="" href="13-v2-perfis-carga.html"><span class="step-no">13</span>v2.0.0 — Perfis de carga</a></li>
</ul> </ul>
<div class="sidebar-footer"> <div class="sidebar-footer">
Vulnerability &amp; Audit AI Insights<br> Vulnerability &amp; Audit AI Insights<br>

View File

@@ -29,6 +29,7 @@
<li><a class="" href="10-carga-cmdb-vulnerabilidades.html"><span class="step-no">10</span>Carga: CMDB & Vulnerabilidades</a></li> <li><a class="" href="10-carga-cmdb-vulnerabilidades.html"><span class="step-no">10</span>Carga: CMDB & Vulnerabilidades</a></li>
<li><a class="" href="11-v2-evolucao-schema.html"><span class="step-no">11</span>v2.0.0 — Evolução de schema</a></li> <li><a class="" href="11-v2-evolucao-schema.html"><span class="step-no">11</span>v2.0.0 — Evolução de schema</a></li>
<li><a class="" href="12-v2-view-procedure.html"><span class="step-no">12</span>v2.0.0 — View & Procedure</a></li> <li><a class="" href="12-v2-view-procedure.html"><span class="step-no">12</span>v2.0.0 — View & Procedure</a></li>
<li><a class="" href="13-v2-perfis-carga.html"><span class="step-no">13</span>v2.0.0 — Perfis de carga</a></li>
</ul> </ul>
<div class="sidebar-footer"> <div class="sidebar-footer">
Vulnerability &amp; Audit AI Insights<br> Vulnerability &amp; Audit AI Insights<br>

View File

@@ -29,6 +29,7 @@
<li><a class="" href="10-carga-cmdb-vulnerabilidades.html"><span class="step-no">10</span>Carga: CMDB & Vulnerabilidades</a></li> <li><a class="" href="10-carga-cmdb-vulnerabilidades.html"><span class="step-no">10</span>Carga: CMDB & Vulnerabilidades</a></li>
<li><a class="" href="11-v2-evolucao-schema.html"><span class="step-no">11</span>v2.0.0 — Evolução de schema</a></li> <li><a class="" href="11-v2-evolucao-schema.html"><span class="step-no">11</span>v2.0.0 — Evolução de schema</a></li>
<li><a class="" href="12-v2-view-procedure.html"><span class="step-no">12</span>v2.0.0 — View & Procedure</a></li> <li><a class="" href="12-v2-view-procedure.html"><span class="step-no">12</span>v2.0.0 — View & Procedure</a></li>
<li><a class="" href="13-v2-perfis-carga.html"><span class="step-no">13</span>v2.0.0 — Perfis de carga</a></li>
</ul> </ul>
<div class="sidebar-footer"> <div class="sidebar-footer">
Vulnerability &amp; Audit AI Insights<br> Vulnerability &amp; Audit AI Insights<br>

View File

@@ -29,6 +29,7 @@
<li><a class="" href="10-carga-cmdb-vulnerabilidades.html"><span class="step-no">10</span>Carga: CMDB & Vulnerabilidades</a></li> <li><a class="" href="10-carga-cmdb-vulnerabilidades.html"><span class="step-no">10</span>Carga: CMDB & Vulnerabilidades</a></li>
<li><a class="" href="11-v2-evolucao-schema.html"><span class="step-no">11</span>v2.0.0 — Evolução de schema</a></li> <li><a class="" href="11-v2-evolucao-schema.html"><span class="step-no">11</span>v2.0.0 — Evolução de schema</a></li>
<li><a class="" href="12-v2-view-procedure.html"><span class="step-no">12</span>v2.0.0 — View & Procedure</a></li> <li><a class="" href="12-v2-view-procedure.html"><span class="step-no">12</span>v2.0.0 — View & Procedure</a></li>
<li><a class="" href="13-v2-perfis-carga.html"><span class="step-no">13</span>v2.0.0 — Perfis de carga</a></li>
</ul> </ul>
<div class="sidebar-footer"> <div class="sidebar-footer">
Vulnerability &amp; Audit AI Insights<br> Vulnerability &amp; Audit AI Insights<br>

View File

@@ -29,6 +29,7 @@
<li><a class="active" href="10-carga-cmdb-vulnerabilidades.html"><span class="step-no">10</span>Carga: CMDB & Vulnerabilidades</a></li> <li><a class="active" href="10-carga-cmdb-vulnerabilidades.html"><span class="step-no">10</span>Carga: CMDB & Vulnerabilidades</a></li>
<li><a class="" href="11-v2-evolucao-schema.html"><span class="step-no">11</span>v2.0.0 — Evolução de schema</a></li> <li><a class="" href="11-v2-evolucao-schema.html"><span class="step-no">11</span>v2.0.0 — Evolução de schema</a></li>
<li><a class="" href="12-v2-view-procedure.html"><span class="step-no">12</span>v2.0.0 — View & Procedure</a></li> <li><a class="" href="12-v2-view-procedure.html"><span class="step-no">12</span>v2.0.0 — View & Procedure</a></li>
<li><a class="" href="13-v2-perfis-carga.html"><span class="step-no">13</span>v2.0.0 — Perfis de carga</a></li>
</ul> </ul>
<div class="sidebar-footer"> <div class="sidebar-footer">
Vulnerability &amp; Audit AI Insights<br> Vulnerability &amp; Audit AI Insights<br>

View File

@@ -29,6 +29,7 @@
<li><a class="" href="10-carga-cmdb-vulnerabilidades.html"><span class="step-no">10</span>Carga: CMDB & Vulnerabilidades</a></li> <li><a class="" href="10-carga-cmdb-vulnerabilidades.html"><span class="step-no">10</span>Carga: CMDB & Vulnerabilidades</a></li>
<li><a class="active" href="11-v2-evolucao-schema.html"><span class="step-no">11</span>v2.0.0 — Evolução de schema</a></li> <li><a class="active" href="11-v2-evolucao-schema.html"><span class="step-no">11</span>v2.0.0 — Evolução de schema</a></li>
<li><a class="" href="12-v2-view-procedure.html"><span class="step-no">12</span>v2.0.0 — View & Procedure</a></li> <li><a class="" href="12-v2-view-procedure.html"><span class="step-no">12</span>v2.0.0 — View & Procedure</a></li>
<li><a class="" href="13-v2-perfis-carga.html"><span class="step-no">13</span>v2.0.0 — Perfis de carga</a></li>
</ul> </ul>
<div class="sidebar-footer"> <div class="sidebar-footer">
Vulnerability &amp; Audit AI Insights<br> Vulnerability &amp; Audit AI Insights<br>

View File

@@ -29,6 +29,7 @@
<li><a class="" href="10-carga-cmdb-vulnerabilidades.html"><span class="step-no">10</span>Carga: CMDB & Vulnerabilidades</a></li> <li><a class="" href="10-carga-cmdb-vulnerabilidades.html"><span class="step-no">10</span>Carga: CMDB & Vulnerabilidades</a></li>
<li><a class="" href="11-v2-evolucao-schema.html"><span class="step-no">11</span>v2.0.0 — Evolução de schema</a></li> <li><a class="" href="11-v2-evolucao-schema.html"><span class="step-no">11</span>v2.0.0 — Evolução de schema</a></li>
<li><a class="active" href="12-v2-view-procedure.html"><span class="step-no">12</span>v2.0.0 — View & Procedure</a></li> <li><a class="active" href="12-v2-view-procedure.html"><span class="step-no">12</span>v2.0.0 — View & Procedure</a></li>
<li><a class="" href="13-v2-perfis-carga.html"><span class="step-no">13</span>v2.0.0 — Perfis de carga</a></li>
</ul> </ul>
<div class="sidebar-footer"> <div class="sidebar-footer">
Vulnerability &amp; Audit AI Insights<br> Vulnerability &amp; Audit AI Insights<br>
@@ -113,7 +114,7 @@ sentido depois do capítulo 13 (perfis de carga novos, ainda não publicado) —
<p>Rode de novo o <code>CREATE OR REPLACE VIEW</code>/<code>PROCEDURE</code> originais (<code>sql/01_ampminsights_db_setup.sql</code>, trechos <code>V_26AI_TECH</code> e <code>prc_26ai_tech</code>) — como são <code>CREATE OR REPLACE</code>, isso restaura o comportamento anterior sem afetar dado nenhum (view e procedure não guardam estado).</p> <p>Rode de novo o <code>CREATE OR REPLACE VIEW</code>/<code>PROCEDURE</code> originais (<code>sql/01_ampminsights_db_setup.sql</code>, trechos <code>V_26AI_TECH</code> e <code>prc_26ai_tech</code>) — como são <code>CREATE OR REPLACE</code>, isso restaura o comportamento anterior sem afetar dado nenhum (view e procedure não guardam estado).</p>
</div> </div>
<div class="pillnav"><a class="prev" href="11-v2-evolucao-schema.html">&larr; v2.0.0 — Evolução de schema</a></div> <div class="pillnav"><a class="prev" href="11-v2-evolucao-schema.html">&larr; v2.0.0 — Evolução de schema</a><a class="next" href="13-v2-perfis-carga.html">v2.0.0 — Perfis de carga &rarr;</a></div>
</main> </main>
</div> </div>
<script src="assets/main.js"></script> <script src="assets/main.js"></script>

View File

@@ -0,0 +1,151 @@
<!DOCTYPE html>
<html lang="pt-BR">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>ampmInsights &middot; v2.0.0 — Perfis de carga</title>
<meta name="description" content="Passo 3 da v2.0.0: novos perfis de carga (DL_TECH_VULNERABILIDADE_V3, DL_TECH_CMDB_V2) para alimentar os campos Tier-1 novos.">
<link rel="stylesheet" href="assets/main.css">
</head>
<body>
<div class="layout">
<aside class="sidebar">
<div class="brand">
<span class="oracle">ORACLE</span>
<span class="name">ampmInsights</span>
</div>
<button class="menu-toggle" type="button">Menu &#9776;</button>
<div class="kicker">Documentação V2 &middot; AM/PM</div>
<ul class="nav-list">
<li><a class="" href="index.html"><span class="step-no">1</span>Visão geral</a></li>
<li><a class="" href="02-arquitetura.html"><span class="step-no">2</span>Arquitetura</a></li>
<li><a class="" href="03-pre-requisitos-credenciais.html"><span class="step-no">3</span>Pré-requisitos & credenciais</a></li>
<li><a class="" href="04-passo-a-passo-banco.html"><span class="step-no">4</span>Passo a passo: banco de dados</a></li>
<li><a class="" href="05-passo-a-passo-apex.html"><span class="step-no">5</span>Passo a passo: aplicação APEX</a></li>
<li><a class="" href="06-validacao-testes.html"><span class="step-no">6</span>Validação & testes</a></li>
<li><a class="" href="07-seguranca-boas-praticas.html"><span class="step-no">7</span>Segurança & boas práticas</a></li>
<li><a class="" href="08-glossario-roadmap.html"><span class="step-no">8</span>Glossário & roadmap</a></li>
<li><a class="" href="09-operacao-observabilidade.html"><span class="step-no">9</span>Operação & observabilidade</a></li>
<li><a class="" href="10-carga-cmdb-vulnerabilidades.html"><span class="step-no">10</span>Carga: CMDB & Vulnerabilidades</a></li>
<li><a class="" href="11-v2-evolucao-schema.html"><span class="step-no">11</span>v2.0.0 — Evolução de schema</a></li>
<li><a class="" href="12-v2-view-procedure.html"><span class="step-no">12</span>v2.0.0 — View & Procedure</a></li>
<li><a class="active" href="13-v2-perfis-carga.html"><span class="step-no">13</span>v2.0.0 — Perfis de carga</a></li>
</ul>
<div class="sidebar-footer">
Vulnerability &amp; Audit AI Insights<br>
Oracle AI Database 26ai &middot; AI Vector Search<br>
Versão V2 &middot; em desenvolvimento, ainda não validada
</div>
</aside>
<main class="content">
<p class="page-kicker">v2.0.0 &middot; Passo 3</p>
<h1>Perfis de carga: DL_TECH_VULNERABILIDADE_V3 e DL_TECH_CMDB_V2</h1>
<p class="lede">Novos perfis de carga do APEX para alimentar as colunas Tier-1 criadas no <a href="11-v2-evolucao-schema.html">capítulo 11</a> — sem sobrescrever <code>DL_TECH_VULNERABILIDADE_V2</code>/<code>DL_TECH_CMDB_V1</code>, que continuam servindo a v1.3.0 em produção.</p>
<div class="callout warning">
<div class="callout-title">Status: mapeamento confirmado contra export real, perfis ainda não criados</div>
<p>O mapeamento abaixo foi conferido campo a campo contra um export real de Tenable/ServiceNow
(arquivos em <code>ampmInsights_V1_Cliente/Artefatos/</code>, só linhas <code>AM...</code>) — não
é suposição. O que falta é a parte que <strong>não é scriptável</strong>: criar os dois perfis de
carga de fato no App Builder (Shared Components → Data Load Definitions), seguindo o roteiro da
seção 4.</p>
</div>
<h2>1. Por que perfis novos, não sobrescrever os antigos</h2>
<p>Mesma regra já usada na v1.3.0 (ver <a href="10-carga-cmdb-vulnerabilidades.html">capítulo 10</a>):
não alterar <code>DL_TECH_VULNERABILIDADE_V2</code>/<code>DL_TECH_CMDB_V1</code> até o fluxo novo
estar validado, para não quebrar a carga que já roda em produção no cliente. Os perfis novos são
<strong>adicionais</strong> às colunas de sempre — não removem nenhum mapeamento existente.</p>
<h2>2. RAW_JSON continua pendente (de propósito)</h2>
<p>Este passo não popula <code>RAW_JSON</code>. O motivo: o Data Load do APEX só leva pra tabela
as colunas que ele mapeia — os campos Tier 2/3 do export (que nunca ganharam coluna tipada) não
chegam nem perto da tabela por este caminho. Popular <code>RAW_JSON</code> de verdade (a linha
completa do export, todas as ~99/41 colunas) depende da tabela de staging (próximo item da Fase 1
no <code>TASKS.md</code>) — lá sim a linha inteira do CSV existe antes de qualquer filtro de
coluna, e um `JSON_OBJECT(*)` sobre o staging resolve isso corretamente.</p>
<h2>3. Mapeamento — DL_TECH_CMDB_V2 (12 colunas novas)</h2>
<p>Coluna de origem exatamente como aparece no export ServiceNow real:</p>
<div class="table-wrap">
<table>
<tr><th>Coluna no export ServiceNow</th><th>Coluna destino (v2.0.0)</th><th>Observação</th></tr>
<tr><td><code>install_status</code></td><td><code>INSTALL_STATUS</code></td><td>texto direto</td></tr>
<tr><td><code>life_cycle_stage_status</code></td><td><code>LIFE_CYCLE_STAGE_STATUS</code></td><td>texto direto</td></tr>
<tr><td><code>assigned_to</code> (ou <code>assigned</code>, se <code>assigned_to</code> vier vazio)</td><td><code>ASSIGNED_TO</code></td><td>nos ativos AMPM amostrados, os dois vinham vazios com frequência — não é bug, é lacuna do cadastro de origem</td></tr>
<tr><td><code>attestation_score</code></td><td><code>ATTESTATION_SCORE</code></td><td>numérico direto</td></tr>
<tr><td><code>attestation_status</code></td><td><code>ATTESTATION_STATUS</code></td><td>texto direto (ex.: "Ainda não revisada")</td></tr>
<tr><td><code>attested</code></td><td><code>ATTESTED_FLAG</code></td><td>vem como <code>Verdadeiro(a)</code>/<code>Falso(a)</code> — mesma convenção já usada em <code>SOX</code>/<code>COFRE</code>/<code>TENABLE</code>/<code>SIEM</code> no capítulo 10; converter para 1/0</td></tr>
<tr><td><code>attested_by</code></td><td><code>ATTESTED_BY</code></td><td>texto direto</td></tr>
<tr><td><code>u_fim_do_suporte</code></td><td><code>U_FIM_DO_SUPORTE</code></td><td>formato confirmado: <code>DD-MM-YYYY</code> (ex.: <code>01-07-2029</code>) — configurar a máscara de data do Data Load Wizard como <code>DD-MM-YYYY</code></td></tr>
<tr><td><code>location</code></td><td><code>LOCATION</code></td><td>texto direto</td></tr>
<tr><td><code>asset_tag</code></td><td><code>ASSET_TAG</code></td><td>texto direto</td></tr>
<tr><td><code>u_server_role</code></td><td><code>U_SERVER_ROLE</code></td><td>texto direto</td></tr>
</table>
</div>
<h2>4. Mapeamento — DL_TECH_VULNERABILIDADE_V3 (23 colunas novas)</h2>
<div class="table-wrap">
<table>
<tr><th>Coluna no export Tenable</th><th>Coluna destino (v2.0.0)</th><th>Observação</th></tr>
<tr><td><code>definition.cve</code></td><td><code>DEFINITION_CVE</code></td><td>lista separada por vírgula, texto direto</td></tr>
<tr><td><code>definition.description</code></td><td><code>DEFINITION_DESCRIPTION</code></td><td>texto direto (CLOB)</td></tr>
<tr><td><code>definition.solution</code></td><td><code>DEFINITION_SOLUTION</code></td><td>texto direto (CLOB)</td></tr>
<tr><td><code>definition.synopsis</code></td><td><code>DEFINITION_SYNOPSIS</code></td><td>texto direto</td></tr>
<tr><td><code>software_vulns</code></td><td><code>SOFTWARE_VULNS</code></td><td>texto bruto (CLOB) — <strong>não</strong> fazer parsing agora, formato não é JSON válido (ver <a href="../../ANALISE_DADOS_v1.4.0_gap_schema.md">gap analysis</a> seção 2.4)</td></tr>
<tr><td><code>definition.cvss3.base_score</code></td><td><code>DEFINITION_CVSS3_BASE_SCORE</code></td><td>numérico direto</td></tr>
<tr><td><code>definition.cvss3.base_vector</code></td><td><code>DEFINITION_CVSS3_BASE_VECTOR</code></td><td>texto direto</td></tr>
<tr><td><code>definition.cpe</code></td><td><code>DEFINITION_CPE</code></td><td>texto direto</td></tr>
<tr><td><code>definition.epss.score</code></td><td><code>DEFINITION_EPSS_SCORE</code></td><td>numérico direto</td></tr>
<tr><td><code>definition.vpr.drivers_on_cisa_kev</code></td><td><code>CISA_KEV_FLAG</code></td><td>confirmado: vem como texto <code>true</code>/<code>false</code> (não aninhado) — converter para 1/0</td></tr>
<tr><td><code>definition.exploited_by_malware</code></td><td><code>EXPLOITED_BY_MALWARE_FLAG</code></td><td>confirmado: texto <code>true</code>/<code>false</code> — converter para 1/0</td></tr>
<tr><td><code>definition.exploited_by_nessus</code></td><td><code>EXPLOITED_BY_NESSUS_FLAG</code></td><td>confirmado: texto <code>true</code>/<code>false</code> — converter para 1/0</td></tr>
<tr><td><code>port</code></td><td><code>PORT</code></td><td>numérico direto</td></tr>
<tr><td><code>asset.operating_system</code></td><td><code>ASSET_OPERATING_SYSTEM</code></td><td>texto direto; <code>asset.operating_systems</code> (plural) tem o mesmo conteúdo nos exemplos vistos — usar o singular como principal</td></tr>
<tr><td><code>last_fixed</code></td><td><code>LAST_FIXED</code></td><td>data/timestamp direto</td></tr>
<tr><td><code>time_to_fix</code></td><td><code>TIME_TO_FIX</code></td><td>numérico direto</td></tr>
<tr><td><code>vuln_sla_date</code></td><td><code>VULN_SLA_DATE</code></td><td>data/timestamp direto</td></tr>
<tr><td><code>definition.patch_published</code></td><td><code>PATCH_PUBLISHED</code></td><td><strong>correção</strong>: o nome real no export tem o prefixo <code>definition.</code>, diferente do que constava antes</td></tr>
<tr><td><code>definition.vulnerability_published</code></td><td><code>VULNERABILITY_PUBLISHED</code></td><td><strong>correção</strong>: idem, prefixo <code>definition.</code></td></tr>
<tr><td><code>source</code></td><td><code>SOURCE_SCAN</code></td><td>texto direto</td></tr>
<tr><td><code>scan.id</code></td><td><code>SCAN_ID</code></td><td>texto direto</td></tr>
<tr><td><code>scan.target</code></td><td><code>SCAN_TARGET</code></td><td>texto direto</td></tr>
</table>
</div>
<h2>5. Como criar os perfis no App Builder</h2>
<p>Não é scriptável de forma confiável para esta aplicação (ver decisão registrada no
<a href="08-glossario-roadmap.html">capítulo 8</a>/histórico do projeto sobre export de página) —
precisa ser feito manualmente no App Builder:</p>
<ol>
<li>App Builder → Application 100 → <strong>Shared Components</strong> → <strong>Data Load Definitions</strong>.</li>
<li>Selecione <code>DL_TECH_CMDB_V1</code> (ou <code>DL_TECH_VULNERABILIDADE_V2</code>) e use <strong>Copy</strong> (não edite o original) — renomeie a cópia para <code>DL_TECH_CMDB_V2</code> (ou <code>DL_TECH_VULNERABILIDADE_V3</code>).</li>
<li>Na cópia, adicione os campos novos da tabela da seção 3 (ou 4) — cada campo novo mapeado para a coluna de destino correspondente.</li>
<li>Para os campos flag (<code>ATTESTED_FLAG</code>, <code>CISA_KEV_FLAG</code>, <code>EXPLOITED_BY_MALWARE_FLAG</code>, <code>EXPLOITED_BY_NESSUS_FLAG</code>): configure a transformação de valor (Value Map / Column Transformation) <code>Verdadeiro(a)/true → 1</code>, <code>Falso(a)/false → 0</code>.</li>
<li>Para <code>U_FIM_DO_SUPORTE</code>: configure a máscara de data como <code>DD-MM-YYYY</code>.</li>
<li>Salve e teste com uma planilha pequena (5-10 linhas de ativos <code>AM...</code>) antes de rodar a carga completa.</li>
</ol>
<h2>6. Como validar</h2>
<p>Depois de rodar uma carga de teste pequena:</p>
<div class="code-block">
<div class="code-bar">
<span class="code-label">Confirma que os campos novos vieram preenchidos</span>
<button class="copy-btn" type="button">Copiar</button>
</div>
<pre><code class="lang-sql">SELECT asset_name, definition_cve, definition_cvss3_base_score,
cisa_kev_flag, exploited_by_malware_flag
FROM V_26AI_TECH
WHERE definition_cve IS NOT NULL
FETCH FIRST 5 ROWS ONLY;</code></pre>
</div>
<p>Se vier linha com <code>DEFINITION_CVE</code> preenchido e <code>CISA_KEV_FLAG</code>/
<code>EXPLOITED_BY_MALWARE_FLAG</code> como <code>1</code> ou <code>0</code> (nunca texto), os
perfis estão funcionando.</p>
<div class="pillnav"><a class="prev" href="12-v2-view-procedure.html">&larr; v2.0.0 — View & Procedure</a></div>
</main>
</div>
<script src="assets/main.js"></script>
</body>
</html>

View File

@@ -29,6 +29,7 @@
<li><a class="" href="10-carga-cmdb-vulnerabilidades.html"><span class="step-no">10</span>Carga: CMDB & Vulnerabilidades</a></li> <li><a class="" href="10-carga-cmdb-vulnerabilidades.html"><span class="step-no">10</span>Carga: CMDB & Vulnerabilidades</a></li>
<li><a class="" href="11-v2-evolucao-schema.html"><span class="step-no">11</span>v2.0.0 — Evolução de schema</a></li> <li><a class="" href="11-v2-evolucao-schema.html"><span class="step-no">11</span>v2.0.0 — Evolução de schema</a></li>
<li><a class="" href="12-v2-view-procedure.html"><span class="step-no">12</span>v2.0.0 — View & Procedure</a></li> <li><a class="" href="12-v2-view-procedure.html"><span class="step-no">12</span>v2.0.0 — View & Procedure</a></li>
<li><a class="" href="13-v2-perfis-carga.html"><span class="step-no">13</span>v2.0.0 — Perfis de carga</a></li>
</ul> </ul>
<div class="sidebar-footer"> <div class="sidebar-footer">
Vulnerability &amp; Audit AI Insights<br> Vulnerability &amp; Audit AI Insights<br>