airbytehq / airbytehq/airbyte-api-python-sdk

Add SDK support for bounded Snowflake destination queries

Open
#212 0 comments 0 reactions 0 assignees View on GitHub
Dominant language
Python
Stars
61
Forks
27
Avg merge
4m
Merged PRs (30d)
2

Description

Track Python SDK propagation of `POST /v1/destinations/{destinationId}/query` from [Platform #19472](https://github.com/airbytehq/airbyte-platform-internal/pull/19472), paired with [Sonar #6544](https://github.com/airbytehq/sonar/pull/6544). This operation is separate from workspace skill documentation tracked in #211.

Regenerate from the updated public API definition and expose the operation in Destinations (`publicQueryDestination`, SDK alias `queryDestination`). Requests contain exactly one `statement` string, limited to 32 KiB UTF-8 within a 64 KiB JSON body.

The response contains ordered columns (`index`, `name`, `type`, `nullable`), positional rows of string-or-null cells, and a page with `returnedRows`, fixed `rowLimit: 1000`, fixed `byteLimit: 1048576`, `truncated`, an array of `row_limit`/`byte_limit`/`provider_partition` reasons, and required `nextCursor: null`. Preserve empty arrays, duplicate column labels, null cells and provider text without automatic native-value coercion. The full response is at most 1 MiB with at most 256 columns. There is no resumable cursor or total-row count.

Acceptance:

- Generate the operation and request/response models, and add serialization tests for positional null cells, duplicate labels, empty rows/reasons and the required null cursor.
- Verify all documented 401/403/404/413/422/501/502/503/504 problem responses.
- Ensure this query operation does not automatically retry an uncertain POST submission, including timeout, disconnect or retryable HTTP status; preserve other operations' existing retry behavior.
- Document workspace reader access, controlled availability, key-pair Snowflake destinations and separately approved query-role configuration. Other warehouse/auth variants are unsupported; availability is disabled by default.
- Release SDK support after the paired server change is ready, then link the released version here and in the Platform PR. SDK release and production activation are separate.

Contributor guide

Open the contributing guide

Research direction

Start with the updated public API definition and trace POST /v1/destinations/{destinationId}/query through Destinations, publicQueryDestination, and the SDK alias queryDestination. Verify the generated models and serialization tests cover the listed null, duplicate-label, empty-array, cursor, size, and error cases, then check the no-retry behavior, documentation, and release-link requirements are complete.

Written by the indexing model from the issue text.

Assessment

Tech stack
python
Domain
api, backend, documentation, testing
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Active
Clarity
Mostly clear
Newbie friendliness
42/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.