diff --git a/docs/13-v2-perfis-carga.html b/docs/13-v2-perfis-carga.html index 502d616..16556a0 100644 --- a/docs/13-v2-perfis-carga.html +++ b/docs/13-v2-perfis-carga.html @@ -127,6 +127,20 @@ coluna, e um `JSON_OBJECT(*)` sobre o staging resolve isso corretamente.

arquivo, exatamente como já faz hoje em cada release.

+
+
Investigado e descartado: não existe atalho via SQL pra adicionar colunas
+

Cogitamos usar o pacote público APEX_DATA_LOADING pra adicionar as colunas novas + via script, em vez de formulário por formulário. Confirmado contra o dicionário de dados + (all_synonyms/all_arguments, owner real + APEX_240200.WWV_FLOW_DATA_LOADING_API): esse pacote só tem + GET_FILE_PROFILE e LOAD_DATA — os dois servem pra executar + uma carga usando uma Data Load Definition que já existe, não pra criar/editar colunas de um + perfil. Não tem CREATE_COLUMN_DEFINITION nem equivalente. Conclusão: adicionar + colunas num Data Profile só dá pra fazer pela UI do App Builder (como já vínhamos fazendo) ou + pela API interna wwv_flow_imp_shared (descartada por risco, ver nota da seção + anterior). Não vale reabrir essa investigação.

+
+
Passo a passo confirmado tela a tela — sem adivinhação

A versão anterior deste capítulo sugeria "subir um arquivo de amostra para detectar colunas @@ -182,26 +196,86 @@ coluna, e um `JSON_OBJECT(*)` sobre o staging resolve isso corretamente.

(DL_TECH_CMDB_V2 → TB_26AI_TECH_CMDB, DL_TECH_VULNERABILIDADE_V3 → TB_26AI_TECH_V2).

-
-
A partir daqui, ainda não confirmado — preciso da próxima tela
-

O próximo passo é abrir DL_TECH_CMDB_V2 (ou a de vulnerabilidades) e clicar em - Edit Data Profile pra adicionar as colunas novas da seção 3/4 — ainda não vi - essa tela. Assim que tiver o print, completo o roteiro.

+
    +
  1. Abra DL_TECH_CMDB_V2 → Edit Data Profile (confirma: mostra XLSX, 16 colunas — as originais, intactas).
  2. +
  3. No topo da tela do Data Profile ("Settings"), o campo Name ainda mostra Copy of DL_TECH_CMDB_V1 (é um objeto separado da Data Load Definition, o rename da etapa 9 não alcança aqui) — troca pra DL_TECH_CMDB_V2 por organização (não é obrigatório funcionalmente).
  4. +
  5. Pra cada coluna nova: botão verde Add Column → preenche o formulário → Create. Campos confirmados do formulário: Column Type (deixar Data), Name, Data Type, Length (só aparece pra Varchar2), Selector Type (deixar Name), Selector (mesmo texto do Name), Value Transformation (deixar None — ver nota abaixo).
  6. +
+ +
+ + + + + + + + + + + + + +
NameData TypeLength
INSTALL_STATUSVarchar2100
LIFE_CYCLE_STAGE_STATUSVarchar2100
ASSIGNED_TOVarchar2255
ATTESTATION_SCORENumber—
ATTESTATION_STATUSVarchar2100
ATTESTED_BYVarchar2255
LOCATIONVarchar2255
ASSET_TAGVarchar2100
U_SERVER_ROLEVarchar2255
ATTESTED_FLAGVarchar210
U_FIM_DO_SUPORTEDate— (Format mask DD-MM-YYYY, Has Time Zone desligado)
+
+

Confirmado: total final 27 colunas (16 originais + 11 novas).

+ +
+
ATTESTED_FLAG: sem Value Transformation — conversão é manual no Excel
+

Cogitei usar Value Transformation = Replace pra converter + Verdadeiro(a)/Falso(a) em 1/0 automaticamente, mas o Replace + só aceita um par busca/troca — não dá pra mapear dois valores diferentes numa + coluna só. Verificando como as colunas booleanas que já existem (COFRE, + SOX, TENABLE, SIEM, EDR, + APPLIANCE, É_VIRTUAL) resolvem isso: nenhuma usa Value Transformation — + a conversão sempre foi manual, feita na planilha Excel antes de subir (já documentado no + capítulo 10). ATTESTED_FLAG segue a mesma regra: quem preparar a carga precisa + converter a coluna attested de Verdadeiro(a)/Falso(a) pra + 1/0 no Excel antes de subir. Nota também: essa coluna ficou como + VARCHAR2(10) no banco (Passo 1), não NUMBER como as outras flags — uma + inconsistência minha que não vale reabrir o Passo 1 pra corrigir, já que texto '1'/'0' funciona + numa VARCHAR2 sem problema.

-

Depois de ter as colunas novas adicionadas na cópia (roteiro a completar), os ajustes que já sei -que vão ser necessários, pela tabela da seção 3/4:

- +

4.1 Mapeamento — DL_TECH_VULNERABILIDADE_V3 (repete o mesmo processo, 22 colunas)

+

Mesmo roteiro das etapas 11-13 acima, agora em DL_TECH_VULNERABILIDADE_V3 (perfil +original tem 18 colunas — confirmado, bate exatamente com o capítulo 10). Os 3 campos-flag também +seguem a regra de conversão manual no Excel (não usar Value Transformation), igual +ATTESTED_FLAG acima.

+
+ + + + + + + + + + + + + + + + + + + + + + + + +
NameData TypeLength / Config
DEFINITION_CVEVarchar24000
DEFINITION_DESCRIPTIONClob—
DEFINITION_SOLUTIONClob—
DEFINITION_SYNOPSISVarchar24000
SOFTWARE_VULNSClob—
DEFINITION_CVSS3_BASE_SCORENumber—
DEFINITION_CVSS3_BASE_VECTORVarchar2255
DEFINITION_CPEVarchar24000
DEFINITION_EPSS_SCORENumber—
CISA_KEV_FLAGNumber— (true/false→1/0 manual no Excel)
EXPLOITED_BY_MALWARE_FLAGNumber— (idem)
EXPLOITED_BY_NESSUS_FLAGNumber— (idem)
PORTNumber—
ASSET_OPERATING_SYSTEMVarchar2255
LAST_FIXEDTimestamp with time zonemáscara YYYY"-"MM"-"DD"T"HH24":"MI:SS.FF9TZR, Has Time Zone ligado — mesma config já usada em FIRST_OBSERVED/LAST_SEEN/RESURFACED_DATE do perfil original
TIME_TO_FIXNumber—
VULN_SLA_DATETimestamp with time zonemesma máscara/config acima
PATCH_PUBLISHEDTimestamp with time zonemesma máscara/config acima
VULNERABILITY_PUBLISHEDTimestamp with time zonemesma máscara/config acima
SOURCE_SCANVarchar2100
SCAN_IDVarchar2255
SCAN_TARGETVarchar2255
+
+

Esperado: total final 40 colunas (18 originais + 22 novas).

+

Os arquivos templates/sample_DL_TECH_CMDB_V2.xlsx e -templates/sample_DL_TECH_VULNERABILIDADE_V3.xlsx continuam úteis, só que num momento -diferente do que eu disse antes: não servem pra criar o perfil, servem como planilha de teste (só -o cabeçalho — adicione 5-10 linhas de ativos AM... com dado real antes de subir) pra -validar a carga depois que o perfil estiver pronto, na seção 6.

+templates/sample_DL_TECH_VULNERABILIDADE_V3.xlsx servem como planilha de teste (só o +cabeçalho — adicione 5-10 linhas de ativos AM... com dado real, já com os flags +convertidos pra 1/0, antes de subir) pra validar a carga depois que os dois perfis estiverem +prontos, na seção 6.

6. Como validar

Depois de rodar uma carga de teste pequena: