PDF-013B Prod Request Intake Synthetic Write¶
Estado: PDF-013B_PROD_REQUEST_INTAKE_SYNTHETIC_WRITE_GO
Marcador operativo: PROD REQUEST INTAKE SYNTHETIC WRITE
Objetivo¶
Validar en VPS/prod el camino productivo de intake de alta ecommerce con una
solicitud sintetica: request, audit, notification outbox READY_BLOCKED, event
log, idempotencia y cleanup candidate.
Autorizacion explicita¶
Se autorizo SQL write controlado solo en VPS/prod
openclaw_business_observer_prod.business_observer, con el rol owner
configurado en /opt/openclawai/.venv-portal/secrets/postgres-vps-prod-owner.env.
Alcance permitido: solo registros sinteticos con prefijo PDF-013B: en los 4
objetos target.
Backup pre-write¶
Antes del write se crea un pg_dump -Fc de:
business_observer.ecommerce_customer_requestsbusiness_observer.ecommerce_customer_request_auditbusiness_observer.ecommerce_notification_outboxbusiness_observer.ecommerce_notification_event_log
Ruta: /opt/openclawai/backups/PDF-013B/.
La evidencia registra path, timestamp, tamano y SHA256 sin imprimir secrets.
Backup ejecutado:
- Path:
/opt/openclawai/backups/PDF-013B/business_observer_four_tables_pre_pdf_013b_20260625T170157Z.dump - Timestamp:
20260625T170157Z - Tamano:
27559 - SHA256:
e1118ff05be89eeba514240d1bce221af1f5f7950734187ddb10b826eb315343
Datos sinteticos¶
- Request idempotency:
PDF-013B:REQUEST_INTAKE:TEST001 - Notification idempotency:
PDF-013B:BILLING_CUSTOMER_REQUEST:TEST001 - Razon social:
CLIENTE TEST PDF013B SRL - Nombre fantasia:
TEST PDF013B - Email:
test-pdf013b@example.invalid - WhatsApp solicitado:
+549110000013B - WhatsApp almacenado por constraint productivo:
+5491100000132 - Domicilio fiscal:
DOMICILIO FISCAL TEST PDF013B - Domicilio pedido:
DOMICILIO PEDIDO TEST PDF013B - Request status:
PENDING_SGC_REVIEW - Notification status:
READY_BLOCKED send_blocked_by_default=true- Notification type:
BILLING_CUSTOMER_REQUEST - Recipient interno:
facturacion@ladirecta.com.ar
Request intake¶
Se inserta o reutiliza 1 request sintetica en
business_observer.ecommerce_customer_requests. La solicitud queda en
PENDING_SGC_REVIEW, sin habilitar compra ni crear cliente en sistemas
externos.
Auditoria¶
Se inserta o reutiliza 1 auditoria relacionada en
business_observer.ecommerce_customer_request_audit, con metadata sanitizada e
idempotency key PDF-013B:REQUEST_INTAKE:TEST001.
Outbox¶
Se inserta o reutiliza 1 notification outbox en
business_observer.ecommerce_notification_outbox, con
PDF-013B:BILLING_CUSTOMER_REQUEST:TEST001, status READY_BLOCKED y
send_blocked_by_default=true.
Event log¶
Se inserta o reutiliza 1 event log en
business_observer.ecommerce_notification_event_log, marcando
REQUEST_INTAKE_NOTIFICATION_CREATED, sin email ni SMTP.
Idempotencia¶
El script ejecuta el write dos veces. La segunda corrida reutiliza los registros
existentes y confirma duplicados 0.
Conteos¶
Conteos esperados post-write:
- request PDF-013B =
1 - audit PDF-013B =
1 - notification PDF-013B =
1 - event log PDF-013B =
1 - duplicados =
0
Conteos observados post-write: 1 / 1 / 1 / 1, duplicados 0.
Cleanup candidate¶
infra/business-observer/production/b2b-pricing/PDF-013B/PDF-013B-PROD-REQUEST-INTAKE-CLEANUP-CANDIDATE.sql
borra solo filas con prefijo PDF-013B:. Queda con ROLLBACK y no se ejecuta
sin autorizacion explicita.
Que NO se hizo¶
- no se enviaron emails reales
- no se conecto SMTP para envio
- no se imprimieron secrets/passwords
- no se usaron datos reales de clientes
- no se escribio en SGC
- no se toco WooCommerce API
- no se activo worker/runtime/sync/scheduler/cron/pipelines
Riesgos¶
Snapshot proveedor: PENDING_SNAPSHOT_NOT_PROVIDER_VERIFIABLE. No bloquea este
gate porque existe backup pre-write de las 4 tablas target y el write es
sintetico/acotado.
Proximo paso hacia produccion¶
Preparar intake real controlado desde formulario/plugin con outbox bloqueada por defecto, revision manual de Facturacion y autorizacion separada antes de tocar SGC o WooCommerce.