Skip to content

feat(shared): migrate currentUser to the modular @databricks/sdk-scim client - #645

Merged
MarioCadenas merged 2 commits into
feat/modular-auth-seamfrom
feat/modular-currentuser
Oct 19, 2026
Merged

MarioCadenas merged 2 commits into
feat/modular-auth-seamfrom
feat/modular-currentuser

Conversation

@MarioCadenas

Copy link
Copy Markdown
Collaborator

Part of the migration off @databricks/sdk-experimental onto the modular @databricks/sdk-* SDK (see #562). Base: analytics-migration-sdk.

Changes

feat(shared): migrate currentUser to the modular @databricks/sdk-scim client

The facade's currentUser accessor now returns a lazily built ScimClient
(sdk-scim 0.51.0, same core/auth/options 0.51.0) via mapToClientOptions,
so SP and OBO auth resolve exactly like warehouses/statementExecution.
Legacy currentUser.me() becomes ScimClient.me({}); it hits the same
/api/2.0/preview/scim/v2/Me endpoint and the unmarshal keeps id and
userName, the only fields AppKit reads. The CLI doctor check and the
lakebase connector stay on the legacy client.

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.

@MarioCadenas
MarioCadenas force-pushed the feat/modular-currentuser branch from 8fbd7cd to 34441ae Compare October 8, 2026 14:37
@MarioCadenas
MarioCadenas changed the base branch from analytics-migration-sdk to feat/modular-auth-seam October 8, 2026 14:37
@MarioCadenas
MarioCadenas added this pull request to stack #636 October 8, 2026 14:38
@github-actions

github-actions Bot commented Oct 8, 2026 •

Copy link
Copy Markdown
Contributor

📦 Bundle size report

Compared against bundle-size-baseline.json (main).

@databricks/appkit

npm tarball (packed): 1.2 MB (+19 KB) — gzipped download (dist + bin; excludes release-only docs/NOTICE).

dist raw gzip
JS (runtime) 1.2 MB (+19 KB) 454 KB (+7.1 KB)
Type declarations 460 KB (+4.0 KB) 167 KB (+1.6 KB)
Source maps 2.5 MB (+36 KB) 850 KB (+13 KB)
Other 11 KB 3.7 KB
Total 4.2 MB (+59 KB) 1.4 MB (+22 KB)
Per-entry composition (own code — deps external (as shipped))
Entry Initial (gz) Lazy (gz) Total (gz) node_modules (min) Own code (min)
. 104 KB (+2.3 KB) 2.5 KB (+1 B) 107 KB (+2.3 KB) external 337 KB (+5.9 KB)
./beta 101 KB (+2.3 KB) 485 B 101 KB (+2.3 KB) external 303 KB (+5.9 KB)
./testing 44 KB (+2.2 KB) 32 KB (-43 B) 76 KB (+2.2 KB) external 221 KB (+6.0 KB)
./tsdown 520 B 0 B 520 B external 813 B
./type-generator 25 KB (+2.1 KB) 0 B 25 KB (+2.1 KB) external 72 KB (+5.7 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.4 KB
./beta service-context.js initial 4.2 KB
./beta databricks.js initial 3.3 KB
./beta client.js initial 593 B
./beta index.js initial 20 B
./beta supervisor-api.js lazy 192 B
./beta databricks.js lazy 178 B
./beta index.js lazy 115 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 (+107 B) — gzipped download (dist + bin; excludes release-only docs/NOTICE).

dist raw gzip
JS (runtime) 429 KB 146 KB
Type declarations 266 KB (+265 B) 98 KB (+134 B)
Source maps 853 KB 285 KB
CSS 16 KB 3.2 KB
Total 1.5 MB (+265 B) 533 KB (+134 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 49 KB 481 KB 1.3 MB 177 KB
./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

Comment thread packages/appkit/src/context/service-context.ts
@github-actions

github-actions Bot commented Oct 8, 2026 •

Copy link
Copy Markdown
Contributor

🤖 AppKit PR bot

🔬 Run evals

Start an eval for this PR from the evals-monitor app: Go to Evals Monitor →

📦 Try this PR's app template

Scaffolds a new app from this PR's SDK build. Run it in any folder (requires the GitHub CLI — gh auth login — and the Databricks CLI):

gh run download 38918747755 -R databricks/appkit -n appkit-template-0.88.1-pr.bce4667-feat-modular-currentuser-645 -D appkit-pr-645 \
  && unzip -o "appkit-pr-645/appkit-template-0.88.1-pr.bce4667-feat-modular-currentuser-645.zip" -d "appkit-pr-645" \
  && databricks apps init --template "appkit-pr-645"

The template pins @databricks/appkit and @databricks/appkit-ui to tarballs built from this branch, so the scaffolded app runs against this PR's code.

@MarioCadenas
MarioCadenas removed this pull request from stack #636 October 13, 2026 08:32
@MarioCadenas
MarioCadenas added this pull request to stack #664 October 13, 2026 08:33
@MarioCadenas
MarioCadenas force-pushed the feat/modular-currentuser branch from 97e3148 to 31e264a Compare October 13, 2026 09:01
@MarioCadenas
MarioCadenas removed this pull request from stack #664 October 13, 2026 15:47
@MarioCadenas
MarioCadenas added this pull request to stack #669 October 13, 2026 15:48
@MarioCadenas
MarioCadenas marked this pull request as ready for review October 14, 2026 12:54
@MarioCadenas
MarioCadenas requested a review from a team as a code owner October 14, 2026 12:54
@MarioCadenas
MarioCadenas force-pushed the feat/modular-currentuser branch 2 times, most recently from 7feb73c to 4b19a21 Compare October 14, 2026 14:35
@MarioCadenas
MarioCadenas force-pushed the feat/modular-currentuser branch from 4b19a21 to 147461c Compare October 15, 2026 16:29
@MarioCadenas
MarioCadenas force-pushed the feat/modular-currentuser branch 2 times, most recently from 5044d9f to ddfa14f Compare October 16, 2026 10:21
MarioCadenas and others added 2 commits October 16, 2026 16:43
… client

The facade's currentUser accessor now returns a lazily built ScimClient
(sdk-scim 0.51.0, same core/auth/options 0.51.0) via mapToClientOptions,
so SP and OBO auth resolve exactly like warehouses/statementExecution.
Legacy currentUser.me() becomes ScimClient.me({}); it hits the same
/api/2.0/preview/scim/v2/Me endpoint and the unmarshal keeps id and
userName, the only fields AppKit reads. The CLI doctor check and the
lakebase connector stay on the legacy client.

Co-authored-by: Isaac <no-reply@databricks.com>
Signed-off-by: MarioCadenas <MarioCadenas@users.noreply.github.com>
createCallerContext fell back to the legacy SDK Config.host in development,
which the legacy client fills only after its first API call. With
currentUser.me() and the rest of startup on the modular SDK, no legacy call
happens, so profile-only setups (no DATABRICKS_HOST) threw
missingEnvVar("DATABRICKS_HOST") on every asUser call.

Resolve the host once at init with wsClient.getHost() (local, profile-aware)
and use it as the same dev-only fallback. A getHost() failure leaves it unset
so callers keep getting missingEnvVar instead of failing startup.

Co-authored-by: Isaac <no-reply@databricks.com>
Signed-off-by: MarioCadenas <MarioCadenas@users.noreply.github.com>
@MarioCadenas
MarioCadenas force-pushed the feat/modular-currentuser branch from ddfa14f to e26a83c Compare October 16, 2026 14:46
@MarioCadenas
MarioCadenas merged commit b7a9b2b into main Oct 19, 2026
21 of 24 checks passed
@MarioCadenas
MarioCadenas deleted the feat/modular-currentuser branch October 19, 2026 11:16
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants