Add support for Vector Search Endpoint (direct only)#4887
Merged
janniklasrose merged 49 commits intomainfrom Apr 20, 2026
Merged
Add support for Vector Search Endpoint (direct only)#4887janniklasrose merged 49 commits intomainfrom
janniklasrose merged 49 commits intomainfrom
Conversation
andrewnester
approved these changes
Apr 13, 2026
Contributor
andrewnester
left a comment
There was a problem hiding this comment.
Could you please add tests for bind / unbind for this resources before merging?
https://github.com/databricks/cli/tree/main/acceptance/bundle/deployment/bind
denik
reviewed
Apr 16, 2026
…date Co-authored-by: Jan Rose
denik
approved these changes
Apr 20, 2026
| print_requests() { | ||
| local name=$1 | ||
| trace print_requests.py --keep '//vector-search/endpoints' '//permissions' > out.requests.${name}.$DATABRICKS_BUNDLE_ENGINE.json | ||
| rm -f out.requests.txt |
Contributor
There was a problem hiding this comment.
why add --keep and then immediately remove out.requests.txt? That's what print_requests.py does without keep.
| @@ -0,0 +1,3 @@ | |||
| Badness = "After deleting and recreating a vector search endpoint remotely with the same name but a different UUID, bundle plan/deploy treats it as unchanged instead of deleting and recreating it." | |||
Contributor
There was a problem hiding this comment.
Is the plan to address this in follow up? It sounds like we need to store remote endpoint id in the state? We do something similiar with etag in dashboards.go.
| trace $CLI vector-search-endpoints patch-endpoint "${endpoint_name}" --min-qps 5 | ||
|
|
||
| title "Plan detects drift and proposes update" | ||
| trace $CLI bundle plan | contains.py "Plan: 0 to add, 1 to change, 0 to delete, 0 unchanged" |
Contributor
There was a problem hiding this comment.
nit: recording "changes" from json plan would be nice to confirm that min_qps is the one and only field that was detected as changed.
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.
Changes
Adds
vector_search_endpointsas a first-class resource type, using the direct deployment engine (only, no TF support).New configuration surface
Required fields:
name,endpoint_type. Optional:min_qps,budget_policy_id,permissions.Key points to note
State ID = endpoint name. The CRUD API identifies endpoints by name; the UUID
(
endpoint_uuid) is stored separately in the refresh output for use by the permissions API.endpoint_typeis immutable. Changing it triggers delete + recreate (resources.yml).Two separate update APIs.
DoUpdatedispatches to:UpdateEndpointBudgetPolicywhenbudget_policy_idchangesPatchEndpointwhenmin_qpschangesThese can fire in the same deploy if both fields change.
budget_policy_iddrift is suppressed. The API returnseffective_budget_policy_id(which includes inherited workspace policies), not the user-set value. Until the SDK
exposes
budget_policy_idseparately, remote changes to this field are ignored(
reason: effective_vs_requestedinresources.yml). See TODO inbundle/direct/dresources/vector_search_endpoint.go:53.Permissions use UUID, not name. The
PreparePermissionsInputConfigfunction uses${...endpoint_uuid}as the object ID when constructing the permissions API path forvector search endpoints.
Direct-only validation.
ValidateDirectOnlyResources(bundle/config/mutator/) emitsan error at plan/deploy time if vector_search_endpoints are present in a non-direct bundle.
Vector Search Endpoints have no Terraform provider.
No dev-mode name prefix. Like UC resources, vector search endpoint names are NOT
prefixed with the dev user name in development mode.
Tests