The osint_framework_kv namespace ID was truncated to "cdb975e31e"
in the initial commit. Updated to the full 32-character ID confirmed
by the board from the Cloudflare dashboard.
Co-Authored-By: Paperclip <noreply@paperclip.ing>
- src/worker.js: Cloudflare Worker entry point handling POST /api/track
and GET /api/tool-stats, falling through to ASSETS for static files
- wrangler.jsonc: wire main entry point + CLICK_DATA KV binding
(namespace: osint_framework_kv, id: cdb975e31e)
- public/js/arf.js: fire sendBeacon to /api/track on Open Tool click
Privacy: no IPs stored, no cookies, client-generated session_hash only.
Dedup: one counted click per session per tool (1-hour TTL).
Rate limit: 60 req/min per session_hash (2-min TTL key).
Co-Authored-By: Paperclip <noreply@paperclip.ing>