Skip to content

[WSLC] Proxy Pt. 3: Add runtimeConfig to WSLC provision contract - #1717

Draft
Elliot (theelliotm) wants to merge 1 commit into
user/emichlin/wslc-proxy-2-host-loopbackfrom
user/emichlin/wslc-proxy-3-provision-proxy
Draft

Elliot (theelliotm) wants to merge 1 commit into
user/emichlin/wslc-proxy-2-host-loopbackfrom
user/emichlin/wslc-proxy-3-provision-proxy

Conversation

@theelliotm

@theelliotm Elliot (theelliotm) commented Nov 10, 2026 •

Copy link
Copy Markdown
Contributor

📖 Description

Third PR in the WSLC built-in proxy stack (#1625). Adds runtimeConfig to the WSLC provision request in the development contract (1.1.0-alpha), so a later PR can let the daemon store a proxy URL at provision and apply it to every exec. Contract only: the WSLC backend still rejects runtimeConfig.networkProxy at provision with the existing "set it on the exec phase" error.

  • WslcProvisionRequest gains runtimeConfig, placed as in the MicroVM provision request, and the adapter passes it into the common request.
  • Regenerated the development schema and the Node v1_1_0_alpha TypeScript types.
  • The wslc_provision/runtime_proxy.json fixture moves from invalid to valid for 1.1.0-alpha. Published 0.9.0-alpha and 1.0.0 still reject the field.
  • Not exposed in the SDKs until the field is published.

🔗 References

Refs #1462
Spec: #1625
Stacked on #1714

🔍 Validation

On ARM64:

  • cargo fmt --all -- --check: passed
  • cargo clippy -p mxc-sdk --features wslc --all-targets -- -D warnings: passed
  • cargo test -p mxc-sdk --features wslc --lib -- config_contract_adapters wslc::common::policy: passed (199)
  • cargo test -p mxc-sdk --test mxc_contract_v1_1_0_alpha --test mxc_contract_version_boundaries: passed (382, 21)
  • node scripts/versioning/check-contract-codegen.js: passed

New tests cover accepted and rejected runtimeConfig shapes, the value reaching the common request, and WSLC still rejecting a 1.1.0-alpha provision with a proxy.

Not run: x64 and runtime suites (no runtime behavior change). CI WSLC builds fail on this stack until 3.0.5 is on NuGet.

✅ Checklist

  • Signed the Contributor License Agreement
  • Linked to an issue
  • For features or changes requiring a spec: linked the issue with maintainer-applied feature-accepted
  • For implementation: linked the required approved and merged design/API spec, or explained why no spec is required
  • Feature issue remains open unless this PR completes all agreed implementation, validation, and documentation
  • Updated documentation (if applicable)
  • Updated Copilot instructions (if build, architecture, or conventions changed)
  • If this PR changes Cargo.lock, the dependency-feed-check check passes (see pull request builds)

📋 Issue Type

  • Bug fix
  • Feature
  • Task
Microsoft Reviewers: Open in CodeFlow

@azure-pipelines

Copy link
Copy Markdown
Azure Pipelines:
There may be pipelines that require an authorized user to comment /azp run to run.

@theelliotm Elliot (theelliotm) changed the title [WSLC] add runtimeConfig to dev provision contract [WSLC] Proxy Pt. 3: Add runtimeConfig to WSLC provision contract Nov 10, 2026
@theelliotm
Elliot (theelliotm) requested a balanced review from Copilot November 10, 2026 02:09

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟢 Approval recommended

No active review issues block the development-contract runtimeConfig change.

No open issues 🎉

What changed in this PR

Prepares the development 1.1.0-alpha contract for the WSLC built-in proxy stack by adding provision-time runtimeConfig. This is contract-only: WSLC still rejects a provision-time proxy, and published contracts and SDK APIs remain unchanged.

Changes:

  • Adds runtimeConfig to the WSLC provision request and passes it through the adapter.
  • Regenerates the development schema and TypeScript types.
  • Adds parsing, adapter, and backend-rejection coverage, and documents the current limitation.
File Description
src/​mxc-sdk/​tests/​mxc_contract/​v1_1_0_alpha/​state_aware/​provision/​wslc.rs Tests accepted and rejected runtime settings.
src/​mxc-sdk/​tests/​mxc_contract/​v1_1_0_alpha/​fixtures/​wslc_provision/​valid/​runtime_proxy.json Adds a valid development-contract proxy fixture.
src/​mxc-sdk/​src/​core/​mxc_contract/​dev/​state_aware/​provision/​wslc.rs Adds optional provision-time runtime settings.
src/​mxc-sdk/​src/​core/​mxc_common/​config_contract_adapters/​dev/​state_aware.rs Passes runtime settings into the common request.
src/​mxc-sdk/​src/​core/​mxc_common/​config_contract_adapters/​dev/​state_aware_tests/​provision.rs Verifies field presence and proxy-value preservation.
src/​mxc-sdk/​src/​backends/​wslc/​common/​policy.rs Tests continued rejection of provision-time proxies.
sdk/​node/​src/​generated/​v1_1_0_alpha/​wire.ts Updates generated development-contract types.
schemas/​dev/​mxc-config.schema.1.1.0-alpha.json Updates the development schema.
docs/​backends/​wslc/​wslc-state-aware.md Clarifies contract acceptance versus backend rejection.

Review effort: Balanced

Accept runtimeConfig on the 1.1.0-alpha WSLC provision request and pass it
through the adapter. The WSLc backend still rejects networkProxy at provision.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot-Session: c3f64c2c-9005-43eb-a803-a91fb7265c5b
@theelliotm
Elliot (theelliotm) force-pushed the user/emichlin/wslc-proxy-3-provision-proxy branch from cedaf7e to acf8251 Compare November 10, 2026 22:17
Copilot AI balanced review requested due to automatic review settings November 10, 2026 22:17

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟢 Approval recommended

No active review issues were identified for the development-contract runtimeConfig plumbing.

No open issues 🎉

Review effort: Balanced

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

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants