fix(vscode): auto-enable multi-language worker for JDBC connector - #9535
Merged
Andrew Eldridge (andrew-eldridge) merged 8 commits intoAug 13, 2026
Conversation
) The JDBC built-in connector runs on the Functions multi-language (Java) worker, gated by AzureWebJobsFeatureFlags=EnableMultiLanguageWorker. A plain codeless Logic App never received that flag, so a driver JAR placed in lib/builtinOperationSdks/JAR was never loaded locally and connections failed with "JDBC client library is missing". - Self-heal on design-time startup: when driver JAR(s) exist, merge EnableMultiLanguageWorker into local.settings.json (preserving any existing flags) in regenerateLocalSettings. - Warn (non-blocking, with docs link) when JDBC JARs are present but no local Java runtime (JDK) is found. - Add jdbcConnector util (JAR detection, flag merge, Java runtime check). - Unit + integration tests for all branches and edge cases. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> Copilot-Session: 72cac36b-47ce-4d10-a368-b71fddfca967
…t-investigate-issue-8597 # Conflicts: # apps/vs-code-designer/src/app/commands/createNewCodeProject/CodeProjectBase/CreateLogicAppWorkspace.ts # apps/vs-code-designer/src/app/projectConsistency/__test__/projectFilesConsistency.test.ts # apps/vs-code-designer/src/app/projectConsistency/projectFilesConsistency.ts # apps/vs-code-designer/src/app/utils/codeless/startDesignTimeApi.ts
The merge commit's pre-commit lint-staged hook applied eslint/biome auto-fixes (consistent-type-imports, trailing-whitespace strips, line reflows) to files pulled in from origin/main, adding churn unrelated to the JDBC fix. Restore those files to their exact origin/main content and re-apply only the JDBC self-heal to projectFilesConsistency so this PR's diff is limited to the JDBC connector change. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> Copilot-Session: 72cac36b-47ce-4d10-a368-b71fddfca967
…ngs generator Addresses PR review feedback: generateLocalSettingsJson is the single source of truth for local.settings.json content, so it now owns whether EnableMultiLanguageWorker belongs in the baseline via an optional hasJdbcDriverJars signal. The async disk probe stays in ensureLocalSettingsFile so the generator remains synchronous (avoiding a breaking change for all other callers), and the repair path keeps merging with existing user-defined flags so custom values are never clobbered. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> Copilot-Session: 72cac36b-47ce-4d10-a368-b71fddfca967
Contributor
🤖 AI PR Validation ReportPR Review ResultsThank you for your submission! Here's detailed feedback on your PR title and body compliance:✅ PR Title
✅ Commit Type
✅ Risk Level
✅ What & Why
✅ Impact of Change
✅ Test Plan
|
| Section | Status | Recommendation |
|---|---|---|
| Title | ✅ | No change needed |
| Commit Type | ✅ | No change needed |
| Risk Level | ✅ | Medium is correct (extension + local settings) |
| What & Why | ✅ | No change needed |
| Impact of Change | ✅ | No change needed |
| Test Plan | ✅ | No change needed |
| Contributors | Optional — already credited | |
| Screenshots/Videos | ✅ | N/A is appropriate |
All required checks pass. This PR is compliant with the team template and is cleared to merge. Nice work on the thorough root-cause writeup and test coverage.
Powered by: Copilot CLI (claude-opus-4.8) | Last updated: Thu, 13 Aug 2026 19:31:30 GMT
Andrew Eldridge (andrew-eldridge)
requested a review
from Carlos Castro Trejo (ccastrotrejo)
August 13, 2026 16:37
…astrotrejo-microsoft-investigate-issue-8597-patch
Andrew Eldridge (andrew-eldridge)
marked this pull request as ready for review
August 13, 2026 16:45
Copilot started reviewing on behalf of
Andrew Eldridge (andrew-eldridge)
August 13, 2026 16:45
View session
Contributor
📊 Coverage Check🎉 All changed files have adequate test coverage! |
Contributor
There was a problem hiding this comment.
Pull request overview
Fixes local JDBC connector startup by enabling the Java worker when driver JARs are detected and warning when Java is unavailable.
Changes:
- Detects JDBC drivers and merges the multi-language worker flag.
- Adds Java prerequisite guidance.
- Adds unit and integration coverage.
Reviewed changes
Copilot reviewed 10 out of 10 changed files in this pull request and generated 3 comments.
Show a summary per file
| File | Description |
|---|---|
jdbcConnectorPrerequisites.test.ts |
Adds filesystem integration tests. |
constants.ts |
Adds JDBC paths and documentation URL. |
jdbcConnector.ts |
Adds JAR and Java detection. |
jdbcConnector.test.ts |
Tests JDBC utilities and warning flow. |
startDesignTimeApi.ts |
Runs the Java prerequisite check. |
projectFilesConsistency.ts |
Repairs feature flags when JDBC drivers exist. |
localSettings.ts |
Generates JDBC-aware settings. |
localSettings.test.ts |
Tests JDBC-aware generation. |
projectFilesConsistency.test.ts |
Tests settings self-healing. |
CreateLogicAppWorkspace.ts |
Reuses folder constants. |
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
Carlos Castro Trejo (ccastrotrejo)
approved these changes
Aug 13, 2026
Andrew Eldridge (andrew-eldridge)
deleted the
aeldridge/ccastrotrejo-microsoft-investigate-issue-8597-patch
branch
August 13, 2026 21:08
This was referenced Aug 14, 2026
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.
Commit Type
Risk Level
What & Why
Fixes #8597. Using the JDBC built-in connector in a local Standard Logic App failed with "JDBC client library is missing" even when the driver JAR (for example,
ojdbc8.jar) was correctly placed inlib/builtinOperationSdks/JAR.The JDBC connector is a Java built-in operation that only runs when the Functions multi-language Java worker is enabled via the app setting
AzureWebJobsFeatureFlags=EnableMultiLanguageWorker. The extension only wrote that flag forcustomCode,rulesEngine, andcodefulproject types, so a plain codeless Logic App never got it and the Java worker never started locally. This is why it works in the Portal/Kudu, where the runtime is already provisioned, but not in VS Code.This change makes the tooling self-heal the prerequisite instead of requiring users to discover it by trial and error:
lib/builtinOperationSdks/JAR,EnableMultiLanguageWorkeris merged intolocal.settings.json. The merge preserves existing flags and is idempotent, so it does not clobber user values.The JAR-detection, flag-merge, and Java-runtime checks live in
app/utils/java/jdbcConnector.tsso they are easy to test and reuse.createLibFolderwas also updated to reuse the new folder-name constants with no behavior change.Impact of Change
lib/builtinOperationSdks/JARand reopening the designer, with clear guidance when a JDK is missing. No manuallocal.settings.jsonedit is required.app/utils/java/jdbcConnector.tshelpers (hasJdbcDriverJars,mergeMultiLanguageWorkerFlag,isJavaRuntimeInstalled,warnIfJdbcJavaRuntimeMissing) and newbuiltinOperationSdksFolderName,jarFolderName, andjdbcConnectorDocsUrlconstants.Test Plan
pnpm run test:extension-unit(jdbcConnector 19 tests, validateProjectArtifacts 56 tests including 4 new tests, CreateLogicAppWorkspace 83 tests) all passing; E2E integration suite type-checks viatsc -p tsconfig.e2e.json; Biome clean; changed files type-check clean.New coverage:
app/utils/java/__test__/jdbcConnector.test.ts- JAR detection (casing, empty folder, non-JAR files, missing folder), flag merge (empty, idempotent, preserve, dedupe, whitespace), Java runtime check, and warning flow.validateProjectArtifacts.test.ts- self-heal branches (add, merge without clobbering, idempotent, no-op when no JARs).test/e2e/integration/jdbcConnectorPrerequisites.test.ts- real on-disk contract for the self-heal.Contributors
Root cause and prerequisites corroborated by community findings on the issue thread (Matt Milner (@mnmilner)).
Screenshots/Videos
N/A - no visual UI changes.
Closes #8597