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 摘要。