@celigo/api-specs 0.2.201 → 0.2.203

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.
@@ -34,7 +34,9 @@ paths:
34
34
  `partUrls`, and `completeUrl` for larger files. Upload the bytes directly
35
35
  to those URLs — a single PUT must carry the
36
36
  `x-amz-server-side-encryption: AES256` header — then the item flips to
37
- active once S3 confirms it; no further API call is needed. Each URL's
37
+ active once S3 confirms it; no further API call is needed. If the
38
+ uploaded object is empty (0 bytes), the file is not activated: it is
39
+ deleted permanently, without passing through the recycle bin. Each URL's
38
40
  lifetime is in its `X-Amz-Expires` parameter; once every part already
39
41
  issued has been uploaded, a multipart upload fetches further part URLs by
40
42
  posting again with the item's `_id`, `uploadId`, and `issuedPartsCount`,
@@ -222,7 +224,12 @@ paths:
222
224
  downloadUrl:
223
225
  type: string
224
226
  format: uri
225
- description: Presigned S3 URL to GET the file's bytes from.
227
+ description: |-
228
+ Presigned S3 URL to GET the file's bytes from. The bytes are
229
+ served as an attachment named after the item: the
230
+ `Content-Disposition` header carries an ASCII `filename` in
231
+ which non-ASCII characters are replaced with `_`, plus
232
+ `filename*=UTF-8''` with the full name percent-encoded.
226
233
  examples:
227
234
  - https://integrator-file-storage.s3.us-west-2.amazonaws.com/file-storage/...
228
235
  expiresIn:
@@ -611,6 +618,17 @@ paths:
611
618
  description: Folder name.
612
619
  examples:
613
620
  - My Files
621
+ _integrationId:
622
+ type: string
623
+ format: objectId
624
+ x-celigo-refModel: integrations
625
+ description: |-
626
+ Integration whose system folder tree contains the listed
627
+ folder. Present only on the last entry (the listed folder
628
+ itself), and only when that folder is the integration's
629
+ root folder or inside it.
630
+ examples:
631
+ - 6ab1e7ab38d7733b4594d0d2
614
632
  examples:
615
633
  listMode:
616
634
  summary: List a folder's children
@@ -839,7 +857,10 @@ paths:
839
857
 
840
858
  Only files are looked up: a folder's id is treated as unknown, so it
841
859
  fails the request or comes back as a `notFound` entry. Read folder
842
- metadata from `GET /v1/storage/items`.
860
+ metadata from `GET /v1/storage/items`. A pending file is returned, as
861
+ active, once its bytes have landed in storage, even if the upload has not
862
+ finalized yet; a pending file whose bytes have not been uploaded is
863
+ treated as unknown.
843
864
  operationId: batchGetStorageItems
844
865
  tags:
845
866
  - File Storage
@@ -1293,9 +1314,12 @@ paths:
1293
1314
  Updates an item's `name` and/or `description`. Renaming keeps the item's
1294
1315
  `_id` stable, so references from flows, exports, imports, and tokens
1295
1316
  survive; a name already held by another live item in the same folder is
1296
- rejected with 409 `STORAGE_ITEM_ALREADY_EXISTS`. To move an item to a
1297
- different folder, use `PATCH /v1/storage/items/{_id}/move`; to replace a
1298
- file's content, use `PATCH /v1/storage/items/{_id}/replace`.
1317
+ rejected with 409 `STORAGE_ITEM_ALREADY_EXISTS`. An integration's root
1318
+ folder (`isSystem`) can be renamed and described too; renaming the
1319
+ integration updates only the folder's `integrationName`, never its
1320
+ `name`. To move an item to a different folder, use
1321
+ `PATCH /v1/storage/items/{_id}/move`; to replace a file's content, use
1322
+ `PATCH /v1/storage/items/{_id}/replace`.
1299
1323
  operationId: updateStorageItem
1300
1324
  tags:
1301
1325
  - File Storage
@@ -1450,7 +1474,9 @@ paths:
1450
1474
  placement are preserved, so every reference to the file stays intact — use
1451
1475
  this instead of delete-and-recreate when a file is referenced by flows or
1452
1476
  exports. The previous content remains downloadable until the replacement
1453
- finalizes. Rename with `PUT /v1/storage/items/{_id}` instead; this
1477
+ finalizes. Uploading empty (0-byte) content does not replace it: the file
1478
+ itself is deleted permanently, without passing through the recycle bin.
1479
+ Rename with `PUT /v1/storage/items/{_id}` instead; this
1454
1480
  endpoint does not accept a name.
1455
1481
  operationId: replaceStorageFileContent
1456
1482
  tags:
@@ -1565,7 +1591,13 @@ paths:
1565
1591
  file: the destination file keeps its `_id` and takes the source file's
1566
1592
  content, its previous content is discarded, and the source file's `_id`
1567
1593
  is removed — neither goes to the recycle bin, so references to the
1568
- source file break. A soft-deleted source folder may be
1594
+ source file break. A sub-folder whose name the destination also holds as
1595
+ a folder is merged into it the same way. When the names match but the
1596
+ types differ (a file against a folder), both are kept: the destination
1597
+ item is unchanged, and the source item moves in with its `_id` under the
1598
+ first free `<name> (k)` — the suffix follows the full name, so
1599
+ `report.pdf` lands as `report.pdf (1)`, or `report.pdf (2)` when
1600
+ `report.pdf (1)` is taken. A soft-deleted source folder may be
1569
1601
  merged, which restores its contents into the destination. Folders only —
1570
1602
  move individual files with the move endpoint. Requires delete access on
1571
1603
  the source folder and write access on the destination.
@@ -2279,6 +2311,374 @@ paths:
2279
2311
  errors:
2280
2312
  - code: invalid_timestamp_format
2281
2313
  message: 'Please make sure that the time provided for field: "from" is in ISO8601 time format.'
2314
+ /v1/storage/activity:
2315
+ get:
2316
+ x-internal: false
2317
+ summary: List storage activity
2318
+ description: |-
2319
+ Returns the environment's Celigo Storage activity log, newest entry
2320
+ first by default. Each entry records one action against a file or
2321
+ folder, one storage query, or one file server login, with who did it
2322
+ and how. Results are paginated with the `Link` response header; keep
2323
+ the same `sort_by` and `sort_order` on every page.
2324
+ operationId: listStorageActivity
2325
+ tags:
2326
+ - File Storage
2327
+ parameters:
2328
+ - name: _resourceId
2329
+ in: query
2330
+ required: false
2331
+ description: |-
2332
+ Return only this file's or folder's history, including entries
2333
+ recorded after it went to the recycle bin or was purged. A single
2334
+ ID; an ID that matches no entry returns an empty list.
2335
+ schema:
2336
+ type: string
2337
+ format: objectId
2338
+ x-celigo-refModel: storageitems
2339
+ examples:
2340
+ - 683b2a0e1c3d5f001a9e8b01
2341
+ - name: _byUserId
2342
+ in: query
2343
+ required: false
2344
+ description: |-
2345
+ Return only entries by these actors: user IDs, file server account
2346
+ IDs, or `system`. Repeat the parameter or send a comma-separated
2347
+ list; at most 50 distinct values.
2348
+ schema:
2349
+ type: array
2350
+ maxItems: 50
2351
+ items:
2352
+ type: string
2353
+ pattern: ^([0-9a-fA-F]{24}|system)$
2354
+ examples:
2355
+ - - 624cb0346309dc3a543733a2
2356
+ - system
2357
+ - name: source
2358
+ in: query
2359
+ required: false
2360
+ description: |-
2361
+ Return only entries initiated through these channels. Repeat the
2362
+ parameter or send a comma-separated list; at most 50 distinct values.
2363
+ schema:
2364
+ type: array
2365
+ maxItems: 50
2366
+ items:
2367
+ type: string
2368
+ enum:
2369
+ - ui
2370
+ - api
2371
+ - cli
2372
+ - mcp
2373
+ - ora
2374
+ - connector
2375
+ - script
2376
+ - stack
2377
+ - sso
2378
+ - fileserver
2379
+ - system
2380
+ x-enumDescriptions:
2381
+ ui: Celigo UI
2382
+ api: REST API
2383
+ cli: Celigo CLI
2384
+ mcp: MCP server tools
2385
+ ora: Ora AI agent
2386
+ connector: Integration apps
2387
+ script: Scripts and hooks
2388
+ stack: Stack code
2389
+ sso: Single sign-on sessions
2390
+ fileserver: SFTP through the Celigo file server
2391
+ system: Automated platform processes
2392
+ examples:
2393
+ - - ui
2394
+ - api
2395
+ - name: action
2396
+ in: query
2397
+ required: false
2398
+ description: |-
2399
+ Return only entries for these actions. Repeat the parameter or send
2400
+ a comma-separated list; at most 50 distinct values.
2401
+ schema:
2402
+ type: array
2403
+ maxItems: 50
2404
+ items:
2405
+ type: string
2406
+ enum:
2407
+ - create
2408
+ - upload
2409
+ - update
2410
+ - download
2411
+ - move
2412
+ - copy
2413
+ - merge
2414
+ - delete
2415
+ - restore
2416
+ - purge
2417
+ - query
2418
+ - login
2419
+ - preview
2420
+ x-enumDescriptions:
2421
+ create: Folder created
2422
+ upload: File uploaded or replaced
2423
+ update: Item renamed or re-described
2424
+ download: Download issued
2425
+ move: Item moved
2426
+ copy: File copied
2427
+ merge: Folder merged
2428
+ delete: Item sent to the recycle bin
2429
+ restore: Item restored
2430
+ purge: Item permanently removed
2431
+ query: Storage SQL query
2432
+ login: File server login
2433
+ preview: Reserved
2434
+ examples:
2435
+ - - delete
2436
+ - purge
2437
+ - name: time_gte
2438
+ in: query
2439
+ required: false
2440
+ description: |-
2441
+ Return only entries at or after this time. ISO 8601 or epoch
2442
+ milliseconds.
2443
+ schema:
2444
+ type: string
2445
+ examples:
2446
+ - '2026-10-01T00:00:00.000Z'
2447
+ - name: time_lte
2448
+ in: query
2449
+ required: false
2450
+ description: |-
2451
+ Return only entries at or before this time. ISO 8601 or epoch
2452
+ milliseconds; must not be earlier than `time_gte`.
2453
+ schema:
2454
+ type: string
2455
+ examples:
2456
+ - '2026-10-31T23:59:59.999Z'
2457
+ - name: sort_by
2458
+ in: query
2459
+ required: false
2460
+ description: Field to sort by. Only `time` is supported.
2461
+ schema:
2462
+ type: string
2463
+ enum:
2464
+ - time
2465
+ default: time
2466
+ x-enumDescriptions:
2467
+ time: Sort by when the action happened, with the entry `_id` as tiebreaker
2468
+ examples:
2469
+ - time
2470
+ - name: sort_order
2471
+ in: query
2472
+ required: false
2473
+ description: Sort direction. The default returns the newest entry first.
2474
+ schema:
2475
+ type: string
2476
+ enum:
2477
+ - asc
2478
+ - desc
2479
+ default: desc
2480
+ x-enumDescriptions:
2481
+ asc: Oldest entry first
2482
+ desc: Newest entry first
2483
+ examples:
2484
+ - desc
2485
+ - name: pageSize
2486
+ in: query
2487
+ required: false
2488
+ description: Number of entries per page. `limit` is accepted as an alias.
2489
+ schema:
2490
+ type: integer
2491
+ minimum: 1
2492
+ maximum: 1000
2493
+ default: 100
2494
+ examples:
2495
+ - 100
2496
+ - name: after
2497
+ in: query
2498
+ required: false
2499
+ description: |-
2500
+ Opaque cursor for the next page. Take it from the `Link` response
2501
+ header's `rel="next"` URL rather than constructing it. Cannot be
2502
+ combined with `before`.
2503
+ schema:
2504
+ type: string
2505
+ examples:
2506
+ - WyIyMDI2LTEwLTIyVDE2OjUyOjEwLjQxM1oiLCIwMWExODA1Yy1hM2FjLTdkZmYtODc2Ni05ZWU2OGM3YWE1ZjAiLCJ0aW1lIiwiZGVzYyJd
2507
+ - name: before
2508
+ in: query
2509
+ required: false
2510
+ description: |-
2511
+ Opaque cursor for the previous page, taken from the `Link` header's
2512
+ `rel="prev"` URL. Cannot be combined with `after`.
2513
+ schema:
2514
+ type: string
2515
+ examples:
2516
+ - WyIyMDI2LTEwLTIyVDE2OjUyOjEwLjQxM1oiLCIwMWExODA1Yy1hM2FjLTdkZmYtODc2Ni05ZWU2OGM3YWE1ZjAiLCJ0aW1lIiwiZGVzYyJd
2517
+ responses:
2518
+ '200':
2519
+ description: Matching entries, an empty `items` array when none match.
2520
+ headers:
2521
+ Link:
2522
+ description: |-
2523
+ RFC 5988 pagination links carrying the cursor and the request's
2524
+ filters: `<...>; rel="next"` while more entries remain, and
2525
+ `rel="prev"` once past the first page.
2526
+ schema:
2527
+ type: string
2528
+ content:
2529
+ application/json:
2530
+ schema:
2531
+ type: object
2532
+ required:
2533
+ - items
2534
+ properties:
2535
+ items:
2536
+ type: array
2537
+ items:
2538
+ $ref: '#/components/schemas/StorageActivityEntry'
2539
+ examples:
2540
+ rename:
2541
+ summary: One rename entry
2542
+ value:
2543
+ items:
2544
+ - _id: 01a1805c-a3ac-7dff-8766-9ee68c7aa5f0
2545
+ time: '2026-10-22T16:52:10.413Z'
2546
+ _userId: 624cb0346309dc3a543733a2
2547
+ _byUserId: 624cb0346309dc3a543733a2
2548
+ byUserName: Jane Doe
2549
+ source: api
2550
+ ip: 203.0.113.24
2551
+ action: update
2552
+ _resourceId: 683b2a0e1c3d5f001a9e8b01
2553
+ resourceName: quarterly-report.pdf
2554
+ status: active
2555
+ type: file
2556
+ _integrationId: null
2557
+ details:
2558
+ previousName: report.pdf
2559
+ newName: quarterly-report.pdf
2560
+ '400':
2561
+ description: |-
2562
+ The pagination cursor is malformed or both `after` and `before` were
2563
+ sent (`STORAGE_INVALID_CURSOR`), or `sort_by` or `sort_order`
2564
+ changed between pages (`STORAGE_CURSOR_SORT_MISMATCH`).
2565
+ content:
2566
+ application/json:
2567
+ schema:
2568
+ $ref: '#/components/schemas/Error'
2569
+ examples:
2570
+ bothCursors:
2571
+ summary: after and before sent together
2572
+ value:
2573
+ errors:
2574
+ - code: STORAGE_INVALID_CURSOR
2575
+ message: after and before cannot both be present in the same request
2576
+ sortMismatch:
2577
+ summary: Sort changed between pages
2578
+ value:
2579
+ errors:
2580
+ - code: STORAGE_CURSOR_SORT_MISMATCH
2581
+ message: sort_by or sort_order changed between pages
2582
+ '401':
2583
+ $ref: '#/components/responses/401-unauthorized'
2584
+ '403':
2585
+ $ref: '#/components/responses/403-forbidden'
2586
+ '422':
2587
+ description: |-
2588
+ A filter is malformed or has more than 50 distinct values
2589
+ (`STORAGE_INVALID_FILTER`), `pageSize` is out of range
2590
+ (`STORAGE_INVALID_PAGE_SIZE`), or `sort_by` or `sort_order` is
2591
+ unsupported (`STORAGE_INVALID_SORT`).
2592
+ content:
2593
+ application/json:
2594
+ schema:
2595
+ $ref: '#/components/schemas/Error'
2596
+ examples:
2597
+ userIdFilter:
2598
+ summary: _userId sent as a filter
2599
+ value:
2600
+ errors:
2601
+ - code: STORAGE_INVALID_FILTER
2602
+ message: _userId is not a supported filter
2603
+ invalidResourceId:
2604
+ summary: _resourceId is not an ObjectId
2605
+ value:
2606
+ errors:
2607
+ - code: STORAGE_INVALID_FILTER
2608
+ message: _resourceId must be a valid ObjectId
2609
+ invalidPageSize:
2610
+ summary: pageSize out of range
2611
+ value:
2612
+ errors:
2613
+ - code: STORAGE_INVALID_PAGE_SIZE
2614
+ message: pageSize (or limit) must be an integer between 1 and 1000
2615
+ invalidSort:
2616
+ summary: sort_by is not time
2617
+ value:
2618
+ errors:
2619
+ - code: STORAGE_INVALID_SORT
2620
+ message: 'sort_by must be one of: time'
2621
+ /v1/storage/activity/signedURL:
2622
+ post:
2623
+ x-internal: false
2624
+ summary: Export storage activity to CSV
2625
+ description: |-
2626
+ Writes the activity entries that match the filters to a CSV file and
2627
+ returns a presigned link to download it. Takes the same filters as
2628
+ `GET /v1/storage/activity` in a JSON body but no paging fields;
2629
+ `hasMore` says when more entries matched than the export wrote.
2630
+ operationId: exportStorageActivity
2631
+ tags:
2632
+ - File Storage
2633
+ requestBody:
2634
+ required: false
2635
+ content:
2636
+ application/json:
2637
+ schema:
2638
+ $ref: '#/components/schemas/StorageActivityFilters'
2639
+ examples:
2640
+ lastMonthDeletes:
2641
+ summary: Deletes and purges in October
2642
+ value:
2643
+ action:
2644
+ - delete
2645
+ - purge
2646
+ time_gte: '2026-10-01T00:00:00.000Z'
2647
+ time_lte: '2026-10-31T23:59:59.999Z'
2648
+ responses:
2649
+ '200':
2650
+ description: CSV written. Download it from `downloadUrl` before it expires.
2651
+ content:
2652
+ application/json:
2653
+ schema:
2654
+ $ref: '#/components/schemas/StorageActivityExport'
2655
+ examples:
2656
+ default:
2657
+ value:
2658
+ downloadUrl: https://integrator-userdata-delete-30.s3.us-east-1.amazonaws.com/file-storage-activity-results/624cb0346309dc3a543733a2/1793155211624-d765038e.csv?X-Amz-Expires=3600&X-Amz-Signature=REDACTED
2659
+ expiresIn: 3600
2660
+ rowCount: 1250
2661
+ hasMore: false
2662
+ '401':
2663
+ $ref: '#/components/responses/401-unauthorized'
2664
+ '403':
2665
+ $ref: '#/components/responses/403-forbidden'
2666
+ '422':
2667
+ description: |-
2668
+ A filter is malformed or the body carries a paging field — `pageSize`,
2669
+ `limit`, `after`, or `before` (`STORAGE_INVALID_FILTER`) — or the sort
2670
+ is unsupported (`STORAGE_INVALID_SORT`).
2671
+ content:
2672
+ application/json:
2673
+ schema:
2674
+ $ref: '#/components/schemas/Error'
2675
+ examples:
2676
+ pagingField:
2677
+ summary: pageSize sent in the body
2678
+ value:
2679
+ errors:
2680
+ - code: STORAGE_INVALID_FILTER
2681
+ message: pageSize is not supported for export
2282
2682
  /v1/storage/usage:
2283
2683
  get:
2284
2684
  x-internal: false
@@ -2425,7 +2825,7 @@ components:
2425
2825
  size:
2426
2826
  type: integer
2427
2827
  format: int64
2428
- minimum: 0
2828
+ minimum: 1
2429
2829
  description: |-
2430
2830
  Declared size in bytes. Used to reserve quota up front. When omitted,
2431
2831
  the backend reserves a worst-case estimate (1 GB for single,
@@ -2765,6 +3165,18 @@ components:
2765
3165
  integration purges them.
2766
3166
  examples:
2767
3167
  - 6ab1e7ab38d7733b4594d0d2
3168
+ _fileServerAccountId:
3169
+ type: string
3170
+ format: objectId
3171
+ readOnly: true
3172
+ x-celigo-refModel: fileserveraccounts
3173
+ description: |-
3174
+ File Server account that uploaded the file over SFTP, or that most
3175
+ recently replaced its content over SFTP. Absent for folders and for
3176
+ files uploaded through this API; replacing the content through this
3177
+ API keeps the current value.
3178
+ examples:
3179
+ - 6ac0f3e1b2d4a5001c7e9f10
2768
3180
  integrationName:
2769
3181
  type: string
2770
3182
  readOnly: true
@@ -2772,6 +3184,9 @@ components:
2772
3184
  Name of the integration an integration root folder belongs to. Present
2773
3185
  only on that root folder (the `isSystem` folder at the account root);
2774
3186
  items inside the tree carry `_integrationId` but not this field.
3187
+ Follows the integration's name when the integration is renamed, while
3188
+ the folder's own `name` keeps the value it was created with or last
3189
+ renamed to, so the two can differ.
2775
3190
  examples:
2776
3191
  - Order to cash
2777
3192
  __ancestorIds:
@@ -2802,10 +3217,15 @@ components:
2802
3217
  maxLength: 256
2803
3218
  readOnly: true
2804
3219
  description: |-
2805
- Media type recorded at upload time, used to set the download
2806
- Content-Type. Present when type is file; absent for folders and for
2807
- files uploaded without a declared type. Matched case-sensitively by
2808
- the `mimeType` and `mimeType_nin` list filters.
3220
+ Media type used to set the download Content-Type. Present when type is
3221
+ file; absent for folders and for files uploaded through this API
3222
+ without a declared type. A file uploaded over the SFTP file server gets
3223
+ the type its name's extension maps to, ignoring a trailing `.filepart`,
3224
+ `.part`, or `.tmp`, or `application/octet-stream` when the extension is
3225
+ unknown. An SFTP rename replaces an absent or `application/octet-stream`
3226
+ value when the new extension maps to a known type; renames made with an
3227
+ API token leave the value unchanged. Matched case-sensitively by the
3228
+ `mimeType` and `mimeType_nin` list filters.
2809
3229
  examples:
2810
3230
  - image/png
2811
3231
  description:
@@ -2831,11 +3251,13 @@ components:
2831
3251
  type: boolean
2832
3252
  readOnly: true
2833
3253
  description: |-
2834
- When true, the platform created the item (for example a system or
2835
- integration folder) and protects it — rename, move, content replace,
2836
- copy, delete, and purge are rejected with 403
2837
- `STORAGE_SYSTEM_ITEM_PROTECTED` ("System items cannot be modified or
2838
- deleted").
3254
+ When true, the platform created the item (for example an
3255
+ integration's root folder) and protects it: moving it, merging it
3256
+ into another folder, deleting it, and restoring or purging it from
3257
+ the recycle bin are rejected with 403 `STORAGE_SYSTEM_ITEM_PROTECTED`
3258
+ ("System items cannot be modified or deleted"; a per-item error in a
3259
+ bulk move). Renaming it and editing its description with
3260
+ `PUT /v1/storage/items/{_id}` are allowed.
2839
3261
  deletedAt:
2840
3262
  type: string
2841
3263
  format: date-time
@@ -3049,7 +3471,7 @@ components:
3049
3471
  size:
3050
3472
  type: integer
3051
3473
  format: int64
3052
- minimum: 0
3474
+ minimum: 1
3053
3475
  description: |-
3054
3476
  Declared size in bytes of the replacement content, used to reserve
3055
3477
  quota. Reconciled to the real size when the upload finalizes.
@@ -3312,6 +3734,391 @@ components:
3312
3734
  description: Name of the item at the time of deletion.
3313
3735
  examples:
3314
3736
  - old-report.pdf
3737
+ StorageActivityEntry:
3738
+ type: object
3739
+ description: |-
3740
+ One action recorded against Celigo Storage in the environment. Every
3741
+ file and folder change, download, recycle-bin step, storage query, and
3742
+ file-server login writes one entry.
3743
+ required:
3744
+ - _id
3745
+ - time
3746
+ - _userId
3747
+ - _byUserId
3748
+ - byUserName
3749
+ - source
3750
+ - ip
3751
+ - action
3752
+ - _resourceId
3753
+ - resourceName
3754
+ - status
3755
+ - type
3756
+ - _integrationId
3757
+ - details
3758
+ properties:
3759
+ _id:
3760
+ type: string
3761
+ format: uuid
3762
+ description: |-
3763
+ Unique identifier for this entry. Also the tiebreaker of the
3764
+ `time` sort order.
3765
+ examples:
3766
+ - 01a1805c-a3ac-7dff-8766-9ee68c7aa5f0
3767
+ time:
3768
+ type: string
3769
+ format: date-time
3770
+ description: Timestamp when the action happened, in UTC with milliseconds.
3771
+ examples:
3772
+ - '2026-10-22T16:52:10.413Z'
3773
+ _userId:
3774
+ type: string
3775
+ format: objectId
3776
+ x-celigo-refModel: users
3777
+ description: Environment owner the entry belongs to.
3778
+ examples:
3779
+ - 624cb0346309dc3a543733a2
3780
+ _byUserId:
3781
+ type: string
3782
+ description: |-
3783
+ Who performed the action: a user ID, or the file server account ID
3784
+ when `source` is `fileserver`. Actions the platform takes for a user,
3785
+ such as creating or removing an integration's root folder along with
3786
+ the integration, carry that user's ID with `source` set to `system`.
3787
+ examples:
3788
+ - 624cb0346309dc3a543733a2
3789
+ byUserName:
3790
+ type:
3791
+ - string
3792
+ - 'null'
3793
+ description: |-
3794
+ Display name of the actor: the user's name, or the SFTP username of a
3795
+ file server account. Null when the actor no longer exists, as for a
3796
+ deleted file server account.
3797
+ examples:
3798
+ - Jane Doe
3799
+ source:
3800
+ type: string
3801
+ enum:
3802
+ - ui
3803
+ - api
3804
+ - cli
3805
+ - mcp
3806
+ - ora
3807
+ - connector
3808
+ - script
3809
+ - stack
3810
+ - sso
3811
+ - fileserver
3812
+ - system
3813
+ x-enumDescriptions:
3814
+ ui: Action taken in the Celigo UI
3815
+ api: Action taken through the REST API with an API token
3816
+ cli: Action taken through the Celigo CLI
3817
+ mcp: Action taken by an MCP server tool on the user's behalf
3818
+ ora: Action taken by the Ora AI agent
3819
+ connector: Action taken by an integration app
3820
+ script: Action taken by a script or hook
3821
+ stack: Action taken by stack code
3822
+ sso: Action taken in a single sign-on session
3823
+ fileserver: Action taken over SFTP through the Celigo file server, including logins
3824
+ system: Action taken by an automated platform process
3825
+ description: How the action was initiated.
3826
+ examples:
3827
+ - api
3828
+ ip:
3829
+ type:
3830
+ - string
3831
+ - 'null'
3832
+ description: |-
3833
+ Client IP address the action came from; for `fileserver` entries, the
3834
+ SFTP partner's address. Null when the platform did not receive one,
3835
+ as for `system` actions.
3836
+ examples:
3837
+ - 203.0.113.24
3838
+ action:
3839
+ type: string
3840
+ enum:
3841
+ - create
3842
+ - upload
3843
+ - update
3844
+ - download
3845
+ - move
3846
+ - copy
3847
+ - merge
3848
+ - delete
3849
+ - restore
3850
+ - purge
3851
+ - query
3852
+ - login
3853
+ - preview
3854
+ x-enumDescriptions:
3855
+ create: A folder was created
3856
+ upload: A file's bytes finished uploading, including a replace of an existing file
3857
+ update: A file or folder was renamed or had its description changed
3858
+ download: A download URL was issued for a file, or a zip was built for a folder
3859
+ move: An item moved to another folder, renamed in the same request when a new name was given
3860
+ copy: A file was copied; the entry belongs to the new copy
3861
+ merge: A folder was merged into another folder; the entry belongs to the destination folder
3862
+ delete: An item went to the recycle bin
3863
+ restore: An item came back from the recycle bin
3864
+ purge: An item was permanently removed from the recycle bin
3865
+ query: A storage SQL query read files; the entry carries no item
3866
+ login: A file server account signed in over SFTP, or failed to; the entry carries no item
3867
+ preview: Reserved; accepted as a filter value
3868
+ description: |-
3869
+ What happened. A file's history starts with `upload`, or with `copy`
3870
+ for a copy, and a folder's with `create`; `update`, `download`, and
3871
+ `move` entries follow while the item is live, and `delete` is followed
3872
+ by `restore` or `purge`.
3873
+ examples:
3874
+ - update
3875
+ _resourceId:
3876
+ type: string
3877
+ description: |-
3878
+ File or folder the action applied to, as an ObjectId string. Empty
3879
+ for `query` and `login` entries, which belong to no item. Use with
3880
+ the `_resourceId` filter to read one item's history.
3881
+ examples:
3882
+ - 683b2a0e1c3d5f001a9e8b01
3883
+ resourceName:
3884
+ type:
3885
+ - string
3886
+ - 'null'
3887
+ description: |-
3888
+ Current name of the item, read at request time, so a renamed item
3889
+ shows its latest name. Null when the item has been purged or the
3890
+ entry has no item.
3891
+ examples:
3892
+ - quarterly-report.pdf
3893
+ status:
3894
+ type:
3895
+ - string
3896
+ - 'null'
3897
+ enum:
3898
+ - active
3899
+ - deleted
3900
+ - null
3901
+ x-enumDescriptions:
3902
+ active: The item is live
3903
+ deleted: The item is in the recycle bin
3904
+ description: |-
3905
+ Current state of the item, read at request time. Null when the
3906
+ item has been purged or the entry has no item.
3907
+ examples:
3908
+ - active
3909
+ type:
3910
+ type:
3911
+ - string
3912
+ - 'null'
3913
+ enum:
3914
+ - file
3915
+ - folder
3916
+ - null
3917
+ x-enumDescriptions:
3918
+ file: The entry belongs to a file
3919
+ folder: The entry belongs to a folder
3920
+ description: Type of the item. Null for `query` and `login` entries.
3921
+ examples:
3922
+ - file
3923
+ _integrationId:
3924
+ type:
3925
+ - string
3926
+ - 'null'
3927
+ format: objectId
3928
+ x-celigo-refModel: integrations
3929
+ description: |-
3930
+ Integration whose system folder tree holds the item. Null for items
3931
+ outside any integration and for `query` and `login` entries.
3932
+ examples:
3933
+ - null
3934
+ details:
3935
+ type: object
3936
+ additionalProperties: true
3937
+ description: |-
3938
+ Action-specific facts, an empty object when there are none, as for a
3939
+ `merge` or a folder's `purge`. `create` and `restore` carry the parent
3940
+ folder (`_parentId`); `move` carries `_previousParentId` and
3941
+ `_newParentId`, plus `previousName` and `newName` when it also renamed
3942
+ the item and `bulk` when it came from `POST /v1/storage/items/move`.
3943
+ Renames carry `previousName` and `newName`, and description edits
3944
+ `previousDescription` and `newDescription`. `upload` carries `bytes`
3945
+ and `overwrite`, plus `previousBytes` when it replaced content;
3946
+ `download` carries `size` and `linkExpiresIn`, plus `fileCount` for a
3947
+ folder; `copy` carries `_sourceId`, `_destinationParentId`, and
3948
+ `bytes`; `delete` carries the item's `name`; a file's `purge` carries
3949
+ `bytes`; `query` carries the `sql`; `login` carries `method`,
3950
+ `success`, and, on a failure, `reason`.
3951
+ examples:
3952
+ - previousName: report.pdf
3953
+ newName: quarterly-report.pdf
3954
+ StorageActivityFilters:
3955
+ type: object
3956
+ description: |-
3957
+ Filters for the activity export: the same names, values, and rules as
3958
+ the filter and sort parameters of `GET /v1/storage/activity`. Every
3959
+ filter is optional and they combine with AND; the paging parameters
3960
+ (`pageSize`, `limit`, `after`, `before`) are rejected.
3961
+ properties:
3962
+ _resourceId:
3963
+ type: string
3964
+ format: objectId
3965
+ x-celigo-refModel: storageitems
3966
+ description: |-
3967
+ Export only this item's history, including entries recorded after it
3968
+ went to the recycle bin.
3969
+ examples:
3970
+ - 683b2a0e1c3d5f001a9e8b01
3971
+ _byUserId:
3972
+ type: array
3973
+ maxItems: 50
3974
+ description: |-
3975
+ Export only entries by these actors: user IDs, file server account
3976
+ IDs, or `system`. A comma-separated string is also accepted.
3977
+ items:
3978
+ type: string
3979
+ pattern: ^([0-9a-fA-F]{24}|system)$
3980
+ examples:
3981
+ - - 624cb0346309dc3a543733a2
3982
+ - system
3983
+ source:
3984
+ type: array
3985
+ maxItems: 50
3986
+ description: Export only entries initiated through these channels.
3987
+ items:
3988
+ type: string
3989
+ enum:
3990
+ - ui
3991
+ - api
3992
+ - cli
3993
+ - mcp
3994
+ - ora
3995
+ - connector
3996
+ - script
3997
+ - stack
3998
+ - sso
3999
+ - fileserver
4000
+ - system
4001
+ x-enumDescriptions:
4002
+ ui: Celigo UI
4003
+ api: REST API
4004
+ cli: Celigo CLI
4005
+ mcp: MCP server tools
4006
+ ora: Ora AI agent
4007
+ connector: Integration apps
4008
+ script: Scripts and hooks
4009
+ stack: Stack code
4010
+ sso: Single sign-on sessions
4011
+ fileserver: SFTP through the Celigo file server
4012
+ system: Automated platform processes
4013
+ examples:
4014
+ - - ui
4015
+ - api
4016
+ action:
4017
+ type: array
4018
+ maxItems: 50
4019
+ description: Export only entries for these actions.
4020
+ items:
4021
+ type: string
4022
+ enum:
4023
+ - create
4024
+ - upload
4025
+ - update
4026
+ - download
4027
+ - move
4028
+ - copy
4029
+ - merge
4030
+ - delete
4031
+ - restore
4032
+ - purge
4033
+ - query
4034
+ - login
4035
+ - preview
4036
+ x-enumDescriptions:
4037
+ create: Folder created
4038
+ upload: File uploaded or replaced
4039
+ update: Item renamed or re-described
4040
+ download: Download issued
4041
+ move: Item moved
4042
+ copy: File copied
4043
+ merge: Folder merged
4044
+ delete: Item sent to the recycle bin
4045
+ restore: Item restored
4046
+ purge: Item permanently removed
4047
+ query: Storage SQL query
4048
+ login: File server login
4049
+ preview: Reserved
4050
+ examples:
4051
+ - - delete
4052
+ - purge
4053
+ time_gte:
4054
+ type: string
4055
+ description: Export only entries at or after this time. ISO 8601 or epoch milliseconds.
4056
+ examples:
4057
+ - '2026-10-01T00:00:00.000Z'
4058
+ time_lte:
4059
+ type: string
4060
+ description: |-
4061
+ Export only entries at or before this time. ISO 8601 or epoch
4062
+ milliseconds; must not be earlier than `time_gte`.
4063
+ examples:
4064
+ - '2026-10-31T23:59:59.999Z'
4065
+ sort_by:
4066
+ type: string
4067
+ enum:
4068
+ - time
4069
+ default: time
4070
+ x-enumDescriptions:
4071
+ time: Order rows by when the action happened
4072
+ description: Field the CSV rows are ordered by. Only `time` is supported.
4073
+ examples:
4074
+ - time
4075
+ sort_order:
4076
+ type: string
4077
+ enum:
4078
+ - asc
4079
+ - desc
4080
+ default: desc
4081
+ x-enumDescriptions:
4082
+ asc: Oldest entry first
4083
+ desc: Newest entry first
4084
+ description: Row order of the CSV by `time`. The default puts the newest entry on the first row.
4085
+ examples:
4086
+ - desc
4087
+ StorageActivityExport:
4088
+ type: object
4089
+ description: A presigned link to the CSV export and how much of the log it holds.
4090
+ required:
4091
+ - downloadUrl
4092
+ - expiresIn
4093
+ - rowCount
4094
+ - hasMore
4095
+ properties:
4096
+ downloadUrl:
4097
+ type: string
4098
+ format: uri
4099
+ description: |-
4100
+ Presigned S3 URL to GET the CSV from, served as an attachment named
4101
+ `storage-activity-<UTC timestamp>.csv`. Columns are Time, Source,
4102
+ User, Resource, Name/ID, Action, IP, and Details; times are UTC.
4103
+ examples:
4104
+ - https://integrator-userdata-delete-30.s3.us-east-1.amazonaws.com/file-storage-activity-results/624cb0346309dc3a543733a2/1793155211624-d765038e.csv?X-Amz-Expires=3600&X-Amz-Signature=REDACTED
4105
+ expiresIn:
4106
+ type: integer
4107
+ description: Seconds the URL stays valid from the time of this response.
4108
+ examples:
4109
+ - 3600
4110
+ rowCount:
4111
+ type: integer
4112
+ description: Number of entries written to the CSV, not counting the header row.
4113
+ examples:
4114
+ - 1250
4115
+ hasMore:
4116
+ type: boolean
4117
+ description: |-
4118
+ When true, more entries matched than the export wrote. Narrow
4119
+ `time_gte`/`time_lte` and export again to get the rest.
4120
+ examples:
4121
+ - false
3315
4122
  Usage:
3316
4123
  type: object
3317
4124
  description: Account-wide storage usage and entitlement, aggregated across all environments.