Baseline v1.0.0 do pacote cliente ampmInsights

Estado na virada para versionamento: Secoes 1-5 do setup de banco
validadas ponta a ponta (ONNX CLIP corrigido - ORA-54426; regiao do
Generative AI corrigida na Secao 5.3 - ORA-20404), observabilidade de
IA adicionada (TB_26AI_TECH_LOG + PRC_26AI_TECH_LOG instrumentando
FNC_26ai_rag/fnc_26ai_tech_rag/fnc_26ai_embed/PRC_26AI_TECH), bug de
vazamento de sqlerrm em insight_report corrigido, job de geracao em
lote agora se autoencerra, e nova doc 09-operacao-observabilidade.html
com checklist de erros comuns e consultas de troubleshooting.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
2026-07-24 14:03:54 -03:00
commit 56c11d0715
14 changed files with 81402 additions and 0 deletions

115
docs/index.html Normal file
View File

@@ -0,0 +1,115 @@
<!DOCTYPE html>
<html lang="pt-BR">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>ampmInsights &middot; Visão geral</title>
<meta name="description" content="Visão geral do ambiente ampmInsights: AI Vector Search e Agentic AI para gestão de vulnerabilidades sobre Oracle AI Database 26ai.">
<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 V1 &middot; AM/PM</div>
<ul class="nav-list">
<li><a class="active" 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>
</ul>
<div class="sidebar-footer">
Vulnerability &amp; Audit AI Insights<br>
Oracle AI Database 26ai &middot; AI Vector Search<br>
Versão V1 &middot; ambiente reprodutível do cliente
</div>
</aside>
<main class="content">
<p class="page-kicker">ampmInsights &middot; documentação V1</p>
<h1>AI Vector Search e Agentic AI aplicados a vulnerabilidades e auditoria técnica</h1>
<p class="lede">Ambiente de demonstração da AM/PM sobre Oracle AI Database 26ai, adaptado para reprodução independente no tenancy OCI do cliente — sem nenhuma credencial da Oracle.</p>
<div class="callout info">
<div class="callout-title">O que é este pacote (V1)</div>
<p>Esta pasta (<code>ampmInsights_V1</code>) é uma cópia reproduzível do ambiente de demonstração
construído para a AM/PM sobre <strong>Oracle AI Database 26ai</strong>, adaptada para que a própria
AM/PM — ou o parceiro <strong>V8 Solution</strong> — consiga recriar o ambiente do zero em seu
próprio tenancy OCI. Nenhuma credencial, senha, chave privada ou OCID do ambiente original foi
mantida: todo valor que precisa ser preenchido aparece como um marcador
<code>&lt;SUBSTITUA_...&gt;</code>, com instruções completas de como obtê-lo.</p>
</div>
<h2>O que este ambiente faz</h2>
<p>O fluxo, em uma frase: depois da carga dos dados técnicos (relatório de vulnerabilidades,
CMDB de ativos e, opcionalmente, syslog), o banco de dados gera automaticamente um <strong>insight
de IA</strong> para cada registro, cria um <strong>vetor (chunk)</strong> a partir desse insight e,
a partir daí, é possível <strong>"falar com os dados"</strong> em linguagem natural — tanto pela
aplicação APEX quanto via SELECT AI ou uma integração MCP.</p>
<div class="diagram">
<div class="node"><strong>Fontes de dados</strong>Vulnerabilidades (Tenable), CMDB, Syslog</div>
<div class="arrow">&rarr;</div>
<div class="node accent"><strong>Autonomous Database 26ai</strong>Tabelas + PL/SQL ampmInsights</div>
<div class="arrow">&rarr;</div>
<div class="node"><strong>OCI Generative AI</strong>Llama 4 Maverick + Cohere embed-v4</div>
<div class="arrow">&rarr;</div>
<div class="node"><strong>Vetores (RAG)</strong>TB_26AI_TECH_VECTOR</div>
<div class="arrow">&rarr;</div>
<div class="node accent"><strong>ampmInsights (APEX)</strong>Chat, relatórios, SELECT AI, MCP</div>
</div>
<h2>Resultados do PoC (contexto de negócio)</h2>
<p>Números do PoC "AI Insights" realizado com a AM/PM em abril de 2026, conforme apresentado na
jornada Agentic AI (documento de jornada ainda em construção pela V8 Solution). Servem de contexto
para dimensionar o valor do ambiente — não fazem parte da configuração técnica.</p>
<div class="grid">
<div class="stat"><span class="num">4.433</span><span class="lbl">vulnerabilidades reais (Tenable)</span></div>
<div class="stat"><span class="num">136</span><span class="lbl">servidores AM/PM no CMDB</span></div>
<div class="stat"><span class="num">96,2%</span><span class="lbl">match ativo &times; CMDB</span></div>
<div class="stat"><span class="num">594 / 1.395</span><span class="lbl">vulnerabilidades críticas</span></div>
</div>
<h2>O que mudou nesta versão V1</h2>
<div class="grid">
<div class="card"><h4>Schema renomeado</h4><p>O schema/usuário de banco passa a se chamar <code>AMPMINSIGHTS</code> de forma consistente nos dois scripts (o ambiente original usava nomes divergentes entre os dois arquivos).</p></div>
<div class="card"><h4>Zero credenciais herdadas</h4><p>Chave privada OCI, senha do schema, OCIDs de tenancy/compartimento/usuário e e-mails pessoais foram removidos e substituídos por marcadores <code>&lt;SUBSTITUA_...&gt;</code>.</p></div>
<div class="card"><h4>Passo a passo do zero</h4><p>Cada credencial tem instruções completas de como gerar, assumindo que quem for reproduzir nunca fez isso antes.</p></div>
<div class="card"><h4>Identidade ampmInsights</h4><p>Nome da aplicação, título de login e textos internos passam a referenciar o projeto como <strong>ampmInsights</strong>.</p></div>
<div class="card"><h4>Objetos de banco preservados</h4><p>Nomes de tabelas, view e PL/SQL (ex.: <code>TB_26AI_TECH_V2</code>, <code>V_26AI_TECH</code>, <code>PRC_26AI_TECH</code>) foram mantidos idênticos entre os dois scripts, já que a aplicação APEX referencia esses nomes centenas de vezes.</p></div>
<div class="card"><h4>Achados de segurança documentados</h4><p>O ambiente original continha uma chave privada e senha em texto puro — ver <a href="07-seguranca-boas-praticas.html">Segurança &amp; boas práticas</a> para o que precisa ser rotacionado.</p></div>
</div>
<h2>Estrutura da entrega</h2>
<div class="table-wrap">
<table>
<tr><th>Caminho</th><th>Conteúdo</th></tr>
<tr><td><code>sql/01_ampminsights_db_setup.sql</code></td><td>Schema, credencial OCI, modelo de embeddings, tabelas/view, PL/SQL de geração de insights.</td></tr>
<tr><td><code>sql/02_ampminsights_apex_app.sql</code></td><td>Export da aplicação APEX (100 &middot; ampmInsights), sanitizado.</td></tr>
<tr><td><code>docs/</code></td><td>Esta documentação navegável.</td></tr>
</table>
</div>
<h2>Antes de encaminhar ao cliente</h2>
<div class="callout warning">
<div class="callout-title">Checklist de validação</div>
<p>Percorra o roteiro de <a href="06-validacao-testes.html">Validação &amp; testes</a> reproduzindo
o ambiente do zero em um tenancy de teste antes de enviar este pacote para a AM/PM ou para a
V8 Solution. Isso confirma que nenhum passo ficou implícito e que os dois arquivos SQL realmente
não dependem de nada do ambiente original.</p>
</div>
<div class="pillnav"><span></span><a class="next" href="02-arquitetura.html">Arquitetura &rarr;</a></div>
</main>
</div>
<script src="assets/main.js"></script>
</body>
</html>