[object Object]

← back to Secrets Manager

Reconcile ROTATION-CHECKLIST against 2026-06-21 read-only verification: dw_admin item #1 still genuinely OUTSTANDING (old pw live in 4 DSNs, canonical fan key unset); Shopify item #4 was STALE -> RESOLVED (token HTTP 200). DTD verdict A unanimous: compromised flag stays.

7fe7f4ef156cfb0d8b0e3caa6eb0029c2af74155 · 2026-06-21 09:03:49 -0700 · SteveStudio2

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>

Files touched

Diff

commit 7fe7f4ef156cfb0d8b0e3caa6eb0029c2af74155
Author: SteveStudio2 <steve@designerwallcoverings.com>
Date:   Sun Jun 21 09:03:49 2026 -0700

    Reconcile ROTATION-CHECKLIST against 2026-06-21 read-only verification: dw_admin item #1 still genuinely OUTSTANDING (old pw live in 4 DSNs, canonical fan key unset); Shopify item #4 was STALE -> RESOLVED (token HTTP 200). DTD verdict A unanimous: compromised flag stays.
    
    Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
---
 ROTATION-CHECKLIST.md | 30 ++++++++++++++++++++++++++++--
 1 file changed, 28 insertions(+), 2 deletions(-)

diff --git a/ROTATION-CHECKLIST.md b/ROTATION-CHECKLIST.md
index 62febca..1d1f87a 100644
--- a/ROTATION-CHECKLIST.md
+++ b/ROTATION-CHECKLIST.md
@@ -10,6 +10,22 @@
 
 ## 1. PG `dw_admin` password  ⬜ OUTSTANDING  (P1 — the actual compromise fix)
 
+> **Re-verified 2026-06-21 (read-only): STILL GENUINELY OUTSTANDING — not stale.**
+> Proof the rotation never landed: the old leaked plaintext `DW2024SecurePass`
+> is still live in all 4 local consumer `.env.local` DATABASE_URL DSNs
+> (Norma/sdcc, StudentLoanTracker/dw_unified, ClawCoder/clawcoder,
+> ImportNewSkufromURL/dw_unified — all 127.0.0.1) and those apps connect
+> cleanly → the local Mac2 `dw_admin` role STILL uses the compromised pw.
+> The canonical fan key `PG_DW_ADMIN_PASSWORD` has **zero value** in the secrets
+> registry (only the two dead aliases `DW_ADMIN_PG_PASSWORD` fWdg:1e3383c0 +
+> `DW_ADMIN_DB_PASSWORD` 22WF:7397bbbe carry digests — master+desktop only,
+> never fanned). `routes.json` now carries `PG_DW_ADMIN_PASSWORD` scaffolding
+> (4 env_file dests) — **prep done, but no secret behind it; cli.js has never
+> fanned dw_admin.** Prod role pw is SCRAM/unreadable; no evidence prod rotated.
+> → The CNCP compromised flag (cncp server.js `out.prod.status:'compromised'`)
+> stays SET. DTD 2026-06-21 verdict A, unanimous 3/3. Execute via
+> `DW-ADMIN-ROTATION-RUNBOOK-2026-06-19.sh` (Steve-run, step-gated).
+
 - **Exposed:** literal value was hardcoded in 14+ files on disk (scrubbed locally), and lives in Time Machine snapshots / Spotlight index / possibly remote git history.
 - **Runbook:** `~/Projects/_shared/docs/pg-rotation-runbook.md` (~32 min, includes the Kamatera mirror — prod + local both).
 - **Why it's the big one:** `dw_admin` is the shared admin used by wallco, the DW fleet, Norma's sdcc, etc. The Norma scoped rotation below does **not** fix this — it only moves Norma *off* `dw_admin`. `dw_admin` itself stays compromised until this runs.
@@ -62,9 +78,19 @@ Pre-flight (read-only, 2026-06-01) confirmed safe to run:
 
 ## Newly identified (2026-06-03)
 
-## 4. `SHOPIFY_ADMIN_TOKEN`  ⬜ OUTSTANDING  (P1 — blocks DW catalog→Shopify push)
+## 4. `SHOPIFY_ADMIN_TOKEN`  ✅ RESOLVED  (re-verified 2026-06-21 — was STALE)
+
+> **Reconciled 2026-06-21 (read-only): this item was STALE — the token WORKS.**
+> `SHOPIFY_ADMIN_TOKEN` (last4 `75b9`, registry digest `75b9:95b01e9b`) returns
+> **HTTP 200** against `/admin/api/2024-04/shop.json`, and products were created
+> with it this session. The "undefined / burned / no push since Apr 30" text
+> below was the 2026-06-03 snapshot and no longer holds. NOTE: a working Shopify
+> token is a **separate credential** and says nothing about the `dw_admin`
+> compromise (item #1) — it does NOT justify clearing the compromised flag.
+> (Any residual "no push" symptom is an env-sourcing/cron-wiring issue per the
+> full-monte notes, not a dead token.)
 
-- **Exposed / status:** likely the burned post-bubbe token. The full-monte Phase 8 catalog push reads `process.env.SHOPIFY_ADMIN_TOKEN` and currently gets `undefined` → every push auth-fails silently (catch-up "succeeded" counts are error-caught lies, 0 real writes). DW catalog has not pushed to Shopify since ~Apr 30.
+- **(historical, 2026-06-03 — superseded by the note above)** likely the burned post-bubbe token. The full-monte Phase 8 catalog push reads `process.env.SHOPIFY_ADMIN_TOKEN` and currently gets `undefined` → every push auth-fails silently (catch-up "succeeded" counts are error-caught lies, 0 real writes). DW catalog has not pushed to Shopify since ~Apr 30.
 - **Mint:** Shopify admin → Apps → (custom app) → API credentials → revoke old Admin API access token, install/reveal a new one.
 - **Secret key name:** `SHOPIFY_ADMIN_TOKEN` (confirm against `routes.json`).
 - **Route back:**

← 2297149 secrets: add PG_DW_ADMIN_PASSWORD fan route (4 env_file dest  ·  back to Secrets Manager  ·  auto-save: 2026-06-21T18:53:00 (7 files) — .gitignore regist 74dfa62 →