@walkeros/server-transformer-fingerprint 4.4.0 → 4.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +90 -0
- package/dist/walkerOS.json +1 -1
- package/package.json +5 -5
package/README.md
ADDED
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
<p align="left">
|
|
2
|
+
<a href="https://www.walkeros.io">
|
|
3
|
+
<img alt="walkerOS" title="walkerOS" src="https://www.walkeros.io/img/walkerOS_logo.svg" width="256px"/>
|
|
4
|
+
</a>
|
|
5
|
+
</p>
|
|
6
|
+
|
|
7
|
+
# @walkeros/server-transformer-fingerprint
|
|
8
|
+
|
|
9
|
+
Server-side user identification for walkerOS without cookies. Hashes
|
|
10
|
+
configurable request fields into a deterministic identifier and stores it on the
|
|
11
|
+
event. No cookies, no PII stored: the same inputs always produce the same hash,
|
|
12
|
+
which gives session continuity and cross-domain stitching without a client-side
|
|
13
|
+
ID.
|
|
14
|
+
|
|
15
|
+
[Documentation](https://www.walkeros.io/docs/transformers/fingerprint) •
|
|
16
|
+
[NPM Package](https://www.npmjs.com/package/@walkeros/server-transformer-fingerprint)
|
|
17
|
+
•
|
|
18
|
+
[Source Code](https://github.com/elbwalker/walkerOS/tree/main/packages/server/transformers/fingerprint)
|
|
19
|
+
|
|
20
|
+
## Installation
|
|
21
|
+
|
|
22
|
+
```bash
|
|
23
|
+
npm install @walkeros/server-transformer-fingerprint
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
## Quick start
|
|
27
|
+
|
|
28
|
+
```typescript
|
|
29
|
+
import { startFlow } from '@walkeros/collector';
|
|
30
|
+
import { transformerFingerprint } from '@walkeros/server-transformer-fingerprint';
|
|
31
|
+
|
|
32
|
+
await startFlow({
|
|
33
|
+
transformers: {
|
|
34
|
+
fingerprint: {
|
|
35
|
+
code: transformerFingerprint,
|
|
36
|
+
config: {
|
|
37
|
+
settings: {
|
|
38
|
+
fields: ['ingest.ip', 'ingest.userAgent'],
|
|
39
|
+
output: 'user.hash',
|
|
40
|
+
length: 16,
|
|
41
|
+
},
|
|
42
|
+
},
|
|
43
|
+
},
|
|
44
|
+
},
|
|
45
|
+
});
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
The event then carries the hash at the configured `output` path:
|
|
49
|
+
|
|
50
|
+
```json
|
|
51
|
+
{ "name": "page view", "user": { "hash": "158f99cc06e33fd6" } }
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
Fields resolve from `{ event, ingest }` using walkerOS mapping. Strings use dot
|
|
55
|
+
notation, and function values compute dynamically. A missing field is treated as
|
|
56
|
+
an empty string, and the transformer never throws.
|
|
57
|
+
|
|
58
|
+
## Daily rotation
|
|
59
|
+
|
|
60
|
+
Without rotation the same IP and user agent produce the same hash indefinitely.
|
|
61
|
+
Add a date field to reset it each day, which limits cross-day tracking while
|
|
62
|
+
keeping session continuity within a day:
|
|
63
|
+
|
|
64
|
+
```typescript
|
|
65
|
+
settings: {
|
|
66
|
+
fields: [
|
|
67
|
+
'ingest.ip',
|
|
68
|
+
'ingest.userAgent',
|
|
69
|
+
{ fn: () => new Date().toISOString().slice(0, 10) },
|
|
70
|
+
],
|
|
71
|
+
output: 'user.hash',
|
|
72
|
+
length: 16,
|
|
73
|
+
}
|
|
74
|
+
```
|
|
75
|
+
|
|
76
|
+
## Documentation
|
|
77
|
+
|
|
78
|
+
Full configuration, IP anonymization, and examples live in the docs:
|
|
79
|
+
**https://www.walkeros.io/docs/transformers/fingerprint**
|
|
80
|
+
|
|
81
|
+
## Contribute
|
|
82
|
+
|
|
83
|
+
Feel free to contribute by submitting an
|
|
84
|
+
[issue](https://github.com/elbwalker/walkerOS/issues), starting a
|
|
85
|
+
[discussion](https://github.com/elbwalker/walkerOS/discussions), or getting in
|
|
86
|
+
[contact](https://calendly.com/elb-alexander/30min).
|
|
87
|
+
|
|
88
|
+
## License
|
|
89
|
+
|
|
90
|
+
MIT
|
package/dist/walkerOS.json
CHANGED
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@walkeros/server-transformer-fingerprint",
|
|
3
3
|
"description": "Fingerprint transformer for walkerOS server - hash configurable fields for session continuity",
|
|
4
|
-
"version": "4.
|
|
4
|
+
"version": "4.5.0",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"main": "./dist/index.js",
|
|
7
7
|
"module": "./dist/index.mjs",
|
|
@@ -27,8 +27,8 @@
|
|
|
27
27
|
"update": "npx npm-check-updates -u && npm update"
|
|
28
28
|
},
|
|
29
29
|
"devDependencies": {
|
|
30
|
-
"@walkeros/core": "4.
|
|
31
|
-
"@walkeros/server-core": "4.
|
|
30
|
+
"@walkeros/core": "4.5.0",
|
|
31
|
+
"@walkeros/server-core": "4.5.0"
|
|
32
32
|
},
|
|
33
33
|
"repository": {
|
|
34
34
|
"url": "git+https://github.com/elbwalker/walkerOS.git",
|
|
@@ -60,7 +60,7 @@
|
|
|
60
60
|
}
|
|
61
61
|
],
|
|
62
62
|
"dependencies": {
|
|
63
|
-
"@walkeros/core": "4.
|
|
64
|
-
"@walkeros/server-core": "4.
|
|
63
|
+
"@walkeros/core": "4.5.0",
|
|
64
|
+
"@walkeros/server-core": "4.5.0"
|
|
65
65
|
}
|
|
66
66
|
}
|