@celigo/api-specs 0.2.206 → 0.2.208

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
@@ -1661,6 +1661,21 @@ components:
1661
1661
  - shopify
1662
1662
  - stripe
1663
1663
  - custom
1664
+ formType:
1665
+ type: string
1666
+ enum:
1667
+ - simple
1668
+ - webhook
1669
+ x-enumDescriptions:
1670
+ simple: Simple form, the default for a named provider (e.g. `shopify`, `stripe`).
1671
+ webhook: Full webhook form, the default when `provider` is `custom` or omitted.
1672
+ description: |-
1673
+ Which webhook export form the UI uses to edit this listener. A value sent on create or
1674
+ update wins (case-insensitive — `Simple` is stored as `simple`); a PUT that omits it
1675
+ keeps the stored value, and a new export without one gets the default for its
1676
+ `provider`. Every webhook export GET carries it.
1677
+ examples:
1678
+ - webhook
1664
1679
  verify:
1665
1680
  type: string
1666
1681
  x-celigo-ui-override: Required by the webhook export form (verify is required:true). Encoded to mirror the form so builders produce connectable configurations.
@@ -5958,6 +5973,8 @@ components:
5958
5973
  A stream export that resolves no snapshot mode — neither `snapshotMode` nor a
5959
5974
  `snapshot.mode` entry in `properties` — is rejected 422 ("Expected field: snapshotMode
5960
5975
  to be present").
5976
+ required:
5977
+ - paths
5961
5978
  properties:
5962
5979
  captureMode:
5963
5980
  type: string
@@ -6067,13 +6084,13 @@ components:
6067
6084
  - Never author or modify this field — the platform owns the stream position.
6068
6085
  paths:
6069
6086
  type: array
6087
+ minItems: 1
6070
6088
  items:
6071
6089
  type: string
6072
6090
  description: |-
6073
- Dot-notation paths within each raw change event to retain in the emitted record. MongoDB
6074
- listeners default to `["payload"]` (the whole change document); SQL Server, PostgreSQL and
6075
- MySQL listeners commonly select `payload.after`, `payload.op`, and related fields to expose
6076
- the changed row and operation type. The MySQL listener form offers `payload.after`,
6091
+ Dot-notation paths within each raw change event to retain in the emitted record, such as
6092
+ `payload.after` (the changed row or document) and `payload.op` (the operation type).
6093
+ The MySQL listener form offers `payload.after`,
6077
6094
  `payload.before`, `schema`, `payload.source`, `payload.op`, `payload.transaction`,
6078
6095
  `payload.ts_ms`, `payload.ts_us` and `payload.ts_ns`, preselecting `payload.after`; it has
6079
6096
  no `updateDescription`-derived options and no `payload.id`. The MySQL listener
@@ -6081,8 +6098,9 @@ components:
6081
6098
  as the row before an update or delete (needs `binlog_row_image=FULL`), `op` as `c` / `u` /
6082
6099
  `d` / `r` (insert / update / delete / snapshot read) and `source` as the database, table,
6083
6100
  binlog file and position.
6101
+ x-celigo-ui-override: 'Required by every listener form (MongoDB, SQL Server, PostgreSQL, and MySQL: cdc.paths is a required:true multiselect with defaultValue [''payload.after'']). Encoded here to mirror the forms so builders produce complete listener configurations.'
6084
6102
  examples:
6085
- - - payload
6103
+ - - payload.after
6086
6104
  - - payload.after
6087
6105
  - payload.op
6088
6106
  - - payload.after
@@ -6110,7 +6128,9 @@ components:
6110
6128
  serialized first, followed by optional keys such as `field.exclude.list`,
6111
6129
  `column.include.list`, or `snapshot.collection.filter.overrides.<db>.<collection>`.
6112
6130
  On save the API also lifts `snapshot.mode` / `capture.mode` entries into the typed
6113
- `snapshotMode` / `captureMode` fields.
6131
+ `snapshotMode` / `captureMode` fields. When one body carries both with different values,
6132
+ the `snapshot.mode` entry wins on SQL Server, PostgreSQL and MySQL listeners, and the typed
6133
+ `snapshotMode` wins on a MongoDB listener.
6114
6134
 
6115
6135
  The MySQL listener form offers six keys: `snapshot.mode` (preselected `no_data`) and five
6116
6136
  optional comma-separated regular-expression lists — `table.exclude.list` (matched on
@@ -6125,6 +6145,11 @@ components:
6125
6145
  The API persists any key sent here without validating it against the connector, so a
6126
6146
  MongoDB or PostgreSQL key on a MySQL listener saves cleanly and does nothing — author only
6127
6147
  the keys the listener's form offers.
6148
+ - |-
6149
+ On SQL Server, PostgreSQL, and MySQL listeners every save appends one more
6150
+ `snapshot.mode` entry that repeats the resolved mode, so a GET response lists it twice
6151
+ and each GET-then-PUT round trip adds another copy. Send a single `snapshot.mode`
6152
+ entry: drop the trailing repeats before you PUT a fetched export back.
6128
6153
  items:
6129
6154
  type: object
6130
6155
  required:
@@ -12111,7 +12136,7 @@ components:
12111
12136
  {
12112
12137
  "type": "stream",
12113
12138
  "rdbms": { "tables": "public.orders,public.customers" },
12114
- "cdc": { "properties": [{ "name": "snapshot.mode", "value": "no_data" }] }
12139
+ "cdc": { "properties": [{ "name": "snapshot.mode", "value": "no_data" }], "paths": ["payload.after"] }
12115
12140
  }
12116
12141
  ```
12117
12142
  A MySQL listener names its tables as `database.table` (MySQL has no schema layer):
@@ -16399,7 +16424,9 @@ components:
16399
16424
  `POST /v1/exports/preview` reads the `mockOutput` in its request body, not the saved one. For
16400
16425
  an export the preview supports (an HTTP export, for example), a body that carries it (as an
16401
16426
  export read back with GET does) returns that snapshot as a lone `parse` stage without calling
16402
- the source; remove `mockOutput` from the body to preview live records.
16427
+ the source; remove `mockOutput` from the body to preview live records. A body mock with an
16428
+ empty or missing `page_of_records` still skips the source and returns 200 with empty `data`
16429
+ and an empty `parse` stage.
16403
16430
 
16404
16431
  **Limitations**
16405
16432
 
@@ -16754,7 +16781,9 @@ components:
16754
16781
  `stream` is accepted only on MongoDB and RDBMS exports (SQL Server,
16755
16782
  PostgreSQL or MySQL connections) and on Event Streams listeners
16756
16783
  (`adaptorType: TopicExport`); every other adaptor rejects the save
16757
- with `unsupported_export_type`. A MongoDB or RDBMS stream export
16784
+ with `unsupported_export_type`, and a MariaDB connection is rejected
16785
+ with 422 `missing_required_field` on `type` ("RDBMS stream export not
16786
+ supported for mariadb"). A MongoDB or RDBMS stream export
16758
16787
  must carry `cdc.snapshotMode` (and `cdc.captureMode` on MongoDB) —
16759
16788
  omitting them fails with 422 `missing_required_field` on those paths.
16760
16789
  enum:
@@ -17962,17 +17991,27 @@ components:
17962
17991
  dataURIs:
17963
17992
  type: array
17964
17993
  description: |-
17965
- URIs for any files produced by the preview (e.g. file-based exports
17966
- writing to cloud storage). Empty for non-file adaptors.
17994
+ Links to the records in the source system. On an export preview, one
17995
+ entry per record in `data`: a link to the record when one is available
17996
+ (for example the export's `dataURITemplate` rendered for that record),
17997
+ otherwise `null`, as on an HTTP export without a template; absent when
17998
+ the preview returned no records and when a `mockOutput` in the request
17999
+ body answered.
17967
18000
  items:
17968
- type: string
18001
+ type:
18002
+ - string
18003
+ - 'null'
17969
18004
  dataRecordTraceKeys:
17970
18005
  type: array
17971
18006
  description: |-
17972
18007
  Trace keys for the records in this preview — one per record,
17973
- correlating stage outputs to their source record.
18008
+ correlating stage outputs to their source record; `null` for a record
18009
+ that has no key. Absent when the preview returned no records and
18010
+ captured no keys, and when a `mockOutput` in the request body answered.
17974
18011
  items:
17975
- type: string
18012
+ type:
18013
+ - string
18014
+ - 'null'
17976
18015
  stages:
17977
18016
  type: array
17978
18017
  description: |-
@@ -18035,12 +18074,11 @@ components:
18035
18074
  type: object
18036
18075
  additionalProperties: true
18037
18076
  traceKeysDuplicate:
18038
- type: array
18077
+ type: boolean
18039
18078
  description: |-
18040
- Trace keys that collided during the preview — a diagnostic for
18041
- trace-key generation; rarely non-empty in practice.
18042
- items:
18043
- type: string
18079
+ When true, two or more records in this preview share a trace key, so
18080
+ the export's `traceKeyTemplate` does not identify records uniquely.
18081
+ Absent whenever `dataRecordTraceKeys` is absent.
18044
18082
  PreviewRequest:
18045
18083
  type: object
18046
18084
  description: Request body for previewing export data
package/dist/flow.yml CHANGED
@@ -8824,17 +8824,27 @@ components:
8824
8824
  dataURIs:
8825
8825
  type: array
8826
8826
  description: |-
8827
- URIs for any files produced by the preview (e.g. file-based exports
8828
- writing to cloud storage). Empty for non-file adaptors.
8827
+ Links to the records in the source system. On an export preview, one
8828
+ entry per record in `data`: a link to the record when one is available
8829
+ (for example the export's `dataURITemplate` rendered for that record),
8830
+ otherwise `null`, as on an HTTP export without a template; absent when
8831
+ the preview returned no records and when a `mockOutput` in the request
8832
+ body answered.
8829
8833
  items:
8830
- type: string
8834
+ type:
8835
+ - string
8836
+ - 'null'
8831
8837
  dataRecordTraceKeys:
8832
8838
  type: array
8833
8839
  description: |-
8834
8840
  Trace keys for the records in this preview — one per record,
8835
- correlating stage outputs to their source record.
8841
+ correlating stage outputs to their source record; `null` for a record
8842
+ that has no key. Absent when the preview returned no records and
8843
+ captured no keys, and when a `mockOutput` in the request body answered.
8836
8844
  items:
8837
- type: string
8845
+ type:
8846
+ - string
8847
+ - 'null'
8838
8848
  stages:
8839
8849
  type: array
8840
8850
  description: |-
@@ -8897,12 +8907,11 @@ components:
8897
8907
  type: object
8898
8908
  additionalProperties: true
8899
8909
  traceKeysDuplicate:
8900
- type: array
8910
+ type: boolean
8901
8911
  description: |-
8902
- Trace keys that collided during the preview — a diagnostic for
8903
- trace-key generation; rarely non-empty in practice.
8904
- items:
8905
- type: string
8912
+ When true, two or more records in this preview share a trace key, so
8913
+ the export's `traceKeyTemplate` does not identify records uniquely.
8914
+ Absent whenever `dataRecordTraceKeys` is absent.
8906
8915
  DependencyEntry:
8907
8916
  type: object
8908
8917
  description: A single resource that depends on the queried resource.
package/dist/import.yml CHANGED
@@ -5681,6 +5681,7 @@ components:
5681
5681
  description: |-
5682
5682
  Target table for the bulk load.
5683
5683
  Must reference an existing table accessible with the connection's credentials; schema-qualified names are supported.
5684
+ On Snowflake, the temporary staging table that precedes the load is created in the connection's default schema (`rdbms.snowflake.schema` on the connection), not in this table's schema.
5684
5685
  x-celigo-ai-guidance:
5685
5686
  - |-
5686
5687
  The name of the target table within the relational database management system
@@ -8567,9 +8568,23 @@ components:
8567
8568
  description: |-
8568
8569
  Tool resource this import executes. The tool supplies the input schema, routing, page
8569
8570
  processors, and output mapping; the import runs that tool when records reach it. Required —
8570
- a `ToolImport` has no behavior without a tool to run.
8571
+ a `ToolImport` has no behavior without a tool to run. Saving the import fails with 422 when the
8572
+ tool has no routers, a step still being set up, or a branch that does not merge back; the
8573
+ message names the tool.
8571
8574
  x-celigo-ai-guidance:
8572
8575
  - Reference to the Celigo Tool resource this wrapper invokes.
8576
+ - |-
8577
+ Finish the tool before saving its wrapper: a create or update of this import fails with 422
8578
+ tool_empty_router when the tool has no `routers` (missing or empty; the message reads "…has
8579
+ no steps. Add at least one step to the tool, then save again."), router_setup_in_progress
8580
+ when a step is still being set up (setupInProgress), and tool_dangling_branch when a branch
8581
+ has no nextRouterId ("outputRouter" ends the tool). Fix the tool with PUT /v1/tools/{_id},
8582
+ then save the import again.
8583
+ - |-
8584
+ A save that passes doesn't mean the tool runs: a branch with empty `pageProcessors` passes
8585
+ it, and the tool then fails at invoke with 400 tool_empty_router. Creating a parent tool, or
8586
+ a disabled flow, whose step is this wrapper is not checked either: both saved while the
8587
+ wrapped tool had no routers.
8573
8588
  - |-
8574
8589
  Required.
8575
8590
  The Tool must already exist;
@@ -8973,16 +8988,20 @@ components:
8973
8988
  The `key` + `batchSize` combination has not been probed (it needs a B2B Manager
8974
8989
  account) — treat it as unverified, neither allowed nor forbidden.
8975
8990
  encrypt:
8976
- type: boolean
8991
+ type: string
8992
+ enum:
8993
+ - pgp
8994
+ x-enumDescriptions:
8995
+ pgp: Encrypt the file with PGP before it is written.
8977
8996
  description: |-
8978
- Whether to encrypt the output file.
8979
-
8980
- **Values**
8981
- - `true`: Encrypt the file (requires PGP configuration)
8982
- - `false`: No encryption
8983
-
8984
- **Default:** `false`
8985
- default: false
8997
+ Encrypts the output file; omit it for an unencrypted file. `pgp` requires
8998
+ `pgp.symmetricKeyAlgorithm` and a connection holding the recipient's public key
8999
+ (`pgp.publicKey`) — without either the save fails with 422 `missing_required_field`.
9000
+ The public-key check runs first: on a connection without one, any `encrypt` value,
9001
+ `false` included, fails with 422 `missing_required_field` "pgp publicKey is required
9002
+ when encrypt is selected to perform file encryption." before the value is checked.
9003
+ Blob (file-transfer) imports follow the same rule and return `encrypt` and `pgp` even
9004
+ without `file.type`.
8986
9005
  csv:
8987
9006
  type: object
8988
9007
  description: CSV-specific configuration. Only used when `type` is `"csv"`.
@@ -9149,8 +9168,8 @@ components:
9149
9168
  pgp:
9150
9169
  type: object
9151
9170
  description: |-
9152
- PGP encryption settings applied when encrypt is true; selects the symmetric cipher and the
9153
- signing hash. The connection must hold the recipient's public key.
9171
+ PGP encryption settings applied when `encrypt` is `pgp`; selects the symmetric cipher and
9172
+ the signing hash. The connection must hold the recipient's public key.
9154
9173
  properties:
9155
9174
  symmetricKeyAlgorithm:
9156
9175
  type: string
@@ -9167,9 +9186,10 @@ components:
9167
9186
  3des: Triple DES block cipher (legacy).
9168
9187
  aes128: AES with a 128-bit key.
9169
9188
  aes192: AES with a 192-bit key.
9170
- aes256: AES with a 256-bit key (default, recommended).
9171
- default: aes256
9172
- description: Symmetric cipher used to encrypt the file body; aes256 unless the recipient requires another.
9189
+ aes256: AES with a 256-bit key (recommended).
9190
+ description: |-
9191
+ Symmetric cipher used to encrypt the file body; required when `encrypt` is `pgp` (no
9192
+ server default). Use aes256 unless the recipient requires another.
9173
9193
  examples:
9174
9194
  - aes256
9175
9195
  - 3des
@@ -18086,8 +18106,9 @@ components:
18086
18106
  type: object
18087
18107
  description: |-
18088
18108
  The outcome of running one input record through an import — one element
18089
- per record, in input order — shared by `POST /v1/imports/{_id}/invoke`
18090
- and the virtual import `POST /v1/connections/{_id}/import`. A record the
18109
+ per record, in input order — shared by `POST /v1/imports/{_id}/invoke`,
18110
+ the virtual import `POST /v1/connections/{_id}/import` and its
18111
+ integration-scoped forms. A record the
18091
18112
  import itself ignored before any request carries `ignored: true` and the
18092
18113
  `stage` that dropped it; a record the destination accepted carries its
18093
18114
  parsed response; a record the destination rejected — or that the
@@ -3874,7 +3874,7 @@ components:
3874
3874
  description: |-
3875
3875
  Required label for the limit, echoed verbatim in the 429 error message
3876
3876
  that rejected clients receive — name it the way consumers should read
3877
- it. A missing or empty name is rejected with 422.
3877
+ it. A missing or empty name is rejected with 422 `missing_required_field`.
3878
3878
  examples:
3879
3879
  - Server-level rate limit
3880
3880
  - Per-user rate limit
@@ -5280,10 +5280,12 @@ components:
5280
5280
  `targetConcurrencyLevel`. While true, `targetConcurrencyLevel` is the throughput lever: a
5281
5281
  `concurrencyLevel` sent in a PUT is ignored, and one sent in a PATCH is stored but the
5282
5282
  recovery machinery moves it back toward the target. Recovery never runs on `ftp`
5283
- connections: FTP errors aren't treated as rate limits.
5283
+ connections: FTP errors aren't treated as rate limits. A rate limit hit by a Tool
5284
+ invocation (`POST /v1/tools/{_id}/invoke`) or an export preview
5285
+ (`POST /v1/exports/preview`) leaves the connection's concurrency as it is.
5284
5286
  x-celigo-ai-guidance:
5285
5287
  - To change throughput while this is true, write `targetConcurrencyLevel`; a `concurrencyLevel` sent in a PUT returns 200 and changes nothing.
5286
- - Turning it on copies `concurrencyLevel` into `targetConcurrencyLevel`; turning it off unsets the target and leaves `concurrencyLevel` at its current value, which may be below the old target if a recovery was in progress. A `targetConcurrencyLevel` written while this is false is unset by the save.
5288
+ - Turning it on copies `concurrencyLevel` into `targetConcurrencyLevel`; turning it off unsets the target and leaves `concurrencyLevel` at its current value, which may be below the old target if a recovery was in progress. A `targetConcurrencyLevel` sent on a create that sets this false, or with the write that turns this off, is dropped; on a connection where this is already false, writing one fails with 422 `invalid_concurrency_level`.
5287
5289
  - These four settings (`concurrencyLevel`, `targetConcurrencyLevel`, `_borrowConcurrencyFromConnectionId`, this flag) accept a credential-free `PATCH /v1/connections/{_id}`. A PUT replaces the whole document, so send each secret back as its masked `******` value (that keeps it) or as a new value, and never drop one to keep it — an omitted password or `http.encrypted` is cleared, and a static token left out (with no `refreshMethod`) fails the PUT with 422.
5288
5290
  - On a create, while this is true, set the level with `targetConcurrencyLevel`: on `http`, `ftp`, `rdbms` and `mongodb` connections the save stores the target sent, or the adaptor's default without one (1 for `ftp`, 5 for `rdbms` and `mongodb`, 25 for `http` where the license's `concurrency` is at least 25), as both fields, whatever `concurrencyLevel` the body carried. A create that sends this as `false` keeps its `concurrencyLevel`.
5289
5291
  - On an `ftp` connection recovery never runs, and transfer threads are `ftp.multiThreadCount`.
@@ -5920,8 +5922,10 @@ components:
5920
5922
  While `autoRecoverRateLimitErrors` is true, a create sets `concurrencyLevel` to this value, and a
5921
5923
  create that omits it gets 1 for both. Auto-recovery never runs on FTP connections (FTP errors
5922
5924
  aren't treated as rate limits), so nothing climbs back to it.
5923
- Kept on a `PUT` that omits it, like `concurrencyLevel`; unset by the save while
5924
- `autoRecoverRateLimitErrors` is false.
5925
+ Kept on a `PUT` that omits it, like `concurrencyLevel`. A create that sends
5926
+ `autoRecoverRateLimitErrors` false, or a write that turns it off, drops it; on a connection
5927
+ where the flag is already false, sending it fails with 422 `invalid_concurrency_level`
5928
+ ("cannot be set when autoRecoverRateLimitErrors is false").
5925
5929
  minimum: 1
5926
5930
  maximum: 50
5927
5931
  examples:
@@ -6662,9 +6666,10 @@ components:
6662
6666
  Higher values increase throughput but may trigger API rate limits.
6663
6667
  Set this based on the target API's rate limit documentation.
6664
6668
  Send no more than the account's licensed maximum (25 standard, 50 with an Environments license).
6665
- A decimal is rejected with 422 `invalid_field_value` on every write (the same rule applies to every
6666
- adaptor's `concurrencyLevel` and `targetConcurrencyLevel`, and to `ftp.multiThreadCount`).
6667
- Platform-managed while `autoRecoverRateLimitErrors` is true — a create or PUT ignores the value (a create without `targetConcurrencyLevel` stores 25 where the license's `concurrency` is at least 25) and the recovery machinery moves it toward the target; set `targetConcurrencyLevel` instead.
6669
+ A create, a PATCH, and a PUT while `autoRecoverRateLimitErrors` is false reject a decimal with 422
6670
+ `invalid_field_value` and a boolean or a non-numeric string with 422 `invalid_concurrency_level`
6671
+ ("must be an integer").
6672
+ Platform-managed while `autoRecoverRateLimitErrors` is true — a create still checks the value but stores the target in its place (25 without a `targetConcurrencyLevel`, where the license's `concurrency` is at least 25), a PUT ignores it without checking it, and the recovery machinery moves it toward the target; set `targetConcurrencyLevel` instead.
6668
6673
  At level 1 an import's pages run one at a time, so a record's existence lookup and write finish before the next record's start (measured on a single import); the import's `idLockTemplate` serializes only same-key records and leaves the rest parallel.
6669
6674
  minimum: 1
6670
6675
  maximum: 50
@@ -6677,7 +6682,9 @@ components:
6677
6682
  Ceiling the platform climbs back to after rate-limit recovery, in steps of 25% of this value.
6678
6683
  Writing it also sets `concurrencyLevel` to the same value and stops any recovery in progress.
6679
6684
 
6680
- Honored only while `autoRecoverRateLimitErrors` is true; ignored, and unset, when it is false.
6685
+ Honored only while `autoRecoverRateLimitErrors` is true. A create that sends the flag as false, or a
6686
+ write that turns it off, drops it; on a connection where the flag is already false, sending it fails with 422
6687
+ `invalid_concurrency_level` ("cannot be set when autoRecoverRateLimitErrors is false").
6681
6688
  minimum: 1
6682
6689
  maximum: 50
6683
6690
  examples:
@@ -7448,6 +7455,26 @@ components:
7448
7455
  examples:
7449
7456
  - - rate_limit_exceeded
7450
7457
  - too_many_requests
7458
+ failHeaders:
7459
+ type: array
7460
+ description: |
7461
+ Response-header rules for detecting rate limiting, each a header `name` with an
7462
+ optional `value`. A rule with an empty `name` fails the save with 422
7463
+ `invalid_header_format`.
7464
+ items:
7465
+ type: object
7466
+ required:
7467
+ - name
7468
+ properties:
7469
+ name:
7470
+ type: string
7471
+ description: Response header the rule checks.
7472
+ value:
7473
+ type: string
7474
+ description: Header value the rule checks; omit to check the header alone.
7475
+ examples:
7476
+ - - name: X-RateLimit-Remaining
7477
+ value: '0'
7451
7478
  limit:
7452
7479
  type: number
7453
7480
  minimum: 1
@@ -8076,9 +8103,21 @@ components:
8076
8103
  - COMPUTE_WH
8077
8104
  schema:
8078
8105
  type: string
8079
- description: |
8080
- Default Snowflake schema. If omitted, queries must fully-qualify table names
8081
- (e.g., DATABASE.SCHEMA.TABLE).
8106
+ description: |-
8107
+ Default schema for the session: unqualified table names in queries resolve here, and
8108
+ optimized bulk load imports create their temporary staging table here even when the
8109
+ destination table is schema-qualified — so the connection's role must be able to
8110
+ create that table in it. When blank, optimized bulk load uses PUBLIC.
8111
+ x-celigo-ai-guidance:
8112
+ - |-
8113
+ When this names a schema the session cannot resolve — Snowflake reports it as not
8114
+ existing or not authorized for the role, and the session is left without a current
8115
+ schema — every optimized bulk load fails at the staging step with code `query_fail`
8116
+ and the message "Failed to run the bulk load query. Err: [TempTableQuery] The
8117
+ provided schema is invalid: <this value>" (the connector's rewrite of Snowflake's
8118
+ "This session does not have a current schema"). Fix: set this to a schema the role
8119
+ can create the staging table in — normally the destination table's own schema — or
8120
+ point the import at a second Snowflake connection with that default schema.
8082
8121
  examples:
8083
8122
  - PUBLIC
8084
8123
  role: