Repository navigation
feat(shared): migrate currentUser to the modular @databricks/sdk-scim client - #645
MarioCadenas wants to merge 1 commit into
Conversation
… 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>
8fbd7cd to
34441ae
Compare
📦 Bundle size reportCompared against
|
| 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({}), |
There was a problem hiding this comment.
[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()
🤖 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 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 |
Part of the migration off
@databricks/sdk-experimentalonto 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.