PDF-012K - Worker Guarded Single Send Local Dev¶
Objetivo¶
Ejecutar una prueba real controlada del worker manual con guard global
integrado, usando una notification sintetica limpia y enviando exactamente 1
email real interno a facturacion@ladirecta.com.ar.
Autorizacion explicita¶
Se autorizo exactamente 1 envio real interno a
facturacion@ladirecta.com.ar.
Tambien se autorizo SQL write controlado unicamente en PostgreSQL local/dev
gestion_de_negocios_core, schema business_observer, para crear/reutilizar
la notification PDF-012K, registrar aprobacion manual, intento, exito,
actualizacion a SENT despues de SMTP OK y bloqueo idempotente del retry.
Contexto PDF-012H y correccion PDF-012J¶
PDF-012H fallo porque el retry no encontro la notification original despues de
quedar SENT, creo una fallback y envio un segundo email. PDF-012J integro
guard global antes de fallback y antes de SMTP, de modo que un exito compatible
bloquea cualquier retry antes de enviar.
Notification usada¶
idempotency_key:PDF-012K:BILLING_CUSTOMER_REQUEST:TEST001recipient:facturacion@ladirecta.com.arnotification_type:BILLING_CUSTOMER_REQUESTstatus inicial:READY_BLOCKEDsend_blocked_by_default:trueworker_mode:MANUAL_CONTROLLED_WITH_GLOBAL_GUARDmanual_approval:true
Resultado del envio¶
El primer intento cerro como SENT_SINGLE_EMAIL_FROM_WORKER_GUARDED, con
email_sent=true, single_send=true, sin CC, sin BCC y sin adjuntos.
La notification local/dev fue notification_id=14. El status outbox cambio
de READY_BLOCKED a SENT solo despues de SMTP OK.
Eventos registrados¶
NOTIFICATION_CREATEDsi la notification no existia.SEND_APPROVED_MANUAL.SEND_ATTEMPTED.SEND_SUCCEEDED.ALREADY_SENT_GLOBAL_BLOCKEDpara el retry.
Reintento¶
El retry queda bloqueado antes de SMTP:
retry_email_sent=falseretry_blocked_before_smtp=truesmtp_send_commands_executed=falseglobal_send_succeeded_count=1
Evidencia sanitizada¶
tmp/pdf-012k/worker_guarded_single_send_result.jsontmp/pdf-012k/worker_guarded_single_send_result.txttmp/pdf-012k/worker_guarded_single_send_retry_result.jsontmp/pdf-012k/worker_guarded_single_send_retry_result.txt
La evidencia no incluye password, secret, connection string, contenido de archivos secrets ni datos reales de clientes.
SQL write local/dev exacto¶
- insert idempotente de
business_observer.ecommerce_notification_outboxparaPDF-012K:BILLING_CUSTOMER_REQUEST:TEST001, si faltaba; - insert de
NOTIFICATION_CREATED, si se creo la notification; - insert de
SEND_APPROVED_MANUAL; - insert de
SEND_ATTEMPTED; - update de
business_observer.ecommerce_notification_outbox.statusaSENTdespues de SMTP OK; - insert de
SEND_SUCCEEDED; - insert idempotente de
ALREADY_SENT_GLOBAL_BLOCKEDpara el retry.
Que no se hizo¶
No se enviaron emails a clientes, proveedores ni listas. No se uso CC, BCC ni adjuntos. No se imprimieron secrets/passwords/connection strings. No se escribio en SGC. No se toco WooCommerce API. No se usaron datos reales de clientes. No se toco VPS/prod con datos. No se activo runtime, sync, scheduler, cron ni pipelines.
Proximo paso hacia produccion¶
El siguiente paso recomendado es una revision GO/NO-GO de promocion del worker guarded a produccion controlada, manteniendo scheduler/cron/runtime automatico bloqueados hasta autorizacion separada.