@celigo/api-specs 0.2.115 → 0.2.117
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 +356 -0
- package/dist/export.yml +9 -12
- package/dist/iclient.yml +3 -3
- package/dist/job.yml +35 -2
- package/dist/tool.yml +9 -12
- package/package.json +1 -1
- package/schemas.json +2 -2
package/dist/ai-agent.yml
CHANGED
|
@@ -566,6 +566,182 @@ paths:
|
|
|
566
566
|
value: {}
|
|
567
567
|
'401':
|
|
568
568
|
$ref: '#/components/responses/401-unauthorized'
|
|
569
|
+
/v1/imports/{_id}/aiagents/chat:
|
|
570
|
+
post:
|
|
571
|
+
x-internal: false
|
|
572
|
+
operationId: chatWithAiAgent
|
|
573
|
+
tags:
|
|
574
|
+
- AI Agents
|
|
575
|
+
summary: Chat with a saved AI agent
|
|
576
|
+
description: |-
|
|
577
|
+
Sends one message to a saved AI agent and streams the answer as
|
|
578
|
+
`text/event-stream`. Events arrive in order: `init`, `thinking`
|
|
579
|
+
(started), a `progress` pair per tool call (`tool <name> started` /
|
|
580
|
+
`finished`), `thinking` (completed) — a Celigo Tool's inner-step
|
|
581
|
+
`progress` events can still arrive after it — `responsechunk` deltas
|
|
582
|
+
of the reply (raw text — join them), `usage` (tokens and AI-credit cost),
|
|
583
|
+
`complete` (`data.success`); an `error` event replaces the reply when
|
|
584
|
+
the turn fails (see `ChatStreamEvent`). The agent runs as configured:
|
|
585
|
+
its tools (web search, MCP servers, Celigo Tools) execute for real and
|
|
586
|
+
the turn is billed — AI credits on a hosted model, the key's owner on
|
|
587
|
+
a BYOK one. The same `conversationHistoryId` across requests keeps a
|
|
588
|
+
conversation; without it the message is a single turn and nothing is
|
|
589
|
+
stored. Needs the `ai_agent:chat` permission (manage and administrator
|
|
590
|
+
roles; monitor gets 403) and `Content-Type: application/json` (415 if
|
|
591
|
+
not).
|
|
592
|
+
|
|
593
|
+
None of the flow pipeline runs — no input filter, mappings, hooks or
|
|
594
|
+
response mapping — so this is the agent in conversation, not the import
|
|
595
|
+
step; `POST /v1/imports/preview` runs the step with its pre-submit
|
|
596
|
+
stages. A tile-level manager can chat only with agents inside
|
|
597
|
+
accessible integrations. Files travel as storage keys from the UI's
|
|
598
|
+
signed-upload flow; the public API has no upload route. The stream
|
|
599
|
+
carries its own failure: a turn the agent service could not finish
|
|
600
|
+
still answers 200 with an `error` event inside it. Read the events in
|
|
601
|
+
order and stop at `complete`, or at an `error` that ends the stream.
|
|
602
|
+
parameters:
|
|
603
|
+
- name: _id
|
|
604
|
+
in: path
|
|
605
|
+
required: true
|
|
606
|
+
description: 'The AI agent — an import with `adaptorType: AiAgentImport`.'
|
|
607
|
+
schema:
|
|
608
|
+
type: string
|
|
609
|
+
format: objectId
|
|
610
|
+
x-celigo-refModel: imports
|
|
611
|
+
requestBody:
|
|
612
|
+
required: true
|
|
613
|
+
content:
|
|
614
|
+
application/json:
|
|
615
|
+
schema:
|
|
616
|
+
$ref: '#/components/schemas/ChatRequest'
|
|
617
|
+
examples:
|
|
618
|
+
single-turn:
|
|
619
|
+
summary: One message, no conversation
|
|
620
|
+
value:
|
|
621
|
+
data:
|
|
622
|
+
- text: 'Classify this ticket: the invoice total is wrong on order 4411.'
|
|
623
|
+
continued-conversation:
|
|
624
|
+
summary: A follow-up in a conversation the caller keys
|
|
625
|
+
value:
|
|
626
|
+
data:
|
|
627
|
+
- text: What did you decide for the previous ticket?
|
|
628
|
+
conversationHistoryId: support-triage-session-42
|
|
629
|
+
responses:
|
|
630
|
+
'200':
|
|
631
|
+
description: |-
|
|
632
|
+
The turn as a stream of server-sent events, ending with `complete`.
|
|
633
|
+
A turn the agent service could not finish still answers 200: the
|
|
634
|
+
failure arrives inside the stream as an `error` event.
|
|
635
|
+
content:
|
|
636
|
+
text/event-stream:
|
|
637
|
+
itemSchema:
|
|
638
|
+
$ref: '#/components/schemas/ChatStreamEvent'
|
|
639
|
+
examples:
|
|
640
|
+
reply-with-a-web-search:
|
|
641
|
+
summary: A turn that called web search, as the raw stream
|
|
642
|
+
value: |
|
|
643
|
+
event: init
|
|
644
|
+
data: {"requestId": "3e71c33f-1c5e-4df5-93af-b3d503b28b23"}
|
|
645
|
+
|
|
646
|
+
event: thinking
|
|
647
|
+
data: {"status": "started", "requestId": "3e71c33f-1c5e-4df5-93af-b3d503b28b23"}
|
|
648
|
+
|
|
649
|
+
event: progress
|
|
650
|
+
data: {"content": "tool web_search started", "input": "", "output": "", "requestid": "3e71c33f-1c5e-4df5-93af-b3d503b28b23"}
|
|
651
|
+
|
|
652
|
+
event: progress
|
|
653
|
+
data: {"content": "tool web_search finished", "input": "", "output": "", "requestid": "3e71c33f-1c5e-4df5-93af-b3d503b28b23"}
|
|
654
|
+
|
|
655
|
+
event: thinking
|
|
656
|
+
data: {"status": "completed", "requestId": "3e71c33f-1c5e-4df5-93af-b3d503b28b23", "durationMs": 6571, "summary": "Called web_search"}
|
|
657
|
+
|
|
658
|
+
event: responsechunk
|
|
659
|
+
data: Latest stable Python 3 release: 3.15.0 — source: python.org.
|
|
660
|
+
|
|
661
|
+
event: usage
|
|
662
|
+
data: {"content": {"model": "gpt-5-mini", "input_tokens": 9218, "output_tokens": 737, "total_tokens": 9955, "token_only_ai_credits": 0.004345275, "tool_addon_cost": 0.01, "total_cost": 0.015845275, "web_search_details": {"billed_search_actions": 1, "tool_call_ai_credits": 0.0115}, "tool_call_buckets": [{"category": "native_tool", "total_count": 1, "tools": [{"name": "web_search", "count": 1}]}]}}
|
|
663
|
+
|
|
664
|
+
event: complete
|
|
665
|
+
data: {"success": true}
|
|
666
|
+
'400':
|
|
667
|
+
$ref: '#/components/responses/400-bad-request'
|
|
668
|
+
'401':
|
|
669
|
+
$ref: '#/components/responses/401-unauthorized'
|
|
670
|
+
'403':
|
|
671
|
+
$ref: '#/components/responses/403-forbidden'
|
|
672
|
+
'404':
|
|
673
|
+
$ref: '#/components/responses/404-not-found'
|
|
674
|
+
'415':
|
|
675
|
+
description: '`Content-Type: application/json` header is missing.'
|
|
676
|
+
/v1/aiagents/chat:
|
|
677
|
+
post:
|
|
678
|
+
x-internal: false
|
|
679
|
+
operationId: chatWithVirtualAiAgent
|
|
680
|
+
tags:
|
|
681
|
+
- AI Agents
|
|
682
|
+
summary: Chat with an unsaved AI agent document
|
|
683
|
+
description: |-
|
|
684
|
+
Sends one message to an AI agent document carried in the request — a
|
|
685
|
+
draft never saved, or a saved agent with unsaved changes — and streams
|
|
686
|
+
the answer back as `text/event-stream` with the same events as
|
|
687
|
+
`POST /v1/imports/{_id}/aiagents/chat` (see `ChatStreamEvent`). The
|
|
688
|
+
document is validated in memory the way a save validates it and is
|
|
689
|
+
never persisted: the saved agent, if there is one, is untouched, so
|
|
690
|
+
this is how a change is tried before it is saved. The agent's tools
|
|
691
|
+
execute for real and the turn is billed; none of the flow pipeline
|
|
692
|
+
runs. `conversationHistoryId` keeps a conversation keyed on the
|
|
693
|
+
document's `_id` when one is present, so a draft of a saved agent can
|
|
694
|
+
continue that agent's history. Needs the `ai_agent:virtual_chat`
|
|
695
|
+
permission (manage and administrator roles; monitor gets 403) and
|
|
696
|
+
`Content-Type: application/json` (415 otherwise).
|
|
697
|
+
|
|
698
|
+
The integrator.io agent editor uses this route for a Test or chat
|
|
699
|
+
message while the form has unsaved edits. A tile-level manager can use
|
|
700
|
+
it only when every connection, MCP connection and Celigo Tool the
|
|
701
|
+
document references is inside accessible integrations. A turn the
|
|
702
|
+
agent service could not finish still answers 200 with an `error` event
|
|
703
|
+
inside the stream.
|
|
704
|
+
requestBody:
|
|
705
|
+
required: true
|
|
706
|
+
content:
|
|
707
|
+
application/json:
|
|
708
|
+
schema:
|
|
709
|
+
$ref: '#/components/schemas/VirtualChatRequest'
|
|
710
|
+
examples:
|
|
711
|
+
try-changed-instructions:
|
|
712
|
+
summary: Run a saved agent's document with edited instructions, without saving
|
|
713
|
+
value:
|
|
714
|
+
data:
|
|
715
|
+
- text: 'Classify this ticket: the invoice total is wrong on order 4411.'
|
|
716
|
+
import:
|
|
717
|
+
_id: 6ad1005b1c1632e833de1227
|
|
718
|
+
name: Ticket triage
|
|
719
|
+
adaptorType: AiAgentImport
|
|
720
|
+
aiAgent:
|
|
721
|
+
provider: openai
|
|
722
|
+
openai:
|
|
723
|
+
model: gpt-5-mini
|
|
724
|
+
instructions: Classify the ticket and always ask for the order number when it is missing.
|
|
725
|
+
responses:
|
|
726
|
+
'200':
|
|
727
|
+
description: |-
|
|
728
|
+
The turn as a stream of server-sent events, ending with `complete`.
|
|
729
|
+
A turn the agent service could not finish still answers 200: the
|
|
730
|
+
failure arrives inside the stream as an `error` event.
|
|
731
|
+
content:
|
|
732
|
+
text/event-stream:
|
|
733
|
+
itemSchema:
|
|
734
|
+
$ref: '#/components/schemas/ChatStreamEvent'
|
|
735
|
+
'400':
|
|
736
|
+
$ref: '#/components/responses/400-bad-request'
|
|
737
|
+
'401':
|
|
738
|
+
$ref: '#/components/responses/401-unauthorized'
|
|
739
|
+
'403':
|
|
740
|
+
$ref: '#/components/responses/403-forbidden'
|
|
741
|
+
'415':
|
|
742
|
+
description: '`Content-Type: application/json` header is missing.'
|
|
743
|
+
'422':
|
|
744
|
+
$ref: '#/components/responses/422-unprocessable-entity'
|
|
569
745
|
components:
|
|
570
746
|
securitySchemes:
|
|
571
747
|
bearerAuth:
|
|
@@ -6214,6 +6390,173 @@ components:
|
|
|
6214
6390
|
dependencyIds:
|
|
6215
6391
|
export:
|
|
6216
6392
|
- 64ff4b21612a134bd2f45534
|
|
6393
|
+
ChatMessage:
|
|
6394
|
+
type: object
|
|
6395
|
+
description: |-
|
|
6396
|
+
One message for the agent. Give it `text`, `files`, or both; the agent
|
|
6397
|
+
answers in the streamed response.
|
|
6398
|
+
properties:
|
|
6399
|
+
text:
|
|
6400
|
+
type: string
|
|
6401
|
+
description: |-
|
|
6402
|
+
The message the agent answers. Whitespace-only text counts as empty,
|
|
6403
|
+
so a message with no `files` must carry visible text.
|
|
6404
|
+
examples:
|
|
6405
|
+
- 'Classify this ticket: the invoice total is wrong on order 4411.'
|
|
6406
|
+
files:
|
|
6407
|
+
type: array
|
|
6408
|
+
description: |-
|
|
6409
|
+
Files the agent reads with the message (images, PDFs, JSON documents).
|
|
6410
|
+
Each entry names an object already uploaded to the account's file
|
|
6411
|
+
storage through the signed-upload flow the integrator.io UI uses; the
|
|
6412
|
+
public API has no upload route of its own.
|
|
6413
|
+
items:
|
|
6414
|
+
type: object
|
|
6415
|
+
required:
|
|
6416
|
+
- name
|
|
6417
|
+
- blobKey
|
|
6418
|
+
properties:
|
|
6419
|
+
name:
|
|
6420
|
+
type: string
|
|
6421
|
+
description: File name shown to the agent.
|
|
6422
|
+
examples:
|
|
6423
|
+
- invoice-4411.pdf
|
|
6424
|
+
blobKey:
|
|
6425
|
+
type: string
|
|
6426
|
+
description: Storage key of the uploaded file, as returned by the signed-upload flow.
|
|
6427
|
+
conversationHistoryId:
|
|
6428
|
+
type: string
|
|
6429
|
+
maxLength: 200
|
|
6430
|
+
description: |-
|
|
6431
|
+
Caller-chosen key for a conversation with this agent. Turns sent
|
|
6432
|
+
with the same key share a history: the agent sees the earlier
|
|
6433
|
+
requests and replies and the history is updated after each turn.
|
|
6434
|
+
The key is scoped to the calling user and the agent, so the same
|
|
6435
|
+
string against a different agent is a different conversation. Omit
|
|
6436
|
+
it for a single-turn message — nothing is stored.
|
|
6437
|
+
examples:
|
|
6438
|
+
- support-triage-session-42
|
|
6439
|
+
x-celigo-ai-guidance:
|
|
6440
|
+
- |-
|
|
6441
|
+
A history keyed by a caller-chosen `conversationHistoryId` is runtime memory for the
|
|
6442
|
+
agent; it does not appear in the agent's Conversation history in the integrator.io
|
|
6443
|
+
UI, which lists only conversations started from the UI.
|
|
6444
|
+
ChatRequest:
|
|
6445
|
+
type: object
|
|
6446
|
+
description: |-
|
|
6447
|
+
Body of a chat turn with a saved AI agent: `data` holds the one message
|
|
6448
|
+
— its `text`, its `files` (name and storage `blobKey` of uploaded
|
|
6449
|
+
files), and an optional `conversationHistoryId` that keeps a
|
|
6450
|
+
conversation across requests.
|
|
6451
|
+
x-celigo-ai-guidance:
|
|
6452
|
+
- |-
|
|
6453
|
+
Rejections before the agent runs use the standard error envelope: 400 `invalid_request`
|
|
6454
|
+
("Request body can't be empty.") for an empty body; 400 `missing_required_field` ("data
|
|
6455
|
+
(must be an array with exactly one element) is required.") when `data` is not a
|
|
6456
|
+
one-element array, and ("data[0].text or data[0].files is required.") when the one
|
|
6457
|
+
message has neither `files` nor a non-blank `text`; 404 `invalid_ref` ("Import not
|
|
6458
|
+
found.") when no import with the `_id` is in the account.
|
|
6459
|
+
required:
|
|
6460
|
+
- data
|
|
6461
|
+
properties:
|
|
6462
|
+
data:
|
|
6463
|
+
type: array
|
|
6464
|
+
minItems: 1
|
|
6465
|
+
maxItems: 1
|
|
6466
|
+
description: |-
|
|
6467
|
+
Exactly one message per request. A request with more than one entry
|
|
6468
|
+
is rejected before the agent runs.
|
|
6469
|
+
items:
|
|
6470
|
+
$ref: '#/components/schemas/ChatMessage'
|
|
6471
|
+
ChatStreamEvent:
|
|
6472
|
+
type: object
|
|
6473
|
+
description: |-
|
|
6474
|
+
One server-sent event of a chat turn. The stream is `text/event-stream`:
|
|
6475
|
+
each event is an `event:` line naming the event and one or more `data:`
|
|
6476
|
+
lines carrying its payload, separated by a blank line. `data` is JSON for
|
|
6477
|
+
every event except `responsechunk`, whose `data:` lines are raw text (one
|
|
6478
|
+
line per line of the delta). A successful turn is `init`, `thinking`
|
|
6479
|
+
(started), any number of `progress` events, `thinking` (completed), the
|
|
6480
|
+
`responsechunk` deltas, `usage`, `complete`; a Celigo Tool's inner-step
|
|
6481
|
+
`progress` events can still arrive after `thinking` (completed).
|
|
6482
|
+
required:
|
|
6483
|
+
- event
|
|
6484
|
+
properties:
|
|
6485
|
+
event:
|
|
6486
|
+
type: string
|
|
6487
|
+
enum:
|
|
6488
|
+
- init
|
|
6489
|
+
- thinking
|
|
6490
|
+
- progress
|
|
6491
|
+
- responsechunk
|
|
6492
|
+
- bloboutput
|
|
6493
|
+
- usage
|
|
6494
|
+
- complete
|
|
6495
|
+
- error
|
|
6496
|
+
x-enumDescriptions:
|
|
6497
|
+
init: First event; `data.requestId` identifies the turn
|
|
6498
|
+
thinking: '`data.status` is `started` when the agent begins and `completed` with `durationMs` (and a `summary` such as `Called web_search`) when it is done reasoning'
|
|
6499
|
+
progress: 'A tool the agent is using — `data.content` reads `tool <name> started` or `tool <name> finished` (a Celigo Tool is named `celigo_tool_<_toolId>`), with `input` and `output` when the tool reports them; a Celigo Tool''s inner steps arrive as `data.content` `<step name>: <step type>` with `data.input` `step_start`, `step_complete` or `step_failed`, `data.output` the step''s stats as text, and `data.step` `{type: tool_step, event, name, tool_id, stepType, stats, attempt}`'
|
|
6500
|
+
responsechunk: A delta of the agent's reply; concatenate the deltas in order for the full text
|
|
6501
|
+
bloboutput: A file the agent produced — `data.content.preSignedURL` is a time-limited download link
|
|
6502
|
+
usage: Token counts and cost of the turn — `data.content` is a `ChatUsage` object; sent for every turn that reached the agent, also after an `error` the agent service reported
|
|
6503
|
+
complete: Last event of a turn that reached the agent — `data.success` is `true`, or `false` when an `error` event preceded it
|
|
6504
|
+
error: The turn failed — see the description of this schema for the payload shapes
|
|
6505
|
+
description: Name carried on the `event:` line.
|
|
6506
|
+
data:
|
|
6507
|
+
description: |-
|
|
6508
|
+
The event payload. For `error` the payload shape says where the
|
|
6509
|
+
failure happened. The agent service reports `{code, message, source?}`
|
|
6510
|
+
(for example `tool_stream_error` / `Tool execution failed` with
|
|
6511
|
+
`source: tools`) and the stream goes on to `usage` and `complete`
|
|
6512
|
+
with `success: false`. The chat relay reports `{content: {code,
|
|
6513
|
+
message}}` and ends the stream there — no `usage`, no `complete`
|
|
6514
|
+
(`validation_error` for a `conversationHistoryId` over 200
|
|
6515
|
+
characters). A stream that broke before reaching the relay
|
|
6516
|
+
arrives as a `data:` line with no `event:` line whose JSON carries
|
|
6517
|
+
`error` or `code`.
|
|
6518
|
+
oneOf:
|
|
6519
|
+
- type: object
|
|
6520
|
+
additionalProperties: true
|
|
6521
|
+
- type: string
|
|
6522
|
+
VirtualChatRequest:
|
|
6523
|
+
type: object
|
|
6524
|
+
description: |-
|
|
6525
|
+
Body of a chat turn with an AI agent document that has not been saved
|
|
6526
|
+
(or has unsaved changes): `data` holds the one message — `text`,
|
|
6527
|
+
`files` and an optional `conversationHistoryId`, as on the saved-agent
|
|
6528
|
+
route — and `import` carries the document to run, in the shape
|
|
6529
|
+
`GET /v1/imports/{_id}` returns. The document is validated in memory
|
|
6530
|
+
the same way a save validates it and is never persisted.
|
|
6531
|
+
x-celigo-ai-guidance:
|
|
6532
|
+
- |-
|
|
6533
|
+
The document is checked in this order: 400 `invalid_request` ("Import document should be
|
|
6534
|
+
a JSON object.") when `import` is missing or not an object; 422 — the validation a save
|
|
6535
|
+
runs — `missing_required_field` on a field the import schema requires, or `invalid_ref`
|
|
6536
|
+
with `field: _connectionId` ("<id> is not a valid _connectionId") on a connection not in
|
|
6537
|
+
the account; then 400 `invalid_adaptor` ("Unsupported operation: Chat route is enabled
|
|
6538
|
+
only for AI Agent imports.") when `adaptorType` is not `AiAgentImport`. The `data` rules
|
|
6539
|
+
match the saved-agent route.
|
|
6540
|
+
required:
|
|
6541
|
+
- data
|
|
6542
|
+
- import
|
|
6543
|
+
properties:
|
|
6544
|
+
data:
|
|
6545
|
+
type: array
|
|
6546
|
+
minItems: 1
|
|
6547
|
+
maxItems: 1
|
|
6548
|
+
description: Exactly one message per request.
|
|
6549
|
+
items:
|
|
6550
|
+
$ref: '#/components/schemas/ChatMessage'
|
|
6551
|
+
import:
|
|
6552
|
+
description: |-
|
|
6553
|
+
The AI agent document to run, with `adaptorType: AiAgentImport` and
|
|
6554
|
+
the `aiAgent` block for the configuration under test. An `_id` is
|
|
6555
|
+
optional; when present it is kept, so a `conversationHistoryId`
|
|
6556
|
+
continues the same history the saved agent uses. A `_connectionId`
|
|
6557
|
+
selects the BYOK connection the turn runs through.
|
|
6558
|
+
allOf:
|
|
6559
|
+
- $ref: '#/components/schemas/Request'
|
|
6217
6560
|
responses:
|
|
6218
6561
|
400-bad-request:
|
|
6219
6562
|
description: |
|
|
@@ -6302,5 +6645,18 @@ components:
|
|
|
6302
6645
|
errors:
|
|
6303
6646
|
- code: dependencies_not_deleted
|
|
6304
6647
|
message: export 6902d88c10b42b2eaac9b2a1 must be deleted before you can delete connection 6398ddf316be761fb16a6523
|
|
6648
|
+
403-forbidden:
|
|
6649
|
+
description: |
|
|
6650
|
+
Forbidden. The authenticated caller does not have permission to perform this operation.
|
|
6651
|
+
content:
|
|
6652
|
+
application/json:
|
|
6653
|
+
schema:
|
|
6654
|
+
$ref: '#/components/schemas/Error'
|
|
6655
|
+
examples:
|
|
6656
|
+
default:
|
|
6657
|
+
value:
|
|
6658
|
+
errors:
|
|
6659
|
+
- code: forbidden
|
|
6660
|
+
message: You do not have permission to access this resource.
|
|
6305
6661
|
x-enable-proxy: true
|
|
6306
6662
|
x-internal: false
|
package/dist/export.yml
CHANGED
|
@@ -1714,18 +1714,18 @@ components:
|
|
|
1714
1714
|
### Common implementations
|
|
1715
1715
|
|
|
1716
1716
|
```
|
|
1717
|
-
"token": "
|
|
1717
|
+
"token": "3a7c4f8b2e9d1a5c6b3e7d9fEXAMPLE"
|
|
1718
1718
|
```
|
|
1719
1719
|
|
|
1720
1720
|
```
|
|
1721
|
-
"token": "
|
|
1721
|
+
"token": "whsec_8fb2e91a5c6b3e7dEXAMPLE"
|
|
1722
1722
|
```
|
|
1723
1723
|
|
|
1724
1724
|
IMPORTANT: Never share this token in public repositories or documentation.
|
|
1725
1725
|
Treat it as a sensitive credential similar to a password.
|
|
1726
1726
|
examples:
|
|
1727
1727
|
- verification_token_abcdef
|
|
1728
|
-
-
|
|
1728
|
+
- whsec_8fb2e91a5c6b3e7dEXAMPLE
|
|
1729
1729
|
algorithm:
|
|
1730
1730
|
type: string
|
|
1731
1731
|
description: Hashing algorithm used to validate HMAC signatures when `verify` is `hmac`. Must match the algorithm the webhook sender uses — a mismatch causes every request to be rejected. Use `sha256` unless the provider explicitly requires another value.
|
|
@@ -1866,19 +1866,19 @@ components:
|
|
|
1866
1866
|
### Common implementations
|
|
1867
1867
|
|
|
1868
1868
|
```
|
|
1869
|
-
"key": "
|
|
1869
|
+
"key": "whsec_3a7c4f8b2e9d1a5c6b3e7dEXAMPLE"
|
|
1870
1870
|
```
|
|
1871
1871
|
|
|
1872
1872
|
```
|
|
1873
|
-
"key": "
|
|
1873
|
+
"key": "9d1a5c6b3e7d9f2a1c5b8e3aEXAMPLE"
|
|
1874
1874
|
```
|
|
1875
1875
|
|
|
1876
1876
|
IMPORTANT: This key should be treated as a highly sensitive credential,
|
|
1877
1877
|
similar to a private key or password. It should never be exposed publicly
|
|
1878
1878
|
or logged in application logs.
|
|
1879
1879
|
examples:
|
|
1880
|
-
-
|
|
1881
|
-
-
|
|
1880
|
+
- whsec_3a7c4f8b2e9d1a5c6b3e7dEXAMPLE
|
|
1881
|
+
- 9d1a5c6b3e7d9f2a1c5b8e3aEXAMPLE
|
|
1882
1882
|
header:
|
|
1883
1883
|
type: string
|
|
1884
1884
|
description: Name of the request header that carries the HMAC signature when `verify` is `hmac`. Must match the header name the webhook sender uses (header names are case-insensitive); requests without this header are rejected with a 401. Signature prefixes in the header value (such as `sha256=`) are handled automatically.
|
|
@@ -2104,12 +2104,9 @@ components:
|
|
|
2104
2104
|
|
|
2105
2105
|
Example header:
|
|
2106
2106
|
```
|
|
2107
|
-
Authorization: Basic
|
|
2107
|
+
Authorization: Basic base64(webhook_user:webhook_password)
|
|
2108
2108
|
```
|
|
2109
2109
|
|
|
2110
|
-
Where "d2ViaG9va191c2VyOndlYmhvb2tfcGFzc3dvcmQ=" is the base64 encoding of
|
|
2111
|
-
"webhook_user:webhook_password".
|
|
2112
|
-
|
|
2113
2110
|
### Security considerations
|
|
2114
2111
|
|
|
2115
2112
|
Basic Authentication:
|
|
@@ -2160,7 +2157,7 @@ components:
|
|
|
2160
2157
|
Never share it in public repositories, documentation, or logs. Always use
|
|
2161
2158
|
HTTPS for webhooks using Basic Authentication to prevent credential interception.
|
|
2162
2159
|
examples:
|
|
2163
|
-
- xC7!rTp2@bN9$
|
|
2160
|
+
- xC7!rTp2@bN9$EXAMPLE
|
|
2164
2161
|
- webhook_secure_pass_123
|
|
2165
2162
|
successStatusCode:
|
|
2166
2163
|
type: integer
|
package/dist/iclient.yml
CHANGED
|
@@ -3002,7 +3002,7 @@ components:
|
|
|
3002
3002
|
- Use this field to comply with specific OAuth 2.0 server requirements for token revocation.
|
|
3003
3003
|
- |-
|
|
3004
3004
|
## EXAMPLES:
|
|
3005
|
-
- `Authorization: Basic
|
|
3005
|
+
- `Authorization: Basic base64(client_id:client_secret)`
|
|
3006
3006
|
- `Content-Type: application/x-www-form-urlencoded`
|
|
3007
3007
|
- `X-Custom-Header: customValue`
|
|
3008
3008
|
- |-
|
|
@@ -3072,7 +3072,7 @@ components:
|
|
|
3072
3072
|
x-celigo-ai-guidance:
|
|
3073
3073
|
- |-
|
|
3074
3074
|
## EXAMPLES:
|
|
3075
|
-
- `{"password":"
|
|
3075
|
+
- `{"password":"my-password-EXAMPLE"}`
|
|
3076
3076
|
- `{"token":"x7if4nkovhgr63ghp"}`
|
|
3077
3077
|
- |-
|
|
3078
3078
|
## IMPORTANT NOTES:
|
|
@@ -4136,7 +4136,7 @@ components:
|
|
|
4136
4136
|
- |-
|
|
4137
4137
|
## EXAMPLES:
|
|
4138
4138
|
- eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c
|
|
4139
|
-
- eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiJ9.eyJpc3MiOiJleGFtcGxlLmNvbSIsInN1YiI6IjEyMzQ1Njc4OTAiLCJleHAiOjE2MjQ2MjQwMDB9.
|
|
4139
|
+
- eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiJ9.eyJpc3MiOiJleGFtcGxlLmNvbSIsInN1YiI6IjEyMzQ1Njc4OTAiLCJleHAiOjE2MjQ2MjQwMDB9.EXAMPLEsignature
|
|
4140
4140
|
- |-
|
|
4141
4141
|
## DEPENDENCY CHAIN:
|
|
4142
4142
|
- Depends on the authentication mechanism generating the JWT.
|
package/dist/job.yml
CHANGED
|
@@ -45,10 +45,26 @@ paths:
|
|
|
45
45
|
pass at least one of `_integrationId`, `_flowId`, `_exportId`,
|
|
46
46
|
`_importId`, `_flowJobId`, `createdAt_gte`, or `createdAt_lte` to
|
|
47
47
|
scope the query. Omitting all filters returns all jobs in the account.
|
|
48
|
+
Exception: for a caller with integration-only access, `_flowId` scopes
|
|
49
|
+
a `type=flow` or `type=retry` query only together with
|
|
50
|
+
`_integrationId` (below).
|
|
48
51
|
- **Child jobs** (`type=export` or `type=import`) — requires
|
|
49
52
|
`_flowJobId` or a resource ID filter (`_exportId` / `_importId`).
|
|
50
53
|
Returns the export/import sub-jobs within a parent flow job.
|
|
51
54
|
|
|
55
|
+
Job reads are authorized per integration. For a caller with
|
|
56
|
+
integration-only access (an account share that populates
|
|
57
|
+
`integrationAccessLevel` and omits `accessLevel`), a parent-job query
|
|
58
|
+
scoped by `_flowId` alone (`type=flow` or `type=retry`) fails with `400`
|
|
59
|
+
`query_param_required` ("Please provide the integration _id for which you
|
|
60
|
+
want to fetch the jobs"); it succeeds once `_integrationId` is sent beside
|
|
61
|
+
`_flowId`. Account-level callers may scope by `_flowId` alone, but that
|
|
62
|
+
path resolves the flow document first, so the jobs of a deleted flow come
|
|
63
|
+
back only when `_integrationId` is sent. Send the flow's `_integrationId`
|
|
64
|
+
together with `_flowId` whenever the flow document carries one — a flow
|
|
65
|
+
in the account's "Standalone flows" integration sends that integration's
|
|
66
|
+
id; only a legacy flow whose `_integrationId` is `null` has none to send.
|
|
67
|
+
|
|
52
68
|
Date filters accept ISO 8601, plain date, or epoch milliseconds. When
|
|
53
69
|
combining `numError_gte`/`numError_lte` with `_integrationId`, use full
|
|
54
70
|
ISO 8601 with millis (plain-date format may be rejected). To page
|
|
@@ -67,7 +83,12 @@ paths:
|
|
|
67
83
|
x-celigo-refModel: integrations
|
|
68
84
|
examples:
|
|
69
85
|
- 6842261335b64c0bcb308e4f
|
|
70
|
-
description:
|
|
86
|
+
description: |-
|
|
87
|
+
Filter by integration ID. Satisfies the required-param check. Callers
|
|
88
|
+
with integration-only access must send it beside `_flowId` on
|
|
89
|
+
`type=flow` and `type=retry` queries — `_flowId` alone is refused
|
|
90
|
+
there. A value that is not the flow's integration returns no jobs
|
|
91
|
+
rather than an error.
|
|
71
92
|
- name: _exportId
|
|
72
93
|
in: query
|
|
73
94
|
schema:
|
|
@@ -91,7 +112,13 @@ paths:
|
|
|
91
112
|
x-celigo-refModel: flows
|
|
92
113
|
examples:
|
|
93
114
|
- 69f54d6b7009ea11abad707a
|
|
94
|
-
description:
|
|
115
|
+
description: |-
|
|
116
|
+
Filter by flow ID. Satisfies the required-param check for
|
|
117
|
+
account-level callers; callers with integration-only access must
|
|
118
|
+
also send `_integrationId` on `type=flow` and `type=retry` queries.
|
|
119
|
+
On its own it resolves the flow document
|
|
120
|
+
first, so it returns nothing for a flow that no longer exists — pair
|
|
121
|
+
it with `_integrationId` to read a deleted flow's jobs.
|
|
95
122
|
- name: _flowJobId
|
|
96
123
|
in: query
|
|
97
124
|
schema:
|
|
@@ -312,6 +339,12 @@ paths:
|
|
|
312
339
|
errors:
|
|
313
340
|
- code: invalid_query
|
|
314
341
|
message: For child jobs, query parameters must contain either "_flowJobId" or "resourceId"
|
|
342
|
+
integration_only_caller_missing_integration_id:
|
|
343
|
+
summary: Integration-only caller queried by _flowId without _integrationId
|
|
344
|
+
value:
|
|
345
|
+
errors:
|
|
346
|
+
- code: query_param_required
|
|
347
|
+
message: Please provide the integration _id for which you want to fetch the jobs.
|
|
315
348
|
invalid_status:
|
|
316
349
|
summary: Invalid status enum value
|
|
317
350
|
value:
|
package/dist/tool.yml
CHANGED
|
@@ -26365,18 +26365,18 @@ components:
|
|
|
26365
26365
|
### Common implementations
|
|
26366
26366
|
|
|
26367
26367
|
```
|
|
26368
|
-
"token": "
|
|
26368
|
+
"token": "3a7c4f8b2e9d1a5c6b3e7d9fEXAMPLE"
|
|
26369
26369
|
```
|
|
26370
26370
|
|
|
26371
26371
|
```
|
|
26372
|
-
"token": "
|
|
26372
|
+
"token": "whsec_8fb2e91a5c6b3e7dEXAMPLE"
|
|
26373
26373
|
```
|
|
26374
26374
|
|
|
26375
26375
|
IMPORTANT: Never share this token in public repositories or documentation.
|
|
26376
26376
|
Treat it as a sensitive credential similar to a password.
|
|
26377
26377
|
examples:
|
|
26378
26378
|
- verification_token_abcdef
|
|
26379
|
-
-
|
|
26379
|
+
- whsec_8fb2e91a5c6b3e7dEXAMPLE
|
|
26380
26380
|
algorithm:
|
|
26381
26381
|
type: string
|
|
26382
26382
|
description: Hashing algorithm used to validate HMAC signatures when `verify` is `hmac`. Must match the algorithm the webhook sender uses — a mismatch causes every request to be rejected. Use `sha256` unless the provider explicitly requires another value.
|
|
@@ -26517,19 +26517,19 @@ components:
|
|
|
26517
26517
|
### Common implementations
|
|
26518
26518
|
|
|
26519
26519
|
```
|
|
26520
|
-
"key": "
|
|
26520
|
+
"key": "whsec_3a7c4f8b2e9d1a5c6b3e7dEXAMPLE"
|
|
26521
26521
|
```
|
|
26522
26522
|
|
|
26523
26523
|
```
|
|
26524
|
-
"key": "
|
|
26524
|
+
"key": "9d1a5c6b3e7d9f2a1c5b8e3aEXAMPLE"
|
|
26525
26525
|
```
|
|
26526
26526
|
|
|
26527
26527
|
IMPORTANT: This key should be treated as a highly sensitive credential,
|
|
26528
26528
|
similar to a private key or password. It should never be exposed publicly
|
|
26529
26529
|
or logged in application logs.
|
|
26530
26530
|
examples:
|
|
26531
|
-
-
|
|
26532
|
-
-
|
|
26531
|
+
- whsec_3a7c4f8b2e9d1a5c6b3e7dEXAMPLE
|
|
26532
|
+
- 9d1a5c6b3e7d9f2a1c5b8e3aEXAMPLE
|
|
26533
26533
|
header:
|
|
26534
26534
|
type: string
|
|
26535
26535
|
description: Name of the request header that carries the HMAC signature when `verify` is `hmac`. Must match the header name the webhook sender uses (header names are case-insensitive); requests without this header are rejected with a 401. Signature prefixes in the header value (such as `sha256=`) are handled automatically.
|
|
@@ -26755,12 +26755,9 @@ components:
|
|
|
26755
26755
|
|
|
26756
26756
|
Example header:
|
|
26757
26757
|
```
|
|
26758
|
-
Authorization: Basic
|
|
26758
|
+
Authorization: Basic base64(webhook_user:webhook_password)
|
|
26759
26759
|
```
|
|
26760
26760
|
|
|
26761
|
-
Where "d2ViaG9va191c2VyOndlYmhvb2tfcGFzc3dvcmQ=" is the base64 encoding of
|
|
26762
|
-
"webhook_user:webhook_password".
|
|
26763
|
-
|
|
26764
26761
|
### Security considerations
|
|
26765
26762
|
|
|
26766
26763
|
Basic Authentication:
|
|
@@ -26811,7 +26808,7 @@ components:
|
|
|
26811
26808
|
Never share it in public repositories, documentation, or logs. Always use
|
|
26812
26809
|
HTTPS for webhooks using Basic Authentication to prevent credential interception.
|
|
26813
26810
|
examples:
|
|
26814
|
-
- xC7!rTp2@bN9$
|
|
26811
|
+
- xC7!rTp2@bN9$EXAMPLE
|
|
26815
26812
|
- webhook_secure_pass_123
|
|
26816
26813
|
successStatusCode:
|
|
26817
26814
|
type: integer
|
package/package.json
CHANGED