jobs: 0.89.0 changed jobs result shapes from snake_case to camelCase
Maintainer thường phản hồi trong vòng 3 ngày
Chưa có ai nhận issue này.
Đánh giá
- Độ khó
- 4/5
- Thời gian dự kiến
- 3-5 ngày
- Mức phù hợp với người mới
- 48/100
- Loại issue
- Lỗi
- Độ rõ ràng
- Khá rõ ràng
- Mức độ hoạt động
- Sôi nổi
- Công nghệ
- typescript
- Lĩnh vực
- api, backend-api-design
Hướng nghiên cứu
Start with packages/appkit/src/connectors/jobs/client.ts and reproduce the runNow() result using the TypeScript snippet in the issue; compare the affected methods and status payloads with the documented behavior. The issue offers two possible resolutions, so confirm which is intended before changing code; done means either restoring the described snake_case shapes or documenting the breaking change and affected fields in the 0.89.0 release notes.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Mô tả
Summary
In 0.89.0, the jobs plugin returns camelCase keys wherever it passes Jobs API objects through: the programmatic API, two routes, and the run object in status payloads. Through 0.88.1 these were snake_case. #647 says "Translate camelCase/bigint models back to the snake_case/number wire shape at the connector boundary, so the plugin's HTTP, SSE and cache output is unchanged", but the merged connector doesn't do that. The release notes list it as a feature, with no breaking-change note. Verified live against a real job on both versions.
Not affected (the common path)
Apps that trigger jobs and react to the status string see no change:
POST /api/jobs/:jobKey/runreturns{ runId }in both versions (confirmed from source).GET /api/jobs/:jobKey/statusand therunAndWait()/POST /run?stream=trueupdates keep the samestatusvalues (RUNNING,TERMINATED, and so on).- Failure results keep the same shape (
{ ok: false, status, message }). @databricks/appkit-uidoesn't read jobs results, so no built-in UI is affected.
Affected
Code that reads fields from a run or job object:
appkit.jobs(key).runNow():datawas{ run_id, number_in_job, wait }and is now{ runId }.getRun,listRuns,lastRun,getRunOutput,getJob: all keys are camelCase. For example,run_idis nowrunId,run_page_urlis nowrunPageUrl, andstate.life_cycle_stateis nowstate.lifeCycleState. TypeScript flags these at compile time; JavaScript getsundefined.GET /runsandGET /runs/:runId: they returnresult.datadirectly, so their JSON keys changed. Client code breaks silently.- The
runobject inGET /statusand inrunAndWait()/ streamed status updates: same key change.
Cause
packages/appkit/src/connectors/jobs/client.ts:
runNowreturns{ runId: Number(waiter.runId) }.- The other methods pass the modular SDK models through
toNumbers. That helper converts bigints to numbers but keeps the SDK's camelCase keys.
Repro
const result = await appkit.jobs("default").runNow();
console.log(Object.keys(result.data));
// 0.88.1: ["run_id", "number_in_job", "wait"]
// 0.89.0: ["runId"]
Why it matters
jobs is exported from the package root, not /beta. The stability doc says only /beta APIs "may change between minor releases".
Ask
Either restore the snake_case shape that #647 describes, or keep camelCase and add a breaking-change note to the 0.89.0 release notes listing the affected methods and fields. Related: docs/plugins/jobs.md already changed to result.data.runId in 0.89.0.
This issue was written by Isaac.
- Ngôn ngữ chính
- TypeScript
- Star
- 119
- Fork
- 36
- Merge trung bình
- 4 ngày 16 giờ
- Pull request đã merge (30 ngày)
- 37
Chuẩn bị môi trường
- Không có Dockerfile hay tệp Docker Compose
- Không có mẫu pull request
- Đọc hướng dẫn đóng góp
Bắt đầu từ đâu
- Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
- Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
- Fork repository và làm thay đổi trên một nhánh.
- Mở pull request có tham chiếu số hiệu của issue.
Issue khác của databricks/appkit
-
Độ khó 4/5 3-5 ngày Mức phù hợp với người mới 55/100
databricks/appkit#729 ·
Maintainer thường phản hồi trong vòng 3 ngày
-
@databricks/lakebase: pool drops maxLifetimeSeconds and other pg options, so connections never recycle and Unity Catalog claims access fails after 4 hoursCó thể đã có người làm @billmcmillin đã nhận 5 ngày trước. Đang mở
Độ khó 4/5 3-5 ngày Mức phù hợp với người mới 20/100
databricks/appkit#718 ·
Maintainer thường phản hồi trong vòng 3 ngày
-
Độ khó 3/5 Nửa ngày Mức phù hợp với người mới 42/100
databricks/appkit#656 · 1 bình luận ·
Maintainer thường phản hồi trong vòng 3 ngày
-
Độ khó 4/5 3-5 ngày Mức phù hợp với người mới 28/100
databricks/appkit#648 · 2 bình luận ·
Maintainer thường phản hồi trong vòng 3 ngày
-
Độ khó 3/5 1-2 ngày Mức phù hợp với người mới 58/100
databricks/appkit#603 ·
Maintainer thường phản hồi trong vòng 3 ngày
Tất cả issue của databricks/appkit
Issue tương tự
-
Độ khó 1/5 1-3 giờ Mức phù hợp với người mới 83/100
Maintainer thường phản hồi trong vòng 1 ngày
-
bug
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 78/100
jupyterlite/jupyterlite#2111 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 80/100
karlhorky/electron-app-patcher#241 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Tab bar scrolls past its last tab in Firefox until no tabs are visibleCó thể đã có người làm @daviwil đã nhận hôm nay. Đang mở
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 78/100
eclipse-theia/theia#18367 ·
Maintainer thường phản hồi trong vòng 2 ngày
-
Server-side render fails with "requestAnimationFrame is not defined" when the room has a video nodeCó thể đã có người làm @jesusmpc đã nhận hôm nay. Đang mởbug
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 79/100
InditexTech/weavejs#1294 ·
Maintainer thường phản hồi trong vòng 1 ngày