feat: support pipelock skip_scan_for_extensions config #191
Reference in New Issue
Block a user
Delete Branch "feat/pipelock-skip-scan-extensions"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Refactors PipelockRoutePolicy to pass through raw pipelock configuration instead of parsing individual fields. This enables bottles to configure any pipelock option without updating bot-bottle code.
Changes
Investigation: Response scanning limits
Initially explored using
response_body_scanning.skip_scan_for_extensionsto skip DLP scanning for binary packages (.whl,.tar.gz) while keeping request scanning enabled. However, pipelock does not support per-host or per-extension response scanning rules—response scanning is a global setting with no configurability.Workaround
For now, use
tls_passthrough: trueon hosts with large binary downloads (PyPI, npm, etc.). This sacrifices response DLP scanning but unblocks pip installs. For trusted hosts like PyPI, the risk is acceptable.Test plan
Related
Fixes pip package downloads in claude-dev bottle. Pipelock maintainers should consider adding
response_body_scanningconfig block to support per-host response size limits or skip-scanning for specific file extensions.- Change PipelockRoutePolicy to store raw pipelock config dict instead of individual coerced fields (TlsPassthrough, SsrfIpAllowlist) - Update pipelock.py and egress.py to extract values from Config dict - Simplifies manifest validation: pipelock handles its own schema - Enables new pipelock options like skip_scan_for_extensions without updating bot-bottle code This allows bottles to configure pipelock directly, e.g.: pipelock: skip_scan_for_extensions: [".whl", ".tar.gz"] Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>Closing in favor of stripping pipelock and adding custom mitmproxy rules -> #192
Pull request closed