@forzalabs/remora 1.1.15 → 1.2.2

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,113 @@
1
+ # Changelog
2
+
3
+ All notable changes to this project will be documented in this file.
4
+
5
+ The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
6
+
7
+ ## Unreleased
8
+
9
+ ## V 1.2.2 - 2026-04-10
10
+
11
+ ### Added
12
+ - Added field-level consumer validations with support for multiple rules per field and per-rule failure actions: `fail`, `skip`, `warn`, and `set_default`
13
+ - Added dataset-level consumer validations for `unique_fields`, `min_rows`, `max_rows`, `no_duplicates`, and `not_empty`
14
+ - Added `DataValidationEngine` to centralize field and dataset validation logic
15
+ - Added validation result type definitions to the definitions package for shared use across engines and executors
16
+ - Added `warn()` logging support for non-fatal validation outcomes
17
+ - Added canary consumer coverage for field-level and dataset-level validations with passing, warning, skipped, defaulted, and failing scenarios
18
+ - Added `verify:local` to the canary package to build the local CLI and run the canary suite against it instead of the published package
19
+ - Added canary coverage for `sample` and `discover` against gzipped local producer inputs
20
+ - Added compressed CSV and JSONL canary fixtures plus matching producer definitions for gzip-based CLI verification
21
+
22
+ ### Changed
23
+ - Updated consumer field validation configuration from a single flat validation object to an ordered array of validation rules with explicit `onFail` behavior
24
+
25
+ ### Fixed
26
+ - Fixed the consumer JSON schema to support the new field-level and dataset-level validation configuration
27
+ - Fixed AJV strict-mode compatibility for validation `in` and `not_in` rule arrays by replacing union `type` declarations with `oneOf`
28
+ - Fixed CLI `sample` and `discover` commands so they can read producers configured with compressed local files by reusing the existing decompression logic during sampling
29
+ - Fixed conflict in export with unique values and split by max size
30
+
31
+ ## V 1.1.15 - 2026-03-26
32
+
33
+ ### Added
34
+ - Added validation that consumer field keys exist in the referenced producer's dimensions/measures
35
+ - Added validation that every consumer field defines the required `key` property
36
+ - Added validation that `copyFrom` references a field that appears earlier in the consumer's field list
37
+ - Added validation that `distinctOn` keys and `orderBy` reference fields present in the consumer
38
+ - Added validation that join SQL `${P.field}` and `${producer.field}` references point to valid fields
39
+
40
+ ### Fixed
41
+ - Fixed environment variable not exposed to front-end
42
+ - Fixed database endpoint selector
43
+ - Fixed worker image volume usage in a cloud environment
44
+ - Fixed worker-thread execution errors being logged only to the terminal by propagating them back to the orchestrator file logger
45
+ - Fixed `ConsumerExecutor.processRecord` error reporting to log step-specific failures for field resolution, aliasing, transformations, and filter evaluation
46
+
47
+ ## V 1.1.11 - 2026-02-05
48
+
49
+ ### Added
50
+ - Added `startRow` and `startColumn` settings for Excel producers (.xls/.xlsx), allowing users to specify the 1-indexed row and column from which to begin reading data
51
+
52
+ ### Fixed
53
+ - Fixed `MaxListenersExceededWarning` on `WriteStream` during consumer execution by replacing shared stream merge with per-file append pipelines
54
+ - Fixed CLI `run` command always exiting with code 1 even on successful runs
55
+ - Fixed incomplete file logging caused by `process.exit()` terminating before winston could flush buffered writes; added `logger.flush()` to worker threads, orchestrator, and CLI exit paths
56
+ - Added `logger.flush()` before `process.exit()` in all data-processing CLI actions (sample, mock, automap, discover, debug) and worker startup
57
+ - Fixed CLI `discover` command exiting with code 1 on success instead of code 0
58
+ - Fixed per-worker `WriteStream` in `Executor.ts` never being closed, risking data loss before distinct/distinctOn post-processing passes
59
+ - Fixed `Dataset.ts` stream await pattern where `resolve` was never called in the `finish` handler (5 sites: transformStream, sort batches, k-way merge, append), causing promises to hang indefinitely
60
+ - Fixed `ExecutorWriter.ts` not awaiting intermediate stream flush during file-size-based rotation
61
+ - Fixed `DriverHelper.appendObjectsToUnifiedFile` and `LocalDestinationDriver.transformAndMove` not awaiting stream flush before returning
62
+
63
+ ## V 1.1.9 - 2026-02-04
64
+
65
+ ### Added
66
+ - Added `switch_case` transformation for mapping specific values to other values (similar to a switch/case statement)
67
+ - Added validation to detect multiple consumer fields reading from the same producer dimension (suggests using `copyFrom` instead)
68
+ - Added detailed logging to the executor orchestrator with usage ID tracing throughout the execution lifecycle
69
+
70
+ ### Changed
71
+ - Cleaned up CLI execution error output to show concise messages in console while preserving full stack traces in internal logs
72
+
73
+ ## V 1.1.8 - 2026-02-03
74
+
75
+ ### Added
76
+ - Added `pivot` option to consumers, enabling row-to-column transformation with aggregation (sum, count, avg, min, max)
77
+ - Added `copyFrom` property to consumer fields, allowing a field to be a value copy of another field in the dataset
78
+
79
+ ## V 1.1.7 - 2026-02-02
80
+
81
+ ### Changed
82
+ - Improved the mock engine
83
+ - Improved logging
84
+
85
+ ## V 1.1.6 - 2026-02-02
86
+
87
+ ### Added
88
+ - Added `--limit` option to `remora run` command to process only the first N records
89
+ - Added descriptive error messages for failed field transformations with full stack trace preservation
90
+ - Added file logging with rotation (enabled via `REMORA_DEBUG_MODE=true` in production)
91
+ - Added structured logging across key application areas
92
+
93
+ ### Changed
94
+ - Moved `DEBUG_MODE` from project.json settings to `REMORA_DEBUG_MODE` environment variable
95
+
96
+ ## V 1.1.5 - 2026-02-01
97
+
98
+ ### Added
99
+ - Refactored for monorepository
100
+ - Added output maximum file size definable from consumer
101
+ - Added support for nested subfolders inside remora configuration directories (sources, producers, consumers, schemas)
102
+
103
+ ### Fixed
104
+ - Bug in parsing via GZ file
105
+ - Issues with concurrent requests
106
+
107
+ ### Changed
108
+ - Dockerfile for apps in a monorepo build
109
+ - Package.json to workspaces compliance
110
+ - Refactored internal module structure
111
+ - Removed the _file annotations for environment variables
112
+
113
+ ## V 1.0.18