@forzalabs/remora 1.2.11 → 1.3.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 +27 -0
- package/index.js +34377 -14350
- package/json_schemas/consumer-schema.json +744 -296
- package/json_schemas/producer-schema.json +36 -17
- package/json_schemas/source-schema.json +83 -20
- package/package.json +1 -1
- package/workers/ExecutorWorker.js +33949 -13948
package/CHANGELOG.md
CHANGED
|
@@ -6,6 +6,33 @@ The format is based on Keep a Changelog, and this project adheres to Semantic Ve
|
|
|
6
6
|
|
|
7
7
|
## Unreleased
|
|
8
8
|
|
|
9
|
+
## V 1.3.0 - 2026-07-07
|
|
10
|
+
|
|
11
|
+
### Added
|
|
12
|
+
- Added the `bit_extract` field transformation to extract a single bit from an integer bitmask (e.g. decoding a NAPS LOB byte): `{ "bit_extract": { "position": 0, "as_boolean": false } }`. `position` is a 0-based index from the least-significant bit (bounded to `[0, 52]`); returns `1`/`0`, or `true`/`false` when `as_boolean` is set. Uses arithmetic rather than JS bitwise operators so masks wider than 31 bits stay correct
|
|
13
|
+
- Added the `date_format` field transformation to reformat a date string from an input format to an output format (dayjs tokens), e.g. `{ "date_format": { "input_fmt": "DDMMYYYY", "output_fmt": "YYYY-MM-DD" } }` — distinct from `cast`, which only parses or formats with a single token set. Backed by a new `TypeCaster.reformatDate` helper
|
|
14
|
+
- Added the `code_lookup` field transformation that maps a code to a value using the output of another consumer as the lookup table: `{ "code_lookup": { "consumer": "c_lookup_plans", "key": "plan_code", "value": "plan_tier", "default": "Unknown Tier" } }`. When the code is not found and no `default` is set, the field's `onError` policy applies
|
|
15
|
+
- Added `LookupResolver` (executors): before a consumer's workers spawn, it detects `code_lookup` references, executes each referenced consumer through the normal pipeline, captures its output, projects it to a bounded `code -> value` table written under the run's scope, and hydrates it into each worker via a new in-memory `LookupRegistry`. Includes cycle/depth detection (`MAX_LOOKUP_DEPTH`), an in-memory row bound (`MAX_LOOKUP_ROWS`), and per-run caching so a referenced consumer is executed at most once
|
|
16
|
+
- Added canary coverage for the new transformations: `c_canary_new_transforms` (exercising `bit_extract`, `date_format`, and `code_lookup`) driven off a `c_lookup_plans` lookup consumer and a `p_lookup_plans` producer
|
|
17
|
+
|
|
18
|
+
### Changed
|
|
19
|
+
- Extended the consumer JSON schema `singleTransformation` definition with `bit_extract`, `date_format`, and `code_lookup` entries
|
|
20
|
+
|
|
21
|
+
## V 1.2.12 - 2026-07-02
|
|
22
|
+
|
|
23
|
+
### Added
|
|
24
|
+
- Added IAM-role based authentication for AWS sources (S3, Redshift, SQS) via a shared `resolveAwsCredentials` resolver: `method: "implicit"` (or `"iam"`) uses the AWS SDK default credential chain — including EC2/ECS/EKS instance/task roles — and `method: "arn"` assumes an IAM role via STS with auto-refreshing temporary credentials, in addition to the existing static access keys
|
|
25
|
+
- Added `roleArn`, `roleSessionName`, and `externalId` authentication fields to `ISourceAuthentication` and the source JSON schema for STS AssumeRole configuration
|
|
26
|
+
- Added `method`, `roleArn`, `roleSessionName`, and `externalId` metadata fields to consumer QUEUE trigger configuration so SQS queue polling can also authenticate via IAM roles / STS
|
|
27
|
+
- Added source validation for AWS credential methods: `arn` requires `roleArn`, and `access-secret-key` requires `accessKey` and `secretKey`
|
|
28
|
+
- Added a cross-account `arn` S3 example source to the source JSON schema
|
|
29
|
+
|
|
30
|
+
### Changed
|
|
31
|
+
- Changed the AWS drivers (S3 source/destination, Redshift) and the SQS `QueueManager` to resolve credentials through the shared resolver, so all AWS services handle credentials identically
|
|
32
|
+
|
|
33
|
+
### Fixed
|
|
34
|
+
- Fixed the AWS drivers silently ignoring IAM instance/task roles: S3 and Redshift always built a static-key credentials object (even when keys were empty), which disabled the AWS SDK default credential chain. Credentials are now omitted when no static keys are configured, letting the SDK discover instance/task roles
|
|
35
|
+
|
|
9
36
|
## V 1.2.11 - 2026-06-30
|
|
10
37
|
|
|
11
38
|
### Added
|