You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: docs/getting-started.md
+2-38Lines changed: 2 additions & 38 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -306,45 +306,9 @@ const storage = new RedisStorageAdapter({
306
306
307
307
## Privacy and Cookie Consent
308
308
309
-
DeviceRouter collects device capability signals (CPU cores, memory, GPU renderer, viewport, connection type, battery status, user agent) and links them to a session cookie. Depending on your jurisdiction, this has regulatory implications.
309
+
DeviceRouter collects device capability signals and links them to a session cookie. Depending on your jurisdiction (EU, UK, California, Brazil, and others), this has regulatory implications — you may need to obtain user consent before loading the probe script.
310
310
311
-
### Collected signals and fingerprinting
312
-
313
-
The signals DeviceRouter collects overlap with known browser fingerprinting vectors. Regulators evaluate the _capability_ of the data to identify users, not just the stated intent. Even though DeviceRouter uses these signals solely for adaptive rendering, the combination of GPU renderer, hardware concurrency, device memory, viewport, and user agent can narrow down device identity — and regulators treat that as personal data.
314
-
315
-
### EU: GDPR and ePrivacy Directive
316
-
317
-
Two regulations apply independently:
318
-
319
-
-**ePrivacy Directive (Article 5(3))** covers both setting the `device-router-session` cookie _and_ reading device signals from browser APIs. Both count as accessing information stored on terminal equipment. The "strictly necessary" exemption is interpreted narrowly by the EDPB, CNIL, and ICO — it requires that the service _cannot function_ without the data, not that it functions _better_ with it. Adaptive rendering has not been recognized as strictly necessary by any regulator.
320
-
321
-
-**GDPR** applies because the collected signals in aggregate constitute personal data (Recital 30 explicitly references device identifiers and the profiles they can create). You need a lawful basis under Article 6 — consent (Article 6(1)(a)) is the most defensible option.
322
-
323
-
**In practice:** implement a cookie consent mechanism before deploying DeviceRouter in the EU.
324
-
325
-
### UK
326
-
327
-
The UK GDPR and PECR follow the same framework as the EU. The ICO has been particularly vocal about fingerprinting-like techniques — treat the requirements as equivalent.
328
-
329
-
### California (CCPA/CPRA)
330
-
331
-
The collected signals qualify as personal information under CCPA. You must:
332
-
333
-
- Disclose the collection in your privacy notice (notice at collection)
334
-
- Honor access and deletion requests for stored profiles
335
-
- If you never sell or share the data with third parties, the "Do Not Sell" opt-out does not apply, but the data is still subject to consumer rights
336
-
337
-
### Brazil (LGPD)
338
-
339
-
The ANPD treats cookie and fingerprinting data as personal data. Consent must be "free, informed and unequivocal." There is no "strictly necessary" carve-out equivalent to the ePrivacy Directive.
340
-
341
-
### Recommendations
342
-
343
-
- Obtain consent before loading the probe script in jurisdictions that require it
344
-
- Include DeviceRouter's signal collection in your privacy policy
345
-
- Set a reasonable TTL — shorter sessions reduce the regulatory surface
346
-
- Use `MemoryStorageAdapter` or configure Redis key expiration so profiles are not retained beyond their useful life
347
-
- Consider omitting high-entropy signals you do not need (e.g., if you only need CPU/memory tiers, you may not need `gpuRenderer` or `battery`)
311
+
For a full signal inventory, fingerprinting risk assessment, cookie details, consent integration examples, and jurisdiction-specific guidance, see the [Privacy Guide](privacy.md).
348
312
349
313
> **Note:** This section is informational guidance, not legal advice. Consult a qualified privacy professional for your specific deployment.
0 commit comments