## Summary AI Governance is now included with Premium licenses instead of being sold as a separate per-user add-on. This updates `docs/` to describe the new packaging, removes "Add-On" from AI Governance references, and refreshes the editions architecture diagram. ## Changes - **`docs/ai-coder/ai-governance.md`**: title is now "AI Governance"; rewrote the licensing statements (previously "a separate, per-user license... not included with a Premium subscription and must be purchased separately") to state it is included with Premium. The usage-pool section now attributes the shared Agent Workspace Build pool to Premium deployments. - **Repeated admonition (28 files under `ai-coder/agent-firewall/` and `ai-coder/ai-gateway/`)**: replaced "requires the AI Governance Add-On / as of Coder v2.32, deployments without the add-on..." with "is part of AI Governance, which is included with a Premium license." The v2.32 add-on gate no longer applies; the gate is now Premium vs. Community. - **`docs/ai-coder/index.md`, `security.md`, `tasks.md`, `usage-data-reporting.md`, `admin/licensing/index.md`, `install/releases/esr-2.29-2.34-upgrade.md`, `ai-gateway/ai-gateway-proxy/setup.md`, `ai-gateway/clients/claude-code.md`**: reworded add-on references to Premium inclusion. - **`docs/manifest.json`**: nav title "AI Governance Add-On" → "AI Governance", updated two descriptions, and swapped the 25 `"state": ["ai governance add-on"]` badges to `["premium"]` so the sidebar badge reads "Premium" instead of "AI Governance Add-On". - **`docs/images/single-region-architecture.png`**: refreshed the diagram in the **Community and Premium editions** tab on [Architecture](https://coder.com/docs/admin/infrastructure/architecture). Also deleted the unreferenced `single-region-architecture.svg` copy. ## Follow-ups outside this PR - The `"ai governance add-on"` doc-state badge is defined in `coder/coder.com` (`src/utils/docs/state.ts`). After this merges, no manifest entry uses that key, so it becomes dead config and can be removed there. - `enterprise/coderd/license/license.go:564-572` still warns admins that "The AI Governance add-on is required to use AI Gateway." That backend string will contradict these docs once shipped. ## Verification - `pnpm run lint-docs`: 0 errors across 504 files - `make lint/emdash`: clean - Vale on the changed Markdown files: 0 errors; remaining warnings are pre-existing gerund headings on untouched lines - `docs/manifest.json` validated as JSON - Confirmed the deleted SVG had no references anywhere in the repo --- PR generated with Coder Agents on behalf of @mattvollmer.
3.7 KiB
nsjail on Docker
Note
Agent Firewall is part of AI Governance, which is included with a Premium license.
This page describes the runtime and permission requirements for running Agent Firewall with the nsjail jail type on Docker.
For an overview of nsjail, see nsjail.
Runtime & Permission Requirements for Running Boundary in Docker
This section describes the Linux capabilities and runtime configurations required to run Agent Firewall with nsjail inside a Docker container. Requirements vary depending on the OCI runtime and the seccomp profile in use.
1. Default runc runtime with CAP_NET_ADMIN
When using Docker's default runc runtime, Agent Firewall requires the
container to have CAP_NET_ADMIN. This is the minimal capability needed for
configuring virtual networking inside the container.
Docker's default seccomp profile may also block certain syscalls (such as
clone) required for creating unprivileged network namespaces. If you encounter
these restrictions, you may need to update or override the seccomp profile to
allow these syscalls.
see Docker Seccomp Profile Considerations
2. Default runc runtime with CAP_SYS_ADMIN (testing only)
For development or testing environments, you may grant the container
CAP_SYS_ADMIN, which implicitly bypasses many of the restrictions in Docker's
default seccomp profile.
- Agent Firewall does not require
CAP_SYS_ADMINitself. - However, Docker's default seccomp policy commonly blocks namespace-related
syscalls unless
CAP_SYS_ADMINis present. - Granting
CAP_SYS_ADMINenables Agent Firewall to run without modifying the seccomp profile.
⚠️ Warning: CAP_SYS_ADMIN is extremely powerful and should not be used in
production unless absolutely necessary.
3. sysbox-runc runtime with CAP_NET_ADMIN
When using the sysbox-runc runtime (from Nestybox), Agent Firewall can run
with only:
CAP_NET_ADMIN
The sysbox-runc runtime provides more complete support for unprivileged user namespaces and nested containerization, which typically eliminates the need for seccomp profile modifications.
Docker Seccomp Profile Considerations
Docker's default seccomp profile frequently blocks the clone syscall, which is
required by Agent Firewall when creating unprivileged network namespaces. If
the clone syscall is denied, Agent Firewall will fail to start.
To address this, you may need to modify or override the seccomp profile used by
your container to explicitly allow the required clone variants.
You can find the default Docker seccomp profile for your Docker version here (specify your docker version):
https://github.com/moby/moby/blob/v25.0.13/profiles/seccomp/default.json#L628-L635
If the profile blocks the necessary clone syscall arguments, you can provide a
custom seccomp profile that adds an allow rule like the following:
{
"names": ["clone"],
"action": "SCMP_ACT_ALLOW"
}
This example unblocks the clone syscall entirely.
Example: Overriding the Docker Seccomp Profile
To use a custom seccomp profile, start by downloading the default profile for your Docker version:
https://github.com/moby/moby/blob/v25.0.13/profiles/seccomp/default.json#L628-L635
Save it locally as seccomp-v25.0.13.json, then insert the clone allow rule shown above (or add "clone" to the list of allowed syscalls).
Once updated, you can run the container with the custom seccomp profile:
docker run -it \
--cap-add=NET_ADMIN \
--security-opt seccomp=seccomp-v25.0.13.json \
test bash
This instructs Docker to load your modified seccomp profile while granting only
the minimal required capability (CAP_NET_ADMIN).