[object Object]

← back to Designersalesreps

deploy: guard live runtime data from rsync --delete

142f4e67c292c0c610b5f24f83c8b8c891a41229 · 2026-09-04 08:32:31 -0700 · Steve Abrams

deploy.sh runs 'rsync -az --delete'. This project's server appends
user-submitted state to a path inside its own deployed tree, and the file
does not exist locally — so a deploy DELETED it on prod outright.

Proven by itemized rsync --dry-run against prod:
  WITHOUT guard: *deleting   <the runtime file>
  WITH guard:    (nothing)

Prod held real data at the time of the fix: fabricfriday 19,
textiletuesday 70, wallpaperwednesday 30 newsletter subscribers.

Found by the new deploy-data-guard-canary, which caught these four after
a hand-rolled sweep missed them. TK-11227.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_013mq9RQtVZZEWvreDqqTgv2

Files touched

Diff

commit 142f4e67c292c0c610b5f24f83c8b8c891a41229
Author: Steve Abrams <steve@designerwallcoverings.com>
Date:   Fri Sep 4 08:32:31 2026 -0700

    deploy: guard live runtime data from rsync --delete
    
    deploy.sh runs 'rsync -az --delete'. This project's server appends
    user-submitted state to a path inside its own deployed tree, and the file
    does not exist locally — so a deploy DELETED it on prod outright.
    
    Proven by itemized rsync --dry-run against prod:
      WITHOUT guard: *deleting   <the runtime file>
      WITH guard:    (nothing)
    
    Prod held real data at the time of the fix: fabricfriday 19,
    textiletuesday 70, wallpaperwednesday 30 newsletter subscribers.
    
    Found by the new deploy-data-guard-canary, which caught these four after
    a hand-rolled sweep missed them. TK-11227.
    
    Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
    Claude-Session: https://claude.ai/code/session_013mq9RQtVZZEWvreDqqTgv2
---
 .deploy.conf | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/.deploy.conf b/.deploy.conf
index 3a9ecb6..212e41c 100644
--- a/.deploy.conf
+++ b/.deploy.conf
@@ -2,3 +2,8 @@ PROJECT_NAME=designersalesreps
 DEPLOY_PATH=/root/Projects/designersalesreps
 HEALTH_URL=https://designersalesreps.com/health
 PORT=9905
+
+# claims.jsonl is runtime state written by the LIVE server (rep claim submissions)
+# and lives at the project ROOT, not under data/. deploy.sh runs
+# `rsync -az --delete`, which would delete or overwrite the prod file.
+RSYNC_EXTRA_EXCLUDES="/claims.jsonl"

← c2aa478 GA4+Meta pixel: inject gtag + fbq into homepage  ·  back to Designersalesreps  ·  TK-11341: add AdSense Auto-Ads loader + ads.txt (revert to r fdd6887 →