Skip to content

[Epic] Node SDK parity + PHP-native deception (v2.2) #16

Description

@cport1

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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    epicTracking issue spanning multiple tasks

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions