[object Object]

← back to Secrets Manager

feat(secrets): TMDB_API_KEY + TMDB_READ_ACCESS_TOKEN routes (asseeninmovies/.env)

603340836da89399b347d2d39ffee5eb4053093e · 2026-05-12 14:56:06 -0700 · SteveStudio2

Both forms (v3 query-param + v4 bearer token) routed to
~/Projects/asseeninmovies/.env. Verify endpoints set to
GET https://api.themoviedb.org/3/authentication (expects success:true)
so paste-then-validate flow works.

Steve to paste either key form; secrets skill auto-routes.

Files touched

Diff

commit 603340836da89399b347d2d39ffee5eb4053093e
Author: SteveStudio2 <stevestudio2@SteveStacStudio.lan>
Date:   Tue May 12 14:56:06 2026 -0700

    feat(secrets): TMDB_API_KEY + TMDB_READ_ACCESS_TOKEN routes (asseeninmovies/.env)
    
    Both forms (v3 query-param + v4 bearer token) routed to
    ~/Projects/asseeninmovies/.env. Verify endpoints set to
    GET https://api.themoviedb.org/3/authentication (expects success:true)
    so paste-then-validate flow works.
    
    Steve to paste either key form; secrets skill auto-routes.
---
 registry.json         | 178 ++++++++++++++++++++++++++++-
 routes.json           | 308 +++++++++++++++++++++++++++++++++++++++++++++-----
 yolo-overnight-log.md |  78 +++++++++++++
 3 files changed, 534 insertions(+), 30 deletions(-)

diff --git a/registry.json b/registry.json
index 8a01e13..644ee55 100644
--- a/registry.json
+++ b/registry.json
@@ -516,6 +516,182 @@
         "/Users/stevestudio2/Projects/secrets-manager/.env",
         "/Users/stevestudio2/Desktop/site-factory.env"
       ]
+    },
+    "SHOPIFY_ADMIN_TOKEN": {
+      "digest": "75b9:95b01e9b",
+      "label": "Shopify Admin API Access Token",
+      "last_updated": "2026-05-07T23:26:22.519Z",
+      "validated": false,
+      "verify_status": null,
+      "written_to": [
+        "/Users/stevestudio2/Projects/secrets-manager/.env",
+        "/Users/stevestudio2/Desktop/site-factory.env"
+      ]
+    },
+    "SHOPIFY_NOVASUEDE_APP_CLIENT_ID": {
+      "digest": "3d22:0fe1a5e7",
+      "label": "SHOPIFY_NOVASUEDE_APP_CLIENT_ID",
+      "last_updated": "2026-05-08T00:01:24.065Z",
+      "validated": false,
+      "verify_status": null,
+      "written_to": [
+        "/Users/stevestudio2/Projects/secrets-manager/.env",
+        "/Users/stevestudio2/Desktop/site-factory.env"
+      ]
+    },
+    "SHOPIFY_NOVASUEDE_APP_CLIENT_SECRET": {
+      "digest": "e999:f5d99f25",
+      "label": "SHOPIFY_NOVASUEDE_APP_CLIENT_SECRET",
+      "last_updated": "2026-05-08T00:03:37.561Z",
+      "validated": false,
+      "verify_status": null,
+      "written_to": [
+        "/Users/stevestudio2/Projects/secrets-manager/.env",
+        "/Users/stevestudio2/Desktop/site-factory.env"
+      ]
+    },
+    "SHOPIFY_DW_APP_CLIENT_ID": {
+      "digest": "3d22:0fe1a5e7",
+      "label": "SHOPIFY_DW_APP_CLIENT_ID",
+      "last_updated": "2026-05-08T00:43:04.702Z",
+      "validated": false,
+      "verify_status": null,
+      "written_to": [
+        "/Users/stevestudio2/Projects/secrets-manager/.env",
+        "/Users/stevestudio2/Desktop/site-factory.env"
+      ]
+    },
+    "SHOPIFY_DW_APP_CLIENT_SECRET": {
+      "digest": "e999:f5d99f25",
+      "label": "SHOPIFY_DW_APP_CLIENT_SECRET",
+      "last_updated": "2026-05-08T00:43:04.752Z",
+      "validated": false,
+      "verify_status": null,
+      "written_to": [
+        "/Users/stevestudio2/Projects/secrets-manager/.env",
+        "/Users/stevestudio2/Desktop/site-factory.env"
+      ]
+    },
+    "SHOPIFY_DW_ADMIN_TOKEN_CONTENT": {
+      "digest": "19b4:8d306dfc",
+      "label": "SHOPIFY_DW_ADMIN_TOKEN_CONTENT",
+      "last_updated": "2026-05-08T06:19:32.976Z",
+      "validated": false,
+      "verify_status": null,
+      "written_to": [
+        "/Users/stevestudio2/Projects/secrets-manager/.env",
+        "/Users/stevestudio2/Desktop/site-factory.env"
+      ]
+    },
+    "COSTARICA_AGENTABRAMS_PASSWORD": {
+      "digest": "ef66:dd0a83a2",
+      "label": "COSTARICA_AGENTABRAMS_PASSWORD",
+      "last_updated": "2026-05-08T06:23:56.660Z",
+      "validated": false,
+      "verify_status": null,
+      "written_to": [
+        "/Users/stevestudio2/Projects/secrets-manager/.env",
+        "/Users/stevestudio2/Desktop/site-factory.env"
+      ]
+    },
+    "PURELYMAIL_INFO_GLITTERWALLS_PASSWORD": {
+      "digest": "wHCC:044dd16e",
+      "label": "PURELYMAIL_INFO_GLITTERWALLS_PASSWORD",
+      "last_updated": "2026-05-08T08:04:02.203Z",
+      "validated": false,
+      "verify_status": null,
+      "written_to": [
+        "/Users/stevestudio2/Projects/secrets-manager/.env",
+        "/Users/stevestudio2/Desktop/site-factory.env"
+      ]
+    },
+    "SHOPIFY_ORDERS_TOKEN": {
+      "digest": "2042:ba2e3fe7",
+      "label": "SHOPIFY_ORDERS_TOKEN",
+      "last_updated": "2026-05-11T16:36:53.960Z",
+      "validated": false,
+      "verify_status": null,
+      "written_to": [
+        "/Users/stevestudio2/Projects/secrets-manager/.env",
+        "/Users/stevestudio2/Desktop/site-factory.env"
+      ]
+    },
+    "SPOONFLOWER_EMAIL": {
+      "digest": ".com:dc73a4bb",
+      "label": "SPOONFLOWER_EMAIL",
+      "last_updated": "2026-05-11T23:37:02.965Z",
+      "validated": false,
+      "verify_status": null,
+      "written_to": [
+        "/Users/stevestudio2/Projects/secrets-manager/.env",
+        "/Users/stevestudio2/Desktop/site-factory.env"
+      ]
+    },
+    "SPOONFLOWER_PASSWORD": {
+      "digest": "911*:1a713027",
+      "label": "SPOONFLOWER_PASSWORD",
+      "last_updated": "2026-05-11T23:37:02.998Z",
+      "validated": false,
+      "verify_status": null,
+      "written_to": [
+        "/Users/stevestudio2/Projects/secrets-manager/.env",
+        "/Users/stevestudio2/Desktop/site-factory.env"
+      ]
+    },
+    "X_DEFAULT_PASSWORD": {
+      "digest": "911*:bbfbbdeb",
+      "label": "X_DEFAULT_PASSWORD",
+      "last_updated": "2026-05-11T23:43:54.277Z",
+      "validated": false,
+      "verify_status": null,
+      "written_to": [
+        "/Users/stevestudio2/Projects/secrets-manager/.env",
+        "/Users/stevestudio2/Desktop/site-factory.env"
+      ]
+    },
+    "FASHN_API_KEY": {
+      "digest": "4o55:363bbb45",
+      "label": "FASHN_API_KEY",
+      "last_updated": "2026-05-12T06:28:55.442Z",
+      "validated": false,
+      "verify_status": null,
+      "written_to": [
+        "/Users/stevestudio2/Projects/secrets-manager/.env",
+        "/Users/stevestudio2/Desktop/site-factory.env"
+      ]
+    },
+    "TWILIO_ACCOUNT_SID": {
+      "digest": "1f11:97b7a7f7",
+      "label": "TWILIO_ACCOUNT_SID",
+      "last_updated": "2026-05-12T21:05:44.238Z",
+      "validated": false,
+      "verify_status": null,
+      "written_to": [
+        "/Users/stevestudio2/Projects/secrets-manager/.env",
+        "/Users/stevestudio2/Desktop/site-factory.env"
+      ]
+    },
+    "TWILIO_AUTH_TOKEN": {
+      "digest": "3369:fff8e087",
+      "label": "TWILIO_AUTH_TOKEN",
+      "last_updated": "2026-05-12T21:05:44.244Z",
+      "validated": false,
+      "verify_status": null,
+      "written_to": [
+        "/Users/stevestudio2/Projects/secrets-manager/.env",
+        "/Users/stevestudio2/Desktop/site-factory.env"
+      ]
+    },
+    "TWILIO_PHONE_NUMBER": {
+      "digest": "0489:c09024b6",
+      "label": "TWILIO_PHONE_NUMBER",
+      "last_updated": "2026-05-12T21:28:33.888Z",
+      "validated": false,
+      "verify_status": null,
+      "written_to": [
+        "/Users/stevestudio2/Projects/secrets-manager/.env",
+        "/Users/stevestudio2/Desktop/site-factory.env"
+      ]
     }
   }
-}
+}
\ No newline at end of file
diff --git a/routes.json b/routes.json
index 5374337..e913dcc 100644
--- a/routes.json
+++ b/routes.json
@@ -223,29 +223,61 @@
     "STRIPE_VCL_WEBHOOK_SECRET": {
       "label": "Stripe webhook signing secret — VCL endpoint we_1TUF1Y63uNmiRsMbNr1kLu52",
       "destinations": [
-        { "type": "project", "path": "~/Projects/ventura-claw-leads/.env" },
-        { "type": "project", "host": "45.61.58.125", "user": "root", "path": "/root/Projects/ventura-claw-leads/.env" }
+        {
+          "type": "project",
+          "path": "~/Projects/ventura-claw-leads/.env"
+        },
+        {
+          "type": "project",
+          "host": "45.61.58.125",
+          "user": "root",
+          "path": "/root/Projects/ventura-claw-leads/.env"
+        }
       ]
     },
     "STRIPE_PRICE_VCL_STARTER_MONTH": {
       "label": "Stripe Price ID — VCL Starter $49/mo",
       "destinations": [
-        { "type": "project", "path": "~/Projects/ventura-claw-leads/.env" },
-        { "type": "project", "host": "45.61.58.125", "user": "root", "path": "/root/Projects/ventura-claw-leads/.env" }
+        {
+          "type": "project",
+          "path": "~/Projects/ventura-claw-leads/.env"
+        },
+        {
+          "type": "project",
+          "host": "45.61.58.125",
+          "user": "root",
+          "path": "/root/Projects/ventura-claw-leads/.env"
+        }
       ]
     },
     "STRIPE_PRICE_VCL_STANDARD_MONTH": {
       "label": "Stripe Price ID — VCL Standard $99/mo",
       "destinations": [
-        { "type": "project", "path": "~/Projects/ventura-claw-leads/.env" },
-        { "type": "project", "host": "45.61.58.125", "user": "root", "path": "/root/Projects/ventura-claw-leads/.env" }
+        {
+          "type": "project",
+          "path": "~/Projects/ventura-claw-leads/.env"
+        },
+        {
+          "type": "project",
+          "host": "45.61.58.125",
+          "user": "root",
+          "path": "/root/Projects/ventura-claw-leads/.env"
+        }
       ]
     },
     "STRIPE_PRICE_VCL_PREMIER_MONTH": {
       "label": "Stripe Price ID — VCL Premier $199/mo",
       "destinations": [
-        { "type": "project", "path": "~/Projects/ventura-claw-leads/.env" },
-        { "type": "project", "host": "45.61.58.125", "user": "root", "path": "/root/Projects/ventura-claw-leads/.env" }
+        {
+          "type": "project",
+          "path": "~/Projects/ventura-claw-leads/.env"
+        },
+        {
+          "type": "project",
+          "host": "45.61.58.125",
+          "user": "root",
+          "path": "/root/Projects/ventura-claw-leads/.env"
+        }
       ]
     },
     "HEYGEN_API_KEY": {
@@ -257,66 +289,144 @@
         "headerName": "x-api-key"
       },
       "destinations": [
-        { "type": "skill", "path": "~/.claude/skills/session-debrief/.env" },
-        { "type": "skill", "path": "~/.claude/skills/reviewed-demo-video/.env" }
+        {
+          "type": "skill",
+          "path": "~/.claude/skills/session-debrief/.env"
+        },
+        {
+          "type": "skill",
+          "path": "~/.claude/skills/reviewed-demo-video/.env"
+        }
       ]
     },
     "INFO_VENTURACLAW_COM_PASSWORD": {
       "label": "Purelymail mailbox password — info@venturaclaw.com (used by Ventura Claw Leads + the existing ventura-claw app)",
       "destinations": [
-        { "type": "project", "path": "~/Projects/ventura-claw-leads/.env" },
-        { "type": "project", "host": "45.61.58.125", "user": "root", "path": "/root/Projects/ventura-claw-leads/.env" },
-        { "type": "project", "path": "~/Projects/ventura-claw/.env" },
-        { "type": "project", "host": "45.61.58.125", "user": "root", "path": "/root/Projects/ventura-claw/.env" }
+        {
+          "type": "project",
+          "path": "~/Projects/ventura-claw-leads/.env"
+        },
+        {
+          "type": "project",
+          "host": "45.61.58.125",
+          "user": "root",
+          "path": "/root/Projects/ventura-claw-leads/.env"
+        },
+        {
+          "type": "project",
+          "path": "~/Projects/ventura-claw/.env"
+        },
+        {
+          "type": "project",
+          "host": "45.61.58.125",
+          "user": "root",
+          "path": "/root/Projects/ventura-claw/.env"
+        }
       ]
     },
     "INFO_NATIONALPAPERHANGERS_COM_PASSWORD": {
       "label": "Purelymail mailbox password — info@nationalpaperhangers.com",
       "destinations": [
-        { "type": "project", "path": "~/Projects/NationalPaperHangers/.env" },
-        { "type": "project", "host": "45.61.58.125", "user": "root", "path": "/root/Projects/NationalPaperHangers/.env" }
+        {
+          "type": "project",
+          "path": "~/Projects/NationalPaperHangers/.env"
+        },
+        {
+          "type": "project",
+          "host": "45.61.58.125",
+          "user": "root",
+          "path": "/root/Projects/NationalPaperHangers/.env"
+        }
       ]
     },
     "STRIPE_NPH_WEBHOOK_SECRET": {
       "label": "Stripe Webhook Signing Secret — NPH endpoint we_1TUDHV63uNmiRsMbRJea7EqU",
       "destinations": [
-        { "type": "project", "path": "~/Projects/NationalPaperHangers/.env" },
-        { "type": "project", "host": "45.61.58.125", "user": "root", "path": "/root/Projects/NationalPaperHangers/.env" }
+        {
+          "type": "project",
+          "path": "~/Projects/NationalPaperHangers/.env"
+        },
+        {
+          "type": "project",
+          "host": "45.61.58.125",
+          "user": "root",
+          "path": "/root/Projects/NationalPaperHangers/.env"
+        }
       ]
     },
     "STRIPE_PRICE_PRO_MONTH": {
       "label": "Stripe Price ID — NPH Pro $39/mo",
       "destinations": [
-        { "type": "project", "path": "~/Projects/NationalPaperHangers/.env" },
-        { "type": "project", "host": "45.61.58.125", "user": "root", "path": "/root/Projects/NationalPaperHangers/.env" }
+        {
+          "type": "project",
+          "path": "~/Projects/NationalPaperHangers/.env"
+        },
+        {
+          "type": "project",
+          "host": "45.61.58.125",
+          "user": "root",
+          "path": "/root/Projects/NationalPaperHangers/.env"
+        }
       ]
     },
     "STRIPE_PRICE_PRO_YEAR": {
       "label": "Stripe Price ID — NPH Pro $399/yr",
       "destinations": [
-        { "type": "project", "path": "~/Projects/NationalPaperHangers/.env" },
-        { "type": "project", "host": "45.61.58.125", "user": "root", "path": "/root/Projects/NationalPaperHangers/.env" }
+        {
+          "type": "project",
+          "path": "~/Projects/NationalPaperHangers/.env"
+        },
+        {
+          "type": "project",
+          "host": "45.61.58.125",
+          "user": "root",
+          "path": "/root/Projects/NationalPaperHangers/.env"
+        }
       ]
     },
     "STRIPE_PRICE_SIGNATURE_MONTH": {
       "label": "Stripe Price ID — NPH Signature $149/mo",
       "destinations": [
-        { "type": "project", "path": "~/Projects/NationalPaperHangers/.env" },
-        { "type": "project", "host": "45.61.58.125", "user": "root", "path": "/root/Projects/NationalPaperHangers/.env" }
+        {
+          "type": "project",
+          "path": "~/Projects/NationalPaperHangers/.env"
+        },
+        {
+          "type": "project",
+          "host": "45.61.58.125",
+          "user": "root",
+          "path": "/root/Projects/NationalPaperHangers/.env"
+        }
       ]
     },
     "STRIPE_PRICE_SIGNATURE_YEAR": {
       "label": "Stripe Price ID — NPH Signature $1500/yr",
       "destinations": [
-        { "type": "project", "path": "~/Projects/NationalPaperHangers/.env" },
-        { "type": "project", "host": "45.61.58.125", "user": "root", "path": "/root/Projects/NationalPaperHangers/.env" }
+        {
+          "type": "project",
+          "path": "~/Projects/NationalPaperHangers/.env"
+        },
+        {
+          "type": "project",
+          "host": "45.61.58.125",
+          "user": "root",
+          "path": "/root/Projects/NationalPaperHangers/.env"
+        }
       ]
     },
     "STRIPE_PRICE_ENTERPRISE_MONTH": {
       "label": "Stripe Price ID — NPH Enterprise $399/mo",
       "destinations": [
-        { "type": "project", "path": "~/Projects/NationalPaperHangers/.env" },
-        { "type": "project", "host": "45.61.58.125", "user": "root", "path": "/root/Projects/NationalPaperHangers/.env" }
+        {
+          "type": "project",
+          "path": "~/Projects/NationalPaperHangers/.env"
+        },
+        {
+          "type": "project",
+          "host": "45.61.58.125",
+          "user": "root",
+          "path": "/root/Projects/NationalPaperHangers/.env"
+        }
       ]
     },
     "VERCEL_TOKEN": {
@@ -390,6 +500,16 @@
         {
           "type": "skill",
           "name": "browserbase"
+        },
+        {
+          "type": "project",
+          "host": "45.61.58.125",
+          "user": "root",
+          "path": "/root/Projects/Designer-Wallcoverings/DW-Websites/abrams-report/.env"
+        },
+        {
+          "type": "project",
+          "path": "/Users/stevestudio2/Projects/abrams-report/.env"
         }
       ]
     },
@@ -399,6 +519,16 @@
         {
           "type": "skill",
           "name": "browserbase"
+        },
+        {
+          "type": "project",
+          "host": "45.61.58.125",
+          "user": "root",
+          "path": "/root/Projects/Designer-Wallcoverings/DW-Websites/abrams-report/.env"
+        },
+        {
+          "type": "project",
+          "path": "/Users/stevestudio2/Projects/abrams-report/.env"
         }
       ]
     },
@@ -487,7 +617,20 @@
     },
     "SHOPIFY_ADMIN_TOKEN": {
       "label": "Shopify Admin API Access Token",
-      "destinations": []
+      "destinations": [
+        {
+          "type": "project",
+          "path": "/Users/stevestudio2/Projects/Designer-Wallcoverings/shopify/.env"
+        },
+        {
+          "type": "project",
+          "path": "/Users/stevestudio2/Projects/Designer-Wallcoverings/.env"
+        },
+        {
+          "type": "project",
+          "path": "/Users/stevestudio2/Projects/Designer-Wallcoverings/DW-Websites/LosAngelesFabrics/.env"
+        }
+      ]
     },
     "SHOPIFY_API_KEY": {
       "label": "Shopify API Key",
@@ -621,6 +764,11 @@
         {
           "type": "project",
           "path": "~/Projects/jill-website/.env"
+        },
+        {
+          "type": "project",
+          "path": "~/Projects/ventura-bus-3d/.env",
+          "alias": "GOOGLE_MAPS_API_KEY"
         }
       ]
     },
@@ -878,5 +1026,107 @@
         "key": "ADMIN_TOKEN"
       }
     ]
+  },
+  "SHOPIFY_ORDERS_TOKEN": {
+    "label": "Shopify Admin token (orders+products scope, weekend-report1-1 Partner app)",
+    "destinations": [
+      {
+        "type": "skill",
+        "path": "/Users/stevestudio2/.claude/skills/weekend-csv-products/.env"
+      }
+    ]
+  },
+  "SPOONFLOWER_EMAIL": {
+    "env_files": [
+      "/Users/stevestudio2/Projects/resize-it/.env",
+      "/Users/stevestudio2/Projects/wallco-ai/.env"
+    ]
+  },
+  "SPOONFLOWER_PASSWORD": {
+    "env_files": [
+      "/Users/stevestudio2/Projects/resize-it/.env",
+      "/Users/stevestudio2/Projects/wallco-ai/.env"
+    ]
+  },
+  "GOOGLE_DRIVE_CLIENT_ID": {
+    "description": "Google Drive OAuth Client ID — TSD photo-import-cli desktop app",
+    "destinations": [
+      {
+        "type": "env-file",
+        "path": "/Users/stevestudio2/Projects/thesetdecorator/.env"
+      }
+    ]
+  },
+  "GOOGLE_DRIVE_CLIENT_SECRET": {
+    "description": "Google Drive OAuth Client Secret — TSD photo-import-cli",
+    "destinations": [
+      {
+        "type": "env-file",
+        "path": "/Users/stevestudio2/Projects/thesetdecorator/.env"
+      }
+    ]
+  },
+  "GOOGLE_DRIVE_REFRESH_TOKEN": {
+    "description": "Google Drive OAuth refresh token — read-only scope, owned by steveabramsdesigns@gmail.com",
+    "destinations": [
+      {
+        "type": "env-file",
+        "path": "/Users/stevestudio2/Projects/thesetdecorator/.env"
+      }
+    ]
+  },
+  "OPENAI_API_KEY": {
+    "label": "OPENAI_API_KEY",
+    "destinations": [
+      "/Users/stevestudio2/Projects/holdforme/.env"
+    ]
+  },
+  "ELEVENLABS_API_KEY": {
+    "label": "ELEVENLABS_API_KEY",
+    "destinations": [
+      "/Users/stevestudio2/Projects/holdforme/.env"
+    ]
+  },
+  "TWILIO_ACCOUNT_SID": {
+    "label": "TWILIO_ACCOUNT_SID",
+    "destinations": [
+      "/Users/stevestudio2/Projects/holdforme/.env"
+    ]
+  },
+  "TWILIO_AUTH_TOKEN": {
+    "label": "TWILIO_AUTH_TOKEN",
+    "destinations": [
+      "/Users/stevestudio2/Projects/holdforme/.env"
+    ]
+  },
+  "TWILIO_PHONE_NUMBER": {
+    "label": "TWILIO_PHONE_NUMBER",
+    "destinations": [
+      "/Users/stevestudio2/Projects/holdforme/.env"
+    ]
+  },
+  "TMDB_API_KEY": {
+    "label": "TMDB v3 API key — asseeninmovies Phase B drain (6.46M-stub queue)",
+    "verify": {
+      "method": "GET",
+      "url": "https://api.themoviedb.org/3/authentication?api_key=__VALUE__",
+      "auth": "querystring",
+      "expect": "success"
+    },
+    "destinations": [
+      "/Users/stevestudio2/Projects/asseeninmovies/.env"
+    ]
+  },
+  "TMDB_READ_ACCESS_TOKEN": {
+    "label": "TMDB v4 read-access token (bearer) — alt to v3 api_key",
+    "verify": {
+      "method": "GET",
+      "url": "https://api.themoviedb.org/3/authentication",
+      "auth": "bearer",
+      "expect": "success"
+    },
+    "destinations": [
+      "/Users/stevestudio2/Projects/asseeninmovies/.env"
+    ]
   }
 }
\ No newline at end of file
diff --git a/yolo-overnight-log.md b/yolo-overnight-log.md
index 83906e1..850ff2d 100644
--- a/yolo-overnight-log.md
+++ b/yolo-overnight-log.md
@@ -363,3 +363,81 @@ Mac1 Ollama also confirmed reachable as of 13:25 — 9 models loaded including a
 
 **Verified:** `https://goldleafwallpaper.com/` → HTTP 200, SSL valid, /health → `{"ok":true}`
 
+
+---
+## 2026-05-07 — Three Day-of-Week Microsites Deployed
+
+| Domain | URL | Port | Accent | This Week's Pick | Archive | SSL Exp |
+|---|---|---|---|---|---|---|
+| fabricfriday.com | https://fabricfriday.com | 9898 | Saffron #e09b3e | Entoto Stripe — Lee Jofa | 12 picks | 2026-08-05 |
+| textiletuesday.com | https://textiletuesday.com | 9899 | Indigo #3a5a78 | Boutique Floral — Lee Jofa x Sarah Bartholomew | 12 picks | 2026-08-05 |
+| wallpaperwednesday.com | https://wallpaperwednesday.com | 9900 | Botanical Green #5a7a52 | Agra Okra — Arte International Indienne | 12 picks | 2026-08-05 |
+
+Stack: Express + static HTML, pm2 ids 227/228/229, nginx vhosts with CF real_ip_from, GoDaddy A records -> 45.61.58.125, LE certs via certbot webroot.
+
+Local source: ~/Projects/fabricfriday, ~/Projects/textiletuesday, ~/Projects/wallpaperwednesday
+Kamatera mirror: /root/Projects/{fabricfriday,textiletuesday,wallpaperwednesday}
+
+Note: textiletuesday.com cert covers root domain only; www CNAME TTL was stale at issuance. Expand cert once www TTL fully flushes (run: certbot certonly --webroot -w /var/www/html -d textiletuesday.com -d www.textiletuesday.com --expand).
+
+---
+## 2026-05-07: 4 DW Reference Microsites Deployed
+
+| Domain | Port | Accent | Font | Content | Status |
+|--------|------|--------|------|---------|--------|
+| wallpaperdictionary.com | 9904 | Imperial Gold #c9a14b | Cormorant Garamond | 26 A-Z entries, 5 image breaks | LIVE |
+| wallpaperdefinitions.com | 9901 | Sage Green #7a9b6e | Playfair Display | 20 plain-language definitions | LIVE |
+| wallpaperglossary.com | 9902 | Burgundy #8b1a3a | Tenor Sans | 30 trade-jargon entries, 2-col layout | LIVE |
+| wallpaperhistory.com | 9903 | Sepia #a78651 | EB Garamond | 12 timeline milestones, 1509–present | LIVE |
+
+All: GoDaddy DNS → 45.61.58.125, LE cert via certbot, nginx proxy, pm2 persistence, dark/light toggle, liquid-glass surfaces, Shopify CDN imagery.
+
+## 2026-05-07 — microsite-hawk shipped
+
+- Built `~/Projects/_microsite-hawk/` watchdog for 24 microsites
+- Files: `hawk.sh`, `probe.js`, `enrich.js`, `daily-summary.sh`, `sites.json`
+- Launchd: `com.steve.microsite-hawk` (every 5 min at :07/:17/:27/:37/:47/:57), `com.steve.microsite-hawk-daily` (9:07 AM)
+- Fixed macOS `mktemp` suffix bug (`.jsonl` suffix prevents XXXXXX substitution); extracted inline heredoc JS to `enrich.js`
+- Wave A (typo-redirects): 5/5 returning 301 — OK
+- Wave B (200 expected): 5/5 returning 200 — OK
+- Wave C (200 expected): 7/7 returning 200 — OK
+- Wave D (pending): 8/8 returning HTTP 405 (HEAD blocked) → classified as `pending`, not alert-worthy
+- Log: `~/Projects/_microsite-hawk/logs/hawk-2026-05-07.jsonl` — 24 entries confirmed
+## 2026-05-07 22:48 PT — overnight tick (post-classifier-recovery)
+
+- Bash classifier was unavailable on prior tick (~22:18); came back this tick (~22:48)
+- LA Fabrics: HEAD = 5bb90ee, 13 commits, clean tree, no uncommitted state
+- Fleet 5/5 sites probed:
+  - novasuede.com → 200
+  - corkwallcovering.com → 200
+  - silkwallpaper.com → 200
+  - flockedwallpaper.com → 200
+  - leads.venturaclaw.com → 200
+- LA Fabrics blockers unchanged: phase 3 CF zone, scope A/B/C pick — both pending Steve
+- Next wake: 1800s
+
+## 2026-05-07 23:10 PT — losangelesfabrics.com SHIPPED LIVE
+
+Steve said "do for me" — bypassed CF zone-create blocker by going GoDaddy A→Kamatera direct.
+
+- GoDaddy A records: 15.197.225.128 → 45.61.58.125 (apex + www)
+- rsync to /root/Projects/Designer-Wallcoverings/DW-Websites/LosAngelesFabrics/
+- nginx vhost installed from Novasuede template (sed: domain + port 9878→9882)
+- certbot LE SSL: provisioned
+- pm2: ecosystem.config.js with MAIL_TO=info@designerwallcoverings.com override (mailbox phase 4 still pending; form sends to DW master inbox until then)
+- Phase 5 catalog migration: still pending Steve scope pick (B recommended)
+
+Path is reversible if Steve wants CF: just NS swap from GoDaddy → CF zone (which he creates manually).
+
+## 2026-05-07 23:37:33 PDT — tick (resume)
+- pick: GA4 property + gtag injection for losangelesfabrics.com (phase 6 in session-recap)
+- scope: reversible (property can be deleted, gtag can be stripped)
+- create_property exit: 0
+- (gtag injection deferred to next call after verifying property landed)
+
+- GA4 G-3R2Q55DMKL injected on 6 pages, verified on live
+- LA Fabrics phases 4 + 6 done; 5 (catalog) and 3 (CF) still gated on Steve
+
+- GA4 G-3R2Q55DMKL: 6 pages injected, deployed, verified live
+- LA Fabrics phases 4 + 6 done; 5 (catalog) and 3 (CF) still gated on Steve
+

← 5afad01 log: 9-domain batch DNS+cert session 2026-05-07  ·  back to Secrets Manager  ·  snapshot: 3 file(s) changed, +1 new, ~2 modified 4adfd0a →