@celigo/api-specs 0.2.128 → 0.2.129
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 +8 -9
- package/dist/alert.yml +2 -2
- package/dist/asynchelper.yml +5 -6
- package/dist/audit.yml +6 -6
- package/dist/editransaction.yml +2 -2
- package/dist/eventreport.yml +2 -2
- package/dist/export.yml +14 -16
- package/dist/filedefinitionrules.yml +1 -1
- package/dist/flow.yml +3 -3
- package/dist/import.yml +78 -141
- package/dist/job.yml +2 -2
- package/dist/notification.yml +6 -6
- package/dist/script.yml +2 -2
- package/dist/stack.yml +2 -2
- package/dist/subscription.yml +6 -5
- package/dist/sync.yml +12 -12
- package/dist/tool.yml +80 -144
- package/package.json +1 -1
- package/schemas.json +1 -1
package/dist/import.yml
CHANGED
|
@@ -849,12 +849,12 @@ paths:
|
|
|
849
849
|
value:
|
|
850
850
|
data:
|
|
851
851
|
- _id: 5d67ab3992080024596e0d8f
|
|
852
|
-
email:
|
|
852
|
+
email: jane@example.com
|
|
853
853
|
verified: true
|
|
854
854
|
developer: true
|
|
855
|
-
name:
|
|
856
|
-
role:
|
|
857
|
-
company:
|
|
855
|
+
name: Jane Doe
|
|
856
|
+
role: Engineer
|
|
857
|
+
company: acme
|
|
858
858
|
createdAt: '2019-08-29T10:38:50.396Z'
|
|
859
859
|
lastModified: '2024-09-25T14:17:50.802Z'
|
|
860
860
|
importConfig:
|
|
@@ -903,8 +903,8 @@ paths:
|
|
|
903
903
|
data:
|
|
904
904
|
nlobjFieldIds:
|
|
905
905
|
custrecord_user_id: 5d67ab3992080024596e0d8f
|
|
906
|
-
custrecord_user_email:
|
|
907
|
-
custrecord_user_name:
|
|
906
|
+
custrecord_user_email: jane@example.com
|
|
907
|
+
custrecord_user_name: Jane Doe
|
|
908
908
|
custrecord_user_onboarded: 'true'
|
|
909
909
|
nlobjSublistIds: {}
|
|
910
910
|
originalSize: 1
|
|
@@ -1998,30 +1998,19 @@ components:
|
|
|
1998
1998
|
would be bare ``{{{jsonSerialize record}}}`` with nothing
|
|
1999
1999
|
around it, you don't need a template at all.
|
|
2000
2000
|
|
|
2001
|
-
Production frequency: roughly 1 in 3 active HTTPImports leaves
|
|
2002
|
-
this field empty (~35% null / empty array); closer to 1 in 2
|
|
2003
|
-
once you count the additional ~12% of body entries that are
|
|
2004
|
-
blank strings. The dominant case is "no body template".
|
|
2005
|
-
|
|
2006
2001
|
Leave undefined for:
|
|
2007
2002
|
- REST APIs accepting JSON CRUD payloads (the destination
|
|
2008
2003
|
already wants exactly the post-mapped record shape).
|
|
2009
|
-
- GraphQL destinations — do NOT author the body template here.
|
|
2010
|
-
The dedicated GraphQL specialist owns the
|
|
2011
|
-
``{query, operationName, variables}`` shape and routes the
|
|
2012
|
-
post-mapped record into ``variables`` automatically. Roughly
|
|
2013
|
-
96% of all wrapped-``jsonSerialize record`` uses in production
|
|
2014
|
-
are GraphQL mutations; every one of those should go through
|
|
2015
|
-
the GraphQL specialist, not through this body template.
|
|
2016
2004
|
- Any case where the destination wants the mapped record as-is.
|
|
2005
|
+
|
|
2006
|
+
GraphQL destinations are different: the body is the stringified
|
|
2007
|
+
``{query, operationName, variables}`` envelope described under
|
|
2008
|
+
``formType``, with the post-mapped record passed in
|
|
2009
|
+
``variables``.
|
|
2017
2010
|
- |-
|
|
2018
|
-
## SET THIS FIELD when one of the
|
|
2011
|
+
## SET THIS FIELD when one of the patterns below applies
|
|
2019
2012
|
|
|
2020
|
-
|
|
2021
|
-
across HTTPImports in the last 30 days (Celigo-internal users
|
|
2022
|
-
excluded). Choose the pattern that fits the destination's
|
|
2023
|
-
shape, then write marker ``instructions`` describing intent
|
|
2024
|
-
(let the Handlebars specialist produce the literal template).
|
|
2013
|
+
Choose the pattern that fits the destination's shape.
|
|
2025
2014
|
|
|
2026
2015
|
### Pattern A — ``{{{jsonSerialize record}}}`` inside a static wrapper
|
|
2027
2016
|
|
|
@@ -2033,13 +2022,12 @@ components:
|
|
|
2033
2022
|
destination's field shape; the body owns the transport-level
|
|
2034
2023
|
scaffolding.
|
|
2035
2024
|
|
|
2036
|
-
|
|
2037
|
-
|
|
2038
|
-
|
|
2039
|
-
|
|
2040
|
-
"add a batch header with timestamp + interface name", etc.).
|
|
2025
|
+
Rare for non-GraphQL destinations, but real; the use cases
|
|
2026
|
+
that fit are obvious when the user describes them ("wrap each
|
|
2027
|
+
request in a SQS-style message envelope", "add a batch header
|
|
2028
|
+
with timestamp + interface name", etc.).
|
|
2041
2029
|
|
|
2042
|
-
|
|
2030
|
+
Typical shapes:
|
|
2043
2031
|
- Message-bus envelope:
|
|
2044
2032
|
``{"MessageBody": {"class": "EntityUpdate", "payload": {{{jsonSerialize record}}}}}``
|
|
2045
2033
|
- Metadata wrap:
|
|
@@ -2050,8 +2038,7 @@ components:
|
|
|
2050
2038
|
NEVER emit BARE ``{{{jsonSerialize record}}}`` with no wrapper.
|
|
2051
2039
|
The platform sends the post-mapped record as JSON automatically
|
|
2052
2040
|
when body is undefined; bare ``jsonSerialize record`` produces
|
|
2053
|
-
identical wire output
|
|
2054
|
-
entries — every one of those is redundant config the user has
|
|
2041
|
+
identical wire output, so it is redundant config the user has
|
|
2055
2042
|
to maintain for zero benefit.
|
|
2056
2043
|
|
|
2057
2044
|
### Pattern B — Batch / page wrapper around mapped records
|
|
@@ -2098,15 +2085,14 @@ components:
|
|
|
2098
2085
|
anti-pattern is the ``jsonSerialize`` wrap, not any particular
|
|
2099
2086
|
path shape.
|
|
2100
2087
|
|
|
2101
|
-
-
|
|
2088
|
+
- Essentially never needed.
|
|
2102
2089
|
- Failure mode: the body validator sees the PRE-mapped sample
|
|
2103
2090
|
shape, can't resolve the post-mapped path during validation,
|
|
2104
2091
|
and ``jsonSerialize`` on an unresolved path raises
|
|
2105
2092
|
``Helper {{jsonSerialize}} expects an argument`` — the
|
|
2106
2093
|
template fails validation even when it would render at
|
|
2107
|
-
runtime.
|
|
2108
|
-
|
|
2109
|
-
failure.
|
|
2094
|
+
runtime. Variations (``getValue`` wrappers, alternate paths)
|
|
2095
|
+
fail the same way.
|
|
2110
2096
|
|
|
2111
2097
|
If you find yourself wanting to reference a per-field
|
|
2112
2098
|
post-mapped scalar wrapped in ``jsonSerialize``, your situation
|
|
@@ -2169,16 +2155,6 @@ components:
|
|
|
2169
2155
|
before choosing: form-data APIs get the parts array above;
|
|
2170
2156
|
multipart/related APIs get the hand-authored document. Never
|
|
2171
2157
|
mix the two shapes in one body.
|
|
2172
|
-
- |-
|
|
2173
|
-
## Marker instructions style
|
|
2174
|
-
|
|
2175
|
-
When emitting a ``$agent: handlebars`` marker at this field,
|
|
2176
|
-
write the ``instructions`` as INTENT (what the body should
|
|
2177
|
-
produce: destination fields, shape, encoding), not as literal
|
|
2178
|
-
Handlebars syntax. Embedding literal ``{{{jsonSerialize record.X}}}``
|
|
2179
|
-
in the instructions risks the specialist following it verbatim
|
|
2180
|
-
even when a simpler template would work — one of the ways the
|
|
2181
|
-
per-field anti-pattern above gets introduced.
|
|
2182
2158
|
examples:
|
|
2183
2159
|
- - '{"name": "{{record.name}}", "email": "{{record.email}}"}'
|
|
2184
2160
|
- - '{"requestData": {{{jsonSerialize record}}}}'
|
|
@@ -2270,9 +2246,7 @@ components:
|
|
|
2270
2246
|
- |-
|
|
2271
2247
|
The value MUST match the ``name`` of a lookup entry in ``http.lookups``.
|
|
2272
2248
|
The lookup config itself (HTTP path, method, extract,
|
|
2273
|
-
fallback chain) is
|
|
2274
|
-
specialist via a ``$agent:
|
|
2275
|
-
lookup`` marker.
|
|
2249
|
+
fallback chain) is defined separately, in that entry.
|
|
2276
2250
|
- |-
|
|
2277
2251
|
## Mutually exclusive with ``existingExtract``
|
|
2278
2252
|
|
|
@@ -2752,9 +2726,8 @@ components:
|
|
|
2752
2726
|
|
|
2753
2727
|
The Celigo platform persists lookups in TWO locations on an HTTP
|
|
2754
2728
|
import: top-level ``lookups`` and ``http.lookups``. Both arrays
|
|
2755
|
-
MUST hold byte-for-byte identical content
|
|
2756
|
-
|
|
2757
|
-
callers never have to write both manually.
|
|
2729
|
+
MUST hold byte-for-byte identical content, so write both on
|
|
2730
|
+
every save.
|
|
2758
2731
|
- |-
|
|
2759
2732
|
## Static vs dynamic vs cached
|
|
2760
2733
|
|
|
@@ -3030,7 +3003,7 @@ components:
|
|
|
3030
3003
|
computedObject.fileName." — an error the platform labels source `internal` although the
|
|
3031
3004
|
template is the cause. The run-time-proven way to keep the source file's name on a
|
|
3032
3005
|
`blob: true` import is `{{record.fileMeta.fileName}}` on `file.fileName` with this field
|
|
3033
|
-
omitted (
|
|
3006
|
+
omitted (recorded runs of an FTP blob import set exactly that); the same template
|
|
3034
3007
|
on this field has not been run. The field's editor preview (data version 1, its default)
|
|
3035
3008
|
exposes the record as `data` —
|
|
3036
3009
|
the `{blobKey, fileMeta}` record on a blob import, the page's record array otherwise —
|
|
@@ -3410,8 +3383,8 @@ components:
|
|
|
3410
3383
|
## Mirror invariant
|
|
3411
3384
|
The Celigo platform persists lookups in TWO locations on a JDBC
|
|
3412
3385
|
import: top-level `lookups` and `jdbc.lookups`. Both arrays
|
|
3413
|
-
must hold byte-for-byte identical content
|
|
3414
|
-
|
|
3386
|
+
must hold byte-for-byte identical content, so write both on every
|
|
3387
|
+
save.
|
|
3415
3388
|
x-celigo-agent:
|
|
3416
3389
|
- lookup
|
|
3417
3390
|
Mongodb:
|
|
@@ -3890,25 +3863,22 @@ components:
|
|
|
3890
3863
|
substitutions FIRST against the incoming source record (pre-mapped),
|
|
3891
3864
|
then the substituted expression is sent to NetSuite as a saved-search query.
|
|
3892
3865
|
- |-
|
|
3893
|
-
## Handlebars conventions
|
|
3866
|
+
## Handlebars conventions
|
|
3894
3867
|
|
|
3895
3868
|
- **No `record.` prefix** — substitutions reference top-level
|
|
3896
3869
|
source-record fields directly. `{{{id}}}` / `{{{Id}}}` /
|
|
3897
3870
|
`{{{externalid}}}` / `{{{[Internal ID]}}}` — NOT
|
|
3898
|
-
`{{{record.id}}}`.
|
|
3899
|
-
|
|
3900
|
-
|
|
3901
|
-
|
|
3902
|
-
|
|
3903
|
-
where you want the platform's default HTML-escape (rare in
|
|
3904
|
-
this field).
|
|
3871
|
+
`{{{record.id}}}`. Top-level paths are the established
|
|
3872
|
+
convention.
|
|
3873
|
+
- **Triple braces `{{{...}}}`** are the preferred form;
|
|
3874
|
+
double-brace `{{...}}` also works for cases where you want
|
|
3875
|
+
the platform's default HTML-escape (rare in this field).
|
|
3905
3876
|
- **Bracket notation for field names with spaces or special
|
|
3906
3877
|
chars**: `{{{[Field With Spaces]}}}`, `{{{[Internal ID]}}}`.
|
|
3907
|
-
Anchored to ~10% of production expressions.
|
|
3908
3878
|
- |-
|
|
3909
3879
|
## Canonical patterns
|
|
3910
3880
|
|
|
3911
|
-
### Simple lookup by internal ID (most common
|
|
3881
|
+
### Simple lookup by internal ID (most common)
|
|
3912
3882
|
|
|
3913
3883
|
`["internalid","is","{{{id}}}"]`
|
|
3914
3884
|
|
|
@@ -3979,8 +3949,8 @@ components:
|
|
|
3979
3949
|
`is` / `equalto` / `internalid anyof` value to `isempty` before the
|
|
3980
3950
|
search. On `restletVersion: suiteapp2.0` that search is not treated as
|
|
3981
3951
|
"no match": it can return existing records, and `addupdate` then
|
|
3982
|
-
updates one of them — an unrelated record receives the mapping (
|
|
3983
|
-
|
|
3952
|
+
updates one of them — an unrelated record receives the mapping (for
|
|
3953
|
+
example, a `cant_modify_sub` error on a customer the record never
|
|
3984
3954
|
named). SuiteBundle and SuiteApp 1.0 discard a blank `internalid`
|
|
3985
3955
|
match and create. Design so the operational lookup never renders
|
|
3986
3956
|
empty: key it on a value every record carries (the source id stored
|
|
@@ -4067,10 +4037,6 @@ components:
|
|
|
4067
4037
|
- |-
|
|
4068
4038
|
Validated via the dedicated `PUT /v1/netsuiteDA/previewImportMappingFields`
|
|
4069
4039
|
endpoint (NOT `/v1/processors/mapperProcessor`).
|
|
4070
|
-
- |-
|
|
4071
|
-
Managed by the MappingsAgent (`$agent: mapping`) — resource-authoring
|
|
4072
|
-
agents must emit a specialist marker at this field rather than
|
|
4073
|
-
generating the mapping inline.
|
|
4074
4040
|
properties:
|
|
4075
4041
|
fields:
|
|
4076
4042
|
type: array
|
|
@@ -4147,8 +4113,8 @@ components:
|
|
|
4147
4113
|
this block ONLY when the destination record type genuinely requires the
|
|
4148
4114
|
subrecord.
|
|
4149
4115
|
- |-
|
|
4150
|
-
**
|
|
4151
|
-
|
|
4116
|
+
**Common `recordType` values** (most common
|
|
4117
|
+
first):
|
|
4152
4118
|
* `inventorydetail` — by far the most common.
|
|
4153
4119
|
Serial / lot / bin assignments on sales-order,
|
|
4154
4120
|
item-fulfillment, purchase-order, and inventory-
|
|
@@ -4218,8 +4184,8 @@ components:
|
|
|
4218
4184
|
type: string
|
|
4219
4185
|
description: |
|
|
4220
4186
|
Secondary reference-field identifier used on a
|
|
4221
|
-
small fraction of subrecord blocks
|
|
4222
|
-
|
|
4187
|
+
small fraction of subrecord blocks. Exact
|
|
4188
|
+
semantics are not publicly
|
|
4223
4189
|
documented by Celigo — match the value on
|
|
4224
4190
|
existing resources when present; do NOT
|
|
4225
4191
|
synthesize one. Leave unset unless a template
|
|
@@ -4418,9 +4384,8 @@ components:
|
|
|
4418
4384
|
this block ONLY when the destination record type genuinely requires the
|
|
4419
4385
|
subrecord.
|
|
4420
4386
|
- |-
|
|
4421
|
-
**
|
|
4422
|
-
|
|
4423
|
-
imports):
|
|
4387
|
+
**Common `recordType` values** (most
|
|
4388
|
+
common first):
|
|
4424
4389
|
* `inventorydetail` — by far the most
|
|
4425
4390
|
common. Serial / lot / bin assignments on
|
|
4426
4391
|
sales-order, item-fulfillment, purchase-
|
|
@@ -4488,9 +4453,9 @@ components:
|
|
|
4488
4453
|
type: string
|
|
4489
4454
|
description: |
|
|
4490
4455
|
Secondary reference-field identifier used
|
|
4491
|
-
on a small fraction of subrecord blocks
|
|
4492
|
-
|
|
4493
|
-
|
|
4456
|
+
on a small fraction of subrecord blocks.
|
|
4457
|
+
Exact semantics are not publicly
|
|
4458
|
+
documented by Celigo — match
|
|
4494
4459
|
the value on existing resources when
|
|
4495
4460
|
present; do NOT synthesize one. Leave
|
|
4496
4461
|
unset unless a template clearly requires
|
|
@@ -4770,8 +4735,8 @@ components:
|
|
|
4770
4735
|
## Mirror invariant
|
|
4771
4736
|
The Celigo platform persists NetSuite Distributed Import lookups in
|
|
4772
4737
|
TWO locations: `netsuite_da.lookups` and top-level `lookups`.
|
|
4773
|
-
Both arrays must hold byte-for-byte identical content
|
|
4774
|
-
|
|
4738
|
+
Both arrays must hold byte-for-byte identical content, so write
|
|
4739
|
+
both on every save.
|
|
4775
4740
|
- |-
|
|
4776
4741
|
## One context for body and sublist lookups
|
|
4777
4742
|
Every lookup's `expression` renders against the whole source
|
|
@@ -5169,8 +5134,8 @@ components:
|
|
|
5169
5134
|
**Mirror invariant**
|
|
5170
5135
|
The Celigo platform persists lookups in TWO locations on an RDBMS
|
|
5171
5136
|
import: top-level `lookups` and `rdbms.lookups`. Both arrays
|
|
5172
|
-
must hold byte-for-byte identical content
|
|
5173
|
-
|
|
5137
|
+
must hold byte-for-byte identical content, so write both on every
|
|
5138
|
+
save.
|
|
5174
5139
|
items:
|
|
5175
5140
|
type: object
|
|
5176
5141
|
properties:
|
|
@@ -5295,7 +5260,7 @@ components:
|
|
|
5295
5260
|
- **Nested fields**: `{{record.properties.email}}` (auto-quoted)
|
|
5296
5261
|
or `{{{record.properties.email}}}` (raw).
|
|
5297
5262
|
- |-
|
|
5298
|
-
## EXAMPLES
|
|
5263
|
+
## EXAMPLES
|
|
5299
5264
|
|
|
5300
5265
|
- INSERT (string columns, auto-quoted): `["INSERT INTO customers (name, email) VALUES ({{record.name}}, {{record.email}})"]`
|
|
5301
5266
|
- INSERT (mixed numeric + string): `["INSERT INTO orders (qty, sku) VALUES ({{{record.qty}}}, {{record.sku}})"]`
|
|
@@ -6156,8 +6121,7 @@ components:
|
|
|
6156
6121
|
"wrapper" JavaScript module that invokes a custom function (typically to
|
|
6157
6122
|
integrate with a system Celigo doesn't have a first-class connector for).
|
|
6158
6123
|
- |-
|
|
6159
|
-
Wrapper imports use Mapper 1.0 for field mappings and the generic Celigo lookup shape
|
|
6160
|
-
The MappingsAgent operates in `v1_standard` mode for this adaptor type —
|
|
6124
|
+
Wrapper imports use Mapper 1.0 for field mappings and the generic Celigo lookup shape:
|
|
6161
6125
|
mappings live in `resource.mapping` (fields/lists) and lookups mirror at
|
|
6162
6126
|
`resource.lookups` and `resource.wrapper.lookups`.
|
|
6163
6127
|
properties:
|
|
@@ -6205,8 +6169,8 @@ components:
|
|
|
6205
6169
|
## Mirror invariant
|
|
6206
6170
|
The Celigo platform persists lookups in TWO locations on a
|
|
6207
6171
|
Wrapper import: top-level `lookups` and `wrapper.lookups`.
|
|
6208
|
-
Both arrays must hold byte-for-byte identical content
|
|
6209
|
-
|
|
6172
|
+
Both arrays must hold byte-for-byte identical content, so write
|
|
6173
|
+
both on every save.
|
|
6210
6174
|
if:
|
|
6211
6175
|
not:
|
|
6212
6176
|
propertyNames:
|
|
@@ -6241,8 +6205,8 @@ components:
|
|
|
6241
6205
|
**Mirror invariant**
|
|
6242
6206
|
The Celigo platform stores lookups in TWO locations on a Salesforce
|
|
6243
6207
|
import resource: top-level ``lookups`` and ``salesforce.lookups``.
|
|
6244
|
-
Both arrays must hold byte-for-byte identical content
|
|
6245
|
-
|
|
6208
|
+
Both arrays must hold byte-for-byte identical content, so write
|
|
6209
|
+
both on every save.
|
|
6246
6210
|
|
|
6247
6211
|
**Static vs dynamic lookups**
|
|
6248
6212
|
- **Static** — only ``map`` + optional ``default``. No Salesforce
|
|
@@ -8408,10 +8372,8 @@ components:
|
|
|
8408
8372
|
update this field — the wrapper itself stays the same shape,
|
|
8409
8373
|
just points at a different Tool.
|
|
8410
8374
|
- |-
|
|
8411
|
-
|
|
8412
|
-
|
|
8413
|
-
when invoked from a flow / API / Tool dispatch path,
|
|
8414
|
-
through the Tool Builder which delegates to the Tool engine's brief-based entry point).
|
|
8375
|
+
Writing the wrapper does not create or change the Tool itself;
|
|
8376
|
+
author the Tool as its own resource through `/v1/tools`.
|
|
8415
8377
|
examples:
|
|
8416
8378
|
- 69ce8ae7cbbb51405ae42ae5
|
|
8417
8379
|
overrides:
|
|
@@ -13374,7 +13336,7 @@ components:
|
|
|
13374
13336
|
no message text) and never cascades or promotes on its own; `Draft`
|
|
13375
13337
|
descendants are kept as they are, and a `Draft` parent does not gate
|
|
13376
13338
|
its children. The UI's Set inactive on a parent marks the parent and
|
|
13377
|
-
every child `Inactive
|
|
13339
|
+
every child `Inactive`. Re-enabling a child
|
|
13378
13340
|
means re-enabling its ancestors in the same payload. Edits that keep
|
|
13379
13341
|
existing rows must carry their stored status forward — rewriting a
|
|
13380
13342
|
`Draft` or `Inactive` row to `Active` turns a row the user parked
|
|
@@ -14413,7 +14375,7 @@ components:
|
|
|
14413
14375
|
no message text) and never cascades or promotes on its own; `Draft`
|
|
14414
14376
|
descendants are kept as they are, and a `Draft` parent does not gate
|
|
14415
14377
|
its children. The UI's Set inactive on a parent marks the parent and
|
|
14416
|
-
every child `Inactive
|
|
14378
|
+
every child `Inactive`. Re-enabling a child
|
|
14417
14379
|
means re-enabling its ancestors in the same payload. Edits that keep
|
|
14418
14380
|
existing rows must carry their stored status forward — rewriting a
|
|
14419
14381
|
`Draft` or `Inactive` row to `Active` turns a row the user parked
|
|
@@ -14852,7 +14814,7 @@ components:
|
|
|
14852
14814
|
``{record: {...}, settings: ..., job: ...}`` (plus
|
|
14853
14815
|
``fileMeta`` on file-provider steps) — the
|
|
14854
14816
|
same runtime-context envelope Handlebars / SQL /
|
|
14855
|
-
GraphQL
|
|
14817
|
+
GraphQL templates render against. ``mappings[].extract``
|
|
14856
14818
|
JSONPath values MUST include the ``record.`` segment
|
|
14857
14819
|
— for example ``"$.record.orderId"`` or
|
|
14858
14820
|
``"$.record.customer.email"``. PLACEHOLDER extracts
|
|
@@ -14880,9 +14842,8 @@ components:
|
|
|
14880
14842
|
``inputContext: record`` makes the contract
|
|
14881
14843
|
self-documenting and prevents the transform from
|
|
14882
14844
|
drifting into envelope mode if an upstream change ever
|
|
14883
|
-
changes the platform default.
|
|
14884
|
-
|
|
14885
|
-
it into the generator's prompt so the JSONPath form
|
|
14845
|
+
changes the platform default. Read this value before
|
|
14846
|
+
writing ``mappings[].extract`` so the JSONPath form
|
|
14886
14847
|
matches the runtime root.
|
|
14887
14848
|
- |-
|
|
14888
14849
|
## fileMeta on file-provider steps
|
|
@@ -16150,7 +16111,7 @@ components:
|
|
|
16150
16111
|
Optional on a `blob: true` file-provider import: when omitted the platform reads the
|
|
16151
16112
|
record's root `blobKey` — the field a blob export emits on its `{blobKey, fileMeta}`
|
|
16152
16113
|
record — so a file-transfer flow needs no `blobKeyPath`. Observed on an FTP import
|
|
16153
|
-
(
|
|
16114
|
+
(recorded runs writing files with no `blobKeyPath`) and on a Google Drive folder
|
|
16154
16115
|
upload (`http.type: file`, the marketplace file-transfer template's shape); other
|
|
16155
16116
|
file providers were not probed. Set it only when a response mapping placed the key
|
|
16156
16117
|
elsewhere; on those two providers its absence is not a cause of upload failures.
|
|
@@ -16332,13 +16293,9 @@ components:
|
|
|
16332
16293
|
- |-
|
|
16333
16294
|
JavaScript hook references attached to lifecycle stages of the import.
|
|
16334
16295
|
Engage hooks ONLY when the user explicitly wants scripting OR a requirement
|
|
16335
|
-
cannot be expressed through declarative
|
|
16296
|
+
cannot be expressed through declarative configuration (mappings / filters /
|
|
16336
16297
|
responseTransform).
|
|
16337
16298
|
Hooks bypass the platform's declarative validation, so use them sparingly.
|
|
16338
|
-
- |-
|
|
16339
|
-
Phase A authoring scope: ``preMap`` and ``postMap`` only.
|
|
16340
|
-
``postSubmit`` and ``postAggregate`` are Phase B's territory (they author
|
|
16341
|
-
against the real destination response).
|
|
16342
16299
|
properties:
|
|
16343
16300
|
preMap:
|
|
16344
16301
|
type: object
|
|
@@ -16355,7 +16312,7 @@ components:
|
|
|
16355
16312
|
before the mapping sees them (drop archived records,
|
|
16356
16313
|
normalize date strings, split a record into many). Don't
|
|
16357
16314
|
engage for static value substitution or simple field
|
|
16358
|
-
renames —
|
|
16315
|
+
renames — mappings handle those.
|
|
16359
16316
|
|
|
16360
16317
|
Runtime contract: ``options.data[]`` (the page of upstream
|
|
16361
16318
|
records) → array of the same length.
|
|
@@ -16397,11 +16354,6 @@ components:
|
|
|
16397
16354
|
Post-submit JavaScript hook — runs AFTER each batch of
|
|
16398
16355
|
destination writes, on the destination's response.
|
|
16399
16356
|
|
|
16400
|
-
**Phase B owns this slot.** Phase A must NOT emit a
|
|
16401
|
-
``$agent`` marker here (see "Phase A vs Phase B ownership"
|
|
16402
|
-
in the engine prompt). Phase B authors this against the
|
|
16403
|
-
real probe response.
|
|
16404
|
-
|
|
16405
16357
|
Runtime contract: ``options.responseData[]`` (one per
|
|
16406
16358
|
submitted record; ``{statusCode, errors, _json, ...}`` —
|
|
16407
16359
|
``id`` is present on real runs but absent from the
|
|
@@ -16426,11 +16378,6 @@ components:
|
|
|
16426
16378
|
``invalid_hook`` ("unsupported postAggregate hook") —
|
|
16427
16379
|
never emit it for non-file adaptors.
|
|
16428
16380
|
|
|
16429
|
-
**Phase B owns this slot.** Phase A must NOT emit a
|
|
16430
|
-
``$agent`` marker here (see "Phase A vs Phase B ownership"
|
|
16431
|
-
in the engine prompt). Phase B authors this against the
|
|
16432
|
-
real probe response.
|
|
16433
|
-
|
|
16434
16381
|
Runtime contract: ``options.postAggregateData``
|
|
16435
16382
|
(``{success, _json, code, message, source}``) → no return
|
|
16436
16383
|
value; side effects only (logging, notifying, downstream
|
|
@@ -16482,8 +16429,7 @@ components:
|
|
|
16482
16429
|
|
|
16483
16430
|
REQUIRED for ``SalesforceImport`` and ``WrapperImport``: these
|
|
16484
16431
|
adaptors must use Mapper 1.0; Mapper 2.0 is not supported for
|
|
16485
|
-
them.
|
|
16486
|
-
automatically. ``NetSuiteDistributedImport`` is also V1-required
|
|
16432
|
+
them. ``NetSuiteDistributedImport`` is also V1-required
|
|
16487
16433
|
but uses a NetSuite-specific variant at its adaptor-scoped copy
|
|
16488
16434
|
``netsuite_da.mapping`` (richer sublist / subRecord vocabulary) —
|
|
16489
16435
|
not this field.
|
|
@@ -16492,17 +16438,9 @@ components:
|
|
|
16492
16438
|
``FTPImport``, ``JDBCImport``, etc.) when the user explicitly asks
|
|
16493
16439
|
for Mapper 1.0 — e.g. when the import wraps a legacy v1 connector
|
|
16494
16440
|
or is being migrated from an older integration. Those adaptors
|
|
16495
|
-
default to Mapper 2.0 at the top-level ``mappings`` (plural) field
|
|
16496
|
-
|
|
16497
|
-
|
|
16498
|
-
unsolicited; the v2 default produces better output for modern
|
|
16499
|
-
connectors.
|
|
16500
|
-
- |-
|
|
16501
|
-
## Specialist marker
|
|
16502
|
-
|
|
16503
|
-
Managed by the MappingsAgent (``$agent: mapping``) — resource-
|
|
16504
|
-
authoring agents must emit a specialist marker at this field
|
|
16505
|
-
rather than generating mapping content inline.
|
|
16441
|
+
default to Mapper 2.0 at the top-level ``mappings`` (plural) field.
|
|
16442
|
+
Do not set this field unsolicited; the v2 default produces better
|
|
16443
|
+
output for modern connectors.
|
|
16506
16444
|
- |-
|
|
16507
16445
|
Allowed (but not the default) on other import adaptors such as
|
|
16508
16446
|
``HTTPImport``, ``RDBMSImport``, ``FTPImport``, and
|
|
@@ -16519,8 +16457,8 @@ components:
|
|
|
16519
16457
|
|
|
16520
16458
|
Lookups referenced by ``lookupName`` live on the top-level
|
|
16521
16459
|
``resource.lookups`` array (mirrored under the adaptor key for
|
|
16522
|
-
adaptors that maintain their own copy — see the mirror
|
|
16523
|
-
|
|
16460
|
+
adaptors that maintain their own copy — see the mirror invariant
|
|
16461
|
+
on ``lookups``). Lookups are independent of this
|
|
16524
16462
|
mapping: they are neither created nor cleared automatically when
|
|
16525
16463
|
this mapping changes.
|
|
16526
16464
|
properties:
|
|
@@ -16635,9 +16573,8 @@ components:
|
|
|
16635
16573
|
- |-
|
|
16636
16574
|
## Mirror invariant
|
|
16637
16575
|
|
|
16638
|
-
Both arrays MUST hold byte-for-byte identical content
|
|
16639
|
-
|
|
16640
|
-
single logical field.
|
|
16576
|
+
Both arrays MUST hold byte-for-byte identical content: write
|
|
16577
|
+
both on every save and treat them as a single logical field.
|
|
16641
16578
|
- |-
|
|
16642
16579
|
## Shape
|
|
16643
16580
|
|
|
@@ -16698,7 +16635,7 @@ components:
|
|
|
16698
16635
|
- ``envelope``: the mapper sees a wrapped object of the shape
|
|
16699
16636
|
``{record: {...}, settings: ..., job: ...}`` — the same
|
|
16700
16637
|
runtime-context envelope Handlebars / SQL / GraphQL
|
|
16701
|
-
|
|
16638
|
+
templates render against. ``mappings[].extract`` JSONPath values
|
|
16702
16639
|
MUST include the ``record.`` segment — for example
|
|
16703
16640
|
``"$.record.orderId"`` or ``"$.record.customer.email"``.
|
|
16704
16641
|
PLACEHOLDER extracts use ``"$.record.PLACEHOLDER_<field>"``.
|
|
@@ -16723,9 +16660,9 @@ components:
|
|
|
16723
16660
|
platform, but emitting ``inputContext: record`` makes the
|
|
16724
16661
|
contract self-documenting and prevents the mapper from drifting
|
|
16725
16662
|
into envelope mode if an upstream change ever changes the
|
|
16726
|
-
platform default.
|
|
16727
|
-
|
|
16728
|
-
|
|
16663
|
+
platform default. Read this value before writing
|
|
16664
|
+
``mappings[].extract`` so the JSONPath form matches the runtime
|
|
16665
|
+
root.
|
|
16729
16666
|
settingsForm:
|
|
16730
16667
|
x-celigo-agent:
|
|
16731
16668
|
- settings_form
|
package/dist/job.yml
CHANGED
|
@@ -424,8 +424,8 @@ paths:
|
|
|
424
424
|
- |-
|
|
425
425
|
Returns a paged collection of currently running jobs for the dashboard.
|
|
426
426
|
The request body supports filtering by integration, flow, status, and
|
|
427
|
-
application.
|
|
428
|
-
|
|
427
|
+
application. ``sandbox`` is deprecated; when a caller still sends it,
|
|
428
|
+
``false`` selects production.
|
|
429
429
|
- |-
|
|
430
430
|
Do not send time_gt or time_lte; they are not on this request. To find jobs
|
|
431
431
|
stuck for longer than a threshold, compare each job's createdAt or startedAt
|
package/dist/notification.yml
CHANGED
|
@@ -76,8 +76,8 @@ paths:
|
|
|
76
76
|
_connectionId: 5e5eb06fdd83ed4f8206a4ea
|
|
77
77
|
lastModified: '2021-08-31T17:36:09.092Z'
|
|
78
78
|
subscribedByUser:
|
|
79
|
-
name:
|
|
80
|
-
email:
|
|
79
|
+
name: John Doe
|
|
80
|
+
email: john@example.com
|
|
81
81
|
- _id: 698abc1234567890abcdef01
|
|
82
82
|
type: flow
|
|
83
83
|
_flowId: 69497fc443fc1f9a03d31bd9
|
|
@@ -90,8 +90,8 @@ paths:
|
|
|
90
90
|
_syncId: 69e7549b0f8b6cd703e5d3b2
|
|
91
91
|
lastModified: '2026-04-21T10:43:22.077Z'
|
|
92
92
|
subscribedByUser:
|
|
93
|
-
name:
|
|
94
|
-
email:
|
|
93
|
+
name: Alex Doe
|
|
94
|
+
email: alex@example.com
|
|
95
95
|
'204':
|
|
96
96
|
description: |-
|
|
97
97
|
Caller has no subscriptions in the current scope (default scope when
|
|
@@ -348,13 +348,13 @@ components:
|
|
|
348
348
|
type: string
|
|
349
349
|
description: Display name of the subscribed user.
|
|
350
350
|
examples:
|
|
351
|
-
-
|
|
351
|
+
- Jane Doe
|
|
352
352
|
email:
|
|
353
353
|
type: string
|
|
354
354
|
format: email
|
|
355
355
|
description: Email address the notifications are routed to.
|
|
356
356
|
examples:
|
|
357
|
-
-
|
|
357
|
+
- jane@example.com
|
|
358
358
|
Error:
|
|
359
359
|
type: object
|
|
360
360
|
description: Standard error response envelope returned by integrator.io APIs.
|
package/dist/script.yml
CHANGED
|
@@ -745,7 +745,7 @@ paths:
|
|
|
745
745
|
type: string
|
|
746
746
|
description: User display name.
|
|
747
747
|
examples:
|
|
748
|
-
-
|
|
748
|
+
- Jane Doe
|
|
749
749
|
fieldChanges:
|
|
750
750
|
type: array
|
|
751
751
|
description: Fields that were modified.
|
|
@@ -782,7 +782,7 @@ paths:
|
|
|
782
782
|
byUser:
|
|
783
783
|
_id: 624cb0346309dc3a543733a2
|
|
784
784
|
email: user@example.com
|
|
785
|
-
name:
|
|
785
|
+
name: Jane Doe
|
|
786
786
|
fieldChanges:
|
|
787
787
|
- fieldPath: debugUntil
|
|
788
788
|
oldValue: '2026-04-18T14:52:43.041Z'
|
package/dist/stack.yml
CHANGED
|
@@ -609,7 +609,7 @@ paths:
|
|
|
609
609
|
type: string
|
|
610
610
|
description: User display name.
|
|
611
611
|
examples:
|
|
612
|
-
-
|
|
612
|
+
- Jane Doe
|
|
613
613
|
fieldChanges:
|
|
614
614
|
type: array
|
|
615
615
|
description: Fields that were modified.
|
|
@@ -649,7 +649,7 @@ paths:
|
|
|
649
649
|
byUser:
|
|
650
650
|
_id: 624cb0346309dc3a543733a2
|
|
651
651
|
email: user@example.com
|
|
652
|
-
name:
|
|
652
|
+
name: Jane Doe
|
|
653
653
|
fieldChanges:
|
|
654
654
|
- fieldPath: name
|
|
655
655
|
oldValue: AWS test
|
package/dist/subscription.yml
CHANGED
|
@@ -568,8 +568,8 @@ components:
|
|
|
568
568
|
NOT what is actually configured or in use on the account.
|
|
569
569
|
For example, `sso:
|
|
570
570
|
true` means the plan includes SSO capability — it does not mean SSO is configured.
|
|
571
|
-
To know what is actually configured,
|
|
572
|
-
|
|
571
|
+
To know what is actually configured, read the account's own configuration
|
|
572
|
+
(e.g., its SSO and MFA settings), not the license.
|
|
573
573
|
- |-
|
|
574
574
|
Licenses may represent:
|
|
575
575
|
- an account-level subscription (`type` is `integrator`, `platform`, or `endpoint`)
|
|
@@ -795,9 +795,9 @@ components:
|
|
|
795
795
|
aiConversationsPrepaidBalance:
|
|
796
796
|
type: number
|
|
797
797
|
description: |-
|
|
798
|
-
Remaining prepaid credit balance for
|
|
798
|
+
Remaining prepaid credit balance for Celigo's AI assistant.
|
|
799
799
|
Customers purchase credits up front and usage costs are deducted
|
|
800
|
-
as they interact with
|
|
800
|
+
as they interact with the assistant.
|
|
801
801
|
example: 47.96
|
|
802
802
|
aiAgentsPrepaidBalance:
|
|
803
803
|
type: number
|
|
@@ -805,7 +805,8 @@ components:
|
|
|
805
805
|
Remaining prepaid credit balance for AI Agents — LLM/AI capabilities
|
|
806
806
|
used within flows, APIs, and automations (e.g., AI-powered transforms,
|
|
807
807
|
hooks). Customers purchase credits up front and usage costs are
|
|
808
|
-
deducted as AI agents run. This balance is separate from
|
|
808
|
+
deducted as AI agents run. This balance is separate from the AI
|
|
809
|
+
assistant's credits (`aiConversationsPrepaidBalance`).
|
|
809
810
|
example: 19.62
|
|
810
811
|
topics:
|
|
811
812
|
type: object
|