[object Object]

← back to Handcraftedwallpaper

wire api-vendor-redact middleware — mount first so all /api/* responses get vendor stripped + ?vendor= query dropped

5aa683ac308bbcbd5c9f66c7cd3383f703765e7b · 2026-05-25 21:06:20 -0700 · Steve Abrams

Files touched

Diff

commit 5aa683ac308bbcbd5c9f66c7cd3383f703765e7b
Author: Steve Abrams <steve@designerwallcoverings.com>
Date:   Mon May 25 21:06:20 2026 -0700

    wire api-vendor-redact middleware — mount first so all /api/* responses get vendor stripped + ?vendor= query dropped
---
 server.js | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/server.js b/server.js
index 3f8ed8c..a396597 100644
--- a/server.js
+++ b/server.js
@@ -136,6 +136,12 @@ function sortProducts(list, mode) {
 }
 
 
+// VENDOR REDACTION — mounted FIRST so it wraps all /api/* responses (strips
+// `vendor`, drops `vendors` facet map, kills `?vendor=` query). Defense-in-depth
+// for Steve's standing rule "DW vendor names NEVER in customer-facing UI".
+try { app.use(require('../_shared/api-vendor-redact')); }
+catch (e) { console.error(`[${__SITE}] api-vendor-redact unavailable (${e.message}) — vendor names may leak via /api/*`); }
+
 app.use(express.json({ limit: "256kb" }));
 // Site config — prefer _shared/site-config (canonical) but fall back to an
 // inline minimal loader so this server.js is self-contained on Kamatera.

← fab0ab6 pull-from-shopify: use shared classifier with rails primary,  ·  back to Handcraftedwallpaper  ·  add 404-guard: JSON for /api/*, index.html fallback for ever 2646f8f →