jobs: 0.89.0 changed jobs result shapes from snake_case to camelCase
Mantenedores costumam responder em até 3 dias
Ninguém assumiu esta issue ainda.
Avaliação
- Dificuldade
- 4/5
- Tempo estimado
- 3-5 dias
- Facilidade para iniciantes
- 48/100
- Tipo de issue
- Bug
- Clareza
- Razoavelmente clara
- Status de atividade
- Ativa
- Stack de tecnologia
- typescript
- Domínio
- api, backend-api-design
Direção de pesquisa
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.
Escrita pelo modelo de indexação a partir do texto da issue.
Descrição
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.
- Linguagem predominante
- TypeScript
- Estrelas
- 119
- Forks
- 36
- Merge médio
- 4d 16h
- PRs com merge (30d)
- 37
Preparar o ambiente
- Sem Dockerfile nem arquivo Docker Compose
- Sem modelo de pull request
- Ler o guia de contribuição
Primeiros passos
- Leia a issue inteira e depois o guia de contribuição do projeto.
- Comente na issue dizendo que vai assumir — evita que duas pessoas façam o mesmo trabalho.
- Faça um fork do repositório e trabalhe em uma branch.
- Abra um pull request que referencie o número da issue.
Mais de databricks/appkit
-
Dificuldade 4/5 3-5 dias Facilidade para iniciantes 55/100
databricks/appkit#729 ·
Mantenedores costumam responder em até 3 dias
-
@databricks/lakebase: pool drops maxLifetimeSeconds and other pg options, so connections never recycle and Unity Catalog claims access fails after 4 hoursTalvez já em andamento @billmcmillin assumiu há 5 dias. Aberta
Dificuldade 4/5 3-5 dias Facilidade para iniciantes 20/100
databricks/appkit#718 ·
Mantenedores costumam responder em até 3 dias
-
Dificuldade 3/5 Meio dia Facilidade para iniciantes 42/100
databricks/appkit#656 · 1 comentário ·
Mantenedores costumam responder em até 3 dias
-
Dificuldade 4/5 3-5 dias Facilidade para iniciantes 28/100
databricks/appkit#648 · 2 comentários ·
Mantenedores costumam responder em até 3 dias
-
Dificuldade 3/5 1-2 dias Facilidade para iniciantes 58/100
databricks/appkit#603 ·
Mantenedores costumam responder em até 3 dias
Todas as issues de databricks/appkit
Issues semelhantes
-
Add "append" and "prepend" slots for vue-vuetify extended renderersTalvez já em andamento @simeyc assumiu hoje. Aberta
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 75/100
eclipsesource/jsonforms#2668 ·
Mantenedores costumam responder em até 1 dia
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 68/100
Mantenedores costumam responder em até 1 dia
-
README の通知条件を実際の判定処理に合わせるTalvez já em andamento @unhappychoice assumiu hoje. Abertafactory:in-progress priority:medium
Dificuldade 1/5 Menos de uma hora Facilidade para iniciantes 90/100
unhappychoice/oss-issue-opener#395 · 1 comentário ·
Mantenedores costumam responder em até 1 dia
-
bug Website
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 77/100
OWASP/OWASP-Hunting#88 ·
Mantenedores costumam responder em até 1 dia
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 76/100
Mantenedores costumam responder em até 1 dia