Skip to content

feat: support request-level proxy sessions#3660

Open
alexferrari88 wants to merge 1 commit into
jo-inc:masterfrom
alexferrari88:feat/request-level-proxy
Open

feat: support request-level proxy sessions#3660
alexferrari88 wants to merge 1 commit into
jo-inc:masterfrom
alexferrari88:feat/request-level-proxy

Conversation

@alexferrari88

@alexferrari88 alexferrari88 commented May 20, 2026

Copy link
Copy Markdown

Summary

  • Add an optional proxy object to POST /tabs for request-level BrowserContext proxy configuration.
  • Keep proxy changes scoped to session creation: the same proxy may be reused for an existing user session, but different proxies return 409.
  • Reject request-level proxies when global PROXY_* configuration is active, and document the GeoIP/parity limitation vs the global proxy path.
  • Add request proxy validation/redaction helpers, OpenAPI docs, README docs, and unit coverage.
  • Fix local Jest wiring so the default npm test suite does not accidentally run e2e files without their global setup, and make npm run test:e2e use the dedicated e2e Jest config.

Why

Some integrations need to choose a proxy per automated task/API request without running separate camofox-browser deployments. Playwright applies proxy settings at BrowserContext creation time, so this implements the narrowest compatible API surface rather than pretending proxy can be changed per navigation.

Test plan

  • git diff --check HEAD~1..HEAD
  • npm run generate-openapi
  • npm test -- tests/unit/requestProxy.test.js tests/unit/openapi.test.js
  • npm test -- tests/unit
  • npm test
  • npm run test:e2e
  • Secret scan against local env-derived values: no exact secret matches in repo files.

Notes

  • Request-level proxy routes traffic only. It does not currently apply the global proxy path's automatic GeoIP-derived locale/timezone/geolocation behavior.

@alexferrari88 alexferrari88 force-pushed the feat/request-level-proxy branch from fcc2f8e to d8d48ba Compare May 20, 2026 08:41
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant