← 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
M package-lock.jsonM package.jsonA scripts/recon-kamatera-usre.sh
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 →