Skip to content

feat(appkit): migrate ai-search connector to modular sdk-vectorsearch/uc-tables - #640

Open
MarioCadenas wants to merge 3 commits into
feat/modular-servingfrom
feat/modular-aisearch
Open

MarioCadenas wants to merge 3 commits into
feat/modular-servingfrom
feat/modular-aisearch

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(appkit): migrate ai-search connector to modular sdk-vectorsearch/uc-tables

Add VectorSearchClient (sdk-vectorsearch 0.51.0) and TablesClient
(sdk-uc-tables 0.52.0) to the workspace-client facade.

  • getIndex uses vectorSearch.getVectorIndex and maps back to VsIndexInfo.
  • getSourceColumns uses tables.getTable.
  • query and query-next-page use the raw request() seam: the generated
    model has no debug_level / debug_info, so typed unmarshal would drop the
    timings behind queryTimeMs. Wire shape and errors are unchanged.

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-aisearch branch from 4cabc85 to a95ae7c Compare October 8, 2026 14:37
@MarioCadenas
MarioCadenas changed the base branch from feat/modular-sdk-integration to feat/modular-serving 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 (+29 KB) — gzipped download (dist + bin; excludes release-only docs/NOTICE).

dist raw gzip
JS (runtime) 1.3 MB (+28 KB) 458 KB (+10 KB)
Type declarations 463 KB (+7.2 KB) 168 KB (+2.7 KB)
Source maps 2.5 MB (+56 KB) 857 KB (+19 KB)
Other 11 KB 3.7 KB
Total 4.2 MB (+91 KB) 1.5 MB (+32 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 (+3.2 KB) 2.5 KB 108 KB (+3.2 KB) external 341 KB (+9.2 KB)
./beta 102 KB (+3.1 KB) 482 B (-3 B) 102 KB (+3.1 KB) external 305 KB (+8.0 KB)
./testing 45 KB (+2.7 KB) 32 KB 77 KB (+2.7 KB) external 222 KB (+7.3 KB)
./tsdown 520 B 0 B 520 B external 813 B
./type-generator 26 KB (+2.6 KB) 0 B 26 KB (+2.6 KB) external 73 KB (+6.9 KB)

Chunks:

Entry Chunk Load Size (gz)
. index.js initial 101 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 5.8 KB
./beta service-context.js initial 4.2 KB
./beta databricks.js initial 3.3 KB
./beta client.js initial 648 B
./beta index.js initial 20 B
./beta supervisor-api.js lazy 190 B
./beta databricks.js lazy 177 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 26 KB

@databricks/appkit-ui

npm tarball (packed): 397 KB (+571 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 (+849 B) 98 KB (+366 B)
Source maps 853 KB (+314 B) 286 KB (+143 B)
CSS 16 KB 3.2 KB
Total 1.5 MB (+1.4 KB) 534 KB (+617 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

@MarioCadenas
MarioCadenas force-pushed the feat/modular-aisearch branch from a95ae7c to feaee1c Compare October 9, 2026 13:48
@github-actions

github-actions Bot commented Oct 9, 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 38918698867 -R databricks/appkit -n appkit-template-0.88.1-pr.af49833-feat-modular-aisearch-640 -D appkit-pr-640 \
  && unzip -o "appkit-pr-640/appkit-template-0.88.1-pr.af49833-feat-modular-aisearch-640.zip" -d "appkit-pr-640" \
  && databricks apps init --template "appkit-pr-640"

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 force-pushed the feat/modular-aisearch branch from feaee1c to 88ce98e Compare October 9, 2026 15:07
@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-aisearch branch from 88ce98e to 2265f31 Compare October 13, 2026 09:01
@MarioCadenas
MarioCadenas force-pushed the feat/modular-aisearch branch from 2265f31 to 723dd6e Compare October 13, 2026 13:03
@MarioCadenas
MarioCadenas force-pushed the feat/modular-aisearch branch from 4737a08 to 95369bf Compare October 13, 2026 14:32
@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 08:33
@MarioCadenas
MarioCadenas requested a review from a team as a code owner October 14, 2026 08:33
@MarioCadenas
MarioCadenas force-pushed the feat/modular-aisearch branch 2 times, most recently from 812cc30 to 93a14ca Compare October 14, 2026 14:35
@MarioCadenas
MarioCadenas force-pushed the feat/modular-aisearch branch from 93a14ca to 2f9a25d Compare October 15, 2026 16:29
@MarioCadenas
MarioCadenas force-pushed the feat/modular-aisearch branch from 2f9a25d to a9b7d32 Compare October 16, 2026 09:15
@MarioCadenas
MarioCadenas force-pushed the feat/modular-aisearch branch from a9b7d32 to c357e17 Compare October 16, 2026 10:21
MarioCadenas and others added 3 commits October 16, 2026 16:43
…/uc-tables

Add VectorSearchClient (sdk-vectorsearch 0.51.0) and TablesClient
(sdk-uc-tables 0.52.0) to the workspace-client facade.

- getIndex uses vectorSearch.getVectorIndex and maps back to VsIndexInfo.
- getSourceColumns uses tables.getTable.
- query and query-next-page use the raw request() seam: the generated
  model has no debug_level / debug_info, so typed unmarshal would drop the
  timings behind queryTimeMs. Wire shape and errors are unchanged.

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

# Conflicts:
#	packages/shared/src/workspace-client/client.ts
#	packages/shared/src/workspace-client/modular.ts
#	packages/shared/src/workspace-client/types.ts
Co-authored-by: Isaac <no-reply@databricks.com>
Signed-off-by: MarioCadenas <MarioCadenas@users.noreply.github.com>
…lient

Replace the raw request() path for query and query-next-page with
vectorSearch.queryVectorIndex / queryVectorIndexNextPage, backed by a pnpm
patch on @databricks/sdk-vectorsearch@0.51.0 that:

- adds the undocumented debug_level request / debug_info response fields
  (source of the plugin's queryTimeMs)
- accepts bigint row values (the SDK parses with json-bigint, and the
  unpatched schema rejected ints over 2^53)
- accepts a null next_page_token

The connector maps the camelCase model back to VsRawResponse and coerces
bigint rows to number, so the public response shape is unchanged. Tests
now drive a real VectorSearchClient over a stubbed fetch.

Co-authored-by: Isaac <no-reply@databricks.com>
Signed-off-by: MarioCadenas <MarioCadenas@users.noreply.github.com>
@MarioCadenas
MarioCadenas force-pushed the feat/modular-aisearch branch from c357e17 to fced615 Compare October 16, 2026 14:46

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.

2 participants