Tracking issue for milestone v2.2 — Node SDK parity & deception enforcement.
Over the last two weeks @webdecoy/node shipped stealth-browser detection (F1), tripwire rules + honeytokens (F4), and both SDK halves of the clearance loop (WebDecoy/app#128 silent wd_clearance minting, WebDecoy/app#136 clearance forwarding on tripwire violations) — with the WordPress plugin explicitly named as the follow-on surface. Meanwhile the plugin (2.x local-first pivot) has strong bones — PoW challenge, behavioral scoring, WooCommerce carding defense, trusted-proxy IP model, admin UI — but no deterministic deception primitives at all: no tripwires, no honeytokens, no rules engine, no violation reporting, no clearance participation.
This milestone closes that gap, then goes past parity where server-side PHP has structural advantages node middleware doesn't: full-response deception (fake decoy content with canary credentials), WordPress-native traps, and WooCommerce honeytokens.
Task list
Foundation
Deception primitives (parity)
Clearance enforcement loop
Cloud pipeline (parity)
Detection (parity)
Beyond parity (PHP/WP advantages)
Cleanup
Sequencing
#1 → #2 → #3 is the critical path. Then in parallel: #4/#12/#13 build on #3; #7 → #5 completes the enforcement loop with #6 (independent, ship early — it needs only a site key setting + script enqueue); #8 → #9; #10 and #11 anytime after #2/#6 respectively; #14/#15 fit anywhere.
Free vs cloud gating (keep the 2.0 local-first promise)
| Capability |
Free (no key) |
Cloud |
Tripwires, honeytokens, rate limiting, req.* filter rules, deceptive responses, WP traps, stealth detection |
✅ local enforce |
dashboard visibility via #7 |
| Violation reporting (#7) |
— |
API key |
IP enrichment + ip.* filter fields (#8/#9) |
degrade to false |
API key |
| wd_clearance mint (#6) |
— |
site key (publishable) |
| Tripwire → durable fp deny-list (#5) |
— |
site key + edge validator |
Mirrors @webdecoy/node: rules run locally without a key; reporter/enrichment wire up only when a key is present; everything fails open.
Definition of done for the milestone
A WordPress site with the plugin + site key: real browsers silently carry wd_clearance; a scanner fetching /.env gets a believable decoy with canary credentials and its device fingerprint is durably denied within seconds; the whole event stream lands in the dashboard as Detections. Expression rules behave identically to @webdecoy/node on the shared test vectors.
Tracking issue for milestone v2.2 — Node SDK parity & deception enforcement.
Over the last two weeks
@webdecoy/nodeshipped stealth-browser detection (F1), tripwire rules + honeytokens (F4), and both SDK halves of the clearance loop (WebDecoy/app#128 silentwd_clearanceminting, WebDecoy/app#136 clearance forwarding on tripwire violations) — with the WordPress plugin explicitly named as the follow-on surface. Meanwhile the plugin (2.x local-first pivot) has strong bones — PoW challenge, behavioral scoring, WooCommerce carding defense, trusted-proxy IP model, admin UI — but no deterministic deception primitives at all: no tripwires, no honeytokens, no rules engine, no violation reporting, no clearance participation.This milestone closes that gap, then goes past parity where server-side PHP has structural advantages node middleware doesn't: full-response deception (fake decoy content with canary credentials), WordPress-native traps, and WooCommerce honeytokens.
Task list
Foundation
Deception primitives (parity)
Clearance enforcement loop
Cloud pipeline (parity)
Detection (parity)
Beyond parity (PHP/WP advantages)
Cleanup
Sequencing
#1 → #2 → #3is the critical path. Then in parallel:#4/#12/#13build on #3;#7 → #5completes the enforcement loop with#6(independent, ship early — it needs only a site key setting + script enqueue);#8 → #9;#10and#11anytime after #2/#6 respectively;#14/#15fit anywhere.Free vs cloud gating (keep the 2.0 local-first promise)
req.*filter rules, deceptive responses, WP traps, stealth detectionip.*filter fields (#8/#9)Mirrors
@webdecoy/node: rules run locally without a key; reporter/enrichment wire up only when a key is present; everything fails open.Definition of done for the milestone
A WordPress site with the plugin + site key: real browsers silently carry
wd_clearance; a scanner fetching/.envgets a believable decoy with canary credentials and its device fingerprint is durably denied within seconds; the whole event stream lands in the dashboard as Detections. Expression rules behave identically to@webdecoy/nodeon the shared test vectors.