Saltar a contenido

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: 8aeb04ad30c14c4964be6ee14783763cef459638
  • origin/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: PASS
  • validate_pdf_010s_admin_owner_enablement.py: PASS
  • validate_pdf_010r_admin_owner_plan.py: PASS
  • validate_pdf_010q_execution_result.py: PASS
  • pytest 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_core
  • current_user: openclaw_bo_admin
  • schema business_observer: existe
  • owner del schema business_observer: openclaw_bo_admin
  • openclaw_bo_admin tiene LOGIN: true
  • openclaw_bo_admin tiene CREATE sobre DB: true
  • openclaw_bo_admin tiene CREATE sobre 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: PostgreSQL 15.15
  • C:\Program Files\PostgreSQL\15\bin\pg_dump.exe: PostgreSQL 15.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: 0 bytes
  • 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_mapping
  • business_observer.b2b_product_price
  • business_observer.b2b_pricing_decision_log
  • business_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 -Fc completo de gestion_de_negocios_core
  • alternativa candidate: definir y aprobar un backup acotado solo a business_observer si 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.