@walkeros/server-transformer-fingerprint
v4.6.0
Published
Fingerprint transformer for walkerOS server - hash configurable fields for session continuity
Maintainers
Readme
@walkeros/server-transformer-fingerprint
Server-side user identification for walkerOS without cookies. Hashes configurable request fields into a deterministic identifier and stores it on the event. No cookies, no PII stored: the same inputs always produce the same hash, which gives session continuity and cross-domain stitching without a client-side ID.
Documentation • NPM Package • Source Code
Installation
npm install @walkeros/server-transformer-fingerprintQuick start
import { startFlow } from '@walkeros/collector';
import { transformerFingerprint } from '@walkeros/server-transformer-fingerprint';
await startFlow({
transformers: {
fingerprint: {
code: transformerFingerprint,
config: {
settings: {
fields: ['ingest.ip', 'ingest.userAgent'],
output: 'user.hash',
length: 16,
},
},
},
},
});The event then carries the hash at the configured output path:
{ "name": "page view", "user": { "hash": "158f99cc06e33fd6" } }Fields resolve from { event, ingest } using walkerOS mapping. Strings use dot
notation, and function values compute dynamically. A missing field is treated as
an empty string, and the transformer never throws.
Daily rotation
Without rotation the same IP and user agent produce the same hash indefinitely. Add a date field to reset it each day, which limits cross-day tracking while keeping session continuity within a day:
settings: {
fields: [
'ingest.ip',
'ingest.userAgent',
{ fn: () => new Date().toISOString().slice(0, 10) },
],
output: 'user.hash',
length: 16,
}Documentation
Full configuration, IP anonymization, and examples live in the docs: https://www.walkeros.io/docs/transformers/fingerprint
Contribute
Feel free to contribute by submitting an issue, starting a discussion, or getting in contact.
License
MIT
