@walkeros/server-destination-file 4.1.0-next-1778668930820 → 4.1.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/CHANGELOG.md ADDED
@@ -0,0 +1,127 @@
1
+ # @walkeros/server-destination-file
2
+
3
+ ## 4.1.0
4
+
5
+ ### Patch Changes
6
+
7
+ - Updated dependencies [e155ff8]
8
+ - Updated dependencies [e800974]
9
+ - Updated dependencies [e155ff8]
10
+ - Updated dependencies [1a8f2d7]
11
+ - Updated dependencies [1a8f2d7]
12
+ - Updated dependencies [b276173]
13
+ - Updated dependencies [dd9f5ad]
14
+ - Updated dependencies [c60ef35]
15
+ - Updated dependencies [adeebea]
16
+ - Updated dependencies [13aaeaa]
17
+ - Updated dependencies [e800974]
18
+ - Updated dependencies [adeebea]
19
+ - Updated dependencies [e800974]
20
+ - Updated dependencies [e800974]
21
+ - Updated dependencies [058f7ed]
22
+ - Updated dependencies [28a8ac2]
23
+ - Updated dependencies [fd6076e]
24
+ - @walkeros/core@4.1.0
25
+ - @walkeros/server-core@4.1.0
26
+
27
+ ## 4.0.2
28
+
29
+ ### Patch Changes
30
+
31
+ - Updated dependencies [a6a0ea7]
32
+ - @walkeros/core@4.0.2
33
+ - @walkeros/server-core@4.0.2
34
+
35
+ ## 4.0.1
36
+
37
+ ### Patch Changes
38
+
39
+ - Updated dependencies [381dfe7]
40
+ - Updated dependencies [1524275]
41
+ - Updated dependencies [03d7055]
42
+ - @walkeros/core@4.0.1
43
+ - @walkeros/server-core@4.0.1
44
+
45
+ ## 4.0.0
46
+
47
+ ### Major Changes
48
+
49
+ - 93ea9c4: Event model v4: breaking changes to the `Event`, `Source`, and
50
+ `Entity` shapes.
51
+ - `event.id` is now a W3C span_id (16 lowercase hex chars), generated by the
52
+ collector. Reference: W3C Trace Context (W3C Recommendation, January 2020).
53
+ - `event.version`, `event.group`, `event.count` are removed.
54
+ - `source.type` is now the source kind (e.g. `browser`, `gtag`, `mcp`, `cli`).
55
+ New `source.platform` holds the runtime (`web` | `server` | `app` | ...).
56
+ - `source.id` and `source.previous_id` are removed.
57
+ - Browser source now sets `source.url` and `source.referrer`.
58
+ - MCP source sets `source.tool` per emission. CLI source sets
59
+ `source.command`.
60
+ - `Entity.nested` and `Entity.context` are now optional. Root `event.nested`
61
+ and `event.context` remain required.
62
+ - Each source self-registers via TypeScript module augmentation of `SourceMap`
63
+ in `@walkeros/core`.
64
+ - App-side coordination (`/workspaces/developer/app`) is a follow-up plan, not
65
+ part of this release. Telemetry from v4 CLI/MCP will not validate against
66
+ the existing app schema until that follow-up ships.
67
+ - `Mapping.Rule.skip` is renamed to `Mapping.Rule.silent`. Customer flow.json
68
+ configs using `skip: true` in mapping rules must rename to `silent: true`.
69
+ Hard cut: no legacy alias, the field is gone.
70
+
71
+ ### Patch Changes
72
+
73
+ - Updated dependencies [93ea9c4]
74
+ - Updated dependencies [465775c]
75
+ - Updated dependencies [942a7fe]
76
+ - Updated dependencies [cfc7469]
77
+ - Updated dependencies [8e06b1f]
78
+ - Updated dependencies [3d50dd6]
79
+ - Updated dependencies [1ef33d9]
80
+ - @walkeros/core@4.0.0
81
+ - @walkeros/server-core@4.0.0
82
+
83
+ ## 3.4.2
84
+
85
+ ### Patch Changes
86
+
87
+ - @walkeros/core@3.4.2
88
+ - @walkeros/server-core@3.4.2
89
+
90
+ ## 3.4.1
91
+
92
+ ### Patch Changes
93
+
94
+ - Updated dependencies [12adf24]
95
+ - Updated dependencies [75aa26b]
96
+ - @walkeros/core@3.4.1
97
+ - @walkeros/server-core@3.4.1
98
+
99
+ ## 3.4.0
100
+
101
+ ### Minor Changes
102
+
103
+ - 74940cc: Add `@walkeros/server-destination-file`: local filesystem sink for
104
+ walkerOS server flows. Appends events to a file as JSONL (default), TSV, or
105
+ CSV with per-event filename resolution via the standard `Mapping.Value` DSL
106
+ (tenant sharding via `key`, daily rotation via `$code:` in `fn`). Opens one
107
+ `WriteStream` per resolved filename and keeps it open until `destroy()`. No
108
+ third-party SDK — uses `node:fs` built-ins.
109
+ - 724f97e: Migrate every step example in every walkerOS package to the
110
+ standardized `[callable, ...args][]` shape introduced in `@walkeros/core`.
111
+ Every step example's `out` is now an array of effect tuples whose first
112
+ element is the callable's public SDK name (`'gtag'`, `'analytics.track'`,
113
+ `'fbq'`, `'dataLayer.push'`, `'sendServer'`, `'fetch'`, `'trackClient.track'`,
114
+ `'amplitude.track'`, `'fs.writeFile'`, `'producer.send'`, `'client.xadd'`,
115
+ `'client.send'`, `'dataset.table.insert'`, etc.). Source examples use `'elb'`
116
+ as the callable; transformer examples use the reserved `'return'` keyword;
117
+ store examples use store-operation callables (`'get'`, `'set'`). Tests capture
118
+ real calls on each component's spy and assert against `example.out` directly —
119
+ the hardcoded `PACKAGE_CALLS` registry in the app is no longer consulted
120
+ (emptied; plan #3 removes it structurally).
121
+
122
+ ### Patch Changes
123
+
124
+ - Updated dependencies [74940cc]
125
+ - Updated dependencies [525f5d9]
126
+ - @walkeros/core@3.4.0
127
+ - @walkeros/server-core@3.4.0
package/README.md CHANGED
@@ -1,96 +1,52 @@
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
+
1
7
  # @walkeros/server-destination-file
2
8
 
3
- Local file sink for walkerOS server flows. Appends events to a file in JSONL,
4
- TSV, or CSV format. Useful for debug logging, audit trails, replay sources, and
5
- lightweight local persistence without standing up a database.
9
+ Local file sink for walkerOS server flows. Appends events as JSONL, TSV, or CSV
10
+ for debug logging, audit trails, and cold archive.
11
+
12
+ [Documentation](https://www.walkeros.io/docs/destinations/server/file) &bull;
13
+ [NPM Package](https://www.npmjs.com/package/@walkeros/server-destination-file)
14
+ &bull;
15
+ [Source Code](https://github.com/elbwalker/walkerOS/tree/main/packages/server/destinations/file)
6
16
 
7
- ## Install
17
+ ## Installation
8
18
 
9
19
  ```bash
10
20
  npm install @walkeros/server-destination-file
11
21
  ```
12
22
 
13
- ## Usage
14
-
15
- Add to your `flow.json`:
23
+ ## Quick start
16
24
 
17
25
  ```json
18
26
  {
19
- "destinations": {
20
- "log": {
21
- "package": "@walkeros/server-destination-file",
22
- "config": {
23
- "settings": {
24
- "filename": "events.jsonl"
25
- }
27
+ "version": 4,
28
+ "flows": {
29
+ "default": {
30
+ "config": { "platform": "server" },
31
+ "destinations": {
32
+ "file": { "package": "@walkeros/server-destination-file", "config": {} }
26
33
  }
27
34
  }
28
35
  }
29
36
  }
30
37
  ```
31
38
 
32
- Every event gets appended as a JSON line. The file and its parent directory are
33
- created on flow startup.
34
-
35
- ## Settings
36
-
37
- | Field | Type | Default | Notes |
38
- | ---------- | --------------------------- | -------------------- | ----------------------------------------------------------- |
39
- | `filename` | `string \| Mapping.Value` | required | Static path or per-event resolution via the mapping DSL. |
40
- | `format` | `'jsonl' \| 'tsv' \| 'csv'` | `jsonl` | Serialisation format. |
41
- | `fields` | `string[]` | required for tsv/csv | Event paths used as columns. Object cells JSON-stringified. |
42
-
43
- ## Filename templating
44
-
45
- `filename` accepts the standard walkerOS `Mapping.Value` shape.
46
-
47
- ### Tenant sharding
48
-
49
- ```json
50
- { "filename": { "key": "data.tenant" } }
51
- ```
52
-
53
- ### Daily rotation
54
-
55
- ```json
56
- {
57
- "filename": {
58
- "fn": "$code:`events-${new Date(value.timestamp).toISOString().slice(0,10)}.jsonl`"
59
- }
60
- }
61
- ```
62
-
63
- Inside the `$code:` function, `value` is the event being processed.
64
-
65
- ## Formats
66
-
67
- ### JSONL (default)
39
+ ## Documentation
68
40
 
69
- One JSON object per line. Ingest with `jq`, `duckdb`, ClickHouse `JSONEachRow`,
70
- BigQuery external tables, Athena.
71
-
72
- ### TSV / CSV
73
-
74
- Specify `fields: string[]` listing the event paths to extract as columns. Object
75
- values are JSON-stringified into a single cell. RFC 4180 quoting for CSV.
76
-
77
- ```json
78
- {
79
- "filename": "events.csv",
80
- "format": "csv",
81
- "fields": ["timestamp", "name", "data"]
82
- }
83
- ```
41
+ Full configuration, mapping, and examples live in the docs:
42
+ **https://www.walkeros.io/docs/destinations/server/file**
84
43
 
85
- ## Limits
44
+ ## Contribute
86
45
 
87
- - One file handle is opened per resolved filename and kept open until
88
- `destroy()`. Sharding by high-cardinality keys (e.g. `user.session`) can
89
- exhaust OS file descriptors.
90
- - External rotation (e.g. `logrotate`) leaves the cached handle pointing at the
91
- rotated inode. Use the date-token pattern instead.
92
- - No batching. Each event is `stream.write`'d individually.
93
- - Write errors log a warning and drop the event — they never fail the flow.
46
+ Feel free to contribute by submitting an
47
+ [issue](https://github.com/elbwalker/walkerOS/issues), starting a
48
+ [discussion](https://github.com/elbwalker/walkerOS/discussions), or getting in
49
+ [contact](https://calendly.com/elb-alexander/30min).
94
50
 
95
51
  ## License
96
52
 
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "$meta": {
3
3
  "package": "@walkeros/server-destination-file",
4
- "version": "4.1.0-next-1778668930820",
4
+ "version": "4.1.0",
5
5
  "type": "destination",
6
6
  "platform": [
7
7
  "server"
@@ -130,7 +130,7 @@
130
130
  "consent": {
131
131
  "functional": true
132
132
  },
133
- "id": "b1bc797583533f96",
133
+ "id": "217cce8c82b95bef",
134
134
  "trigger": "load",
135
135
  "entity": "page",
136
136
  "action": "view",
@@ -234,7 +234,7 @@
234
234
  "consent": {
235
235
  "functional": true
236
236
  },
237
- "id": "d8c14c93a411d3be",
237
+ "id": "8361a587caab9902",
238
238
  "trigger": "load",
239
239
  "entity": "order",
240
240
  "action": "complete",
@@ -302,7 +302,7 @@
302
302
  "consent": {
303
303
  "functional": true
304
304
  },
305
- "id": "d9010c231239caf6",
305
+ "id": "4b91564b58cde278",
306
306
  "trigger": "load",
307
307
  "entity": "page",
308
308
  "action": "view",
@@ -360,7 +360,7 @@
360
360
  "consent": {
361
361
  "functional": true
362
362
  },
363
- "id": "dd6b6b13807bc3f8",
363
+ "id": "f191d58dced5d14b",
364
364
  "trigger": "test",
365
365
  "entity": "custom",
366
366
  "action": "event",
@@ -419,7 +419,7 @@
419
419
  "consent": {
420
420
  "functional": true
421
421
  },
422
- "id": "4496a2499d76b1c1",
422
+ "id": "f994461dabb3c9ad",
423
423
  "trigger": "load",
424
424
  "entity": "page",
425
425
  "action": "view",
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@walkeros/server-destination-file",
3
3
  "description": "Local file sink for walkerOS server flows (JSONL, TSV, CSV)",
4
- "version": "4.1.0-next-1778668930820",
4
+ "version": "4.1.0",
5
5
  "license": "MIT",
6
6
  "exports": {
7
7
  ".": {
@@ -22,7 +22,8 @@
22
22
  }
23
23
  },
24
24
  "files": [
25
- "dist/**"
25
+ "dist/**",
26
+ "CHANGELOG.md"
26
27
  ],
27
28
  "scripts": {
28
29
  "build": "tsup --silent",
@@ -34,11 +35,11 @@
34
35
  "update": "npx npm-check-updates -u && npm update"
35
36
  },
36
37
  "dependencies": {
37
- "@walkeros/core": "4.1.0-next-1778668930820",
38
- "@walkeros/server-core": "4.1.0-next-1778668930820"
38
+ "@walkeros/core": "4.1.0",
39
+ "@walkeros/server-core": "4.1.0"
39
40
  },
40
41
  "devDependencies": {
41
- "@walkeros/collector": "4.1.0-next-1778668930820"
42
+ "@walkeros/collector": "4.1.0"
42
43
  },
43
44
  "repository": {
44
45
  "url": "git+https://github.com/elbwalker/walkerOS.git",