Open
Conversation
added 3 commits
March 20, 2026 13:06
Adds @databricks/appkit-vector-search — a plugin that gives Databricks Apps built with AppKit instant vector search query capabilities. Ships backend (Express routes, VS REST API client, auth) and frontend (React hook, styled components with Radix UI). Developer experience target: ~45 lines for a full search page with search box, results, filters, and keyword highlighting. 82 tests included. Validated against real VS index on dogfood.
- Move from packages/vector-search/ into packages/appkit/src/plugins/vector-search/ - Replace custom auth (ServicePrincipalTokenProvider, OboTokenExtractor) with AppKit's built-in asUser(req) and getWorkspaceClient() context - Add VectorSearchConnector using workspaceClient.apiClient.request() instead of raw fetch with manual token management - Plugin now extends Plugin base class with proper manifest.json, defaults.ts, this.route(), this.execute(), and toPlugin() factory - Remove standalone package.json, tsconfig.json, and vitest config - Register plugin and connector in index barrel exports Addresses review feedback: - Plugin lives under plugins/ folder alongside analytics, genie, files - No custom auth handling — uses AppKit's built-in mechanisms - Follows create-core-plugin patterns (manifest, defaults, connector) Signed-off-by: Adam Gurary <[email protected]>
- Connector: wrap VS API calls in telemetry spans with index name, query type, result count, and latency attributes - Connector: check AbortSignal before executing requests - Connector: add WideEvent context logging with query metadata - Plugin: replace this.execute() in route handlers with direct try/catch — preserves actual error details (code, message, status) instead of swallowing them into undefined - Remove unused SearchFilters import Signed-off-by: Adam Gurary <[email protected]>
pkosiec
added a commit
that referenced
this pull request
Mar 25, 2026
Brainstorm: add PR #166 (Agent plugin) and PR #200 (Vector Search plugin) as future extension references. Rename future enhancement section to cover both Vector Search and Lakebase pgvector options. Plan: address findings from multi-agent code review (architecture, security, performance, spec flow, pattern recognition): - Fix cache infrastructure: use shared CacheManager pool, not fictional maxEntries config - Clarify error contract: programmatic API errors propagate, HTTP handlers use execute() for interceptors - Separate _chatCollect()/_embed() from HTTP handlers - Add SSE buffer max size (1MB) to prevent OOM - Restrict response_format to text/json_object (no json_schema v1) - Add runtime role validation against known set - Add model to parameter allowlist for Foundation Model API - Add stop parameter bounds (4 entries, 256 chars) - Standardize connection pool at 100 (was contradictory 50/100) - Add retry on 503 for chatCollect() (cold-start resilience) - Specify setup() throws on missing endpoint, shutdown() cleanup - Extract SSE parser to stream/sse-parser.ts in Phase 2 - Add per-route body-parser middleware (not global) - Update acceptance criteria and security checklist Signed-off-by: Pawel Kosiec <[email protected]>
pkosiec
added a commit
that referenced
this pull request
Mar 25, 2026
Brainstorm: - Added chatCollect() for non-streaming programmatic API - Scoped out vision/multimodal, thinking/budget_tokens, tools/tool_choice as v2 items with specific rationale - Added reasoning_effort to v1 scope - Referenced PRs #166 (agent plugin) and #200 (vector search) - Updated references with query/vision/reasoning/function-calling docs Plan: - Cross-referenced Databricks Query API spec vs OpenAI conventions - Documented type sourcing decision (hand-write for v1, sourced from OpenAI API reference) - Added SDK comparison table (OpenAI vs Anthropic vs AppKit) - Fixed id: string | null in response types - Noted served-model-name header for telemetry - Documented extra_params vs top-level field convention Signed-off-by: Pawel Kosiec <[email protected]>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
@databricks/appkit-vector-search— a plugin that gives Databricks Apps built with AppKit instant vector search query capabilitiesWhat's included
Backend plugin (
src/plugin/):VectorSearchPlugin.ts— plugin class with lifecycle, config, route injectionVectorSearchClient.ts— REST API client for VS endpointsroutes.ts— Express route handlersauth.ts— service principal default, OBO opt-in per indexFrontend UI (
src/ui/):useVectorSearchReact hookSearchBox,SearchResults,SearchResultCard,SearchLoadMorecomponentsDesign decisions
Test plan
vitest runinpackages/vector-search/)