@celigo/api-specs 0.2.144 → 0.2.146
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/export.yml +5 -0
- package/dist/flow.yml +22 -14
- package/dist/integration.yml +3 -1
- package/dist/job.yml +7 -4
- package/dist/sync.yml +118 -41
- package/dist/tool.yml +5 -0
- package/package.json +1 -1
- package/schemas.json +1 -1
package/dist/export.yml
CHANGED
|
@@ -15728,6 +15728,11 @@ components:
|
|
|
15728
15728
|
`transform` and output `filter` still run on top of them, so downstream steps — and a
|
|
15729
15729
|
lookup's results mapping — see the transformed, filtered records, not the shape stored here.
|
|
15730
15730
|
|
|
15731
|
+
In a flow test run of an HTTP export with a saved mock (live probe, 2026-10-21), the export
|
|
15732
|
+
still listed `request` and `response` stages: `request` held the request the export composes,
|
|
15733
|
+
and `response` held the mock under the source's URL, as did the test run's request log, which
|
|
15734
|
+
recorded it as a 200. Read those stages as the substituted mock, not as a live call.
|
|
15735
|
+
|
|
15731
15736
|
`POST /v1/exports/preview` reads the `mockOutput` in its request body, not the saved one. For
|
|
15732
15737
|
an export the preview supports (an HTTP export, for example), a body that carries it (as an
|
|
15733
15738
|
export read back with GET does) returns that snapshot as a lone `parse` stage without calling
|
package/dist/flow.yml
CHANGED
|
@@ -2859,16 +2859,20 @@ paths:
|
|
|
2859
2859
|
summary: Search jobs within a flow by trace key
|
|
2860
2860
|
description: |-
|
|
2861
2861
|
Searches for flow-run jobs that contain records matching a trace key prefix. Returns up to 1000
|
|
2862
|
-
matching job objects — there is no pagination beyond that limit.
|
|
2862
|
+
matching job objects — there is no pagination beyond that limit. A run matches when it carried
|
|
2863
|
+
a matching record at all, whether the record succeeded, failed or was ignored there (live probe,
|
|
2864
|
+
2026-10-21). Very short prefixes can match nothing — in that probe a two-character prefix of a
|
|
2865
|
+
nine-character key found no run while three characters did — so send the record's whole trace
|
|
2866
|
+
key.
|
|
2863
2867
|
|
|
2864
|
-
The `traceKeyPrefix` query parameter is required; the server returns `400`
|
|
2868
|
+
The `traceKeyPrefix` query parameter is required; the server returns `400` ("traceKeyPrefix is
|
|
2869
|
+
required.") when it is missing.
|
|
2865
2870
|
|
|
2866
|
-
|
|
2867
|
-
|
|
2871
|
+
`status` filters the runs: in the same probe `status=failed` left out a `completed` run that
|
|
2872
|
+
`status=completed` returned, and a value that is not a job status was ignored.
|
|
2868
2873
|
|
|
2869
2874
|
Narrow the window with `createdAt_gte` / `createdAt_lte` when there are many runs for the
|
|
2870
|
-
flow.
|
|
2871
|
-
errored jobs.
|
|
2875
|
+
flow.
|
|
2872
2876
|
parameters:
|
|
2873
2877
|
- name: _id
|
|
2874
2878
|
in: path
|
|
@@ -2881,15 +2885,19 @@ paths:
|
|
|
2881
2885
|
- name: traceKeyPrefix
|
|
2882
2886
|
in: query
|
|
2883
2887
|
required: true
|
|
2884
|
-
description:
|
|
2888
|
+
description: |-
|
|
2889
|
+
Trace key prefix to search for. The server matches job records whose `traceKey` begins with
|
|
2890
|
+
this value, but very short prefixes can match nothing: in a live probe (2026-10-21) a
|
|
2891
|
+
two-character prefix of a nine-character key found no run while three characters did. Send
|
|
2892
|
+
the record's whole trace key.
|
|
2885
2893
|
schema:
|
|
2886
2894
|
type: string
|
|
2887
2895
|
- name: status
|
|
2888
2896
|
in: query
|
|
2889
2897
|
required: false
|
|
2890
2898
|
description: |-
|
|
2891
|
-
Job status filter
|
|
2892
|
-
|
|
2899
|
+
Job status filter: only runs with this status are returned. A value that is not a job
|
|
2900
|
+
status is ignored (live probe, 2026-10-21).
|
|
2893
2901
|
schema:
|
|
2894
2902
|
type: string
|
|
2895
2903
|
- name: createdAt_gte
|
|
@@ -2951,7 +2959,7 @@ paths:
|
|
|
2951
2959
|
value:
|
|
2952
2960
|
errors:
|
|
2953
2961
|
- code: invalid_request
|
|
2954
|
-
message: traceKeyPrefix
|
|
2962
|
+
message: traceKeyPrefix is required.
|
|
2955
2963
|
'401':
|
|
2956
2964
|
$ref: '#/components/responses/401-unauthorized'
|
|
2957
2965
|
'404':
|
|
@@ -3007,7 +3015,7 @@ paths:
|
|
|
3007
3015
|
x-enumDescriptions:
|
|
3008
3016
|
success: The record was processed successfully at this step.
|
|
3009
3017
|
error: The record encountered an error during processing.
|
|
3010
|
-
ignore: The record was skipped by a filter or
|
|
3018
|
+
ignore: The record was skipped at this step, by a filter, a router branch, or an import's ignore-existing or ignore-missing rule.
|
|
3011
3019
|
- name: _expOrImpId
|
|
3012
3020
|
in: query
|
|
3013
3021
|
required: false
|
|
@@ -7842,11 +7850,11 @@ components:
|
|
|
7842
7850
|
enum:
|
|
7843
7851
|
- success
|
|
7844
7852
|
- error
|
|
7845
|
-
-
|
|
7853
|
+
- ignore
|
|
7846
7854
|
x-enumDescriptions:
|
|
7847
7855
|
success: The record was processed successfully at this step.
|
|
7848
7856
|
error: The record encountered an error during processing.
|
|
7849
|
-
|
|
7857
|
+
ignore: The record was skipped at this step, by a filter, a router branch, or an import's ignore-existing or ignore-missing rule.
|
|
7850
7858
|
timeTaken:
|
|
7851
7859
|
type: integer
|
|
7852
7860
|
description: Milliseconds spent processing this record at this step.
|
|
@@ -8114,7 +8122,7 @@ components:
|
|
|
8114
8122
|
x-enumDescriptions:
|
|
8115
8123
|
success: The record was processed successfully at this step.
|
|
8116
8124
|
error: The record encountered an error during processing.
|
|
8117
|
-
ignore: The record was skipped by a filter or
|
|
8125
|
+
ignore: The record was skipped at this step, by a filter, a router branch, or an import's ignore-existing or ignore-missing rule.
|
|
8118
8126
|
timeTaken:
|
|
8119
8127
|
type: integer
|
|
8120
8128
|
description: Milliseconds spent processing this record at this step.
|
package/dist/integration.yml
CHANGED
|
@@ -4280,7 +4280,9 @@ components:
|
|
|
4280
4280
|
When true, the integration is a container for Celigo Sync resources — set it on
|
|
4281
4281
|
`POST /v1/integrations` before creating syncs in it (`POST /v1/syncs` into an
|
|
4282
4282
|
integration without it fails with `422 integration_not_for_sync`). Fixed at creation:
|
|
4283
|
-
`PUT /v1/integrations/{_id}` ignores the field in both directions.
|
|
4283
|
+
`PUT /v1/integrations/{_id}` ignores the field in both directions. Keep flows out of
|
|
4284
|
+
it: a flow create isn't refused there. While the integration holds a sync, deleting
|
|
4285
|
+
it fails with 422 "sync <id> must be deleted before you can delete integration <id>".
|
|
4284
4286
|
aliases:
|
|
4285
4287
|
type: array
|
|
4286
4288
|
description: Named aliases that map to specific resources within the integration.
|
package/dist/job.yml
CHANGED
|
@@ -71,10 +71,13 @@ paths:
|
|
|
71
71
|
forward, take the `createdAt` of the last record, subtract 1 ms, and
|
|
72
72
|
pass it as `createdAt_lte`.
|
|
73
73
|
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
74
|
+
In a live probe (2026-10-21) the date filters applied to a `running`
|
|
75
|
+
flow job too: created outside `createdAt_gte` / `createdAt_lte`, it was
|
|
76
|
+
left out of every date-filtered list, whether the query was scoped by
|
|
77
|
+
flow and integration, by integration, or not at all. `queued` and
|
|
78
|
+
`canceling` jobs were not tested; if `queued` jobs are pinned to the
|
|
79
|
+
first page, that page can hold rows the date filters would otherwise
|
|
80
|
+
exclude, so tolerate out-of-range rows when paging.
|
|
78
81
|
parameters:
|
|
79
82
|
- name: _integrationId
|
|
80
83
|
in: query
|
package/dist/sync.yml
CHANGED
|
@@ -153,7 +153,9 @@ paths:
|
|
|
153
153
|
Creates a sync inside an integration. Only `_integrationId` and
|
|
154
154
|
`source._connectionId` are required — new syncs start as disabled drafts, so the
|
|
155
155
|
destination, datasets, and schedule can be configured with later requests. Creating
|
|
156
|
-
a sync also registers its connections for the platform's replication runtime
|
|
156
|
+
a sync also registers its connections for the platform's replication runtime: each
|
|
157
|
+
connection gets `microServices.workerGroup: "DIWorker"` and joins the integration's
|
|
158
|
+
`_registeredConnectionIds`.
|
|
157
159
|
operationId: createSync
|
|
158
160
|
tags:
|
|
159
161
|
- Syncs
|
|
@@ -215,7 +217,8 @@ paths:
|
|
|
215
217
|
_connectionId: 6a2a95909e994395f3c2a4e6
|
|
216
218
|
destination: {}
|
|
217
219
|
driftPolicy:
|
|
218
|
-
dataset:
|
|
220
|
+
dataset:
|
|
221
|
+
added: ignore
|
|
219
222
|
element: {}
|
|
220
223
|
'400':
|
|
221
224
|
description: |-
|
|
@@ -328,12 +331,14 @@ paths:
|
|
|
328
331
|
summary: Update a sync
|
|
329
332
|
description: |-
|
|
330
333
|
Replaces a sync's configuration. Send the complete desired state: omitted optional
|
|
331
|
-
fields (`schedule`, `timezone`, destination details, `driftPolicy`
|
|
332
|
-
preserved. `_integrationId` cannot be sent — the integration
|
|
334
|
+
fields (`schedule`, `timezone`, destination details, the `driftPolicy.element`
|
|
335
|
+
settings) are cleared, not preserved. `_integrationId` cannot be sent — the integration
|
|
336
|
+
is fixed at creation.
|
|
333
337
|
|
|
334
|
-
Set `disabled: false` to enable the sync once its source, destination,
|
|
338
|
+
Set `disabled: false` to enable the sync once its source, a complete destination, and
|
|
335
339
|
`historicDateTime` are configured; enabling an incomplete sync fails with
|
|
336
|
-
`422 sync_not_enabled`.
|
|
340
|
+
`422 sync_not_enabled`. Always send `disabled`: a PUT that omits it enables a sync
|
|
341
|
+
whose source, destination and `historicDateTime` are set.
|
|
337
342
|
operationId: updateSync
|
|
338
343
|
tags:
|
|
339
344
|
- Syncs
|
|
@@ -356,9 +361,10 @@ paths:
|
|
|
356
361
|
$ref: '#/components/schemas/Request'
|
|
357
362
|
examples:
|
|
358
363
|
configure:
|
|
359
|
-
summary: Name the sync and set its destination
|
|
364
|
+
summary: Name the sync and set its destination, keeping it disabled
|
|
360
365
|
value:
|
|
361
366
|
name: Salesforce Demo Sync
|
|
367
|
+
disabled: true
|
|
362
368
|
schedule: '? 0 */6 * * *'
|
|
363
369
|
timezone: America/New_York
|
|
364
370
|
historicDateTime: '2022-07-04T18:30:00.000Z'
|
|
@@ -443,13 +449,19 @@ paths:
|
|
|
443
449
|
sync configuration (`invalid_destination_sync_config`), two enabled
|
|
444
450
|
datasets resolve to the same destination table
|
|
445
451
|
(`conflicting_table_name`), a field exceeds its size limit
|
|
446
|
-
(`size_limit_exceeded`),
|
|
447
|
-
(`drift_policy_invalid_setup`)
|
|
452
|
+
(`size_limit_exceeded`), the drift policy is inconsistent
|
|
453
|
+
(`drift_policy_invalid_setup`), or the destination's application differs from
|
|
454
|
+
the integration's other syncs or from the sync's saved destination.
|
|
448
455
|
content:
|
|
449
456
|
application/json:
|
|
450
457
|
schema:
|
|
451
458
|
$ref: '#/components/schemas/Error'
|
|
452
459
|
examples:
|
|
460
|
+
mixed_destination_types:
|
|
461
|
+
summary: Another destination application in the same integration
|
|
462
|
+
value:
|
|
463
|
+
errors:
|
|
464
|
+
- message: The destination type for all the syncs under an integration must be same.
|
|
453
465
|
not_ready_to_enable:
|
|
454
466
|
summary: Enabling an incomplete sync
|
|
455
467
|
value:
|
|
@@ -464,6 +476,8 @@ paths:
|
|
|
464
476
|
Deletes a sync and tears down its replication resources, including its datasets.
|
|
465
477
|
The sync must be disabled first — deleting an enabled sync fails with
|
|
466
478
|
`400 sync_delete_not_allowed`. Syncs are not recoverable through the recycle bin.
|
|
479
|
+
The sync's job records stay until their `purgeAt`, and while they exist the deleted
|
|
480
|
+
integration that held the sync can't be purged from the recycle bin.
|
|
467
481
|
operationId: deleteSync
|
|
468
482
|
tags:
|
|
469
483
|
- Syncs
|
|
@@ -710,9 +724,11 @@ paths:
|
|
|
710
724
|
description: |-
|
|
711
725
|
Creates and updates a sync's datasets in one batch. Each array item either creates
|
|
712
726
|
a dataset (identified by `externalId`) or updates one (identified by `_id`); a
|
|
713
|
-
single request can mix both.
|
|
714
|
-
|
|
715
|
-
|
|
727
|
+
single request can mix both. An update replaces the dataset's `name`, `tableName` and
|
|
728
|
+
`exportProperties` with what the item carries, so send each item whole. One failing
|
|
729
|
+
item rejects the whole batch, valid items included, and datasets the batch doesn't
|
|
730
|
+
name are left unchanged. The response body is empty — read back the saved datasets
|
|
731
|
+
with `GET /v1/syncs/{_syncId}/datasets`.
|
|
716
732
|
operationId: upsertDatasetsForSync
|
|
717
733
|
tags:
|
|
718
734
|
- Syncs
|
|
@@ -761,12 +777,14 @@ paths:
|
|
|
761
777
|
exportProperties:
|
|
762
778
|
type: delta
|
|
763
779
|
update:
|
|
764
|
-
summary: Switch an existing dataset to append mode
|
|
780
|
+
summary: Switch an existing dataset to append mode, sending the whole item
|
|
765
781
|
value:
|
|
766
782
|
- _id: 6a559b547885d8f93921c2ba
|
|
767
783
|
name: Account
|
|
768
784
|
enable: true
|
|
769
785
|
ingestionMode: append
|
|
786
|
+
exportProperties:
|
|
787
|
+
type: delta
|
|
770
788
|
dataElements:
|
|
771
789
|
- name: Id
|
|
772
790
|
enable: true
|
|
@@ -801,7 +819,8 @@ paths:
|
|
|
801
819
|
description: |-
|
|
802
820
|
Validation failed. An enabled dataset is missing `ingestionMode`
|
|
803
821
|
(`ingestion_mode_required_for_enabled_datasets`), a `merge` dataset has no
|
|
804
|
-
primary key, a `tableName` is already taken,
|
|
822
|
+
primary key, a `tableName` is already taken (or, for an enabled dataset, matches
|
|
823
|
+
another dataset's table name in another letter case), two source columns sanitize to
|
|
805
824
|
the same destination column name (`duplicate_sanitized_column_names` — rename
|
|
806
825
|
or disable the conflicting source columns), or a data-element combination is
|
|
807
826
|
invalid (e.g. `transformMode` without children, or `isPrimaryKey` with `mask`).
|
|
@@ -1043,7 +1062,7 @@ paths:
|
|
|
1043
1062
|
value:
|
|
1044
1063
|
errors:
|
|
1045
1064
|
- code: sync_job_already_queued
|
|
1046
|
-
message:
|
|
1065
|
+
message: Another instance for this sync is already queued or running. Please try again later.
|
|
1047
1066
|
'422':
|
|
1048
1067
|
description: |-
|
|
1049
1068
|
The sync is disabled and cannot be run.
|
|
@@ -1058,7 +1077,7 @@ paths:
|
|
|
1058
1077
|
value:
|
|
1059
1078
|
errors:
|
|
1060
1079
|
- code: invalid_sync
|
|
1061
|
-
message:
|
|
1080
|
+
message: Sync disabled. Please enable your sync and try again.
|
|
1062
1081
|
/v1/syncs/{_syncId}/syncJobs:
|
|
1063
1082
|
get:
|
|
1064
1083
|
x-internal: false
|
|
@@ -1286,7 +1305,7 @@ paths:
|
|
|
1286
1305
|
value:
|
|
1287
1306
|
errors:
|
|
1288
1307
|
- code: sync_jobs_not_found
|
|
1289
|
-
message:
|
|
1308
|
+
message: 'Sync jobs not found for syncId: <syncId>'
|
|
1290
1309
|
'409':
|
|
1291
1310
|
description: |-
|
|
1292
1311
|
Cancellation is already in progress for the remaining jobs.
|
|
@@ -1740,7 +1759,7 @@ paths:
|
|
|
1740
1759
|
value:
|
|
1741
1760
|
errors:
|
|
1742
1761
|
- code: sync_job_invalid_integration_id
|
|
1743
|
-
message: The integration is not
|
|
1762
|
+
message: The integration <integrationId> is not allowed to have syncs
|
|
1744
1763
|
missing:
|
|
1745
1764
|
summary: Integration does not exist
|
|
1746
1765
|
value:
|
|
@@ -2856,7 +2875,10 @@ paths:
|
|
|
2856
2875
|
Returns the full column/field catalog for one table/object on a connection, as read
|
|
2857
2876
|
from the source application. Use it to build the `dataElements` selection before
|
|
2858
2877
|
saving a dataset via `PUT /v1/syncs/{_syncId}/datasets` — each element's `name` here
|
|
2859
|
-
is the `name` to reference there.
|
|
2878
|
+
is the `name` to reference there. Read an export's record structure (`isExport=true`)
|
|
2879
|
+
or an HTTP-connector object's columns through
|
|
2880
|
+
`GET /v1/di/metadata/sync/{_syncId}/connections/{_connectionId}/datasets/{datasetName}/details`
|
|
2881
|
+
once a draft sync exists.
|
|
2860
2882
|
operationId: getConnectionDatasetDetails
|
|
2861
2883
|
tags:
|
|
2862
2884
|
- Syncs
|
|
@@ -3149,6 +3171,11 @@ paths:
|
|
|
3149
3171
|
schema:
|
|
3150
3172
|
$ref: '#/components/schemas/Error'
|
|
3151
3173
|
examples:
|
|
3174
|
+
export_or_connector_object:
|
|
3175
|
+
summary: An export or HTTP-connector object (read it through the sync-scoped route)
|
|
3176
|
+
value:
|
|
3177
|
+
errors:
|
|
3178
|
+
- message: 'A required parameter is missing: _datasetId'
|
|
3152
3179
|
unknown_dataset:
|
|
3153
3180
|
summary: Table does not exist in the source
|
|
3154
3181
|
value:
|
|
@@ -3763,7 +3790,8 @@ components:
|
|
|
3763
3790
|
How the sync reacts when the source schema changes between runs (schema drift).
|
|
3764
3791
|
`dataset` covers whole tables/objects appearing or disappearing; `element` covers
|
|
3765
3792
|
individual columns/fields. Drift the policy automates is logged as `Schema Drift`
|
|
3766
|
-
events, readable via `GET /v1/di/resource/syncs/{_syncId}/events`.
|
|
3793
|
+
events, readable via `GET /v1/di/resource/syncs/{_syncId}/events`. A PUT that omits the
|
|
3794
|
+
`element` settings clears them.
|
|
3767
3795
|
properties:
|
|
3768
3796
|
dataset:
|
|
3769
3797
|
type: object
|
|
@@ -3777,7 +3805,9 @@ components:
|
|
|
3777
3805
|
description: |-
|
|
3778
3806
|
Handling for tables/objects that appear in the source after the sync was
|
|
3779
3807
|
configured. Choose `ignore` to keep the replicated set fixed and add new
|
|
3780
|
-
tables manually.
|
|
3808
|
+
tables manually. A sync created through the API starts at `ignore`, and a PUT
|
|
3809
|
+
that omits `driftPolicy` or sends an empty `dataset` object keeps the stored
|
|
3810
|
+
value, so moving back from `automate` takes an explicit `ignore`.
|
|
3781
3811
|
x-enumDescriptions:
|
|
3782
3812
|
automate: Automatically add newly discovered tables to the sync and start replicating them.
|
|
3783
3813
|
ignore: Leave newly discovered tables out of the sync until a user enables them.
|
|
@@ -3800,8 +3830,8 @@ components:
|
|
|
3800
3830
|
type: object
|
|
3801
3831
|
description: |-
|
|
3802
3832
|
A sync continuously replicates data from a source application into a data warehouse.
|
|
3803
|
-
New syncs start as disabled drafts; a sync can
|
|
3804
|
-
destination, and
|
|
3833
|
+
New syncs start as disabled drafts; a sync can be enabled once its source, a complete
|
|
3834
|
+
destination, and `historicDateTime` are configured.
|
|
3805
3835
|
required:
|
|
3806
3836
|
- _id
|
|
3807
3837
|
- _userId
|
|
@@ -3909,8 +3939,8 @@ components:
|
|
|
3909
3939
|
destination yet. The destination application is the connection's own type
|
|
3910
3940
|
(`rdbms.type` for warehouse connections), so `database` and `schema` are read in that
|
|
3911
3941
|
application's terms — Google BigQuery treats them as the GCP project and the dataset.
|
|
3912
|
-
|
|
3913
|
-
|
|
3942
|
+
A `database` and `schema` pair can back only one sync, even across integrations — reusing one,
|
|
3943
|
+
in any letter case, fails with `422 duplicate_destination_host` — and all syncs in an
|
|
3914
3944
|
integration must target the same destination application type.
|
|
3915
3945
|
properties:
|
|
3916
3946
|
_connectionId:
|
|
@@ -3991,8 +4021,9 @@ components:
|
|
|
3991
4021
|
description: |-
|
|
3992
4022
|
Writable sync fields for `POST /v1/syncs` and `PUT /v1/syncs/{_id}`. Updates are full
|
|
3993
4023
|
replacements: omitted optional fields (`schedule`, `timezone`, `destination` details,
|
|
3994
|
-
`driftPolicy`) are cleared, not preserved, so send the complete
|
|
3995
|
-
on every PUT.
|
|
4024
|
+
the `driftPolicy.element` settings) are cleared, not preserved, so send the complete
|
|
4025
|
+
desired configuration on every PUT. A PUT that omits `disabled` returns the sync enabled
|
|
4026
|
+
(`disabled: false`) when its source, destination and `historicDateTime` are set.
|
|
3996
4027
|
required:
|
|
3997
4028
|
- source
|
|
3998
4029
|
x-celigo-ai-guidance:
|
|
@@ -4015,6 +4046,16 @@ components:
|
|
|
4015
4046
|
integration created without it fails the sync create with 422 integration_not_for_sync
|
|
4016
4047
|
("An integration is suppose to have either flows or syncs but not both"), and PUT
|
|
4017
4048
|
/v1/integrations/{_id} ignores the syncs field, so the only fix is a new integration.
|
|
4049
|
+
- |-
|
|
4050
|
+
Send disabled explicitly on every PUT. A PUT that omits it returns disabled: false once
|
|
4051
|
+
the sync's source, destination and historicDateTime are complete; disabled: true in the
|
|
4052
|
+
body keeps it disabled.
|
|
4053
|
+
- |-
|
|
4054
|
+
Creating a sync, and saving its destination, registers the connections with the
|
|
4055
|
+
replication runtime: the platform sets microServices.workerGroup to "DIWorker" on each
|
|
4056
|
+
connection (a system change in its audit log) and adds them to the integration's
|
|
4057
|
+
_registeredConnectionIds. Deleting the syncs that used a connection cleared its worker
|
|
4058
|
+
group when no other sync used it.
|
|
4018
4059
|
properties:
|
|
4019
4060
|
_integrationId:
|
|
4020
4061
|
type: string
|
|
@@ -4044,11 +4085,12 @@ components:
|
|
|
4044
4085
|
- Replicates core CRM objects into the analytics warehouse.
|
|
4045
4086
|
disabled:
|
|
4046
4087
|
type: boolean
|
|
4047
|
-
default: true
|
|
4048
4088
|
description: |-
|
|
4049
|
-
When true, the sync neither runs on schedule nor accepts on-demand runs.
|
|
4050
|
-
|
|
4051
|
-
|
|
4089
|
+
When true, the sync neither runs on schedule nor accepts on-demand runs. A PUT that
|
|
4090
|
+
omits it returns the sync enabled once its source, destination and `historicDateTime`
|
|
4091
|
+
are set, so send it on every PUT. Set to false once the source, a complete
|
|
4092
|
+
destination, and `historicDateTime` are configured; enabling an incomplete sync fails with
|
|
4093
|
+
`422 sync_not_enabled`. Datasets aren't checked: a sync with none enables.
|
|
4052
4094
|
examples:
|
|
4053
4095
|
- false
|
|
4054
4096
|
schedule:
|
|
@@ -4101,9 +4143,10 @@ components:
|
|
|
4101
4143
|
enabled. The destination application is the connection's own type (`rdbms.type`
|
|
4102
4144
|
for warehouse connections), so `database` and `schema` are read in that
|
|
4103
4145
|
application's terms — Google BigQuery treats them as the GCP project and the
|
|
4104
|
-
dataset.
|
|
4105
|
-
across
|
|
4106
|
-
must target the same destination application type
|
|
4146
|
+
dataset. A `database` and `schema` pair, in any letter case, can back only one sync,
|
|
4147
|
+
even across integrations (`422 duplicate_destination_host`, "Duplicate destination host found"). All syncs in
|
|
4148
|
+
an integration must target the same destination application type, and a sync's
|
|
4149
|
+
destination type can't change once saved.
|
|
4107
4150
|
x-celigo-ai-guidance:
|
|
4108
4151
|
- |-
|
|
4109
4152
|
Send the block complete or not at all. A partial block is rejected in the destination's
|
|
@@ -4115,10 +4158,26 @@ components:
|
|
|
4115
4158
|
`002003` "Database 'UNDEFINED' does not exist" error.
|
|
4116
4159
|
- |-
|
|
4117
4160
|
Saving a complete destination connects to the warehouse to create the schema
|
|
4118
|
-
(dataset) when it is missing.
|
|
4119
|
-
save with the connection's error — 422
|
|
4120
|
-
`big_query_unexpected_error` for BigQuery — and no
|
|
4121
|
-
updated; fix the connection rather than changing
|
|
4161
|
+
(dataset) when it is missing. When the host resolves but the connection fails, or
|
|
4162
|
+
the credentials are unusable, the save fails with the connection's error — 422
|
|
4163
|
+
`invalid_host` for SQL Server, `big_query_unexpected_error` for BigQuery — and no
|
|
4164
|
+
sync document is created or updated; fix the connection rather than changing
|
|
4165
|
+
database or schema names.
|
|
4166
|
+
- |-
|
|
4167
|
+
A destination host that doesn't resolve can leave the save without a response for
|
|
4168
|
+
more than 30 seconds, with nothing saved (seen on SQL Server and Snowflake
|
|
4169
|
+
connections). Read the sync back before sending it again.
|
|
4170
|
+
- |-
|
|
4171
|
+
The duplicate_destination_host check compares the database and schema names
|
|
4172
|
+
without regard to case. It refused a pair already used by another sync even when
|
|
4173
|
+
the host, the destination type, the source connection and the integration all
|
|
4174
|
+
differed, so give each sync a schema of its own.
|
|
4175
|
+
- |-
|
|
4176
|
+
A destination whose application differs from the other syncs' in the same
|
|
4177
|
+
integration fails with 422 "The destination type for all the syncs under an
|
|
4178
|
+
integration must be same.", and changing a saved destination to another application
|
|
4179
|
+
fails with 422 "Destination connection type is not same as the previous destination
|
|
4180
|
+
connection type". Another warehouse type needs a new sync in its own integration.
|
|
4122
4181
|
- |-
|
|
4123
4182
|
Microsoft SQL Server validates `database` and `schema` as identifiers (start with a
|
|
4124
4183
|
letter or underscore; letters, digits, underscore or `$`; at most 128 characters) and
|
|
@@ -4417,7 +4476,9 @@ components:
|
|
|
4417
4476
|
One dataset to create or update in a `PUT /v1/syncs/{_syncId}/datasets` batch.
|
|
4418
4477
|
Send `externalId` (without `_id`) to create, or `_id` (without `externalId`) to
|
|
4419
4478
|
update — providing both or neither fails with `400 dataset_externalId_id_required`.
|
|
4420
|
-
|
|
4479
|
+
An update replaces `name`, `tableName` and `exportProperties` with what the item
|
|
4480
|
+
carries, clearing any it omits; an omitted `ingestionMode` or `dataElements` keeps its
|
|
4481
|
+
saved value. Send each update item whole.
|
|
4421
4482
|
x-celigo-ai-guidance:
|
|
4422
4483
|
- |-
|
|
4423
4484
|
Create items with externalId only; update items with _id only. Sending both on one
|
|
@@ -4431,6 +4492,16 @@ components:
|
|
|
4431
4492
|
- |-
|
|
4432
4493
|
To scaffold a dataset without replicating it yet, send name, externalId, enable: false
|
|
4433
4494
|
and no dataElements — the platform then replicates all columns once enabled.
|
|
4495
|
+
- |-
|
|
4496
|
+
A partial update item such as {_id, enable: false} is accepted and clears the dataset's
|
|
4497
|
+
name and tableName — on an export-backed dataset too, whose create requires tableName.
|
|
4498
|
+
Build each update item from the dataset's read-back, minus externalId and the read-only
|
|
4499
|
+
fields.
|
|
4500
|
+
- |-
|
|
4501
|
+
Selections are not checked against the source at save: an externalId the catalog
|
|
4502
|
+
doesn't list, and dataElements names a catalog table doesn't have (even an enabled
|
|
4503
|
+
merge key), save without an error. Take externalId values from the connection's
|
|
4504
|
+
dataset catalog and column names from its details read.
|
|
4434
4505
|
properties:
|
|
4435
4506
|
_id:
|
|
4436
4507
|
type: string
|
|
@@ -4483,7 +4554,9 @@ components:
|
|
|
4483
4554
|
Destination table name override. Must be unique among the sync's datasets —
|
|
4484
4555
|
duplicates within the batch or with existing datasets fail with `400
|
|
4485
4556
|
duplicate_dataset_table_names` / `422 table_name_already_exists`. Required when
|
|
4486
|
-
`isExport` is true.
|
|
4557
|
+
`isExport` is true. The save-time check matches exact names only; a name that
|
|
4558
|
+
differs only in case saves, and enabling one of the two then fails with 422
|
|
4559
|
+
"Another dataset in this sync resolves to the same destination table".
|
|
4487
4560
|
examples:
|
|
4488
4561
|
- account
|
|
4489
4562
|
isExport:
|
|
@@ -5016,9 +5089,13 @@ components:
|
|
|
5016
5089
|
stage:
|
|
5017
5090
|
type: string
|
|
5018
5091
|
readOnly: true
|
|
5019
|
-
description:
|
|
5092
|
+
description: |-
|
|
5093
|
+
Pipeline stage where the error occurred. `init` errors come from the checks a run
|
|
5094
|
+
makes before it extracts — `di_ping_failure` when a connection's host can't be
|
|
5095
|
+
reached — and carry no table.
|
|
5020
5096
|
examples:
|
|
5021
5097
|
- extraction
|
|
5098
|
+
- init
|
|
5022
5099
|
datasetName:
|
|
5023
5100
|
type: string
|
|
5024
5101
|
readOnly: true
|
package/dist/tool.yml
CHANGED
|
@@ -36798,6 +36798,11 @@ components:
|
|
|
36798
36798
|
`transform` and output `filter` still run on top of them, so downstream steps — and a
|
|
36799
36799
|
lookup's results mapping — see the transformed, filtered records, not the shape stored here.
|
|
36800
36800
|
|
|
36801
|
+
In a flow test run of an HTTP export with a saved mock (live probe, 2026-10-21), the export
|
|
36802
|
+
still listed `request` and `response` stages: `request` held the request the export composes,
|
|
36803
|
+
and `response` held the mock under the source's URL, as did the test run's request log, which
|
|
36804
|
+
recorded it as a 200. Read those stages as the substituted mock, not as a live call.
|
|
36805
|
+
|
|
36801
36806
|
`POST /v1/exports/preview` reads the `mockOutput` in its request body, not the saved one. For
|
|
36802
36807
|
an export the preview supports (an HTTP export, for example), a body that carries it (as an
|
|
36803
36808
|
export read back with GET does) returns that snapshot as a lone `parse` stage without calling
|
package/package.json
CHANGED