Skip to content

Releases: saucelabs/forwarder

v1.3.1

18 Jun 10:38
Compare
Choose a tag to compare

What's Changed

  • build(deps): bump google.golang.org/protobuf from 1.34.1 to 1.34.2 by @dependabot in #843
  • e2e: fix invalid ip range by @Choraden in #846
  • build(deps): bump github.com/spf13/cobra from 1.8.0 to 1.8.1 by @dependabot in #845
  • build(deps): bump github.com/gorilla/websocket from 1.5.2 to 1.5.3 by @dependabot in #844
  • log: revert log level to int by @Choraden in #847

Full Changelog: v1.3.0...v1.3.1

v1.3.0

11 Jun 10:02
Compare
Choose a tag to compare

What's Changed

  • docs(monitoring): remove info about --prom-namespace flag by @Choraden in #760
  • chore: bump Go version to 1.22.2 by @mmatczuk in #771
  • build(deps): bump golang.org/x/net from 0.22.0 to 0.23.0 by @dependabot in #769
  • build(deps): bump github.com/prometheus/client_model from 0.6.0 to 0.6.1 by @dependabot in #768
  • Parallel e2e tests by @mmatczuk in #765
  • build(deps): bump github.com/prometheus/common from 0.51.1 to 0.52.2 by @dependabot in #766
  • build(deps): bump golang.org/x/net from 0.23.0 to 0.24.0 by @dependabot in #774
  • build(deps): bump golang.org/x/sync from 0.6.0 to 0.7.0 by @dependabot in #776
  • local/linux: migrate to makefile by @Choraden in #773
  • utils/cobrautil/templates: print help and usage to stdout by @Choraden in #777
  • systemd: restrict permissions by @Choraden in #778
  • fix e2e DNS issues and increase parallelism level by default by @mmatczuk in #772
  • build(deps): bump google.golang.org/grpc from 1.62.1 to 1.63.2 by @dependabot in #779
  • build(deps): bump github.com/prometheus/common from 0.52.2 to 0.52.3 by @dependabot in #780
  • ratelimit: invert read and write limits by @Choraden in #783
  • dialvia(socks5): support context dialing by @Choraden in #784
  • build(deps): bump github.com/prometheus/common from 0.52.3 to 0.53.0 by @dependabot in #785
  • bind: fix --proxy flag usage by @Choraden in #786
  • e2e: podman-compose compatibility by @mmatczuk in #788
  • http_proxy: remove ambiguity in connect headers configuration by @Choraden in #787
  • local/monitoring: add http req res size graphs by @Choraden in #790
  • dialvia: add connect timeout by @Choraden in #789
  • martian/header(via): close looped request by @Choraden in #792
  • e2e: cpuset per service by @mmatczuk in #791
  • build(deps): bump google.golang.org/protobuf from 1.33.0 to 1.34.0 by @dependabot in #793
  • martian: strip X-Martian-Terminate-TLS before connecting by @Choraden in #794
  • martian(header): do not add X-Forwarded headers for CONNECT requests by @mmatczuk in #795
  • e2e: change static IPs in dns test by @Choraden in #799
  • build(deps): bump golang.org/x/text from 0.14.0 to 0.15.0 by @dependabot in #798
  • build(deps): bump golang.org/x/sys from 0.19.0 to 0.20.0 by @dependabot in #797
  • build(deps): bump golang.org/x/net from 0.24.0 to 0.25.0 by @dependabot in #801
  • build(deps): bump google.golang.org/protobuf from 1.34.0 to 1.34.1 by @dependabot in #802
  • chore: bump go version to 1.22.3 by @mmatczuk in #803
  • build(deps): bump github.com/prometheus/client_golang from 1.19.0 to 1.19.1 by @dependabot in #804
  • e2e(mk): export compose project name in all targets by @Choraden in #805
  • docs: extend log-http flag docs and better explain syntax of flags supporting multiple data sources by @mmatczuk in #807
  • martian: fix CONNECTs content length by @Choraden in #808
  • golangci: silence grpc.Dial deprecated error by @Choraden in #809
  • build(deps): bump google.golang.org/grpc from 1.63.2 to 1.64.0 by @dependabot in #806
  • chore: simplify generating metrics docs by @mmatczuk in #810
  • martian: support server sent events without chunked encoding by @Choraden in #812
  • chord: fix code block rendering in help and yaml help by @mmatczuk in #815
  • utils/cobrautil/templates: change
    to

    for new paragraph by @mmatczuk in #816

  • chore: fix rendering code-block in markdown by @mmatczuk in #817
  • martian(mitm): support CONNECT over HTTP 1.0 by @mmatczuk in #814
  • bind: improve header flag usage with tags by @Choraden in #822
  • build(deps): bump github.com/spf13/viper from 1.18.2 to 1.19.0 by @dependabot in #823
  • martian: support iterating over not interfaceable fields in asCloseWriter() by @mmatczuk in #824
  • build(deps): bump github.com/prometheus/common from 0.53.0 to 0.54.0 by @dependabot in #826
  • chore: bump Go version to 1.22.4 by @mmatczuk in #827
  • build(deps): bump golang.org/x/text from 0.15.0 to 0.16.0 by @dependabot in #829
  • build(deps): bump golang.org/x/sys from 0.20.0 to 0.21.0 by @dependabot in #831
  • build(deps): bump golang.org/x/net from 0.25.0 to 0.26.0 by @dependabot in #830
  • goreleaser: add winget by @mmatczuk in #825
  • martian: extend round trip error log by @mmatczuk in #828
  • contribution: cleanse the doc from false statements by @Choraden in #839
  • build(deps): bump github.com/gorilla/websocket from 1.5.0 to 1.5.2 by @dependabot in #840
  • bind: fix httplogFlag default value in help by @Choraden in #837
  • log: change level type to string by @Choraden in #838
  • martian: refactor copySync() for easier bidirectional copying by @mmatczuk in #841
  • middleware(prom): add customizable label for http metrics by @Choraden in #747

Full Changelog: v1.2.1...v1.3.0

v1.2.1

27 Mar 09:57
Compare
Choose a tag to compare

What's Changed

  • chore: Fix typo in MITM flag doc by @alexh-sauce in #735
  • chore(gh): release update deprecated dependencies by @mmatczuk in #734
  • dial: increase dial t/o to 30s by @mmatczuk in #736
  • build(deps): bump golang.org/x/net from 0.21.0 to 0.22.0 by @dependabot in #737
  • build(deps): bump golang.org/x/sys from 0.17.0 to 0.18.0 by @dependabot in #738
  • build(deps): bump google.golang.org/grpc from 1.62.0 to 1.62.1 by @dependabot in #739
  • build(deps): bump google.golang.org/protobuf from 1.32.0 to 1.33.0 by @dependabot in #740
  • build(deps): bump github.com/prometheus/common from 0.47.0 to 0.50.0 by @dependabot in #741
  • Add matcher interface for domains filtering by @Choraden in #742
  • docsgen: move WriteCommand and WriteDefaultConfig to utils by @Choraden in #743
  • bind: change data URI scheme format in pac flag usage by @Choraden in #744
  • chore: update docs by @Choraden in #745
  • docsgen: add ID in the footer for cli by @Choraden in #746
  • utils/docsgen: export FlagGroups and EnvPrefix variables to allow specifying them by @Choraden in #749
  • Document Prometheus metics by @mmatczuk in #750
  • cobrautil/templates: support custom formats in usages by @Choraden in #752
  • build(deps): bump github.com/prometheus/common from 0.50.0 to 0.51.0 by @dependabot in #753
  • build(deps): bump github.com/prometheus/common from 0.51.0 to 0.51.1 by @dependabot in #754
  • docs(mk): add clean target by @mmatczuk in #756
  • cobrautil/templates(yaml_flag_printer): support
    , and by @Choraden in #755
  • Use docker or podman compose instead of docker-compose by @mmatczuk in #757

Full Changelog: v1.2.0...v1.2.1

v1.2.0

04 Mar 13:40
Compare
Choose a tag to compare

What's Changed

Full Changelog: v1.1.2...v1.2.0

v1.1.2

12 Jan 10:29
Compare
Choose a tag to compare

What's Changed

New Contributors

Full Changelog: v1.1.1...v1.1.2

v1.1.1

02 Jan 11:04
Compare
Choose a tag to compare

Relevant Changes

What's Changed

Full Changelog: v1.1.0...v1.1.1

v1.1.0

30 Nov 10:02
9f29f09
Compare
Choose a tag to compare

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

Read more

v1.1-rc1

17 Oct 12:47
Compare
Choose a tag to compare
v1.1-rc1 Pre-release
Pre-release

Changelog

  • a9e5d1c bind: rephrase --log-http usage
  • 1bdbc3b cmd/forwarder/run: initialize runctx.Group with a function
  • 5fce40a cmd/forwarder/run: register process metrics
  • af5d444 http_proxy: add proxy errors metric
  • 8088def http_proxy: make errorResponse func a proxy method
  • f11b5b5 martian: add TestReadHeaderConnectionReset
  • 8455fb6 martian: add isClosedConnError from http2
  • 01e4130 martian: always close connection on readRequest error
  • 4474a8d martian: modernize isClosedConnError
  • 888aa15 martian: move readRequest error logging to handle
  • 6da7936 martian: refactor isCloseable
  • 2dece1d martian: use isClosedConnError instead of isCloseable outside of handleLoop
  • 180744c runctx: allow to start group without notify signals
  • 26a961f utlis/httpx: add RoundTripperFunc

v1.1-rc0

09 Oct 09:17
Compare
Choose a tag to compare
v1.1-rc0 Pre-release
Pre-release

Changelog

  • 753084e Revert "log/stdlog: implement WithValue"
  • 3e0d95b Revert "log: extend Logger interface with WithValue method"
  • d37e335 Revert "martian(context): do not initialize ID value"
  • 4b7e381 Revert "martian(handler): use traced logger"
  • 7c2edb4 Revert "martian(proxy): use traced logger"
  • 6ebaae3 Revert "martian/context: store id as string"
  • 483e90d Revert "martian/context: use base 10 when converting id to string"
  • beb0acd api: add configurable endpoints
  • dcb33d4 api: make readiness check optional
  • 8a08c40 api: refactor script, config and version to APIEndpoint
  • e1eb3c2 bind: add --log-http-request-id-header flag
  • 4e96a0b bind: add func to bind prometheus namespace
  • 2e2570e bind: add proxy-header flag
  • 8297fe9 bind: add read and write limit
  • 37f9a1b bind: fix --basic-auth and --credentials values in usage description
  • 5ad9761 bind: redact base64 cert and key value
  • dc1a869 bind: replace route with short-url http log mode
  • ae8d2db bind: update credentials and basic-auth value types in usage
  • 8d9a6f5 bind: update deny-domain-exclude usage description
  • e078fdf cmd/forwarder/run: add --mitm-domains flag
  • 68026c4 cmd/forwarder/run: add /cacert if MITM is enabled
  • d491e9b cmd/forwarder/run: add ProxyHeaders
  • da64271 cmd/forwarder/run: add direct domains flag
  • 5c3679b cmd/forwarder/run: only add /pac endpoint if pac is set
  • 08f1569 cmd/forwarder/run: remove decorate func from martian logger
  • 09bd2ad cmd/forwarder: do not defer when building commands
  • 93b1263 cmd/forwarder: log fatal error if logger is available
  • 814f757 cmd/fowarder/run: bind prometheus namespace
  • d187193 cmd: runE functions don't need to be exported
  • ee5fc58 cmd: remove note on url escaping of user and password
  • 49aee3a config: rename ParseUserInfo -> ParseUserinfo
  • 6d9f351 config: rework parse host port and user
  • 073eada config: rework parse proxy url
  • 7da8a62 config: rework parse user info
  • a2155d6 dialvia: add connect request modifier
  • f5b3aaf dialvia: do not send default GO HTTP client User-Agent
  • 0d6de38 dialvia: do not url escape user and pass for proxy auth header
  • 9071f47 e2e (setups): remove deny domain exclude only setup
  • 5d6a855 e2e(mk): ignore stderr in copying httpbin env vars in make test
  • 36c78d1 e2e(mk): pre pull docker e2e test image
  • d684d69 e2e(mk): run profiling concurrently with the benchmark
  • 3e765e5 e2e/setup(callback): log SKIP: lines from test's stdout
  • 9e86b9c e2e/setup(callback): return error on nonempty stderr
  • e47d6ff e2e/tests (TestProxyUpstream): use httpbin/headers/ endpoint to assert traffic
  • 789e0b8 e2e/tests: rework request and response header flag tests to use /headers/ endpoint
  • 83801d1 e2e: add direct domains flag test
  • 595f74c e2e: add rate limit tests
  • a599a70 e2e: add test for --mitm-domains
  • 2af6f01 e2e: add tests for MITM with generated CA
  • 20e7a2d e2e: set dns timeout to 1 second
  • 8a34fe5 e2e: use special characters for basic auth and credentials
  • 88c514f forwarder: add SizeSuffix type
  • c1ffc16 http_(proxy,server) remove TunnelScheme
  • 212cbb6 http_(proxy,server): remove Listener
  • 571c52f http_proxy: add ConnectRequestModifier
  • 98100dc http_proxy: add MITMDomains to HTTPProxyConfig
  • 32cb1ed http_proxy: add NewHTTPProxyHandler
  • 0e7d355 http_proxy: add direct domains support
  • b091ca8 http_proxy: add missing log line "PROXY server listen address"
  • ed64507 http_proxy: adjust usage of ruleset NewRegexp
  • 5e0a9ab http_proxy: alias all martian types to avoid exposing them
  • 04d306c http_proxy: allow to read request ID from header and use in logs
  • 833de33 http_proxy: do not check if proxy is closing on Close()
  • 8442986 http_proxy: enable getting MITM CA cert
  • 44221d0 http_proxy: move deny domains parsing to command
  • 52196e3 http_proxy: only update upstream proxy user from credentials if user is not set
  • 0fc4e21 http_proxy: start listener on construction
  • fa5ecce http_proxy: support read and write limit
  • 5b52d66 http_proxy: unexport Handler function
  • 2be927d http_server: start listener on construction
  • c38c870 httplog: change trace format and the way it is retrieved
  • 1df1df3 httplog: replace route mode with short-url
  • 627add0 log/martianlog: export martian log setting
  • 290433e log/stdlog: change log level print format
  • 5c12190 log/stdlog: log timestamp with microseconds resolution
  • 12c4cff maritan: delete internal multierror
  • 43fb8e0 martian (mitm): add possibility to MITM only selected requests
  • 8cbd509 martian (mitm): improve logging
  • 9a7a80f martian (mitm): use Peek and avoid allocating reader for 1 byte slice
  • b76ca56 martian(context): add trace id to context.Context when wrapping martian.Context there
  • be38ac2 martian(httpspec): add Transfer-Encoding to unit test
  • b47a00a martian(mitm): check if peeked data is not nil
  • 80c8031 martian/fifo: replace multierror with go uber's one
  • e1ccb6d martian/log: add context.Context to logging functions
  • 34edee3 martian/log: make martian's logger interface
  • d6ea3fc martian/mitm: enable getting CA cert from Config
  • 737a653 martian/proxyutil: use http.NoBody
  • 4dad5c6 martian: add ConnectRequestModifier
  • 719bd2c martian: add TLS termination in CONNECT
  • 06a56b5 martian: close proxy only once
  • b7e80ea martian: fix Excess found: excess = 2 url = / (zero-length body) in HEAD response
  • c1a6aef martian: fix TestReadHeaderTimeout
  • c00af3a martian: handler, do not copy http.NoBody
  • 502fef8 martian: improve request IDs format
  • ef63de5 martian: log request id from header
  • 235e635 martian: pass context.TODO() to logging functions
  • 1a1bad5 martian: peek the connection before setting read timeout
  • 4fbcf23 martian: reformat duplicate code in Proxy.connectHTTP
  • f6e851d martian: remove martian: prefix from logs
  • 243b179 martian: test ConnectRequestModifier for HTTP upstream proxy
  • 2296ca0 martian: use context logging functions in proxy and handler
  • 4f94ae0 middleware: remove metrics labels
  • d5620c1 packaging: add powershell to completions.sh
  • 84f4b8b ratelimit: implement rate limiting package
  • 10d1079 ruleset: RegexpMatcher add inverse
  • ed8e4d0 ruleset: add RegexpList to support parsing Regexp from slice and rename Regexp to RegexpMatcher for clarity
  • ff558bf ruleset: rename RuleSet to Regexp
  • 066eb8c ruleset: rename files to regex
  • 3681cb3 ruleset: return error on creation when specified exclude rules without includes
  • 1e466b7 utils/cobrautil(bind): always get config file type from extension
  • 8fe63cc utils/cobrautil(bind): extract setFlagFromViper to function
  • 00fe2eb utils/cobrautil(bind): implementation based on Replace(val []string) with tests
  • df50e5f utils/cobrautil: handle errors and flag state when updating from viper
  • 4ccf9e9 utils/cobrautil: refactor DescribeFlags
  • 0683990 utils/cobrautil: reformat describe unit tests
  • 138fae7 utils/cobrautil: support pasring lists from env vars and config file
  • 7e0061c utils/cobrautil: use any instead of interface{}
  • ea3479c utils/golden: support diff of Prometheus Metrics from api server
  • 9ed2543 utils/httpbin: add count-bytes endpoint
  • d789027 utils/httpbin: add headers endpoint
  • 91d0d31 utils/httpbin: remove /header/ endpoint
  • 76c1d95 utils/httpbin: remove comment with implemented handlers
  • cfa0cc7 utils/httphandler: add SendCACert

v1.0.2

17 Jul 09:39
adc5418
Compare
Choose a tag to compare

Changelog

  • 820efd5 README.md: add more information on installation
  • 1d4014c api: add context to ready func
  • 264affe bind: add "c" as shorthand for config-file
  • 067b4d3 bind: remove "socks" as supported proxy protocol, the supported protocol is "socks5"
  • be8f5f7 bind: remove shorthand "k" for "insecure" flag
  • f779f8b cmd/forwarder/ready: add readiness check command
  • 9f50d52 cobrautil (templater): pass custom envPrefix for flag usages
  • 17ee304 e2e (compose): make OnStart function mandatory
  • 6d8ed51 e2e (compose): wait for all containers in parallel
  • 35672e4 e2e (setups): change and document the naming scheme to use httpbin scheme first
  • 70b9b31 e2e (setups): change formatting to improve readability
  • 8d87ddb e2e (setups): split components to different files
  • 3c1c34e e2e (test): replace Errorf With Fatalf
  • f59dce3 e2e (tests): extract basic proxy tests to separate file and add Proxy
  • 4161c7f e2e (wait): automatically extend MaxWait time in CI
  • f2632bb e2e/forwarder: streamline service creation
  • 6b46a27 e2e/forwarder: unexport HealthCheck and make increase retries to 10
  • b66d69c e2e/forwarder: use compose healthcheck instead of WaitFunc
  • 0122d68 e2e: add debug flag to simplify debugging
  • 0cb9123 e2e: add possibility to run tests for a specific environment setup
  • 8b15b1e e2e: avoid reading env var multiple times
  • 21d8175 e2e: export test setups
  • b7f0c16 e2e: extract run into e2e
  • adc5418 e2e: make e2e.test phony
  • 3a5d72e e2e: make waiting time configurable
  • 545de07 e2e: move browser-pac.js to repo root
  • 4c1bf0d e2e: move compose to utils
  • ae817e3 e2e: move run/setups service and opts to forwarder
  • c674f3c e2e: move tests to tests package
  • 0f7b21d e2e: move wait to utils
  • ff660f9 e2e: quote RUN and SETUP
  • 0ce4f61 e2e: refactor setups and tests
  • cfe326b e2e: refactor test setup creation
  • b0f36b3 e2e: rename default to defaults
  • 1400bc1 e2e: rename framework to client
  • bc70897 e2e: rephrase why the 1xx tests are skipped
  • afd22b5 e2e: status, check multiple methods
  • 4efe0f0 e2e: test statusCodes for HEAD method
  • f125caf e2e: use httpexpect.NewURLWithBasicAuth
  • fc95df3 fix (readme): remove shorthand for "insecure" flag
  • a53cee2 fix: improve logging
  • 311759d go mod update github.com/saucelabs/martian/v3
  • 02ebded http proxy: add function to return ProxyFunc used by the proxy
  • 04bae21 http_server: debug log loading TLS certificate
  • 7fbca70 http_transport: reduce dial timeout to 10s
  • 7a43be8 runctx: add unit tests
  • 1e70b19 runctx: ignore context canceled error
  • edb6251 runctx: refactoring
  • b3e7c66 runctx: unregister signals after ctx is done
  • 3e6cd21 utils/compose: add Service healthcheck
  • a906054 utils/compose: extract Service to separate file
  • d9aa591 utils/compose: remove wait
  • c7cf14a utils/httpexpect: add NewURLWithBasicAuth
  • bcb914c utils/httpexpect: export Request function
  • 890ea0e utils/wait: remove