Skip to content

Document process containers proxy packaging and deployment for developers - #814

Merged
Branden Bonaby (bbonaby) merged 23 commits into
mainfrom
user/bbonaby/add-proxy-package-manifest-doc
Aug 13, 2026
Merged

Document process containers proxy packaging and deployment for developers#814
Branden Bonaby (bbonaby) merged 23 commits into
mainfrom
user/bbonaby/add-proxy-package-manifest-doc

Conversation

@bbonaby

@bbonaby Branden Bonaby (bbonaby) commented Aug 11, 2026

Copy link
Copy Markdown
Collaborator

📖 Description

Adds stacked ProcessContainer proxy deployment guidance for schema 0.8.

  • Covers packaged and unpackaged proxies, with and without AppContainer isolation.
  • Defines proxy identity, endpoint, hostLoopback, WFP, and firewall responsibilities.
  • Adds a packaged AppContainer proxy manifest and configuration example.

🔗 References

🔍 Validation

✅ Checklist

📋 Issue Type

  • Bug fix
  • Feature
  • Task

GitHub Actions runs the PR validation build automatically. The ADO pipeline
(MXC-PR-Build) is the Azure version of the PR pipeline, kept in parity with the GitHub
Actions build; it runs on merge to main, and Microsoft reviewers with write access can trigger it
on a PR with /azp run. See docs/pull-requests.md.

If the dependency-feed-check check fails on a new dependency, the crate must be added to
the feed before the PR can pass. See docs/pull-requests.md
for the steps.

Microsoft Reviewers: Open in CodeFlow

@bbonaby
Branden Bonaby (bbonaby) requested a review from a team as a code owner August 11, 2026 23:47
@azure-pipelines

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

Copilot AI balanced review requested due to automatic review settings August 12, 2026 00:10
@bbonaby
Branden Bonaby (bbonaby) force-pushed the user/bbonaby/add-proxy-package-manifest-doc branch from 346a94b to a5f7540 Compare August 12, 2026 00:10

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.

Pull request overview

Expands schema 0.8 ProcessContainer proxy deployment guidance with identity and packaging options.

Changes:

  • Documents proxy identity and firewall authorization models.
  • Adds an example packaged AppContainer manifest.
  • Describes the weaker unpackaged host-loopback configuration.
Show a summary per file
File Description
docs/process-container/networking.md Documents proxy deployment and enforcement options.
docs/process-container/examples/0.8.0-schema.md Adds manifest and configuration examples.

Review details

Tip

Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

Suppressed comments (1)

docs/process-container/examples/0.8.0-schema.md:78

  • This rule omits LocalPortMin/LocalPortMax, so it authorizes every inbound TCP port for proxy.exe on every network profile rather than only the documented proxy endpoint. Scope the rule to port 8080 (and have deployers substitute their configured proxy port) to avoid exposing unrelated listeners in the same executable.
        <desktop2:Rule Direction="in" IPProtocol="TCP" Profile="all" />
  • Files reviewed: 2/2 changed files
  • Comments generated: 1
  • Review effort level: Balanced

Comment thread docs/process-container/examples/0.8.0-schema.md Outdated
Copilot AI review requested due to automatic review settings August 12, 2026 00:17
@bbonaby
Branden Bonaby (bbonaby) force-pushed the user/bbonaby/add-proxy-package-manifest-doc branch from a5f7540 to 3d61728 Compare August 12, 2026 00: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.

Review details

Suppressed comments (1)

docs/process-container/examples/0.8.0-schema.md:92

  • The example still configures allowedProxyPeer as agent-proxy, but this manifest installs a package whose family name is derived from both Identity Name and Publisher (for example, Contoso.AgentProxy_<publisher-id>). Without telling readers to use the installed PackageFamilyName, the sample configuration will not authorize this proxy. Please make that mapping explicit and show how to retrieve the PFN.
Replace the identity, publisher, architecture, executable, display strings,
and logo. The publisher must match the signing certificate. `runFullTrust` is
required by the firewall extension; `TrustLevel="appContainer"` still runs the
proxy in an AppContainer. Replace both firewall-rule port values with the port
from `runtimeConfig.networkProxy`.
  • Files reviewed: 2/2 changed files
  • Comments generated: 0 new
  • Review effort level: Balanced

Copilot AI review requested due to automatic review settings August 12, 2026 02:23
@bbonaby
Branden Bonaby (bbonaby) force-pushed the user/bbonaby/add-proxy-package-manifest-doc branch from 3d61728 to 918321e Compare August 12, 2026 02:23

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.

Review details

  • Files reviewed: 2/2 changed files
  • Comments generated: 0 new
  • Review effort level: Balanced

Copilot AI review requested due to automatic review settings August 12, 2026 03:54
@bbonaby
Branden Bonaby (bbonaby) force-pushed the user/bbonaby/add-proxy-package-manifest-doc branch from 918321e to 517ab56 Compare August 12, 2026 03:54

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.

Review details

Suppressed comments (1)

docs/process-container/examples/0.8.0-schema.md:76

  • The current manifest still authorizes inbound TCP on every local port for proxy.exe, even though this example configures port 8080. That broadens the firewall exception beyond the proxy endpoint and contradicts the stated deployment hardening. Scope the rule with LocalPortMin="8080" LocalPortMax="8080" (and revise the dynamic-port paragraph accordingly); if the proxy genuinely needs a runtime-assigned port, its installer must create/update an equivalently scoped rule after selecting that port.
        <desktop2:Rule Direction="in" IPProtocol="TCP" Profile="all" />
  • Files reviewed: 2/2 changed files
  • Comments generated: 0 new
  • Review effort level: Balanced

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.

Review details

Suppressed comments (3)

docs/process-container/examples/0.8.0-schema.md:53

  • The current wording still permits additional wildcard or non-loopback listeners. Since the manifest grants private-network capability and inbound firewall access, a proxy that also listens on 0.0.0.0 or [::] becomes reachable from the private network. Require the proxy to expose only the configured loopback listener.
The proxy must already be running and listening on the loopback address and
port configured by `runtimeConfig.networkProxy`. MXC validates that the
configured endpoint is loopback but does not constrain the proxy's other
listeners. A packaged AppContainer proxy needs `privateNetworkClientServer`,

docs/process-container/examples/0.8.0-schema.md:88

  • This package installs an inbound TCP rule for every local port, although the example config uses port 8080. Scope the rule with LocalPortMin="8080" and LocalPortMax="8080", and update the later prose that currently endorses the unrestricted rule. A dynamic port would require deployment-time creation of a correspondingly scoped firewall rule rather than this static manifest rule.
        <desktop2:Rule Direction="in" IPProtocol="TCP" Profile="all" />

docs/process-container/networking.md:115

  • The PR description promises packaged non-AppContainer and unpackaged non-AppContainer alternatives, including the weaker ingress.hostLoopback: "allow" path, but this complete options table and the rest of both changed documents cover only AppContainer proxies. Add the two documented alternatives with their identity, firewall, and isolation implications, or narrow the PR description to the implemented scope.
| Packaged AppContainer | Package family name | AppContainer isolation and package firewall rule |
| Unpackaged AppContainer | AppContainer profile name | AppContainer isolation and administrator firewall rule |
  • Files reviewed: 2/2 changed files
  • Comments generated: 0 new
  • Review effort level: Balanced

@bbonaby
Branden Bonaby (bbonaby) force-pushed the user/bbonaby/add-proxy-package-manifest-doc branch from 9d1b9a1 to 854a618 Compare August 12, 2026 22:11
Copilot AI review requested due to automatic review settings August 12, 2026 22:11

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.

Review details

Suppressed comments (2)

docs/process-container/examples/0.8.0-schema.md:88

  • This rule authorizes inbound TCP on every local port and network profile. Since the text explicitly allows the proxy to have other listeners, a proxy that also binds 0.0.0.0 or [::] exposes those listeners to the network rather than only to the intended loopback client. Scope the example rule to the configured proxy port and require the proxy listener to bind only to loopback.
        <desktop2:Rule Direction="in" IPProtocol="TCP" Profile="all" />

docs/process-container/networking.md:115

  • The advertised packaged non-AppContainer and unpackaged non-AppContainer deployment paths are missing: this table lists only the two AppContainer variants, and the file contains no guidance for the weaker ingress.hostLoopback: "allow" path described in the PR. Please either document those alternatives (including their allowedProxyPeer/firewall behavior) or narrow the PR description.
A packaged AppContainer proxy is recommended. Supported deployment options are:

| Proxy deployment | `allowedProxyPeer` | Enforcement |
|---|---|---|
| Packaged AppContainer | Package family name | AppContainer isolation and package firewall rule |
| Unpackaged AppContainer | AppContainer profile name | AppContainer isolation and administrator firewall rule |
  • Files reviewed: 2/2 changed files
  • Comments generated: 0 new
  • Review effort level: Balanced

Copilot AI review requested due to automatic review settings August 12, 2026 22:24
@bbonaby
Branden Bonaby (bbonaby) force-pushed the user/bbonaby/add-proxy-package-manifest-doc branch from 854a618 to 05d2a94 Compare August 12, 2026 22:24
Base automatically changed from user/bbonaby/update-network-policy-docs to main August 13, 2026 17:11
Branden Bonaby (bbonaby) and others added 23 commits August 13, 2026 10:11
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

Copilot-Session: 789939a6-ae1c-4fb7-9729-5988d3657e7b
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

Copilot-Session: 789939a6-ae1c-4fb7-9729-5988d3657e7b
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

Copilot-Session: 789939a6-ae1c-4fb7-9729-5988d3657e7b
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

Copilot-Session: 789939a6-ae1c-4fb7-9729-5988d3657e7b
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

Copilot-Session: 789939a6-ae1c-4fb7-9729-5988d3657e7b
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

Copilot-Session: 2449dac1-feb7-4da5-a249-9df137cc5360
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

Copilot-Session: 2449dac1-feb7-4da5-a249-9df137cc5360
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

Copilot-Session: 2449dac1-feb7-4da5-a249-9df137cc5360
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

Copilot-Session: 2449dac1-feb7-4da5-a249-9df137cc5360
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

Copilot-Session: 2449dac1-feb7-4da5-a249-9df137cc5360
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

Copilot-Session: 2449dac1-feb7-4da5-a249-9df137cc5360
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

Copilot-Session: 2449dac1-feb7-4da5-a249-9df137cc5360
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

Copilot-Session: 2449dac1-feb7-4da5-a249-9df137cc5360
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

Copilot-Session: 2449dac1-feb7-4da5-a249-9df137cc5360
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

Copilot-Session: 2449dac1-feb7-4da5-a249-9df137cc5360
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

Copilot-Session: 2449dac1-feb7-4da5-a249-9df137cc5360
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

Copilot-Session: 2449dac1-feb7-4da5-a249-9df137cc5360
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

Copilot-Session: 2449dac1-feb7-4da5-a249-9df137cc5360
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

Copilot-Session: 2449dac1-feb7-4da5-a249-9df137cc5360
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

Copilot-Session: 2449dac1-feb7-4da5-a249-9df137cc5360
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

Copilot-Session: 2449dac1-feb7-4da5-a249-9df137cc5360
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

Copilot-Session: 2449dac1-feb7-4da5-a249-9df137cc5360
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

Copilot-Session: 2449dac1-feb7-4da5-a249-9df137cc5360
@bbonaby
Branden Bonaby (bbonaby) merged commit 1c11f25 into main Aug 13, 2026
22 checks passed
@bbonaby
Branden Bonaby (bbonaby) deleted the user/bbonaby/add-proxy-package-manifest-doc branch August 13, 2026 20:02
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.

3 participants