PDF-010T - B2B Controlled DDL Execution With Admin Owner¶
Estado final: NO-GO BACKUP FAILED.
Resumen Simple¶
Se confirmo el safe point esperado, se corrieron los validadores previos, se
cargo la credencial admin/owner segura sin imprimir valores y se confirmo que
openclaw_bo_admin puede ejecutar DDL sobre gestion_de_negocios_core y el
schema business_observer.
El gate se detuvo antes del DDL porque el backup real pre-DDL fallo. pg_dump
intento bloquear una tabla de otro schema, cobranzas.bank_entity, y
PostgreSQL respondio permission denied for schema cobranzas.
DDL corregido no ejecutado. Los objetos B2B no creados.
SAFE POINT Inicial¶
HEAD:8aeb04ad30c14c4964be6ee14783763cef459638origin/main:8aeb04ad30c14c4964be6ee14783763cef459638- ultimo commit:
8aeb04a docs: record pdf-010q b2b ddl retry pre-ddl no-go - repo inicial: limpio
git diff --check:PASS
Validaciones Previas¶
validate_pdf_010p_ddl_retry_candidate.py:PASSvalidate_pdf_010s_admin_owner_enablement.py:PASSvalidate_pdf_010r_admin_owner_plan.py:PASSvalidate_pdf_010q_execution_result.py:PASSpytest infra/business-observer/production/b2b-pricing/PDF-010I:24 passed
Credencial Admin/Owner¶
Archivo usado:
C:\APV\openclawai\.venv-portal\secrets\postgres-target-admin-owner.env
Resultado:
- archivo existe
- esta ignorado por Git por
.venv*/ - variables requeridas presentes
- no se imprimieron valores
- no se imprimieron passwords
- no se imprimieron connection strings
Nota de path: el prompt mencionaba
C:\APV\openclawai.venv-portal\secrets\postgres-target-admin-owner.env; ese
path literal no existe en esta workstation. Se uso el path repo-local real y
validado bajo C:\APV\openclawai\.venv-portal\secrets\.
Usuario y Permiso DDL¶
Preflight read-only final:
current_database:gestion_de_negocios_corecurrent_user:openclaw_bo_admin- schema
business_observer: existe - owner del schema
business_observer:openclaw_bo_admin openclaw_bo_admintieneLOGIN:trueopenclaw_bo_admintieneCREATEsobre DB:trueopenclaw_bo_admintieneCREATEsobre schema:true- roles presentes:
openclaw_bo_admin,openclaw_bo_writer,openclaw_bo_reader - objetos B2B antes del DDL: ausentes
Resultado: GO para backup y DDL desde permisos DDL.
Herramientas PostgreSQL¶
C:\Program Files\PostgreSQL\15\bin\psql.exe: PostgreSQL15.15C:\Program Files\PostgreSQL\15\bin\pg_dump.exe: PostgreSQL15.15
No se imprimieron secretos.
Backup Real Pre-DDL Nuevo¶
Destino autorizado:
C:\APV\backups\openclawai\PDF-010T\
Resultado: NO-GO BACKUP FAILED.
Comando ejecutado de forma segura: pg_dump -Fc, con password cargado solo en
variable de entorno temporal.
Error observado:
permission denied for schema cobranzas
Detalle visible de pg_dump:
LOCK TABLE cobranzas.bank_entity IN ACCESS SHARE MODE
Artefacto fallido observado fuera de Git:
C:\APV\backups\openclawai\PDF-010T\PDF-010T-pre-ddl-gestion_de_negocios_core-20260623-115014.dump- size:
0bytes - no es backup valido
Por regla del gate, el flujo se detuvo inmediatamente despues del fallo de backup.
DDL Corregido¶
DDL corregido no ejecutado.
Archivo autorizado, no ejecutado:
infra/business-observer/production/b2b-pricing/PDF-010P/PDF-010P-B2B-PERSISTENCE-DDL-RETRY-CANDIDATE.sql
No se ejecuto rollback automatico.
Objetos B2B¶
Objetos B2B no creados:
business_observer.b2b_customer_mappingbusiness_observer.b2b_product_pricebusiness_observer.b2b_pricing_decision_logbusiness_observer.v_b2b_customer_effective_price
Permisos, Grants y RLS¶
No se aplicaron grants ni RLS porque el DDL no se ejecuto.
El DDL PDF-010P mantiene como objetivo:
- owner
openclaw_bo_admin - grants hacia
openclaw_bo_writer - grants hacia
openclaw_bo_reader - RLS habilitado en las tres tablas B2B
Post-Checks¶
No se ejecutaron post-checks de objetos creados porque no hubo DDL.
Queda disponible checker read-only:
infra/business-observer/production/b2b-pricing/PDF-010T/check_b2b_ddl_post_execution.py
Mientras el DDL no exista, ese checker debe reportar NO-GO por objetos
faltantes.
Rollback Candidate Disponible¶
Rollback retry candidate disponible y no ejecutado:
infra/business-observer/production/b2b-pricing/PDF-010P/PDF-010P-B2B-PERSISTENCE-ROLLBACK-RETRY-CANDIDATE.sql
No fue ejecutado porque no hubo cambios de DDL que revertir y porque rollback requiere gate separado.
Que NO Se Hizo¶
WooCommerce API no fue tocada.
- 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 instalo plugin
- no se modifico theme
- no se crearon clientes WooCommerce
- no se crearon productos WooCommerce
- no se modificaron precios 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
- no se ejecutaron updates/deletes/truncate
- no se toco ninguna tabla B2B
- no se ejecuto rollback candidate
GO/NO-GO Final¶
NO-GO BACKUP FAILED.
Motivo: el backup completo de la base con pg_dump -Fc requiere permisos de
lectura/bloqueo sobre schemas fuera del alcance B2B, y la credencial
openclaw_bo_admin no tiene permiso sobre cobranzas.bank_entity.
Proximo Paso¶
Resolver el gate de backup antes de reintentar DDL:
- opcion recomendada: usar una credencial backup/admin aprobada con permisos
suficientes para
pg_dump -Fccompleto degestion_de_negocios_core - alternativa candidate: definir y aprobar un backup acotado solo a
business_observersi governance acepta que el DDL B2B no requiere backup full DB
Despues, abrir un nuevo gate con safe point, preflight read-only, backup nuevo
valido y ejecucion controlada de PDF-010P.