Repository navigation
feat(appkit): migrate jobs to modular @databricks/sdk-jobs - #647
Open
MarioCadenas wants to merge 3 commits into
Open
MarioCadenas wants to merge 3 commits into
MarioCadenas wants to merge 3 commits into
Conversation
MarioCadenas
force-pushed
the
feat/modular-jobs
branch
from
October 8, 2026 14:37
b111772 to
f40c6a7
Compare
MarioCadenas
changed the base branch from
analytics-migration-sdk
to
feat/modular-genie
October 8, 2026 14:37
MarioCadenas
added this pull request to stack #636
October 8, 2026 14:38
Contributor
📦 Bundle size reportCompared against
|
| dist | raw | gzip |
|---|---|---|
| JS (runtime) | 1.3 MB (+22 KB) | 456 KB (+8.6 KB) |
| Type declarations | 461 KB (+5.0 KB) | 167 KB (+2.1 KB) |
| Source maps | 2.5 MB (+44 KB) | 853 KB (+15 KB) |
| Other | 11 KB | 3.7 KB |
| Total | 4.2 MB (+72 KB) | 1.4 MB (+26 KB) |
Per-entry composition (own code — deps external (as shipped))
| Entry | Initial (gz) | Lazy (gz) | Total (gz) | node_modules (min) | Own code (min) |
|---|---|---|---|---|---|
. |
105 KB (+2.7 KB) | 2.5 KB (+1 B) | 107 KB (+2.7 KB) | external | 339 KB (+7.3 KB) |
./beta |
101 KB (+2.5 KB) | 480 B (-5 B) | 101 KB (+2.5 KB) | external | 304 KB (+6.4 KB) |
./testing |
44 KB (+2.4 KB) | 32 KB (-44 B) | 77 KB (+2.4 KB) | external | 221 KB (+6.5 KB) |
./tsdown |
520 B | 0 B | 520 B | external | 813 B |
./type-generator |
25 KB (+2.3 KB) | 0 B | 25 KB (+2.3 KB) | external | 73 KB (+6.1 KB) |
Chunks:
| Entry | Chunk | Load | Size (gz) |
|---|---|---|---|
. |
index.js |
initial | 100 KB |
. |
utils.js |
initial | 4.6 KB |
. |
remote-tunnel-manager.js |
lazy | 2.5 KB |
./beta |
beta.js |
initial | 81 KB |
./beta |
stream-manager.js |
initial | 5.9 KB |
./beta |
modular.js |
initial | 5.6 KB |
./beta |
service-context.js |
initial | 4.2 KB |
./beta |
databricks.js |
initial | 3.3 KB |
./beta |
client.js |
initial | 595 B |
./beta |
index.js |
initial | 20 B |
./beta |
supervisor-api.js |
lazy | 189 B |
./beta |
databricks.js |
lazy | 177 B |
./beta |
index.js |
lazy | 114 B |
./testing |
manifest.js |
initial | 31 KB |
./testing |
index.js |
initial | 10 KB |
./testing |
wide-event-emitter.js |
initial | 2.9 KB |
./testing |
index.js |
lazy | 28 KB |
./testing |
remote-tunnel-manager.js |
lazy | 2.5 KB |
./testing |
utils.js |
lazy | 1.8 KB |
./tsdown |
index.js |
initial | 520 B |
./type-generator |
index.js |
initial | 25 KB |
@databricks/appkit-ui
npm tarball (packed): 397 KB (+549 B) — gzipped download (dist + bin; excludes release-only docs/NOTICE).
| dist | raw | gzip |
|---|---|---|
| JS (runtime) | 429 KB (+235 B) | 147 KB (+108 B) |
| Type declarations | 267 KB (+733 B) | 98 KB (+344 B) |
| Source maps | 853 KB (+314 B) | 286 KB (+143 B) |
| CSS | 16 KB | 3.2 KB |
| Total | 1.5 MB (+1.3 KB) | 534 KB (+595 B) |
Per-entry composition (consumer bundle — deps bundled, peerDeps external)
| Entry | Initial (gz) | Lazy (gz) | Total (gz) | node_modules (min) | Own code (min) |
|---|---|---|---|---|---|
./js |
5.3 KB | 49 KB | 55 KB | 208 KB | 14 KB |
./js/beta |
2.1 KB | 0 B | 2.1 KB | 0 B | 5.0 KB |
./react |
433 KB (+12 B) | 49 KB | 481 KB (+12 B) | 1.3 MB | 177 KB (+41 B) |
./react/beta |
4.9 KB | 0 B | 4.9 KB | 0 B | 12 KB |
Chunks:
| Entry | Chunk | Load | Size (gz) |
|---|---|---|---|
./js |
index.js |
initial | 5.2 KB |
./js |
chunk |
initial | 120 B |
./js |
apache-arrow |
lazy | 49 KB |
./js/beta |
beta.js |
initial | 2.1 KB |
./react |
index.js |
initial | 431 KB |
./react |
tslib |
initial | 2.1 KB |
./react |
apache-arrow |
lazy | 49 KB |
./react/beta |
beta.js |
initial | 4.9 KB |
Contributor
🤖 AppKit PR bot🔬 Run evalsStart an eval for this PR from the evals-monitor app: Go to Evals Monitor → 📦 Try this PR's app templateScaffolds a new app from this PR's SDK build. Run it in any folder (requires the GitHub CLI — gh run download 38918722527 -R databricks/appkit -n appkit-template-0.88.1-pr.00b11be-feat-modular-jobs-647 -D appkit-pr-647 \
&& unzip -o "appkit-pr-647/appkit-template-0.88.1-pr.00b11be-feat-modular-jobs-647.zip" -d "appkit-pr-647" \
&& databricks apps init --template "appkit-pr-647"The template pins |
MarioCadenas
force-pushed
the
feat/modular-jobs
branch
2 times, most recently
from
October 9, 2026 15:07
cb3756e to
bd2920c
Compare
MarioCadenas
removed this pull request from stack #636
October 13, 2026 08:32
MarioCadenas
added this pull request to stack #664
October 13, 2026 08:33
MarioCadenas
force-pushed
the
feat/modular-jobs
branch
from
October 13, 2026 09:01
bd2920c to
48dc8e9
Compare
MarioCadenas
force-pushed
the
feat/modular-jobs
branch
from
October 13, 2026 14:32
48dc8e9 to
dc04206
Compare
MarioCadenas
removed this pull request from stack #664
October 13, 2026 15:47
MarioCadenas
added this pull request to stack #669
October 13, 2026 15:48
MarioCadenas
marked this pull request as ready for review
October 14, 2026 11:03
MarioCadenas
force-pushed
the
feat/modular-jobs
branch
2 times, most recently
from
October 14, 2026 14:35
ca66b67 to
7b9887d
Compare
MarioCadenas
force-pushed
the
feat/modular-jobs
branch
from
October 15, 2026 16:29
7b9887d to
0c9aa3a
Compare
MarioCadenas
force-pushed
the
feat/modular-jobs
branch
2 times, most recently
from
October 16, 2026 10:21
b85993e to
6c1704d
Compare
Route the facade's `jobs` accessor to a lazily built JobsClient (Jobs API 2.2) and move the jobs connector onto it: - submit/get/listRuns -> submitRun/getJob/listRunsIter; signal passed as CallOptions, legacy Context adapter removed. - 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 (bigint would make JSON.stringify throw). Record<string, string> fields keep user keys verbatim. - Rebuild runNow's response from the waiter's runId (number_in_job is documented as equal to run_id). - Surface the modular ApiError's httpStatusCode as statusCode so upstream 4xx keep mapping to the right HTTP status. The CLI's jobs calls stay on the legacy client via toLegacyWorkspaceClient. Co-authored-by: Isaac <no-reply@databricks.com> Signed-off-by: MarioCadenas <MarioCadenas@users.noreply.github.com>
Drop the snake_case wire-shape translation in the jobs connector and use
the modular SDK's camelCase requests and models end to end. Only bigint
int64s are converted to number (JSON/SSE/cache can't serialize bigint).
- Connector types: JobRun, JobBaseRun, JobRunOutput, JobDetails
(Numeric<T> over the SDK models); runNow returns { runId }.
- mapParams emits notebookParams/pythonNamedParams/... .
- Playground, template and docs updated to the camelCase fields.
- Drop the unused legacy `jobs` type namespace re-export.
Co-authored-by: Isaac <no-reply@databricks.com>
Signed-off-by: MarioCadenas <MarioCadenas@users.noreply.github.com>
Alias JobRunNowResponse/JobSubmitRunResponse as Numeric<> over the SDK's
RunNowResponse/SubmitRunResponse instead of hand-written { runId: number }.
Co-authored-by: Isaac <no-reply@databricks.com>
Signed-off-by: MarioCadenas <MarioCadenas@users.noreply.github.com>
MarioCadenas
force-pushed
the
feat/modular-jobs
branch
from
October 16, 2026 14:46
6c1704d to
9ba517a
Compare
atilafassina
approved these changes
Oct 16, 2026
This branch has not been deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Part of the migration off
@databricks/sdk-experimentalonto the modular@databricks/sdk-*SDK (see #562). Base:analytics-migration-sdk.Changes
feat(appkit): migrate jobs to modular @databricks/sdk-jobs
Route the facade's
jobsaccessor to a lazily built JobsClient (Jobs API2.2) and move the jobs connector onto it:
CallOptions, legacy Context adapter removed.
shape at the connector boundary, so the plugin's HTTP, SSE and cache
output is unchanged (bigint would make JSON.stringify throw).
Record<string, string> fields keep user keys verbatim.
documented as equal to run_id).
4xx keep mapping to the right HTTP status.
The CLI's jobs calls stay on the legacy client via toLegacyWorkspaceClient.
Draft: implemented by an agent; needs review and a deployed SP + OBO check before it's marked ready.
This pull request and its description were written by Isaac.