@celigo/api-specs 0.2.158 → 0.2.160

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.
@@ -488,6 +488,10 @@ components:
488
488
  - Items that don't match are completely skipped
489
489
  - No partial processing is performed
490
490
 
491
+ Send the whole object. A rules array sent alone as the `filter` value is not
492
+ stored, and a full update of an export that carries one removes the filter the
493
+ export had, with no error.
494
+
491
495
  **Implementation approaches**
492
496
 
493
497
  There are two distinct filtering mechanisms available:
@@ -638,6 +642,8 @@ components:
638
642
  **Using `extract` to access record fields:**
639
643
  - Retrieves values from the current record being processed
640
644
  - Can access nested properties using dot notation (e.g., `"customer.email"`)
645
+ - Paths are relative to the record itself: `["extract", "record.status"]`
646
+ matches nothing
641
647
  - In a record filter, must be wrapped in a type conversion (`string`, `number`,
642
648
  `boolean` or `epochtime`): a bare `["extract", ...]` operand is refused with 422
643
649
  "Field operation extract must be called by a Type Conversion Operation but was called
@@ -648,9 +654,17 @@ components:
648
654
  - Retrieves values from the integration's configuration settings
649
655
  - Supports different scopes with prefix notation:
650
656
  - `flow.settingName`: Access flow-level settings
651
- - `export.settingName`: Access export-level settings
652
- - `import.settingName`: Access import-level settings
657
+ - `flowGrouping.settingName`: Access the flow group's settings
658
+ - `export.settingName`: Access the export's (or lookup's) own settings
659
+ - `import.settingName`: Access the import's own settings
653
660
  - `integration.settingName`: Access integration-level settings
661
+ - `connection.settingName`, `iClient.settingName`: Access the step's
662
+ connection and iClient settings
663
+ - A scope whose resource has no settings can be absent; a rule that reads
664
+ it matches nothing
665
+ - Must be wrapped in a type conversion like `extract`: a bare
666
+ `["settings", ...]` operand is refused with 422 "Field operation settings
667
+ must be called by a Type Conversion Operation"
654
668
  - Useful for dynamic filtering based on configuration
655
669
 
656
670
  **Field Transformations**
@@ -660,6 +674,24 @@ components:
660
674
  - `"floor"`: Round number down to the nearest integer
661
675
  - `"abs"`: Get absolute value of a number
662
676
 
677
+ **Arithmetic** (number operands)
678
+ - `"add"`, `"subtract"`, `"multiply"`, `"divide"`, `"modulo"`: for example
679
+ `["subtract", ["number", ["extract", "total"]], ["number", ["extract", "discount"]]]`.
680
+ `mod` is not an operator (422 "Invalid operation: mod.").
681
+
682
+ **Dates**
683
+ - `epochtime` reads ISO 8601 strings and epoch-millisecond numbers. An empty
684
+ string, a string that isn't a date, or epoch milliseconds sent as a string
685
+ fail it with "Invalid date. Cannot convert given string or number to date
686
+ time.", followed by `; record=` and the record as JSON: in a run that record fails (`FILTER_EVALUATION_FAILED`, source
687
+ `output_filter` on an export), and `POST /v1/processors/filter` and an
688
+ export preview refuse the whole call with 422. `and` and `or` evaluate
689
+ every operand, so a `notempty` test beside it doesn't prevent the failure.
690
+ A missing or null field doesn't match.
691
+ - `datetime`, `date` and `timestamp` are not type conversions: 422
692
+ "Invalid operation: <name>."
693
+ - `number` reads a missing or empty field as 0.
694
+
663
695
  **Handlebars operands**
664
696
  - An operand can also be a string holding exactly one Handlebars expression, such as
665
697
  `"{{record.status}}"` or `"{{lowercase record.code}}"`, on either side of the
@@ -671,6 +703,12 @@ components:
671
703
  with 422 "invalid datetime format".
672
704
  - A string with text around the expression, or with more than one expression, is
673
705
  compared as a literal.
706
+ - `["number", "{{timestamp \"x\"}}"]` is the current time in epoch milliseconds,
707
+ so `["greaterthanequals", ["epochtime", ["extract", "created"]], ["subtract",
708
+ ["number", "{{timestamp \"x\"}}"], 604800000]]` keeps records created in the
709
+ last 7 days.
710
+ - An unknown helper fails the rule with 422 "Failed to evaluate handlebars
711
+ expression".
674
712
 
675
713
  Choose the type conversion that matches the comparison — `number` for numeric
676
714
  comparisons, `epochtime` for dates, `string` for text. For example:
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@celigo/api-specs",
3
- "version": "0.2.158",
3
+ "version": "0.2.160",
4
4
  "private": false,
5
5
  "description": "Public OpenAPI bundles (dist/) and the celigo-cli lint schema pack (schemas.json).",
6
6
  "keywords": [
package/schemas.json CHANGED
@@ -1,8 +1,8 @@
1
1
  {
2
2
  "provenance": {
3
3
  "repo": "celigo/integrator-api-specs",
4
- "iasCommit": "e641651b",
5
- "generatedAt": "2026-10-21"
4
+ "iasCommit": "2df59293",
5
+ "generatedAt": "2026-10-22"
6
6
  },
7
7
  "roots": {
8
8
  "aiagent": 134,