PDF-012D Request To Outbox Dry-Run Local Dev¶
Objetivo¶
Conectar una solicitud ecommerce sintetica con la notification outbox local/dev sin enviar emails reales:
solicitud sintetica -> notification outbox -> event log -> idempotencia -> envio bloqueado
Precondiciones¶
- DB local/dev:
gestion_de_negocios_core. - Schema:
business_observer. - User:
openclaw_bo_admin. - Tablas existentes:
business_observer.ecommerce_customer_requestsbusiness_observer.ecommerce_customer_request_auditbusiness_observer.ecommerce_notification_outboxbusiness_observer.ecommerce_notification_event_log
Solicitud sintetica¶
- Request seed:
PDF-012D:REQUEST:TEST001. - Razon social:
CLIENTE TEST PDF012D SRL. - Email:
test-pdf012d@example.invalid. - Estado:
PENDING_SGC_REVIEW. - Datos: sinteticos, sin clientes reales.
Notification outbox¶
- Idempotency key:
PDF-012D:BILLING_CUSTOMER_REQUEST:TEST001. - Recipient:
facturacion@ladirecta.com.ar. - Status:
READY_BLOCKED. send_blocked_by_default:true.- Asociada a la solicitud sintetica por
request_id.
Auditoria¶
Se inserta o reutiliza auditoria de request en
business_observer.ecommerce_customer_request_audit.
El event log de notification queda en
business_observer.ecommerce_notification_event_log con
event_type=NOTIFICATION_CREATED y
event_payload_sanitized.semantic_event=NOTIFICATION_CREATED_FROM_REQUEST, para
respetar el constraint vigente sin ejecutar DDL adicional.
Idempotencia¶
El flujo se reejecuta con las mismas claves y valida:
1solicitud.1notification.1auditoria de request.1event log de notification.0duplicados inesperados.
Rate-limit local/conceptual¶
- Maximo
1notification activa poridempotency_key. - Maximo
1notification activa por request sintetica. - No se envia si
send_blocked_by_default=true.
SQL write local/dev ejecutado¶
En gestion_de_negocios_core.business_observer:
- Insertar o reutilizar
business_observer.ecommerce_customer_requests. - Insertar una sola auditoria en
business_observer.ecommerce_customer_request_audit. - Insertar o reutilizar
business_observer.ecommerce_notification_outbox. - Insertar un event log en
business_observer.ecommerce_notification_event_log.
Todos los registros usan prefijo/seed PDF-012D: o email
test-pdf012d@example.invalid.
Que NO se hizo¶
- No se enviaron emails reales.
- No se ejecuto
--confirm-send. - No se conecto SMTP para envio.
- No se toco WooCommerce API.
- No se escribio en SGC.
- No se usaron datos reales de clientes.
- No se imprimieron secrets/passwords/connection strings.
- No se toco VPS/prod con datos.
- No se activo worker real.
- No se activo runtime, sync, scheduler, cron ni pipelines.
Proximo paso hacia produccion¶
Gate posterior de worker dry-run bloqueado: leer outbox READY_BLOCKED,
registrar elegibilidad/rate-limit, mantener envio bloqueado y no conectar SMTP
hasta una autorizacion separada.