v1.1.0
New Features
- Man-In-The-Middle (MITM) support #335
- Rate limiting #411
- Direct domains #428
- Upstream proxy headers modification #403
- Proxy errors are written in response body (and headers) #502
- Default config files contain all field description and can be generated from command line #517
Relevant changes
- Our Google Martian fork has been internalized and largely modernized #350
- On Windows End-Of-File is properly handled #471
What's Changed
- fix setting dial function in proxy by @Choraden in #316
- e2e: make FlagProxyLocalhost test all allow and deny values by @mmatczuk in #321
- utils/cobrautil/templates: new value type search algorithm by @mmatczuk in #324
- chore: bump Go version to 1.20.6 by @Choraden in #326
- CA file by @mmatczuk in #323
- add DNS e2e tests by @Choraden in #328
- e2e: tests for insecure by @mmatczuk in #329
- dns: fix custom servers support and extend tests by @Choraden in #320
- utils/compose(service): enable privileged mode by @Choraden in #341
- chore: bump Go version to 1.21.0 by @Choraden in #339
- MITM by @mmatczuk in #335
- Fix logging in e2e by @mmatczuk in #356
- Ingest Martian Fork by @mmatczuk in #350
- Rework DNS integrity check by @Choraden in #347
- utils/httpexpect: add httptrace.ClientTrace by @mmatczuk in #346
- Linting by @Choraden in #359
- Revert "bind: remove tls prefix from tls-[cert,key]-file" by @mmatczuk in #365
- http_transport: use unused values from config by @Choraden in #367
- assert upstream proxy does the traffic by @Choraden in #327
- deny domains by @Choraden in #366
- Martian modernize logger and support request logging by @Choraden in #368
- Add route mode for http logging by @Choraden in #372
- bind: Add JSON parameter to DescribeFlags by @alexh-sauce in #370
- golangci: enable context key type check by @Choraden in #374
- utils/golden: support diff of Prometheus Metrics from api server by @Choraden in #369
- cmd:
runE
functions don't need to be exported by @alexh-sauce in #378 - fix Excess found: excess = 2 url = / (zero-length body) in HEAD response by @mmatczuk in #358
- utils/cobrautil: support pasring lists from env vars and config file by @Choraden in #381
- bind: redact base64 cert and key value by @Choraden in #382
- add
/headers
endpoint to httpbin by @Choraden in #388 - Move describe flags to utils and reformat by @Choraden in #390
- Ruleset adjustments by @Choraden in #389
- remove httpbin
/header/
endpoint by @Choraden in #393 - Fix bind slice by @mmatczuk in #395
- e2e(mk): run profiling concurrently with the benchmark by @Choraden in #398
- change http log mode route to short-url by @Choraden in #397
- refactor recent changes to martian logging by @Choraden in #396
- martian: peek the connection before setting read timeout by @Choraden in #400
- make prometheus namespace configurable by @Choraden in #399
- add
--proxy-header
for managing proxy headers by @Choraden in #403 - cmd/forwarder: log fatal error if logger is available by @mmatczuk in #402
- utils/cobrautil(bind): set flags directly in FlagSet by @Choraden in #401
- Eager listener init by @mmatczuk in #405
- Allow getting unstarted proxy as http.Handler by @mmatczuk in #408
- log/martianlog: export martian log setting by @mmatczuk in #409
- http_proxy: alias all martian types to avoid exposing them by @mmatczuk in #410
- http_proxy: only update upstream proxy user from credentials if user … by @mmatczuk in #412
- Read request ID from header and use in logs by @Choraden in #407
- martian: replace inner mutlierror with go.uber.org/multierr by @Choraden in #422
- dialvia: do not send default GO HTTP client User-Agent by @Choraden in #420
- api extensions by @mmatczuk in #415
- Deny domains new approach by @mmatczuk in #423
- Bump dependencies by @mmatczuk in #425
- Close proxy only once by @Choraden in #427
- Add rate limiting by @Choraden in #411
- Direct domains by @mmatczuk in #428
- e2e: treat any stderr output as an error by @Choraden in #430
- http_proxy: add missing log line "PROXY server listen address" by @mmatczuk in #432
- mitm domains by @mmatczuk in #434
- packaging: add powershell to completions.sh by @mmatczuk in #436
- ruleset: RegexpMatcher add inverse by @mmatczuk in #438
- cmd/forwarder: do not defer when building commands by @Choraden in #439
- Do not url escape user and password by @Choraden in #433
- e2e: set dns timeout to 1 second by @Choraden in #442
- middleware: remove metrics labels by @amckenzie132 in #443
- Martian refactor by @mmatczuk in #444
- /cacert endpoint by @mmatczuk in #435
- martian: add TLS termination in CONNECT by @mmatczuk in #446
- martian(mitm): check if peeked data is not nil by @Choraden in #448
- bind: fix --basic-auth and --credentials values in usage description by @Choraden in #449
- Improve debugging by @Choraden in #455
- improve mitm logging by @mmatczuk in #457
- utlis/httpx: add RoundTripperFunc by @mmatczuk in #460
- chore: update dependencies by @Choraden in #462
- runctx: allow to start group without notify signals by @Choraden in #463
- bind: rephrase
--log-http
usage by @Choraden in #461 - metrics: add proxy error counter by @Choraden in #459
- cmd/forwarder/run: register process metrics by @mmatczuk in #467
- gh: run unit tests on Ubuntu and Windows by @mmatczuk in #464
- cmd/forwarder: add proxy traffic flag group by @Choraden in #470
- Fix Windows EOF in tunnel treated as error by @mmatczuk in #471
- cmd/forwarder/run: add base namespace for process metrics by @mmatczuk in #473
- update readme by @Choraden in #474
- utils/cobrautil: add BindFromViper by @mmatczuk in #475
- packaging: add testing environment by @Choraden in #469
- cobrautil better describe by @mmatczuk in #476
- cobrautil describe only changed by @mmatczuk in #478
- local: improve bash scripts by @Choraden in #479
- utils/cobrautil: describe flags unredacted by @mmatczuk in #480
- Cobra related patches by @mmatczuk in #482
- golangci: bump golangci version by @mmatczuk in #488
- Auto GOMAXPROCS by @mmatczuk in #484
- Improve packaging and rework local dev by @Choraden in #490
- utils/cobrautil: make describe return []bytes insted of string by @Choraden in #492
- Improve domain access denied error by @Choraden in #496
- httplog: Merge the log-http and api-log-http CLI options by @alexh-sauce in #483
- martian(proxy): do not log EOF error in read request by @Choraden in #503
- e2e: add prometheus by @mmatczuk in #509
- browser: add browser based test by @mmatczuk in #506
- http_proxy: print proxy errors in response body by @Choraden in #502
- e2e: do not log http in api module while in debug mode by @Choraden in #513
- testing/local/linux: add trap exit to remove container by @Choraden in #518
- http_proxy: log self-signed MITM CA cert with fingerprint by @Choraden in #520
- Genetate default config file by @mmatczuk in #517
- chore: move testing to local by @mmatczuk in #521
- Add prometheus namespace validation by @Choraden in #519
- Improve handling of errors from body.Close() by @Choraden in #526
- chore: update golang.org/x/... packages versions by @mmatczuk in #531
- build(deps): bump github.com/prometheus/common from 0.44.0 to 0.45.0 by @dependabot in #535
- build(deps): bump go.uber.org/goleak from 1.2.1 to 1.3.0 by @dependabot in #533
- Instrument error logs by @mmatczuk in #522
- chore(dial): simplify Dialer creation by @mmatczuk in #537
- chore: Cleanup
direct-domains
help text by @alexh-sauce in #538 - build(deps): bump github.com/spf13/cobra from 1.7.0 to 1.8.0 by @dependabot in #539
- build(deps): bump google.golang.org/grpc from 1.58.3 to 1.59.0 by @dependabot in #541
- e2e: make SetupFlagDirectDomains test all httpbin schemes by @mmatczuk in #543
- ruleset: implement string method on RegexpListItem by @Choraden in #548
- martian: Connect func by @mmatczuk in #546
- utils/cobrautil: add funtion to add ConfigFileCommand recursively by @mmatczuk in #552
- config file sections by @mmatczuk in #554
- bump versions by @mmatczuk in #555
- chore: update LICENSE.3RD_PARTY by @mmatczuk in #557
- martian: log conn closed errors in debug by @mmatczuk in #556
- e2e: shuffle tests and build with
-race
by @Choraden in #553 - command pkg by @mmatczuk in #559
- chore: unify header by @Choraden in #561
- mk: allow for custom container runtime in update-devel-image target by @Choraden in #566
- build(deps): bump golang.org/x/time from 0.4.0 to 0.5.0 by @dependabot in #568
- build(deps): bump golang.org/x/net from 0.18.0 to 0.19.0 by @dependabot in #570
- docs: rewrite install docs by @mmatczuk in #573
- add version metrics by @Choraden in #574
- mk: remove excess
--build-arg
from update-devel-image by @Choraden in #575 - windows completion fix by @mmatczuk in #576
- docs robots by @mmatczuk in #577
Full Changelog: v1.0.2...v1.1.0