@celigo/api-specs 0.2.214 → 0.2.215
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 +39 -18
- package/dist/api.yml +39 -18
- package/dist/asynchelper.yml +39 -18
- package/dist/export.yml +72 -21
- package/dist/flow.yml +37 -15
- package/dist/import.yml +39 -18
- package/dist/processor.yml +31 -3
- package/dist/subscription.yml +13 -7
- package/dist/tool.yml +72 -21
- package/package.json +1 -1
- package/schemas.json +345 -338
package/dist/ai-agent.yml
CHANGED
|
@@ -5679,12 +5679,16 @@ components:
|
|
|
5679
5679
|
- |-
|
|
5680
5680
|
On a grouped record (the export groups rows, so the record is an
|
|
5681
5681
|
array) only `create` can author output — build it from the rows with
|
|
5682
|
-
`$[0].field`, `$[*].field`, or a `buildArrayHelper` over `$[*]
|
|
5682
|
+
`$[0].field`, `$[*].field`, or a `buildArrayHelper` over `$[*]`
|
|
5683
|
+
(`$.rows[0].field` and `$.rows[*]` with `inputContext: envelope`).
|
|
5683
5684
|
`modify` has no object to overlay onto an array: the record passes
|
|
5684
|
-
through untouched and the processor reports success.
|
|
5685
|
-
|
|
5686
|
-
|
|
5687
|
-
|
|
5685
|
+
through untouched and the processor reports success. Paths written
|
|
5686
|
+
for one object record (`$.field`, an entry `$.lines[*]`) resolve
|
|
5687
|
+
nothing there, so `create` returns `{}` for each record, also with
|
|
5688
|
+
no error (live, 2026-10-30). Either mode reshapes the inside of one
|
|
5689
|
+
record; neither changes how many records the page carries (that is
|
|
5690
|
+
the export's `preSavePage` hook) or whether the export groups at all
|
|
5691
|
+
(that is its grouping setting).
|
|
5688
5692
|
examples:
|
|
5689
5693
|
- create
|
|
5690
5694
|
- modify
|
|
@@ -5749,8 +5753,8 @@ components:
|
|
|
5749
5753
|
- record
|
|
5750
5754
|
- envelope
|
|
5751
5755
|
x-enumDescriptions:
|
|
5752
|
-
record: The transform processor evaluates `mappings[].extract` JSONPath against the flat record itself (`$.field`, no `record.` segment) — the default when absent.
|
|
5753
|
-
envelope: The transform processor evaluates JSONPath against the wrapped runtime envelope `{record, job, testMode, settings, headers, queryParams}` (file-provider steps also carry `fileMeta`) — record fields need the `record.` segment (`$.record.field`), while `headers` and `queryParams` sit beside `record` (`$.headers['X-Id']`, `$.queryParams.src`).
|
|
5756
|
+
record: The transform processor evaluates `mappings[].extract` JSONPath against the flat record itself (`$.field`, no `record.` segment; a grouped record is the array of rows, `$[0].field`) — the default when absent.
|
|
5757
|
+
envelope: The transform processor evaluates JSONPath against the wrapped runtime envelope `{record, job, testMode, settings, headers, queryParams}` (file-provider steps also carry `fileMeta`) — record fields need the `record.` segment (`$.record.field`), and a grouped record sits under `rows` instead (`$.rows[0].field`), while `headers` and `queryParams` sit beside `record` (`$.headers['X-Id']`, `$.queryParams.src`).
|
|
5754
5758
|
description: |
|
|
5755
5759
|
Controls the JSON shape the transformTwoDotZero processor
|
|
5756
5760
|
evaluates `mappings[].extract` JSONPath values against at
|
|
@@ -5766,24 +5770,38 @@ components:
|
|
|
5766
5770
|
processor sees the FLAT record as its evaluation root.
|
|
5767
5771
|
`mappings[].extract` JSONPath MUST anchor directly at
|
|
5768
5772
|
`$` with NO `record.` segment — e.g. `"$.orderId"`,
|
|
5769
|
-
`"$.customer.email"
|
|
5773
|
+
`"$.customer.email"` on an object record, `"$[0].orderId"`
|
|
5774
|
+
on a grouped one; PLACEHOLDER extracts use
|
|
5770
5775
|
`"$.PLACEHOLDER_<field>"`.
|
|
5771
5776
|
This is the dominant Celigo idiom and the right choice for new transforms.
|
|
5772
5777
|
- `envelope`: the processor sees a wrapped object
|
|
5773
5778
|
`{record: {...}, job, testMode, settings, headers,
|
|
5774
5779
|
queryParams}` (plus `fileMeta` on file-provider steps).
|
|
5775
5780
|
`mappings[].extract` JSONPath MUST include the
|
|
5776
|
-
`record.` segment for record fields — e.g.
|
|
5777
|
-
`"$.record.orderId"
|
|
5781
|
+
`record.` segment for an object record's fields — e.g.
|
|
5782
|
+
`"$.record.orderId"`; a grouped record sits under `rows`
|
|
5783
|
+
instead (`"$.rows[0].orderId"`) — and reads `headers` and
|
|
5778
5784
|
`queryParams` beside it (`$.headers['X-Id']`);
|
|
5779
5785
|
PLACEHOLDER extracts use `"$.record.PLACEHOLDER_<field>"`.
|
|
5780
5786
|
Pick this only when the transform was authored against
|
|
5781
5787
|
the envelope shape on purpose.
|
|
5782
5788
|
- |-
|
|
5783
|
-
Handlebars expressions inside `extract`
|
|
5784
|
-
|
|
5785
|
-
|
|
5789
|
+
Handlebars expressions inside `extract` reference the
|
|
5790
|
+
`record` root on an object record (`{{record.field}}`,
|
|
5791
|
+
`{{dateFormat ... record.field}}`) and `rows` on a
|
|
5792
|
+
grouped one (`{{rows.0.field}}`), regardless of
|
|
5786
5793
|
`inputContext` — only JSONPath anchoring flips.
|
|
5794
|
+
- |-
|
|
5795
|
+
## Grouped records
|
|
5796
|
+
|
|
5797
|
+
When the export groups rows, each record is an array of
|
|
5798
|
+
rows. In `record` mode JSONPath roots at that array
|
|
5799
|
+
(`$[0].field`, `$[*]`); `envelope` binds it as `rows`,
|
|
5800
|
+
not `record` — `$.rows[0].field`, and an entry
|
|
5801
|
+
`$.rows[*]` whose children read `$.rows.field` — while
|
|
5802
|
+
`$.record[0].field` and `$.record[*]` resolve nothing,
|
|
5803
|
+
with no error (live, 2026-10-30). Handlebars extracts
|
|
5804
|
+
read it as `rows` in both modes (`{{rows.0.field}}`).
|
|
5787
5805
|
- |-
|
|
5788
5806
|
In `envelope` mode the output is still a bare record: a
|
|
5789
5807
|
`modify` transform returns the record with its mapped
|
|
@@ -5804,7 +5822,8 @@ components:
|
|
|
5804
5822
|
``mappings[].extract`` JSONPath values MUST anchor
|
|
5805
5823
|
directly at ``$`` with NO ``record.`` segment — for
|
|
5806
5824
|
example ``"$.orderId"`` or
|
|
5807
|
-
``"$.customer.email"
|
|
5825
|
+
``"$.customer.email"`` on an object record, and
|
|
5826
|
+
``"$[0].orderId"`` on a grouped one. PLACEHOLDER extracts use
|
|
5808
5827
|
``"$.PLACEHOLDER_<field>"``. This is the dominant
|
|
5809
5828
|
Celigo idiom and the right choice for new transforms.
|
|
5810
5829
|
|
|
@@ -5816,9 +5835,10 @@ components:
|
|
|
5816
5835
|
``record``) — the
|
|
5817
5836
|
same runtime-context envelope Handlebars / SQL /
|
|
5818
5837
|
GraphQL templates render against. ``mappings[].extract``
|
|
5819
|
-
JSONPath values for record fields MUST include the
|
|
5838
|
+
JSONPath values for an object record's fields MUST include the
|
|
5820
5839
|
``record.`` segment — for example ``"$.record.orderId"``
|
|
5821
|
-
or ``"$.record.customer.email"
|
|
5840
|
+
or ``"$.record.customer.email"``; a grouped record's rows
|
|
5841
|
+
sit under ``rows`` instead (``"$.rows[0].orderId"``) — while ``headers`` and
|
|
5822
5842
|
``queryParams`` are read beside it
|
|
5823
5843
|
(``"$.headers['X-Id']"``). PLACEHOLDER extracts
|
|
5824
5844
|
use ``"$.record.PLACEHOLDER_<field>"``. Pick this
|
|
@@ -5831,8 +5851,9 @@ components:
|
|
|
5831
5851
|
|
|
5832
5852
|
Handlebars expressions inside ``extract``
|
|
5833
5853
|
(``{{record.field}}``,
|
|
5834
|
-
``{{dateFormat ... record.field}}``, etc.)
|
|
5835
|
-
|
|
5854
|
+
``{{dateFormat ... record.field}}``, etc.) reference the
|
|
5855
|
+
runtime context's ``record`` root on an object record,
|
|
5856
|
+
and ``rows`` (``{{rows.0.field}}``) on a grouped one,
|
|
5836
5857
|
regardless of ``inputContext`` — the Handlebars runtime
|
|
5837
5858
|
always sees the wrapped envelope. Only JSONPath
|
|
5838
5859
|
behavior flips with this field.
|
package/dist/api.yml
CHANGED
|
@@ -5263,12 +5263,16 @@ components:
|
|
|
5263
5263
|
- |-
|
|
5264
5264
|
On a grouped record (the export groups rows, so the record is an
|
|
5265
5265
|
array) only `create` can author output — build it from the rows with
|
|
5266
|
-
`$[0].field`, `$[*].field`, or a `buildArrayHelper` over `$[*]
|
|
5266
|
+
`$[0].field`, `$[*].field`, or a `buildArrayHelper` over `$[*]`
|
|
5267
|
+
(`$.rows[0].field` and `$.rows[*]` with `inputContext: envelope`).
|
|
5267
5268
|
`modify` has no object to overlay onto an array: the record passes
|
|
5268
|
-
through untouched and the processor reports success.
|
|
5269
|
-
|
|
5270
|
-
|
|
5271
|
-
|
|
5269
|
+
through untouched and the processor reports success. Paths written
|
|
5270
|
+
for one object record (`$.field`, an entry `$.lines[*]`) resolve
|
|
5271
|
+
nothing there, so `create` returns `{}` for each record, also with
|
|
5272
|
+
no error (live, 2026-10-30). Either mode reshapes the inside of one
|
|
5273
|
+
record; neither changes how many records the page carries (that is
|
|
5274
|
+
the export's `preSavePage` hook) or whether the export groups at all
|
|
5275
|
+
(that is its grouping setting).
|
|
5272
5276
|
examples:
|
|
5273
5277
|
- create
|
|
5274
5278
|
- modify
|
|
@@ -5333,8 +5337,8 @@ components:
|
|
|
5333
5337
|
- record
|
|
5334
5338
|
- envelope
|
|
5335
5339
|
x-enumDescriptions:
|
|
5336
|
-
record: The transform processor evaluates `mappings[].extract` JSONPath against the flat record itself (`$.field`, no `record.` segment) — the default when absent.
|
|
5337
|
-
envelope: The transform processor evaluates JSONPath against the wrapped runtime envelope `{record, job, testMode, settings, headers, queryParams}` (file-provider steps also carry `fileMeta`) — record fields need the `record.` segment (`$.record.field`), while `headers` and `queryParams` sit beside `record` (`$.headers['X-Id']`, `$.queryParams.src`).
|
|
5340
|
+
record: The transform processor evaluates `mappings[].extract` JSONPath against the flat record itself (`$.field`, no `record.` segment; a grouped record is the array of rows, `$[0].field`) — the default when absent.
|
|
5341
|
+
envelope: The transform processor evaluates JSONPath against the wrapped runtime envelope `{record, job, testMode, settings, headers, queryParams}` (file-provider steps also carry `fileMeta`) — record fields need the `record.` segment (`$.record.field`), and a grouped record sits under `rows` instead (`$.rows[0].field`), while `headers` and `queryParams` sit beside `record` (`$.headers['X-Id']`, `$.queryParams.src`).
|
|
5338
5342
|
description: |
|
|
5339
5343
|
Controls the JSON shape the transformTwoDotZero processor
|
|
5340
5344
|
evaluates `mappings[].extract` JSONPath values against at
|
|
@@ -5350,24 +5354,38 @@ components:
|
|
|
5350
5354
|
processor sees the FLAT record as its evaluation root.
|
|
5351
5355
|
`mappings[].extract` JSONPath MUST anchor directly at
|
|
5352
5356
|
`$` with NO `record.` segment — e.g. `"$.orderId"`,
|
|
5353
|
-
`"$.customer.email"
|
|
5357
|
+
`"$.customer.email"` on an object record, `"$[0].orderId"`
|
|
5358
|
+
on a grouped one; PLACEHOLDER extracts use
|
|
5354
5359
|
`"$.PLACEHOLDER_<field>"`.
|
|
5355
5360
|
This is the dominant Celigo idiom and the right choice for new transforms.
|
|
5356
5361
|
- `envelope`: the processor sees a wrapped object
|
|
5357
5362
|
`{record: {...}, job, testMode, settings, headers,
|
|
5358
5363
|
queryParams}` (plus `fileMeta` on file-provider steps).
|
|
5359
5364
|
`mappings[].extract` JSONPath MUST include the
|
|
5360
|
-
`record.` segment for record fields — e.g.
|
|
5361
|
-
`"$.record.orderId"
|
|
5365
|
+
`record.` segment for an object record's fields — e.g.
|
|
5366
|
+
`"$.record.orderId"`; a grouped record sits under `rows`
|
|
5367
|
+
instead (`"$.rows[0].orderId"`) — and reads `headers` and
|
|
5362
5368
|
`queryParams` beside it (`$.headers['X-Id']`);
|
|
5363
5369
|
PLACEHOLDER extracts use `"$.record.PLACEHOLDER_<field>"`.
|
|
5364
5370
|
Pick this only when the transform was authored against
|
|
5365
5371
|
the envelope shape on purpose.
|
|
5366
5372
|
- |-
|
|
5367
|
-
Handlebars expressions inside `extract`
|
|
5368
|
-
|
|
5369
|
-
|
|
5373
|
+
Handlebars expressions inside `extract` reference the
|
|
5374
|
+
`record` root on an object record (`{{record.field}}`,
|
|
5375
|
+
`{{dateFormat ... record.field}}`) and `rows` on a
|
|
5376
|
+
grouped one (`{{rows.0.field}}`), regardless of
|
|
5370
5377
|
`inputContext` — only JSONPath anchoring flips.
|
|
5378
|
+
- |-
|
|
5379
|
+
## Grouped records
|
|
5380
|
+
|
|
5381
|
+
When the export groups rows, each record is an array of
|
|
5382
|
+
rows. In `record` mode JSONPath roots at that array
|
|
5383
|
+
(`$[0].field`, `$[*]`); `envelope` binds it as `rows`,
|
|
5384
|
+
not `record` — `$.rows[0].field`, and an entry
|
|
5385
|
+
`$.rows[*]` whose children read `$.rows.field` — while
|
|
5386
|
+
`$.record[0].field` and `$.record[*]` resolve nothing,
|
|
5387
|
+
with no error (live, 2026-10-30). Handlebars extracts
|
|
5388
|
+
read it as `rows` in both modes (`{{rows.0.field}}`).
|
|
5371
5389
|
- |-
|
|
5372
5390
|
In `envelope` mode the output is still a bare record: a
|
|
5373
5391
|
`modify` transform returns the record with its mapped
|
|
@@ -5388,7 +5406,8 @@ components:
|
|
|
5388
5406
|
``mappings[].extract`` JSONPath values MUST anchor
|
|
5389
5407
|
directly at ``$`` with NO ``record.`` segment — for
|
|
5390
5408
|
example ``"$.orderId"`` or
|
|
5391
|
-
``"$.customer.email"
|
|
5409
|
+
``"$.customer.email"`` on an object record, and
|
|
5410
|
+
``"$[0].orderId"`` on a grouped one. PLACEHOLDER extracts use
|
|
5392
5411
|
``"$.PLACEHOLDER_<field>"``. This is the dominant
|
|
5393
5412
|
Celigo idiom and the right choice for new transforms.
|
|
5394
5413
|
|
|
@@ -5400,9 +5419,10 @@ components:
|
|
|
5400
5419
|
``record``) — the
|
|
5401
5420
|
same runtime-context envelope Handlebars / SQL /
|
|
5402
5421
|
GraphQL templates render against. ``mappings[].extract``
|
|
5403
|
-
JSONPath values for record fields MUST include the
|
|
5422
|
+
JSONPath values for an object record's fields MUST include the
|
|
5404
5423
|
``record.`` segment — for example ``"$.record.orderId"``
|
|
5405
|
-
or ``"$.record.customer.email"
|
|
5424
|
+
or ``"$.record.customer.email"``; a grouped record's rows
|
|
5425
|
+
sit under ``rows`` instead (``"$.rows[0].orderId"``) — while ``headers`` and
|
|
5406
5426
|
``queryParams`` are read beside it
|
|
5407
5427
|
(``"$.headers['X-Id']"``). PLACEHOLDER extracts
|
|
5408
5428
|
use ``"$.record.PLACEHOLDER_<field>"``. Pick this
|
|
@@ -5415,8 +5435,9 @@ components:
|
|
|
5415
5435
|
|
|
5416
5436
|
Handlebars expressions inside ``extract``
|
|
5417
5437
|
(``{{record.field}}``,
|
|
5418
|
-
``{{dateFormat ... record.field}}``, etc.)
|
|
5419
|
-
|
|
5438
|
+
``{{dateFormat ... record.field}}``, etc.) reference the
|
|
5439
|
+
runtime context's ``record`` root on an object record,
|
|
5440
|
+
and ``rows`` (``{{rows.0.field}}``) on a grouped one,
|
|
5420
5441
|
regardless of ``inputContext`` — the Handlebars runtime
|
|
5421
5442
|
always sees the wrapped envelope. Only JSONPath
|
|
5422
5443
|
behavior flips with this field.
|
package/dist/asynchelper.yml
CHANGED
|
@@ -3158,12 +3158,16 @@ components:
|
|
|
3158
3158
|
- |-
|
|
3159
3159
|
On a grouped record (the export groups rows, so the record is an
|
|
3160
3160
|
array) only `create` can author output — build it from the rows with
|
|
3161
|
-
`$[0].field`, `$[*].field`, or a `buildArrayHelper` over `$[*]
|
|
3161
|
+
`$[0].field`, `$[*].field`, or a `buildArrayHelper` over `$[*]`
|
|
3162
|
+
(`$.rows[0].field` and `$.rows[*]` with `inputContext: envelope`).
|
|
3162
3163
|
`modify` has no object to overlay onto an array: the record passes
|
|
3163
|
-
through untouched and the processor reports success.
|
|
3164
|
-
|
|
3165
|
-
|
|
3166
|
-
|
|
3164
|
+
through untouched and the processor reports success. Paths written
|
|
3165
|
+
for one object record (`$.field`, an entry `$.lines[*]`) resolve
|
|
3166
|
+
nothing there, so `create` returns `{}` for each record, also with
|
|
3167
|
+
no error (live, 2026-10-30). Either mode reshapes the inside of one
|
|
3168
|
+
record; neither changes how many records the page carries (that is
|
|
3169
|
+
the export's `preSavePage` hook) or whether the export groups at all
|
|
3170
|
+
(that is its grouping setting).
|
|
3167
3171
|
examples:
|
|
3168
3172
|
- create
|
|
3169
3173
|
- modify
|
|
@@ -3228,8 +3232,8 @@ components:
|
|
|
3228
3232
|
- record
|
|
3229
3233
|
- envelope
|
|
3230
3234
|
x-enumDescriptions:
|
|
3231
|
-
record: The transform processor evaluates `mappings[].extract` JSONPath against the flat record itself (`$.field`, no `record.` segment) — the default when absent.
|
|
3232
|
-
envelope: The transform processor evaluates JSONPath against the wrapped runtime envelope `{record, job, testMode, settings, headers, queryParams}` (file-provider steps also carry `fileMeta`) — record fields need the `record.` segment (`$.record.field`), while `headers` and `queryParams` sit beside `record` (`$.headers['X-Id']`, `$.queryParams.src`).
|
|
3235
|
+
record: The transform processor evaluates `mappings[].extract` JSONPath against the flat record itself (`$.field`, no `record.` segment; a grouped record is the array of rows, `$[0].field`) — the default when absent.
|
|
3236
|
+
envelope: The transform processor evaluates JSONPath against the wrapped runtime envelope `{record, job, testMode, settings, headers, queryParams}` (file-provider steps also carry `fileMeta`) — record fields need the `record.` segment (`$.record.field`), and a grouped record sits under `rows` instead (`$.rows[0].field`), while `headers` and `queryParams` sit beside `record` (`$.headers['X-Id']`, `$.queryParams.src`).
|
|
3233
3237
|
description: |
|
|
3234
3238
|
Controls the JSON shape the transformTwoDotZero processor
|
|
3235
3239
|
evaluates `mappings[].extract` JSONPath values against at
|
|
@@ -3245,24 +3249,38 @@ components:
|
|
|
3245
3249
|
processor sees the FLAT record as its evaluation root.
|
|
3246
3250
|
`mappings[].extract` JSONPath MUST anchor directly at
|
|
3247
3251
|
`$` with NO `record.` segment — e.g. `"$.orderId"`,
|
|
3248
|
-
`"$.customer.email"
|
|
3252
|
+
`"$.customer.email"` on an object record, `"$[0].orderId"`
|
|
3253
|
+
on a grouped one; PLACEHOLDER extracts use
|
|
3249
3254
|
`"$.PLACEHOLDER_<field>"`.
|
|
3250
3255
|
This is the dominant Celigo idiom and the right choice for new transforms.
|
|
3251
3256
|
- `envelope`: the processor sees a wrapped object
|
|
3252
3257
|
`{record: {...}, job, testMode, settings, headers,
|
|
3253
3258
|
queryParams}` (plus `fileMeta` on file-provider steps).
|
|
3254
3259
|
`mappings[].extract` JSONPath MUST include the
|
|
3255
|
-
`record.` segment for record fields — e.g.
|
|
3256
|
-
`"$.record.orderId"
|
|
3260
|
+
`record.` segment for an object record's fields — e.g.
|
|
3261
|
+
`"$.record.orderId"`; a grouped record sits under `rows`
|
|
3262
|
+
instead (`"$.rows[0].orderId"`) — and reads `headers` and
|
|
3257
3263
|
`queryParams` beside it (`$.headers['X-Id']`);
|
|
3258
3264
|
PLACEHOLDER extracts use `"$.record.PLACEHOLDER_<field>"`.
|
|
3259
3265
|
Pick this only when the transform was authored against
|
|
3260
3266
|
the envelope shape on purpose.
|
|
3261
3267
|
- |-
|
|
3262
|
-
Handlebars expressions inside `extract`
|
|
3263
|
-
|
|
3264
|
-
|
|
3268
|
+
Handlebars expressions inside `extract` reference the
|
|
3269
|
+
`record` root on an object record (`{{record.field}}`,
|
|
3270
|
+
`{{dateFormat ... record.field}}`) and `rows` on a
|
|
3271
|
+
grouped one (`{{rows.0.field}}`), regardless of
|
|
3265
3272
|
`inputContext` — only JSONPath anchoring flips.
|
|
3273
|
+
- |-
|
|
3274
|
+
## Grouped records
|
|
3275
|
+
|
|
3276
|
+
When the export groups rows, each record is an array of
|
|
3277
|
+
rows. In `record` mode JSONPath roots at that array
|
|
3278
|
+
(`$[0].field`, `$[*]`); `envelope` binds it as `rows`,
|
|
3279
|
+
not `record` — `$.rows[0].field`, and an entry
|
|
3280
|
+
`$.rows[*]` whose children read `$.rows.field` — while
|
|
3281
|
+
`$.record[0].field` and `$.record[*]` resolve nothing,
|
|
3282
|
+
with no error (live, 2026-10-30). Handlebars extracts
|
|
3283
|
+
read it as `rows` in both modes (`{{rows.0.field}}`).
|
|
3266
3284
|
- |-
|
|
3267
3285
|
In `envelope` mode the output is still a bare record: a
|
|
3268
3286
|
`modify` transform returns the record with its mapped
|
|
@@ -3283,7 +3301,8 @@ components:
|
|
|
3283
3301
|
``mappings[].extract`` JSONPath values MUST anchor
|
|
3284
3302
|
directly at ``$`` with NO ``record.`` segment — for
|
|
3285
3303
|
example ``"$.orderId"`` or
|
|
3286
|
-
``"$.customer.email"
|
|
3304
|
+
``"$.customer.email"`` on an object record, and
|
|
3305
|
+
``"$[0].orderId"`` on a grouped one. PLACEHOLDER extracts use
|
|
3287
3306
|
``"$.PLACEHOLDER_<field>"``. This is the dominant
|
|
3288
3307
|
Celigo idiom and the right choice for new transforms.
|
|
3289
3308
|
|
|
@@ -3295,9 +3314,10 @@ components:
|
|
|
3295
3314
|
``record``) — the
|
|
3296
3315
|
same runtime-context envelope Handlebars / SQL /
|
|
3297
3316
|
GraphQL templates render against. ``mappings[].extract``
|
|
3298
|
-
JSONPath values for record fields MUST include the
|
|
3317
|
+
JSONPath values for an object record's fields MUST include the
|
|
3299
3318
|
``record.`` segment — for example ``"$.record.orderId"``
|
|
3300
|
-
or ``"$.record.customer.email"
|
|
3319
|
+
or ``"$.record.customer.email"``; a grouped record's rows
|
|
3320
|
+
sit under ``rows`` instead (``"$.rows[0].orderId"``) — while ``headers`` and
|
|
3301
3321
|
``queryParams`` are read beside it
|
|
3302
3322
|
(``"$.headers['X-Id']"``). PLACEHOLDER extracts
|
|
3303
3323
|
use ``"$.record.PLACEHOLDER_<field>"``. Pick this
|
|
@@ -3310,8 +3330,9 @@ components:
|
|
|
3310
3330
|
|
|
3311
3331
|
Handlebars expressions inside ``extract``
|
|
3312
3332
|
(``{{record.field}}``,
|
|
3313
|
-
``{{dateFormat ... record.field}}``, etc.)
|
|
3314
|
-
|
|
3333
|
+
``{{dateFormat ... record.field}}``, etc.) reference the
|
|
3334
|
+
runtime context's ``record`` root on an object record,
|
|
3335
|
+
and ``rows`` (``{{rows.0.field}}``) on a grouped one,
|
|
3315
3336
|
regardless of ``inputContext`` — the Handlebars runtime
|
|
3316
3337
|
always sees the wrapped envelope. Only JSONPath
|
|
3317
3338
|
behavior flips with this field.
|
package/dist/export.yml
CHANGED
|
@@ -15412,12 +15412,16 @@ components:
|
|
|
15412
15412
|
- |-
|
|
15413
15413
|
On a grouped record (the export groups rows, so the record is an
|
|
15414
15414
|
array) only `create` can author output — build it from the rows with
|
|
15415
|
-
`$[0].field`, `$[*].field`, or a `buildArrayHelper` over `$[*]
|
|
15415
|
+
`$[0].field`, `$[*].field`, or a `buildArrayHelper` over `$[*]`
|
|
15416
|
+
(`$.rows[0].field` and `$.rows[*]` with `inputContext: envelope`).
|
|
15416
15417
|
`modify` has no object to overlay onto an array: the record passes
|
|
15417
|
-
through untouched and the processor reports success.
|
|
15418
|
-
|
|
15419
|
-
|
|
15420
|
-
|
|
15418
|
+
through untouched and the processor reports success. Paths written
|
|
15419
|
+
for one object record (`$.field`, an entry `$.lines[*]`) resolve
|
|
15420
|
+
nothing there, so `create` returns `{}` for each record, also with
|
|
15421
|
+
no error (live, 2026-10-30). Either mode reshapes the inside of one
|
|
15422
|
+
record; neither changes how many records the page carries (that is
|
|
15423
|
+
the export's `preSavePage` hook) or whether the export groups at all
|
|
15424
|
+
(that is its grouping setting).
|
|
15421
15425
|
examples:
|
|
15422
15426
|
- create
|
|
15423
15427
|
- modify
|
|
@@ -15482,8 +15486,8 @@ components:
|
|
|
15482
15486
|
- record
|
|
15483
15487
|
- envelope
|
|
15484
15488
|
x-enumDescriptions:
|
|
15485
|
-
record: The transform processor evaluates `mappings[].extract` JSONPath against the flat record itself (`$.field`, no `record.` segment) — the default when absent.
|
|
15486
|
-
envelope: The transform processor evaluates JSONPath against the wrapped runtime envelope `{record, job, testMode, settings, headers, queryParams}` (file-provider steps also carry `fileMeta`) — record fields need the `record.` segment (`$.record.field`), while `headers` and `queryParams` sit beside `record` (`$.headers['X-Id']`, `$.queryParams.src`).
|
|
15489
|
+
record: The transform processor evaluates `mappings[].extract` JSONPath against the flat record itself (`$.field`, no `record.` segment; a grouped record is the array of rows, `$[0].field`) — the default when absent.
|
|
15490
|
+
envelope: The transform processor evaluates JSONPath against the wrapped runtime envelope `{record, job, testMode, settings, headers, queryParams}` (file-provider steps also carry `fileMeta`) — record fields need the `record.` segment (`$.record.field`), and a grouped record sits under `rows` instead (`$.rows[0].field`), while `headers` and `queryParams` sit beside `record` (`$.headers['X-Id']`, `$.queryParams.src`).
|
|
15487
15491
|
description: |
|
|
15488
15492
|
Controls the JSON shape the transformTwoDotZero processor
|
|
15489
15493
|
evaluates `mappings[].extract` JSONPath values against at
|
|
@@ -15499,24 +15503,38 @@ components:
|
|
|
15499
15503
|
processor sees the FLAT record as its evaluation root.
|
|
15500
15504
|
`mappings[].extract` JSONPath MUST anchor directly at
|
|
15501
15505
|
`$` with NO `record.` segment — e.g. `"$.orderId"`,
|
|
15502
|
-
`"$.customer.email"
|
|
15506
|
+
`"$.customer.email"` on an object record, `"$[0].orderId"`
|
|
15507
|
+
on a grouped one; PLACEHOLDER extracts use
|
|
15503
15508
|
`"$.PLACEHOLDER_<field>"`.
|
|
15504
15509
|
This is the dominant Celigo idiom and the right choice for new transforms.
|
|
15505
15510
|
- `envelope`: the processor sees a wrapped object
|
|
15506
15511
|
`{record: {...}, job, testMode, settings, headers,
|
|
15507
15512
|
queryParams}` (plus `fileMeta` on file-provider steps).
|
|
15508
15513
|
`mappings[].extract` JSONPath MUST include the
|
|
15509
|
-
`record.` segment for record fields — e.g.
|
|
15510
|
-
`"$.record.orderId"
|
|
15514
|
+
`record.` segment for an object record's fields — e.g.
|
|
15515
|
+
`"$.record.orderId"`; a grouped record sits under `rows`
|
|
15516
|
+
instead (`"$.rows[0].orderId"`) — and reads `headers` and
|
|
15511
15517
|
`queryParams` beside it (`$.headers['X-Id']`);
|
|
15512
15518
|
PLACEHOLDER extracts use `"$.record.PLACEHOLDER_<field>"`.
|
|
15513
15519
|
Pick this only when the transform was authored against
|
|
15514
15520
|
the envelope shape on purpose.
|
|
15515
15521
|
- |-
|
|
15516
|
-
Handlebars expressions inside `extract`
|
|
15517
|
-
|
|
15518
|
-
|
|
15522
|
+
Handlebars expressions inside `extract` reference the
|
|
15523
|
+
`record` root on an object record (`{{record.field}}`,
|
|
15524
|
+
`{{dateFormat ... record.field}}`) and `rows` on a
|
|
15525
|
+
grouped one (`{{rows.0.field}}`), regardless of
|
|
15519
15526
|
`inputContext` — only JSONPath anchoring flips.
|
|
15527
|
+
- |-
|
|
15528
|
+
## Grouped records
|
|
15529
|
+
|
|
15530
|
+
When the export groups rows, each record is an array of
|
|
15531
|
+
rows. In `record` mode JSONPath roots at that array
|
|
15532
|
+
(`$[0].field`, `$[*]`); `envelope` binds it as `rows`,
|
|
15533
|
+
not `record` — `$.rows[0].field`, and an entry
|
|
15534
|
+
`$.rows[*]` whose children read `$.rows.field` — while
|
|
15535
|
+
`$.record[0].field` and `$.record[*]` resolve nothing,
|
|
15536
|
+
with no error (live, 2026-10-30). Handlebars extracts
|
|
15537
|
+
read it as `rows` in both modes (`{{rows.0.field}}`).
|
|
15520
15538
|
- |-
|
|
15521
15539
|
In `envelope` mode the output is still a bare record: a
|
|
15522
15540
|
`modify` transform returns the record with its mapped
|
|
@@ -15537,7 +15555,8 @@ components:
|
|
|
15537
15555
|
``mappings[].extract`` JSONPath values MUST anchor
|
|
15538
15556
|
directly at ``$`` with NO ``record.`` segment — for
|
|
15539
15557
|
example ``"$.orderId"`` or
|
|
15540
|
-
``"$.customer.email"
|
|
15558
|
+
``"$.customer.email"`` on an object record, and
|
|
15559
|
+
``"$[0].orderId"`` on a grouped one. PLACEHOLDER extracts use
|
|
15541
15560
|
``"$.PLACEHOLDER_<field>"``. This is the dominant
|
|
15542
15561
|
Celigo idiom and the right choice for new transforms.
|
|
15543
15562
|
|
|
@@ -15549,9 +15568,10 @@ components:
|
|
|
15549
15568
|
``record``) — the
|
|
15550
15569
|
same runtime-context envelope Handlebars / SQL /
|
|
15551
15570
|
GraphQL templates render against. ``mappings[].extract``
|
|
15552
|
-
JSONPath values for record fields MUST include the
|
|
15571
|
+
JSONPath values for an object record's fields MUST include the
|
|
15553
15572
|
``record.`` segment — for example ``"$.record.orderId"``
|
|
15554
|
-
or ``"$.record.customer.email"
|
|
15573
|
+
or ``"$.record.customer.email"``; a grouped record's rows
|
|
15574
|
+
sit under ``rows`` instead (``"$.rows[0].orderId"``) — while ``headers`` and
|
|
15555
15575
|
``queryParams`` are read beside it
|
|
15556
15576
|
(``"$.headers['X-Id']"``). PLACEHOLDER extracts
|
|
15557
15577
|
use ``"$.record.PLACEHOLDER_<field>"``. Pick this
|
|
@@ -15564,8 +15584,9 @@ components:
|
|
|
15564
15584
|
|
|
15565
15585
|
Handlebars expressions inside ``extract``
|
|
15566
15586
|
(``{{record.field}}``,
|
|
15567
|
-
``{{dateFormat ... record.field}}``, etc.)
|
|
15568
|
-
|
|
15587
|
+
``{{dateFormat ... record.field}}``, etc.) reference the
|
|
15588
|
+
runtime context's ``record`` root on an object record,
|
|
15589
|
+
and ``rows`` (``{{rows.0.field}}``) on a grouped one,
|
|
15569
15590
|
regardless of ``inputContext`` — the Handlebars runtime
|
|
15570
15591
|
always sees the wrapped envelope. Only JSONPath
|
|
15571
15592
|
behavior flips with this field.
|
|
@@ -16426,8 +16447,8 @@ components:
|
|
|
16426
16447
|
**Structure**
|
|
16427
16448
|
|
|
16428
16449
|
The mock output must follow the integrator.io canonical format, which consists of a
|
|
16429
|
-
`page_of_records` array
|
|
16430
|
-
property that contains the actual data fields
|
|
16450
|
+
`page_of_records` array of items. On an export that does not group rows, each item has a
|
|
16451
|
+
`record` property that contains the actual data fields:
|
|
16431
16452
|
|
|
16432
16453
|
```json
|
|
16433
16454
|
{
|
|
@@ -16444,6 +16465,19 @@ components:
|
|
|
16444
16465
|
}
|
|
16445
16466
|
```
|
|
16446
16467
|
|
|
16468
|
+
An export that groups rows (`groupByFields`) produces records that are arrays of rows, and
|
|
16469
|
+
each item then carries `rows` instead of `record`, holding the rows of one grouped record. A
|
|
16470
|
+
flow test run saves a grouped export's records in this form:
|
|
16471
|
+
|
|
16472
|
+
```json
|
|
16473
|
+
{
|
|
16474
|
+
"page_of_records": [
|
|
16475
|
+
{ "rows": [ { "field1": "value1" }, { "field1": "value2" } ] },
|
|
16476
|
+
...
|
|
16477
|
+
]
|
|
16478
|
+
}
|
|
16479
|
+
```
|
|
16480
|
+
|
|
16447
16481
|
**Usage**
|
|
16448
16482
|
|
|
16449
16483
|
In a flow test run, and for an upstream lookup during a page-processor preview
|
|
@@ -16476,7 +16510,8 @@ components:
|
|
|
16476
16510
|
|
|
16477
16511
|
- Maximum of 10 records
|
|
16478
16512
|
- Maximum size of 1 MB
|
|
16479
|
-
- Must follow the canonical
|
|
16513
|
+
- Must follow one of the canonical formats shown above: every item `{"record": {...}}`, or
|
|
16514
|
+
on a grouped export every item `{"rows": [...]}`
|
|
16480
16515
|
|
|
16481
16516
|
Mock output can be populated automatically from preview data (which is the parsed response,
|
|
16482
16517
|
before `transform` / `filter`) or entered manually.
|
|
@@ -16518,6 +16553,22 @@ components:
|
|
|
16518
16553
|
categories:
|
|
16519
16554
|
- Electronics
|
|
16520
16555
|
- Accessories
|
|
16556
|
+
rows:
|
|
16557
|
+
type: array
|
|
16558
|
+
description: |
|
|
16559
|
+
The rows of one grouped record, present instead of `record` when the export
|
|
16560
|
+
groups rows (`groupByFields`). Every item of a grouped export's mock carries
|
|
16561
|
+
`rows`.
|
|
16562
|
+
items:
|
|
16563
|
+
type: object
|
|
16564
|
+
additionalProperties: true
|
|
16565
|
+
example:
|
|
16566
|
+
- orderId: SO-1001
|
|
16567
|
+
sku: SKU-100
|
|
16568
|
+
quantity: 2
|
|
16569
|
+
- orderId: SO-1001
|
|
16570
|
+
sku: SKU-200
|
|
16571
|
+
quantity: 1
|
|
16521
16572
|
example:
|
|
16522
16573
|
page_of_records:
|
|
16523
16574
|
- record:
|