Saltar a contenido

PDF-010N - B2B Controlled DDL Execution

Estado final: NO-GO OPERATIVO.

Resumen Simple

Se valido el safe point, se corrieron los validadores previos, se confirmaron credenciales sin imprimir valores, se ejecuto preflight read-only final y se creo backup real fuera de Git. Luego se intento ejecutar solo el DDL candidate PDF-010K, pero PostgreSQL lo rechazo por permisos en el primer statement.

No se crearon tablas B2B reales.

Backup Realizado

  • backup pre-DDL: PASS
  • herramienta: C:\Program Files\PostgreSQL\15\bin\pg_dump.exe
  • formato: custom -Fc
  • scope: schema business_observer
  • path fuera de Git: C:\APV\backups\openclawai\PDF-010N\pdf-010n-business-observer-pre-ddl-20260623T044159Z.dump
  • size: 1928895 bytes
  • secretos impresos: NO

DDL Ejecutado

Se intento ejecutar unicamente:

infra/business-observer/production/b2b-pricing/PDF-010K/PDF-010K-B2B-PERSISTENCE-DDL-CANDIDATE.sql

Resultado: FAIL / NO-GO.

Error no sensible:

text permission denied for database gestion_de_negocios_core

El intento uso ON_ERROR_STOP=1 y transaccion unica. El error ocurrio al inicio, por lo que no quedaron objetos B2B creados.

Objetos Creados

Ninguno.

  • business_observer.b2b_customer_mapping: no creado
  • business_observer.b2b_product_price: no creado
  • business_observer.b2b_pricing_decision_log: no creado
  • business_observer.v_b2b_customer_effective_price: no creada

Grants, Permisos y RLS

No se aplicaron grants ni RLS porque el DDL fallo antes de crear los objetos.

Hallazgos:

  • el rol ejecutor observado fue openclaw_writer
  • CREATE SCHEMA IF NOT EXISTS business_observer fallo por permiso sobre la DB
  • los roles business_observer_reader, business_observer_writer y business_observer_admin no existen en el target observado
  • los roles canonicos openclaw_bo_reader, openclaw_bo_writer y openclaw_bo_admin si existen

Post-Checks

Post-check read-only: NO-GO.

  • objetos esperados ausentes
  • constraints esperadas ausentes
  • indexes/unique esperados ausentes
  • grants esperados ausentes
  • RLS esperado ausente

Riesgos

  • El DDL candidate no esta alineado con permisos/roles reales del target.
  • Reintentar sin corregir prerequisitos volveria a fallar.
  • Si se corrige solo el permiso CREATE, los GRANT podrian fallar por roles business_observer_* inexistentes.

Rollback Candidate Disponible

Rollback candidate disponible y no ejecutado.

Disponible:

infra/business-observer/production/b2b-pricing/PDF-010K/PDF-010K-B2B-PERSISTENCE-ROLLBACK-CANDIDATE.sql

No fue ejecutado porque no hubo cambios confirmados y porque rollback requiere gate separado.

Que NO Se Hizo

WooCommerce API no fue tocada.

  • no se toco WooCommerce API
  • no se modifico .env
  • no se imprimieron secretos
  • no se imprimieron passwords
  • no se imprimieron connection strings completas
  • no se modifico runtime WooCommerce
  • no se ejecuto sync
  • no se ejecuto scheduler
  • no se ejecuto cron
  • no se ejecutaron pipelines
  • no se cargaron datos B2B
  • no se ejecutaron inserts masivos, deletes, updates de negocio ni truncate
  • no se ejecuto rollback candidate

GO/NO-GO Final

NO-GO.

Motivo: permiso insuficiente sobre gestion_de_negocios_core y roles de grants del candidate no presentes.

Proximo Paso

Preparar PDF-010O para resolver prerequisitos de roles/permisos y reintentar solo despues de nuevo preflight read-only y backup real.

Decision requerida:

  • usar roles business_observer_* y provisionarlos antes del DDL, o
  • ajustar el DDL candidate para roles reales openclaw_bo_*, con aprobacion separada.