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.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    epicTracking issue spanning multiple tasks

    Type

    No type

    Projects

    No projects

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions