airbytehq / airbytehq/airbyte-api-python-sdk

Expose cronTimeZone on connection schedule once the public API spec change lands

未關閉
#207 0 則留言 0 個 reaction 已指派 0 人 在 GitHub 檢視
主要語言
Python
星號
61
分支
27
平均合併
4 分鐘
30 天內合併 PR
2

描述

### Summary

The Airbyte public API is gaining timezone support on the connection schedule, and this SDK's generated models will need to pick it up so users can set a non-UTC cron schedule programmatically.

Today the public API's `AirbyteApiConnectionSchedule` request schema exposes only `scheduleType` and `cronExpression`. Reads return the cron expression with the timezone appended (e.g. `0 0 */3 * * ? US/Pacific`), but writes could not accept that form, so a non-UTC schedule could not be created or round-tripped through this SDK — a read-modify-write of a connection with a non-UTC schedule returned HTTP 400.

### What is changing in the API

Additive, backward compatible:

- New optional `cronTimeZone` string on `AirbyteApiConnectionSchedule`. Accepts a supported timezone ID (e.g. `US/Pacific`) or a fixed offset (e.g. `+05:30`); IDs starting with `Etc` are rejected. Omitting it means UTC, matching current behavior.
- `cronExpression` also accepts the timezone-suffixed form that reads already emit, so a value read back from the API can be sent straight to `POST`/`PATCH`. If both are supplied, the explicit `cronTimeZone` wins.
- The read response shape is unchanged.

### Ask

This SDK regenerates from the upstream OpenAPI spec (`airbyte-api/server-api/src/main/openapi/api_sdk.yaml`) on its scheduled Speakeasy runs, so no hand edits are expected here. This issue exists to track that the generated models actually expose `cronTimeZone` after the spec change lands upstream, and to give users a place to follow the work.

- [ ] Spec change merged in the platform repo
- [ ] Spec synced to the public `airbyte-platform` mirror
- [ ] Generated models in this SDK expose `cronTimeZone`
- [ ] Released version available to users

### Workaround until then

Existing SDK versions can already pass the timezone inside `cronExpression` (e.g. `"0 0 */3 * * ? US/Pacific"`) once the platform change is deployed, since the API accepts the suffixed form.

### Related reports

- https://github.com/airbytehq/airbyte/issues/48883
- https://github.com/airbytehq/terraform-provider-airbyte/issues/461
- https://github.com/airbytehq/terraform-provider-airbyte/issues/121

---
[Devin session](https://app.devin.ai/sessions/5db931c26d7f4400b2c325d16305021d)

貢獻指南

開啟貢獻指南

研究方向

Start by checking whether the spec change in airbyte-api/server-api/src/main/openapi/api_sdk.yaml has landed and synced to the public airbyte-platform mirror. After the scheduled Speakeasy generation, inspect the generated models for cronTimeZone; the work is done when it is exposed and a released SDK version is available.

由索引模型根據 Issue 內容生成。

評估

技術堆疊
openapi, python
領域
api
Issue 類型
功能
難度
4/5
預估耗時
3-5 天
活躍度
活躍
描述清晰度
基本清楚
新手友好度
28/100

把新 issue 寄到你的電子郵件信箱

精選適合新手參與的 GitHub issue 摘要。