@celigo/api-specs 0.2.99 → 0.2.101
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 +30 -6
- package/dist/api.yml +40 -6
- package/dist/asynchelper.yml +30 -6
- package/dist/export.yml +34 -7
- package/dist/flow.yml +50 -17
- package/dist/import.yml +57 -155
- package/dist/integration.yml +25 -8
- package/dist/tool.yml +331 -33
- package/package.json +1 -1
- package/schemas.json +1 -1
package/dist/ai-agent.yml
CHANGED
|
@@ -2118,7 +2118,11 @@ components:
|
|
|
2118
2118
|
- For regular fields: Set to the exact property name (e.g., "firstName", "price", "isActive")
|
|
2119
2119
|
- For object fields: Set to the object property name, then add child mappings in the 'mappings' array
|
|
2120
2120
|
- For array fields: Set to the array property name, then configure 'buildArrayHelper'
|
|
2121
|
-
-
|
|
2121
|
+
- Two structural blanks: the inner array item of an array of arrays (it has no field name),
|
|
2122
|
+
and the single top-level `objectarray` item of a `rows [ ]` mapping (the array output
|
|
2123
|
+
structure — see the array's description). A child-bearing wrapper and a source-only row that
|
|
2124
|
+
already exist in a saved document also stay unnamed when the tree is re-sent — filling in a
|
|
2125
|
+
name changes the output; it does not complete the row
|
|
2122
2126
|
|
|
2123
2127
|
IMPORTANT: Do NOT use dot notation (e.g., "customer.firstName") in this field. Instead, create proper
|
|
2124
2128
|
hierarchical structure with nested mappings:
|
|
@@ -2133,8 +2137,9 @@ components:
|
|
|
2133
2137
|
}
|
|
2134
2138
|
```
|
|
2135
2139
|
|
|
2136
|
-
When parsing existing mappings, empty
|
|
2137
|
-
|
|
2140
|
+
When parsing existing mappings, an empty `generate` inside a parent array is an inner array; an
|
|
2141
|
+
empty `generate` on the ONLY top-level item, with `dataType: objectarray`, is the `rows [ ]` JSON
|
|
2142
|
+
structure — array output, bound as `rows` in templates — and is intentional, not a missing name.
|
|
2138
2143
|
examples:
|
|
2139
2144
|
- name
|
|
2140
2145
|
- address
|
|
@@ -3115,6 +3120,12 @@ components:
|
|
|
3115
3120
|
object-array row left with no source, no destination and no remaining child `mappings` or
|
|
3116
3121
|
`buildArrayHelper` entries; a row with only one of the two, and a source-less, destination-less
|
|
3117
3122
|
wrapper that still has children, are kept.
|
|
3123
|
+
|
|
3124
|
+
The shape of the array is the mapper's **JSON structure**. Named top-level items produce an object
|
|
3125
|
+
record (`record { }`). Exactly one top-level item with `dataType: objectarray` and no `generate` is
|
|
3126
|
+
the `rows [ ]` structure: the mapped record is an array — usually one element per element of the
|
|
3127
|
+
source array that root's `buildArrayHelper` iterates — Handlebars templates such as `http.body`
|
|
3128
|
+
bind it as `rows` instead of `record`, and the mapping editor shows that row's destination disabled.
|
|
3118
3129
|
x-celigo-ai-guidance:
|
|
3119
3130
|
- |-
|
|
3120
3131
|
Rows that exist in the saved document — including `Draft` and `Inactive` rows and
|
|
@@ -3123,6 +3134,14 @@ components:
|
|
|
3123
3134
|
them. Only a row with neither source nor destination — and, for an object or
|
|
3124
3135
|
object-array row, no remaining children — can be left out; the save would drop it
|
|
3125
3136
|
anyway. A wrapper with children but no `generate` is kept by the save, so keep it.
|
|
3137
|
+
- |-
|
|
3138
|
+
A single unnamed top-level `objectarray` item is the `rows [ ]` JSON structure, not a
|
|
3139
|
+
missing destination: keep it unnamed when editing (naming it turns the output into an
|
|
3140
|
+
object, and a template that iterates `rows` then renders nothing), and author that
|
|
3141
|
+
shape only when the request body must be an array or a template iterates `rows`.
|
|
3142
|
+
The editor's save check accepts the unnamed root only in the `rows [ ]` structure;
|
|
3143
|
+
any other row with a source and no `generate` fails with "One or more destination
|
|
3144
|
+
field values not entered".
|
|
3126
3145
|
items:
|
|
3127
3146
|
type: object
|
|
3128
3147
|
properties:
|
|
@@ -3138,7 +3157,11 @@ components:
|
|
|
3138
3157
|
- For regular fields: Set to the exact property name (e.g., "firstName", "price", "isActive")
|
|
3139
3158
|
- For object fields: Set to the object property name, then add child mappings in the 'mappings' array
|
|
3140
3159
|
- For array fields: Set to the array property name, then configure 'buildArrayHelper'
|
|
3141
|
-
-
|
|
3160
|
+
- Two structural blanks: the inner array item of an array of arrays (it has no field name),
|
|
3161
|
+
and the single top-level `objectarray` item of a `rows [ ]` mapping (the array output
|
|
3162
|
+
structure — see the array's description). A child-bearing wrapper and a source-only row that
|
|
3163
|
+
already exist in a saved document also stay unnamed when the tree is re-sent — filling in a
|
|
3164
|
+
name changes the output; it does not complete the row
|
|
3142
3165
|
|
|
3143
3166
|
IMPORTANT: Do NOT use dot notation (e.g., "customer.firstName") in this field. Instead, create proper
|
|
3144
3167
|
hierarchical structure with nested mappings:
|
|
@@ -3153,8 +3176,9 @@ components:
|
|
|
3153
3176
|
}
|
|
3154
3177
|
```
|
|
3155
3178
|
|
|
3156
|
-
When parsing existing mappings, empty
|
|
3157
|
-
|
|
3179
|
+
When parsing existing mappings, an empty `generate` inside a parent array is an inner array; an
|
|
3180
|
+
empty `generate` on the ONLY top-level item, with `dataType: objectarray`, is the `rows [ ]` JSON
|
|
3181
|
+
structure — array output, bound as `rows` in templates — and is intentional, not a missing name.
|
|
3158
3182
|
examples:
|
|
3159
3183
|
- name
|
|
3160
3184
|
- address
|
package/dist/api.yml
CHANGED
|
@@ -1685,6 +1685,10 @@ paths:
|
|
|
1685
1685
|
`runId` is the parent `flowJob._id`.
|
|
1686
1686
|
|
|
1687
1687
|
Test-run invocations do **not** surface in `GET /v1/apis/{_id}/logs`.
|
|
1688
|
+
|
|
1689
|
+
Test runs never paginate, whatever `pagination.enabled` says: the captured success
|
|
1690
|
+
response carries no `pagination` object, and a `Celigo-Next-Cursor` entry in
|
|
1691
|
+
`mockRequest.headers` is not validated — a malformed value does not fail the run.
|
|
1688
1692
|
parameters:
|
|
1689
1693
|
- name: _id
|
|
1690
1694
|
in: path
|
|
@@ -3527,7 +3531,8 @@ components:
|
|
|
3527
3531
|
Callers fetch the next page by resending the request unchanged with
|
|
3528
3532
|
the cursor in the `Celigo-Next-Cursor` request header — for every
|
|
3529
3533
|
HTTP method; a `next_cursor` field in the request body is ordinary
|
|
3530
|
-
payload, not a cursor.
|
|
3534
|
+
payload, not a cursor. Resending a cursor returns the same page again.
|
|
3535
|
+
Cursor faults fail the invocation with `400`:
|
|
3531
3536
|
`invalid_cursor_format`, `cursor_signature_invalid` (the cursor was
|
|
3532
3537
|
altered), `cursor_version_unsupported`, `cursor_api_mismatch` (the
|
|
3533
3538
|
cursor was issued by a different API), `cursor_filter_mismatch` (the
|
|
@@ -3536,7 +3541,19 @@ components:
|
|
|
3536
3541
|
pagination is off). Cursors expire and are then rejected with `410
|
|
3537
3542
|
cursor_expired`; a response hook that turns the mapped body into a
|
|
3538
3543
|
non-object fails with `422 api_pagination_response_not_object`.
|
|
3539
|
-
|
|
3544
|
+
|
|
3545
|
+
Saving the volume-driver export — even with no changes — invalidates
|
|
3546
|
+
every cursor issued so far: the next call with one returns `200` with
|
|
3547
|
+
an empty final page, `{"pagination": {"has_more": false}}`, as if the
|
|
3548
|
+
source were exhausted; restart from the first page without a cursor.
|
|
3549
|
+
Saving the API document itself leaves issued cursors valid.
|
|
3550
|
+
A success response whose `statusCode` is `204` returns no body, so the
|
|
3551
|
+
`pagination` object and cursor are lost with it — a paginated API
|
|
3552
|
+
needs a body-bearing success status.
|
|
3553
|
+
|
|
3554
|
+
Absent from responses until set. A PUT that omits `pagination` keeps
|
|
3555
|
+
the stored value; send `{"enabled": null}` to clear it (the field is
|
|
3556
|
+
then absent again).
|
|
3540
3557
|
x-celigo-ai-guidance:
|
|
3541
3558
|
- |-
|
|
3542
3559
|
When calling a paginated API, read `pagination.next_cursor` from the
|
|
@@ -3544,7 +3561,11 @@ components:
|
|
|
3544
3561
|
the identical path, query string, and body; putting it in the body
|
|
3545
3562
|
returns the first page again, and adding or changing a query
|
|
3546
3563
|
parameter fails with 400 `cursor_filter_mismatch`. Loop until
|
|
3547
|
-
`has_more` is false — the final page carries no `next_cursor`.
|
|
3564
|
+
`has_more` is false — the final page carries no `next_cursor`. Saving
|
|
3565
|
+
the volume-driver export mid-walk ends the walk early without an
|
|
3566
|
+
error: the next cursor call returns an empty
|
|
3567
|
+
`{"pagination": {"has_more": false}}` page, so restart from the first
|
|
3568
|
+
page after any save of that export.
|
|
3548
3569
|
- |-
|
|
3549
3570
|
Script-mode APIs never paginate: POST and PUT silently drop
|
|
3550
3571
|
`pagination` (it never reads back), and `PATCH /pagination/enabled`
|
|
@@ -3560,9 +3581,15 @@ components:
|
|
|
3560
3581
|
with source paging configured; otherwise the write fails with
|
|
3561
3582
|
`422` `api_pagination_no_volume_driver` (no lookup at all),
|
|
3562
3583
|
`api_pagination_adapter_not_supported` (any other adaptor), or
|
|
3563
|
-
`api_pagination_source_not_paged` (lookup without paging).
|
|
3564
|
-
|
|
3565
|
-
|
|
3584
|
+
`api_pagination_source_not_paged` (lookup without paging). The
|
|
3585
|
+
same check repeats on every later save of the API and at every
|
|
3586
|
+
invocation while the stored value is true: if the volume driver
|
|
3587
|
+
loses its paging afterwards (the export save itself succeeds),
|
|
3588
|
+
every call fails with `400 api_pagination_source_not_paged` and
|
|
3589
|
+
every PUT or PATCH of the API — including one that omits
|
|
3590
|
+
`pagination` — is refused with the `422` until paging is restored
|
|
3591
|
+
or this flag is set to false. When false, a `Celigo-Next-Cursor`
|
|
3592
|
+
header is rejected with `400 cursor_not_supported_for_api`.
|
|
3566
3593
|
examples:
|
|
3567
3594
|
- true
|
|
3568
3595
|
x-celigo-ai-guidance:
|
|
@@ -3573,6 +3600,13 @@ components:
|
|
|
3573
3600
|
webhook, or other non-HTTP/Salesforce/NetSuite lookup with 422
|
|
3574
3601
|
`api_pagination_adapter_not_supported`, and an API with no lookup
|
|
3575
3602
|
with 422 `api_pagination_no_volume_driver`.
|
|
3603
|
+
- |-
|
|
3604
|
+
Before removing paging from the volume-driver export of an API
|
|
3605
|
+
whose `enabled` is true, PATCH `/pagination/enabled` to false
|
|
3606
|
+
first (that PATCH succeeds even while the lookup is unpaged).
|
|
3607
|
+
Otherwise the export save returns 200 but every call to the API
|
|
3608
|
+
fails 400 `api_pagination_source_not_paged` and every save of
|
|
3609
|
+
the API fails 422 with the same code.
|
|
3576
3610
|
script:
|
|
3577
3611
|
$ref: '#/components/schemas/Script'
|
|
3578
3612
|
builder:
|
package/dist/asynchelper.yml
CHANGED
|
@@ -505,7 +505,11 @@ components:
|
|
|
505
505
|
- For regular fields: Set to the exact property name (e.g., "firstName", "price", "isActive")
|
|
506
506
|
- For object fields: Set to the object property name, then add child mappings in the 'mappings' array
|
|
507
507
|
- For array fields: Set to the array property name, then configure 'buildArrayHelper'
|
|
508
|
-
-
|
|
508
|
+
- Two structural blanks: the inner array item of an array of arrays (it has no field name),
|
|
509
|
+
and the single top-level `objectarray` item of a `rows [ ]` mapping (the array output
|
|
510
|
+
structure — see the array's description). A child-bearing wrapper and a source-only row that
|
|
511
|
+
already exist in a saved document also stay unnamed when the tree is re-sent — filling in a
|
|
512
|
+
name changes the output; it does not complete the row
|
|
509
513
|
|
|
510
514
|
IMPORTANT: Do NOT use dot notation (e.g., "customer.firstName") in this field. Instead, create proper
|
|
511
515
|
hierarchical structure with nested mappings:
|
|
@@ -520,8 +524,9 @@ components:
|
|
|
520
524
|
}
|
|
521
525
|
```
|
|
522
526
|
|
|
523
|
-
When parsing existing mappings, empty
|
|
524
|
-
|
|
527
|
+
When parsing existing mappings, an empty `generate` inside a parent array is an inner array; an
|
|
528
|
+
empty `generate` on the ONLY top-level item, with `dataType: objectarray`, is the `rows [ ]` JSON
|
|
529
|
+
structure — array output, bound as `rows` in templates — and is intentional, not a missing name.
|
|
525
530
|
examples:
|
|
526
531
|
- name
|
|
527
532
|
- address
|
|
@@ -1502,6 +1507,12 @@ components:
|
|
|
1502
1507
|
object-array row left with no source, no destination and no remaining child `mappings` or
|
|
1503
1508
|
`buildArrayHelper` entries; a row with only one of the two, and a source-less, destination-less
|
|
1504
1509
|
wrapper that still has children, are kept.
|
|
1510
|
+
|
|
1511
|
+
The shape of the array is the mapper's **JSON structure**. Named top-level items produce an object
|
|
1512
|
+
record (`record { }`). Exactly one top-level item with `dataType: objectarray` and no `generate` is
|
|
1513
|
+
the `rows [ ]` structure: the mapped record is an array — usually one element per element of the
|
|
1514
|
+
source array that root's `buildArrayHelper` iterates — Handlebars templates such as `http.body`
|
|
1515
|
+
bind it as `rows` instead of `record`, and the mapping editor shows that row's destination disabled.
|
|
1505
1516
|
x-celigo-ai-guidance:
|
|
1506
1517
|
- |-
|
|
1507
1518
|
Rows that exist in the saved document — including `Draft` and `Inactive` rows and
|
|
@@ -1510,6 +1521,14 @@ components:
|
|
|
1510
1521
|
them. Only a row with neither source nor destination — and, for an object or
|
|
1511
1522
|
object-array row, no remaining children — can be left out; the save would drop it
|
|
1512
1523
|
anyway. A wrapper with children but no `generate` is kept by the save, so keep it.
|
|
1524
|
+
- |-
|
|
1525
|
+
A single unnamed top-level `objectarray` item is the `rows [ ]` JSON structure, not a
|
|
1526
|
+
missing destination: keep it unnamed when editing (naming it turns the output into an
|
|
1527
|
+
object, and a template that iterates `rows` then renders nothing), and author that
|
|
1528
|
+
shape only when the request body must be an array or a template iterates `rows`.
|
|
1529
|
+
The editor's save check accepts the unnamed root only in the `rows [ ]` structure;
|
|
1530
|
+
any other row with a source and no `generate` fails with "One or more destination
|
|
1531
|
+
field values not entered".
|
|
1513
1532
|
items:
|
|
1514
1533
|
type: object
|
|
1515
1534
|
properties:
|
|
@@ -1525,7 +1544,11 @@ components:
|
|
|
1525
1544
|
- For regular fields: Set to the exact property name (e.g., "firstName", "price", "isActive")
|
|
1526
1545
|
- For object fields: Set to the object property name, then add child mappings in the 'mappings' array
|
|
1527
1546
|
- For array fields: Set to the array property name, then configure 'buildArrayHelper'
|
|
1528
|
-
-
|
|
1547
|
+
- Two structural blanks: the inner array item of an array of arrays (it has no field name),
|
|
1548
|
+
and the single top-level `objectarray` item of a `rows [ ]` mapping (the array output
|
|
1549
|
+
structure — see the array's description). A child-bearing wrapper and a source-only row that
|
|
1550
|
+
already exist in a saved document also stay unnamed when the tree is re-sent — filling in a
|
|
1551
|
+
name changes the output; it does not complete the row
|
|
1529
1552
|
|
|
1530
1553
|
IMPORTANT: Do NOT use dot notation (e.g., "customer.firstName") in this field. Instead, create proper
|
|
1531
1554
|
hierarchical structure with nested mappings:
|
|
@@ -1540,8 +1563,9 @@ components:
|
|
|
1540
1563
|
}
|
|
1541
1564
|
```
|
|
1542
1565
|
|
|
1543
|
-
When parsing existing mappings, empty
|
|
1544
|
-
|
|
1566
|
+
When parsing existing mappings, an empty `generate` inside a parent array is an inner array; an
|
|
1567
|
+
empty `generate` on the ONLY top-level item, with `dataType: objectarray`, is the `rows [ ]` JSON
|
|
1568
|
+
structure — array output, bound as `rows` in templates — and is intentional, not a missing name.
|
|
1545
1569
|
examples:
|
|
1546
1570
|
- name
|
|
1547
1571
|
- address
|
package/dist/export.yml
CHANGED
|
@@ -6558,7 +6558,10 @@ components:
|
|
|
6558
6558
|
- '{"records": [{"id": "{{record.id}}", "exported": true}]}'
|
|
6559
6559
|
paging:
|
|
6560
6560
|
type: object
|
|
6561
|
-
description:
|
|
6561
|
+
description: |-
|
|
6562
|
+
Controls how the export requests subsequent pages when the API returns multi-page responses. The `method` field determines which companion fields are required and how each next page is requested. For the page, skip, and token methods, reference the matching pagination variable (`{{export.http.paging.page}}`, `{{export.http.paging.skip}}`, or `{{export.http.paging.token}}`) in the relative URI or request body — misconfigured pagination is a common cause of incomplete data retrieval.
|
|
6563
|
+
|
|
6564
|
+
When this export is the first lookup of a builder-mode API with `pagination.enabled` set, it is that API's volume driver: saving the export (even unchanged) invalidates the API's issued cursors, so a caller mid-walk gets an empty final page, and removing `paging` is accepted on save but makes every call to the API fail with `400 api_pagination_source_not_paged` until paging is restored or the API's flag is turned off.
|
|
6562
6565
|
x-celigo-ai-guidance:
|
|
6563
6566
|
- Configuration object for navigating through multi-page API responses.
|
|
6564
6567
|
- |-
|
|
@@ -12308,7 +12311,11 @@ components:
|
|
|
12308
12311
|
- For regular fields: Set to the exact property name (e.g., "firstName", "price", "isActive")
|
|
12309
12312
|
- For object fields: Set to the object property name, then add child mappings in the 'mappings' array
|
|
12310
12313
|
- For array fields: Set to the array property name, then configure 'buildArrayHelper'
|
|
12311
|
-
-
|
|
12314
|
+
- Two structural blanks: the inner array item of an array of arrays (it has no field name),
|
|
12315
|
+
and the single top-level `objectarray` item of a `rows [ ]` mapping (the array output
|
|
12316
|
+
structure — see the array's description). A child-bearing wrapper and a source-only row that
|
|
12317
|
+
already exist in a saved document also stay unnamed when the tree is re-sent — filling in a
|
|
12318
|
+
name changes the output; it does not complete the row
|
|
12312
12319
|
|
|
12313
12320
|
IMPORTANT: Do NOT use dot notation (e.g., "customer.firstName") in this field. Instead, create proper
|
|
12314
12321
|
hierarchical structure with nested mappings:
|
|
@@ -12323,8 +12330,9 @@ components:
|
|
|
12323
12330
|
}
|
|
12324
12331
|
```
|
|
12325
12332
|
|
|
12326
|
-
When parsing existing mappings, empty
|
|
12327
|
-
|
|
12333
|
+
When parsing existing mappings, an empty `generate` inside a parent array is an inner array; an
|
|
12334
|
+
empty `generate` on the ONLY top-level item, with `dataType: objectarray`, is the `rows [ ]` JSON
|
|
12335
|
+
structure — array output, bound as `rows` in templates — and is intentional, not a missing name.
|
|
12328
12336
|
examples:
|
|
12329
12337
|
- name
|
|
12330
12338
|
- address
|
|
@@ -13305,6 +13313,12 @@ components:
|
|
|
13305
13313
|
object-array row left with no source, no destination and no remaining child `mappings` or
|
|
13306
13314
|
`buildArrayHelper` entries; a row with only one of the two, and a source-less, destination-less
|
|
13307
13315
|
wrapper that still has children, are kept.
|
|
13316
|
+
|
|
13317
|
+
The shape of the array is the mapper's **JSON structure**. Named top-level items produce an object
|
|
13318
|
+
record (`record { }`). Exactly one top-level item with `dataType: objectarray` and no `generate` is
|
|
13319
|
+
the `rows [ ]` structure: the mapped record is an array — usually one element per element of the
|
|
13320
|
+
source array that root's `buildArrayHelper` iterates — Handlebars templates such as `http.body`
|
|
13321
|
+
bind it as `rows` instead of `record`, and the mapping editor shows that row's destination disabled.
|
|
13308
13322
|
x-celigo-ai-guidance:
|
|
13309
13323
|
- |-
|
|
13310
13324
|
Rows that exist in the saved document — including `Draft` and `Inactive` rows and
|
|
@@ -13313,6 +13327,14 @@ components:
|
|
|
13313
13327
|
them. Only a row with neither source nor destination — and, for an object or
|
|
13314
13328
|
object-array row, no remaining children — can be left out; the save would drop it
|
|
13315
13329
|
anyway. A wrapper with children but no `generate` is kept by the save, so keep it.
|
|
13330
|
+
- |-
|
|
13331
|
+
A single unnamed top-level `objectarray` item is the `rows [ ]` JSON structure, not a
|
|
13332
|
+
missing destination: keep it unnamed when editing (naming it turns the output into an
|
|
13333
|
+
object, and a template that iterates `rows` then renders nothing), and author that
|
|
13334
|
+
shape only when the request body must be an array or a template iterates `rows`.
|
|
13335
|
+
The editor's save check accepts the unnamed root only in the `rows [ ]` structure;
|
|
13336
|
+
any other row with a source and no `generate` fails with "One or more destination
|
|
13337
|
+
field values not entered".
|
|
13316
13338
|
items:
|
|
13317
13339
|
type: object
|
|
13318
13340
|
properties:
|
|
@@ -13328,7 +13350,11 @@ components:
|
|
|
13328
13350
|
- For regular fields: Set to the exact property name (e.g., "firstName", "price", "isActive")
|
|
13329
13351
|
- For object fields: Set to the object property name, then add child mappings in the 'mappings' array
|
|
13330
13352
|
- For array fields: Set to the array property name, then configure 'buildArrayHelper'
|
|
13331
|
-
-
|
|
13353
|
+
- Two structural blanks: the inner array item of an array of arrays (it has no field name),
|
|
13354
|
+
and the single top-level `objectarray` item of a `rows [ ]` mapping (the array output
|
|
13355
|
+
structure — see the array's description). A child-bearing wrapper and a source-only row that
|
|
13356
|
+
already exist in a saved document also stay unnamed when the tree is re-sent — filling in a
|
|
13357
|
+
name changes the output; it does not complete the row
|
|
13332
13358
|
|
|
13333
13359
|
IMPORTANT: Do NOT use dot notation (e.g., "customer.firstName") in this field. Instead, create proper
|
|
13334
13360
|
hierarchical structure with nested mappings:
|
|
@@ -13343,8 +13369,9 @@ components:
|
|
|
13343
13369
|
}
|
|
13344
13370
|
```
|
|
13345
13371
|
|
|
13346
|
-
When parsing existing mappings, empty
|
|
13347
|
-
|
|
13372
|
+
When parsing existing mappings, an empty `generate` inside a parent array is an inner array; an
|
|
13373
|
+
empty `generate` on the ONLY top-level item, with `dataType: objectarray`, is the `rows [ ]` JSON
|
|
13374
|
+
structure — array output, bound as `rows` in templates — and is intentional, not a missing name.
|
|
13348
13375
|
examples:
|
|
13349
13376
|
- name
|
|
13350
13377
|
- address
|
package/dist/flow.yml
CHANGED
|
@@ -1006,12 +1006,13 @@ paths:
|
|
|
1006
1006
|
collection-level endpoint used by the UI's "move to section" action — it updates multiple flows in a
|
|
1007
1007
|
single call rather than requiring a per-flow `PUT /v1/flows/{_id}` with a modified `_flowGroupingId`.
|
|
1008
1008
|
|
|
1009
|
-
|
|
1010
|
-
|
|
1011
|
-
|
|
1009
|
+
Every flow in `_flowIds` must belong to the same integration, and `_flowGroupingId` must be one
|
|
1010
|
+
of that integration's `flowGroupings` — a grouping that does not exist or belongs to another
|
|
1011
|
+
integration is rejected with 400 `flowgrouping_update_error`. Pass `_flowGroupingId: null` or
|
|
1012
|
+
omit it to move the flows back to the integration's default (Unassigned) section.
|
|
1012
1013
|
|
|
1013
|
-
Flow groupings are managed on the parent integration (`PUT /v1/integrations/{_id}`
|
|
1014
|
-
modified `flowGroupings[]` array) — create the group first, then call this to populate it.
|
|
1014
|
+
Flow groupings are managed on the parent integration (`PUT` or `PATCH /v1/integrations/{_id}`
|
|
1015
|
+
with a modified `flowGroupings[]` array) — create the group first, then call this to populate it.
|
|
1015
1016
|
requestBody:
|
|
1016
1017
|
required: true
|
|
1017
1018
|
content:
|
|
@@ -1035,10 +1036,37 @@ paths:
|
|
|
1035
1036
|
responses:
|
|
1036
1037
|
'204':
|
|
1037
1038
|
description: |-
|
|
1038
|
-
Flows reassigned. Empty response body.
|
|
1039
|
-
|
|
1039
|
+
Flows reassigned. Empty response body. Flow ids that match no flow in the account are
|
|
1040
|
+
silently skipped, so an unknown `_flowIds` entry (or an empty list) also answers 204.
|
|
1040
1041
|
'400':
|
|
1041
|
-
|
|
1042
|
+
description: |-
|
|
1043
|
+
The request was rejected: the flows span more than one integration (`invalid_request`),
|
|
1044
|
+
the grouping is not one of the flows' integration's `flowGroupings`
|
|
1045
|
+
(`flowgrouping_update_error`), or an id is not a well-formed ObjectId (`invalid_ref` —
|
|
1046
|
+
an empty-string `_flowGroupingId` fails this way; use `null` to ungroup).
|
|
1047
|
+
content:
|
|
1048
|
+
application/json:
|
|
1049
|
+
schema:
|
|
1050
|
+
$ref: '#/components/schemas/Error'
|
|
1051
|
+
examples:
|
|
1052
|
+
differentIntegrations:
|
|
1053
|
+
summary: Flows belong to different integrations
|
|
1054
|
+
value:
|
|
1055
|
+
errors:
|
|
1056
|
+
- code: invalid_request
|
|
1057
|
+
message: Unable to update flows for flowgrouping, since flows belongs to different integrations.
|
|
1058
|
+
groupingNotInIntegration:
|
|
1059
|
+
summary: Grouping does not exist or belongs to another integration
|
|
1060
|
+
value:
|
|
1061
|
+
errors:
|
|
1062
|
+
- code: flowgrouping_update_error
|
|
1063
|
+
message: 'Failed to update flow grouping for flow: Order sync. Error: Sorry, Failed to link flowGroupingId. FlowGrouping does not belong to Integration: 6ac1ef49fa3e52974f433c1b.'
|
|
1064
|
+
malformedGroupingId:
|
|
1065
|
+
summary: Grouping id is not an ObjectId (including an empty string)
|
|
1066
|
+
value:
|
|
1067
|
+
errors:
|
|
1068
|
+
- code: invalid_ref
|
|
1069
|
+
message: Please provide a valid _flowGroupingId.
|
|
1042
1070
|
'401':
|
|
1043
1071
|
$ref: '#/components/responses/401-unauthorized'
|
|
1044
1072
|
'404':
|
|
@@ -5513,10 +5541,12 @@ components:
|
|
|
5513
5541
|
format: objectId
|
|
5514
5542
|
description: |-
|
|
5515
5543
|
Flow grouping for organizing related flows in the UI. References an entry in the
|
|
5516
|
-
integration's `flowGroupings` array (not a standalone collection);
|
|
5517
|
-
|
|
5518
|
-
|
|
5519
|
-
`
|
|
5544
|
+
integration's `flowGroupings` array (not a standalone collection); an id that is not
|
|
5545
|
+
one of the flow's own integration's groupings — nonexistent, or a grouping of another
|
|
5546
|
+
integration — fails POST and PUT with 422 `flowgrouping_not_belong`. Omit it or pass
|
|
5547
|
+
`null` to leave the flow in the integration's default section. At runtime the flow's
|
|
5548
|
+
steps read the referenced group's `settings` under the fixed scope key `flowGrouping`
|
|
5549
|
+
(e.g. `{{settings.flowGrouping.<fieldId>}}`).
|
|
5520
5550
|
examples:
|
|
5521
5551
|
- 60a2c4e6f321d800129a1a3c
|
|
5522
5552
|
_keepDeltaBehindFlowId:
|
|
@@ -6170,7 +6200,9 @@ components:
|
|
|
6170
6200
|
properties:
|
|
6171
6201
|
_flowIds:
|
|
6172
6202
|
type: array
|
|
6173
|
-
description:
|
|
6203
|
+
description: |-
|
|
6204
|
+
The flows to move. All must belong to the same integration as the target flow group
|
|
6205
|
+
(400 `invalid_request` otherwise); ids that match no flow are silently skipped.
|
|
6174
6206
|
minItems: 1
|
|
6175
6207
|
items:
|
|
6176
6208
|
type: string
|
|
@@ -6180,13 +6212,14 @@ components:
|
|
|
6180
6212
|
type:
|
|
6181
6213
|
- string
|
|
6182
6214
|
- 'null'
|
|
6215
|
+
format: objectId
|
|
6183
6216
|
description: |-
|
|
6184
|
-
|
|
6185
|
-
|
|
6186
|
-
integration's default section
|
|
6217
|
+
Grouping within the integration's `flowGroupings[]` to move the flows into. Must belong to
|
|
6218
|
+
the flows' own integration (400 `flowgrouping_update_error` otherwise). Pass `null` or omit
|
|
6219
|
+
it to move the flows back to the integration's default section; an empty string is rejected
|
|
6220
|
+
with 400 `invalid_ref`.
|
|
6187
6221
|
required:
|
|
6188
6222
|
- _flowIds
|
|
6189
|
-
- _flowGroupingId
|
|
6190
6223
|
FlowStepError:
|
|
6191
6224
|
type: object
|
|
6192
6225
|
description: |-
|