@celigo/api-specs 0.2.70 → 0.2.72

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 CHANGED
@@ -144,7 +144,9 @@ paths:
144
144
  description: |-
145
145
  Creates a new API. For `script` mode, include `script._scriptId` and `script.function` (the
146
146
  server also copies these to the top level in the response). For `builder` mode,
147
- `builder.request` is required (at minimum `relativeURI` and `method`).
147
+ `builder.request` can be added later — an API created without it has no route until
148
+ `relativeURI` and `method` are set — but when it is present it must carry both, or the
149
+ request fails with 422 `invalid_api_builder_request`.
148
150
 
149
151
  Builder-mode APIs are created with `logging: {"mode": "basic"}` when the account license
150
152
  has logging enabled -- the request body cannot override this (`logging` is ignored on POST
@@ -666,7 +668,13 @@ paths:
666
668
  summary: Update the grouping for one or more APIs
667
669
  description: |-
668
670
  Assigns or removes an API grouping for the specified API resources. Pass
669
- `_apiGroupingId: null` to ungroup. Nonexistent API IDs are silently accepted.
671
+ `_apiGroupingId: null` or omit it to ungroup. Nonexistent API IDs are silently accepted.
672
+
673
+ Every API in `_apiIds` must belong to the same integration, and the grouping must be
674
+ one of that integration's `apiGroupings`. Each API is re-saved through full validation,
675
+ so an API that cannot be saved as it stands (for example a builder API whose response
676
+ router is not configured yet) fails the request with 400 `apigrouping_update_error`;
677
+ regroup such an API with a full `PUT /v1/apis/{_id}` instead.
670
678
  requestBody:
671
679
  required: true
672
680
  content:
@@ -704,7 +712,34 @@ paths:
704
712
  '204':
705
713
  description: API grouping updated successfully (no body returned).
706
714
  '400':
707
- $ref: '#/components/responses/400-bad-request'
715
+ description: |-
716
+ The request was rejected: the APIs span more than one integration
717
+ (`invalid_request`), or one API could not be re-saved with the new grouping
718
+ (`apigrouping_update_error` — the grouping belongs to another integration, or the
719
+ API fails its own validation).
720
+ content:
721
+ application/json:
722
+ schema:
723
+ $ref: '#/components/schemas/Error'
724
+ examples:
725
+ differentIntegrations:
726
+ summary: APIs belong to different integrations
727
+ value:
728
+ errors:
729
+ - code: invalid_request
730
+ message: Unable to update apis for apigrouping, since apis belongs to different integrations.
731
+ groupingNotInIntegration:
732
+ summary: Grouping belongs to another integration
733
+ value:
734
+ errors:
735
+ - code: apigrouping_update_error
736
+ message: 'Failed to update api grouping for api: Get Customer. Error: API grouping does not belong to Integration: 6a429af50547257e3301246c.'
737
+ apiFailsValidation:
738
+ summary: API cannot be re-saved as it stands
739
+ value:
740
+ errors:
741
+ - code: apigrouping_update_error
742
+ message: 'Failed to update api grouping for api: Get Customer. Error: Response router id must be "apiRouter"..'
708
743
  '401':
709
744
  $ref: '#/components/responses/401-unauthorized'
710
745
  /v1/apis/{_id}/logs:
@@ -2119,7 +2154,8 @@ paths:
2119
2154
  combination of `version`, `method`, and `relativeURI` must be unique. Reusing all
2120
2155
  three returns a 422 `clone_api_already_exists`. Pass `_integrationId` to create the
2121
2156
  clone inside an integration — when omitted, the clone is created standalone rather
2122
- than inheriting the source API's integration.
2157
+ than inheriting the source API's integration. Add `_apiGroupingId` to file the clone
2158
+ under one of that integration's `apiGroupings`.
2123
2159
 
2124
2160
  Only **builder-type** APIs can be cloned — cloning any other API type returns a 400
2125
2161
  `clone_not_supported`.
@@ -2168,12 +2204,32 @@ paths:
2168
2204
  standalone — it does not inherit the source API's integration.
2169
2205
  examples:
2170
2206
  - 6a429af50547257e3301246c
2207
+ _apiGroupingId:
2208
+ type:
2209
+ - string
2210
+ - 'null'
2211
+ format: objectId
2212
+ description: |-
2213
+ Grouping inside the target integration that the clone is filed under; `null`
2214
+ or omitted leaves it ungrouped. Honored only together with `_integrationId` —
2215
+ sent without it, the clone is created standalone and the grouping is dropped
2216
+ silently. A grouping that belongs to a different integration fails the clone
2217
+ with 422 `apigrouping_not_belong` and nothing is created.
2218
+ examples:
2219
+ - 60a1b2c3d4e5f60012345678
2171
2220
  examples:
2172
2221
  default:
2173
2222
  summary: Clone to a new version
2174
2223
  value:
2175
2224
  version: v2
2176
2225
  name: IDP (v2)
2226
+ intoGroup:
2227
+ summary: Clone into an integration's API grouping
2228
+ value:
2229
+ version: v2
2230
+ name: IDP (v2)
2231
+ _integrationId: 6a429af50547257e3301246c
2232
+ _apiGroupingId: 60a1b2c3d4e5f60012345678
2177
2233
  responses:
2178
2234
  '201':
2179
2235
  description: |-
@@ -2234,8 +2290,9 @@ paths:
2234
2290
  $ref: '#/components/responses/404-not-found'
2235
2291
  '422':
2236
2292
  description: |-
2237
- An API with the same `version`, `method`, and `relativeURI` already exists. Clone
2238
- with a different `version` (or change the method/URI) to create a distinct API.
2293
+ An API with the same `version`, `method`, and `relativeURI` already exists — clone
2294
+ with a different `version` (or change the method/URI) to create a distinct API — or
2295
+ `_apiGroupingId` is not one of the target integration's `apiGroupings`.
2239
2296
  content:
2240
2297
  application/json:
2241
2298
  schema:
@@ -2246,6 +2303,13 @@ paths:
2246
2303
  errors:
2247
2304
  - code: clone_api_already_exists
2248
2305
  message: The clone API already exists with the same version, method and relative uri.
2306
+ groupingNotInIntegration:
2307
+ summary: Grouping belongs to a different integration
2308
+ value:
2309
+ errors:
2310
+ - field: _apiGroupingId
2311
+ code: apigrouping_not_belong
2312
+ message: 'Failed to create Api for _id "68ae4264b5f755d2dd3796b4" due to: API grouping does not belong to Integration: 6a429af50547257e3301246c'
2249
2313
  /v1/apis/{_id}/clone/validate:
2250
2314
  post:
2251
2315
  x-internal: false
@@ -3332,6 +3396,15 @@ components:
3332
3396
  API. On reads the field is omitted when unset, never `null`.
3333
3397
  examples:
3334
3398
  - 60a1b2c3d4e5f60012345678
3399
+ x-celigo-ai-guidance:
3400
+ - |-
3401
+ The id must be one of the `apiGroupings` of the integration named by _integrationId
3402
+ in the same write; any other id fails with 422 `apigrouping_not_belong` — including
3403
+ a PUT that changes _integrationId but keeps the previous grouping. When moving an
3404
+ API, send the target integration's grouping or `null` (Unassigned).
3405
+ - |-
3406
+ `PATCH /v1/apis/{_id}` rejects `/_apiGroupingId` (422, not a whitelisted property);
3407
+ regroup with a full PUT or with `PUT /v1/apis/updateApiGrouping`.
3335
3408
  description:
3336
3409
  type: string
3337
3410
  description: Optional description of the API's purpose.
@@ -3678,11 +3751,13 @@ components:
3678
3751
  description: |-
3679
3752
  Request body for creating or updating an API.
3680
3753
 
3681
- For builder-mode APIs, populate the `builder` object (at minimum
3682
- `builder.request.relativeURI` and `builder.request.method`); the `script`
3683
- field is ignored. For script-mode APIs, populate `script` with `_scriptId`
3684
- and `function`; the `builder` field is ignored. On PUT, send the complete
3685
- object — omitted fields revert to defaults.
3754
+ For builder-mode APIs, populate the `builder` object; the `script` field is
3755
+ ignored. `builder.request` can be omitted on create — the API has no route
3756
+ until `relativeURI` and `method` are set — but when it is present it must
3757
+ carry both, or the write fails with 422 `invalid_api_builder_request`. For
3758
+ script-mode APIs, populate `script` with `_scriptId` and `function`; the
3759
+ `builder` field is ignored. On PUT, send the complete object — omitted
3760
+ fields revert to defaults.
3686
3761
 
3687
3762
  Set `type` explicitly to `builder` or `script`. The server infers `script`
3688
3763
  when `type` is omitted, but new APIs must declare it.
@@ -287,7 +287,9 @@ paths:
287
287
  | `/flowGroupings` | Flow grouping configuration |
288
288
  | `/apiGroupings` | API grouping configuration |
289
289
 
290
- All other paths are rejected with `422`.
290
+ All other paths are rejected with `422`. A successful patch returns no body, so the
291
+ server-assigned `_id` of a grouping added through `/flowGroupings` or `/apiGroupings`
292
+ is only available from a follow-up `GET`.
291
293
  operationId: patchIntegration
292
294
  tags:
293
295
  - Integrations
@@ -4088,7 +4090,19 @@ components:
4088
4090
 
4089
4091
  Used to group APIs into named sections with their own settings/settingsForm.
4090
4092
  Works identically to `flowGroupings` but for API resources. Create groupings here,
4091
- then assign APIs to them via `PUT /v1/apis/updateApiGrouping`.
4093
+ then assign APIs to them via `PUT /v1/apis/updateApiGrouping`. A grouping that still
4094
+ has member APIs survives being removed from this array — ungroup its APIs first.
4095
+ x-celigo-ai-guidance:
4096
+ - |-
4097
+ `Unassigned` is a reserved name (422 `invalid_apigrouping_name`) and names must be
4098
+ unique within the integration (422 `duplicate_field`).
4099
+ - |-
4100
+ Removing a grouping that still has member APIs returns success but leaves the
4101
+ grouping in place; move those APIs with `PUT /v1/apis/updateApiGrouping` first.
4102
+ - |-
4103
+ `POST` and `PUT` answer with the saved integration, so a new grouping's `_id` is
4104
+ in the response; `PATCH` answers `204` with no body, so after a patch the `_id`
4105
+ comes from a follow-up `GET`.
4092
4106
  items:
4093
4107
  type: object
4094
4108
  additionalProperties: true
package/dist/script.yml CHANGED
@@ -361,10 +361,22 @@ paths:
361
361
  /v1/scripts/{_id}/logs:
362
362
  get:
363
363
  x-internal: false
364
- summary: Get debug logs for a script
364
+ summary: Get execution logs for a script
365
365
  description: |-
366
- Returns console output captured while debug is enabled on the script
367
- (`debugUntil` set to a future timestamp).
366
+ Returns the script's execution log — the entries its `console.*` calls wrote during
367
+ real runs of the flows, APIs and Tools whose steps use the script. `console.log`,
368
+ `console.info`, `console.warn` and `console.error` output is recorded on every real
369
+ run regardless of the parent's logging mode (a flow's log level, an API's request
370
+ logging, a Tool invoke without `x-log-mode`); `console.debug` output is recorded only
371
+ while the script's `debugUntil` is in the future. Entries stay readable after a debug window closes. Test runs
372
+ execute the script but write no entries.
373
+
374
+ The window is read from `time_lte` downward, one time slice at a time, and each
375
+ call returns one slice. A response with an empty `logs` array **and** a
376
+ `nextPageURL` means that slice held nothing while the rest of the window is still
377
+ unread — follow the cursor until a response arrives without one. Only an empty
378
+ `logs` array with no `nextPageURL` means the window holds no entries. To read a
379
+ known run in one call, set `time_lte` a few seconds after the run ended.
368
380
  tags:
369
381
  - Scripts
370
382
  operationId: getScriptLogs
@@ -377,9 +389,47 @@ paths:
377
389
  type: string
378
390
  format: objectId
379
391
  x-celigo-refModel: scripts
392
+ - name: time_lte
393
+ in: query
394
+ required: false
395
+ description: |-
396
+ Upper bound of the time window (inclusive), as epoch milliseconds. Defaults to now if
397
+ omitted. Reading starts here and proceeds backward.
398
+ schema:
399
+ type: integer
400
+ format: int64
401
+ - name: time_gt
402
+ in: query
403
+ required: false
404
+ description: Lower bound of the time window (exclusive), as epoch milliseconds.
405
+ schema:
406
+ type: integer
407
+ format: int64
408
+ - name: _flowId
409
+ in: query
410
+ required: false
411
+ description: |-
412
+ Restricts entries to hooks that ran inside this parent. Despite the name it matches
413
+ the containing flow, API, or Tool alike — pass whichever the hook step lives in.
414
+ schema:
415
+ type: string
416
+ format: objectId
417
+ - name: _resourceId
418
+ in: query
419
+ required: false
420
+ description: Restricts entries to hooks that ran on this export or import step.
421
+ schema:
422
+ type: string
423
+ format: objectId
424
+ - name: functionType
425
+ in: query
426
+ required: false
427
+ description: Restricts entries to one hook type (for example `preMap` or `postResponseMap`).
428
+ schema:
429
+ type: string
380
430
  responses:
381
431
  '200':
382
- description: Log entries for the script.
432
+ description: One slice of the script's execution log.
383
433
  content:
384
434
  application/json:
385
435
  schema:
@@ -387,18 +437,20 @@ paths:
387
437
  properties:
388
438
  logs:
389
439
  type: array
390
- description: Debug log entries. Empty array when no logs exist or debug is not enabled.
440
+ description: |-
441
+ Entries from the slice that was read, newest first. Empty when the slice held
442
+ nothing — check `nextPageURL` before treating that as an empty window.
391
443
  items:
392
444
  type: object
393
445
  properties:
394
446
  time:
395
447
  type: string
396
- description: Timestamp when the log was captured.
448
+ description: UTC timestamp when the entry was written.
397
449
  examples:
398
450
  - '2026-05-22 01:24:38.697'
399
451
  functionType:
400
452
  type: string
401
- description: Hook type that produced the log.
453
+ description: Hook type that produced the entry.
402
454
  examples:
403
455
  - preSavePage
404
456
  _resourceId:
@@ -409,23 +461,33 @@ paths:
409
461
  - 6843b67b35b64c0bcba2fd69
410
462
  logLevel:
411
463
  type: string
412
- description: Severity level of the log entry.
464
+ description: Severity of the entry, derived from the `console` method that wrote it.
413
465
  enum:
414
466
  - INFO
415
467
  - WARN
416
468
  - ERROR
469
+ - DEBUG
417
470
  x-enumDescriptions:
418
- INFO: Output from `console.log()`.
419
- WARN: Output from `console.warn()`.
420
- ERROR: Output from `console.error()`.
471
+ INFO: Output from `console.log()` or `console.info()`
472
+ WARN: Output from `console.warn()`
473
+ ERROR: Output from `console.error()`
474
+ DEBUG: Output from `console.debug()`, recorded only while `debugUntil` is in the future
421
475
  message:
422
476
  type: string
423
477
  description: Log message content.
424
478
  examples:
425
479
  - test log message from preSavePage
480
+ nextPageURL:
481
+ type: string
482
+ description: |-
483
+ Path of the next slice to read, carrying the same filters with `time_lte` moved
484
+ back to the slice boundary. Present whenever unread window remains — including
485
+ when `logs` is empty. Absent once the window is exhausted.
486
+ examples:
487
+ - /v1/scripts/6843b67b35b64c0bcba2fd69/logs?time_gt=1790869357487&time_lte=1790955400000
426
488
  examples:
427
489
  withLogs:
428
- summary: Script with debug logs
490
+ summary: Slice with entries
429
491
  value:
430
492
  logs:
431
493
  - time: '2026-05-22 01:24:38.697'
@@ -438,8 +500,13 @@ paths:
438
500
  _resourceId: 6843b67b35b64c0bcba2fd69
439
501
  logLevel: INFO
440
502
  message: test log message from preSavePage
503
+ emptySliceMoreToRead:
504
+ summary: Empty slice, window not exhausted — follow the cursor
505
+ value:
506
+ logs: []
507
+ nextPageURL: /v1/scripts/6843b67b35b64c0bcba2fd69/logs?time_gt=1790869357487&time_lte=1790955400000
441
508
  empty:
442
- summary: No logs
509
+ summary: Window exhausted, no entries
443
510
  value:
444
511
  logs: []
445
512
  '401':
@@ -451,10 +518,11 @@ paths:
451
518
  operationId: deleteScriptLogs
452
519
  tags:
453
520
  - Scripts
454
- summary: Delete debug logs for a script
521
+ summary: Delete execution logs for a script
455
522
  description: |-
456
- Deletes all debug logs for the specified script. Synchronous and
457
- idempotent — works even if the script has no logs.
523
+ Deletes every entry in the script's execution log — the same action as the script
524
+ page's Clear logs. Synchronous and idempotent; succeeds when the script has no
525
+ entries. The only way, apart from account retention, that entries leave the log.
458
526
  parameters:
459
527
  - name: _id
460
528
  in: path
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@celigo/api-specs",
3
- "version": "0.2.70",
3
+ "version": "0.2.72",
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": "d5da91d",
5
- "generatedAt": "2026-10-02"
4
+ "iasCommit": "77f1be1",
5
+ "generatedAt": "2026-10-03"
6
6
  },
7
7
  "roots": {
8
8
  "aiagent": 133,