@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.
package/dist/ai-agent.yml CHANGED
@@ -4589,6 +4589,10 @@ components:
4589
4589
  - Items that don't match are completely skipped
4590
4590
  - No partial processing is performed
4591
4591
 
4592
+ Send the whole object. A rules array sent alone as the `filter` value is not
4593
+ stored, and a full update of an export that carries one removes the filter the
4594
+ export had, with no error.
4595
+
4592
4596
  **Implementation approaches**
4593
4597
 
4594
4598
  There are two distinct filtering mechanisms available:
@@ -4739,6 +4743,8 @@ components:
4739
4743
  **Using `extract` to access record fields:**
4740
4744
  - Retrieves values from the current record being processed
4741
4745
  - Can access nested properties using dot notation (e.g., `"customer.email"`)
4746
+ - Paths are relative to the record itself: `["extract", "record.status"]`
4747
+ matches nothing
4742
4748
  - In a record filter, must be wrapped in a type conversion (`string`, `number`,
4743
4749
  `boolean` or `epochtime`): a bare `["extract", ...]` operand is refused with 422
4744
4750
  "Field operation extract must be called by a Type Conversion Operation but was called
@@ -4749,9 +4755,17 @@ components:
4749
4755
  - Retrieves values from the integration's configuration settings
4750
4756
  - Supports different scopes with prefix notation:
4751
4757
  - `flow.settingName`: Access flow-level settings
4752
- - `export.settingName`: Access export-level settings
4753
- - `import.settingName`: Access import-level settings
4758
+ - `flowGrouping.settingName`: Access the flow group's settings
4759
+ - `export.settingName`: Access the export's (or lookup's) own settings
4760
+ - `import.settingName`: Access the import's own settings
4754
4761
  - `integration.settingName`: Access integration-level settings
4762
+ - `connection.settingName`, `iClient.settingName`: Access the step's
4763
+ connection and iClient settings
4764
+ - A scope whose resource has no settings can be absent; a rule that reads
4765
+ it matches nothing
4766
+ - Must be wrapped in a type conversion like `extract`: a bare
4767
+ `["settings", ...]` operand is refused with 422 "Field operation settings
4768
+ must be called by a Type Conversion Operation"
4755
4769
  - Useful for dynamic filtering based on configuration
4756
4770
 
4757
4771
  **Field Transformations**
@@ -4761,6 +4775,24 @@ components:
4761
4775
  - `"floor"`: Round number down to the nearest integer
4762
4776
  - `"abs"`: Get absolute value of a number
4763
4777
 
4778
+ **Arithmetic** (number operands)
4779
+ - `"add"`, `"subtract"`, `"multiply"`, `"divide"`, `"modulo"`: for example
4780
+ `["subtract", ["number", ["extract", "total"]], ["number", ["extract", "discount"]]]`.
4781
+ `mod` is not an operator (422 "Invalid operation: mod.").
4782
+
4783
+ **Dates**
4784
+ - `epochtime` reads ISO 8601 strings and epoch-millisecond numbers. An empty
4785
+ string, a string that isn't a date, or epoch milliseconds sent as a string
4786
+ fail it with "Invalid date. Cannot convert given string or number to date
4787
+ time.", followed by `; record=` and the record as JSON: in a run that record fails (`FILTER_EVALUATION_FAILED`, source
4788
+ `output_filter` on an export), and `POST /v1/processors/filter` and an
4789
+ export preview refuse the whole call with 422. `and` and `or` evaluate
4790
+ every operand, so a `notempty` test beside it doesn't prevent the failure.
4791
+ A missing or null field doesn't match.
4792
+ - `datetime`, `date` and `timestamp` are not type conversions: 422
4793
+ "Invalid operation: <name>."
4794
+ - `number` reads a missing or empty field as 0.
4795
+
4764
4796
  **Handlebars operands**
4765
4797
  - An operand can also be a string holding exactly one Handlebars expression, such as
4766
4798
  `"{{record.status}}"` or `"{{lowercase record.code}}"`, on either side of the
@@ -4772,6 +4804,12 @@ components:
4772
4804
  with 422 "invalid datetime format".
4773
4805
  - A string with text around the expression, or with more than one expression, is
4774
4806
  compared as a literal.
4807
+ - `["number", "{{timestamp \"x\"}}"]` is the current time in epoch milliseconds,
4808
+ so `["greaterthanequals", ["epochtime", ["extract", "created"]], ["subtract",
4809
+ ["number", "{{timestamp \"x\"}}"], 604800000]]` keeps records created in the
4810
+ last 7 days.
4811
+ - An unknown helper fails the rule with 422 "Failed to evaluate handlebars
4812
+ expression".
4775
4813
 
4776
4814
  Choose the type conversion that matches the comparison — `number` for numeric
4777
4815
  comparisons, `epochtime` for dates, `string` for text. For example: