@celigo/api-specs 0.2.209 → 0.2.210
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/api.yml +77 -34
- package/dist/connection.yml +78 -35
- package/dist/enduser.yml +77 -34
- package/dist/export.yml +58 -14
- package/dist/import.yml +34 -9
- package/dist/mcp-server.yml +77 -34
- package/dist/tool.yml +169 -57
- package/package.json +1 -1
- package/schemas.json +7 -3
package/dist/tool.yml
CHANGED
|
@@ -7503,26 +7503,36 @@ components:
|
|
|
7503
7503
|
PGP:
|
|
7504
7504
|
type: object
|
|
7505
7505
|
description: |-
|
|
7506
|
-
PGP
|
|
7507
|
-
|
|
7508
|
-
|
|
7509
|
-
`privateKey`
|
|
7506
|
+
PGP keys and options for the file transports — `ftp`, `s3`, the on-premise file system and the
|
|
7507
|
+
cloud file-provider connections such as Box, Dropbox, Google Drive, Azure Blob Storage and
|
|
7508
|
+
Celigo file storage. `publicKey` encrypts the files the connection's imports write,
|
|
7509
|
+
record-generated files and transferred (blob) files alike; `privateKey` with its `passphrase`
|
|
7510
|
+
decrypts the files its exports read and signs encrypted output. Supply at least one of the two.
|
|
7510
7511
|
properties:
|
|
7511
7512
|
publicKey:
|
|
7512
7513
|
type: string
|
|
7513
7514
|
description: |-
|
|
7514
|
-
ASCII-armored PGP public key used to encrypt
|
|
7515
|
-
|
|
7515
|
+
ASCII-armored PGP public key of the recipient, used to encrypt every file an import on this
|
|
7516
|
+
connection writes with `file.encrypt: pgp`; omit it for decrypt-only connections. Returned
|
|
7517
|
+
in clear on reads.
|
|
7516
7518
|
x-celigo-ai-guidance:
|
|
7517
7519
|
- |-
|
|
7518
|
-
|
|
7519
|
-
|
|
7520
|
+
An import on this connection cannot save `file.encrypt: pgp` without it — the save fails
|
|
7521
|
+
with 422 `missing_required_field` on `file.encrypt` ("pgp publicKey is required when
|
|
7522
|
+
encrypt is selected to perform file encryption."); the import form disables its Encrypt
|
|
7523
|
+
files control until the connection holds a key.
|
|
7520
7524
|
privateKey:
|
|
7521
7525
|
type: string
|
|
7522
7526
|
writeOnly: true
|
|
7523
7527
|
description: |-
|
|
7524
7528
|
ASCII-armored PGP private key used to decrypt inbound files after download (encrypted at rest;
|
|
7525
|
-
returned masked as `"******"`). Set this when the connection receives encrypted files
|
|
7529
|
+
returned masked as `"******"`). Set this when the connection receives encrypted files, or
|
|
7530
|
+
when its imports sign what they encrypt (`file.pgp.hashAlgorithm`).
|
|
7531
|
+
x-celigo-ai-guidance:
|
|
7532
|
+
- |-
|
|
7533
|
+
Signing needs it: an import that sets `file.pgp.hashAlgorithm` on a connection without a
|
|
7534
|
+
private key fails to save with 422 `missing_required_field` on `file.pgp.hashAlgorithm`
|
|
7535
|
+
("pgp privateKey is required when hashAlgorithm is selected to perform file signature.").
|
|
7526
7536
|
passphrase:
|
|
7527
7537
|
type: string
|
|
7528
7538
|
writeOnly: true
|
|
@@ -9247,10 +9257,11 @@ components:
|
|
|
9247
9257
|
retryHeader:
|
|
9248
9258
|
type: string
|
|
9249
9259
|
description: |
|
|
9250
|
-
|
|
9251
|
-
|
|
9252
|
-
|
|
9253
|
-
|
|
9260
|
+
Response header the retry reads for its wait once a response has been recognized
|
|
9261
|
+
as rate-limited — a delay in seconds or an HTTP date. It only sets the wait: a
|
|
9262
|
+
response carrying the header is not treated as throttled unless a status, header
|
|
9263
|
+
or body rule under `rateLimit` matches it. Change it only when the API names its
|
|
9264
|
+
retry-after header differently.
|
|
9254
9265
|
default: Retry-After
|
|
9255
9266
|
formType:
|
|
9256
9267
|
type: string
|
|
@@ -9980,42 +9991,60 @@ components:
|
|
|
9980
9991
|
rateLimit:
|
|
9981
9992
|
type: object
|
|
9982
9993
|
description: |
|
|
9983
|
-
|
|
9984
|
-
|
|
9985
|
-
|
|
9986
|
-
|
|
9987
|
-
|
|
9988
|
-
|
|
9994
|
+
Rules for recognizing a throttled response. When any rule is set, every response
|
|
9995
|
+
through the connection is checked against the status code, the header rules and
|
|
9996
|
+
the body rule, and the first match marks the request rate-limited; the retry then
|
|
9997
|
+
waits for the header named by the parent `retryHeader` (`Retry-After` by default).
|
|
9998
|
+
A 429 is recognized with no rules at all; a 2xx response is recognized only through
|
|
9999
|
+
a matching `failHeaders` rule or a matching `failPath` + `failValues` pair, which is
|
|
10000
|
+
how APIs that throttle inside a 200 body (GraphQL, Shopify among them) are handled.
|
|
9989
10001
|
properties:
|
|
9990
10002
|
failStatusCode:
|
|
9991
10003
|
type: number
|
|
9992
10004
|
description: |
|
|
9993
|
-
|
|
9994
|
-
|
|
9995
|
-
|
|
10005
|
+
Status code that marks a response rate-limited in place of the standard 429.
|
|
10006
|
+
Set it only when the API throttles with another non-success code; a 2xx value
|
|
10007
|
+
does not make successful responses count as throttled on its own.
|
|
9996
10008
|
default: 429
|
|
9997
10009
|
failPath:
|
|
9998
10010
|
type: string
|
|
9999
10011
|
description: |
|
|
10000
|
-
JSON path or XPath to
|
|
10001
|
-
|
|
10012
|
+
JSON path or XPath to the body field that carries the API's throttle indicator,
|
|
10013
|
+
for APIs that answer 200 with the error inside the body. Point at the field
|
|
10014
|
+
itself (`errors.0.extensions.code`), not at the array or object around it, and
|
|
10015
|
+
pair it with `failValues`, which supplies the values that mean "throttled".
|
|
10002
10016
|
examples:
|
|
10003
|
-
- errors
|
|
10017
|
+
- errors.0.extensions.code
|
|
10018
|
+
x-celigo-ai-guidance:
|
|
10019
|
+
- |-
|
|
10020
|
+
Saves on its own (the probe shows a `failPath` with no `failValues` is accepted),
|
|
10021
|
+
and the documented contract recognizes a 200 as throttled only when `failValues`
|
|
10022
|
+
is set as well. For Shopify GraphQL the platform's own example is
|
|
10023
|
+
`errors.0.extensions.code` with `failValues: ["THROTTLED"]`.
|
|
10004
10024
|
failValues:
|
|
10005
10025
|
type: array
|
|
10006
10026
|
items:
|
|
10007
10027
|
type: string
|
|
10008
10028
|
description: |
|
|
10009
|
-
Values at failPath that
|
|
10029
|
+
Values at `failPath` that mean the request was throttled; a match on any of them
|
|
10030
|
+
marks the response rate-limited.
|
|
10010
10031
|
examples:
|
|
10011
|
-
- -
|
|
10012
|
-
-
|
|
10032
|
+
- - THROTTLED
|
|
10033
|
+
- MAX_COST_EXCEEDED
|
|
10034
|
+
x-celigo-ai-guidance:
|
|
10035
|
+
- |-
|
|
10036
|
+
Needs `failPath`: `failValues` without it fails the save with 422
|
|
10037
|
+
`dependent_field` ("The field: failValues should not be specified without the
|
|
10038
|
+
field: failPath for the Connection.").
|
|
10013
10039
|
failHeaders:
|
|
10014
10040
|
type: array
|
|
10015
10041
|
description: |
|
|
10016
|
-
Response-header rules for
|
|
10017
|
-
optional `value`. A rule with
|
|
10018
|
-
|
|
10042
|
+
Response-header rules for recognizing a throttled response, each a header `name`
|
|
10043
|
+
with an optional `value`. A rule with a `value` matches when the response header
|
|
10044
|
+
carries that value — the stored text is compared with the header as received; a
|
|
10045
|
+
rule with no `value` matches whenever the header is present at all, so a header
|
|
10046
|
+
the API sends on every response (a remaining-quota counter) would mark every
|
|
10047
|
+
response throttled — give such a header a value.
|
|
10019
10048
|
items:
|
|
10020
10049
|
type: object
|
|
10021
10050
|
required:
|
|
@@ -10026,18 +10055,32 @@ components:
|
|
|
10026
10055
|
description: Response header the rule checks.
|
|
10027
10056
|
value:
|
|
10028
10057
|
type: string
|
|
10029
|
-
description: Header value the rule
|
|
10058
|
+
description: Header value the rule compares with the response header; omit to match on the header's presence alone. Stored as sent.
|
|
10030
10059
|
examples:
|
|
10031
10060
|
- - name: X-RateLimit-Remaining
|
|
10032
10061
|
value: '0'
|
|
10062
|
+
x-celigo-ai-guidance:
|
|
10063
|
+
- |-
|
|
10064
|
+
A rule without a `name` fails the save with 422 `invalid_header_format`; a rule
|
|
10065
|
+
with a name and no value saves and matches on presence. The value is stored as
|
|
10066
|
+
sent and not validated at save time.
|
|
10033
10067
|
limit:
|
|
10034
10068
|
type: number
|
|
10035
10069
|
minimum: 1
|
|
10070
|
+
x-celigo-ui-override: Semantics mirror the connection form, which labels the field "Wait time between HTTP requests" and requires the value in milliseconds (fieldDefinitions/resources/connection.js 'http.rateLimit.limit').
|
|
10036
10071
|
description: |
|
|
10037
|
-
|
|
10038
|
-
|
|
10072
|
+
Minimum spacing between consecutive requests through the connection, in
|
|
10073
|
+
milliseconds, for APIs that cap request rate rather than concurrency. It only
|
|
10074
|
+
applies when the connection runs one request at a time.
|
|
10039
10075
|
examples:
|
|
10040
10076
|
- 1000
|
|
10077
|
+
x-celigo-ai-guidance:
|
|
10078
|
+
- |-
|
|
10079
|
+
Saves only when `concurrencyLevel` is 1 — and, with `autoRecoverRateLimitErrors`
|
|
10080
|
+
on, `targetConcurrencyLevel` is 1 as well; otherwise the save fails with 422
|
|
10081
|
+
`invalid_concurrency_level` ("The field "connection.http.concurrencyLevel"
|
|
10082
|
+
should be set to 1 when the field "connection.http.rateLimit.limit" is
|
|
10083
|
+
populated."). A numeric string is stored as a number.
|
|
10041
10084
|
headers:
|
|
10042
10085
|
type: array
|
|
10043
10086
|
description: |
|
|
@@ -20886,14 +20929,33 @@ components:
|
|
|
20886
20929
|
x-enumDescriptions:
|
|
20887
20930
|
pgp: Encrypt the file with PGP before it is written.
|
|
20888
20931
|
description: |-
|
|
20889
|
-
Encrypts the
|
|
20890
|
-
|
|
20891
|
-
|
|
20892
|
-
|
|
20893
|
-
|
|
20894
|
-
|
|
20895
|
-
|
|
20896
|
-
|
|
20932
|
+
Encrypts the file before it reaches the destination — a file generated from records
|
|
20933
|
+
or, on a `blob: true` transfer, the existing file being moved; omit it for an
|
|
20934
|
+
unencrypted file. `pgp` requires `pgp.symmetricKeyAlgorithm` and a connection holding
|
|
20935
|
+
the recipient's public key (`pgp.publicKey`). Not observed in a run here; per the file
|
|
20936
|
+
adaptor's code (IO-213945, the `blob: true` transfer path): with no `compressionFormat`,
|
|
20937
|
+
a file over 200 MB fails the record before encryption with `pgp_file_size_exceeded`
|
|
20938
|
+
("The file size exceeds the maximum limit of 200 MB supported for PGP encryption." —
|
|
20939
|
+
the adaptor's `errorStore.js` text); with `compressionFormat` set the adaptor skips that
|
|
20940
|
+
pre-check (the compressed size is not known up front) and the encryption service
|
|
20941
|
+
enforces its own 200 MB limit on the compressed file (`S3_FILE_SIZE_EXCEEDED`); a key
|
|
20942
|
+
the platform cannot use fails with the PGP service's own code (`PGP_PUBLICKEY_INVALID` /
|
|
20943
|
+
`PGP_PRIVATEKEY_INVALID` — "<operation> failed because the <key> is invalid."), and
|
|
20944
|
+
`encryption_error` ("error in encrypting the file") only when the service returns no
|
|
20945
|
+
code; the file is never written in clear and a transfer's encryption failure is not
|
|
20946
|
+
retried automatically. A file generated from records meets the same encryption-service
|
|
20947
|
+
limit with `S3_FILE_SIZE_EXCEEDED`.
|
|
20948
|
+
x-celigo-ui-override: 'The transfer forms for FTP, S3, the on-premise file system and the cloud file providers (Box, Dropbox, Google Drive, Azure Blob Storage, Google Cloud Storage, Azure Data Lake Storage Gen2, Celigo file storage) offer the Encrypt files control in both modes (imports/subForms/fileAdvanced.js: ''pgpencrypt'' visible for inputMode records and blob, disabled until the connection holds a PGP key). The connection-side PGP section (connections/subForms/fileAdvanced.js) is mounted by ftp.js, s3.js, filesystem.js, celigoapis.ts, tp.js and the Box / Dropbox / Google Drive / Azure storage account custom HTTP forms; the Google Cloud Storage (httpFramework.js) and ADLS Gen2 (http.js) connection forms do not mount it, so on those two the key is set through the API. The AS2, VAN and NetSuite file cabinet import forms do not carry the control.'
|
|
20949
|
+
x-celigo-ai-guidance:
|
|
20950
|
+
- |-
|
|
20951
|
+
Without `pgp.symmetricKeyAlgorithm` the save fails with 422 `missing_required_field` on
|
|
20952
|
+
`file.pgp.symmetricKeyAlgorithm`; on a connection without `pgp.publicKey` it fails with
|
|
20953
|
+
422 `missing_required_field` on `file.encrypt` ("pgp publicKey is required when encrypt
|
|
20954
|
+
is selected to perform file encryption."), and that check runs first, for any value.
|
|
20955
|
+
- |-
|
|
20956
|
+
`true` and `false` are rejected with 422 `enum` — the field is the string `pgp`, never a
|
|
20957
|
+
boolean. Blob transfers follow the same save rules and return `encrypt` and `pgp` on
|
|
20958
|
+
reads even without `file.type`.
|
|
20897
20959
|
csv:
|
|
20898
20960
|
type: object
|
|
20899
20961
|
description: CSV-specific configuration. Only used when `type` is `"csv"`.
|
|
@@ -21165,10 +21227,16 @@ components:
|
|
|
21165
21227
|
sha384: SHA-384 signing hash.
|
|
21166
21228
|
sha512: SHA-512 signing hash.
|
|
21167
21229
|
sha224: SHA-224 signing hash.
|
|
21168
|
-
description: Hash algorithm used when signing the encrypted file; set only when the recipient requires a
|
|
21230
|
+
description: Hash algorithm used when signing the encrypted file; set only when the recipient requires a signature, which also needs the connection's `pgp.privateKey` and `pgp.passphrase`.
|
|
21169
21231
|
examples:
|
|
21170
21232
|
- sha256
|
|
21171
21233
|
- sha512
|
|
21234
|
+
x-celigo-ai-guidance:
|
|
21235
|
+
- |-
|
|
21236
|
+
On a connection without `pgp.privateKey` the save fails with 422
|
|
21237
|
+
`missing_required_field` on `file.pgp.hashAlgorithm` ("pgp privateKey is required
|
|
21238
|
+
when hashAlgorithm is selected to perform file signature."); leave it unset unless
|
|
21239
|
+
the connection holds the private key.
|
|
21172
21240
|
skipRename:
|
|
21173
21241
|
type: boolean
|
|
21174
21242
|
description: |-
|
|
@@ -27541,6 +27609,9 @@ components:
|
|
|
27541
27609
|
- exported_to_netsuite
|
|
27542
27610
|
Webhook:
|
|
27543
27611
|
type: object
|
|
27612
|
+
required:
|
|
27613
|
+
- verify
|
|
27614
|
+
x-celigo-ui-override: 'verify is required by the webhook listener form for every provider (exports/webhook.js: verify required:true; on a connector-backed listener the form pre-fills it from the connector definition before saving). The API enforces it only when provider is custom or absent — 422 missing_required_field on webhook.verify, "verify is required for export type webhook, provider = custom". For the named providers probed (slack, shopify, github) it stores a listener posted with key and no verify (201 each; the GET carries provider, key and formType simple) and requires a credential instead: without key (and no token) each answers 422 missing_required_field on webhook.key — "key is required for slack verification" / "key is required for shopify verification" / "key is required for github verification"; a slack listener posted with token and no key saved. Other named providers are unprobed. The requirement is kept so an authored document matches a form-saved one.'
|
|
27544
27615
|
description: Configuration for webhook listeners that receive data through incoming HTTP requests. Required when the export's `type` is `webhook`; omit for other export types. Senders POST to the export's listener URL, `https://api.integrator.io/v1/exports/{_id}/data` (or the same path on the account's regional API host); the platform validates each request using the configured `verify` method, passes the payload to subsequent flow steps, and returns a configurable HTTP response to the caller. A request is answered 204 by default when accepted, 401 when it fails verification, and 403 `unable_to_run_flows` while every flow the export feeds is disabled; a refused request is not queued, so the sender must resend it.
|
|
27545
27616
|
x-celigo-ai-guidance:
|
|
27546
27617
|
- Configuration object for real-time event listeners that receive data via incoming HTTP requests.
|
|
@@ -27615,7 +27686,7 @@ components:
|
|
|
27615
27686
|
properties:
|
|
27616
27687
|
provider:
|
|
27617
27688
|
type: string
|
|
27618
|
-
description: Source application sending the webhook,
|
|
27689
|
+
description: 'Source application sending the webhook. A named provider labels the listener and opens it in the Simple form view, where the form pre-fills that platform''s verification settings and payload parsing before saving; the API itself stores the document as sent and fills nothing in. Use `custom` (the default when omitted) for unlisted providers or when you need full manual control over the security configuration. A named provider requires a credential: `key` for the providers probed (shopify, github, slack — and slack also saves with `token` alone); the HMAC settings a provider''s form pre-fills are the form''s, not an API requirement (see the guidance below).'
|
|
27619
27690
|
x-celigo-ai-guidance:
|
|
27620
27691
|
- |-
|
|
27621
27692
|
Specifies the source application sending webhook data,
|
|
@@ -27626,10 +27697,18 @@ components:
|
|
|
27626
27697
|
This field determines how the webhook handles incoming requests:
|
|
27627
27698
|
|
|
27628
27699
|
- OPTIONAL: Defaults to "custom" if not specified
|
|
27629
|
-
-
|
|
27630
|
-
|
|
27631
|
-
|
|
27632
|
-
|
|
27700
|
+
- A named provider labels the listener, picks its form view (`formType`
|
|
27701
|
+
defaults to `simple`) and makes a credential required — probed for
|
|
27702
|
+
`slack`, `shopify` and `github`: without `key` (and no `token`) each
|
|
27703
|
+
fails with 422 missing_required_field on `webhook.key`, "key is required
|
|
27704
|
+
for slack verification" / "key is required for shopify verification" /
|
|
27705
|
+
"key is required for github verification"; a `slack` listener posted
|
|
27706
|
+
with `token` and no `key` saved. It does NOT make the API fill in
|
|
27707
|
+
`verify` and its companions — a document sent to the API stores exactly
|
|
27708
|
+
what it carries, and the listener form fills them from the connector
|
|
27709
|
+
definition before saving. Send them when the stored document should
|
|
27710
|
+
match a form-saved one (Slack: `verify: hmac`, `algorithm: sha256`,
|
|
27711
|
+
`encoding: base64`, `header: X-Slack-Signature`).
|
|
27633
27712
|
- |-
|
|
27634
27713
|
## IMPLEMENTATION GUIDANCE
|
|
27635
27714
|
|
|
@@ -27639,9 +27718,10 @@ components:
|
|
|
27639
27718
|
```
|
|
27640
27719
|
"provider": "shopify"
|
|
27641
27720
|
```
|
|
27642
|
-
-
|
|
27643
|
-
-
|
|
27644
|
-
|
|
27721
|
+
- Labels the listener as Shopify's and opens it in the Simple form view
|
|
27722
|
+
- Requires `key` (422 "key is required for shopify verification"); saves
|
|
27723
|
+
without `verify` and its companions, which the form would have filled in —
|
|
27724
|
+
send them for a document that matches a form-saved one
|
|
27645
27725
|
|
|
27646
27726
|
### Custom configuration
|
|
27647
27727
|
|
|
@@ -27657,7 +27737,7 @@ components:
|
|
|
27657
27737
|
|
|
27658
27738
|
Choose a specific provider when:
|
|
27659
27739
|
- The source system is explicitly listed in the enum values
|
|
27660
|
-
- You want
|
|
27740
|
+
- You want the form's pre-filled verification settings for that platform
|
|
27661
27741
|
- The integration must follow platform-specific practices
|
|
27662
27742
|
|
|
27663
27743
|
Choose "custom" when:
|
|
@@ -27704,7 +27784,7 @@ components:
|
|
|
27704
27784
|
shopify: Shopify store event webhooks with HMAC-SHA256 verification.
|
|
27705
27785
|
travis: Travis CI build event webhooks (travis-ci.com).
|
|
27706
27786
|
travis-org: Travis CI build event webhooks (travis-ci.org).
|
|
27707
|
-
slack: Slack workspace event webhooks with token
|
|
27787
|
+
slack: Slack workspace event webhooks. The Simple form pre-fills HMAC-SHA256 over the `X-Slack-Signature` header with the app's signing secret as `key`; the API itself accepts either `key` or `token` as the credential (probed 2026-10-29) and pre-fills nothing.
|
|
27708
27788
|
dropbox: Dropbox file change notification webhooks.
|
|
27709
27789
|
onfleet: Onfleet delivery management event webhooks.
|
|
27710
27790
|
helpscout: Help Scout customer support event webhooks.
|
|
@@ -27746,13 +27826,19 @@ components:
|
|
|
27746
27826
|
Which webhook export form the UI uses to edit this listener. A value sent on create or
|
|
27747
27827
|
update wins (case-insensitive — `Simple` is stored as `simple`); a PUT that omits it
|
|
27748
27828
|
keeps the stored value, and a new export without one gets the default for its
|
|
27749
|
-
`provider`. Every webhook export GET carries it.
|
|
27750
|
-
|
|
27751
|
-
|
|
27829
|
+
`provider`. Every webhook export GET carries it. The view changes nothing at run time:
|
|
27830
|
+
the listener URL, the verification and the flows are the same in both.
|
|
27831
|
+
x-celigo-ai-guidance:
|
|
27832
|
+
- |-
|
|
27833
|
+
Omit it on create — the API stamps the provider's default (`simple` for a named
|
|
27834
|
+
provider, `webhook` for `custom`), with or without `_httpConnectorId`, and keeps a
|
|
27835
|
+
value the user set by hand. The legacy UI values `http` / `assistant` fail with 422
|
|
27836
|
+
`enum`, and the field is not PATCH-whitelisted (422 "not a whitelisted property"):
|
|
27837
|
+
change it through a full save.
|
|
27752
27838
|
verify:
|
|
27753
27839
|
type: string
|
|
27754
27840
|
x-celigo-ui-override: Required by the webhook export form (verify is required:true). Encoded to mirror the form so builders produce connectable configurations.
|
|
27755
|
-
description: 'Verification method applied to every incoming request before processing; required for all webhook exports. Each method needs companion fields: `hmac` requires `key`, `algorithm`, `encoding`, and `header` (
|
|
27841
|
+
description: 'Verification method applied to every incoming request before processing; required for all webhook exports. Each method needs companion fields: `hmac` requires `key`, `algorithm`, `encoding`, and `header` (on connector-backed webhooks the form does not require them — it fills them from the connector definition before saving; the API itself copies nothing); `token` requires `token`, with `tokenLocation` defaulting to `body` and selecting which location-specific field applies; `basic` requires `username` and `password`; `secret_url` requires `token`. Prefer `hmac` when the source system supports it — it is the most secure option; `secret_url` relies only on URL obscurity and suits non-sensitive data or testing.'
|
|
27756
27842
|
x-celigo-ai-guidance:
|
|
27757
27843
|
- |-
|
|
27758
27844
|
## FIELD BEHAVIOR
|
|
@@ -28196,6 +28282,32 @@ components:
|
|
|
28196
28282
|
format: objectId
|
|
28197
28283
|
x-celigo-refModel: httpconnectors
|
|
28198
28284
|
description: HTTP connector backing this listener when the webhook is provided by an assistant/connector (e.g. Slack); set by the platform for connector-backed listeners.
|
|
28285
|
+
x-celigo-ai-guidance:
|
|
28286
|
+
- |-
|
|
28287
|
+
The save stores the document as sent and copies nothing from the connector: a
|
|
28288
|
+
listener posted with only `provider`, `key` and (optionally) `_httpConnectorId`
|
|
28289
|
+
saves with no `verify`, `algorithm`, `encoding` or `header` (probed for `slack`
|
|
28290
|
+
and `shopify`) — the API requires a credential for the provider and nothing else:
|
|
28291
|
+
without `key` (and no `token`) `slack`, `shopify` and `github` each fail with 422
|
|
28292
|
+
missing_required_field on `webhook.key` ("key is required for slack verification" /
|
|
28293
|
+
"key is required for shopify verification" / "key is required for github
|
|
28294
|
+
verification"), and a `slack` listener posted with `token` and no `key` saves. The
|
|
28295
|
+
listener form fills the verification fields from the connector's
|
|
28296
|
+
`supportedBy.export.preConfiguredFields` on every save (for Slack `verify: hmac`,
|
|
28297
|
+
`algorithm: sha256`, `encoding: base64`, `header: X-Slack-Signature`); an API
|
|
28298
|
+
caller that wants the stored document to match a form-saved one sends them itself.
|
|
28299
|
+
_httpConnectorApiId:
|
|
28300
|
+
type: string
|
|
28301
|
+
format: objectId
|
|
28302
|
+
x-celigo-refModel: httpconnectorapis
|
|
28303
|
+
description: API of a multi-API connector (an entry of the connector's `apis[]`) this listener is bound to — the form's API type, offered in the Simple view; omit for single-API connectors and universal webhooks.
|
|
28304
|
+
examples:
|
|
28305
|
+
- 673702e2f367e6469401dcf6
|
|
28306
|
+
x-celigo-ai-guidance:
|
|
28307
|
+
- |-
|
|
28308
|
+
Stored and echoed as sent on create and GET; a value that is not an ObjectId fails
|
|
28309
|
+
the save with 422 `invalid_field` ("Invalid value … for field
|
|
28310
|
+
'webhook._httpConnectorApiId'. Reason: BSONError.").
|
|
28199
28311
|
requestMediaType:
|
|
28200
28312
|
type: string
|
|
28201
28313
|
enum:
|
package/package.json
CHANGED
package/schemas.json
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
{
|
|
2
2
|
"provenance": {
|
|
3
3
|
"repo": "celigo/integrator-api-specs",
|
|
4
|
-
"iasCommit": "
|
|
5
|
-
"generatedAt": "2026-10-
|
|
4
|
+
"iasCommit": "869fd452",
|
|
5
|
+
"generatedAt": "2026-10-29"
|
|
6
6
|
},
|
|
7
7
|
"roots": {
|
|
8
8
|
"aiagent": 128,
|
|
@@ -4201,6 +4201,7 @@
|
|
|
4201
4201
|
"object"
|
|
4202
4202
|
],
|
|
4203
4203
|
"p": {
|
|
4204
|
+
"_httpConnectorApiId": 0,
|
|
4204
4205
|
"_httpConnectorId": 0,
|
|
4205
4206
|
"algorithm": 363,
|
|
4206
4207
|
"challengeResponseHeaders": 273,
|
|
@@ -4229,7 +4230,10 @@
|
|
|
4229
4230
|
"tokenQueryParamName": 0,
|
|
4230
4231
|
"username": 0,
|
|
4231
4232
|
"verify": 362
|
|
4232
|
-
}
|
|
4233
|
+
},
|
|
4234
|
+
"r": [
|
|
4235
|
+
"verify"
|
|
4236
|
+
]
|
|
4233
4237
|
},
|
|
4234
4238
|
{
|
|
4235
4239
|
"t": [
|