@celigo/api-specs 0.2.177 → 0.2.179
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/export.yml +22 -9
- package/dist/import.yml +9 -2
- package/dist/processor.yml +8 -0
- package/dist/tool.yml +31 -11
- package/package.json +1 -1
- package/schemas.json +1 -1
package/dist/export.yml
CHANGED
|
@@ -8025,11 +8025,13 @@ components:
|
|
|
8025
8025
|
It defines how data is extracted from Salesforce,
|
|
8026
8026
|
either through queries or real-time events.
|
|
8027
8027
|
- |-
|
|
8028
|
-
|
|
8029
|
-
|
|
8030
|
-
|
|
8031
|
-
|
|
8032
|
-
`soql` object.
|
|
8028
|
+
Set `type` on every Salesforce export you create (`soql` or `distributed`).
|
|
8029
|
+
Never read its absence on an existing export as a defect: a listener saved
|
|
8030
|
+
from the integrator.io form carries no `salesforce.type` and the platform
|
|
8031
|
+
fires it without the field, and file/byId retrievals (`id` + `sObjectType`,
|
|
8032
|
+
no `soql` object) carry `type: soql` without a `soql` object. A listener
|
|
8033
|
+
that never creates a job is diagnosed from `distributed` (below), not from
|
|
8034
|
+
this field.
|
|
8033
8035
|
- |-
|
|
8034
8036
|
## SALESFORCE EXPORT MODES
|
|
8035
8037
|
|
|
@@ -8061,8 +8063,10 @@ components:
|
|
|
8061
8063
|
Required fields: type, soql.query
|
|
8062
8064
|
Optional fields: api, includeDeletedRecords, bulk (when api="bulk")
|
|
8063
8065
|
|
|
8064
|
-
- For Distributed exports (
|
|
8065
|
-
|
|
8066
|
+
- For Distributed exports (real-time listeners):
|
|
8067
|
+
Set type="distributed" with the distributed object and sObjectType when creating one.
|
|
8068
|
+
A listener saved from the integrator.io form carries the distributed object and
|
|
8069
|
+
sObjectType with no type, and the platform fires it — a valid listener, not a missing field.
|
|
8066
8070
|
Optional fields: distributed.referencedFields, distributed.qualifier
|
|
8067
8071
|
|
|
8068
8072
|
- For Blob exports (when export.type="blob"):
|
|
@@ -8078,7 +8082,10 @@ components:
|
|
|
8078
8082
|
|
|
8079
8083
|
This field determines the core operating mode of the Salesforce export:
|
|
8080
8084
|
|
|
8081
|
-
-
|
|
8085
|
+
- Set it on every Salesforce export you create; a listener saved from the
|
|
8086
|
+
integrator.io form carries none and the platform fires it without the
|
|
8087
|
+
field, so an absent `type` beside a `distributed` object is the normal
|
|
8088
|
+
shape of a form-saved listener, not a missing setting
|
|
8082
8089
|
- Controls which additional configuration objects must be provided
|
|
8083
8090
|
- Affects how the export appears and functions in the flow builder UI
|
|
8084
8091
|
- Cannot be changed after creation without significant reconfiguration
|
|
@@ -8573,7 +8580,7 @@ components:
|
|
|
8573
8580
|
- SELECT Id, Name, (SELECT Id, FirstName, LastName FROM Contacts) FROM Account
|
|
8574
8581
|
distributed:
|
|
8575
8582
|
type: object
|
|
8576
|
-
description: Real-time listener configuration
|
|
8583
|
+
description: 'Real-time listener configuration — the object that makes an export a listener. Set it, with `type: distributed`, when creating one; a listener saved from the integrator.io form carries it with no `type`, and the platform fires it either way. Not used on SOQL or file exports. Records reach the flow only when an Apex trigger on `sObjectType` in the connected org calls the Celigo package (`integrator_da__.RealTimeExporter.processExport()`) — no scheduling or manual execution is involved. Integration Apps create their triggers at installation; for a custom flow the customer deploys the trigger in Salesforce, starting from the code the export page shows under Required trigger.'
|
|
8577
8584
|
x-celigo-ai-guidance:
|
|
8578
8585
|
- |-
|
|
8579
8586
|
After creating a listener on a custom flow, relay what the Help Center's "Listen for real-time data
|
|
@@ -8588,6 +8595,12 @@ components:
|
|
|
8588
8595
|
Help Center's trigger requirement in the connected org: an active Apex trigger on the object whose
|
|
8589
8596
|
code calls `integrator_da__.RealTimeExporter`, and the Celigo package reachable through the
|
|
8590
8597
|
connection (`GET /v1/connections/{_id}/distributed`, documented in this spec set).
|
|
8598
|
+
- |-
|
|
8599
|
+
Two things are never why a listener does not fire. The export preview cannot run a listener:
|
|
8600
|
+
it validates the body as a SOQL export and answers 422 `missing_required_field` for
|
|
8601
|
+
`soql.query` (and for `type` when the listener carries none) before the connection is used,
|
|
8602
|
+
so a failed preview is expected, not a configuration defect. And an absent `salesforce.type`
|
|
8603
|
+
is the normal shape of a listener saved from the integrator.io form (see `type`).
|
|
8591
8604
|
properties:
|
|
8592
8605
|
referencedFields:
|
|
8593
8606
|
type:
|
package/dist/import.yml
CHANGED
|
@@ -1811,7 +1811,7 @@ components:
|
|
|
1811
1811
|
Use separate array elements per operation rather than `{{#if}}` conditionals inside a single URI.
|
|
1812
1812
|
URI templates render strictly: a path that is undefined on the record — such as `record.<field>` on a grouped record, whose root is `rows` — fails the request instead of rendering empty.
|
|
1813
1813
|
A field the record lacks, or a `{{lookup.<name>}}` whose lookup found nothing, fails that record before anything is sent, with `handlebars_template_parse_error` (source `application`, classification `parse`): `Failed to generate request url from template: <URL>. Details: "<field>" not defined in the model.` That is missing data, not template syntax, and a retry of the same record fails the same way: send records that may lack the destination id through a composite UPDATE/CREATE import (`existingExtract`), or skip them with `ignoreMissing` and `ignoreExtract`.
|
|
1814
|
-
A field that holds an empty string
|
|
1814
|
+
A field that holds an empty string renders empty, and the request is sent without the value. A field that holds null renders the text `null` (a URI of `/orders/{{record.id}}` is sent as `/orders/null`), and a field under an object that is null fails the record like a missing one (`"<field>" not defined in null`).
|
|
1815
1815
|
x-celigo-ai-guidance:
|
|
1816
1816
|
- '**CRITICAL: This MUST be an array of strings, NOT an object.**'
|
|
1817
1817
|
- |-
|
|
@@ -1998,7 +1998,14 @@ components:
|
|
|
1998
1998
|
(``"{{record.name}}"``): double braces JSON-escape the value at run time, with no HTML
|
|
1999
1999
|
escaping. Triple braces insert the raw text, so a value holding a double quote,
|
|
2000
2000
|
backslash, newline or tab fails that record with 422 ``invalid_json`` before anything
|
|
2001
|
-
is sent.
|
|
2001
|
+
is sent. Double braces write a null value -- a null field, or any field under an
|
|
2002
|
+
object that is null -- as the text ``null``, so ``"{{record.customer.name}}"`` sends
|
|
2003
|
+
the string "null" (triple braces rendered ``{{{record.customer.name}}}`` empty,
|
|
2004
|
+
whether ``customer`` or its ``name`` was null). Guard a nullable field with
|
|
2005
|
+
``{{#if record.customer.name}}{{record.customer.name}}{{/if}}`` or
|
|
2006
|
+
``{{#if record.customer}}{{record.customer.name}}{{/if}}``: both render empty for a
|
|
2007
|
+
null field and for a null object. The Handlebars processor renders the unguarded null
|
|
2008
|
+
empty, so judge it by an import preview or a run.
|
|
2002
2009
|
- |-
|
|
2003
2010
|
Every request context carries two data roots: ``data`` — the list of records in
|
|
2004
2011
|
the request, always present (Pattern B) — and ONE shape-specific root that follows
|
package/dist/processor.yml
CHANGED
|
@@ -1177,6 +1177,14 @@ paths:
|
|
|
1177
1177
|
(`"data": {"record": {...}}`). Double braces HTML-escape the value (`&` renders as `&`);
|
|
1178
1178
|
triple braces insert it unchanged. A `timestamp` with no time zone renders in UTC.
|
|
1179
1179
|
|
|
1180
|
+
A null value, or a field under an object that is null, renders empty here. An HTTP import
|
|
1181
|
+
escapes values its own way, at run time and in the import preview: in its JSON body a
|
|
1182
|
+
double-brace value that is null, or under a null object, is written as the text `null`
|
|
1183
|
+
(triple braces rendered `{{{record.customer.name}}}` empty, whether `customer` or its `name`
|
|
1184
|
+
was null); in its relative URI a null field is sent as the text
|
|
1185
|
+
`null`, and a field under a null object fails the record before anything is sent. Check a
|
|
1186
|
+
nullable field with an import preview, not here.
|
|
1187
|
+
|
|
1180
1188
|
An unknown helper is refused with 422. `GET /v1/processors` lists helpers under the handlebars
|
|
1181
1189
|
entry's `helperFunctions`, but that list is not complete: `eq` and `truncateWords`, for
|
|
1182
1190
|
example, render although it omits them, so render a doubtful helper once here before relying
|
package/dist/tool.yml
CHANGED
|
@@ -13668,7 +13668,7 @@ components:
|
|
|
13668
13668
|
Use separate array elements per operation rather than `{{#if}}` conditionals inside a single URI.
|
|
13669
13669
|
URI templates render strictly: a path that is undefined on the record — such as `record.<field>` on a grouped record, whose root is `rows` — fails the request instead of rendering empty.
|
|
13670
13670
|
A field the record lacks, or a `{{lookup.<name>}}` whose lookup found nothing, fails that record before anything is sent, with `handlebars_template_parse_error` (source `application`, classification `parse`): `Failed to generate request url from template: <URL>. Details: "<field>" not defined in the model.` That is missing data, not template syntax, and a retry of the same record fails the same way: send records that may lack the destination id through a composite UPDATE/CREATE import (`existingExtract`), or skip them with `ignoreMissing` and `ignoreExtract`.
|
|
13671
|
-
A field that holds an empty string
|
|
13671
|
+
A field that holds an empty string renders empty, and the request is sent without the value. A field that holds null renders the text `null` (a URI of `/orders/{{record.id}}` is sent as `/orders/null`), and a field under an object that is null fails the record like a missing one (`"<field>" not defined in null`).
|
|
13672
13672
|
x-celigo-ai-guidance:
|
|
13673
13673
|
- '**CRITICAL: This MUST be an array of strings, NOT an object.**'
|
|
13674
13674
|
- |-
|
|
@@ -13855,7 +13855,14 @@ components:
|
|
|
13855
13855
|
(``"{{record.name}}"``): double braces JSON-escape the value at run time, with no HTML
|
|
13856
13856
|
escaping. Triple braces insert the raw text, so a value holding a double quote,
|
|
13857
13857
|
backslash, newline or tab fails that record with 422 ``invalid_json`` before anything
|
|
13858
|
-
is sent.
|
|
13858
|
+
is sent. Double braces write a null value -- a null field, or any field under an
|
|
13859
|
+
object that is null -- as the text ``null``, so ``"{{record.customer.name}}"`` sends
|
|
13860
|
+
the string "null" (triple braces rendered ``{{{record.customer.name}}}`` empty,
|
|
13861
|
+
whether ``customer`` or its ``name`` was null). Guard a nullable field with
|
|
13862
|
+
``{{#if record.customer.name}}{{record.customer.name}}{{/if}}`` or
|
|
13863
|
+
``{{#if record.customer}}{{record.customer.name}}{{/if}}``: both render empty for a
|
|
13864
|
+
null field and for a null object. The Handlebars processor renders the unguarded null
|
|
13865
|
+
empty, so judge it by an import preview or a run.
|
|
13859
13866
|
- |-
|
|
13860
13867
|
Every request context carries two data roots: ``data`` — the list of records in
|
|
13861
13868
|
the request, always present (Pattern B) — and ONE shape-specific root that follows
|
|
@@ -33039,11 +33046,13 @@ components:
|
|
|
33039
33046
|
It defines how data is extracted from Salesforce,
|
|
33040
33047
|
either through queries or real-time events.
|
|
33041
33048
|
- |-
|
|
33042
|
-
|
|
33043
|
-
|
|
33044
|
-
|
|
33045
|
-
|
|
33046
|
-
`soql` object.
|
|
33049
|
+
Set `type` on every Salesforce export you create (`soql` or `distributed`).
|
|
33050
|
+
Never read its absence on an existing export as a defect: a listener saved
|
|
33051
|
+
from the integrator.io form carries no `salesforce.type` and the platform
|
|
33052
|
+
fires it without the field, and file/byId retrievals (`id` + `sObjectType`,
|
|
33053
|
+
no `soql` object) carry `type: soql` without a `soql` object. A listener
|
|
33054
|
+
that never creates a job is diagnosed from `distributed` (below), not from
|
|
33055
|
+
this field.
|
|
33047
33056
|
- |-
|
|
33048
33057
|
## SALESFORCE EXPORT MODES
|
|
33049
33058
|
|
|
@@ -33075,8 +33084,10 @@ components:
|
|
|
33075
33084
|
Required fields: type, soql.query
|
|
33076
33085
|
Optional fields: api, includeDeletedRecords, bulk (when api="bulk")
|
|
33077
33086
|
|
|
33078
|
-
- For Distributed exports (
|
|
33079
|
-
|
|
33087
|
+
- For Distributed exports (real-time listeners):
|
|
33088
|
+
Set type="distributed" with the distributed object and sObjectType when creating one.
|
|
33089
|
+
A listener saved from the integrator.io form carries the distributed object and
|
|
33090
|
+
sObjectType with no type, and the platform fires it — a valid listener, not a missing field.
|
|
33080
33091
|
Optional fields: distributed.referencedFields, distributed.qualifier
|
|
33081
33092
|
|
|
33082
33093
|
- For Blob exports (when export.type="blob"):
|
|
@@ -33092,7 +33103,10 @@ components:
|
|
|
33092
33103
|
|
|
33093
33104
|
This field determines the core operating mode of the Salesforce export:
|
|
33094
33105
|
|
|
33095
|
-
-
|
|
33106
|
+
- Set it on every Salesforce export you create; a listener saved from the
|
|
33107
|
+
integrator.io form carries none and the platform fires it without the
|
|
33108
|
+
field, so an absent `type` beside a `distributed` object is the normal
|
|
33109
|
+
shape of a form-saved listener, not a missing setting
|
|
33096
33110
|
- Controls which additional configuration objects must be provided
|
|
33097
33111
|
- Affects how the export appears and functions in the flow builder UI
|
|
33098
33112
|
- Cannot be changed after creation without significant reconfiguration
|
|
@@ -33587,7 +33601,7 @@ components:
|
|
|
33587
33601
|
- SELECT Id, Name, (SELECT Id, FirstName, LastName FROM Contacts) FROM Account
|
|
33588
33602
|
distributed:
|
|
33589
33603
|
type: object
|
|
33590
|
-
description: Real-time listener configuration
|
|
33604
|
+
description: 'Real-time listener configuration — the object that makes an export a listener. Set it, with `type: distributed`, when creating one; a listener saved from the integrator.io form carries it with no `type`, and the platform fires it either way. Not used on SOQL or file exports. Records reach the flow only when an Apex trigger on `sObjectType` in the connected org calls the Celigo package (`integrator_da__.RealTimeExporter.processExport()`) — no scheduling or manual execution is involved. Integration Apps create their triggers at installation; for a custom flow the customer deploys the trigger in Salesforce, starting from the code the export page shows under Required trigger.'
|
|
33591
33605
|
x-celigo-ai-guidance:
|
|
33592
33606
|
- |-
|
|
33593
33607
|
After creating a listener on a custom flow, relay what the Help Center's "Listen for real-time data
|
|
@@ -33602,6 +33616,12 @@ components:
|
|
|
33602
33616
|
Help Center's trigger requirement in the connected org: an active Apex trigger on the object whose
|
|
33603
33617
|
code calls `integrator_da__.RealTimeExporter`, and the Celigo package reachable through the
|
|
33604
33618
|
connection (`GET /v1/connections/{_id}/distributed`, documented in this spec set).
|
|
33619
|
+
- |-
|
|
33620
|
+
Two things are never why a listener does not fire. The export preview cannot run a listener:
|
|
33621
|
+
it validates the body as a SOQL export and answers 422 `missing_required_field` for
|
|
33622
|
+
`soql.query` (and for `type` when the listener carries none) before the connection is used,
|
|
33623
|
+
so a failed preview is expected, not a configuration defect. And an absent `salesforce.type`
|
|
33624
|
+
is the normal shape of a listener saved from the integrator.io form (see `type`).
|
|
33605
33625
|
properties:
|
|
33606
33626
|
referencedFields:
|
|
33607
33627
|
type:
|
package/package.json
CHANGED