← back to Secrets Manager
routes: add NPH (Mac2 + Kamatera) to STRIPE_SECRET_KEY + STRIPE_PUBLISHABLE_KEY fan-out
e14bedea1439f7fdd5fc79cf1b16ba7eb9afd30a · 2026-05-06 14:32:16 -0700 · SteveStudio2
NPH joins site-factory, lawyer-directory, professional-directory, and the 3
home-history sites on the same live Stripe account fan-out. Marketplace differentiation
remains via application_fee_amount + Stripe Connect destination accounts, not
account-level isolation. Sync ran clean: 122 destination entries written.
(Includes accumulated additions to routes since baseline 05d62f1 — Brave, MOONSHOT,
CF, multiple Stripe variants, Vercel, Purelymail, GoDaddy, Browserbase, Anthropic,
OpenAI, Gemini, Shopify, Resend, restricted-key, DPLA, Gemini-Ralph, ElevenLabs,
Google-Maps, LinkedIn x2, NPH-Google-OAuth x2, GEORGE_AUTH — all already in master
and routed through prior add invocations; this is just the catchup commit.)
Files touched
Diff
commit e14bedea1439f7fdd5fc79cf1b16ba7eb9afd30a
Author: SteveStudio2 <stevestudio2@SteveStacStudio.lan>
Date: Wed May 6 14:32:16 2026 -0700
routes: add NPH (Mac2 + Kamatera) to STRIPE_SECRET_KEY + STRIPE_PUBLISHABLE_KEY fan-out
NPH joins site-factory, lawyer-directory, professional-directory, and the 3
home-history sites on the same live Stripe account fan-out. Marketplace differentiation
remains via application_fee_amount + Stripe Connect destination accounts, not
account-level isolation. Sync ran clean: 122 destination entries written.
(Includes accumulated additions to routes since baseline 05d62f1 — Brave, MOONSHOT,
CF, multiple Stripe variants, Vercel, Purelymail, GoDaddy, Browserbase, Anthropic,
OpenAI, Gemini, Shopify, Resend, restricted-key, DPLA, Gemini-Ralph, ElevenLabs,
Google-Maps, LinkedIn x2, NPH-Google-OAuth x2, GEORGE_AUTH — all already in master
and routed through prior add invocations; this is just the catchup commit.)
---
routes.json | 269 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-
1 file changed, 266 insertions(+), 3 deletions(-)
diff --git a/routes.json b/routes.json
index 21a68a3..64ca0e7 100644
--- a/routes.json
+++ b/routes.json
@@ -1,6 +1,47 @@
{
"_comment": "Per-secret routing table. Each entry: master + extra destinations. Master is implicit at ~/Projects/secrets-manager/.env + ~/Desktop/site-factory.env.",
"services": {
+ "GOOGLE_PLACES_API_KEY": {
+ "label": "Google Places API Key",
+ "verify": {
+ "method": "GET",
+ "url": "https://maps.googleapis.com/maps/api/place/findplacefromtext/json?input=Tito%27s+Tacos+Culver+City&inputtype=textquery&fields=place_id&key=__VALUE__",
+ "auth": "querystring"
+ },
+ "destinations": [
+ {
+ "type": "project",
+ "path": "~/Projects/restaurant-directory/.env"
+ },
+ {
+ "type": "project",
+ "path": "~/Projects/professional-directory/.env"
+ },
+ {
+ "type": "project",
+ "path": "~/Projects/animals/.env"
+ },
+ {
+ "type": "project",
+ "path": "~/Projects/lawyer-directory-builder/.env"
+ }
+ ]
+ },
+ "BRAVE_SEARCH_API_KEY": {
+ "label": "Brave Search API (Web)",
+ "verify": {
+ "method": "GET",
+ "url": "https://api.search.brave.com/res/v1/web/search?q=test&count=1",
+ "auth": "header",
+ "headerName": "X-Subscription-Token"
+ },
+ "destinations": [
+ {
+ "type": "project",
+ "path": "~/Projects/_ventura-recon/.env"
+ }
+ ]
+ },
"MOONSHOT_API_KEY": {
"label": "Moonshot AI / Kimi K2 API Key",
"verify": {
@@ -72,6 +113,16 @@
{
"type": "project",
"path": "~/Projects/professional-directory/.env"
+ },
+ {
+ "type": "project",
+ "path": "~/Projects/NationalPaperHangers/.env"
+ },
+ {
+ "type": "project",
+ "host": "45.61.58.125",
+ "user": "root",
+ "path": "/root/Projects/NationalPaperHangers/.env"
}
]
},
@@ -97,6 +148,16 @@
{
"type": "project",
"path": "~/Projects/professional-directory/.env"
+ },
+ {
+ "type": "project",
+ "path": "~/Projects/NationalPaperHangers/.env"
+ },
+ {
+ "type": "project",
+ "host": "45.61.58.125",
+ "user": "root",
+ "path": "/root/Projects/NationalPaperHangers/.env"
}
]
},
@@ -157,14 +218,30 @@
"label": "PurelyMail API Token",
"verify": {
"method": "POST",
- "url": "https://purelymail.com/api/v0/checkAccount",
- "auth": "bearer",
- "body": "{}"
+ "url": "https://purelymail.com/api/v0/listDomains",
+ "auth": "header",
+ "headerName": "Purelymail-Api-Token",
+ "body": "{}",
+ "bodyMustContain": "^\\s*\\{\\s*\"type\"\\s*:\\s*\"success\"",
+ "bodyMustNotContain": "\"type\"\\s*:\\s*\"error\""
},
"destinations": [
{
"type": "project",
"path": "~/Projects/site-factory/.env"
+ },
+ {
+ "type": "project",
+ "path": "~/Projects/ventura-corridor/.env"
+ },
+ {
+ "type": "project",
+ "path": "~/Projects/purelymail-mcp/.env"
+ },
+ {
+ "type": "mcp",
+ "server": "purelymail",
+ "key": "PURELYMAIL_API_TOKEN"
}
]
},
@@ -427,6 +504,188 @@
"path": "~/Projects/jill-website/.env"
}
]
+ },
+ "LINKEDIN_CLIENT_ID": {
+ "label": "LinkedIn OAuth Client ID — \"For Claude - 5-6-26\" app, bound to Designer Wallcoverings Page",
+ "_note": "No verify endpoint — LinkedIn requires the ID+SECRET pair to validate, and the CLI verifies one key at a time. Manual probe via POST /oauth/v2/accessToken with a fake code expects 'invalid_request: authorization code not found' = creds OK.",
+ "destinations": [
+ {
+ "type": "project",
+ "path": "~/Projects/NationalPaperHangers/.env"
+ },
+ {
+ "type": "remote",
+ "host": "root@45.61.58.125",
+ "path": "/root/Projects/NationalPaperHangers/.env"
+ }
+ ]
+ },
+ "LINKEDIN_CLIENT_SECRET": {
+ "label": "LinkedIn OAuth Client Secret — \"For Claude - 5-6-26\" app, bound to Designer Wallcoverings Page",
+ "destinations": [
+ {
+ "type": "project",
+ "path": "~/Projects/NationalPaperHangers/.env"
+ },
+ {
+ "type": "remote",
+ "host": "root@45.61.58.125",
+ "path": "/root/Projects/NationalPaperHangers/.env"
+ }
+ ]
+ },
+ "NPH_GOOGLE_OAUTH_CLIENT_ID": {
+ "label": "Google OAuth Client ID — buyer sign-in on National Paper Hangers",
+ "destinations": [
+ {
+ "type": "project",
+ "path": "~/Projects/NationalPaperHangers/.env"
+ },
+ {
+ "type": "remote",
+ "host": "root@45.61.58.125",
+ "path": "/root/Projects/NationalPaperHangers/.env"
+ }
+ ]
+ },
+ "NPH_GOOGLE_OAUTH_CLIENT_SECRET": {
+ "label": "Google OAuth Client Secret — buyer sign-in on National Paper Hangers",
+ "destinations": [
+ {
+ "type": "project",
+ "path": "~/Projects/NationalPaperHangers/.env"
+ },
+ {
+ "type": "remote",
+ "host": "root@45.61.58.125",
+ "path": "/root/Projects/NationalPaperHangers/.env"
+ }
+ ]
+ },
+ "GEORGE_AUTH": {
+ "label": "George Gmail Basic Auth (DW microsite leads)",
+ "destinations": [
+ {
+ "type": "project",
+ "path": "~/Projects/1900swallpaper/.env"
+ },
+ {
+ "type": "project",
+ "path": "~/Projects/1920swallpaper/.env"
+ },
+ {
+ "type": "project",
+ "path": "~/Projects/1950swallpaper/.env"
+ },
+ {
+ "type": "project",
+ "path": "~/Projects/agedwallpaper/.env"
+ },
+ {
+ "type": "project",
+ "path": "~/Projects/apartmentwallpaper/.env"
+ },
+ {
+ "type": "project",
+ "path": "~/Projects/architecturalwallcoverings/.env"
+ },
+ {
+ "type": "project",
+ "path": "~/Projects/blockprintedwallpaper/.env"
+ },
+ {
+ "type": "project",
+ "path": "~/Projects/embroideredwallpaper/.env"
+ },
+ {
+ "type": "project",
+ "path": "~/Projects/glitterwalls/.env"
+ },
+ {
+ "type": "project",
+ "path": "~/Projects/greenwallcoverings/.env"
+ },
+ {
+ "type": "project",
+ "path": "~/Projects/handcraftedwallpaper/.env"
+ },
+ {
+ "type": "project",
+ "path": "~/Projects/madagascarwallpaper/.env"
+ },
+ {
+ "type": "project",
+ "path": "~/Projects/micawallpaper/.env"
+ },
+ {
+ "type": "project",
+ "path": "~/Projects/museumwallpaper/.env"
+ },
+ {
+ "type": "project",
+ "path": "~/Projects/mylarwallpaper/.env"
+ },
+ {
+ "type": "project",
+ "path": "~/Projects/naturalwallcoverings/.env"
+ },
+ {
+ "type": "project",
+ "path": "~/Projects/pastelwallpaper/.env"
+ },
+ {
+ "type": "project",
+ "path": "~/Projects/raffiawalls/.env"
+ },
+ {
+ "type": "project",
+ "path": "~/Projects/recycledwallpaper/.env"
+ },
+ {
+ "type": "project",
+ "path": "~/Projects/restorationwallpaper/.env"
+ },
+ {
+ "type": "project",
+ "path": "~/Projects/retrowalls/.env"
+ },
+ {
+ "type": "project",
+ "path": "~/Projects/saloonwallpaper/.env"
+ },
+ {
+ "type": "project",
+ "path": "~/Projects/screenprintedwallpaper/.env"
+ },
+ {
+ "type": "project",
+ "path": "~/Projects/selfadhesivewallpaper/.env"
+ },
+ {
+ "type": "project",
+ "path": "~/Projects/silkwallcoverings/.env"
+ },
+ {
+ "type": "project",
+ "path": "~/Projects/silkwallpaper/.env"
+ },
+ {
+ "type": "project",
+ "path": "~/Projects/stringwallpaper/.env"
+ },
+ {
+ "type": "project",
+ "path": "~/Projects/suedewallpaper/.env"
+ },
+ {
+ "type": "project",
+ "path": "~/Projects/textilewallpaper/.env"
+ },
+ {
+ "type": "project",
+ "path": "~/Projects/vinylwallpaper/.env"
+ }
+ ]
}
},
"leak_patterns": [
@@ -434,6 +693,10 @@
"name": "stripe-live-secret",
"regex": "sk_live_[A-Za-z0-9]{20,}"
},
+ {
+ "name": "purelymail-token",
+ "regex": "PURELYMAIL_API_TOKEN\\s*=\\s*[A-Za-z0-9_-]{20,}"
+ },
{
"name": "stripe-test-secret",
"regex": "sk_test_[A-Za-z0-9]{20,}"
← 05d62f1 [overnight] pre-debate baseline
·
back to Secrets Manager
·
fix: envEscape() so #-containing values keep quotes through f2bf483 →