Skip to content

docs: aspirational — Squad tools in ACA Dynamic Sessions and Sandboxes (preview platform features) #1569

Open

Description

@bradygaster

⚠️ Aspirational / Preview

This issue documents a future docs deliverable gated on Azure platform stability. Both Azure Container Apps Dynamic Sessions (custom containers) and ACA Sandboxes (Microsoft.App/SandboxGroups) involve features that are in preview or recently GA at the time of filing. Docs delivery is explicitly blocked on verified stable platform support. Do not merge these pages until the platform status is confirmed and the integration patterns are tested against a stable API.

Parent issue: #1564

Problem

Tamir Dresher has published two detailed posts on using ACA Dynamic Sessions (ephemeral tool execution sandboxing) and ACA Sandboxes (persistent workspaces, preview) with Squad. Both represent the correct long-term execution safety model for Squad tools — isolating agentic tool execution so a compromised or runaway tool cannot affect the Squad control plane. However, the platform features are not stable enough to publish as supported Squad guidance today.

What These Features Enable

  • ACA Dynamic Sessions (custom containers, GA for custom containers): Ephemeral, isolated containers spun up per tool invocation. Squad dispatches tool calls to a session worker via HTTP. The session is destroyed after use. No persistent state in the execution environment.
  • ACA Sandboxes (preview, Microsoft.App/SandboxGroups): Persistent, isolated workspace containers with separate disk images. Appropriate for multi-turn tool environments where state must survive across Squad sessions. Disk image is separated from credentials.

Scope

Two scenario pages, both carrying Aspirational / Preview banners:

Page A: docs/src/content/docs/scenarios/tool-sandboxing-aca.md

  • Why tool isolation matters: blast radius, credential scope, runaway tool protection
  • Dynamic Sessions vs ACA Sandboxes: comparison table (ephemeral/bounded vs persistent/multi-turn)
  • Architecture pattern: control plane (Squad/LangGraph) / tool plane (ACA session) split
  • HTTP worker contract design for the session-plane worker
  • Security checklist: no open shell, narrow HTTP API, egress rules, ephemeral = no persistent state
  • Prerequisites: preview subscription, aca CLI, custom container image
  • Cross-link to docs: hosting Squad in Azure — Dockerfile, ACA, and AKS deployment guides #1566 (ACA hosting guide — prerequisite reading)

Page B: docs/src/content/docs/scenarios/persistent-workspace-aca-sandboxes.md

  • When to use ACA Sandboxes vs Dynamic Sessions
  • Control plane vs workspace separation principle: Squad state stays in app/repo, not sandbox
  • Sandbox-group credential setup for GitHub Copilot provider token
  • aca CLI setup (note: separate from az containerapp)
  • Disk image separation from credentials
  • Egress rule configuration

Acceptance Criteria

  • Both pages carry explicit Aspirational/Preview banners
  • Dynamic Sessions vs Sandboxes distinction is clear (ephemeral vs persistent)
  • Security checklists present on both pages
  • No acceptance criterion requires current ACA preview features to be stable — pages acknowledge instability and expected breaking changes
  • Platform status (ACA Dynamic Sessions GA for custom containers; ACA Sandboxes preview) is re-verified before merge
  • Cross-links to docs: hosting Squad in Azure — Dockerfile, ACA, and AKS deployment guides #1566 (ACA hosting guide) since that is prerequisite context

Non-Goals

Source / Inspiration

Tamir Dresher published two posts on this topic. These are inspiration and citation sources — content must be written in Squad voice, not copied. Tamir's clarification of the Dynamic Sessions vs Sandboxes distinction is the primary reference for the comparison table.

Source URL
ACA Dynamic Sessions + Squad https://www.tamirdresher.com/blog/2026/06/12/aca-dynamic-sessions-squad
ACA Sandboxes + Squad https://www.tamirdresher.com/blog/2026/06/12/aca-sandboxes-squad-workspace
ACA Sessions docs https://learn.microsoft.com/azure/container-apps/sessions
ACA Sandboxes overview https://learn.microsoft.com/azure/container-apps/sandboxes-overview
Sandboxes portal https://sandboxes.azure.com/

Relation to Existing Issues

Priority / Gate

P2 — Aspirational. File now. Gate merge on: (1) CHILD-2 (#1566) merged, (2) ACA Sandboxes preview stabilizes with documented Squad integration pattern, (3) content reviewed by Tamir or Azure team liaison.

Activity

  1. added
    squadSquad triage inbox — Lead will assign to a member
    on Aug 3, 2026
  2. github-actions commented on Sep 10, 2026

    @github-actions
    Contributor

    🔄 Ralph — Auto-Triage

    Assigned to: Flight
    Reason: No module, routing, or role keyword match — routed to Lead/Architect
    Source: lead-fallback

    Ralph auto-triaged this issue using routing rules.
    To reassign, swap the squad:* label.

  3. github-actions commented on Sep 10, 2026

    @github-actions
    Contributor

    🔄 Ralph — Auto-Triage

    Assigned to: Flight
    Reason: No module, routing, or role keyword match — routed to Lead/Architect
    Source: lead-fallback

    Ralph auto-triaged this issue using routing rules.
    To reassign, swap the squad:* label.

  4. github-actions commented on Sep 11, 2026

    @github-actions
    Contributor

    🔄 Ralph — Auto-Triage

    Assigned to: Flight
    Reason: No module, routing, or role keyword match — routed to Lead/Architect
    Source: lead-fallback

    Ralph auto-triaged this issue using routing rules.
    To reassign, swap the squad:* label.

  5. github-actions commented on Sep 11, 2026

    @github-actions
    Contributor

    🔄 Ralph — Auto-Triage

    Assigned to: Flight
    Reason: No module, routing, or role keyword match — routed to Lead/Architect
    Source: lead-fallback

    Ralph auto-triaged this issue using routing rules.
    To reassign, swap the squad:* label.

  6. github-actions commented on Sep 11, 2026

    @github-actions
    Contributor

    🔄 Ralph — Auto-Triage

    Assigned to: Flight
    Reason: No module, routing, or role keyword match — routed to Lead/Architect
    Source: lead-fallback

    Ralph auto-triaged this issue using routing rules.
    To reassign, swap the squad:* label.

  7. github-actions commented on Sep 11, 2026

    @github-actions
    Contributor

    🔄 Ralph — Auto-Triage

    Assigned to: Flight
    Reason: No module, routing, or role keyword match — routed to Lead/Architect
    Source: lead-fallback

    Ralph auto-triaged this issue using routing rules.
    To reassign, swap the squad:* label.

  8. github-actions commented on Sep 11, 2026

    @github-actions
    Contributor

    🔄 Ralph — Auto-Triage

    Assigned to: Flight
    Reason: No module, routing, or role keyword match — routed to Lead/Architect
    Source: lead-fallback

    Ralph auto-triaged this issue using routing rules.
    To reassign, swap the squad:* label.

  9. github-actions commented on Sep 13, 2026

    @github-actions
    Contributor

    🔄 Ralph — Auto-Triage

    Assigned to: architect
    Reason: No module, routing, or role keyword match — routed to Lead/Architect
    Source: lead-fallback

    Ralph auto-triaged this issue using routing rules.
    To reassign, swap the squad:* label.

  10. added
    squad:docs-devrelAssigned to docs-devrel (Documentation & DevRel Engineer)
    and removed
    squad:architectAssigned to architect (Lead Architect)
    on Sep 24, 2026
  11. github-actions commented on Sep 24, 2026

    @github-actions
    Contributor

    📋 Assigned to docs-devrel (Documentation & DevRel Engineer)

    Issue: #1569 — docs: aspirational — Squad tools in ACA Dynamic Sessions and Sandboxes (preview platform features)

    docs-devrel will pick this up in the next Copilot session.

    For Copilot coding agent: If enabled, this issue will be worked automatically.
    Otherwise, start a Copilot session and say:
    docs-devrel, work on issue #1569

  12. added
    post-2.0Deferred until after the 2.0 line
    and removed
    wave:3-laterWave 3 — backlog, future
    on Nov 5, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    post-2.0Deferred until after the 2.0 linepriority:p2Next sprintsquadSquad triage inbox — Lead will assign to a membersquad:docs-devrelAssigned to docs-devrel (Documentation & DevRel Engineer)type:docsDocumentation work

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions