@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/import.yml CHANGED
@@ -849,12 +849,12 @@ paths:
849
849
  value:
850
850
  data:
851
851
  - _id: 5d67ab3992080024596e0d8f
852
- email: nirav.pranami@celigo.com
852
+ email: jane@example.com
853
853
  verified: true
854
854
  developer: true
855
- name: sai kaivalya
856
- role: Associate QA Engineer
857
- company: celigo
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: nirav.pranami@celigo.com
907
- custrecord_user_name: sai kaivalya
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 production patterns below applies
2011
+ ## SET THIS FIELD when one of the patterns below applies
2019
2012
 
2020
- Production grounds these patterns: 36,445 active body entries
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
- Production frequency: roughly 115 / 36,445 (0.3%) of body
2037
- entries when the destination is non-GraphQL. Rare but real;
2038
- the use cases that fit are obvious when the user describes
2039
- them ("wrap each request in a SQS-style message envelope",
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
- Real production shapes:
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 and shows up in 0.7% of production body
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
- - Production frequency: 15 / 36,445 (0.04%) — essentially never.
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. The specialist enters a retry loop, tries variations
2108
- (``getValue`` wrappers, alternate paths), and converges on
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 authored separately — typically by the LookupsAgent
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. The import engine
2756
- and the MappingsAgent both maintain this mirror on every save —
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 (the production runs of one FTP blob import set exactly that); the same template
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 — the MappingsAgent
3414
- writes both on every save.
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 (production grounded)
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}}}`. Production: only 122 / 55,328 expressions
3899
- (0.2%) use the `record.` prefix; the dominant convention is
3900
- top-level paths.
3901
- - **Triple braces `{{{...}}}`** are the preferred form (78% of
3902
- production); double-brace `{{...}}` also works for cases
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 — 8.4% of all expressions)
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 (seen
3983
- in production as `cant_modify_sub` on a customer the record never
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
- **Real-world `recordType` values** (ranked by
4151
- production frequency across NetSuite DA imports):
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 in production
4222
- (~3%). Exact semantics are not publicly
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
- **Real-world `recordType` values** (ranked
4422
- by production frequency across NetSuite DA
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
- in production (~3%). Exact semantics are
4493
- not publicly documented by Celigo — match
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 — the
4774
- MappingsAgent writes both on every save.
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 — the MappingsAgent
5173
- writes both on every save.
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 (production-grounded)
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 — the
6209
- MappingsAgent writes both on every save.
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 — the
6245
- MappingsAgent writes both on every save.
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
- The agent that authors the wrapper does not author the Tool itself;
8412
- Tool authoring goes through the Tools page agent's `create_tool` / `update_tool` tools (or,
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` (IO-166197). Re-enabling a child
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` (IO-166197). Re-enabling a child
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 specialists consume. ``mappings[].extract``
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. The TransformsAgent
14884
- reads this value off the transform config and threads
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
- (production runs writing files with no `blobKeyPath`) and on a Google Drive folder
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 specialists (mapping / filter /
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 — that's the mapping specialist's job.
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. The agent's adaptor→mode classifier routes them here
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
- see :mod:`celigo_agents.helpers.mappings.mapping_mode` for the
16497
- adaptor → default-mode classifier. Do not emit a marker here
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 pattern in
16523
- the MappingsAgent architecture). Lookups are independent of this
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. The
16639
- MappingsAgent writes both on every save and treats them as a
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
- specialists consume. ``mappings[].extract`` JSONPath values
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. The MappingsAgent reads this value off the
16727
- resource and threads it into the mapping generator's prompt so
16728
- the JSONPath form matches the runtime root.
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. The platform requires ``sandbox`` in the body; Ora is
428
- production-only so it always sends ``false``.
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
@@ -76,8 +76,8 @@ paths:
76
76
  _connectionId: 5e5eb06fdd83ed4f8206a4ea
77
77
  lastModified: '2021-08-31T17:36:09.092Z'
78
78
  subscribedByUser:
79
- name: James Roth
80
- email: james.roth@celigo.com
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: Bhavik Shah
94
- email: bhavik.shah@celigo.com
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
- - James Roth
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
- - james.roth@celigo.com
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
- - Tyler Lamparter
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: Tyler Lamparter
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
- - Tyler Lamparter
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: Tyler Lamparter
652
+ name: Jane Doe
653
653
  fieldChanges:
654
654
  - fieldPath: name
655
655
  oldValue: AWS test
@@ -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, use the appropriate domain tools (e.g.,
572
- `get_account_settings` for SSO/MFA status).
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 Ora (Celigo's AI assistant).
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 Ora.
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 Ora credits.
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