@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 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