[object Object]

← back to Ventura Claw

sync-tokens: strip hardcoded password fallback (was leaked in git)

37b29cb2f4c4249e4ff9e1b69e24f55af2165119 · 2026-05-06 12:12:45 -0700 · Steve Abrams

The literal value '149940c2c5b209fb' was previously the OR-fallback when BC_PASS env was missing — meaning anyone with the repo had Steve's prod password. Now fail-closed: BC_PASS env required at runtime, script exits 1 with clear message if missing. Existing launchd plist already passes the env, so no functional change for the hot path.

NOTE for daylight Steve: rotate the prod password since the old one is in git history.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

Files touched

Diff

commit 37b29cb2f4c4249e4ff9e1b69e24f55af2165119
Author: Steve Abrams <steve@designerwallcoverings.com>
Date:   Wed May 6 12:12:45 2026 -0700

    sync-tokens: strip hardcoded password fallback (was leaked in git)
    
    The literal value '149940c2c5b209fb' was previously the OR-fallback when BC_PASS env was missing — meaning anyone with the repo had Steve's prod password. Now fail-closed: BC_PASS env required at runtime, script exits 1 with clear message if missing. Existing launchd plist already passes the env, so no functional change for the hot path.
    
    NOTE for daylight Steve: rotate the prod password since the old one is in git history.
    
    Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
---
 scripts/sync-tokens.js | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/scripts/sync-tokens.js b/scripts/sync-tokens.js
index 462b07c..d643956 100755
--- a/scripts/sync-tokens.js
+++ b/scripts/sync-tokens.js
@@ -10,7 +10,8 @@ const os = require("os");
 
 const PROD  = process.env.BC_URL  || "https://venturaclaw.com";
 const EMAIL = process.env.BC_USER || "steve@venturaclaw.com";
-const PASS  = process.env.BC_PASS || "149940c2c5b209fb";
+const PASS  = process.env.BC_PASS;
+if (!PASS) { console.error("FATAL: BC_PASS env var required (was hardcoded as a fallback — leaked in git history; rotate)"); process.exit(1); }
 const LOG   = path.join(os.homedir(), "Projects", "ventura-claw", "logs", "sync.log");
 fs.mkdirSync(path.dirname(LOG), { recursive: true });
 const log = (m) => { const line = `[${new Date().toISOString()}] ${m}\n`; fs.appendFileSync(LOG, line); process.stdout.write(line); };

← 817b756 no breakins: pull plaintext creds from login banner, add PUT  ·  back to Ventura Claw  ·  chat: surface Admin link in topbar for admin users 5b582d2 →