Skip to content

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

Draft
MarioCadenas wants to merge 1 commit into
feat/modular-auth-seamfrom
feat/modular-currentuser
Draft

MarioCadenas wants to merge 1 commit 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.

… 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>
@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 (+12 KB) — gzipped download (dist + bin; excludes release-only docs/NOTICE).

dist raw gzip
JS (runtime) 1.2 MB (+12 KB) 452 KB (+4.5 KB)
Type declarations 459 KB (+3.3 KB) 167 KB (+1.3 KB)
Source maps 2.5 MB (+23 KB) 845 KB (+8.2 KB)
Other 11 KB 3.7 KB
Total 4.2 MB (+38 KB) 1.4 MB (+14 KB)
Per-entry composition (own code — deps external (as shipped))
Entry Initial (gz) Lazy (gz) Total (gz) node_modules (min) Own code (min)
. 103 KB (+1.0 KB) 2.5 KB (+1 B) 106 KB (+1.0 KB) external 334 KB (+2.7 KB)
./beta 99 KB (+1.0 KB) 485 B (+1 B) 100 KB (+1.0 KB) external 300 KB (+2.6 KB)
./testing 43 KB (+1.1 KB) 32 KB (+1 B) 75 KB (+1.1 KB) external 218 KB (+3.1 KB)
./tsdown 520 B 0 B 520 B external 813 B
./type-generator 24 KB (+1.0 KB) 0 B 24 KB (+1.0 KB) external 69 KB (+2.9 KB)

Chunks:

Entry Chunk Load Size (gz)
. index.js initial 98 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 4.3 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 193 B
./beta databricks.js lazy 178 B
./beta index.js lazy 114 B
./testing manifest.js initial 30 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 24 KB

@databricks/appkit-ui

npm tarball (packed): 397 KB (+102 B) — gzipped download (dist + bin; excludes release-only docs/NOTICE).

dist raw gzip
JS (runtime) 428 KB 146 KB
Type declarations 266 KB (+225 B) 98 KB (+125 B)
Source maps 852 KB 285 KB
CSS 16 KB 3.2 KB
Total 1.5 MB (+225 B) 533 KB (+125 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

await Promise.all([
ServiceContext.getWorkspaceId(wsClient),
wsClient.currentUser.me(),
wsClient.currentUser.me({}),

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[SDK improvement] would be nice if .me({}) already had the object as a default and could be called empty without the empty object like currentUser.me()

@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 37794004409 -R databricks/appkit -n appkit-template-0.87.0-pr.74a0930-feat-modular-currentuser-645 -D appkit-pr-645 \
  && unzip -o "appkit-pr-645/appkit-template-0.87.0-pr.74a0930-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.

This branch has not been deployed

No deployments
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.

1 participant