[object Object]

← back to Nationalrealestate

ca_contractors: recon script + v0.18.0 (session close, TK-10488)

ca8f55674a1f264e0a7ee43686d1530fc2f22bee · 2026-08-12 11:47:11 -0700 · Steve Abrams

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

Files touched

Diff

commit ca8f55674a1f264e0a7ee43686d1530fc2f22bee
Author: Steve Abrams <steve@designerwallcoverings.com>
Date:   Wed Aug 12 11:47:11 2026 -0700

    ca_contractors: recon script + v0.18.0 (session close, TK-10488)
    
    Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
---
 package-lock.json              |  4 ++--
 package.json                   |  2 +-
 scripts/recon-kamatera-usre.sh | 34 ++++++++++++++++++++++++++++++++++
 3 files changed, 37 insertions(+), 3 deletions(-)

diff --git a/package-lock.json b/package-lock.json
index 4293ac1..73372e9 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -1,12 +1,12 @@
 {
   "name": "nationalrealestate",
-  "version": "0.17.0",
+  "version": "0.18.0",
   "lockfileVersion": 3,
   "requires": true,
   "packages": {
     "": {
       "name": "nationalrealestate",
-      "version": "0.17.0",
+      "version": "0.18.0",
       "dependencies": {
         "better-sqlite3": "^13.0.1",
         "dotenv": "^16.4.5",
diff --git a/package.json b/package.json
index f12099c..226ed3e 100644
--- a/package.json
+++ b/package.json
@@ -1,6 +1,6 @@
 {
   "name": "nationalrealestate",
-  "version": "0.17.0",
+  "version": "0.18.0",
   "private": true,
   "type": "module",
   "description": "USRealEstate — national U.S. residential market explorer. Free-data v1 (Redfin Data Center, Zillow Research, Census ACS, FHFA). Internal analyst tool behind basic auth.",
diff --git a/scripts/recon-kamatera-usre.sh b/scripts/recon-kamatera-usre.sh
new file mode 100644
index 0000000..db34db4
--- /dev/null
+++ b/scripts/recon-kamatera-usre.sh
@@ -0,0 +1,34 @@
+#!/usr/bin/env bash
+# TK-10488 — READ-ONLY recon of Kamatera's usre + CRCP + HomesOnSpec so we can deploy the
+# contractor feature safely (no guessing at a live prod site). Reads nothing it shouldn't;
+# writes nothing. Run on Mac2.
+set -uo pipefail
+KAM=root@45.61.58.125
+ssh -o ConnectTimeout=15 "$KAM" 'bash -s' <<'REMOTE'
+set -uo pipefail
+echo "===== USRE ====="
+U=""; for d in /root/public-projects/nationalrealestate /var/www/nationalrealestate /root/Projects/nationalrealestate; do [ -d "$d" ] && U="$d" && break; done
+echo "USRE_DIR=$U"
+pm2 jlist 2>/dev/null > /tmp/pm.json
+node -e 'JSON.parse(require("fs").readFileSync("/tmp/pm.json")).forEach(p=>{if(/usre|national|commercialreal|homeson/i.test(p.name))console.log("PM2:",p.name,"| ",p.pm2_env.status,"| exec",p.pm2_env.pm_exec_path,"| cwd",p.pm2_env.pm_cwd)})' 2>/dev/null
+if [ -n "$U" ]; then
+  cd "$U"
+  echo "-- git --"; git remote -v 2>/dev/null | head -1; git log --oneline -1 2>/dev/null; echo "dirty:"; git status -s 2>/dev/null | head -5
+  echo "-- contractor route deployed? --"; ls -la src/server/contractors.ts 2>/dev/null || echo "  contractors.ts ABSENT (clean add)"
+  echo "-- index.ts app/auth/mount region --"; grep -nE "express\(\)|app\.use|Contractors|mountContractors|\.listen\(|basicAuth|WWW-Authenticate" src/server/index.ts 2>/dev/null | head -25
+  echo "-- how run (package.json start + is tsx) --"; grep -E '"start"|"dev"|tsx|node ' package.json 2>/dev/null | head -5
+  echo "-- .env keys (names only) --"; [ -f .env ] && grep -oE '^[A-Z_]+=' .env | tr -d '=' | tr '\n' ' '; echo
+fi
+echo "-- nginx vhost for usrealestate --"; grep -rl usrealestate /etc/nginx/sites-enabled/ /etc/nginx/conf.d/ 2>/dev/null | head -1
+echo "-- public behavior --"
+curl -s -o /dev/null -w "  pub /api/contractors: %{http_code}\n" --max-time 8 "https://usrealestate.agentabrams.com/api/contractors?limit=1"
+curl -s -o /dev/null -w "  pub /: %{http_code}\n" --max-time 8 "https://usrealestate.agentabrams.com/"
+
+echo "===== CRCP ====="
+C=""; for d in /root/public-projects/commercialrealestate /var/www/commercialrealestate; do [ -d "$d" ] && C="$d" && break; done
+echo "CRCP_DIR=$C"; [ -n "$C" ] && { cd "$C"; echo "contractors surface present:"; ls public/contractors.html 2>/dev/null || echo "  absent"; echo "CONTRACTORS_API_BASE in .env:"; grep CONTRACTORS_API_BASE .env 2>/dev/null || echo "  not set"; }
+
+echo "===== HOMESONSPEC ====="
+H=""; for d in /root/public-projects/homesonspec /var/www/homesonspec /root/Projects/homesonspec; do [ -d "$d" ] && H="$d" && break; done
+echo "HOS_DIR=$H"; [ -n "$H" ] && { cd "$H"; echo "CONTRACTORS_API_BASE in .env:"; grep -r CONTRACTORS_API_BASE .env apps/web/.env* 2>/dev/null || echo "  not set"; }
+REMOTE

← 6d30f1f scripts: Kamatera contractor data-load + deploy runbook (TK-  ·  back to Nationalrealestate  ·  usre: scoped Basic-auth credential for the shareable Contrac ac61383 →