Add dlp: false passthrough option for egress routes #463

Open
didericis-claude wants to merge 1 commits from dlp-false-passthrough into main
Collaborator

Closes #462.

Summary

  • dlp: false on an egress route replaces the dlp: { ... } dict with a full bypass: all DLP scanning is skipped (including CRLF injection, which dlp.outbound_detectors: false cannot disable) and HTTPS connections are tunnelled without TLS interception so the client sees the server's real certificate.
  • Parsing: egress_dlp_config.parse_dlp_block and manifest_egress._parse_dlp_block handle dlp: falsedlp_passthrough=True on Route / DlpPassthrough=True on ManifestEgressRoute.
  • Runtime: scan_outbound and scan_inbound return None immediately for passthrough routes. In the mitmproxy adapter, http_connect resolves the policy for dlp: false hosts and marks the connection id in _passthrough_conns; tls_clienthello sets ignore_connection = True for those connections so mitmproxy tunnels TCP rather than intercepting TLS.
  • Serialization: route_to_yaml_dict emits dlp: false (not a dict) for passthrough routes, enabling round-trip through the policy YAML parser.
  • 18 new tests across four test files; all 2092 unit tests pass.
Closes #462. ## Summary - `dlp: false` on an egress route replaces the `dlp: { ... }` dict with a full bypass: all DLP scanning is skipped (including CRLF injection, which `dlp.outbound_detectors: false` cannot disable) and HTTPS connections are tunnelled without TLS interception so the client sees the server's real certificate. - Parsing: `egress_dlp_config.parse_dlp_block` and `manifest_egress._parse_dlp_block` handle `dlp: false` → `dlp_passthrough=True` on `Route` / `DlpPassthrough=True` on `ManifestEgressRoute`. - Runtime: `scan_outbound` and `scan_inbound` return `None` immediately for passthrough routes. In the mitmproxy adapter, `http_connect` resolves the policy for `dlp: false` hosts and marks the connection id in `_passthrough_conns`; `tls_clienthello` sets `ignore_connection = True` for those connections so mitmproxy tunnels TCP rather than intercepting TLS. - Serialization: `route_to_yaml_dict` emits `dlp: false` (not a dict) for passthrough routes, enabling round-trip through the policy YAML parser. - 18 new tests across four test files; all 2092 unit tests pass.
didericis-claude added 1 commit 2026-07-22 18:38:07 -04:00
feat: add dlp: false passthrough option for egress routes
tracker-policy-pr / check-pr (pull_request) Successful in 13s
test / integration-docker (pull_request) Successful in 23s
lint / lint (push) Successful in 1m1s
test / unit (pull_request) Successful in 48s
test / integration-firecracker (pull_request) Successful in 3m52s
test / coverage (pull_request) Successful in 19s
test / publish-infra (pull_request) Has been skipped
e89e95a139
Routes with `dlp: false` skip all DLP scanning (including CRLF injection,
which cannot be disabled via `dlp.outbound_detectors: false`) and tunnel
HTTPS connections without TLS interception so the client sees the server's
real certificate. Fixes Docker image pulls, which fail when the proxy MITM's
the TLS handshake and the container doesn't trust the per-bottle CA.

Closes #462
All checks were successful
tracker-policy-pr / check-pr (pull_request) Successful in 13s
Required
Details
test / integration-docker (pull_request) Successful in 23s
lint / lint (push) Successful in 1m1s
test / unit (pull_request) Successful in 48s
test / integration-firecracker (pull_request) Successful in 3m52s
test / coverage (pull_request) Successful in 19s
test / publish-infra (pull_request) Has been skipped
This pull request can be merged automatically.
This branch is out-of-date with the base branch
You are not authorized to merge this pull request.
View command line instructions

Checkout

From your project repository, check out a new branch and test the changes.
git fetch -u origin dlp-false-passthrough:dlp-false-passthrough
git checkout dlp-false-passthrough
Sign in to join this conversation.