@celigo/api-specs 0.2.83 → 0.2.84
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 +286 -34
- package/dist/asynchelper.yml +286 -34
- package/dist/export.yml +286 -34
- package/dist/import.yml +286 -34
- package/dist/tool.yml +286 -34
- package/package.json +1 -1
- package/schemas.json +12 -4
package/dist/tool.yml
CHANGED
|
@@ -3373,7 +3373,8 @@ components:
|
|
|
3373
3373
|
Explicit JSON `null` is itself a valid fallback: the destination field is written as
|
|
3374
3374
|
JSON null when the extract yields nothing (the Mapper UI's "Use null as default value"
|
|
3375
3375
|
action). Omitting the key entirely means no fallback — the field is left out of the
|
|
3376
|
-
output when the extract is empty (the UI's "Do nothing" action).
|
|
3376
|
+
output when the extract is empty (the UI's "Do nothing" action). Failing the record
|
|
3377
|
+
instead is `conditional.when: fail_record_when_empty`, which excludes a default.
|
|
3377
3378
|
x-celigo-ai-guidance:
|
|
3378
3379
|
- |-
|
|
3379
3380
|
`"default": null` and `"default": ""` are distinct saved values, not
|
|
@@ -3382,6 +3383,12 @@ components:
|
|
|
3382
3383
|
Preserve them verbatim when editing or migrating a mapping — dropping
|
|
3383
3384
|
the key changes runtime behavior from "use null/empty string as
|
|
3384
3385
|
default value" to "do nothing" (field omitted from the output).
|
|
3386
|
+
- |-
|
|
3387
|
+
The four "Action to take if source field has no value" choices map to:
|
|
3388
|
+
do nothing → no `default` key (optionally `conditional.when:
|
|
3389
|
+
extract_not_empty`); use null → `"default": null`; use empty string or
|
|
3390
|
+
a custom value → `"default": "<value>"`; cause the record to fail →
|
|
3391
|
+
`conditional.when: fail_record_when_empty` with no `default` key.
|
|
3385
3392
|
examples:
|
|
3386
3393
|
- N/A
|
|
3387
3394
|
- '0'
|
|
@@ -3714,6 +3721,22 @@ components:
|
|
|
3714
3721
|
- $.order.lineItems[*]
|
|
3715
3722
|
- $.parents[*].children[*]
|
|
3716
3723
|
- $
|
|
3724
|
+
name:
|
|
3725
|
+
type: string
|
|
3726
|
+
maxLength: 200
|
|
3727
|
+
description: |
|
|
3728
|
+
Display label for this source object in the mapper, so the sources of
|
|
3729
|
+
an object array can be told apart instead of all showing as `$`.
|
|
3730
|
+
Has no effect at runtime; stored only when non-empty.
|
|
3731
|
+
x-celigo-ai-guidance:
|
|
3732
|
+
- |-
|
|
3733
|
+
Carry an existing `name` through every edit — it is the user's label
|
|
3734
|
+
for the tab, and an entry sent without it loses the label. Duplicate
|
|
3735
|
+
names across entries are allowed. Set one only when the user names
|
|
3736
|
+
the source object; never invent labels.
|
|
3737
|
+
examples:
|
|
3738
|
+
- Billing address
|
|
3739
|
+
- Shipping address
|
|
3717
3740
|
sourceDataType:
|
|
3718
3741
|
type: string
|
|
3719
3742
|
description: |
|
|
@@ -3762,17 +3785,31 @@ components:
|
|
|
3762
3785
|
type: object
|
|
3763
3786
|
description: |
|
|
3764
3787
|
Defines conditional rules for including each array element in the result.
|
|
3788
|
+
x-celigo-ai-guidance:
|
|
3789
|
+
- |-
|
|
3790
|
+
Judged against this entry's own `extract` (the array source). The
|
|
3791
|
+
design scopes the UI's tab-level "Action to take if source field has
|
|
3792
|
+
no value" to copy-as-is tabs (no child `mappings`); the API accepts
|
|
3793
|
+
`fail_record_when_empty` on a mapped entry as well, and the mapper
|
|
3794
|
+
processor honors it there — the record fails when that array is
|
|
3795
|
+
missing or empty (`errors[]` entry `code: extract_empty`, `fatal:
|
|
3796
|
+
true`, message `<generate>: Source field has no value`; probed
|
|
3797
|
+
2026-10-09). Say so when writing it on a mapped entry: the user may
|
|
3798
|
+
not find the setting in the mapper's tab. To fail on an empty field
|
|
3799
|
+
inside each element, set the action on that child mapping instead.
|
|
3765
3800
|
properties:
|
|
3766
3801
|
when:
|
|
3767
3802
|
type: string
|
|
3768
3803
|
description: |
|
|
3769
|
-
|
|
3770
|
-
|
|
3771
|
-
|
|
3804
|
+
Condition judged on the entry's extract — skip the elements the
|
|
3805
|
+
extract does not return, or fail the whole record when the source
|
|
3806
|
+
array is missing or empty.
|
|
3772
3807
|
enum:
|
|
3773
3808
|
- extract_not_empty
|
|
3809
|
+
- fail_record_when_empty
|
|
3774
3810
|
x-enumDescriptions:
|
|
3775
|
-
extract_not_empty: Include
|
|
3811
|
+
extract_not_empty: Include an array element only when the extract returns a non-empty value for it
|
|
3812
|
+
fail_record_when_empty: Fail the record when the entry's source array is missing or empty
|
|
3776
3813
|
examples:
|
|
3777
3814
|
- extract_not_empty
|
|
3778
3815
|
mappings:
|
|
@@ -3872,6 +3909,20 @@ components:
|
|
|
3872
3909
|
extract: $.price
|
|
3873
3910
|
dataType: number
|
|
3874
3911
|
status: Active
|
|
3912
|
+
if:
|
|
3913
|
+
properties:
|
|
3914
|
+
conditional:
|
|
3915
|
+
properties:
|
|
3916
|
+
when:
|
|
3917
|
+
const: fail_record_when_empty
|
|
3918
|
+
required:
|
|
3919
|
+
- when
|
|
3920
|
+
required:
|
|
3921
|
+
- conditional
|
|
3922
|
+
then:
|
|
3923
|
+
not:
|
|
3924
|
+
required:
|
|
3925
|
+
- default
|
|
3875
3926
|
status:
|
|
3876
3927
|
type: string
|
|
3877
3928
|
description: |
|
|
@@ -3879,9 +3930,10 @@ components:
|
|
|
3879
3930
|
Required on every mapping entry. Controls whether the mapping is applied.
|
|
3880
3931
|
|
|
3881
3932
|
**Guidance**
|
|
3882
|
-
|
|
3883
|
-
|
|
3884
|
-
|
|
3933
|
+
Only `Active` rows run. `Draft` and `Inactive` rows keep their
|
|
3934
|
+
configuration, are saved with minimal validation, and are skipped at
|
|
3935
|
+
runtime and in preview; a non-Active parent skips its whole subtree
|
|
3936
|
+
whatever its children say. The API rejects a mapping missing this field
|
|
3885
3937
|
(validation error: "Mapping object must have status field present.").
|
|
3886
3938
|
x-celigo-ai-guidance:
|
|
3887
3939
|
- |-
|
|
@@ -3890,12 +3942,28 @@ components:
|
|
|
3890
3942
|
field validations. The value is case-sensitive. The API rejects:
|
|
3891
3943
|
- Missing field: `[status_field_absent] Mapping object must have status field present.`
|
|
3892
3944
|
- Wrong case (e.g. `"active"`): `[invalid_status_enums] active is not a valid enum for status field.`
|
|
3945
|
+
- |-
|
|
3946
|
+
`"Inactive"` is the user's "Set inactive" on a row: use it only when
|
|
3947
|
+
asked to disable or park a row, never to mean incomplete (that is
|
|
3948
|
+
`"Draft"`). Setting a parent `Inactive` means no `Active` row may
|
|
3949
|
+
remain under it — the save rejects an `Active` row under an
|
|
3950
|
+
`Inactive` parent (`[inactive_parent_active_child]` on `mappings`,
|
|
3951
|
+
no message text) and never cascades or promotes on its own; `Draft`
|
|
3952
|
+
descendants are kept as they are, and a `Draft` parent does not gate
|
|
3953
|
+
its children. The UI's Set inactive on a parent marks the parent and
|
|
3954
|
+
every child `Inactive` (IO-166197). Re-enabling a child
|
|
3955
|
+
means re-enabling its ancestors in the same payload. Edits that keep
|
|
3956
|
+
existing rows must carry their stored status forward — rewriting a
|
|
3957
|
+
`Draft` or `Inactive` row to `Active` turns a row the user parked
|
|
3958
|
+
back on.
|
|
3893
3959
|
enum:
|
|
3894
3960
|
- Active
|
|
3895
3961
|
- Draft
|
|
3962
|
+
- Inactive
|
|
3896
3963
|
x-enumDescriptions:
|
|
3897
|
-
Active: The mapping is enabled and applied during processing
|
|
3898
|
-
Draft: In-progress mapping; saved without the Active-only field validations
|
|
3964
|
+
Active: The mapping is enabled and applied during processing
|
|
3965
|
+
Draft: In-progress mapping; saved without the Active-only field validations and skipped at runtime
|
|
3966
|
+
Inactive: Disabled by the user; configuration kept, skipped at runtime and in preview
|
|
3899
3967
|
examples:
|
|
3900
3968
|
- Active
|
|
3901
3969
|
conditional:
|
|
@@ -3924,6 +3992,10 @@ components:
|
|
|
3924
3992
|
- `extract_not_empty`: Apply only when the extract field returns a value
|
|
3925
3993
|
Useful for conditional mapping based on input data availability
|
|
3926
3994
|
|
|
3995
|
+
- `fail_record_when_empty`: Fail the record when the extract field returns
|
|
3996
|
+
no value (the UI's "Cause record to fail" action when the source field
|
|
3997
|
+
has no value)
|
|
3998
|
+
|
|
3927
3999
|
**Example**
|
|
3928
4000
|
```json
|
|
3929
4001
|
{
|
|
@@ -3936,28 +4008,75 @@ components:
|
|
|
3936
4008
|
}
|
|
3937
4009
|
}
|
|
3938
4010
|
```
|
|
4011
|
+
x-celigo-ai-guidance:
|
|
4012
|
+
- |-
|
|
4013
|
+
`when` holds one value, and two different settings share it: the
|
|
4014
|
+
composite-import operation gate (`record_created` / `record_updated`,
|
|
4015
|
+
the UI's "Only perform mapping when") and the empty-source action
|
|
4016
|
+
(`extract_not_empty` / `fail_record_when_empty`, the UI's "Action to
|
|
4017
|
+
take if source field has no value"). A row cannot carry both — writing
|
|
4018
|
+
one replaces the other and the save succeeds, so a composite import
|
|
4019
|
+
row that needs both has to choose. Never author `fail_record_when_empty`
|
|
4020
|
+
on a row that already carries `record_created` or `record_updated`.
|
|
3939
4021
|
properties:
|
|
3940
4022
|
when:
|
|
3941
4023
|
type: string
|
|
3942
4024
|
description: |
|
|
3943
|
-
|
|
3944
|
-
-
|
|
3945
|
-
|
|
3946
|
-
|
|
4025
|
+
Condition that gates this mapping — either an operation gate on a
|
|
4026
|
+
composite (create-or-update) import or the action to take when the
|
|
4027
|
+
extract returns no value. Empty means null, undefined or an empty
|
|
4028
|
+
string; `0`, `false` and whitespace are values.
|
|
4029
|
+
x-celigo-ai-guidance:
|
|
4030
|
+
- |-
|
|
4031
|
+
`fail_record_when_empty` is the fourth "Action to take if source field
|
|
4032
|
+
has no value" and is mutually exclusive with the other three: send it
|
|
4033
|
+
with no `default` key. A `default`, a `lookupName` or a `hardCodedValue`
|
|
4034
|
+
on the same row — or a `default` on a `buildArrayHelper` entry — is
|
|
4035
|
+
rejected at save with `[unsupported_mapping] "<key>" and conditional.when
|
|
4036
|
+
"fail_record_when_empty" cannot be present in mapping simultaneously.`
|
|
4037
|
+
(the lookup variant adds `Use lookup "allowFailures" instead.`);
|
|
4038
|
+
lookups fail through `allowFailures: false`, and a hard-coded row
|
|
4039
|
+
always has a value. At runtime an empty extract fails the record with
|
|
4040
|
+
an `errors[]` entry `{code: "extract_empty", fatal: true, source:
|
|
4041
|
+
"mapping", message: "<generate>: Source field has no value"}`
|
|
4042
|
+
("Input field has no value" in a Transformation 2.0); `0` and `false`
|
|
4043
|
+
are values and map through.
|
|
3947
4044
|
enum:
|
|
3948
4045
|
- record_created
|
|
3949
4046
|
- record_updated
|
|
3950
4047
|
- extract_not_empty
|
|
4048
|
+
- fail_record_when_empty
|
|
3951
4049
|
x-enumDescriptions:
|
|
3952
|
-
record_created: Apply this mapping only when creating a new record
|
|
3953
|
-
record_updated: Apply this mapping only when updating an existing record
|
|
3954
|
-
extract_not_empty: Apply this mapping only when the extract field returns a non-empty value
|
|
4050
|
+
record_created: Apply this mapping only when creating a new record
|
|
4051
|
+
record_updated: Apply this mapping only when updating an existing record
|
|
4052
|
+
extract_not_empty: Apply this mapping only when the extract field returns a non-empty value
|
|
4053
|
+
fail_record_when_empty: Fail the record when the extract field returns no value
|
|
3955
4054
|
examples:
|
|
3956
4055
|
- record_created
|
|
3957
4056
|
- record_updated
|
|
3958
4057
|
- extract_not_empty
|
|
4058
|
+
- fail_record_when_empty
|
|
3959
4059
|
required:
|
|
3960
4060
|
- dataType
|
|
4061
|
+
if:
|
|
4062
|
+
properties:
|
|
4063
|
+
conditional:
|
|
4064
|
+
properties:
|
|
4065
|
+
when:
|
|
4066
|
+
const: fail_record_when_empty
|
|
4067
|
+
required:
|
|
4068
|
+
- when
|
|
4069
|
+
required:
|
|
4070
|
+
- conditional
|
|
4071
|
+
then:
|
|
4072
|
+
not:
|
|
4073
|
+
anyOf:
|
|
4074
|
+
- required:
|
|
4075
|
+
- default
|
|
4076
|
+
- required:
|
|
4077
|
+
- lookupName
|
|
4078
|
+
- required:
|
|
4079
|
+
- hardCodedValue
|
|
3961
4080
|
Mappings:
|
|
3962
4081
|
type: array
|
|
3963
4082
|
description: |
|
|
@@ -3981,6 +4100,20 @@ components:
|
|
|
3981
4100
|
|
|
3982
4101
|
The system will process these nested structures recursively during runtime, ensuring proper construction
|
|
3983
4102
|
of complex hierarchical data while maintaining excellent performance.
|
|
4103
|
+
|
|
4104
|
+
On save, a leaf row with neither a source (`extract`, `hardCodedValue`, `lookupName`) nor a
|
|
4105
|
+
destination (`generate`) is dropped silently, at every nesting level, and so is an object or
|
|
4106
|
+
object-array row left with no source, no destination and no remaining child `mappings` or
|
|
4107
|
+
`buildArrayHelper` entries; a row with only one of the two, and a source-less, destination-less
|
|
4108
|
+
wrapper that still has children, are kept.
|
|
4109
|
+
x-celigo-ai-guidance:
|
|
4110
|
+
- |-
|
|
4111
|
+
Rows that exist in the saved document — including `Draft` and `Inactive` rows and
|
|
4112
|
+
rows with only a source or only a destination — are the user's state: an edit that
|
|
4113
|
+
re-sends the tree must carry them through unchanged unless the user asked to change
|
|
4114
|
+
them. Only a row with neither source nor destination — and, for an object or
|
|
4115
|
+
object-array row, no remaining children — can be left out; the save would drop it
|
|
4116
|
+
anyway. A wrapper with children but no `generate` is kept by the save, so keep it.
|
|
3984
4117
|
items:
|
|
3985
4118
|
type: object
|
|
3986
4119
|
properties:
|
|
@@ -4260,7 +4393,8 @@ components:
|
|
|
4260
4393
|
Explicit JSON `null` is itself a valid fallback: the destination field is written as
|
|
4261
4394
|
JSON null when the extract yields nothing (the Mapper UI's "Use null as default value"
|
|
4262
4395
|
action). Omitting the key entirely means no fallback — the field is left out of the
|
|
4263
|
-
output when the extract is empty (the UI's "Do nothing" action).
|
|
4396
|
+
output when the extract is empty (the UI's "Do nothing" action). Failing the record
|
|
4397
|
+
instead is `conditional.when: fail_record_when_empty`, which excludes a default.
|
|
4264
4398
|
x-celigo-ai-guidance:
|
|
4265
4399
|
- |-
|
|
4266
4400
|
`"default": null` and `"default": ""` are distinct saved values, not
|
|
@@ -4269,6 +4403,12 @@ components:
|
|
|
4269
4403
|
Preserve them verbatim when editing or migrating a mapping — dropping
|
|
4270
4404
|
the key changes runtime behavior from "use null/empty string as
|
|
4271
4405
|
default value" to "do nothing" (field omitted from the output).
|
|
4406
|
+
- |-
|
|
4407
|
+
The four "Action to take if source field has no value" choices map to:
|
|
4408
|
+
do nothing → no `default` key (optionally `conditional.when:
|
|
4409
|
+
extract_not_empty`); use null → `"default": null`; use empty string or
|
|
4410
|
+
a custom value → `"default": "<value>"`; cause the record to fail →
|
|
4411
|
+
`conditional.when: fail_record_when_empty` with no `default` key.
|
|
4272
4412
|
examples:
|
|
4273
4413
|
- N/A
|
|
4274
4414
|
- '0'
|
|
@@ -4601,6 +4741,22 @@ components:
|
|
|
4601
4741
|
- $.order.lineItems[*]
|
|
4602
4742
|
- $.parents[*].children[*]
|
|
4603
4743
|
- $
|
|
4744
|
+
name:
|
|
4745
|
+
type: string
|
|
4746
|
+
maxLength: 200
|
|
4747
|
+
description: |
|
|
4748
|
+
Display label for this source object in the mapper, so the sources of
|
|
4749
|
+
an object array can be told apart instead of all showing as `$`.
|
|
4750
|
+
Has no effect at runtime; stored only when non-empty.
|
|
4751
|
+
x-celigo-ai-guidance:
|
|
4752
|
+
- |-
|
|
4753
|
+
Carry an existing `name` through every edit — it is the user's label
|
|
4754
|
+
for the tab, and an entry sent without it loses the label. Duplicate
|
|
4755
|
+
names across entries are allowed. Set one only when the user names
|
|
4756
|
+
the source object; never invent labels.
|
|
4757
|
+
examples:
|
|
4758
|
+
- Billing address
|
|
4759
|
+
- Shipping address
|
|
4604
4760
|
sourceDataType:
|
|
4605
4761
|
type: string
|
|
4606
4762
|
description: |
|
|
@@ -4649,17 +4805,31 @@ components:
|
|
|
4649
4805
|
type: object
|
|
4650
4806
|
description: |
|
|
4651
4807
|
Defines conditional rules for including each array element in the result.
|
|
4808
|
+
x-celigo-ai-guidance:
|
|
4809
|
+
- |-
|
|
4810
|
+
Judged against this entry's own `extract` (the array source). The
|
|
4811
|
+
design scopes the UI's tab-level "Action to take if source field has
|
|
4812
|
+
no value" to copy-as-is tabs (no child `mappings`); the API accepts
|
|
4813
|
+
`fail_record_when_empty` on a mapped entry as well, and the mapper
|
|
4814
|
+
processor honors it there — the record fails when that array is
|
|
4815
|
+
missing or empty (`errors[]` entry `code: extract_empty`, `fatal:
|
|
4816
|
+
true`, message `<generate>: Source field has no value`; probed
|
|
4817
|
+
2026-10-09). Say so when writing it on a mapped entry: the user may
|
|
4818
|
+
not find the setting in the mapper's tab. To fail on an empty field
|
|
4819
|
+
inside each element, set the action on that child mapping instead.
|
|
4652
4820
|
properties:
|
|
4653
4821
|
when:
|
|
4654
4822
|
type: string
|
|
4655
4823
|
description: |
|
|
4656
|
-
|
|
4657
|
-
|
|
4658
|
-
|
|
4824
|
+
Condition judged on the entry's extract — skip the elements the
|
|
4825
|
+
extract does not return, or fail the whole record when the source
|
|
4826
|
+
array is missing or empty.
|
|
4659
4827
|
enum:
|
|
4660
4828
|
- extract_not_empty
|
|
4829
|
+
- fail_record_when_empty
|
|
4661
4830
|
x-enumDescriptions:
|
|
4662
|
-
extract_not_empty: Include
|
|
4831
|
+
extract_not_empty: Include an array element only when the extract returns a non-empty value for it
|
|
4832
|
+
fail_record_when_empty: Fail the record when the entry's source array is missing or empty
|
|
4663
4833
|
examples:
|
|
4664
4834
|
- extract_not_empty
|
|
4665
4835
|
mappings:
|
|
@@ -4759,6 +4929,20 @@ components:
|
|
|
4759
4929
|
extract: $.price
|
|
4760
4930
|
dataType: number
|
|
4761
4931
|
status: Active
|
|
4932
|
+
if:
|
|
4933
|
+
properties:
|
|
4934
|
+
conditional:
|
|
4935
|
+
properties:
|
|
4936
|
+
when:
|
|
4937
|
+
const: fail_record_when_empty
|
|
4938
|
+
required:
|
|
4939
|
+
- when
|
|
4940
|
+
required:
|
|
4941
|
+
- conditional
|
|
4942
|
+
then:
|
|
4943
|
+
not:
|
|
4944
|
+
required:
|
|
4945
|
+
- default
|
|
4762
4946
|
status:
|
|
4763
4947
|
type: string
|
|
4764
4948
|
description: |
|
|
@@ -4766,9 +4950,10 @@ components:
|
|
|
4766
4950
|
Required on every mapping entry. Controls whether the mapping is applied.
|
|
4767
4951
|
|
|
4768
4952
|
**Guidance**
|
|
4769
|
-
|
|
4770
|
-
|
|
4771
|
-
|
|
4953
|
+
Only `Active` rows run. `Draft` and `Inactive` rows keep their
|
|
4954
|
+
configuration, are saved with minimal validation, and are skipped at
|
|
4955
|
+
runtime and in preview; a non-Active parent skips its whole subtree
|
|
4956
|
+
whatever its children say. The API rejects a mapping missing this field
|
|
4772
4957
|
(validation error: "Mapping object must have status field present.").
|
|
4773
4958
|
x-celigo-ai-guidance:
|
|
4774
4959
|
- |-
|
|
@@ -4777,12 +4962,28 @@ components:
|
|
|
4777
4962
|
field validations. The value is case-sensitive. The API rejects:
|
|
4778
4963
|
- Missing field: `[status_field_absent] Mapping object must have status field present.`
|
|
4779
4964
|
- Wrong case (e.g. `"active"`): `[invalid_status_enums] active is not a valid enum for status field.`
|
|
4965
|
+
- |-
|
|
4966
|
+
`"Inactive"` is the user's "Set inactive" on a row: use it only when
|
|
4967
|
+
asked to disable or park a row, never to mean incomplete (that is
|
|
4968
|
+
`"Draft"`). Setting a parent `Inactive` means no `Active` row may
|
|
4969
|
+
remain under it — the save rejects an `Active` row under an
|
|
4970
|
+
`Inactive` parent (`[inactive_parent_active_child]` on `mappings`,
|
|
4971
|
+
no message text) and never cascades or promotes on its own; `Draft`
|
|
4972
|
+
descendants are kept as they are, and a `Draft` parent does not gate
|
|
4973
|
+
its children. The UI's Set inactive on a parent marks the parent and
|
|
4974
|
+
every child `Inactive` (IO-166197). Re-enabling a child
|
|
4975
|
+
means re-enabling its ancestors in the same payload. Edits that keep
|
|
4976
|
+
existing rows must carry their stored status forward — rewriting a
|
|
4977
|
+
`Draft` or `Inactive` row to `Active` turns a row the user parked
|
|
4978
|
+
back on.
|
|
4780
4979
|
enum:
|
|
4781
4980
|
- Active
|
|
4782
4981
|
- Draft
|
|
4982
|
+
- Inactive
|
|
4783
4983
|
x-enumDescriptions:
|
|
4784
|
-
Active: The mapping is enabled and applied during processing
|
|
4785
|
-
Draft: In-progress mapping; saved without the Active-only field validations
|
|
4984
|
+
Active: The mapping is enabled and applied during processing
|
|
4985
|
+
Draft: In-progress mapping; saved without the Active-only field validations and skipped at runtime
|
|
4986
|
+
Inactive: Disabled by the user; configuration kept, skipped at runtime and in preview
|
|
4786
4987
|
examples:
|
|
4787
4988
|
- Active
|
|
4788
4989
|
conditional:
|
|
@@ -4811,6 +5012,10 @@ components:
|
|
|
4811
5012
|
- `extract_not_empty`: Apply only when the extract field returns a value
|
|
4812
5013
|
Useful for conditional mapping based on input data availability
|
|
4813
5014
|
|
|
5015
|
+
- `fail_record_when_empty`: Fail the record when the extract field returns
|
|
5016
|
+
no value (the UI's "Cause record to fail" action when the source field
|
|
5017
|
+
has no value)
|
|
5018
|
+
|
|
4814
5019
|
**Example**
|
|
4815
5020
|
```json
|
|
4816
5021
|
{
|
|
@@ -4823,28 +5028,75 @@ components:
|
|
|
4823
5028
|
}
|
|
4824
5029
|
}
|
|
4825
5030
|
```
|
|
5031
|
+
x-celigo-ai-guidance:
|
|
5032
|
+
- |-
|
|
5033
|
+
`when` holds one value, and two different settings share it: the
|
|
5034
|
+
composite-import operation gate (`record_created` / `record_updated`,
|
|
5035
|
+
the UI's "Only perform mapping when") and the empty-source action
|
|
5036
|
+
(`extract_not_empty` / `fail_record_when_empty`, the UI's "Action to
|
|
5037
|
+
take if source field has no value"). A row cannot carry both — writing
|
|
5038
|
+
one replaces the other and the save succeeds, so a composite import
|
|
5039
|
+
row that needs both has to choose. Never author `fail_record_when_empty`
|
|
5040
|
+
on a row that already carries `record_created` or `record_updated`.
|
|
4826
5041
|
properties:
|
|
4827
5042
|
when:
|
|
4828
5043
|
type: string
|
|
4829
5044
|
description: |
|
|
4830
|
-
|
|
4831
|
-
-
|
|
4832
|
-
|
|
4833
|
-
|
|
5045
|
+
Condition that gates this mapping — either an operation gate on a
|
|
5046
|
+
composite (create-or-update) import or the action to take when the
|
|
5047
|
+
extract returns no value. Empty means null, undefined or an empty
|
|
5048
|
+
string; `0`, `false` and whitespace are values.
|
|
5049
|
+
x-celigo-ai-guidance:
|
|
5050
|
+
- |-
|
|
5051
|
+
`fail_record_when_empty` is the fourth "Action to take if source field
|
|
5052
|
+
has no value" and is mutually exclusive with the other three: send it
|
|
5053
|
+
with no `default` key. A `default`, a `lookupName` or a `hardCodedValue`
|
|
5054
|
+
on the same row — or a `default` on a `buildArrayHelper` entry — is
|
|
5055
|
+
rejected at save with `[unsupported_mapping] "<key>" and conditional.when
|
|
5056
|
+
"fail_record_when_empty" cannot be present in mapping simultaneously.`
|
|
5057
|
+
(the lookup variant adds `Use lookup "allowFailures" instead.`);
|
|
5058
|
+
lookups fail through `allowFailures: false`, and a hard-coded row
|
|
5059
|
+
always has a value. At runtime an empty extract fails the record with
|
|
5060
|
+
an `errors[]` entry `{code: "extract_empty", fatal: true, source:
|
|
5061
|
+
"mapping", message: "<generate>: Source field has no value"}`
|
|
5062
|
+
("Input field has no value" in a Transformation 2.0); `0` and `false`
|
|
5063
|
+
are values and map through.
|
|
4834
5064
|
enum:
|
|
4835
5065
|
- record_created
|
|
4836
5066
|
- record_updated
|
|
4837
5067
|
- extract_not_empty
|
|
5068
|
+
- fail_record_when_empty
|
|
4838
5069
|
x-enumDescriptions:
|
|
4839
|
-
record_created: Apply this mapping only when creating a new record
|
|
4840
|
-
record_updated: Apply this mapping only when updating an existing record
|
|
4841
|
-
extract_not_empty: Apply this mapping only when the extract field returns a non-empty value
|
|
5070
|
+
record_created: Apply this mapping only when creating a new record
|
|
5071
|
+
record_updated: Apply this mapping only when updating an existing record
|
|
5072
|
+
extract_not_empty: Apply this mapping only when the extract field returns a non-empty value
|
|
5073
|
+
fail_record_when_empty: Fail the record when the extract field returns no value
|
|
4842
5074
|
examples:
|
|
4843
5075
|
- record_created
|
|
4844
5076
|
- record_updated
|
|
4845
5077
|
- extract_not_empty
|
|
5078
|
+
- fail_record_when_empty
|
|
4846
5079
|
required:
|
|
4847
5080
|
- dataType
|
|
5081
|
+
if:
|
|
5082
|
+
properties:
|
|
5083
|
+
conditional:
|
|
5084
|
+
properties:
|
|
5085
|
+
when:
|
|
5086
|
+
const: fail_record_when_empty
|
|
5087
|
+
required:
|
|
5088
|
+
- when
|
|
5089
|
+
required:
|
|
5090
|
+
- conditional
|
|
5091
|
+
then:
|
|
5092
|
+
not:
|
|
5093
|
+
anyOf:
|
|
5094
|
+
- required:
|
|
5095
|
+
- default
|
|
5096
|
+
- required:
|
|
5097
|
+
- lookupName
|
|
5098
|
+
- required:
|
|
5099
|
+
- hardCodedValue
|
|
4848
5100
|
Lookups:
|
|
4849
5101
|
type: array
|
|
4850
5102
|
description: |
|
package/package.json
CHANGED
package/schemas.json
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
{
|
|
2
2
|
"provenance": {
|
|
3
3
|
"repo": "celigo/integrator-api-specs",
|
|
4
|
-
"iasCommit": "
|
|
5
|
-
"generatedAt": "2026-10-
|
|
4
|
+
"iasCommit": "0dce435",
|
|
5
|
+
"generatedAt": "2026-10-10"
|
|
6
6
|
},
|
|
7
7
|
"roots": {
|
|
8
8
|
"aiagent": 133,
|
|
@@ -934,7 +934,8 @@
|
|
|
934
934
|
"string"
|
|
935
935
|
],
|
|
936
936
|
"e": [
|
|
937
|
-
"extract_not_empty"
|
|
937
|
+
"extract_not_empty",
|
|
938
|
+
"fail_record_when_empty"
|
|
938
939
|
]
|
|
939
940
|
},
|
|
940
941
|
{
|
|
@@ -954,6 +955,7 @@
|
|
|
954
955
|
"default": 88,
|
|
955
956
|
"extract": 1,
|
|
956
957
|
"mappings": 86,
|
|
958
|
+
"name": 1,
|
|
957
959
|
"sourceDataType": 87
|
|
958
960
|
}
|
|
959
961
|
},
|
|
@@ -969,7 +971,8 @@
|
|
|
969
971
|
],
|
|
970
972
|
"e": [
|
|
971
973
|
"Active",
|
|
972
|
-
"Draft"
|
|
974
|
+
"Draft",
|
|
975
|
+
"Inactive"
|
|
973
976
|
]
|
|
974
977
|
},
|
|
975
978
|
{
|
|
@@ -978,6 +981,7 @@
|
|
|
978
981
|
],
|
|
979
982
|
"e": [
|
|
980
983
|
"extract_not_empty",
|
|
984
|
+
"fail_record_when_empty",
|
|
981
985
|
"record_created",
|
|
982
986
|
"record_updated"
|
|
983
987
|
]
|
|
@@ -2141,6 +2145,7 @@
|
|
|
2141
2145
|
"default": 88,
|
|
2142
2146
|
"extract": 1,
|
|
2143
2147
|
"mappings": 206,
|
|
2148
|
+
"name": 1,
|
|
2144
2149
|
"sourceDataType": 87
|
|
2145
2150
|
}
|
|
2146
2151
|
},
|
|
@@ -5168,6 +5173,7 @@
|
|
|
5168
5173
|
"default": 88,
|
|
5169
5174
|
"extract": 1,
|
|
5170
5175
|
"mappings": 438,
|
|
5176
|
+
"name": 1,
|
|
5171
5177
|
"sourceDataType": 87
|
|
5172
5178
|
}
|
|
5173
5179
|
},
|
|
@@ -7523,6 +7529,7 @@
|
|
|
7523
7529
|
"default": 88,
|
|
7524
7530
|
"extract": 1,
|
|
7525
7531
|
"mappings": 626,
|
|
7532
|
+
"name": 1,
|
|
7526
7533
|
"sourceDataType": 87
|
|
7527
7534
|
}
|
|
7528
7535
|
},
|
|
@@ -8756,6 +8763,7 @@
|
|
|
8756
8763
|
"default": 88,
|
|
8757
8764
|
"extract": 1,
|
|
8758
8765
|
"mappings": 725,
|
|
8766
|
+
"name": 1,
|
|
8759
8767
|
"sourceDataType": 87
|
|
8760
8768
|
}
|
|
8761
8769
|
},
|