Skip to content

Add direct-mode bundle support for AI Gateway mcp_service - #6633

Open
alex-khakhlyuk wants to merge 2 commits into
mainfrom
aigov-dabs-mcp-service
Open

Add direct-mode bundle support for AI Gateway mcp_service#6633
alex-khakhlyuk wants to merge 2 commits into
mainfrom
aigov-dabs-mcp-service

Conversation

@alex-khakhlyuk

Copy link
Copy Markdown
Member

Second of a stacked split of #6410 (databricks/cli), stacked on the model_service PR. Adds the direct-engine bundle resource for the AI Gateway MCP service securable (mcp_services): config/resource + dresources CRUD, testserver, acceptance (basic + remote-delete + bind) and an invariant config, plus registration and regenerated schema. All SDK struct literals set every field to satisfy exhaustruct; mcp_services added to the TF-lifecycle ignore list and the statemgmt full-resource-coverage fixtures. Direct engine only.

Changes

Why

Tests

Second of a stacked split of #6410 (databricks/cli), stacked on the model_service PR. Adds the direct-engine bundle resource for the AI Gateway MCP service securable (mcp_services): config/resource + dresources CRUD, testserver, acceptance (basic + remote-delete + bind) and an invariant config, plus registration and regenerated schema. All SDK struct literals set every field to satisfy exhaustruct; mcp_services added to the TF-lifecycle ignore list and the statemgmt full-resource-coverage fixtures. Direct engine only.

Co-authored-by: Isaac <no-reply@databricks.com>
@github-actions

github-actions Bot commented Sep 11, 2026

Copy link
Copy Markdown
Contributor

Approval status: pending

/acceptance/bundle/ - needs approval

30 files changed
Suggested: @janniklasrose
Also eligible: @denik, @andrewnester, @pietern, @shreyas-goenka, @anton-107, @lennartkats-db

/bundle/ - needs approval

20 files changed
Suggested: @janniklasrose
Also eligible: @denik, @andrewnester, @pietern, @shreyas-goenka, @anton-107, @lennartkats-db

General files (require maintainer)

21 files changed
Based on git history:

  • @janniklasrose -- recent work in bundle/direct/dresources/, libs/testserver/, bundle/internal/validation/generated/

Any maintainer (@andrewnester, @anton-107, @denik, @pietern, @shreyas-goenka, @simonfaltum, @renaudhartert-db, @janniklasrose, @lennartkats-db, @rugpanov, @rclarey) can approve all areas.
See OWNERS for ownership rules.

@eng-dev-ecosystem-bot

eng-dev-ecosystem-bot commented Sep 11, 2026

Copy link
Copy Markdown
Collaborator

Integration test report

Commit: 0a2dc6f

Run: 34612937287

Env ❌​FAIL 🟨​KNOWN 🔄​flaky ✅​pass 🙈​skip Time
❌​ aws linux 3 1 275 21 11:10
❌​ aws windows 3 1 1 276 19 13:12
❌​ azure linux 3 1 274 21 7:53
❌​ azure windows 3 1 276 19 10:04
❌​ gcp linux 3 1 275 21 9:08
❌​ gcp windows 3 1 277 19 11:16
Test Name aws linux aws windows azure linux azure windows gcp linux gcp windows
🟨​ TestAccept 🟨​K 🟨​K 🟨​K 🟨​K 🟨​K 🟨​K
❌​ TestAccept/bundle/resources/mcp_services/lifecycle ❌​F ❌​F ❌​F ❌​F ❌​F ❌​F
❌​ TestAccept/bundle/resources/mcp_services/lifecycle/DATABRICKS_BUNDLE_ENGINE=direct/DMS= ❌​F ❌​F ❌​F ❌​F ❌​F ❌​F
❌​ TestAccept/bundle/resources/mcp_services/lifecycle/DATABRICKS_BUNDLE_ENGINE=direct/DMS=true ❌​F ❌​F ❌​F ❌​F ❌​F ❌​F
🔄​ TestSyncNestedFolderDoesntFailOnNonEmptyDirectory ✅​p 🔄​f ✅​p ✅​p ✅​p ✅​p
Top 2 slowest tests (at least 2 minutes):
duration env testname
3:15 aws windows TestFilerWorkspaceFilesExtensionsDelete
2:35 aws linux TestExportDir

Adds a Cloud=true lifecycle test for mcp_services, matching model_services
and model_provider_services. An MCP service must point at a pre-existing UC
connection hosting the MCP server (config.source_connection), and there is no
bundle `connections` resource to deploy it as a dependency, so the script
creates a bearer-auth connection out-of-band on cloud (guarded by CLOUD_ENV)
and tears it down via trap. Bearer auth with a placeholder host avoids the
OAuth/DCR reachability probe the backend runs at create time for MCP
connections. The mock testserver doesn't validate source_connection, so the
connection is only created on the real-workspace run.

basic and remote-delete opt out with Cloud=false (they inspect the recorded
request stream / use a fixed out-of-band delete that can't run on cloud).

Co-authored-by: Isaac <no-reply@databricks.com>
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