- 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>
123 lines
7.2 KiB
HTML
123 lines
7.2 KiB
HTML
<!DOCTYPE html>
|
|
<html lang="pt-BR">
|
|
<head>
|
|
<meta charset="UTF-8">
|
|
<meta name="viewport" content="width=device-width, initial-scale=1">
|
|
<title>ampmInsights · v2.0.0 — View & Procedure</title>
|
|
<meta name="description" content="Passo 2 da v2.0.0: V_26AI_TECH e prc_26ai_tech passam a enviar CVE, pacote e remediação ao LLM.">
|
|
<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 ☰</button>
|
|
<div class="kicker">Documentação V2 · 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="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>
|
|
<div class="sidebar-footer">
|
|
Vulnerability & Audit AI Insights<br>
|
|
Oracle AI Database 26ai · AI Vector Search<br>
|
|
Versão V2 · em desenvolvimento, ainda não validada
|
|
</div>
|
|
</aside>
|
|
<main class="content">
|
|
<p class="page-kicker">v2.0.0 · Passo 2</p>
|
|
<h1>Expondo os dados novos ao AI Insight</h1>
|
|
<p class="lede">Ter as colunas novas na tabela não basta — <code>V_26AI_TECH</code> e o <code>json_object</code> de <code>prc_26ai_tech</code> precisam repassar esses campos até o LLM. Este é o passo que faz isso.</p>
|
|
|
|
<div class="callout info">
|
|
<div class="callout-title">Status: validado em 2026-09-09</div>
|
|
<p>Compilação confirmada (<code>V_26AI_TECH</code>/<code>PRC_26AI_TECH</code> <code>VALID</code>)
|
|
e as 81 colunas da view checadas uma a uma. Dica de quem já passou por isso: se você rodar o
|
|
script statement a statement (não como "Run Script"), não pule o bloco do
|
|
<code>CREATE OR REPLACE VIEW</code> — ele é grande e fica fácil ir direto pro
|
|
<code>CREATE OR REPLACE PROCEDURE</code> sem notar.</p>
|
|
</div>
|
|
|
|
<h2>1. Por que este passo é separado do anterior</h2>
|
|
<p>A coluna existir na tabela e o LLM receber o dado são duas coisas diferentes. O AI Insight
|
|
("Gerar Insight") lê o registro através de <code>V_26AI_TECH</code>, e o texto que vai pro modelo
|
|
é montado campo a campo dentro de um <code>json_object(...)</code> em <code>prc_26ai_tech</code>.
|
|
Sem tocar nesses dois objetos, os campos do <a href="11-v2-evolucao-schema.html">capítulo 11</a>
|
|
ficariam na tabela mas invisíveis para a IA.</p>
|
|
|
|
<h2>2. O que muda</h2>
|
|
<div class="table-wrap">
|
|
<table>
|
|
<tr><th>Objeto</th><th>Mudança</th></tr>
|
|
<tr><td><code>V_26AI_TECH</code></td><td>+35 colunas (23 de <code>TB_26AI_TECH_V2</code> + 12 de <code>TB_26AI_TECH_CMDB</code>). As colunas antigas ficam exatamente como estavam — só houve acréscimo no final da lista. <code>RAW_JSON</code> de cada tabela vira <code>RAW_JSON_TENABLE</code>/<code>RAW_JSON_CMDB</code> na view, para não colidir nome.</td></tr>
|
|
<tr><td><code>prc_26ai_tech</code></td><td>Só o <code>json_object</code> do ramo <code>p_source_type = 'VUL'</code> ganhou os campos novos. O ramo <code>'SYS'</code> (syslog), o texto do prompt, a vetorização, o log e o tratamento de erro ficam <strong>idênticos</strong> ao script original.</td></tr>
|
|
</table>
|
|
</div>
|
|
|
|
<div class="callout info">
|
|
<div class="callout-title">O prompt não mudou</div>
|
|
<p>O texto enviado ao LLM (<code>v_pre_prompt</code>) já pedia "recomendações" e "plano de ação"
|
|
desde a v1.x — ele só não recebia matéria-prima suficiente para cumprir isso. Este passo resolve
|
|
isso enriquecendo os <strong>dados</strong>, sem precisar reescrever o prompt.</p>
|
|
</div>
|
|
|
|
<h2>3. Como rodar</h2>
|
|
<ol>
|
|
<li>Mesmo ambiente/schema (<code>AMPMINSIGHTS</code>) onde o <a href="11-v2-evolucao-schema.html">capítulo 11</a> já foi validado — a view não compila sem as colunas de lá existirem.</li>
|
|
<li>Cole e rode <code>sql/04_v2_view_procedure_update.sql</code> inteiro, de uma vez.</li>
|
|
</ol>
|
|
|
|
<h2>4. Validação</h2>
|
|
<p>Dois checkpoints, sem gastar nenhuma chamada de LLM:</p>
|
|
<div class="code-block">
|
|
<div class="code-bar">
|
|
<span class="code-label">1) Compilação dos objetos</span>
|
|
<button class="copy-btn" type="button">Copiar</button>
|
|
</div>
|
|
<pre><code class="lang-sql">SELECT object_name, object_type, status
|
|
FROM user_objects
|
|
WHERE object_name IN ('V_26AI_TECH', 'PRC_26AI_TECH')
|
|
ORDER BY object_name;
|
|
-- Esperado: as duas linhas com STATUS = 'VALID'.</code></pre>
|
|
</div>
|
|
<div class="code-block">
|
|
<div class="code-bar">
|
|
<span class="code-label">2) Os campos novos chegam pela view</span>
|
|
<button class="copy-btn" type="button">Copiar</button>
|
|
</div>
|
|
<pre><code class="lang-sql">SELECT cid, asset_name, definition_cve, definition_solution,
|
|
sistema_operacional, u_fim_do_suporte
|
|
FROM V_26AI_TECH
|
|
FETCH FIRST 3 ROWS ONLY;
|
|
-- Pode vir tudo NULL se ainda não recarregou dado com o Tenable/ServiceNow
|
|
-- novos (normal) - o que importa aqui é a coluna existir e ser lida.</code></pre>
|
|
</div>
|
|
<p>Um teste completo de ponta a ponta (o AI Insight citando CVE/pacote/remediação de fato) só faz
|
|
sentido depois do capítulo 13 (perfis de carga novos, ainda não publicado) — ver
|
|
<code>TASKS.md</code> no repositório para o board de tarefas atualizado.</p>
|
|
|
|
<div class="callout danger">
|
|
<div class="callout-title">Rollback, se precisar desfazer</div>
|
|
<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 class="pillnav"><a class="prev" href="11-v2-evolucao-schema.html">← v2.0.0 — Evolução de schema</a><a class="next" href="13-v2-perfis-carga.html">v2.0.0 — Perfis de carga →</a></div>
|
|
</main>
|
|
</div>
|
|
<script src="assets/main.js"></script>
|
|
</body>
|
|
</html>
|