Skip to content

Add features bundle resource - #6952

Open
Daniel114510 wants to merge 5 commits into
mainfrom
add-features-bundle-resource
Open

Daniel114510 wants to merge 5 commits into
mainfrom
add-features-bundle-resource

Conversation

@Daniel114510

Copy link
Copy Markdown
Member

Changes

Adds features as a bundle resource type, so a Feature Engineering feature can be declared in databricks.yml and deployed, updated and destroyed like any other resource.

UpdateFeature accepts description and nothing else, so the adapter sends a static update_mask=description; every other field is excluded at plan level, with full_name, source and function marked recreate_on_changes from the spec's IMMUTABLE annotations. Literal catalog and schema names in full_name are rewritten into ${resources.…} references so a feature deploys after the catalog and schema it lives in.

Why

Features are currently created through the Python client or the API. Onboarding Features to direct engine is part of the proper DAB support effort for the Feature Engineering API.

Tests

  • go test ./bundle/... ./libs/... ./internal/... ./cmd/... ./experimental/ssh/... . — passed
  • go test ./acceptance — passed
  • task generate-check — no drift
  • task checks, task fmt — passed

Acceptance tests added:

  • bundle/resources/features/basic — full lifecycle, request trace
  • bundle/resources/features/lifecycle — cloud-capable, provisions its own table
  • bundle/resources/features/remote-delete — out-of-band delete drift
  • bundle/deployment/bind/feature — bind and unbind
  • bundle/invariant/configs/feature.yml.tmpl — invariant coverage
  • libs/testserver/feature.go — fake create/get/update/delete
  • cmd/experimental/workspace_open_test.go — features URL and resource-type lists

Live-tested against a workspace with lite-swapped Feature Store. Tested for Delta-sourced batch feature, a Kafka-stream-sourced feature, and a sawtooth-window feature. For each feature: CRUD, bind and unbind, a second bundle plan reported no changes after create and update, changing an immutable field planned a recreate every time.

Co-authored-by: Isaac <no-reply@databricks.com>
@Daniel114510
Daniel114510 requested review from a team as code owners October 6, 2026 17:55
@github-actions github-actions Bot added DABs DABs related issues PyDABs labels Oct 6, 2026
Co-authored-by: Isaac <no-reply@databricks.com>
@eng-dev-ecosystem-bot

eng-dev-ecosystem-bot commented Oct 6, 2026 •

Copy link
Copy Markdown
Collaborator

Integration test report

Commit: 17080fa

Run: 37995942239

Env ❌​FAIL ✅​pass 🙈​skip Time
❌​ aws linux-2core-8gb 3 276 22 5:14
❌​ aws-windows-latest-4core-16gb 3 278 20 5:25
❌​ azure linux-2core-8gb 3 275 22 5:08
❌​ azure-windows-latest-4core-16gb 3 277 20 6:05
❌​ gcp linux-2core-8gb 3 276 22 5:14
❌​ gcp-windows-latest-4core-16gb 3 278 20 6:09
Test Name aws linux-2core-8gb aws-windows-latest-4core-16gb azure linux-2core-8gb azure-windows-latest-4core-16gb gcp linux-2core-8gb gcp-windows-latest-4core-16gb
❌​ TestAccept ❌​F ❌​F ❌​F ❌​F ❌​F ❌​F
❌​ TestAccept/bundle/resources/features/lifecycle ❌​F ❌​F ❌​F ❌​F ❌​F ❌​F
❌​ TestAccept/bundle/resources/features/lifecycle/DMS=true ❌​F ❌​F ❌​F ❌​F ❌​F ❌​F

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

DABs DABs related issues PyDABs

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants