jobs: 0.89.0 changed jobs result shapes from snake_case to camelCase
Les mainteneurs répondent en général sous 3 jours
Personne n'a encore pris cette issue.
Évaluation
- Difficulté
- 4/5
- Temps estimé
- 3-5 jours
- Accessibilité débutants
- 48/100
- Type d'issue
- Bug
- Clarté
- Plutôt claire
- Activité
- Active
- Stack technique
- typescript
- Domaine
- api, backend-api-design
Piste de recherche
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.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Description
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.
- Langage dominant
- TypeScript
- Étoiles
- 119
- Forks
- 36
- Merge moyen
- 4 j 16 h
- PR mergées (30 j)
- 37
Préparer son environnement
- Aucun Dockerfile ni fichier Docker Compose
- Aucun modèle de pull request
- Lire le guide de contribution
Par où commencer
- Lisez l'issue en entier, puis le guide de contribution du projet.
- Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
- Forkez le dépôt et travaillez sur une branche.
- Ouvrez une pull request qui référence le numéro de l'issue.
Autres issues de databricks/appkit
-
Difficulté 4/5 3-5 jours Accessibilité débutants 55/100
databricks/appkit#729 ·
Les mainteneurs répondent en général sous 3 jours
-
@databricks/lakebase: pool drops maxLifetimeSeconds and other pg options, so connections never recycle and Unity Catalog claims access fails after 4 hoursPeut-être pris @billmcmillin l’a pris il y a 5 jours. Ouverte
Difficulté 4/5 3-5 jours Accessibilité débutants 20/100
databricks/appkit#718 ·
Les mainteneurs répondent en général sous 3 jours
-
Difficulté 3/5 Une demi-journée Accessibilité débutants 42/100
databricks/appkit#656 · 1 commentaire ·
Les mainteneurs répondent en général sous 3 jours
-
Difficulté 4/5 3-5 jours Accessibilité débutants 28/100
databricks/appkit#648 · 2 commentaires ·
Les mainteneurs répondent en général sous 3 jours
-
Difficulté 3/5 1-2 jours Accessibilité débutants 58/100
databricks/appkit#603 ·
Les mainteneurs répondent en général sous 3 jours
Toutes les issues de databricks/appkit
Issues similaires
-
Add "append" and "prepend" slots for vue-vuetify extended renderersPeut-être pris @simeyc l’a pris aujourd’hui. Ouverte
Difficulté 2/5 1-3 heures Accessibilité débutants 75/100
eclipsesource/jsonforms#2668 ·
Les mainteneurs répondent en général sous 1 jour
-
Difficulté 2/5 1-3 heures Accessibilité débutants 68/100
Les mainteneurs répondent en général sous 1 jour
-
README の通知条件を実際の判定処理に合わせるPeut-être pris @unhappychoice l’a pris aujourd’hui. Ouvertefactory:in-progress priority:medium
Difficulté 1/5 Moins d'une heure Accessibilité débutants 90/100
unhappychoice/oss-issue-opener#395 · 1 commentaire ·
Les mainteneurs répondent en général sous 1 jour
-
bug Website
Difficulté 2/5 1-3 heures Accessibilité débutants 77/100
OWASP/OWASP-Hunting#88 ·
Les mainteneurs répondent en général sous 1 jour
-
Difficulté 2/5 1-3 heures Accessibilité débutants 76/100
Les mainteneurs répondent en général sous 1 jour