PDF-008C - SOURCE-002 Products Runtime Preflight Snapshot¶
Fecha: 2026-06-20
Estado: RUNTIME PREFLIGHT READ-ONLY / SNAPSHOT EVIDENCE / VERDE / NO LOAD
portal_visible = yes
Scope: tenant
tenant_id: alpuntodeventa
Owner: Gabi / Carlos Canu
1. Contexto¶
PDF-008B dejo SOURCE-002 Productos relevado como full use-case para
catalogo WooCommerce, stock actual, snapshot diario, faltantes, productos
activos/inactivos, precios, costos, margen, proveedor, logistica, cruce con
ventas SOURCE-003, alertas y reposicion.
Ese gate habia quedado AMARILLO porque no se leyeron secretos y el preflight
runtime real estaba bloqueado. En este gate hubo autorizacion explicita nueva
para leer .env de forma segura, solo para obtener credenciales SGC necesarias
para SOURCE-002 Productos, sin imprimir valores ni persistir credenciales.
No se ejecuto carga, COPY, INSERT, UPDATE, DELETE, TRUNCATE, sync,
scheduler, cron, pipelines ni llamada API WooCommerce. No se toco PostgreSQL
produccion, PostgreSQL staging, sandbox ni WooCommerce.
2. Safe Point Inicial¶
| Validacion | Resultado |
|---|---|
git status -sb |
## main...origin/main |
git rev-parse HEAD |
6b482d95dd0f728ba7024314ac943b1de55301c2 |
git rev-parse origin/main |
6b482d95dd0f728ba7024314ac943b1de55301c2 |
git log -1 --oneline |
6b482d9 docs: record source-002 products full use-case preflight |
git diff --check |
PASS |
..\\.venv-portal\\Scripts\\mkdocs.exe build --strict |
PATH_NOT_FOUND desde C:\APV\openclawai |
.\\.venv-portal\\Scripts\\mkdocs.exe build --strict |
PASS |
Metodo funcional usado para MkDocs:
C:\APV\openclawai\.venv-portal\Scripts\mkdocs.exe
3. Lectura Segura De .env¶
.env leido: YES
Reglas cumplidas:
- no se imprimieron valores;
- no se imprimieron passwords;
- no se imprimieron usuarios, host ni connection strings;
- no se modifico
.env; - no se copio
.env; - no se persistieron credenciales fuera del proceso.
Variables SOURCE-003 buscadas por nombre solicitado:
| Variable | Estado |
|---|---|
APV_SOURCE_003_MSSQL_HOST |
MISSING |
APV_SOURCE_003_MSSQL_PORT |
MISSING |
APV_SOURCE_003_MSSQL_DATABASE |
MISSING |
APV_SOURCE_003_MSSQL_USER |
MISSING |
APV_SOURCE_003_MSSQL_PASSWORD |
MISSING |
APV_SOURCE_003_MSSQL_DRIVER |
MISSING |
Variables SOURCE-002 despues de validacion:
| Variable | Estado |
|---|---|
APV_SOURCE_002_MSSQL_HOST |
PRESENT |
APV_SOURCE_002_MSSQL_PORT |
PRESENT |
APV_SOURCE_002_MSSQL_DATABASE |
PRESENT |
APV_SOURCE_002_MSSQL_USER |
PRESENT |
APV_SOURCE_002_MSSQL_PASSWORD |
PRESENT |
APV_SOURCE_002_MSSQL_DRIVER |
PRESENT |
Variantes detectadas sin valores:
APV_SOURCE_002_MSSQL_TAGAPV_SOURCE_002_MSSQL_TIMEOUT_SECONDSAPV_SOURCE_002_MSSQL_TRUST_SERVER_CERTIFICATEAPV_SOURCE_002B_WOO_BASE_URLAPV_SOURCE_002B_WOO_CONSUMER_KEYAPV_SOURCE_002B_WOO_CONSUMER_SECRETAPV_SOURCE_002B_WOO_TAGAPV_SOURCE_002B_WOO_TIMEOUT_SECONDSAPV_SOURCE_002B_WOO_VERSION
Mapeo seguro SOURCE-003 -> SOURCE-002: NO
Motivo: las variables SOURCE-002 ya existen completas; no fue necesario
mapear desde SOURCE-003. Las credenciales se usaron solo en memoria del
proceso runtime.
4. Preflight Read-Only SOURCE-002¶
Autoridad usada:
docs/tenants/alpuntodeventa/business-observer/source-authority/SOURCE-002-PRODUCTOS-PRODUCTS-AUTHORITY.sql
Documentos de referencia usados:
docs/tenants/alpuntodeventa/business-observer/sources/SOURCE-002-SGC-PRODUCTOS.mddocs/tenants/alpuntodeventa/business-observer/SOURCE-002-FUTURE-LAYER-MAPPING.mddocs/tenants/alpuntodeventa/business-observer/SOURCE-002-ECONOMIC-LAYER.md
Resultado: GO
La consulta ejecutada fue la autoridad SOURCE-002 de solo lectura. Se ejecuto
contra SGC con ApplicationIntent=ReadOnly y aislamiento READ UNCOMMITTED.
No hubo escrituras.
5. Conteos No Sensibles¶
| Metrica | Valor |
|---|---|
| total productos devueltos por autoridad | 314 |
| activos | 314 |
| inactivos | 0 |
stock > 0 |
212 |
stock = 0 |
100 |
| con precio | 312 |
| sin precio | 2 |
| con costo | 312 |
| sin costo | 2 |
| con proveedor | 314 |
| sin proveedor | 0 |
| marcas unicas | 49 |
| SKUs unicos | 314 |
| SKUs duplicados | 0 |
| columnas reales | 81 |
Nota operativa: la autoridad vigente filtra Estado = 'ACTIVO', por eso el
conteo de inactivos queda 0 dentro de esta autoridad. Contar inactivos reales
requiere una autoridad complementaria o una nueva version aprobada.
6. Columnas Reales¶
Columnas devueltas por autoridad: 81.
SKU, Articulo, Marca, Estado, Stock, Stock en Bultos,
CostoListaProveedor, Dcto Compra 1, Dcto Compra 2, Dcto Compra 3,
Costo, Markup, PrecioListaNeto, AlicuotaIVA, IVAPListaFinal,
PrecioListaFinal, Descuento Permitido, PrecioCDescPermitidoFinal,
PrecioOfertaFinal, Acepta Devolucion, Estrategico, MargenL1,
PrecioL1, IVAPrecioL1, PrecioNetoL1, MargenL2, PrecioL2,
IVAPrecioL2, PrecioNetoL2, MargenL3, PrecioL3, IVAPrecioL3,
PrecioNetoL3, MargenL4, PrecioL4, IVAPrecioL4, PrecioNetoL4,
MargenL5, PrecioL5, IVAPrecioL5, PrecioNetoL5, MargenL6,
PrecioL6, IVAPrecioL6, PrecioNetoL6, MargenL7, PrecioL7,
IVAPrecioL7, PrecioNetoL7, MargenL8, PrecioL8, IVAPrecioL8,
PrecioNetoL8, MargenL9, PrecioL9, IVAPrecioL9, PrecioNetoL9,
Fecha de Ultima Compra, UltVenta, UltCambioCosto, DiasSinComprar,
DiasSinVender, DiasSinActCosto, CantVtaMin, CantVentaAgrupada,
UnidadMedida, PesoxUnidad, VolumenxUnidad, BasePallet,
AlturaPallet, PLU Articulo, [PLU Bulto], Unidades_x_Bulto,
CantUnidxPallet, CantBultosxPallet, PesoxPalletkg,
VolumenxPalletm3, Cod Proveedor, Proveedor, Category,
SubCategoria.
7. Campos Disponibles Por Uso¶
| Uso | Campos disponibles | Estado |
|---|---|---|
| WooCommerce | SKU, Articulo, Marca, Estado, Stock, PrecioListaFinal, PrecioOfertaFinal, Category, SubCategoria, peso, volumen, bulto, pallet |
AVAILABLE |
| stock/inventario | Stock, Stock en Bultos, Unidades_x_Bulto, CantUnidxPallet, CantBultosxPallet |
AVAILABLE |
| faltantes/quiebres | Stock, UltVenta, DiasSinVender, CantVtaMin, CantVentaAgrupada, cruce futuro con SOURCE-003 |
PARTIAL_AVAILABLE |
| capa economica | CostoListaProveedor, descuentos compra, Costo, Markup, IVA, listas L1..L9, oferta, margen |
AVAILABLE |
| proveedor | Cod Proveedor, Proveedor |
AVAILABLE |
| logistica | unidad, bulto, pallet, peso, volumen | AVAILABLE |
8. Snapshot SOURCE-002¶
Snapshot generado fuera de Git:
| Evidencia | Valor |
|---|---|
| path | C:\APV\openclawai\snapshots\source-002\SOURCE-002-PRODUCTS-RUNTIME-PREFLIGHT-20260620-173614.csv |
| hash file | C:\APV\openclawai\snapshots\source-002\SOURCE-002-PRODUCTS-RUNTIME-PREFLIGHT-20260620-173614.csv.sha256 |
| SHA256 | c961ffc2b352b6bb3dd0d59bf3d8b7c0f7facff58a9201f7cf45e290141b704f |
| tamanio bytes | 202240 |
| filas | 314 |
| columnas | 81 |
| columnas contra autoridad | PASS |
| snapshot versionado | NO |
.gitignore mantiene snapshots/* y *.sha256, por lo que el snapshot y su
hash quedan fuera de Git.
9. Matriz Runtime De Usos¶
| Uso runtime | Resultado preflight | Decision |
|---|---|---|
| WooCommerce | campos base disponibles, sin API llamada | GO_DOCUMENTAL / NO-GO_API |
| stock actual | Stock y bultos disponibles para lectura vigente |
GO_READONLY |
| snapshot diario | snapshot runtime generado fuera de Git con SHA256 | GO_EVIDENCE |
| faltantes/quiebres | stock cero disponible; reglas, umbrales y demanda no atendida siguen pendientes | PARTIAL / DESIGN_NEEDED |
| precios/costos/margen | costos, listas, IVA, markup y margenes disponibles | GO_READONLY |
| proveedor | proveedor completo para 314 filas | GO_READONLY |
| cruce con SOURCE-003 | identidad natural por tenant_id + sku; no se ejecuto cruce real en este gate |
READY_FOR_NEXT_GATE |
10. Gaps Reales¶
- La autoridad filtra
Estado = 'ACTIVO'; inactivos reales requieren nueva autoridad complementaria. - La autoridad no trae deposito ni ubicacion.
Stocknecesita definicion funcional final: teorico, disponible o vendible.SOURCE-002Bno fue consultado; imagen principal ywc_product_idsiguen pendientes.- Categorias
Category/SubCategoriatodavia no son taxonomia WooCommerce final. - Reglas finales de
regular_price,sale_price, moneda y estado WooCommerce siguen pendientes. - Faltantes/quiebres requieren reglas de umbral, rotacion y cruce con ventas
SOURCE-003. - La lista
SKU NOT IN ('0124', '3857', '3998', '3793')sigue embebida en la autoridad y debe externalizarse antes de sync.
11. GO / NO-GO¶
GO:
- usar esta evidencia como runtime preflight verde de
SOURCE-002; - usar el snapshot fuera de Git como evidencia congelada del gate;
- avanzar a diseno/DDL controlado para capas
raw,core,catalog,inventory_current,daily_snapshot,stock_alertsy economica; - preparar cruce controlado con
SOURCE-003portenant_id + sku.
NO-GO:
- carga real;
COPY;INSERT/UPDATE/DELETE/TRUNCATE;- modificar PostgreSQL produccion o staging;
- tocar sandbox;
- llamar WooCommerce API;
- sync, scheduler, cron o pipelines;
- versionar CSV, dumps, backups o snapshots.
12. Validaciones¶
Validaciones ejecutadas durante el gate:
- lectura segura de
.env:PASS; - variables
SOURCE-002completas:PASS; - autoridad SQL solo lectura:
PASS; - preflight runtime
SOURCE-002:GO; - snapshot CSV fuera de Git:
PASS; - hash SHA256 generado:
PASS; - columnas snapshot contra autoridad:
PASS; .envno modificado:PASS;.envno agregado a Git:PASS;- secretos no impresos ni documentados:
PASS; - PostgreSQL produccion/staging/sandbox no tocados:
PASS; - WooCommerce API no llamada:
PASS.
Validaciones finales de repositorio se registran en el cierre operativo del
commit PDF-008C.
13. Proximo Gate Recomendado¶
PDF-008D SOURCE-002 products controlled DDL/load candidate from runtime snapshot
Objetivo recomendado:
- tomar este snapshot como evidencia de baseline;
- preparar candidate DDL/load sin ejecutar carga;
- separar capas
raw/core/catalog/inventory/economic; - definir autoridad complementaria para inactivos;
- definir reglas WooCommerce finales sin llamar API.
14. Confirmacion De Alcance¶
Durante este gate:
- no se ejecuto carga;
- no se ejecuto
COPY; - no se ejecuto
INSERT/UPDATE/DELETE/TRUNCATE; - no se ejecuto sync, scheduler, cron ni pipelines;
- no se llamo WooCommerce API;
- no se modifico PostgreSQL produccion;
- no se modifico PostgreSQL staging;
- no se toco sandbox;
- no se persistieron credenciales;
- no se imprimieron passwords ni connection strings reales;
- no se agregaron dumps, backups, snapshots ni CSV al repo.
15. Estado Final¶
Estado final: VERDE
PDF-008C cierra el bloqueo de runtime preflight de PDF-008B con consulta
real read-only, conteos no sensibles, columnas reales y snapshot evidence con
SHA256 fuera de Git.