Saltar a contenido

PDF-008I-B - SOURCE-002 Official Load Scripts Hotfix

Fecha: 2026-06-21

Estado: HOTFIX DOCUMENTAL-TECNICO / SCRIPTS OFICIALES CORREGIDOS / SIN EJECUCION

portal_visible = yes

Scope: tenant

tenant_id: alpuntodeventa

Owner: Gabi / Carlos Canu

1. Contexto

PDF-008I ejecuto un rehearsal controlado de recarga SOURCE-002 Productos contra el paquete oficial PDF-008H. El resultado quedo AMARILLO CONTROLADO / NO-GO PARA RELOAD.

El preflight oficial paso, el backup pre-rehearsal fue creado correctamente y SOURCE-002 y SOURCE-003 quedaron intactos:

Control Resultado
backup pre-rehearsal /opt/backups/openclaw/business-observer-prod/postgres/pre-source-002-reload-rehearsal/20260621T113504Z/openclaw-bo-prod-postgres-pre-source-002-reload-rehearsal-20260621T113504Z.dump
backup SHA256 05df70e1b25614e4b2048f7efc4edbbf3332d3a29b1da875ff11e9c65a2bd6a4
SOURCE-002 RAW/CORE/catalog/inventory/economic 314/314/314/314/314/314
SOURCE-002 mart alerts 100
SOURCE-003 RAW/CORE/MART 1886/1886/1/25/173/180

No hubo writes de carga ni rollback porque el script RAW aborto antes de ejecutar la ruta de escritura.

2. Causa Del NO-GO Controlado

La causa directa fue una guarda RAISE EXCEPTION incondicional en el script RAW oficial PDF-008H:

PDF-008H RAW load candidate intentionally blocked...

La misma condicion existia en los scripts de write posteriores y en rollback. Como proteccion inicial era correcta, pero para un rehearsal aprobado bloqueaba la ejecucion aun cuando el operador hubiese confirmado target, batch, hash y backup.

3. Scripts Analizados

Se reviso el paquete oficial completo:

  • 001-source-002-products-official-load-preflight.candidate.sql
  • 002-source-002-products-official-load-raw.candidate.sql
  • 003-source-002-products-official-load-core.candidate.sql
  • 004-source-002-products-official-load-catalog-inventory-economic.candidate.sql
  • 005-source-002-products-official-load-marts.candidate.sql
  • 006-source-002-products-official-load-post-checks.candidate.sql
  • rollback-source-002-products-official-load.candidate.sql

4. Hotfix Aplicado

Se reemplazaron guardas incondicionales por guardas condicionales en los scripts de write y rollback. Los scripts siguen bloqueados por defecto, pero un gate futuro puede desbloquearlos solo pasando variables explicitas de confirmacion.

Confirmaciones requeridas:

Variable Valor requerido
pdf008h_confirm_raw_load PDF008H_LOAD_RAW_APPROVED
pdf008h_confirm_core_load PDF008H_LOAD_CORE_APPROVED
pdf008h_confirm_derived_load PDF008H_LOAD_DERIVED_APPROVED
pdf008h_confirm_mart_load PDF008H_LOAD_MART_APPROVED
pdf008h_confirm_rollback PDF008H_ROLLBACK_SOURCE002_BATCH_APPROVED
pdf008h_confirm_target_productive_dedicated PDF008H_TARGET_PROD_DEDICATED_CONFIRMED
pdf008h_confirm_rehearsal_authorized PDF008H_SOURCE002_REHEARSAL_AUTHORIZED
pdf008h_confirm_snapshot_sha256 c961ffc2b352b6bb3dd0d59bf3d8b7c0f7facff58a9201f7cf45e290141b704f
pdf008h_confirm_batch_id 7dddfc3b-2026-48f0-8002-000000000008
pdf008h_confirm_pre_rehearsal_backup 05df70e1b25614e4b2048f7efc4edbbf3332d3a29b1da875ff11e9c65a2bd6a4
pdf008h_actual_jsonl_sha256 30fb804deba1d6492622f1f64c78f6e2ecbd207fd9a9c3d75bef36b516919531

El preflight read-only tambien publica el SHA256 esperado del backup pre-rehearsal para que el gate lo pueda conciliar.

5. Regla Precio/Costo

La evidencia documental vigente espera:

  • con precio/costo: 312
  • sin precio/costo: 2

El rehearsal mostro que los 2 casos sin precio/costo estan representados en DB como 0, no como NULL. Por eso la regla oficial de calidad y post-checks queda:

  • con precio/costo: precio_lista_final IS NOT NULL AND precio_lista_final <> 0 AND costo IS NOT NULL AND costo <> 0
  • sin precio/costo: precio_lista_final IS NULL OR precio_lista_final = 0 OR costo IS NULL OR costo = 0

Esta regla se aplico en CORE, economic y post-checks.

6. Guardas Preservadas

Se preserva:

  • target obligatorio openclaw_business_observer_prod;
  • abort si el target contiene staging o sandbox;
  • batch esperado 7dddfc3b-2026-48f0-8002-000000000008;
  • snapshot SHA256 esperado;
  • JSONL SHA256 esperado para RAW;
  • backup pre-rehearsal SHA256 esperado;
  • conteos 314/314/314/314/314/314/100;
  • stock 212/100;
  • precio/costo 312/2 bajo regla NULL OR 0;
  • SOURCE-003 intacto 1886/1886/1/25/173/180;
  • rollback batch-scoped, sin drop de tablas.

7. GO / NO-GO Futuro

GO futuro solo si existe un gate separado con:

  • safe point nuevo;
  • autorizacion explicita de rehearsal;
  • target productivo dedicado confirmado;
  • backup pre-rehearsal existente y SHA256 confirmado;
  • batch confirmado;
  • snapshot y JSONL con SHA256 confirmado;
  • RAW, CORE, derivadas, MART y post-checks ejecutados en orden;
  • rollback disponible y aceptado;
  • WooCommerce, sync, scheduler, cron y pipelines en NO-GO.

NO-GO si:

  • falta cualquier confirmacion;
  • el target no es produccion dedicada;
  • aparece staging o sandbox;
  • el SHA256 de snapshot, JSONL o backup no coincide;
  • el batch no coincide;
  • los conteos esperados no cierran;
  • SOURCE-003 cambia;
  • se pretende activar WooCommerce, sync, scheduler, cron o pipelines.

8. Restricciones De Este Hotfix

Durante este hotfix:

  • no se ejecuto SQL;
  • no se ejecuto carga;
  • no se ejecuto COPY;
  • no se ejecuto INSERT/UPDATE/DELETE/TRUNCATE;
  • no se ejecuto DML;
  • no se toco PostgreSQL produccion con writes;
  • no se toco PostgreSQL staging;
  • no se uso sandbox;
  • no se toco WooCommerce;
  • no se llamo API WooCommerce;
  • no se ejecuto sync;
  • no se ejecuto scheduler;
  • no se ejecuto cron;
  • no se ejecutaron pipelines;
  • no se creo snapshot nuevo;
  • no se creo backup nuevo;
  • no se creo dump nuevo;
  • no se versionaron JSONL, CSV ni snapshots temporales;
  • no se leyeron secretos;
  • no se imprimieron passwords ni connection strings reales;
  • no se modifico OpenClaw, NPM, Portainer ni Docker.

9. Proximo Gate Recomendado

PDF-008I-C SOURCE-002 products controlled reload rehearsal retry

Alcance recomendado:

  • ejecutar safe point nuevo;
  • confirmar que PDF-008I-B esta publicado;
  • repetir preflight read-only;
  • confirmar backup pre-rehearsal vigente o crear uno nuevo solo si el gate lo autoriza explicitamente;
  • ejecutar los scripts oficiales PDF-008H hotfixados solo con confirmaciones completas;
  • documentar evidencia de post-checks;
  • mantener WooCommerce, sync, scheduler, cron y pipelines en NO-GO.

10. Estado Final

Estado final: VERDE DOCUMENTAL-TECNICO / HOTFIX PUBLICABLE / RECARGA NO EJECUTADA.

La recarga sigue NO-GO hasta un gate separado.