@celigo/api-specs 0.2.171 → 0.2.173

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
@@ -2324,7 +2324,11 @@ components:
2324
2324
 
2325
2325
  **Simple Types (direct value mapping)**
2326
2326
  - `string`: Text values, converts other types to string representation
2327
- - `number`: Numeric values, attempts conversion from strings
2327
+ - `number`: Numeric values. Converts a numeric string (`"24"` → `24`,
2328
+ `"007"` → `7`) and leaves the field out for an empty string; a value
2329
+ holding letters or a thousands separator (`"1,250.00"`) fails the
2330
+ record with `non_parsable_string` (`<generate>: String contains alpha
2331
+ characters`)
2328
2332
  - `boolean`: True/false values, converts truthy/falsy values
2329
2333
 
2330
2334
  Dates are represented as strings — use `string` for date fields and
@@ -2367,8 +2371,14 @@ components:
2367
2371
  - |-
2368
2372
  Missing `dataType` is rejected at save with validation error
2369
2373
  `[mandatory_destination_datatype] Destination datatype is a
2370
- required field.` When in doubt, use `"string"` — it accepts
2371
- any source value and the runtime will coerce it.
2374
+ required field.`
2375
+ - |-
2376
+ Give each row the type the destination field expects; `"string"` is
2377
+ not a safe default. It accepts any source value, but sends a numeric
2378
+ source as text (`"24"`), which a destination that checks JSON types
2379
+ refuses. Map numeric destination fields as `number`, which fails a
2380
+ record (`non_parsable_string`) only when the value holds letters or a
2381
+ thousands separator.
2372
2382
  enum:
2373
2383
  - string
2374
2384
  - number
@@ -2380,7 +2390,7 @@ components:
2380
2390
  - objectarray
2381
2391
  x-enumDescriptions:
2382
2392
  string: Text values; converts other types to their string representation.
2383
- number: Numeric values; attempts conversion from strings.
2393
+ number: Numeric values; converts numeric strings, and fails the record (`non_parsable_string`) on letters or a thousands separator.
2384
2394
  boolean: True/false values; converts truthy/falsy values.
2385
2395
  object: Nested object built from child `mappings`, or copied whole with `extract` (not both).
2386
2396
  stringarray: Array of string values.
@@ -3408,7 +3418,11 @@ components:
3408
3418
 
3409
3419
  **Simple Types (direct value mapping)**
3410
3420
  - `string`: Text values, converts other types to string representation
3411
- - `number`: Numeric values, attempts conversion from strings
3421
+ - `number`: Numeric values. Converts a numeric string (`"24"` → `24`,
3422
+ `"007"` → `7`) and leaves the field out for an empty string; a value
3423
+ holding letters or a thousands separator (`"1,250.00"`) fails the
3424
+ record with `non_parsable_string` (`<generate>: String contains alpha
3425
+ characters`)
3412
3426
  - `boolean`: True/false values, converts truthy/falsy values
3413
3427
 
3414
3428
  Dates are represented as strings — use `string` for date fields and
@@ -3451,8 +3465,14 @@ components:
3451
3465
  - |-
3452
3466
  Missing `dataType` is rejected at save with validation error
3453
3467
  `[mandatory_destination_datatype] Destination datatype is a
3454
- required field.` When in doubt, use `"string"` — it accepts
3455
- any source value and the runtime will coerce it.
3468
+ required field.`
3469
+ - |-
3470
+ Give each row the type the destination field expects; `"string"` is
3471
+ not a safe default. It accepts any source value, but sends a numeric
3472
+ source as text (`"24"`), which a destination that checks JSON types
3473
+ refuses. Map numeric destination fields as `number`, which fails a
3474
+ record (`non_parsable_string`) only when the value holds letters or a
3475
+ thousands separator.
3456
3476
  enum:
3457
3477
  - string
3458
3478
  - number
@@ -3464,7 +3484,7 @@ components:
3464
3484
  - objectarray
3465
3485
  x-enumDescriptions:
3466
3486
  string: Text values; converts other types to their string representation.
3467
- number: Numeric values; attempts conversion from strings.
3487
+ number: Numeric values; converts numeric strings, and fails the record (`non_parsable_string`) on letters or a thousands separator.
3468
3488
  boolean: True/false values; converts truthy/falsy values.
3469
3489
  object: Nested object built from child `mappings`, or copied whole with `extract` (not both).
3470
3490
  stringarray: Array of string values.
@@ -4527,15 +4547,30 @@ components:
4527
4547
  - `"lessthan"`: Value is less than specified value (is less than)
4528
4548
  - `"lessthanequals"`: Value is less than or equal to specified value (is less than or equals)
4529
4549
  - `"startswith"`: String starts with specified prefix (starts with)
4550
+ - `"notstartswith"`: String does not start with specified prefix (does not start with)
4530
4551
  - `"endswith"`: String ends with specified suffix (ends with)
4552
+ - `"notendswith"`: String does not end with specified suffix (does not end with)
4531
4553
  - `"contains"`: String contains specified substring (contains)
4532
4554
  - `"doesnotcontain"`: String does not contain specified substring (does not contain)
4533
4555
  - `"empty"`: Field is missing or empty (is empty)
4534
4556
  - `"notempty"`: Field contains a value (is not empty)
4535
- - `"matches"`: Matches a regular expression (matches)
4536
-
4537
- `isempty`, `isnotempty` and `anyof` are not operators: they are refused with 422
4538
- "Invalid operation: <name>".
4557
+ - `"matches"`: Matches a regular expression, ignoring case (matches)
4558
+
4559
+ Operator names are case-insensitive: `NOTEMPTY` and `endsWith` work and are stored
4560
+ as sent. `isempty`, `isnotempty`, `anyof`, `notcontains`, `doesnotstartwith`,
4561
+ `doesnotendwith`, `notmatches`, `doesnotmatch` and `notequal` are not operators:
4562
+ they are refused with 422 "Invalid operation: <name>", with the name in lowercase,
4563
+ both when the filter is saved and by `POST /v1/processors/filter`. To negate a
4564
+ condition, wrap it in `not`.
4565
+
4566
+ The string comparisons (`equals`, `contains`, `startswith`, `endswith` and their
4567
+ negations) are case-sensitive; wrap the field in `lowercase` to compare without case.
4568
+ `matches` is not: every pattern is compiled with the flags `gi`, so `^paid$` also
4569
+ matches `PAID` and `[a-z]` matches capital letters. An inline flag such as `(?i)`
4570
+ makes the pattern invalid. The filter still saves, but in a run every record fails
4571
+ with `FILTER_EVALUATION_FAILED` ("Invalid regular expression: /(?i)…/gi: Invalid
4572
+ group"), and `POST /v1/processors/filter` refuses the call with 422 (live-verified
4573
+ 2026-10-22).
4539
4574
 
4540
4575
  **Logical Operators**
4541
4576
  - `"and"`: All conditions must be true
@@ -4825,7 +4860,9 @@ components:
4825
4860
  x-celigo-refModel: scripts
4826
4861
  description: |
4827
4862
  Reference to the Script resource that contains the filtering logic. This must be a valid
4828
- ObjectId of a Script resource that exists in the system.
4863
+ ObjectId of a Script resource in this account: any other id fails the save with 422
4864
+ ("Only a script owned by the user or a script shared by the Integration App can be used
4865
+ at filter.script._scriptId.").
4829
4866
 
4830
4867
  The referenced script must contain the function specified in the `function` field
4831
4868
  and must be written to handle filtering specifically. The script receives
@@ -5084,7 +5121,7 @@ components:
5084
5121
 
5085
5122
  This value is used as a fallback when:
5086
5123
  1. The source value doesn't match any key in the map
5087
- 2. allowFailures is set to true
5124
+ 2. allowFailures is true or omitted
5088
5125
 
5089
5126
  Setting an appropriate default helps prevent flow failures due to unexpected
5090
5127
  values and provides predictable behavior for edge cases.
@@ -5094,8 +5131,10 @@ components:
5094
5131
  - Original value indicators: "{Original Value}", "No mapping found"
5095
5132
  - Neutral values: "Other", "N/A", "Miscellaneous"
5096
5133
 
5097
- If allowFailures is false, a record whose value is unmapped fails and the default
5098
- is ignored.
5134
+ A save refuses a default together with an explicit `allowFailures: false`
5135
+ (422 `Lookups with default set can not have allowFailures explicitly set to
5136
+ false.`): a lookup either fails a miss (`allowFailures: false`, no default) or
5137
+ falls back to its default.
5099
5138
  examples:
5100
5139
  - Unknown
5101
5140
  - Other
@@ -5103,7 +5142,8 @@ components:
5103
5142
  - Unmapped Value
5104
5143
  - '{Original Value}'
5105
5144
  x-celigo-ai-guidance:
5106
- - 'Omit this field entirely when no fallback value is intended: a miss the lookup lets through then leaves the mapped field out, and with `allowFailures: false` a miss fails the record whatever the default. An empty string is a value, not "no default" — the save accepts `default: ""`, and an allowed miss writes `""`.'
5145
+ - 'Omit this field entirely when no fallback value is intended: a miss the lookup lets through then leaves the mapped field out, and `allowFailures: false` (which a save refuses alongside a default) fails it. An empty string is a value, not "no default" — the save accepts `default: ""`, and an allowed miss writes `""`.'
5146
+ - A default sends every unmapped value with no error, so add the missing key to the map when the destination needs the real value; keys match the extracted value exactly (case, spacing and suffixes count), and a save replaces the whole map.
5107
5147
  allowFailures:
5108
5148
  type:
5109
5149
  - boolean
@@ -5559,7 +5599,9 @@ components:
5559
5599
  Reference to a predefined script resource containing the transformation logic.
5560
5600
 
5561
5601
  The referenced script should contain the function specified in the
5562
- 'function' property.
5602
+ 'function' property. It must be a script in this account: any other id fails the save
5603
+ with 422 ("Only a script owned by the user or a script shared by the Integration App can
5604
+ be used at transform.script._scriptId.").
5563
5605
  format: objectid
5564
5606
  x-celigo-refModel: scripts
5565
5607
  examples:
@@ -5592,7 +5634,11 @@ components:
5592
5634
  type: string
5593
5635
  format: objectId
5594
5636
  x-celigo-refModel: scripts
5595
- description: Script containing the hook function named in `function`. Send this or `_stackId`, not both.
5637
+ description: |-
5638
+ Script containing the hook function named in `function`. Send this or `_stackId`, not both.
5639
+ Must be a script in this account: any other id fails the save with 422, naming the hook,
5640
+ such as "Only a script owned by the user or a script shared by the Integration App can
5641
+ be used at hooks.preMap._scriptId." on an import's `preMap`.
5596
5642
  _stackId:
5597
5643
  type: string
5598
5644
  format: objectId
package/dist/api.yml CHANGED
@@ -2560,8 +2560,12 @@ components:
2560
2560
  Script:
2561
2561
  type: object
2562
2562
  description: |-
2563
- Script-mode configuration. The referenced function receives the request object
2564
- and must return a response with `statusCode`, `headers`, and `body`.
2563
+ Script-mode configuration. Callers reach the API at `/v1/apis/{_id}/request`, and the
2564
+ referenced function is called with one `options` object: `method`, `headers` (the
2565
+ request's headers, without `Authorization`), `queryString` (the parsed query string),
2566
+ `body`, and `rawBody` (the body as received, a string). On a GET, `body` is absent and
2567
+ `rawBody` is empty. It returns `{statusCode, headers, body}`: `headers` is optional,
2568
+ and `body` may be any JSON value, an array included.
2565
2569
  properties:
2566
2570
  _scriptId:
2567
2571
  type: string
@@ -2581,8 +2585,15 @@ components:
2581
2585
  - function
2582
2586
  x-celigo-ai-guidance:
2583
2587
  - |-
2584
- In script mode, you provide a custom JavaScript function that receives the request
2585
- object and returns the response. This gives you complete control over the API behavior.
2588
+ In script mode, you provide a custom JavaScript function that receives the `options`
2589
+ object (`method`, `headers` without `Authorization`, `queryString`, `body`, `rawBody`)
2590
+ and returns the response. This gives you complete control over the API behavior.
2591
+ - |-
2592
+ The function gets no `pathParams` or `queryParams`: read the query from `queryString`.
2593
+ A return without `statusCode`, or with a `null` or missing `body`, answers the caller
2594
+ 501 ("'StatusCode' returned by the script cannot be undefined." or "'body' returned by
2595
+ the script cannot be undefined or null."), and an error the function throws answers
2596
+ 422 with its message. Any other `statusCode` is sent as returned.
2586
2597
  items:
2587
2598
  type: object
2588
2599
  required:
@@ -543,7 +543,11 @@ components:
543
543
 
544
544
  **Simple Types (direct value mapping)**
545
545
  - `string`: Text values, converts other types to string representation
546
- - `number`: Numeric values, attempts conversion from strings
546
+ - `number`: Numeric values. Converts a numeric string (`"24"` → `24`,
547
+ `"007"` → `7`) and leaves the field out for an empty string; a value
548
+ holding letters or a thousands separator (`"1,250.00"`) fails the
549
+ record with `non_parsable_string` (`<generate>: String contains alpha
550
+ characters`)
547
551
  - `boolean`: True/false values, converts truthy/falsy values
548
552
 
549
553
  Dates are represented as strings — use `string` for date fields and
@@ -586,8 +590,14 @@ components:
586
590
  - |-
587
591
  Missing `dataType` is rejected at save with validation error
588
592
  `[mandatory_destination_datatype] Destination datatype is a
589
- required field.` When in doubt, use `"string"` — it accepts
590
- any source value and the runtime will coerce it.
593
+ required field.`
594
+ - |-
595
+ Give each row the type the destination field expects; `"string"` is
596
+ not a safe default. It accepts any source value, but sends a numeric
597
+ source as text (`"24"`), which a destination that checks JSON types
598
+ refuses. Map numeric destination fields as `number`, which fails a
599
+ record (`non_parsable_string`) only when the value holds letters or a
600
+ thousands separator.
591
601
  enum:
592
602
  - string
593
603
  - number
@@ -599,7 +609,7 @@ components:
599
609
  - objectarray
600
610
  x-enumDescriptions:
601
611
  string: Text values; converts other types to their string representation.
602
- number: Numeric values; attempts conversion from strings.
612
+ number: Numeric values; converts numeric strings, and fails the record (`non_parsable_string`) on letters or a thousands separator.
603
613
  boolean: True/false values; converts truthy/falsy values.
604
614
  object: Nested object built from child `mappings`, or copied whole with `extract` (not both).
605
615
  stringarray: Array of string values.
@@ -1627,7 +1637,11 @@ components:
1627
1637
 
1628
1638
  **Simple Types (direct value mapping)**
1629
1639
  - `string`: Text values, converts other types to string representation
1630
- - `number`: Numeric values, attempts conversion from strings
1640
+ - `number`: Numeric values. Converts a numeric string (`"24"` → `24`,
1641
+ `"007"` → `7`) and leaves the field out for an empty string; a value
1642
+ holding letters or a thousands separator (`"1,250.00"`) fails the
1643
+ record with `non_parsable_string` (`<generate>: String contains alpha
1644
+ characters`)
1631
1645
  - `boolean`: True/false values, converts truthy/falsy values
1632
1646
 
1633
1647
  Dates are represented as strings — use `string` for date fields and
@@ -1670,8 +1684,14 @@ components:
1670
1684
  - |-
1671
1685
  Missing `dataType` is rejected at save with validation error
1672
1686
  `[mandatory_destination_datatype] Destination datatype is a
1673
- required field.` When in doubt, use `"string"` — it accepts
1674
- any source value and the runtime will coerce it.
1687
+ required field.`
1688
+ - |-
1689
+ Give each row the type the destination field expects; `"string"` is
1690
+ not a safe default. It accepts any source value, but sends a numeric
1691
+ source as text (`"24"`), which a destination that checks JSON types
1692
+ refuses. Map numeric destination fields as `number`, which fails a
1693
+ record (`non_parsable_string`) only when the value holds letters or a
1694
+ thousands separator.
1675
1695
  enum:
1676
1696
  - string
1677
1697
  - number
@@ -1683,7 +1703,7 @@ components:
1683
1703
  - objectarray
1684
1704
  x-enumDescriptions:
1685
1705
  string: Text values; converts other types to their string representation.
1686
- number: Numeric values; attempts conversion from strings.
1706
+ number: Numeric values; converts numeric strings, and fails the record (`non_parsable_string`) on letters or a thousands separator.
1687
1707
  boolean: True/false values; converts truthy/falsy values.
1688
1708
  object: Nested object built from child `mappings`, or copied whole with `extract` (not both).
1689
1709
  stringarray: Array of string values.
@@ -2825,7 +2845,7 @@ components:
2825
2845
 
2826
2846
  This value is used as a fallback when:
2827
2847
  1. The source value doesn't match any key in the map
2828
- 2. allowFailures is set to true
2848
+ 2. allowFailures is true or omitted
2829
2849
 
2830
2850
  Setting an appropriate default helps prevent flow failures due to unexpected
2831
2851
  values and provides predictable behavior for edge cases.
@@ -2835,8 +2855,10 @@ components:
2835
2855
  - Original value indicators: "{Original Value}", "No mapping found"
2836
2856
  - Neutral values: "Other", "N/A", "Miscellaneous"
2837
2857
 
2838
- If allowFailures is false, a record whose value is unmapped fails and the default
2839
- is ignored.
2858
+ A save refuses a default together with an explicit `allowFailures: false`
2859
+ (422 `Lookups with default set can not have allowFailures explicitly set to
2860
+ false.`): a lookup either fails a miss (`allowFailures: false`, no default) or
2861
+ falls back to its default.
2840
2862
  examples:
2841
2863
  - Unknown
2842
2864
  - Other
@@ -2844,7 +2866,8 @@ components:
2844
2866
  - Unmapped Value
2845
2867
  - '{Original Value}'
2846
2868
  x-celigo-ai-guidance:
2847
- - 'Omit this field entirely when no fallback value is intended: a miss the lookup lets through then leaves the mapped field out, and with `allowFailures: false` a miss fails the record whatever the default. An empty string is a value, not "no default" — the save accepts `default: ""`, and an allowed miss writes `""`.'
2869
+ - 'Omit this field entirely when no fallback value is intended: a miss the lookup lets through then leaves the mapped field out, and `allowFailures: false` (which a save refuses alongside a default) fails it. An empty string is a value, not "no default" — the save accepts `default: ""`, and an allowed miss writes `""`.'
2870
+ - A default sends every unmapped value with no error, so add the missing key to the map when the destination needs the real value; keys match the extracted value exactly (case, spacing and suffixes count), and a save replaces the whole map.
2848
2871
  allowFailures:
2849
2872
  type:
2850
2873
  - boolean
@@ -3300,7 +3323,9 @@ components:
3300
3323
  Reference to a predefined script resource containing the transformation logic.
3301
3324
 
3302
3325
  The referenced script should contain the function specified in the
3303
- 'function' property.
3326
+ 'function' property. It must be a script in this account: any other id fails the save
3327
+ with 422 ("Only a script owned by the user or a script shared by the Integration App can
3328
+ be used at transform.script._scriptId.").
3304
3329
  format: objectid
3305
3330
  x-celigo-refModel: scripts
3306
3331
  examples:
package/dist/enduser.yml CHANGED
@@ -29,7 +29,11 @@ tags:
29
29
  routes shared with workspace users. The account owner is never an end
30
30
  user: owners already have MCP access without an end-user record, the
31
31
  invite refuses the owner's address (`owner_self_invite_not_allowed`),
32
- and the owner never appears in these lists.
32
+ and the owner never appears in these lists. Workspace administrators
33
+ need no record either: under Celigo OAuth they reach every MCP server in
34
+ the environment, and everything on it. Other workspace users need an
35
+ end-user record with grants. Anyone who also holds an end-user record,
36
+ an administrator included, is judged by that record's grants.
33
37
 
34
38
  ## End user schema
35
39