Visitar URL original
Add features bundle resource by Daniel114510 · Pull Request #6952 · databricks/cli · GitHub
Skip to content

Add features bundle resource - #6952

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

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

Conversation

@Daniel114510

@Daniel114510 Daniel114510 commented Oct 6, 2026 •

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

Integration test is skipped: The cloud test environments are production workspaces, and the feature-engineering service there has not yet received a build compatible with the create payload this resource sends, so features/lifecycle fails on create for reasons unrelated to this change. Running that same acceptance test against a staging workspace already serving a compatible build passes both DMS variants with no diff against the golden, including the two bundle plan assertions that confirm no field reads back as drift.

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: 71fba4e

Run: 38003624475

Env ✅​pass 🙈​skip Time
✅​ aws linux-2core-8gb 276 23 4:19
✅​ aws-windows-latest-4core-16gb 278 21 3:39
✅​ azure linux-2core-8gb 275 23 4:24
✅​ azure-windows-latest-4core-16gb 277 21 3:40
✅​ gcp linux-2core-8gb 276 23 4:14
✅​ gcp-windows-latest-4core-16gb 278 21 3:06
Top 3 slowest tests (at least 2 minutes):
duration env testname
3:39 azure-windows-latest-4core-16gb TestAccept
3:37 aws-windows-latest-4core-16gb TestAccept
3:05 gcp-windows-latest-4core-16gb TestAccept

Daniel114510 and others added 4 commits October 6, 2026 20:00

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