@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 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` when it is missing.
2868
+ The `traceKeyPrefix` query parameter is required; the server returns `400` ("traceKeyPrefix is
2869
+ required.") when it is missing.
2865
2870
 
2866
- Known behavior: the `status` filter is accepted but silently ignored — the response always includes
2867
- jobs of all statuses regardless of the filter value.
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. Because `status` is silently ignored, filter client-side if you need only completed or
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: Trace key prefix to search for. The server matches job records whose `traceKey` begins with this value.
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. **Note:** this parameter is currently accepted but silently ignored — all
2892
- statuses are always returned.
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 query parameter is required.
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 routing rule.
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
- - ignored
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
- ignored: The record was skipped by a filter or routing rule.
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 routing rule.
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.
@@ -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
- Active jobs (`queued` or `running`) are pinned to the top of the first
75
- page even when they fall outside the date filters; `canceling` jobs are
76
- not pinned. Account for this when paging — the first page can contain
77
- records older filters would otherwise exclude.
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`) are cleared, not
332
- preserved. `_integrationId` cannot be sent — the integration is fixed at creation.
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, datasets, and
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`), or the drift policy is inconsistent
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. Updates fully replace each dataset's writable fields.
714
- The response body is empty — read back the saved datasets with
715
- `GET /v1/syncs/{_syncId}/datasets`.
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, two source columns sanitize to
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: A sync job is already queued for this sync.
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: The sync is disabled.
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: No cancellable sync jobs found.
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 sync-enabled.
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 only be enabled once its source,
3804
- destination, and datasets are fully configured.
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
- Each source + destination host/database/schema combination must be unique across
3913
- syncs — reusing one fails with `422 duplicate_destination_host` — and all syncs in an
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 desired configuration
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. Set to
4050
- false only once source, destination, datasets, and `historicDateTime` are all
4051
- configured; enabling an incomplete sync fails with `422 sync_not_enabled`.
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. The source + destination host/database/schema combination must be unique
4105
- across syncs (`422 duplicate_destination_host`), and all syncs in an integration
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. An unreachable host or unusable credentials fail the
4119
- save with the connection's error — 422 `invalid_host` for SQL Server,
4120
- `big_query_unexpected_error` for BigQuery — and no sync document is created or
4121
- updated; fix the connection rather than changing database or schema names.
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
- Updates are full replacements of the writable fields.
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: Pipeline stage where the error occurred.
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
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@celigo/api-specs",
3
- "version": "0.2.144",
3
+ "version": "0.2.146",
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": "3543542b",
4
+ "iasCommit": "debaf90f",
5
5
  "generatedAt": "2026-10-21"
6
6
  },
7
7
  "roots": {