@celigo/api-specs 0.2.198 → 0.2.199

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
@@ -2831,28 +2831,51 @@ components:
2831
2831
 
2832
2832
  Explicit JSON `null` is itself a valid fallback: the destination field is written as
2833
2833
  JSON null when the extract yields nothing (the Mapper UI's "Use null as default value"
2834
- action). Omitting the key entirely means no fallback — the field is left out of the
2835
- output when the extract is missing or an empty string (the UI's "Do nothing" action),
2836
- while a null source is still written as null unless `conditional.when` is
2837
- `extract_not_empty`. Failing the record instead is `conditional.when:
2838
- fail_record_when_empty`, which excludes a default.
2834
+ action). Outside the database and csv / xlsx file imports described below, omitting the
2835
+ key means no fallback — the field is left out of the output when the extract is missing
2836
+ or an empty string (the UI's "Do nothing" action), while a null source is still written
2837
+ as null unless `conditional.when` is `extract_not_empty`. Failing the record instead is
2838
+ `conditional.when: fail_record_when_empty`, which excludes a default.
2839
+
2840
+ On database imports (rdbms, jdbc) and csv / xlsx file imports (such as ftp, or an HTTP
2841
+ import with a file-provider assistant or `http.type: file`; an HTTP import that sends
2842
+ records is not one), the save stores an omitted key as `null` on every row that has no
2843
+ `hardCodedValue`, no `lookupName` and no `extract_not_empty` / `fail_record_when_empty`
2844
+ conditional — the same default the Mapper UI preselects for those imports. The rule runs
2845
+ when the document is saved, on create and on update, so "Do nothing" on those imports is
2846
+ `conditional.when: extract_not_empty`, not an omitted key.
2839
2847
  x-celigo-ai-guidance:
2840
2848
  - |-
2841
2849
  `"default": null` and `"default": ""` are distinct saved values, not
2842
2850
  absent keys: null renders the destination field as JSON null and the
2843
2851
  empty string renders it as `""` when the extract yields nothing.
2844
- Preserve them verbatim when editing or migrating a mapping — dropping
2845
- the key changes runtime behavior from "use null/empty string as
2846
- default value" to "do nothing" (a missing or `""` source is left out
2847
- of the output, while a null source is written as null unless
2848
- `conditional.when` is `extract_not_empty`).
2852
+ Preserve them verbatim when editing or migrating a mapping. Outside
2853
+ the database / csv-xlsx file import set, dropping the key changes
2854
+ runtime behavior from "use null/empty string as default value" to "do
2855
+ nothing" (a missing or `""` source is left out of the output, while a
2856
+ null source is written as null unless `conditional.when` is
2857
+ `extract_not_empty`); inside that set the save writes a dropped key
2858
+ back as `"default": null`, so dropping a stored null changes nothing
2859
+ while dropping a stored `""` or any other explicit value replaces it
2860
+ with null.
2849
2861
  - |-
2850
2862
  The four "Action to take if source field has no value" choices map to:
2851
- do nothing → no `default` key (add `conditional.when:
2852
- extract_not_empty` to leave a null source out too; without it a null
2853
- source is written as null); use null → `"default": null`; use empty string or
2854
- a custom value → `"default": "<value>"`; cause the record to fail →
2863
+ do nothing → `conditional.when: extract_not_empty` with no `default` key
2864
+ (on imports outside the database / csv-xlsx file set the key may simply
2865
+ be omitted, but a null source is then still written as null); use null →
2866
+ `"default": null`; use empty string or a custom value →
2867
+ `"default": "<value>"`; cause the record to fail →
2855
2868
  `conditional.when: fail_record_when_empty` with no `default` key.
2869
+ - |-
2870
+ On a database or csv / xlsx file import, a row sent with neither a
2871
+ `default` nor one of those conditionals reads back with `"default": null`
2872
+ after the save — create or update — so the destination is written as
2873
+ null; never express "Do nothing" by omission there. A stored
2874
+ `"default": null` on such a row is this save-time default, not a user's
2875
+ choice; keep it when re-sending the row. `"default": null` sent together
2876
+ with `fail_record_when_empty` is rejected with 422 `unsupported_mapping`
2877
+ `"default" and conditional.when "fail_record_when_empty" cannot be
2878
+ present in mapping simultaneously.`
2856
2879
  examples:
2857
2880
  - N/A
2858
2881
  - '0'
@@ -3259,7 +3282,10 @@ components:
3259
3282
  not found in the input data.
3260
3283
 
3261
3284
  Explicit JSON `null` is itself a valid fallback (the element is written as
3262
- JSON null); omitting the key means no fallback is applied.
3285
+ JSON null); omitting the key means no fallback is applied — except on database
3286
+ and csv / xlsx file imports, where the save stores an omitted key as `null` on an
3287
+ entry without an `extract_not_empty` / `fail_record_when_empty` conditional, as it
3288
+ does on leaf rows.
3263
3289
  examples:
3264
3290
  - N/A
3265
3291
  - '0'
@@ -3929,28 +3955,51 @@ components:
3929
3955
 
3930
3956
  Explicit JSON `null` is itself a valid fallback: the destination field is written as
3931
3957
  JSON null when the extract yields nothing (the Mapper UI's "Use null as default value"
3932
- action). Omitting the key entirely means no fallback — the field is left out of the
3933
- output when the extract is missing or an empty string (the UI's "Do nothing" action),
3934
- while a null source is still written as null unless `conditional.when` is
3935
- `extract_not_empty`. Failing the record instead is `conditional.when:
3936
- fail_record_when_empty`, which excludes a default.
3958
+ action). Outside the database and csv / xlsx file imports described below, omitting the
3959
+ key means no fallback — the field is left out of the output when the extract is missing
3960
+ or an empty string (the UI's "Do nothing" action), while a null source is still written
3961
+ as null unless `conditional.when` is `extract_not_empty`. Failing the record instead is
3962
+ `conditional.when: fail_record_when_empty`, which excludes a default.
3963
+
3964
+ On database imports (rdbms, jdbc) and csv / xlsx file imports (such as ftp, or an HTTP
3965
+ import with a file-provider assistant or `http.type: file`; an HTTP import that sends
3966
+ records is not one), the save stores an omitted key as `null` on every row that has no
3967
+ `hardCodedValue`, no `lookupName` and no `extract_not_empty` / `fail_record_when_empty`
3968
+ conditional — the same default the Mapper UI preselects for those imports. The rule runs
3969
+ when the document is saved, on create and on update, so "Do nothing" on those imports is
3970
+ `conditional.when: extract_not_empty`, not an omitted key.
3937
3971
  x-celigo-ai-guidance:
3938
3972
  - |-
3939
3973
  `"default": null` and `"default": ""` are distinct saved values, not
3940
3974
  absent keys: null renders the destination field as JSON null and the
3941
3975
  empty string renders it as `""` when the extract yields nothing.
3942
- Preserve them verbatim when editing or migrating a mapping — dropping
3943
- the key changes runtime behavior from "use null/empty string as
3944
- default value" to "do nothing" (a missing or `""` source is left out
3945
- of the output, while a null source is written as null unless
3946
- `conditional.when` is `extract_not_empty`).
3976
+ Preserve them verbatim when editing or migrating a mapping. Outside
3977
+ the database / csv-xlsx file import set, dropping the key changes
3978
+ runtime behavior from "use null/empty string as default value" to "do
3979
+ nothing" (a missing or `""` source is left out of the output, while a
3980
+ null source is written as null unless `conditional.when` is
3981
+ `extract_not_empty`); inside that set the save writes a dropped key
3982
+ back as `"default": null`, so dropping a stored null changes nothing
3983
+ while dropping a stored `""` or any other explicit value replaces it
3984
+ with null.
3947
3985
  - |-
3948
3986
  The four "Action to take if source field has no value" choices map to:
3949
- do nothing → no `default` key (add `conditional.when:
3950
- extract_not_empty` to leave a null source out too; without it a null
3951
- source is written as null); use null → `"default": null`; use empty string or
3952
- a custom value → `"default": "<value>"`; cause the record to fail →
3987
+ do nothing → `conditional.when: extract_not_empty` with no `default` key
3988
+ (on imports outside the database / csv-xlsx file set the key may simply
3989
+ be omitted, but a null source is then still written as null); use null →
3990
+ `"default": null`; use empty string or a custom value →
3991
+ `"default": "<value>"`; cause the record to fail →
3953
3992
  `conditional.when: fail_record_when_empty` with no `default` key.
3993
+ - |-
3994
+ On a database or csv / xlsx file import, a row sent with neither a
3995
+ `default` nor one of those conditionals reads back with `"default": null`
3996
+ after the save — create or update — so the destination is written as
3997
+ null; never express "Do nothing" by omission there. A stored
3998
+ `"default": null` on such a row is this save-time default, not a user's
3999
+ choice; keep it when re-sending the row. `"default": null` sent together
4000
+ with `fail_record_when_empty` is rejected with 422 `unsupported_mapping`
4001
+ `"default" and conditional.when "fail_record_when_empty" cannot be
4002
+ present in mapping simultaneously.`
3954
4003
  examples:
3955
4004
  - N/A
3956
4005
  - '0'
@@ -4357,7 +4406,10 @@ components:
4357
4406
  not found in the input data.
4358
4407
 
4359
4408
  Explicit JSON `null` is itself a valid fallback (the element is written as
4360
- JSON null); omitting the key means no fallback is applied.
4409
+ JSON null); omitting the key means no fallback is applied — except on database
4410
+ and csv / xlsx file imports, where the save stores an omitted key as `null` on an
4411
+ entry without an `extract_not_empty` / `fail_record_when_empty` conditional, as it
4412
+ does on leaf rows.
4361
4413
  examples:
4362
4414
  - N/A
4363
4415
  - '0'
package/dist/api.yml CHANGED
@@ -2909,28 +2909,51 @@ components:
2909
2909
 
2910
2910
  Explicit JSON `null` is itself a valid fallback: the destination field is written as
2911
2911
  JSON null when the extract yields nothing (the Mapper UI's "Use null as default value"
2912
- action). Omitting the key entirely means no fallback — the field is left out of the
2913
- output when the extract is missing or an empty string (the UI's "Do nothing" action),
2914
- while a null source is still written as null unless `conditional.when` is
2915
- `extract_not_empty`. Failing the record instead is `conditional.when:
2916
- fail_record_when_empty`, which excludes a default.
2912
+ action). Outside the database and csv / xlsx file imports described below, omitting the
2913
+ key means no fallback — the field is left out of the output when the extract is missing
2914
+ or an empty string (the UI's "Do nothing" action), while a null source is still written
2915
+ as null unless `conditional.when` is `extract_not_empty`. Failing the record instead is
2916
+ `conditional.when: fail_record_when_empty`, which excludes a default.
2917
+
2918
+ On database imports (rdbms, jdbc) and csv / xlsx file imports (such as ftp, or an HTTP
2919
+ import with a file-provider assistant or `http.type: file`; an HTTP import that sends
2920
+ records is not one), the save stores an omitted key as `null` on every row that has no
2921
+ `hardCodedValue`, no `lookupName` and no `extract_not_empty` / `fail_record_when_empty`
2922
+ conditional — the same default the Mapper UI preselects for those imports. The rule runs
2923
+ when the document is saved, on create and on update, so "Do nothing" on those imports is
2924
+ `conditional.when: extract_not_empty`, not an omitted key.
2917
2925
  x-celigo-ai-guidance:
2918
2926
  - |-
2919
2927
  `"default": null` and `"default": ""` are distinct saved values, not
2920
2928
  absent keys: null renders the destination field as JSON null and the
2921
2929
  empty string renders it as `""` when the extract yields nothing.
2922
- Preserve them verbatim when editing or migrating a mapping — dropping
2923
- the key changes runtime behavior from "use null/empty string as
2924
- default value" to "do nothing" (a missing or `""` source is left out
2925
- of the output, while a null source is written as null unless
2926
- `conditional.when` is `extract_not_empty`).
2930
+ Preserve them verbatim when editing or migrating a mapping. Outside
2931
+ the database / csv-xlsx file import set, dropping the key changes
2932
+ runtime behavior from "use null/empty string as default value" to "do
2933
+ nothing" (a missing or `""` source is left out of the output, while a
2934
+ null source is written as null unless `conditional.when` is
2935
+ `extract_not_empty`); inside that set the save writes a dropped key
2936
+ back as `"default": null`, so dropping a stored null changes nothing
2937
+ while dropping a stored `""` or any other explicit value replaces it
2938
+ with null.
2927
2939
  - |-
2928
2940
  The four "Action to take if source field has no value" choices map to:
2929
- do nothing → no `default` key (add `conditional.when:
2930
- extract_not_empty` to leave a null source out too; without it a null
2931
- source is written as null); use null → `"default": null`; use empty string or
2932
- a custom value → `"default": "<value>"`; cause the record to fail →
2941
+ do nothing → `conditional.when: extract_not_empty` with no `default` key
2942
+ (on imports outside the database / csv-xlsx file set the key may simply
2943
+ be omitted, but a null source is then still written as null); use null →
2944
+ `"default": null`; use empty string or a custom value →
2945
+ `"default": "<value>"`; cause the record to fail →
2933
2946
  `conditional.when: fail_record_when_empty` with no `default` key.
2947
+ - |-
2948
+ On a database or csv / xlsx file import, a row sent with neither a
2949
+ `default` nor one of those conditionals reads back with `"default": null`
2950
+ after the save — create or update — so the destination is written as
2951
+ null; never express "Do nothing" by omission there. A stored
2952
+ `"default": null` on such a row is this save-time default, not a user's
2953
+ choice; keep it when re-sending the row. `"default": null` sent together
2954
+ with `fail_record_when_empty` is rejected with 422 `unsupported_mapping`
2955
+ `"default" and conditional.when "fail_record_when_empty" cannot be
2956
+ present in mapping simultaneously.`
2934
2957
  examples:
2935
2958
  - N/A
2936
2959
  - '0'
@@ -3337,7 +3360,10 @@ components:
3337
3360
  not found in the input data.
3338
3361
 
3339
3362
  Explicit JSON `null` is itself a valid fallback (the element is written as
3340
- JSON null); omitting the key means no fallback is applied.
3363
+ JSON null); omitting the key means no fallback is applied — except on database
3364
+ and csv / xlsx file imports, where the save stores an omitted key as `null` on an
3365
+ entry without an `extract_not_empty` / `fail_record_when_empty` conditional, as it
3366
+ does on leaf rows.
3341
3367
  examples:
3342
3368
  - N/A
3343
3369
  - '0'
@@ -4007,28 +4033,51 @@ components:
4007
4033
 
4008
4034
  Explicit JSON `null` is itself a valid fallback: the destination field is written as
4009
4035
  JSON null when the extract yields nothing (the Mapper UI's "Use null as default value"
4010
- action). Omitting the key entirely means no fallback — the field is left out of the
4011
- output when the extract is missing or an empty string (the UI's "Do nothing" action),
4012
- while a null source is still written as null unless `conditional.when` is
4013
- `extract_not_empty`. Failing the record instead is `conditional.when:
4014
- fail_record_when_empty`, which excludes a default.
4036
+ action). Outside the database and csv / xlsx file imports described below, omitting the
4037
+ key means no fallback — the field is left out of the output when the extract is missing
4038
+ or an empty string (the UI's "Do nothing" action), while a null source is still written
4039
+ as null unless `conditional.when` is `extract_not_empty`. Failing the record instead is
4040
+ `conditional.when: fail_record_when_empty`, which excludes a default.
4041
+
4042
+ On database imports (rdbms, jdbc) and csv / xlsx file imports (such as ftp, or an HTTP
4043
+ import with a file-provider assistant or `http.type: file`; an HTTP import that sends
4044
+ records is not one), the save stores an omitted key as `null` on every row that has no
4045
+ `hardCodedValue`, no `lookupName` and no `extract_not_empty` / `fail_record_when_empty`
4046
+ conditional — the same default the Mapper UI preselects for those imports. The rule runs
4047
+ when the document is saved, on create and on update, so "Do nothing" on those imports is
4048
+ `conditional.when: extract_not_empty`, not an omitted key.
4015
4049
  x-celigo-ai-guidance:
4016
4050
  - |-
4017
4051
  `"default": null` and `"default": ""` are distinct saved values, not
4018
4052
  absent keys: null renders the destination field as JSON null and the
4019
4053
  empty string renders it as `""` when the extract yields nothing.
4020
- Preserve them verbatim when editing or migrating a mapping — dropping
4021
- the key changes runtime behavior from "use null/empty string as
4022
- default value" to "do nothing" (a missing or `""` source is left out
4023
- of the output, while a null source is written as null unless
4024
- `conditional.when` is `extract_not_empty`).
4054
+ Preserve them verbatim when editing or migrating a mapping. Outside
4055
+ the database / csv-xlsx file import set, dropping the key changes
4056
+ runtime behavior from "use null/empty string as default value" to "do
4057
+ nothing" (a missing or `""` source is left out of the output, while a
4058
+ null source is written as null unless `conditional.when` is
4059
+ `extract_not_empty`); inside that set the save writes a dropped key
4060
+ back as `"default": null`, so dropping a stored null changes nothing
4061
+ while dropping a stored `""` or any other explicit value replaces it
4062
+ with null.
4025
4063
  - |-
4026
4064
  The four "Action to take if source field has no value" choices map to:
4027
- do nothing → no `default` key (add `conditional.when:
4028
- extract_not_empty` to leave a null source out too; without it a null
4029
- source is written as null); use null → `"default": null`; use empty string or
4030
- a custom value → `"default": "<value>"`; cause the record to fail →
4065
+ do nothing → `conditional.when: extract_not_empty` with no `default` key
4066
+ (on imports outside the database / csv-xlsx file set the key may simply
4067
+ be omitted, but a null source is then still written as null); use null →
4068
+ `"default": null`; use empty string or a custom value →
4069
+ `"default": "<value>"`; cause the record to fail →
4031
4070
  `conditional.when: fail_record_when_empty` with no `default` key.
4071
+ - |-
4072
+ On a database or csv / xlsx file import, a row sent with neither a
4073
+ `default` nor one of those conditionals reads back with `"default": null`
4074
+ after the save — create or update — so the destination is written as
4075
+ null; never express "Do nothing" by omission there. A stored
4076
+ `"default": null` on such a row is this save-time default, not a user's
4077
+ choice; keep it when re-sending the row. `"default": null` sent together
4078
+ with `fail_record_when_empty` is rejected with 422 `unsupported_mapping`
4079
+ `"default" and conditional.when "fail_record_when_empty" cannot be
4080
+ present in mapping simultaneously.`
4032
4081
  examples:
4033
4082
  - N/A
4034
4083
  - '0'
@@ -4435,7 +4484,10 @@ components:
4435
4484
  not found in the input data.
4436
4485
 
4437
4486
  Explicit JSON `null` is itself a valid fallback (the element is written as
4438
- JSON null); omitting the key means no fallback is applied.
4487
+ JSON null); omitting the key means no fallback is applied — except on database
4488
+ and csv / xlsx file imports, where the save stores an omitted key as `null` on an
4489
+ entry without an `extract_not_empty` / `fail_record_when_empty` conditional, as it
4490
+ does on leaf rows.
4439
4491
  examples:
4440
4492
  - N/A
4441
4493
  - '0'
@@ -805,28 +805,51 @@ components:
805
805
 
806
806
  Explicit JSON `null` is itself a valid fallback: the destination field is written as
807
807
  JSON null when the extract yields nothing (the Mapper UI's "Use null as default value"
808
- action). Omitting the key entirely means no fallback — the field is left out of the
809
- output when the extract is missing or an empty string (the UI's "Do nothing" action),
810
- while a null source is still written as null unless `conditional.when` is
811
- `extract_not_empty`. Failing the record instead is `conditional.when:
812
- fail_record_when_empty`, which excludes a default.
808
+ action). Outside the database and csv / xlsx file imports described below, omitting the
809
+ key means no fallback — the field is left out of the output when the extract is missing
810
+ or an empty string (the UI's "Do nothing" action), while a null source is still written
811
+ as null unless `conditional.when` is `extract_not_empty`. Failing the record instead is
812
+ `conditional.when: fail_record_when_empty`, which excludes a default.
813
+
814
+ On database imports (rdbms, jdbc) and csv / xlsx file imports (such as ftp, or an HTTP
815
+ import with a file-provider assistant or `http.type: file`; an HTTP import that sends
816
+ records is not one), the save stores an omitted key as `null` on every row that has no
817
+ `hardCodedValue`, no `lookupName` and no `extract_not_empty` / `fail_record_when_empty`
818
+ conditional — the same default the Mapper UI preselects for those imports. The rule runs
819
+ when the document is saved, on create and on update, so "Do nothing" on those imports is
820
+ `conditional.when: extract_not_empty`, not an omitted key.
813
821
  x-celigo-ai-guidance:
814
822
  - |-
815
823
  `"default": null` and `"default": ""` are distinct saved values, not
816
824
  absent keys: null renders the destination field as JSON null and the
817
825
  empty string renders it as `""` when the extract yields nothing.
818
- Preserve them verbatim when editing or migrating a mapping — dropping
819
- the key changes runtime behavior from "use null/empty string as
820
- default value" to "do nothing" (a missing or `""` source is left out
821
- of the output, while a null source is written as null unless
822
- `conditional.when` is `extract_not_empty`).
826
+ Preserve them verbatim when editing or migrating a mapping. Outside
827
+ the database / csv-xlsx file import set, dropping the key changes
828
+ runtime behavior from "use null/empty string as default value" to "do
829
+ nothing" (a missing or `""` source is left out of the output, while a
830
+ null source is written as null unless `conditional.when` is
831
+ `extract_not_empty`); inside that set the save writes a dropped key
832
+ back as `"default": null`, so dropping a stored null changes nothing
833
+ while dropping a stored `""` or any other explicit value replaces it
834
+ with null.
823
835
  - |-
824
836
  The four "Action to take if source field has no value" choices map to:
825
- do nothing → no `default` key (add `conditional.when:
826
- extract_not_empty` to leave a null source out too; without it a null
827
- source is written as null); use null → `"default": null`; use empty string or
828
- a custom value → `"default": "<value>"`; cause the record to fail →
837
+ do nothing → `conditional.when: extract_not_empty` with no `default` key
838
+ (on imports outside the database / csv-xlsx file set the key may simply
839
+ be omitted, but a null source is then still written as null); use null →
840
+ `"default": null`; use empty string or a custom value →
841
+ `"default": "<value>"`; cause the record to fail →
829
842
  `conditional.when: fail_record_when_empty` with no `default` key.
843
+ - |-
844
+ On a database or csv / xlsx file import, a row sent with neither a
845
+ `default` nor one of those conditionals reads back with `"default": null`
846
+ after the save — create or update — so the destination is written as
847
+ null; never express "Do nothing" by omission there. A stored
848
+ `"default": null` on such a row is this save-time default, not a user's
849
+ choice; keep it when re-sending the row. `"default": null` sent together
850
+ with `fail_record_when_empty` is rejected with 422 `unsupported_mapping`
851
+ `"default" and conditional.when "fail_record_when_empty" cannot be
852
+ present in mapping simultaneously.`
830
853
  examples:
831
854
  - N/A
832
855
  - '0'
@@ -1233,7 +1256,10 @@ components:
1233
1256
  not found in the input data.
1234
1257
 
1235
1258
  Explicit JSON `null` is itself a valid fallback (the element is written as
1236
- JSON null); omitting the key means no fallback is applied.
1259
+ JSON null); omitting the key means no fallback is applied — except on database
1260
+ and csv / xlsx file imports, where the save stores an omitted key as `null` on an
1261
+ entry without an `extract_not_empty` / `fail_record_when_empty` conditional, as it
1262
+ does on leaf rows.
1237
1263
  examples:
1238
1264
  - N/A
1239
1265
  - '0'
@@ -1903,28 +1929,51 @@ components:
1903
1929
 
1904
1930
  Explicit JSON `null` is itself a valid fallback: the destination field is written as
1905
1931
  JSON null when the extract yields nothing (the Mapper UI's "Use null as default value"
1906
- action). Omitting the key entirely means no fallback — the field is left out of the
1907
- output when the extract is missing or an empty string (the UI's "Do nothing" action),
1908
- while a null source is still written as null unless `conditional.when` is
1909
- `extract_not_empty`. Failing the record instead is `conditional.when:
1910
- fail_record_when_empty`, which excludes a default.
1932
+ action). Outside the database and csv / xlsx file imports described below, omitting the
1933
+ key means no fallback — the field is left out of the output when the extract is missing
1934
+ or an empty string (the UI's "Do nothing" action), while a null source is still written
1935
+ as null unless `conditional.when` is `extract_not_empty`. Failing the record instead is
1936
+ `conditional.when: fail_record_when_empty`, which excludes a default.
1937
+
1938
+ On database imports (rdbms, jdbc) and csv / xlsx file imports (such as ftp, or an HTTP
1939
+ import with a file-provider assistant or `http.type: file`; an HTTP import that sends
1940
+ records is not one), the save stores an omitted key as `null` on every row that has no
1941
+ `hardCodedValue`, no `lookupName` and no `extract_not_empty` / `fail_record_when_empty`
1942
+ conditional — the same default the Mapper UI preselects for those imports. The rule runs
1943
+ when the document is saved, on create and on update, so "Do nothing" on those imports is
1944
+ `conditional.when: extract_not_empty`, not an omitted key.
1911
1945
  x-celigo-ai-guidance:
1912
1946
  - |-
1913
1947
  `"default": null` and `"default": ""` are distinct saved values, not
1914
1948
  absent keys: null renders the destination field as JSON null and the
1915
1949
  empty string renders it as `""` when the extract yields nothing.
1916
- Preserve them verbatim when editing or migrating a mapping — dropping
1917
- the key changes runtime behavior from "use null/empty string as
1918
- default value" to "do nothing" (a missing or `""` source is left out
1919
- of the output, while a null source is written as null unless
1920
- `conditional.when` is `extract_not_empty`).
1950
+ Preserve them verbatim when editing or migrating a mapping. Outside
1951
+ the database / csv-xlsx file import set, dropping the key changes
1952
+ runtime behavior from "use null/empty string as default value" to "do
1953
+ nothing" (a missing or `""` source is left out of the output, while a
1954
+ null source is written as null unless `conditional.when` is
1955
+ `extract_not_empty`); inside that set the save writes a dropped key
1956
+ back as `"default": null`, so dropping a stored null changes nothing
1957
+ while dropping a stored `""` or any other explicit value replaces it
1958
+ with null.
1921
1959
  - |-
1922
1960
  The four "Action to take if source field has no value" choices map to:
1923
- do nothing → no `default` key (add `conditional.when:
1924
- extract_not_empty` to leave a null source out too; without it a null
1925
- source is written as null); use null → `"default": null`; use empty string or
1926
- a custom value → `"default": "<value>"`; cause the record to fail →
1961
+ do nothing → `conditional.when: extract_not_empty` with no `default` key
1962
+ (on imports outside the database / csv-xlsx file set the key may simply
1963
+ be omitted, but a null source is then still written as null); use null →
1964
+ `"default": null`; use empty string or a custom value →
1965
+ `"default": "<value>"`; cause the record to fail →
1927
1966
  `conditional.when: fail_record_when_empty` with no `default` key.
1967
+ - |-
1968
+ On a database or csv / xlsx file import, a row sent with neither a
1969
+ `default` nor one of those conditionals reads back with `"default": null`
1970
+ after the save — create or update — so the destination is written as
1971
+ null; never express "Do nothing" by omission there. A stored
1972
+ `"default": null` on such a row is this save-time default, not a user's
1973
+ choice; keep it when re-sending the row. `"default": null` sent together
1974
+ with `fail_record_when_empty` is rejected with 422 `unsupported_mapping`
1975
+ `"default" and conditional.when "fail_record_when_empty" cannot be
1976
+ present in mapping simultaneously.`
1928
1977
  examples:
1929
1978
  - N/A
1930
1979
  - '0'
@@ -2331,7 +2380,10 @@ components:
2331
2380
  not found in the input data.
2332
2381
 
2333
2382
  Explicit JSON `null` is itself a valid fallback (the element is written as
2334
- JSON null); omitting the key means no fallback is applied.
2383
+ JSON null); omitting the key means no fallback is applied — except on database
2384
+ and csv / xlsx file imports, where the save stores an omitted key as `null` on an
2385
+ entry without an `extract_not_empty` / `fail_record_when_empty` conditional, as it
2386
+ does on leaf rows.
2335
2387
  examples:
2336
2388
  - N/A
2337
2389
  - '0'
package/dist/export.yml CHANGED
@@ -12979,28 +12979,51 @@ components:
12979
12979
 
12980
12980
  Explicit JSON `null` is itself a valid fallback: the destination field is written as
12981
12981
  JSON null when the extract yields nothing (the Mapper UI's "Use null as default value"
12982
- action). Omitting the key entirely means no fallback — the field is left out of the
12983
- output when the extract is missing or an empty string (the UI's "Do nothing" action),
12984
- while a null source is still written as null unless `conditional.when` is
12985
- `extract_not_empty`. Failing the record instead is `conditional.when:
12986
- fail_record_when_empty`, which excludes a default.
12982
+ action). Outside the database and csv / xlsx file imports described below, omitting the
12983
+ key means no fallback — the field is left out of the output when the extract is missing
12984
+ or an empty string (the UI's "Do nothing" action), while a null source is still written
12985
+ as null unless `conditional.when` is `extract_not_empty`. Failing the record instead is
12986
+ `conditional.when: fail_record_when_empty`, which excludes a default.
12987
+
12988
+ On database imports (rdbms, jdbc) and csv / xlsx file imports (such as ftp, or an HTTP
12989
+ import with a file-provider assistant or `http.type: file`; an HTTP import that sends
12990
+ records is not one), the save stores an omitted key as `null` on every row that has no
12991
+ `hardCodedValue`, no `lookupName` and no `extract_not_empty` / `fail_record_when_empty`
12992
+ conditional — the same default the Mapper UI preselects for those imports. The rule runs
12993
+ when the document is saved, on create and on update, so "Do nothing" on those imports is
12994
+ `conditional.when: extract_not_empty`, not an omitted key.
12987
12995
  x-celigo-ai-guidance:
12988
12996
  - |-
12989
12997
  `"default": null` and `"default": ""` are distinct saved values, not
12990
12998
  absent keys: null renders the destination field as JSON null and the
12991
12999
  empty string renders it as `""` when the extract yields nothing.
12992
- Preserve them verbatim when editing or migrating a mapping — dropping
12993
- the key changes runtime behavior from "use null/empty string as
12994
- default value" to "do nothing" (a missing or `""` source is left out
12995
- of the output, while a null source is written as null unless
12996
- `conditional.when` is `extract_not_empty`).
13000
+ Preserve them verbatim when editing or migrating a mapping. Outside
13001
+ the database / csv-xlsx file import set, dropping the key changes
13002
+ runtime behavior from "use null/empty string as default value" to "do
13003
+ nothing" (a missing or `""` source is left out of the output, while a
13004
+ null source is written as null unless `conditional.when` is
13005
+ `extract_not_empty`); inside that set the save writes a dropped key
13006
+ back as `"default": null`, so dropping a stored null changes nothing
13007
+ while dropping a stored `""` or any other explicit value replaces it
13008
+ with null.
12997
13009
  - |-
12998
13010
  The four "Action to take if source field has no value" choices map to:
12999
- do nothing → no `default` key (add `conditional.when:
13000
- extract_not_empty` to leave a null source out too; without it a null
13001
- source is written as null); use null → `"default": null`; use empty string or
13002
- a custom value → `"default": "<value>"`; cause the record to fail →
13011
+ do nothing → `conditional.when: extract_not_empty` with no `default` key
13012
+ (on imports outside the database / csv-xlsx file set the key may simply
13013
+ be omitted, but a null source is then still written as null); use null →
13014
+ `"default": null`; use empty string or a custom value →
13015
+ `"default": "<value>"`; cause the record to fail →
13003
13016
  `conditional.when: fail_record_when_empty` with no `default` key.
13017
+ - |-
13018
+ On a database or csv / xlsx file import, a row sent with neither a
13019
+ `default` nor one of those conditionals reads back with `"default": null`
13020
+ after the save — create or update — so the destination is written as
13021
+ null; never express "Do nothing" by omission there. A stored
13022
+ `"default": null` on such a row is this save-time default, not a user's
13023
+ choice; keep it when re-sending the row. `"default": null` sent together
13024
+ with `fail_record_when_empty` is rejected with 422 `unsupported_mapping`
13025
+ `"default" and conditional.when "fail_record_when_empty" cannot be
13026
+ present in mapping simultaneously.`
13004
13027
  examples:
13005
13028
  - N/A
13006
13029
  - '0'
@@ -13407,7 +13430,10 @@ components:
13407
13430
  not found in the input data.
13408
13431
 
13409
13432
  Explicit JSON `null` is itself a valid fallback (the element is written as
13410
- JSON null); omitting the key means no fallback is applied.
13433
+ JSON null); omitting the key means no fallback is applied — except on database
13434
+ and csv / xlsx file imports, where the save stores an omitted key as `null` on an
13435
+ entry without an `extract_not_empty` / `fail_record_when_empty` conditional, as it
13436
+ does on leaf rows.
13411
13437
  examples:
13412
13438
  - N/A
13413
13439
  - '0'
@@ -14077,28 +14103,51 @@ components:
14077
14103
 
14078
14104
  Explicit JSON `null` is itself a valid fallback: the destination field is written as
14079
14105
  JSON null when the extract yields nothing (the Mapper UI's "Use null as default value"
14080
- action). Omitting the key entirely means no fallback — the field is left out of the
14081
- output when the extract is missing or an empty string (the UI's "Do nothing" action),
14082
- while a null source is still written as null unless `conditional.when` is
14083
- `extract_not_empty`. Failing the record instead is `conditional.when:
14084
- fail_record_when_empty`, which excludes a default.
14106
+ action). Outside the database and csv / xlsx file imports described below, omitting the
14107
+ key means no fallback — the field is left out of the output when the extract is missing
14108
+ or an empty string (the UI's "Do nothing" action), while a null source is still written
14109
+ as null unless `conditional.when` is `extract_not_empty`. Failing the record instead is
14110
+ `conditional.when: fail_record_when_empty`, which excludes a default.
14111
+
14112
+ On database imports (rdbms, jdbc) and csv / xlsx file imports (such as ftp, or an HTTP
14113
+ import with a file-provider assistant or `http.type: file`; an HTTP import that sends
14114
+ records is not one), the save stores an omitted key as `null` on every row that has no
14115
+ `hardCodedValue`, no `lookupName` and no `extract_not_empty` / `fail_record_when_empty`
14116
+ conditional — the same default the Mapper UI preselects for those imports. The rule runs
14117
+ when the document is saved, on create and on update, so "Do nothing" on those imports is
14118
+ `conditional.when: extract_not_empty`, not an omitted key.
14085
14119
  x-celigo-ai-guidance:
14086
14120
  - |-
14087
14121
  `"default": null` and `"default": ""` are distinct saved values, not
14088
14122
  absent keys: null renders the destination field as JSON null and the
14089
14123
  empty string renders it as `""` when the extract yields nothing.
14090
- Preserve them verbatim when editing or migrating a mapping — dropping
14091
- the key changes runtime behavior from "use null/empty string as
14092
- default value" to "do nothing" (a missing or `""` source is left out
14093
- of the output, while a null source is written as null unless
14094
- `conditional.when` is `extract_not_empty`).
14124
+ Preserve them verbatim when editing or migrating a mapping. Outside
14125
+ the database / csv-xlsx file import set, dropping the key changes
14126
+ runtime behavior from "use null/empty string as default value" to "do
14127
+ nothing" (a missing or `""` source is left out of the output, while a
14128
+ null source is written as null unless `conditional.when` is
14129
+ `extract_not_empty`); inside that set the save writes a dropped key
14130
+ back as `"default": null`, so dropping a stored null changes nothing
14131
+ while dropping a stored `""` or any other explicit value replaces it
14132
+ with null.
14095
14133
  - |-
14096
14134
  The four "Action to take if source field has no value" choices map to:
14097
- do nothing → no `default` key (add `conditional.when:
14098
- extract_not_empty` to leave a null source out too; without it a null
14099
- source is written as null); use null → `"default": null`; use empty string or
14100
- a custom value → `"default": "<value>"`; cause the record to fail →
14135
+ do nothing → `conditional.when: extract_not_empty` with no `default` key
14136
+ (on imports outside the database / csv-xlsx file set the key may simply
14137
+ be omitted, but a null source is then still written as null); use null →
14138
+ `"default": null`; use empty string or a custom value →
14139
+ `"default": "<value>"`; cause the record to fail →
14101
14140
  `conditional.when: fail_record_when_empty` with no `default` key.
14141
+ - |-
14142
+ On a database or csv / xlsx file import, a row sent with neither a
14143
+ `default` nor one of those conditionals reads back with `"default": null`
14144
+ after the save — create or update — so the destination is written as
14145
+ null; never express "Do nothing" by omission there. A stored
14146
+ `"default": null` on such a row is this save-time default, not a user's
14147
+ choice; keep it when re-sending the row. `"default": null` sent together
14148
+ with `fail_record_when_empty` is rejected with 422 `unsupported_mapping`
14149
+ `"default" and conditional.when "fail_record_when_empty" cannot be
14150
+ present in mapping simultaneously.`
14102
14151
  examples:
14103
14152
  - N/A
14104
14153
  - '0'
@@ -14505,7 +14554,10 @@ components:
14505
14554
  not found in the input data.
14506
14555
 
14507
14556
  Explicit JSON `null` is itself a valid fallback (the element is written as
14508
- JSON null); omitting the key means no fallback is applied.
14557
+ JSON null); omitting the key means no fallback is applied — except on database
14558
+ and csv / xlsx file imports, where the save stores an omitted key as `null` on an
14559
+ entry without an `extract_not_empty` / `fail_record_when_empty` conditional, as it
14560
+ does on leaf rows.
14509
14561
  examples:
14510
14562
  - N/A
14511
14563
  - '0'
package/dist/import.yml CHANGED
@@ -13177,28 +13177,51 @@ components:
13177
13177
 
13178
13178
  Explicit JSON `null` is itself a valid fallback: the destination field is written as
13179
13179
  JSON null when the extract yields nothing (the Mapper UI's "Use null as default value"
13180
- action). Omitting the key entirely means no fallback — the field is left out of the
13181
- output when the extract is missing or an empty string (the UI's "Do nothing" action),
13182
- while a null source is still written as null unless `conditional.when` is
13183
- `extract_not_empty`. Failing the record instead is `conditional.when:
13184
- fail_record_when_empty`, which excludes a default.
13180
+ action). Outside the database and csv / xlsx file imports described below, omitting the
13181
+ key means no fallback — the field is left out of the output when the extract is missing
13182
+ or an empty string (the UI's "Do nothing" action), while a null source is still written
13183
+ as null unless `conditional.when` is `extract_not_empty`. Failing the record instead is
13184
+ `conditional.when: fail_record_when_empty`, which excludes a default.
13185
+
13186
+ On database imports (rdbms, jdbc) and csv / xlsx file imports (such as ftp, or an HTTP
13187
+ import with a file-provider assistant or `http.type: file`; an HTTP import that sends
13188
+ records is not one), the save stores an omitted key as `null` on every row that has no
13189
+ `hardCodedValue`, no `lookupName` and no `extract_not_empty` / `fail_record_when_empty`
13190
+ conditional — the same default the Mapper UI preselects for those imports. The rule runs
13191
+ when the document is saved, on create and on update, so "Do nothing" on those imports is
13192
+ `conditional.when: extract_not_empty`, not an omitted key.
13185
13193
  x-celigo-ai-guidance:
13186
13194
  - |-
13187
13195
  `"default": null` and `"default": ""` are distinct saved values, not
13188
13196
  absent keys: null renders the destination field as JSON null and the
13189
13197
  empty string renders it as `""` when the extract yields nothing.
13190
- Preserve them verbatim when editing or migrating a mapping — dropping
13191
- the key changes runtime behavior from "use null/empty string as
13192
- default value" to "do nothing" (a missing or `""` source is left out
13193
- of the output, while a null source is written as null unless
13194
- `conditional.when` is `extract_not_empty`).
13198
+ Preserve them verbatim when editing or migrating a mapping. Outside
13199
+ the database / csv-xlsx file import set, dropping the key changes
13200
+ runtime behavior from "use null/empty string as default value" to "do
13201
+ nothing" (a missing or `""` source is left out of the output, while a
13202
+ null source is written as null unless `conditional.when` is
13203
+ `extract_not_empty`); inside that set the save writes a dropped key
13204
+ back as `"default": null`, so dropping a stored null changes nothing
13205
+ while dropping a stored `""` or any other explicit value replaces it
13206
+ with null.
13195
13207
  - |-
13196
13208
  The four "Action to take if source field has no value" choices map to:
13197
- do nothing → no `default` key (add `conditional.when:
13198
- extract_not_empty` to leave a null source out too; without it a null
13199
- source is written as null); use null → `"default": null`; use empty string or
13200
- a custom value → `"default": "<value>"`; cause the record to fail →
13209
+ do nothing → `conditional.when: extract_not_empty` with no `default` key
13210
+ (on imports outside the database / csv-xlsx file set the key may simply
13211
+ be omitted, but a null source is then still written as null); use null →
13212
+ `"default": null`; use empty string or a custom value →
13213
+ `"default": "<value>"`; cause the record to fail →
13201
13214
  `conditional.when: fail_record_when_empty` with no `default` key.
13215
+ - |-
13216
+ On a database or csv / xlsx file import, a row sent with neither a
13217
+ `default` nor one of those conditionals reads back with `"default": null`
13218
+ after the save — create or update — so the destination is written as
13219
+ null; never express "Do nothing" by omission there. A stored
13220
+ `"default": null` on such a row is this save-time default, not a user's
13221
+ choice; keep it when re-sending the row. `"default": null` sent together
13222
+ with `fail_record_when_empty` is rejected with 422 `unsupported_mapping`
13223
+ `"default" and conditional.when "fail_record_when_empty" cannot be
13224
+ present in mapping simultaneously.`
13202
13225
  examples:
13203
13226
  - N/A
13204
13227
  - '0'
@@ -13605,7 +13628,10 @@ components:
13605
13628
  not found in the input data.
13606
13629
 
13607
13630
  Explicit JSON `null` is itself a valid fallback (the element is written as
13608
- JSON null); omitting the key means no fallback is applied.
13631
+ JSON null); omitting the key means no fallback is applied — except on database
13632
+ and csv / xlsx file imports, where the save stores an omitted key as `null` on an
13633
+ entry without an `extract_not_empty` / `fail_record_when_empty` conditional, as it
13634
+ does on leaf rows.
13609
13635
  examples:
13610
13636
  - N/A
13611
13637
  - '0'
@@ -14275,28 +14301,51 @@ components:
14275
14301
 
14276
14302
  Explicit JSON `null` is itself a valid fallback: the destination field is written as
14277
14303
  JSON null when the extract yields nothing (the Mapper UI's "Use null as default value"
14278
- action). Omitting the key entirely means no fallback — the field is left out of the
14279
- output when the extract is missing or an empty string (the UI's "Do nothing" action),
14280
- while a null source is still written as null unless `conditional.when` is
14281
- `extract_not_empty`. Failing the record instead is `conditional.when:
14282
- fail_record_when_empty`, which excludes a default.
14304
+ action). Outside the database and csv / xlsx file imports described below, omitting the
14305
+ key means no fallback — the field is left out of the output when the extract is missing
14306
+ or an empty string (the UI's "Do nothing" action), while a null source is still written
14307
+ as null unless `conditional.when` is `extract_not_empty`. Failing the record instead is
14308
+ `conditional.when: fail_record_when_empty`, which excludes a default.
14309
+
14310
+ On database imports (rdbms, jdbc) and csv / xlsx file imports (such as ftp, or an HTTP
14311
+ import with a file-provider assistant or `http.type: file`; an HTTP import that sends
14312
+ records is not one), the save stores an omitted key as `null` on every row that has no
14313
+ `hardCodedValue`, no `lookupName` and no `extract_not_empty` / `fail_record_when_empty`
14314
+ conditional — the same default the Mapper UI preselects for those imports. The rule runs
14315
+ when the document is saved, on create and on update, so "Do nothing" on those imports is
14316
+ `conditional.when: extract_not_empty`, not an omitted key.
14283
14317
  x-celigo-ai-guidance:
14284
14318
  - |-
14285
14319
  `"default": null` and `"default": ""` are distinct saved values, not
14286
14320
  absent keys: null renders the destination field as JSON null and the
14287
14321
  empty string renders it as `""` when the extract yields nothing.
14288
- Preserve them verbatim when editing or migrating a mapping — dropping
14289
- the key changes runtime behavior from "use null/empty string as
14290
- default value" to "do nothing" (a missing or `""` source is left out
14291
- of the output, while a null source is written as null unless
14292
- `conditional.when` is `extract_not_empty`).
14322
+ Preserve them verbatim when editing or migrating a mapping. Outside
14323
+ the database / csv-xlsx file import set, dropping the key changes
14324
+ runtime behavior from "use null/empty string as default value" to "do
14325
+ nothing" (a missing or `""` source is left out of the output, while a
14326
+ null source is written as null unless `conditional.when` is
14327
+ `extract_not_empty`); inside that set the save writes a dropped key
14328
+ back as `"default": null`, so dropping a stored null changes nothing
14329
+ while dropping a stored `""` or any other explicit value replaces it
14330
+ with null.
14293
14331
  - |-
14294
14332
  The four "Action to take if source field has no value" choices map to:
14295
- do nothing → no `default` key (add `conditional.when:
14296
- extract_not_empty` to leave a null source out too; without it a null
14297
- source is written as null); use null → `"default": null`; use empty string or
14298
- a custom value → `"default": "<value>"`; cause the record to fail →
14333
+ do nothing → `conditional.when: extract_not_empty` with no `default` key
14334
+ (on imports outside the database / csv-xlsx file set the key may simply
14335
+ be omitted, but a null source is then still written as null); use null →
14336
+ `"default": null`; use empty string or a custom value →
14337
+ `"default": "<value>"`; cause the record to fail →
14299
14338
  `conditional.when: fail_record_when_empty` with no `default` key.
14339
+ - |-
14340
+ On a database or csv / xlsx file import, a row sent with neither a
14341
+ `default` nor one of those conditionals reads back with `"default": null`
14342
+ after the save — create or update — so the destination is written as
14343
+ null; never express "Do nothing" by omission there. A stored
14344
+ `"default": null` on such a row is this save-time default, not a user's
14345
+ choice; keep it when re-sending the row. `"default": null` sent together
14346
+ with `fail_record_when_empty` is rejected with 422 `unsupported_mapping`
14347
+ `"default" and conditional.when "fail_record_when_empty" cannot be
14348
+ present in mapping simultaneously.`
14300
14349
  examples:
14301
14350
  - N/A
14302
14351
  - '0'
@@ -14703,7 +14752,10 @@ components:
14703
14752
  not found in the input data.
14704
14753
 
14705
14754
  Explicit JSON `null` is itself a valid fallback (the element is written as
14706
- JSON null); omitting the key means no fallback is applied.
14755
+ JSON null); omitting the key means no fallback is applied — except on database
14756
+ and csv / xlsx file imports, where the save stores an omitted key as `null` on an
14757
+ entry without an `extract_not_empty` / `fail_record_when_empty` conditional, as it
14758
+ does on leaf rows.
14707
14759
  examples:
14708
14760
  - N/A
14709
14761
  - '0'
package/dist/tool.yml CHANGED
@@ -3849,28 +3849,51 @@ components:
3849
3849
 
3850
3850
  Explicit JSON `null` is itself a valid fallback: the destination field is written as
3851
3851
  JSON null when the extract yields nothing (the Mapper UI's "Use null as default value"
3852
- action). Omitting the key entirely means no fallback — the field is left out of the
3853
- output when the extract is missing or an empty string (the UI's "Do nothing" action),
3854
- while a null source is still written as null unless `conditional.when` is
3855
- `extract_not_empty`. Failing the record instead is `conditional.when:
3856
- fail_record_when_empty`, which excludes a default.
3852
+ action). Outside the database and csv / xlsx file imports described below, omitting the
3853
+ key means no fallback — the field is left out of the output when the extract is missing
3854
+ or an empty string (the UI's "Do nothing" action), while a null source is still written
3855
+ as null unless `conditional.when` is `extract_not_empty`. Failing the record instead is
3856
+ `conditional.when: fail_record_when_empty`, which excludes a default.
3857
+
3858
+ On database imports (rdbms, jdbc) and csv / xlsx file imports (such as ftp, or an HTTP
3859
+ import with a file-provider assistant or `http.type: file`; an HTTP import that sends
3860
+ records is not one), the save stores an omitted key as `null` on every row that has no
3861
+ `hardCodedValue`, no `lookupName` and no `extract_not_empty` / `fail_record_when_empty`
3862
+ conditional — the same default the Mapper UI preselects for those imports. The rule runs
3863
+ when the document is saved, on create and on update, so "Do nothing" on those imports is
3864
+ `conditional.when: extract_not_empty`, not an omitted key.
3857
3865
  x-celigo-ai-guidance:
3858
3866
  - |-
3859
3867
  `"default": null` and `"default": ""` are distinct saved values, not
3860
3868
  absent keys: null renders the destination field as JSON null and the
3861
3869
  empty string renders it as `""` when the extract yields nothing.
3862
- Preserve them verbatim when editing or migrating a mapping — dropping
3863
- the key changes runtime behavior from "use null/empty string as
3864
- default value" to "do nothing" (a missing or `""` source is left out
3865
- of the output, while a null source is written as null unless
3866
- `conditional.when` is `extract_not_empty`).
3870
+ Preserve them verbatim when editing or migrating a mapping. Outside
3871
+ the database / csv-xlsx file import set, dropping the key changes
3872
+ runtime behavior from "use null/empty string as default value" to "do
3873
+ nothing" (a missing or `""` source is left out of the output, while a
3874
+ null source is written as null unless `conditional.when` is
3875
+ `extract_not_empty`); inside that set the save writes a dropped key
3876
+ back as `"default": null`, so dropping a stored null changes nothing
3877
+ while dropping a stored `""` or any other explicit value replaces it
3878
+ with null.
3867
3879
  - |-
3868
3880
  The four "Action to take if source field has no value" choices map to:
3869
- do nothing → no `default` key (add `conditional.when:
3870
- extract_not_empty` to leave a null source out too; without it a null
3871
- source is written as null); use null → `"default": null`; use empty string or
3872
- a custom value → `"default": "<value>"`; cause the record to fail →
3881
+ do nothing → `conditional.when: extract_not_empty` with no `default` key
3882
+ (on imports outside the database / csv-xlsx file set the key may simply
3883
+ be omitted, but a null source is then still written as null); use null →
3884
+ `"default": null`; use empty string or a custom value →
3885
+ `"default": "<value>"`; cause the record to fail →
3873
3886
  `conditional.when: fail_record_when_empty` with no `default` key.
3887
+ - |-
3888
+ On a database or csv / xlsx file import, a row sent with neither a
3889
+ `default` nor one of those conditionals reads back with `"default": null`
3890
+ after the save — create or update — so the destination is written as
3891
+ null; never express "Do nothing" by omission there. A stored
3892
+ `"default": null` on such a row is this save-time default, not a user's
3893
+ choice; keep it when re-sending the row. `"default": null` sent together
3894
+ with `fail_record_when_empty` is rejected with 422 `unsupported_mapping`
3895
+ `"default" and conditional.when "fail_record_when_empty" cannot be
3896
+ present in mapping simultaneously.`
3874
3897
  examples:
3875
3898
  - N/A
3876
3899
  - '0'
@@ -4277,7 +4300,10 @@ components:
4277
4300
  not found in the input data.
4278
4301
 
4279
4302
  Explicit JSON `null` is itself a valid fallback (the element is written as
4280
- JSON null); omitting the key means no fallback is applied.
4303
+ JSON null); omitting the key means no fallback is applied — except on database
4304
+ and csv / xlsx file imports, where the save stores an omitted key as `null` on an
4305
+ entry without an `extract_not_empty` / `fail_record_when_empty` conditional, as it
4306
+ does on leaf rows.
4281
4307
  examples:
4282
4308
  - N/A
4283
4309
  - '0'
@@ -4947,28 +4973,51 @@ components:
4947
4973
 
4948
4974
  Explicit JSON `null` is itself a valid fallback: the destination field is written as
4949
4975
  JSON null when the extract yields nothing (the Mapper UI's "Use null as default value"
4950
- action). Omitting the key entirely means no fallback — the field is left out of the
4951
- output when the extract is missing or an empty string (the UI's "Do nothing" action),
4952
- while a null source is still written as null unless `conditional.when` is
4953
- `extract_not_empty`. Failing the record instead is `conditional.when:
4954
- fail_record_when_empty`, which excludes a default.
4976
+ action). Outside the database and csv / xlsx file imports described below, omitting the
4977
+ key means no fallback — the field is left out of the output when the extract is missing
4978
+ or an empty string (the UI's "Do nothing" action), while a null source is still written
4979
+ as null unless `conditional.when` is `extract_not_empty`. Failing the record instead is
4980
+ `conditional.when: fail_record_when_empty`, which excludes a default.
4981
+
4982
+ On database imports (rdbms, jdbc) and csv / xlsx file imports (such as ftp, or an HTTP
4983
+ import with a file-provider assistant or `http.type: file`; an HTTP import that sends
4984
+ records is not one), the save stores an omitted key as `null` on every row that has no
4985
+ `hardCodedValue`, no `lookupName` and no `extract_not_empty` / `fail_record_when_empty`
4986
+ conditional — the same default the Mapper UI preselects for those imports. The rule runs
4987
+ when the document is saved, on create and on update, so "Do nothing" on those imports is
4988
+ `conditional.when: extract_not_empty`, not an omitted key.
4955
4989
  x-celigo-ai-guidance:
4956
4990
  - |-
4957
4991
  `"default": null` and `"default": ""` are distinct saved values, not
4958
4992
  absent keys: null renders the destination field as JSON null and the
4959
4993
  empty string renders it as `""` when the extract yields nothing.
4960
- Preserve them verbatim when editing or migrating a mapping — dropping
4961
- the key changes runtime behavior from "use null/empty string as
4962
- default value" to "do nothing" (a missing or `""` source is left out
4963
- of the output, while a null source is written as null unless
4964
- `conditional.when` is `extract_not_empty`).
4994
+ Preserve them verbatim when editing or migrating a mapping. Outside
4995
+ the database / csv-xlsx file import set, dropping the key changes
4996
+ runtime behavior from "use null/empty string as default value" to "do
4997
+ nothing" (a missing or `""` source is left out of the output, while a
4998
+ null source is written as null unless `conditional.when` is
4999
+ `extract_not_empty`); inside that set the save writes a dropped key
5000
+ back as `"default": null`, so dropping a stored null changes nothing
5001
+ while dropping a stored `""` or any other explicit value replaces it
5002
+ with null.
4965
5003
  - |-
4966
5004
  The four "Action to take if source field has no value" choices map to:
4967
- do nothing → no `default` key (add `conditional.when:
4968
- extract_not_empty` to leave a null source out too; without it a null
4969
- source is written as null); use null → `"default": null`; use empty string or
4970
- a custom value → `"default": "<value>"`; cause the record to fail →
5005
+ do nothing → `conditional.when: extract_not_empty` with no `default` key
5006
+ (on imports outside the database / csv-xlsx file set the key may simply
5007
+ be omitted, but a null source is then still written as null); use null →
5008
+ `"default": null`; use empty string or a custom value →
5009
+ `"default": "<value>"`; cause the record to fail →
4971
5010
  `conditional.when: fail_record_when_empty` with no `default` key.
5011
+ - |-
5012
+ On a database or csv / xlsx file import, a row sent with neither a
5013
+ `default` nor one of those conditionals reads back with `"default": null`
5014
+ after the save — create or update — so the destination is written as
5015
+ null; never express "Do nothing" by omission there. A stored
5016
+ `"default": null` on such a row is this save-time default, not a user's
5017
+ choice; keep it when re-sending the row. `"default": null` sent together
5018
+ with `fail_record_when_empty` is rejected with 422 `unsupported_mapping`
5019
+ `"default" and conditional.when "fail_record_when_empty" cannot be
5020
+ present in mapping simultaneously.`
4972
5021
  examples:
4973
5022
  - N/A
4974
5023
  - '0'
@@ -5375,7 +5424,10 @@ components:
5375
5424
  not found in the input data.
5376
5425
 
5377
5426
  Explicit JSON `null` is itself a valid fallback (the element is written as
5378
- JSON null); omitting the key means no fallback is applied.
5427
+ JSON null); omitting the key means no fallback is applied — except on database
5428
+ and csv / xlsx file imports, where the save stores an omitted key as `null` on an
5429
+ entry without an `extract_not_empty` / `fail_record_when_empty` conditional, as it
5430
+ does on leaf rows.
5379
5431
  examples:
5380
5432
  - N/A
5381
5433
  - '0'
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@celigo/api-specs",
3
- "version": "0.2.198",
3
+ "version": "0.2.199",
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,7 +1,7 @@
1
1
  {
2
2
  "provenance": {
3
3
  "repo": "celigo/integrator-api-specs",
4
- "iasCommit": "a2635897",
4
+ "iasCommit": "3676e0c6",
5
5
  "generatedAt": "2026-10-27"
6
6
  },
7
7
  "roots": {