Ecosyste.ms: OpenCollective

An open API service for software projects hosted on Open Collective.

proxy.py

Lightweight, Programmable, TLS interceptor Proxy for HTTP(S), HTTP2, WebSockets protocols in a single Python file
Collective - Host: opensource - https://opencollective.com/proxypy - Website: https://abhinavsingh.com/about - Code: https://github.com/abhinavsingh/proxy.py

Move dashboard backend within proxy module, now ships via same pip package (#177)

* Allow resources to load from http and ws when running w/o https

* Move dashboard backend (d...

github.com/abhinavsingh/proxy.py - 148c2604728620ce7a80d75273a90c97faf3d86a authored about 5 years ago
Devtools Protocol (#174)

* Refine docs

* Decouple relay from dashboard.

Will be re-used by devtools protocol plugin...

github.com/abhinavsingh/proxy.py - 439d58fdc26332496a43dcdc439440cfd1cc6293 authored about 5 years ago
Allow to pass flags as kwargs too in embed mode (#172)

* Dynamically load devtools instead of on page load

* Add support for passing flags as kwargs...

github.com/abhinavsingh/proxy.py - c943dd7e27eaed3a72c144e9350cef6e1305fcfc authored about 5 years ago
Merge branch 'develop' of github.com:abhinavsingh/proxy.py into develop

github.com/abhinavsingh/proxy.py - 1b0c2f8c5eee11f3048018b407ec7f553afbd891 authored about 5 years ago
Load devtools within iframe (#171)

github.com/abhinavsingh/proxy.py - 7561967be4ec69f0c456a248d59f7282d62fdf5b authored about 5 years ago
Load devtools within iframe

github.com/abhinavsingh/proxy.py - a46e73f51c031398edf4a715559e24bb4d47f2f5 authored about 5 years ago
Dashboard Inspect traffic tab + devtools (#170)

* Explicitly link version changelog in TOC

* Separate out app header body builder

* Ensure...

github.com/abhinavsingh/proxy.py - 5cc9f2dde2fe76bbc2432efa03bee5f86a0d0868 authored about 5 years ago
Consistent dashboard look and feel across plugins (#169)

* Explicitly link version changelog in TOC

* Separate out app header body builder

* Ensure...

github.com/abhinavsingh/proxy.py - e42cfefcf6eab9037fb6257871bef8d37ed1c0ac authored about 5 years ago
Add proxy.main.TestCase for unit testing Python application with proxy.py (#167)

* Add demonstration of how to use proxy.py within Python application unittests

* mypy fixes
...

github.com/abhinavsingh/proxy.py - 3d65366c7bb5be9558489d5c7170bf7f7cfd904b authored about 5 years ago
Introduce sendMessage websocket api which allows for callbacks (#166)

* Introduce sendMessage websocket api which allows for callbacks, deprecate lastPingId in favor ...

github.com/abhinavsingh/proxy.py - 7ca7c2d8ccb3a985c215f5e0b6c4ec739b818790 authored about 5 years ago
Move traffic_control outside of core plugin, it maps to several plugin examples like redirectToUpstreamHost, filterByUpstreamHost plugins (#165)

github.com/abhinavsingh/proxy.py - d20cf1c764357d6745e4255e558605eb31b41f97 authored about 5 years ago
Give structure to dashboard app (#163)

* Separate out files for different responsibilities.

1. Add src/plugins directory. This dire...

github.com/abhinavsingh/proxy.py - ee7a69b1fc08aafbb0b73677ed054ca00a42be1e authored about 5 years ago
Add private / public key generation utils which comply with new requirements on Mac OS 10.15 (#160)

* Add utilities to generate private key and public keys with alternate cnames

* Add separate ...

github.com/abhinavsingh/proxy.py - 0cc4e5e625865d1f790059f8f57d9b79c98b73a8 authored about 5 years ago
Add non-blocking embedded mode feature (#159)

* Fixes #158

* mypy fixes

* Instructions for non-blocking embed mode

* Toggle running f...

github.com/abhinavsingh/proxy.py - 93d8a55c0e39a7d8065dc814e84523277e055cb9 authored about 5 years ago
Separate packages for Dashboard (#157)

* Refactor Makefile and add dashboard setup.py

* Package dashboard as proxy.py-dashboard pip ...

github.com/abhinavsingh/proxy.py - 183d03b8669e702613a85a2289f2755b2a671559 authored about 5 years ago
Test refactor + Docker image CI (#154)

* Move tests into individual modules too

* Ensure one test class per file

* Fix docker ima...

github.com/abhinavsingh/proxy.py - 3aa1dc28245c3d8e289424a261a805c7aed3eefa authored over 5 years ago
Update setuptools from 41.5.1 to 41.6.0 (#153)

github.com/abhinavsingh/proxy.py - 75a818d397986ec766d37b9d986204b9fbbcfd40 authored over 5 years ago
Update README.md (#152)

* Update flags

* Update debugging instructions and run instructions for develops

* Update ...

github.com/abhinavsingh/proxy.py - 0e2194d683e739a6ebcc69f460bf6fed5c9f2fdd authored over 5 years ago
Update mypy==0.740 (#151)

github.com/abhinavsingh/proxy.py - 1ce16b95deae935a0aba2d972f6cf9f82de2cde9 authored over 5 years ago
Proxy.py Dashboard (#141)

* Remove redundant variables

* Initialize frontend dashboard app (written in typescript)

*...

github.com/abhinavsingh/proxy.py - e14548252ca60f754368587a605547be6fd001c6 authored over 5 years ago
Update py-spy from 0.2.2 to 0.3.0 (#144)

github.com/abhinavsingh/proxy.py - 3b2b2e5dd5595575ed87a64948e61c399c2425fd authored over 5 years ago
Update setuptools from 41.5.0 to 41.5.1 (#149)

github.com/abhinavsingh/proxy.py - 521a49ffd1e5af88377418719e6f2dadc7494600 authored over 5 years ago
Update flake8 from 3.7.8 to 3.7.9 (#148)

github.com/abhinavsingh/proxy.py - e7e9e14e7504e1ec9bfb48d8328a847da6b93517 authored over 5 years ago
Update typing-extensions from 3.7.4 to 3.7.4.1 (#147)

github.com/abhinavsingh/proxy.py - 52275f0588e721fccfb3dcd0a8c6dfa100f26698 authored over 5 years ago
Update setuptools from 41.4.0 to 41.5.0 (#145)

github.com/abhinavsingh/proxy.py - 5db42b349e2bede23d18b2a56acc5083ac113d40 authored over 5 years ago
Update pytest from 5.2.1 to 5.2.2 (#142)

github.com/abhinavsingh/proxy.py - 57315289ae9db93277880bae11b65dcb2d7124d8 authored over 5 years ago
os.close only for threadless (#138)

* os.close only for Threadless to avoid fd leaks

* Remove os.close mock which is only called ...

github.com/abhinavsingh/proxy.py - ca1d1e713963c9e8266d0ffa6986df1064b46503 authored over 5 years ago
Add pipeline response parsing tests (#137)

* Add pipeline response parsing tests

* build_http_response now only adds content-length if t...

github.com/abhinavsingh/proxy.py - c77f8b57894840f902fbdfaa18583c126e4fb9d2 authored over 5 years ago
Remove pip upgrade for windows which seems to be failing on travis (#136)

* Remove pip upgrade for windows which seems to be failing on travis

* Remove windows testing...

github.com/abhinavsingh/proxy.py - 69445a8921ba82738bde1f64e0939a34d08aaae2 authored over 5 years ago
Threadless execution using coroutines (#134)

* Workers need not register/unregister sock for every loop

* No need of explicit socket.setti...

github.com/abhinavsingh/proxy.py - a1bb659488603aae67e43aa5de932284a690ac00 authored over 5 years ago
Test plugin examples (#130)

* Add tests for plugin_examples.* to ensure we never break functionality

* Add tests for plug...

github.com/abhinavsingh/proxy.py - 9d46cba1e8660bf8b0dc41bc07c926933fc1439f authored over 5 years ago
Add --timeout flag with default value of 10 second. (#129)

* Add --timeout flag with default value of 5. This value was previously hardcoded to 30

* --...

github.com/abhinavsingh/proxy.py - dc560be6ea140ad3eb551922bab637e735200da4 authored over 5 years ago
Invoke proxy plugin handle_request for each request in HTTP/1.1 pipeline or when TLS interception is enabled (#128)

* Add tests for is_http_1_1_keep_alive

* Add ModifyPostDataPlugin in README

* Fixes #126
...

github.com/abhinavsingh/proxy.py - 6455a3497350f5aff89454766031a400dbccf37c authored over 5 years ago
Ensure teardown is always accompanied with Connection: close header

Fix tests

github.com/abhinavsingh/proxy.py - 2840afc0bf49b024a1cccb754bc0d09ae6c64311 authored over 5 years ago
Reduce docker image size

github.com/abhinavsingh/proxy.py - 3b5e2ccf9c8bc1666568b4fad019079ab5647761 authored over 5 years ago
Invoke HttpWebServerBasePlugin.handle_request for each request in HTTP/1.1 pipeline (#125)

* Add tests to verify certificate generation

* Separate out tests for ProtocolHandler and Web...

github.com/abhinavsingh/proxy.py - bb7f5a61dc61178008a328688e6c2e4c8defda55 authored over 5 years ago
Update issue templates (#123)

github.com/abhinavsingh/proxy.py - a19da5dcb911fca9a999a222309f31fbc2fcd09f authored over 5 years ago
Always update latest tag for docker releases

github.com/abhinavsingh/proxy.py - 5f91b179a3de0eb67057122a023756c07d2fab13 authored over 5 years ago
Merge pull request #122 from abhinavsingh/develop

v1.1.1 Release

github.com/abhinavsingh/proxy.py - 27e4152cd29efba1d2826951a2bd2095704b53cc authored over 5 years ago
Ensure explicit flush before upgrade while TLS intercepting (#121)

* Ensure explicit flush before upgrade + nonblocking server sock.

* tls interception tests

...

github.com/abhinavsingh/proxy.py - 3b9587b6f1fa8b18efe3d290ee135dc36050f996 authored over 5 years ago
Merge pull request #119 from abhinavsingh/master

Sync master and develop

github.com/abhinavsingh/proxy.py - d2a9cdd2775747b984b9fffd4c479e1f7265f6b7 authored over 5 years ago
Merge pull request #118 from abhinavsingh/develop

v1.1.0 Release

github.com/abhinavsingh/proxy.py - 22666098abd317af0d146595debaa8930a6fad4d authored over 5 years ago
v1.1.0 release

Add pip install typing-extensions==3.7.4 for docker image

github.com/abhinavsingh/proxy.py - 7a6247ea1880503211d0adf8f1ca14bc84f9ce8a authored over 5 years ago
Update py-spy from 0.1.11 to 0.2.2 (#117)

github.com/abhinavsingh/proxy.py - c01f497ec9b202a5d967078e5d5c2aa2f80cc60f authored over 5 years ago
Chrome Devtool Integration first steps (#109)

* Initialize skeleton electron app

* Attempt to open devtools

* Electron free

* Initial...

github.com/abhinavsingh/proxy.py - 908c0b585525b9641958fd1664bb9047bb0f1bc5 authored over 5 years ago
ssl.SSLError during handshake can teardown worker process (#111)

prevent socket which is listening been close when TcpConnectionUninitializedException is raised

github.com/abhinavsingh/proxy.py - 542cd427333afb176b79c7aedaa70d68bea69504 authored over 5 years ago
Update setuptools from 41.2.0 to 41.4.0 (#112)

github.com/abhinavsingh/proxy.py - 22079c3dbb9b917c7073832ea79929e78b6d88d9 authored over 5 years ago
Update pytest from 5.2.0 to 5.2.1 (#113)

github.com/abhinavsingh/proxy.py - 75dd31b669fb373f415e6ac0d07d3565dc5fa542 authored over 5 years ago
Use selectors.DefaultSelector instead of select.select (#106)

* Use selectors.DefaultSelector instead of select.select

* Unregister to avoid endless loop
...

github.com/abhinavsingh/proxy.py - a9c8659ffa9ac5c28cb1a776dc625f1a058d26e5 authored over 5 years ago
Update pytest from 5.1.3 to 5.2.0 (#107)

github.com/abhinavsingh/proxy.py - 7e2dcdd443f448883f835891bb4f604cccf99acc authored over 5 years ago
Update setuptools from 40.6.2 to 41.2.0 (#105)

github.com/abhinavsingh/proxy.py - 8151b5545efae238db26a61b819f33c24319aab7 authored over 5 years ago
Bump develop version to 1.0.1 and Autopep8 (#103)

* autopep8

* add int support for text_ and bytes_

github.com/abhinavsingh/proxy.py - 46bc7795fb6209ed7556dd0977aace4873571998 authored over 5 years ago
Merge pull request #64 from abhinavsingh/develop

v0.3 -> v1.0

github.com/abhinavsingh/proxy.py - b34c720fe6b537884c131f6d2d022519c65a2ebe authored over 5 years ago
Make pypi release 1.0.0

github.com/abhinavsingh/proxy.py - 032a6f26c94eb136c6449a438ae17d493257141e authored over 5 years ago
Add ProposedRestApiPlugin example. (#101)

* Add ProposedRestApiPlugin example.

This plugin is an example to demonstrate how `proxy.py` ...

github.com/abhinavsingh/proxy.py - c302537572065154b57df781b87f7c023fb19736 authored over 5 years ago
Create FUNDING.yml

github.com/abhinavsingh/proxy.py - 3a9c8bc8a2acd56dd0dda47e37be56965c652b89 authored over 5 years ago
Defer SSL Wrap (#100)

* Always deduce address family as we have a structure

* Convert TcpConnection into an ABC.

...

github.com/abhinavsingh/proxy.py - 716f211a2b7777aeb68a318758d7b5084e458fe4 authored over 5 years ago
Update mypy from 0.720 to 0.730 (#99)

github.com/abhinavsingh/proxy.py - e38531b4c3b7be18b490045ed19a3b19e3061a96 authored over 5 years ago
Pluggable WebServer (#98)

* Enable windows and pre/dev python releases

* Move twine to requirements-release.txt

* 3....

github.com/abhinavsingh/proxy.py - ccb1dbeb5f182665b6feaa979fe1d8b1dcd81bfc authored over 5 years ago
bugfix when loading plugins (#92)

github.com/abhinavsingh/proxy.py - 3a5c7800955756720c31f42a27bb12e38360e57f authored over 5 years ago
Add HttpParser.build_response utility (#96)

github.com/abhinavsingh/proxy.py - 033b7ad24a51c7084190405a983ec11572b5073a authored over 5 years ago
Test coverage and mypy compliance (#94)

* Add tests and mypy compliance for tests

* Add pragma: no cover for abstract class methods
...

github.com/abhinavsingh/proxy.py - 292ae497fcac2555d4561d2ab84238b7c1aecbd4 authored over 5 years ago
Add starting proxy.py instructions

github.com/abhinavsingh/proxy.py - 91a6942e49a8e06c0d277fac868641c52f42e167 authored over 5 years ago
Lint & Doc (#91)

* Remove redundant __init__ from plugins

* autopep8

* Add plugin developer and contributor...

github.com/abhinavsingh/proxy.py - 9e950436a71140f6046adf483b8156639cd97bb4 authored over 5 years ago
Doc update (#90)

* Add documentation

* Add TOC

* Add links to encryption and tls

* fix cert-file and key...

github.com/abhinavsingh/proxy.py - b03629fa0df1595eb4995427bc601063be7fdca9 authored over 5 years ago
Add support for TLS/SSL interception and HTTPS server (#86)

* Handle OSError thrown when curl --proxy-cacert flag is invalid

* Add server-cert

* Docke...

github.com/abhinavsingh/proxy.py - 92142a70d98d01a9c1e3cbe987d0f4ce9a13edc3 authored over 5 years ago
Update twine from 1.15.0 to 2.0.0 (#88)

github.com/abhinavsingh/proxy.py - 8ecb76da2f8b1478d374555bd99339604ae73e6b authored over 5 years ago
Can serve proxy traffic over HTTPS (#85)

* Can serve proxy traffic over HTTPS.

Pass --certfile and --keyfile arguments to enable SSL/T...

github.com/abhinavsingh/proxy.py - 397f92e56173f5494a50af0b5537027a5b43f663 authored over 5 years ago
Make docker v1.0.0 release (#82)

* Make docker v1.0.0 release

* 👍

* 👍 📱 💻 💡

* 👍 📱 💻 💡

github.com/abhinavsingh/proxy.py - 2b8fd53f1594b76f8429bca29fcff0da40a2bf2d authored over 5 years ago
mypy coverage (#78)

* mypy coverage

* First stab at mypy --strict complaince

* mypy --strict compliance.

* ...

github.com/abhinavsingh/proxy.py - ae1f1d654c2b7d5a0976b3f616a3dc5b64c8133d authored over 5 years ago
Resolve issues reported by Bandit (#77)

* Resolve issues reported by Bandit

* Fix tests

github.com/abhinavsingh/proxy.py - 0fa3a3f4d7cca7148f7615adf6cf0c082c71df99 authored over 5 years ago
Use ipaddress type and avoid explicit Connection: close header to upstream (#76)

* Fixes #71 and address some of #75

* Fix tests as IPV6 is default now

* Add comments and ...

github.com/abhinavsingh/proxy.py - 5bdfd20ce8289b9c2137791a1e10d7e1b5aa39f7 authored over 5 years ago
Add plugin usage instruction

github.com/abhinavsingh/proxy.py - 5d4f73541537282c3dcea6b7c26972a3254cee49 authored over 5 years ago
Initial Update (#74)

* Update coverage from 4.5.2 to 4.5.4

* Update twine from 1.12.1 to 1.15.0

* Update pytest...

github.com/abhinavsingh/proxy.py - 15796cf5deb9aa19bf43fc6d631f45f96ac0df3e authored over 5 years ago
Http parser fix for state completion (#73)

* Fix HttpParser to correctly reach COMPLETE state.

Fixes #70, see test case test_pip_connect...

github.com/abhinavsingh/proxy.py - 3bc81c3e75b8517492729ba225b6674e7a7913ea authored over 5 years ago
Use Pipe instead of Queue when passing sockets (#69)

* Use pipes instead of queues.

Possible solution for #68

* Handle ConnectionRefusedError
...

github.com/abhinavsingh/proxy.py - 5eb4d8a97c83aab2b95d25077a56ae71be5a379e authored over 5 years ago
HttpParser fix for responses

github.com/abhinavsingh/proxy.py - 939303452adec2f6afdd2512154ea88a604d4c48 authored over 5 years ago
Android Emulator fixes #65

github.com/abhinavsingh/proxy.py - a7d0a302782e14ae2241f6e43e46bbd5cca81aed authored over 5 years ago
Address mypy errors.

Unfortunately collections.namedtuple isn't supported by mypy and most
likely never will be. Idea...

github.com/abhinavsingh/proxy.py - e4ba6b16cd68c15c11d75e2da72907463422f9d9 authored over 5 years ago
Do not store raw response bytes for CONNECT requests.

Fixes #67 and addresses #66 too.

github.com/abhinavsingh/proxy.py - 80c73a4798c9df023051d562cc09187bdb4e010f authored over 5 years ago
Necessary productionization tests.

github.com/abhinavsingh/proxy.py - 3e92faba32395ed0b168df0c5813daecd1105581 authored over 5 years ago
Merge branch 'develop' of github.com:abhinavsingh/proxy.py into develop

github.com/abhinavsingh/proxy.py - ef4003c1bea55e9202f37319153abf8276913bdc authored over 5 years ago
Merge branch 'master' into develop

github.com/abhinavsingh/proxy.py - d387013a3f59df65493a48a82d62990bf4f2f35c authored over 5 years ago
Merge branch 'develop' of github.com:abhinavsingh/proxy.py into develop

github.com/abhinavsingh/proxy.py - 7e0e379a76053079d8d1b89ea860bfe8476fef39 authored over 5 years ago
Add Procfile.

Several forks have introduced a Procfile. It doesn't hurt to have one in
the repo itself.

github.com/abhinavsingh/proxy.py - c80901689a4e83888aac671cc810781e508f6910 authored over 5 years ago
Address ipv6 parsing from Http requests #65

github.com/abhinavsingh/proxy.py - 95671e4905ac891343d788486ca8efc5af676b08 authored over 5 years ago
Add --disable-headers option. Fixes #31

github.com/abhinavsingh/proxy.py - c3cd9be816b2710775d792195bbeed6a898c721a authored over 5 years ago
Fix default listen on IPV6 for linux systems.

Closes #59

github.com/abhinavsingh/proxy.py - 8489e8bc2ff9ac9f789670ba7aee78f86ffdb2eb authored over 5 years ago
Add tests for proxy.main

github.com/abhinavsingh/proxy.py - 3a371f2d6fd44f9dca5a84fe864eeaf9bd371bd7 authored over 5 years ago
Add option (--log-file) to redirect logs to a file

github.com/abhinavsingh/proxy.py - a5a0149402df1f8e7dc535e4bc3653ec304d254b authored over 5 years ago
Add --pid-file option to dump parent process ID to a file.

Rename to --disable-http-proxy.

Is more appropriate since proxy is always enabled.

unittest.sk...

github.com/abhinavsingh/proxy.py - d0f696212e42ab66c627cb8f65130cfd9b438060 authored over 5 years ago
Add coveralls integration

No use mirrors

Enforce coverage3

Add coverage badge and use python -m to invoke coverage

Enfo...

github.com/abhinavsingh/proxy.py - fcfbec47604e2ef4efaaca786e61e88758d97b39 authored over 5 years ago
Create separate base plugin HttpProxyBasePlugin for proxy handling only

Disable open file limit tests for Windows

github.com/abhinavsingh/proxy.py - 19d47ad792fcaf1dfa2ee28e27d5bd96695db2ed authored over 5 years ago
Add tests for HttpRequestRejected responses and open file limit setter.

github.com/abhinavsingh/proxy.py - eeb983f988469bcc0847af935f91609673edf82b authored over 5 years ago
Add --version flag also used by Makefile for releases.

github.com/abhinavsingh/proxy.py - 8ba63b1821da69de2880b256bde4cb6ff3792185 authored over 5 years ago
Enable WebServer plugin when --pac_file serving is requested.

1. Also binary read pac file instead of str
2. Return 404 for unhandled WebServer requests

github.com/abhinavsingh/proxy.py - e463d428b926c10bb019bb48f5446fb48d2d280e authored over 5 years ago
Merge branch 'develop' of github.com:abhinavsingh/proxy.py into develop

github.com/abhinavsingh/proxy.py - 2c239a1d25274b9fb6f9dc4e63b3d1487382059c authored over 5 years ago