Commit c794afa
PER-14853: Add HTTP Egress Proxy customer documentation (#640)
* PER-14853: Add HTTP Egress Proxy customer documentation
Add a new customer-facing documentation section under Permit MCP Gateway for
the HTTP Egress Proxy and the asg CLI — governing an agent's arbitrary outbound
HTTP/HTTPS traffic with the same AuthN/AuthZ/consent/HITL the gateway applies to
MCP tool calls.
New pages (docs/permit-mcp-gateway/http-egress-proxy/):
- Overview, Quick Start, asg CLI, Egress Rules, Credentials & Connections,
Authorization & Trust, Connecting Agents, Security
Also registers the section in sidebars.js and links it from the gateway index.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
* PER-14853: Sharpen HTTPS passthrough/intercept accuracy in proxy docs
Verified against gateway source that TLS interception (credential injection,
path rules, response scrubbing on HTTPS) is a per-rule setting configured in
the dashboard — the CLI creates rules in passthrough mode only. Updated the
docs to match and to reach the full payoff:
- Quick Start: split into "verify the allow-list" (works in passthrough, zero
setup) and a new step 7 "Inject credentials into HTTPS traffic" that walks
through enabling intercept on the rule (dashboard) + provisioning/trusting
the per-host CA, then re-verifying injection + scrubbing.
- Security: corrected "TLS mode configurable per host" to "per rule"; clarified
it's set in the dashboard rule editor.
- Connecting Agents: clarified intercept is enabled per rule in the dashboard
(CLI rules are passthrough); reworded "mix modes across hosts" to per rule.
- Egress Rules: added a "HTTPS handling per rule" subsection documenting the
passthrough/intercept TLS mode as a rule property.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
* PER-14853: correct HTTP Egress Proxy docs to the shipped API workflow model
The published pages described the removed flat-rule model — `asg proxy rules`
add/list/update/delete/reorder, ordered allow/block/require_approval actions,
per-agent rule scoping, and `asg proxy authorize --host`. The shipped `asg`
CLI and gateway enforce the API workflow model instead: policy is authored as
workflows (domains + rules + required trust) in the dashboard, and every token
is bound to one workflow.
Changes across all 8 pages:
- Reframe egress-rules → "Workflows & Rules" (workflow → domain → rule; allow-only;
required-trust levels; no block/require_approval action, no ordering/agent-match).
- Quickstart now creates a workflow in the dashboard and mints a workflow-bound
token (`token create --workflow`, which is required).
- Authorization: two gates reframed to workflow match + Permit policy; consent uses
`authorize --workflow`; trust ceiling is per-human, per-workflow (not per-host).
- CLI: fix the npm package scope (`@permitio/agent-security-cli`, was `@permit-io/...`),
add bunx/npx zero-install forms, drop the non-existent `proxy rules` commands, and
remove the parked `preset apply` path (returns 501).
- Correct dashboard nav references (Overview / Workflows / Credentials / Activity / Setup).
Docusaurus build + hyperlink check pass: 0 bad links, 0 bad anchors.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
* PER-14853: address review — token-file in CLI example + clearer verify step
- cli.mdx: the Configure example now uses `asg login --token-file` so it matches
the security note about process-visible secret flags (Copilot review).
- quickstart.mdx: the verify step uses `curl -i` and explains that a `401` from
Stripe in passthrough mode is expected — it proves the request reached the
upstream (allowed), in contrast to a denied host the proxy never connects to
(Copilot review).
Zeev's June 18 findings (flat `proxy rules` update/reorder, missing `credentials`
group, `token create` --subject/--out, `authorize --hosts`) are all resolved on
current main: the CLI added the `credentials` group, `--out`, optional `--subject`,
and `--workflow`, and removed the flat-rule surface — the docs already match.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
* PER-14853: address Zeev's review — HTTPS/CONNECT model, vault precondition, and accuracy fixes
Deep review pass over the gateway source confirmed all findings. Key corrections:
- HTTPS/CONNECT model (cascading): HTTPS is authorized as a CONNECT with an empty
path + Tunnel method class, so only an `all`-method, path-less "tunnel rule" can
authorize it. Added a "HTTPS needs a tunnel rule" section, fixed the quickstart
and example workflows, and qualified the request-flow / TLS-mode / injection prose.
- CRITICAL: encryption at rest is opt-in (KMS vault, off by default) — state the
precondition instead of claiming credentials are always encrypted.
- Verify step returned 407, not 401: pass `Proxy-Authorization` on every curl; step 7
now installs the CA. `asg proxy env` exports the token path but does not authenticate.
- Dashboard nav is "CLIs / APIs", not "Proxy" — fixed every breadcrumb.
- Revocation: default removes new-decision authority only; deny-in-flight is opt-in and
doesn't re-check an open passthrough tunnel.
- Response scrubbing is best-effort + per-credential (documented + softened claims).
- Audit identifies the agent (not the human) and is best-effort. Rate limiter fails open.
- Trust is declared by the rule, not derived from the method class. "Max Trust Level" linked.
- CLI: admin-token source, `--<flag>-file` scope, `connect` required flags, `--subdomain`
rule, guardian/identity capabilities defined; AWS STS credential inputs named.
Build (Docusaurus + hyperlink) passes: 0 bad links, 0 bad anchors.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
---------
Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>1 parent 4a891fc commit c794afa
10 files changed
Lines changed: 876 additions & 0 deletions
File tree
- docs/permit-mcp-gateway
- http-egress-proxy
Lines changed: 87 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
| 22 | + | |
| 23 | + | |
| 24 | + | |
| 25 | + | |
| 26 | + | |
| 27 | + | |
| 28 | + | |
| 29 | + | |
| 30 | + | |
| 31 | + | |
| 32 | + | |
| 33 | + | |
| 34 | + | |
| 35 | + | |
| 36 | + | |
| 37 | + | |
| 38 | + | |
| 39 | + | |
| 40 | + | |
| 41 | + | |
| 42 | + | |
| 43 | + | |
| 44 | + | |
| 45 | + | |
| 46 | + | |
| 47 | + | |
| 48 | + | |
| 49 | + | |
| 50 | + | |
| 51 | + | |
| 52 | + | |
| 53 | + | |
| 54 | + | |
| 55 | + | |
| 56 | + | |
| 57 | + | |
| 58 | + | |
| 59 | + | |
| 60 | + | |
| 61 | + | |
| 62 | + | |
| 63 | + | |
| 64 | + | |
| 65 | + | |
| 66 | + | |
| 67 | + | |
| 68 | + | |
| 69 | + | |
| 70 | + | |
| 71 | + | |
| 72 | + | |
| 73 | + | |
| 74 | + | |
| 75 | + | |
| 76 | + | |
| 77 | + | |
| 78 | + | |
| 79 | + | |
| 80 | + | |
| 81 | + | |
| 82 | + | |
| 83 | + | |
| 84 | + | |
| 85 | + | |
| 86 | + | |
| 87 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
| 22 | + | |
| 23 | + | |
| 24 | + | |
| 25 | + | |
| 26 | + | |
| 27 | + | |
| 28 | + | |
| 29 | + | |
| 30 | + | |
| 31 | + | |
| 32 | + | |
| 33 | + | |
| 34 | + | |
| 35 | + | |
| 36 | + | |
| 37 | + | |
| 38 | + | |
| 39 | + | |
| 40 | + | |
| 41 | + | |
| 42 | + | |
| 43 | + | |
| 44 | + | |
| 45 | + | |
| 46 | + | |
| 47 | + | |
| 48 | + | |
| 49 | + | |
| 50 | + | |
| 51 | + | |
| 52 | + | |
| 53 | + | |
| 54 | + | |
| 55 | + | |
| 56 | + | |
| 57 | + | |
| 58 | + | |
| 59 | + | |
| 60 | + | |
| 61 | + | |
| 62 | + | |
| 63 | + | |
| 64 | + | |
| 65 | + | |
| 66 | + | |
| 67 | + | |
| 68 | + | |
| 69 | + | |
| 70 | + | |
| 71 | + | |
| 72 | + | |
| 73 | + | |
| 74 | + | |
| 75 | + | |
| 76 | + | |
| 77 | + | |
| 78 | + | |
| 79 | + | |
| 80 | + | |
| 81 | + | |
| 82 | + | |
| 83 | + | |
| 84 | + | |
| 85 | + | |
| 86 | + | |
| 87 | + | |
| 88 | + | |
| 89 | + | |
| 90 | + | |
| 91 | + | |
| 92 | + | |
| 93 | + | |
| 94 | + | |
| 95 | + | |
| 96 | + | |
| 97 | + | |
| 98 | + | |
| 99 | + | |
| 100 | + | |
| 101 | + | |
| 102 | + | |
| 103 | + | |
| 104 | + | |
| 105 | + | |
| 106 | + | |
| 107 | + | |
| 108 | + | |
| 109 | + | |
| 110 | + | |
| 111 | + | |
| 112 | + | |
| 113 | + | |
| 114 | + | |
| 115 | + | |
| 116 | + | |
| 117 | + | |
| 118 | + | |
| 119 | + | |
| 120 | + | |
| 121 | + | |
| 122 | + | |
| 123 | + | |
| 124 | + | |
| 125 | + | |
| 126 | + | |
| 127 | + | |
| 128 | + | |
| 129 | + | |
| 130 | + | |
Lines changed: 98 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
| 22 | + | |
| 23 | + | |
| 24 | + | |
| 25 | + | |
| 26 | + | |
| 27 | + | |
| 28 | + | |
| 29 | + | |
| 30 | + | |
| 31 | + | |
| 32 | + | |
| 33 | + | |
| 34 | + | |
| 35 | + | |
| 36 | + | |
| 37 | + | |
| 38 | + | |
| 39 | + | |
| 40 | + | |
| 41 | + | |
| 42 | + | |
| 43 | + | |
| 44 | + | |
| 45 | + | |
| 46 | + | |
| 47 | + | |
| 48 | + | |
| 49 | + | |
| 50 | + | |
| 51 | + | |
| 52 | + | |
| 53 | + | |
| 54 | + | |
| 55 | + | |
| 56 | + | |
| 57 | + | |
| 58 | + | |
| 59 | + | |
| 60 | + | |
| 61 | + | |
| 62 | + | |
| 63 | + | |
| 64 | + | |
| 65 | + | |
| 66 | + | |
| 67 | + | |
| 68 | + | |
| 69 | + | |
| 70 | + | |
| 71 | + | |
| 72 | + | |
| 73 | + | |
| 74 | + | |
| 75 | + | |
| 76 | + | |
| 77 | + | |
| 78 | + | |
| 79 | + | |
| 80 | + | |
| 81 | + | |
| 82 | + | |
| 83 | + | |
| 84 | + | |
| 85 | + | |
| 86 | + | |
| 87 | + | |
| 88 | + | |
| 89 | + | |
| 90 | + | |
| 91 | + | |
| 92 | + | |
| 93 | + | |
| 94 | + | |
| 95 | + | |
| 96 | + | |
| 97 | + | |
| 98 | + | |
0 commit comments