@celigo/api-specs 0.2.171 → 0.2.173
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 +65 -19
- package/dist/api.yml +15 -4
- package/dist/asynchelper.yml +38 -13
- package/dist/enduser.yml +5 -1
- package/dist/export.yml +283 -34
- package/dist/flow.yml +86 -21
- package/dist/guardrail.yml +16 -5
- package/dist/httpconnector.yml +21 -4
- package/dist/httpconnectorresource.yml +22 -5
- package/dist/import.yml +358 -49
- package/dist/integration.yml +210 -12
- package/dist/job.yml +5 -1
- package/dist/mcp-oauth-provider.yml +10 -3
- package/dist/mcp-server.yml +11 -3
- package/dist/tool.yml +371 -53
- package/dist/tradingpartnerconnector.yml +22 -5
- package/package.json +1 -1
- package/schemas.json +2 -1
package/dist/flow.yml
CHANGED
|
@@ -440,8 +440,10 @@ paths:
|
|
|
440
440
|
PATCH is safer than PUT for toggling `disabled` or arming debug logging because it won't
|
|
441
441
|
accidentally reset other fields. To arm debug logging, `replace` `/logging/debugUntil` with
|
|
442
442
|
a future ISO timestamp (up to the plan's cap, `logging.maxDebugDuration` minutes on the license
|
|
443
|
-
from `GET /v1/licenses`)
|
|
444
|
-
|
|
443
|
+
from `GET /v1/licenses`). To disarm it, `remove` `/logging/debugUntil`. A `replace` with a
|
|
444
|
+
past timestamp is refused with 422 ("Debug logging end time must be in the future.") and
|
|
445
|
+
leaves the window open, so to end a window early with `replace` alone, set a time a few
|
|
446
|
+
seconds ahead.
|
|
445
447
|
operationId: patchFlow
|
|
446
448
|
tags:
|
|
447
449
|
- Flows
|
|
@@ -475,6 +477,11 @@ paths:
|
|
|
475
477
|
- op: replace
|
|
476
478
|
path: /logging/debugUntil
|
|
477
479
|
value: '2026-05-02T16:00:00.000Z'
|
|
480
|
+
disable_debug:
|
|
481
|
+
summary: Turn debug logging off before the window ends
|
|
482
|
+
value:
|
|
483
|
+
- op: remove
|
|
484
|
+
path: /logging/debugUntil
|
|
478
485
|
update_schedule:
|
|
479
486
|
summary: Change Celigo 6-field schedule cron
|
|
480
487
|
value:
|
|
@@ -1996,7 +2003,7 @@ paths:
|
|
|
1996
2003
|
value:
|
|
1997
2004
|
errors:
|
|
1998
2005
|
- code: inactive_flow
|
|
1999
|
-
message: The flow is
|
|
2006
|
+
message: The flow is inactive. Please enable the flow before retrying.
|
|
2000
2007
|
missing_last_error_at:
|
|
2001
2008
|
summary: selectAll without lastErrorAt
|
|
2002
2009
|
value:
|
|
@@ -3523,7 +3530,22 @@ paths:
|
|
|
3523
3530
|
'401':
|
|
3524
3531
|
$ref: '#/components/responses/401-unauthorized'
|
|
3525
3532
|
'404':
|
|
3526
|
-
|
|
3533
|
+
description: |-
|
|
3534
|
+
Flow not found ("The flow <_id> does not belong to the user <userId>."). The
|
|
3535
|
+
same answer comes back for a flow that exists and has page generators but no page
|
|
3536
|
+
processor or router yet, even when `_exportId` names one of its page generators: give it
|
|
3537
|
+
a step after the export before test-running it. (An `_exportId` that isn't one of the
|
|
3538
|
+
flow's page generators is the 400.)
|
|
3539
|
+
content:
|
|
3540
|
+
application/json:
|
|
3541
|
+
schema:
|
|
3542
|
+
$ref: '#/components/schemas/Error'
|
|
3543
|
+
examples:
|
|
3544
|
+
not_found:
|
|
3545
|
+
summary: Unknown flow id, or a flow with no page processor or router
|
|
3546
|
+
value:
|
|
3547
|
+
errors:
|
|
3548
|
+
- message: The flow 5f8d43a1b9e5a80011a35f2c does not belong to the user 60a2c4e6f321d800129a1a3c.
|
|
3527
3549
|
'422':
|
|
3528
3550
|
$ref: '#/components/responses/422-unprocessable-entity'
|
|
3529
3551
|
/v1/flows/{_id}/test/run/{runId}/{_stepId}:
|
|
@@ -4577,7 +4599,22 @@ components:
|
|
|
4577
4599
|
properties:
|
|
4578
4600
|
postResponseMap:
|
|
4579
4601
|
type: object
|
|
4580
|
-
description:
|
|
4602
|
+
description: |-
|
|
4603
|
+
Hook that runs after the step's response mapping completes. The function receives
|
|
4604
|
+
`options.postResponseMapData` (the records, with response mapping applied) and
|
|
4605
|
+
`options.responseData` (the step's per-record results, in the same order) and returns
|
|
4606
|
+
`postResponseMapData`, same length. A record an import step failed is in neither array
|
|
4607
|
+
unless `proceedOnFailure` is true. Then it is included, without the fields response
|
|
4608
|
+
mapping would have added, and its `responseData` entry has `statusCode` 422 and
|
|
4609
|
+
`errors` as an object keyed by index (`"0"`, `"1"`, ...) rather than an array. A
|
|
4610
|
+
successful entry has no `errors`.
|
|
4611
|
+
x-celigo-ai-guidance:
|
|
4612
|
+
- |-
|
|
4613
|
+
Verified live 2026-10-22 in flow runs of an HTTP import, three records with one
|
|
4614
|
+
answered 404: with `proceedOnFailure` unset, both arrays held the two written
|
|
4615
|
+
records; with `proceedOnFailure: true` they held all three, and a hook that called
|
|
4616
|
+
`.map` on each entry's `errors` threw on the failed one, failing the page. Read
|
|
4617
|
+
errors with `Object.values(entry.errors || {})`.
|
|
4581
4618
|
properties:
|
|
4582
4619
|
function:
|
|
4583
4620
|
type: string
|
|
@@ -5523,6 +5560,17 @@ components:
|
|
|
5523
5560
|
into a schedule (for example all wildcards, `? * * ? * *`), `422
|
|
5524
5561
|
schedule_not_supported` when its runs would be less than a minute apart — which
|
|
5525
5562
|
is also what free text such as `every 5 minutes` produces.
|
|
5563
|
+
|
|
5564
|
+
A save can store a later minute than it was sent. A minute field that is 0, 15,
|
|
5565
|
+
30 or 45, a list made only of those minutes, a range that starts at minute 0, or a
|
|
5566
|
+
`*/N` step with N above 5 is stored 5 minutes later: `? 0 6 ? * *` as
|
|
5567
|
+
`? 5 6 ? * *`, `? 0,15,30,45 * ? * *` as `? 5,20,35,50 * ? * *`, `? 0-10 * ? * *`
|
|
5568
|
+
as `? 5-15 * ? * *`, and `? */15 * ? * *` as `? 5-59/15 * ? * *`. Any other minute
|
|
5569
|
+
field is kept as sent, including `? */5 * * * *` and lists that mix in other
|
|
5570
|
+
minutes (`? 0,10,20,30,40,50 * ? * *`), and the other fields never change. POST,
|
|
5571
|
+
PUT and PATCH all store it this way, the response and later reads return the
|
|
5572
|
+
stored value, and scheduled runs start at the stored minutes, so a flow saved for
|
|
5573
|
+
06:00 runs at 06:05 (live-verified 2026-10-22).
|
|
5526
5574
|
x-celigo-ai-guidance:
|
|
5527
5575
|
- |-
|
|
5528
5576
|
Build `schedule` as a Celigo 6-field cron:
|
|
@@ -5544,20 +5592,22 @@ components:
|
|
|
5544
5592
|
schedule (`? * * ? * *`) with 422 `invalid_value`. Fix or clear the schedule
|
|
5545
5593
|
instead of disabling the flow to get past the error.
|
|
5546
5594
|
- |-
|
|
5547
|
-
|
|
5548
|
-
|
|
5595
|
+
When AUTHORING a schedule, read `schedule` back after the save and give
|
|
5596
|
+
the user the stored times, not the requested ones: a schedule written
|
|
5597
|
+
for minute 0, 15, 30 or 45 can be stored, and run, 5 minutes later (see
|
|
5598
|
+
the description), and an explicit list is moved the same way as a step
|
|
5599
|
+
form. Hourly or longer: minute `5` with an explicit hour list
|
|
5549
5600
|
(`? 5 0,4,8,12,16,20 ? * *` = every 4 hours;
|
|
5550
|
-
`? 5 9 ? * 1,2,3,4,5` = weekdays 9 AM; `? 5 0 ? * *` = daily
|
|
5551
|
-
sub-hourly: an explicit minute list with hour `*`
|
|
5552
|
-
(`?
|
|
5553
|
-
schedule builder and make fire times unambiguous — the scheduler can
|
|
5554
|
-
offset step expressions (the UI's sub-hourly presets fire at minutes
|
|
5555
|
-
10/25/40/55).
|
|
5601
|
+
`? 5 9 ? * 1,2,3,4,5` = weekdays 9:05 AM; `? 5 0 ? * *` = daily at
|
|
5602
|
+
00:05); sub-hourly: an explicit minute list with hour `*`
|
|
5603
|
+
(`? 5,20,35,50 * ? * *` = every 15 minutes) or a step form.
|
|
5556
5604
|
- |-
|
|
5557
5605
|
Wildcard/step/range forms (`? */5 * * * *`, `? 10-59/30 * * * *`) are
|
|
5558
5606
|
valid and the scheduler runs them — never claim an existing schedule's
|
|
5559
5607
|
format is invalid or the cause of missed runs, and never rewrite a
|
|
5560
|
-
working schedule into a different format as a fix. A
|
|
5608
|
+
working schedule into a different format as a fix. A minute stored 5
|
|
5609
|
+
minutes after the one written is the save's normal behavior, not a
|
|
5610
|
+
fault, and a rewritten schedule is stored the same way. A new scheduled
|
|
5561
5611
|
instance is not started while a previous run of the flow is still in
|
|
5562
5612
|
progress (boundaries skipped during a long run are by design); missed
|
|
5563
5613
|
runs on an enabled, unchanged flow with nothing running are a
|
|
@@ -6655,7 +6705,12 @@ components:
|
|
|
6655
6705
|
- '500'
|
|
6656
6706
|
message:
|
|
6657
6707
|
type: string
|
|
6658
|
-
description:
|
|
6708
|
+
description: |-
|
|
6709
|
+
Human-readable message. Frequently a JSON string that the adaptor received as a response body.
|
|
6710
|
+
Stored cut to 500 characters: a longer message keeps its first 497 characters followed by
|
|
6711
|
+
`...`. A template parse error (`handlebars_template_parse_error`) repeats the whole template
|
|
6712
|
+
before its parse detail, so in a long template the detail is cut off; invoking the import
|
|
6713
|
+
(`POST /v1/imports/{_id}/invoke`) with the record returns the full message.
|
|
6659
6714
|
examples:
|
|
6660
6715
|
- '{"error":"Internal Server Error"}'
|
|
6661
6716
|
oIndex:
|
|
@@ -6692,6 +6747,7 @@ components:
|
|
|
6692
6747
|
x-celigo-ai-guidance:
|
|
6693
6748
|
- Read the classification off the record; never infer it from the message text — the classifier is heuristic and identical messages can classify differently.
|
|
6694
6749
|
- There is no setting, mapping, hook, or API that changes a classification; a wrong one is a Celigo Support matter.
|
|
6750
|
+
- '`parse` also covers a request URL template that names a field the record lacks (`handlebars_template_parse_error`, `Failed to generate request url from template: … Details: "<field>" not defined in the model.`). That is missing data, not template syntax: nothing was sent, a retry of the same record fails the same way, and the fix is the record or how the import routes it (see an HTTP import''s `relativeURI`).'
|
|
6695
6751
|
classifiedBy:
|
|
6696
6752
|
type: string
|
|
6697
6753
|
description: '`auto` on every classified error; absent on unclassified ones.'
|
|
@@ -7364,7 +7420,11 @@ components:
|
|
|
7364
7420
|
type: integer
|
|
7365
7421
|
readOnly: true
|
|
7366
7422
|
description: |-
|
|
7367
|
-
Number of records skipped,
|
|
7423
|
+
Number of records skipped, by a filter or by an import's ignore-existing or ignore-missing
|
|
7424
|
+
rule. Records an import's filter skips count in that import's child job; records an export's
|
|
7425
|
+
output filter drops count in the export's child job, whose `numSuccess` then counts only the
|
|
7426
|
+
records that passed (an export that read 6 records and dropped 3 reads `numSuccess` 3,
|
|
7427
|
+
`numIgnore` 3; live-verified 2026-10-22). Filtered records raise no error.
|
|
7368
7428
|
Summed across steps on a parent flow job; per step on a child job.
|
|
7369
7429
|
examples:
|
|
7370
7430
|
- 0
|
|
@@ -8072,16 +8132,18 @@ components:
|
|
|
8072
8132
|
description: |-
|
|
8073
8133
|
Execution stage whose data to return. `apiCall` holds the request and response an HTTP
|
|
8074
8134
|
export or import sent. On a job whose `logMode` is `debug`, an export's transform and
|
|
8075
|
-
output filter record under `transformation` and `outputFilter`, an import's
|
|
8076
|
-
|
|
8135
|
+
output filter record under `transformation` and `outputFilter`, an import's filter (its
|
|
8136
|
+
`filter` field) under `inputFilter`, an import's mapping and response mapping under
|
|
8137
|
+
`mapping` and `responseMapping`, and a script hook's `options` and
|
|
8077
8138
|
return value under its hook type plus `Hook` (`preSavePageHook`, `preMapHook`,
|
|
8078
8139
|
`postMapHook`, `postSubmitHook`, `postResponseMapHook`), whatever the function is called;
|
|
8079
8140
|
neither the bare hook name (`preMap`) nor `<functionName>Hook` returns them (live-verified
|
|
8080
|
-
2026-10-20).
|
|
8141
|
+
2026-10-20; `inputFilter` 2026-10-22).
|
|
8081
8142
|
examples:
|
|
8082
8143
|
- apiCall
|
|
8083
8144
|
- transformation
|
|
8084
8145
|
- outputFilter
|
|
8146
|
+
- inputFilter
|
|
8085
8147
|
- mapping
|
|
8086
8148
|
- responseMapping
|
|
8087
8149
|
- preSavePageHook
|
|
@@ -8114,8 +8176,11 @@ components:
|
|
|
8114
8176
|
|
|
8115
8177
|
- `apiCall`: the request's method and URI and the response's status code. A job whose `logMode` is
|
|
8116
8178
|
`detailed` or `debug` also records each side's headers and body; a `basic` job does not.
|
|
8117
|
-
- `mapping`, `transformation`, `outputFilter`, `responseMapping`: a per-record entry
|
|
8118
|
-
record's `recordId`, the stage's `input`, and its `output
|
|
8179
|
+
- `mapping`, `transformation`, `outputFilter`, `inputFilter`, `responseMapping`: a per-record entry
|
|
8180
|
+
carrying the record's `recordId`, the stage's `input`, and its `output`. The filter stages
|
|
8181
|
+
(`outputFilter` for an export's output filter, `inputFilter` for an import's filter) have
|
|
8182
|
+
`success` instead, `false` for a record the filter dropped (`inputFilter` live-verified
|
|
8183
|
+
2026-10-22).
|
|
8119
8184
|
- `preSavePageHook`, `preMapHook`, `postMapHook`, `postSubmitHook`: one entry for the record's whole
|
|
8120
8185
|
group, with no `recordId`. `input` is a one-element array holding the `options` the hook received,
|
|
8121
8186
|
and `output` holds what the hook returned.
|
package/dist/guardrail.yml
CHANGED
|
@@ -1940,8 +1940,10 @@ components:
|
|
|
1940
1940
|
- A dot path from the record root (e.g. `email`, `address.city`), read from the
|
|
1941
1941
|
incoming record. A path that matches no field writes nothing.
|
|
1942
1942
|
- Handlebars template (contains `{{`) for concatenation /
|
|
1943
|
-
formatting / conditional logic (e.g.
|
|
1944
|
-
`{{
|
|
1943
|
+
formatting / conditional logic (e.g. `{{firstName}} {{lastName}}`,
|
|
1944
|
+
`{{#if mobile}}{{mobile}}{{else}}{{phone}}{{/if}}`). The template reads the
|
|
1945
|
+
record's fields by bare name: `{{record.firstName}}` and `{{data.firstName}}`
|
|
1946
|
+
render nothing, so the field is left out even when the record has the value.
|
|
1945
1947
|
|
|
1946
1948
|
A `$.` JSONPath (the Mapper 2.0 `mappings` syntax) reads nothing here, and a bare
|
|
1947
1949
|
string is read as a field path, not a constant: set constants in `hardCodedValue`.
|
|
@@ -1982,8 +1984,9 @@ components:
|
|
|
1982
1984
|
x-celigo-ai-guidance:
|
|
1983
1985
|
- |-
|
|
1984
1986
|
When true, skip this field entirely when ``extract`` / lookup
|
|
1985
|
-
produces empty
|
|
1986
|
-
|
|
1987
|
+
produces an empty string, null or nothing. Without this flag an
|
|
1988
|
+
empty string is written as ``""`` and null as null, either of which
|
|
1989
|
+
may overwrite existing data; a missing source is left out either way.
|
|
1987
1990
|
immutable:
|
|
1988
1991
|
type: boolean
|
|
1989
1992
|
description: When true, the mapped value cannot be overwritten by later mapping steps.
|
|
@@ -2000,7 +2003,15 @@ components:
|
|
|
2000
2003
|
type:
|
|
2001
2004
|
- string
|
|
2002
2005
|
- 'null'
|
|
2003
|
-
description:
|
|
2006
|
+
description: |-
|
|
2007
|
+
Fallback value written when the source value is an empty string, null or
|
|
2008
|
+
missing. Without a default, an empty string and null are written as they are
|
|
2009
|
+
and a missing field is left out.
|
|
2010
|
+
x-celigo-ai-guidance:
|
|
2011
|
+
- |-
|
|
2012
|
+
Use ``default``, not ``hardCodedValue``, for a fallback on a field that is
|
|
2013
|
+
sometimes empty: ``hardCodedValue`` is written on every record and replaces
|
|
2014
|
+
the values that exist.
|
|
2004
2015
|
extractDateFormat:
|
|
2005
2016
|
type: string
|
|
2006
2017
|
description: Date format of the source value, used to parse it before conversion.
|
package/dist/httpconnector.yml
CHANGED
|
@@ -1300,15 +1300,30 @@ components:
|
|
|
1300
1300
|
- `"lessthan"`: Value is less than specified value (is less than)
|
|
1301
1301
|
- `"lessthanequals"`: Value is less than or equal to specified value (is less than or equals)
|
|
1302
1302
|
- `"startswith"`: String starts with specified prefix (starts with)
|
|
1303
|
+
- `"notstartswith"`: String does not start with specified prefix (does not start with)
|
|
1303
1304
|
- `"endswith"`: String ends with specified suffix (ends with)
|
|
1305
|
+
- `"notendswith"`: String does not end with specified suffix (does not end with)
|
|
1304
1306
|
- `"contains"`: String contains specified substring (contains)
|
|
1305
1307
|
- `"doesnotcontain"`: String does not contain specified substring (does not contain)
|
|
1306
1308
|
- `"empty"`: Field is missing or empty (is empty)
|
|
1307
1309
|
- `"notempty"`: Field contains a value (is not empty)
|
|
1308
|
-
- `"matches"`: Matches a regular expression (matches)
|
|
1310
|
+
- `"matches"`: Matches a regular expression, ignoring case (matches)
|
|
1309
1311
|
|
|
1310
|
-
|
|
1311
|
-
|
|
1312
|
+
Operator names are case-insensitive: `NOTEMPTY` and `endsWith` work and are stored
|
|
1313
|
+
as sent. `isempty`, `isnotempty`, `anyof`, `notcontains`, `doesnotstartwith`,
|
|
1314
|
+
`doesnotendwith`, `notmatches`, `doesnotmatch` and `notequal` are not operators:
|
|
1315
|
+
they are refused with 422 "Invalid operation: <name>", with the name in lowercase,
|
|
1316
|
+
both when the filter is saved and by `POST /v1/processors/filter`. To negate a
|
|
1317
|
+
condition, wrap it in `not`.
|
|
1318
|
+
|
|
1319
|
+
The string comparisons (`equals`, `contains`, `startswith`, `endswith` and their
|
|
1320
|
+
negations) are case-sensitive; wrap the field in `lowercase` to compare without case.
|
|
1321
|
+
`matches` is not: every pattern is compiled with the flags `gi`, so `^paid$` also
|
|
1322
|
+
matches `PAID` and `[a-z]` matches capital letters. An inline flag such as `(?i)`
|
|
1323
|
+
makes the pattern invalid. The filter still saves, but in a run every record fails
|
|
1324
|
+
with `FILTER_EVALUATION_FAILED` ("Invalid regular expression: /(?i)…/gi: Invalid
|
|
1325
|
+
group"), and `POST /v1/processors/filter` refuses the call with 422 (live-verified
|
|
1326
|
+
2026-10-22).
|
|
1312
1327
|
|
|
1313
1328
|
**Logical Operators**
|
|
1314
1329
|
- `"and"`: All conditions must be true
|
|
@@ -1598,7 +1613,9 @@ components:
|
|
|
1598
1613
|
x-celigo-refModel: scripts
|
|
1599
1614
|
description: |
|
|
1600
1615
|
Reference to the Script resource that contains the filtering logic. This must be a valid
|
|
1601
|
-
ObjectId of a Script resource
|
|
1616
|
+
ObjectId of a Script resource in this account: any other id fails the save with 422
|
|
1617
|
+
("Only a script owned by the user or a script shared by the Integration App can be used
|
|
1618
|
+
at filter.script._scriptId.").
|
|
1602
1619
|
|
|
1603
1620
|
The referenced script must contain the function specified in the `function` field
|
|
1604
1621
|
and must be written to handle filtering specifically. The script receives
|
|
@@ -746,15 +746,30 @@ components:
|
|
|
746
746
|
- `"lessthan"`: Value is less than specified value (is less than)
|
|
747
747
|
- `"lessthanequals"`: Value is less than or equal to specified value (is less than or equals)
|
|
748
748
|
- `"startswith"`: String starts with specified prefix (starts with)
|
|
749
|
+
- `"notstartswith"`: String does not start with specified prefix (does not start with)
|
|
749
750
|
- `"endswith"`: String ends with specified suffix (ends with)
|
|
751
|
+
- `"notendswith"`: String does not end with specified suffix (does not end with)
|
|
750
752
|
- `"contains"`: String contains specified substring (contains)
|
|
751
753
|
- `"doesnotcontain"`: String does not contain specified substring (does not contain)
|
|
752
754
|
- `"empty"`: Field is missing or empty (is empty)
|
|
753
755
|
- `"notempty"`: Field contains a value (is not empty)
|
|
754
|
-
- `"matches"`: Matches a regular expression (matches)
|
|
755
|
-
|
|
756
|
-
|
|
757
|
-
|
|
756
|
+
- `"matches"`: Matches a regular expression, ignoring case (matches)
|
|
757
|
+
|
|
758
|
+
Operator names are case-insensitive: `NOTEMPTY` and `endsWith` work and are stored
|
|
759
|
+
as sent. `isempty`, `isnotempty`, `anyof`, `notcontains`, `doesnotstartwith`,
|
|
760
|
+
`doesnotendwith`, `notmatches`, `doesnotmatch` and `notequal` are not operators:
|
|
761
|
+
they are refused with 422 "Invalid operation: <name>", with the name in lowercase,
|
|
762
|
+
both when the filter is saved and by `POST /v1/processors/filter`. To negate a
|
|
763
|
+
condition, wrap it in `not`.
|
|
764
|
+
|
|
765
|
+
The string comparisons (`equals`, `contains`, `startswith`, `endswith` and their
|
|
766
|
+
negations) are case-sensitive; wrap the field in `lowercase` to compare without case.
|
|
767
|
+
`matches` is not: every pattern is compiled with the flags `gi`, so `^paid$` also
|
|
768
|
+
matches `PAID` and `[a-z]` matches capital letters. An inline flag such as `(?i)`
|
|
769
|
+
makes the pattern invalid. The filter still saves, but in a run every record fails
|
|
770
|
+
with `FILTER_EVALUATION_FAILED` ("Invalid regular expression: /(?i)…/gi: Invalid
|
|
771
|
+
group"), and `POST /v1/processors/filter` refuses the call with 422 (live-verified
|
|
772
|
+
2026-10-22).
|
|
758
773
|
|
|
759
774
|
**Logical Operators**
|
|
760
775
|
- `"and"`: All conditions must be true
|
|
@@ -1044,7 +1059,9 @@ components:
|
|
|
1044
1059
|
x-celigo-refModel: scripts
|
|
1045
1060
|
description: |
|
|
1046
1061
|
Reference to the Script resource that contains the filtering logic. This must be a valid
|
|
1047
|
-
ObjectId of a Script resource
|
|
1062
|
+
ObjectId of a Script resource in this account: any other id fails the save with 422
|
|
1063
|
+
("Only a script owned by the user or a script shared by the Integration App can be used
|
|
1064
|
+
at filter.script._scriptId.").
|
|
1048
1065
|
|
|
1049
1066
|
The referenced script must contain the function specified in the `function` field
|
|
1050
1067
|
and must be written to handle filtering specifically. The script receives
|