Skip to content

docs: add gateway connection integration guide#126

Open
prjhawar wants to merge 3 commits into
mainfrom
docs/sandbox-connector-integration
Open

docs: add gateway connection integration guide#126
prjhawar wants to merge 3 commits into
mainfrom
docs/sandbox-connector-integration

Conversation

@prjhawar

@prjhawar prjhawar commented Jun 2, 2026

Copy link
Copy Markdown
Contributor

Adds a doc covering end-to-end gateway connection integration with ACA sandboxes:

  • Setup: gatewayConnections[] wiring, ACLs (gateway-acl + sandbox-acl), ACA CLI commands, validation rules
  • Consumption: /connections/connections.json, calling runtime URLs (egress proxy handles auth transparently)
  • Operation discovery: metadata URL (replace /apim/ with /metadata/ + ?export=true) from inside sandbox
  • MCP server configs: how they wire into sandbox groups
  • Access policy matrix and troubleshooting

@prjhawar prjhawar requested review from a team and Copilot June 2, 2026 18:14

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

This PR adds a new end-to-end documentation guide for integrating Connector Namespace resources (API connections and MCP server configs) into ACA sandbox groups/sandboxes via gatewayConnections[], including setup steps, in-sandbox consumption, operation discovery, and troubleshooting guidance.

Changes:

  • Add a new integration guide describing gateway connection wiring (ACLs + sandbox-group/sandbox configuration).
  • Document in-sandbox usage via /connections/connections.json and how runtime URL auth is handled.
  • Add quick-reference endpoints/commands plus troubleshooting and access policy matrix.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread docs/sandbox-connector-integration.md Outdated
Comment thread docs/sandbox-connector-integration.md Outdated
Comment thread docs/sandbox-connector-integration.md Outdated
Comment thread docs/sandbox-connector-integration.md
Comment thread docs/sandbox-connector-integration.md Outdated
2. Connections and MCP server configs are wired to a **sandbox group** via its
`gatewayConnections[]` property.
3. Each **sandbox** references the same gateway connections at creation time.
4. The platform generates `/connections/connections.json` inside the sandbox

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

Should we also add add the path about where this file is? is /Connections folder at root location?

Comment thread docs/sandbox-connector-integration.md Outdated
2. Connections and MCP server configs are wired to a **sandbox group** via its
`gatewayConnections[]` property.
3. Each **sandbox** references the same gateway connections at creation time.
4. The platform generates `/connections/connections.json` inside the sandbox

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

Can we also add where the mcp config is ?

Comment thread docs/sandbox-connector-integration.md Outdated
}
```

### CLI alternative (ACA CLI)

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

What is this alternative for? I dont see any section of Portal / API based approach above


- Maximum **10** gateway connections per sandbox.
- All connections must reference the **same** connector gateway.
- All connections must use the **same** authentication type.

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

is this a restriction we enforce?

Comment thread docs/sandbox-connector-integration.md Outdated
teams = response.json()["value"]
```

### How the egress proxy handles auth

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

this section has duplicate information that is already mentioned / shared in before sections

- All connections must use the **same** authentication type.
- `SystemAssignedManagedIdentity` requires the sandbox group to have a system-assigned MI.
- Gateway connections on sandboxes are **immutable** — set at creation, cannot be changed.
- MCP server config connections are only supported with `copilot` or `claude` disk images, private disk images, or snapshots.

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

Should we also mention about the skill we have on sandboxes?

Comment thread docs/sandbox-connector-integration.md Outdated

---

## Access policies

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

I feel the sections are not properly ordered - should this be before the section of how to use from sandboxes?

prjhawar and others added 3 commits June 8, 2026 13:24
Comprehensive doc covering setup (gatewayConnections wiring, ACLs, CLI),
consumption (/connections/connections.json, egress proxy auth), operation
discovery (metadata URL), MCP server configs, and available skills.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
- Fix wiring checklist to mention both connectionRuntimeUrl and mcpRuntimeUrl
- Add note about aca CLI --connection-id availability with az rest fallback
- Fix mcpServerConfigs casing to match canonical ARM path (camelCase)

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
- Step 4 (How it works): document /connections/connections.json and
  /root/.copilot/mcp-config.json with which file is for what (verified
  against InstanceManager.cs in ADC)
- Step 5 (How it works): clarify managed identity can be system-assigned
  or user-assigned
- Rename 'CLI alternative (ACA CLI)' -> 'ACA CLI' with bridging text
  explaining its relationship to the ARM PATCH above
- Validation rules: add preamble noting these are platform-enforced;
  expand auth-type rule to cover both SystemAssignedManagedIdentity and
  UserAssignedManagedIdentity (with identityResourceId requirement)
- Wiring checklist row 4: broaden MI wording to system/user-assigned
- gatewayConnections[] entry shape: add UserAssignedManagedIdentity
  JSON example alongside the system-assigned one
- Move Access policies section before Consumption for better ordering
- Remove duplicate 'How the egress proxy handles auth' subsection
  (content already covered in How it works step 5)

Addresses review comments from @rarayudu on PR #126.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot AI review requested due to automatic review settings June 10, 2026 18:14
@prjhawar prjhawar force-pushed the docs/sandbox-connector-integration branch from ad4d331 to abb1f83 Compare June 10, 2026 18:14

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

Copilot reviewed 1 out of 1 changed files in this pull request and generated 2 comments.

Comment on lines +90 to +108
```bash
# Add a gateway connection to a sandbox group (creates ACLs automatically)
aca sandboxgroup connector add \
--group {sg} \
--connection-id {arm-resource-id} \
--authorization system

# List configured connections on a sandbox group
aca sandboxgroup connector list --group {sg}

# Create sandbox with gateway connections (must already be configured on the group)
aca sandbox create --disk copilot \
--connection-id {resource-id-1} {resource-id-2}
```

> **Note:** `aca sandbox create --connection-id` passes `gatewayConnections` in
> the data-plane request. If the ACA CLI version does not support this flag,
> use `az rest` with a data-plane PUT instead — see
> [gateway-connections.md](../plugin/skills/aca-sandboxes/references/gateway-connections.md) Step 5.
Comment on lines +262 to +263
# List connections on a namespace
az rest --method GET --url ".../connectorGateways/{ns}/connections?api-version=2026-05-01-preview"
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