Skip to content

feat(shared): migrate the appkit CLI off the legacy workspace client - #643

Draft
MarioCadenas wants to merge 1 commit into
feat/modular-lakebasefrom
feat/modular-cli
Draft

MarioCadenas wants to merge 1 commit into
feat/modular-lakebasefrom
feat/modular-cli

Conversation

@MarioCadenas

Copy link
Copy Markdown
Collaborator

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

Changes

feat(shared): migrate the appkit CLI off the legacy workspace client

doctor and the registry picker now use the facade's modular clients
(warehouses, jobs, genie, currentUser) and its raw request() seam for
services with no modular client yet (serving, volumes, vector search,
UC functions, connections, database, experiments, apps).

  • Profile host is read via sdk-core profiles resolve (disableEnv), exposed
    from the facade as resolveProfile.
  • Resolved host comes from getHost(), which needs no network, so it is
    also shown when credentials are rejected. The ConfigError host= parsing
    is gone.
  • Existence probes classify both ApiError shapes (statusCode/errorCode and
    httpStatusCode/code), so NOT_FOUND/INVALID_VALUE/ACCESS_DENIED are kept.
  • Auth hints also match the sdk-core "profile not found" and "Host is
    required" messages.
  • The Lakebase probe hands createLakebasePool a legacy-shaped adapter,
    since that package calls currentUser.me() with no argument.

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.

doctor and the registry picker now use the facade's modular clients
(warehouses, jobs, genie, currentUser) and its raw request() seam for
services with no modular client yet (serving, volumes, vector search,
UC functions, connections, database, experiments, apps).

- Profile host is read via sdk-core profiles resolve (disableEnv), exposed
  from the facade as resolveProfile.
- Resolved host comes from getHost(), which needs no network, so it is
  also shown when credentials are rejected. The ConfigError host= parsing
  is gone.
- Existence probes classify both ApiError shapes (statusCode/errorCode and
  httpStatusCode/code), so NOT_FOUND/INVALID_VALUE/ACCESS_DENIED are kept.
- Auth hints also match the sdk-core "profile not found" and "Host is
  required" messages.
- The Lakebase probe hands createLakebasePool a legacy-shaped adapter,
  since that package calls currentUser.me() with no argument.

Co-authored-by: Isaac <no-reply@databricks.com>
Signed-off-by: MarioCadenas <MarioCadenas@users.noreply.github.com>

# Conflicts:
#	packages/shared/src/workspace-client/modular.ts
@MarioCadenas
MarioCadenas changed the base branch from feat/modular-sdk-integration to feat/modular-lakebase October 8, 2026 14:38
@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 (+22 KB) — gzipped download (dist + bin; excludes release-only docs/NOTICE).

dist raw gzip
JS (runtime) 1.3 MB (+22 KB) 456 KB (+8.5 KB)
Type declarations 461 KB (+5.2 KB) 167 KB (+1.9 KB)
Source maps 2.5 MB (+43 KB) 852 KB (+15 KB)
Other 11 KB 3.7 KB
Total 4.2 MB (+70 KB) 1.4 MB (+25 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 340 KB (+8.2 KB)
./beta 101 KB (+2.1 KB) 488 B (+4 B) 101 KB (+2.1 KB) external 303 KB (+5.6 KB)
./testing 44 KB (+1.8 KB) 32 KB (+35 B) 76 KB (+1.8 KB) external 220 KB (+5.0 KB)
./tsdown 520 B 0 B 520 B external 813 B
./type-generator 25 KB (+1.4 KB) 0 B 25 KB (+1.4 KB) external 70 KB (+3.9 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 82 KB
./beta stream-manager.js initial 5.9 KB
./beta modular.js initial 4.6 KB
./beta service-context.js initial 4.2 KB
./beta databricks.js initial 3.3 KB
./beta client.js initial 657 B
./beta index.js initial 20 B
./beta supervisor-api.js lazy 193 B
./beta databricks.js lazy 180 B
./beta index.js lazy 115 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 25 KB

@databricks/appkit-ui

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

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

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