@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 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": "3a7c4f8b2e9d1a5c6b3e7d9f2a1c5b8e"
1717
+ "token": "3a7c4f8b2e9d1a5c6b3e7d9fEXAMPLE"
1718
1718
  ```
1719
1719
 
1720
1720
  ```
1721
- "token": "whsec_8fb2e91a5c6b3e7d9f2a1c5b8e3a7c4f"
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
- - whsec_8fb2e91a5c6b3e7d9f2a1c5b8e3a7c4f
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": "whsec_3a7c4f8b2e9d1a5c6b3e7d9f2a1c5b8e3a7c4f8b"
1869
+ "key": "whsec_3a7c4f8b2e9d1a5c6b3e7dEXAMPLE"
1870
1870
  ```
1871
1871
 
1872
1872
  ```
1873
- "key": "sk_test_51LZIr9B9Y6YIwSKx8647589JKhdjs889KJsk389"
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
- - whsec_3a7c4f8b2e9d1a5c6b3e7d9f2a1c5b8e3a7c4f8b
1881
- - sk_test_51LZIr9B9Y6YIwSKx8647589JKhdjs889KJsk389
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 d2ViaG9va191c2VyOndlYmhvb2tfcGFzc3dvcmQ=
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$mQ5
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 Y2xpZW50SWQ6Y2xpZW50U2VjcmV0`
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":"celigorocks"}`
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.DQABCD1234abcd5678efgh9012ijkl3456mnop7890qrstuv
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: Filter by integration ID. Satisfies the required-param check.
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: Filter by flow ID. Satisfies the required-param check.
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": "3a7c4f8b2e9d1a5c6b3e7d9f2a1c5b8e"
26368
+ "token": "3a7c4f8b2e9d1a5c6b3e7d9fEXAMPLE"
26369
26369
  ```
26370
26370
 
26371
26371
  ```
26372
- "token": "whsec_8fb2e91a5c6b3e7d9f2a1c5b8e3a7c4f"
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
- - whsec_8fb2e91a5c6b3e7d9f2a1c5b8e3a7c4f
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": "whsec_3a7c4f8b2e9d1a5c6b3e7d9f2a1c5b8e3a7c4f8b"
26520
+ "key": "whsec_3a7c4f8b2e9d1a5c6b3e7dEXAMPLE"
26521
26521
  ```
26522
26522
 
26523
26523
  ```
26524
- "key": "sk_test_51LZIr9B9Y6YIwSKx8647589JKhdjs889KJsk389"
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
- - whsec_3a7c4f8b2e9d1a5c6b3e7d9f2a1c5b8e3a7c4f8b
26532
- - sk_test_51LZIr9B9Y6YIwSKx8647589JKhdjs889KJsk389
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 d2ViaG9va191c2VyOndlYmhvb2tfcGFzc3dvcmQ=
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$mQ5
26811
+ - xC7!rTp2@bN9$EXAMPLE
26815
26812
  - webhook_secure_pass_123
26816
26813
  successStatusCode:
26817
26814
  type: integer
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@celigo/api-specs",
3
- "version": "0.2.115",
3
+ "version": "0.2.117",
4
4
  "private": false,
5
5
  "description": "Public OpenAPI bundles (dist/) and the celigo-cli lint schema pack (schemas.json).",
6
6
  "keywords": [
package/schemas.json CHANGED
@@ -1,8 +1,8 @@
1
1
  {
2
2
  "provenance": {
3
3
  "repo": "celigo/integrator-api-specs",
4
- "iasCommit": "d2a71cdf",
5
- "generatedAt": "2026-10-15"
4
+ "iasCommit": "e8037248",
5
+ "generatedAt": "2026-10-16"
6
6
  },
7
7
  "roots": {
8
8
  "aiagent": 133,