← back to Dw Signup Fulfillment
verification/tk11114/ROLLBACK-MAP.md
31 lines
# TK-11114 — Rollback Map (written BEFORE any mutation)
**Agent:** iterm-tk11114-webhook · **Finalizer:** /root · **Written:** 2026-09-02 (pre-mutation)
**Store:** designer-laboratory-sandbox.myshopify.com (LIVE prod; legacy misnomer) · Admin API 2024-10
**Service:** dw-signup-fulfillment (Kamatera pm2, PORT 9862, PUBLIC https://signup.designerwallcoverings.com), dry_run=false
## Corrected premise (verified read-only, see snapshots)
The task premise ("0 webhooks; customers/create MISSING; restore it") is **FALSE as of 2026-09-02T17:13Z**:
- A `customers/create` webhook **already exists**, id **1490453430323**, created **2026-08-06T16:24:15-07:00**,
address `https://signup.designerwallcoverings.com/webhooks/customers/create/[REDACTED-last4:e9c9]`.
- An `orders/paid` webhook also exists (id 1499222474803, created 2026-08-28).
- The running service's `WEBHOOK_URL_TOKEN` **matches** the registered webhook (probe with the registered-address token → 200 `{ok:true,received:true}`; bad token → 401).
- Therefore **Action #1 (register) is NOT fired** (would create a duplicate → double emails) and **Action #2 (env update/pm2 restart) is NOT fired** (running token present + matches). Nothing to roll back for #1/#2.
## The only mutation this task performs: ONE controlled test customer (Action #3)
- Email alias (Steve-owned + project-established test convention per `scripts/honor-reissue.js:isInternalOrTest`,
which flags `@designerwallcoverings.com` / `+dwgolive` as internal/test): `steve+dwgolive-tk11114-<ts>@designerwallcoverings.com`.
- Created via `POST /admin/api/2024-10/customers.json` on the LIVE store. This fires the (already-registered) customers/create webhook.
### Restore map (undo, in order)
| # | Created / changed | Undo command |
|---|---|---|
| 1 | Test customer (id recorded in `test-customer.json`) + its metafields (`custom.sample_verify_sent`, `custom.sample_verified`) + `verified-sample` tag | `DELETE /admin/api/2024-10/customers/<TEST_ID>.json` (hard-deletes the customer and all its metafields/tags) |
- No webhook was created → **no webhook to delete**.
- No env var changed, no pm2 restart → **no env/process to revert**.
- If the test customer delete FAILS or is not recoverable, the retained state is documented in `test-customer.json` + the e2e-proof and reported as `partial` (never silently left).
## Critical-failure policy (per brief action #4)
On any critical verification failure during the controlled test, immediately: (a) delete the test customer by recorded id; (b) since no webhook/env change was made, there is nothing further to revert. Report `blocked`/`partial` with evidence.