← back to Dw Signup Fulfillment
verification/tk11114-remediation/before-george-cred-digests.txt
32 lines
TK-11114 remediation — George credential digests (last4 + sha256[:8] ONLY; no secrets)
Captured read-only 2026-09-02 by iterm-tk11114-george-repair.
KAMATERA (prod — where the customers/create webhook lands):
/root/Projects/george-gmail/.env ............ FILE-MISSING (cred-precedence disproven)
/root/DW-Agents/gmail-agent/.env (authoritative):
GEORGE_BASIC_AUTH ........... len=38 last4=DKJO sha8=29398480 <-- CORRECT (direct /api/send => 200)
GEORGE_EXTERNAL_SEND_TOKEN .. len=48 last4=3e9e sha8=40da76b8 <-- CORRECT
/root/Projects/secrets-manager/.env ......... George keys ABSENT
/root/Projects/dw-signup-fulfillment/.env ... George keys ABSENT
KAMATERA RUNTIME (running pm2 process /proc/<pid>/environ) — THE FAULT:
GEORGE_BASIC_AUTH (process.env OVERRIDE) .... len=36 last4=eB6P sha8=bd3d134d <-- STALE/WRONG, != file DKJO
GEORGE_EXTERNAL_SEND_TOKEN (process.env) .... len=48 last4=3e9e sha8=40da76b8 <-- matches file (fine)
GEORGE_URL/ACCOUNT/FROM ..................... unset (fall to config defaults)
DRY_RUN=0 PORT=9862 NODE_ENV=production PUBLIC_URL=https://signup.designerwallcoverings.com
MAC (dev mirror, non-customer-facing):
~/Projects/george-gmail/.env: GEORGE_EXTERNAL_SEND_TOKEN len=48 last4=53d0 sha8=e324d6e2 ; BASIC_AUTH ABSENT
~/DW-Agents/gmail-agent/.env: FILE-MISSING
~/Projects/secrets-manager/.env: GEORGE_AUTH len=38 last4=DKJO sha8=29398480
ROOT CAUSE (confirmed, digests only):
config.js#firstEnv prefers process.env over the on-host file. The running prod process
carries a STALE GEORGE_BASIC_AUTH override (eB6P/bd3d134d) that mismatches George's
current Basic-auth (DKJO/29398480). Every service->George /api/send authenticates with
the wrong Basic-auth => 401 => 100% send failure. The error is SWALLOWED
(email.js#georgePost logs nothing on non-2xx; verify.js#startVerification returns bare
ok:false). A direct shell /api/send uses the correct DKJO file cred => 200, which is why
"direct works, organic fails." The deployed email.js message_class omission is a real but
SECONDARY drift (a direct call omitting message_class still => 200).