• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

umputun / reproxy
79%

Build:
DEFAULT BRANCH: master
Repo Added 10 Apr 2021 12:20AM UTC
Files 19
Badge
Embed ▾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

LAST BUILD ON BRANCH master
branch: master
CHANGE BRANCH
x
Reset
  • master
  • add-X-Forwarded-URL
  • assets-cache
  • assets404
  • basic-auth
  • chore/go-1.26-and-deps
  • ci/workflow-hardening
  • dependabot/docker/goreleaser/goreleaser-v1.25.1
  • dependabot/github_actions/github-actions-updates-a2e7793ad6
  • dependabot/go_modules/go-modules-updates-07f3a6036d
  • dependabot/go_modules/go-modules-updates-1d93b033d5
  • dependabot/go_modules/go-modules-updates-89f9fe7d2d
  • dependabot/go_modules/go-modules-updates-a76f434722
  • dependabot/go_modules/go-modules-updates-b6eb7de9c2
  • dependabot/go_modules/go-modules-updates-b9a07c6e8d
  • dependabot/go_modules/go-modules-updates-c2f73b432e
  • dependabot/go_modules/go-modules-updates-c741a0ad90
  • dependabot/go_modules/golang.org/x/crypto-0.45.0
  • dependabot/go_modules/golang.org/x/net-0.23.0
  • dependabot/go_modules/golang.org/x/net-0.38.0
  • dependabot/go_modules/golang.org/x/text-0.3.8
  • dependabot/npm_and_yarn/site/browserslist-4.16.6
  • dependabot/npm_and_yarn/site/follow-redirects-1.14.7
  • dependabot/npm_and_yarn/site/follow-redirects-1.14.8
  • dependabot/npm_and_yarn/site/markdown-it-12.3.2
  • dependabot/npm_and_yarn/site/minimist-1.2.6
  • dependabot/npm_and_yarn/site/nanoid-3.2.0
  • dependabot/npm_and_yarn/site/normalize-url-4.5.1
  • dependabot/npm_and_yarn/site/shell-quote-1.7.3
  • dependabot/npm_and_yarn/site/ws-7.4.6
  • docker-maker
  • docker-multi-routes
  • dockerhub
  • drop-default-conflict
  • dynamic-server
  • feat/low-cardinality-metrics
  • feature/add-dns-providers
  • feature/upstream-connection-limits
  • fix-dbl-headers
  • fix-header-parsing
  • fix/ci-security-hardening
  • fix/docker-api-version-240
  • fix/dynamic-ssl-fqdns-207
  • fix/metrics-flusher-sse-streaming
  • fix/roundrobin-shrinking-n
  • fqdn-async-discovery
  • header-comma
  • lb-selector
  • libdns-update
  • limit-ips
  • listen
  • maint/deps-update-nov2025
  • max-request-url
  • mgmt
  • mime-cache
  • multi-match
  • multi-static
  • nice-error
  • paskal/dependabot-disable-updates
  • paskal/dependabot-security-updates
  • paskal/docker-user-improvements
  • paskal/dockerfile-improvements
  • per-route-auth
  • per-route-timeout-throttle
  • plugin-headers
  • redirect
  • refs/tags/v0.1.0
  • refs/tags/v0.10.0
  • refs/tags/v0.11.0
  • refs/tags/v0.2.0
  • refs/tags/v0.3.0
  • refs/tags/v0.4.0
  • refs/tags/v0.5.0
  • refs/tags/v0.5.1
  • refs/tags/v0.6.0
  • refs/tags/v0.6.1
  • refs/tags/v0.6.2
  • refs/tags/v0.7.0
  • refs/tags/v0.8.0
  • refs/tags/v0.9.0
  • refs/tags/v1.0.0
  • refs/tags/v1.1.0
  • refs/tags/v1.1.1
  • refs/tags/v1.2.0
  • refs/tags/v1.2.1
  • refs/tags/v1.2.2
  • refs/tags/v1.2.3
  • refs/tags/v1.3.0
  • refs/tags/v1.4.0
  • refs/tags/v1.5.0
  • refs/tags/v1.6.0
  • release-automation
  • rpc
  • server-simple-pattern
  • spa
  • throttle

13 May 2026 12:20AM UTC coverage: 79.214% (+0.9%) from 78.307%
25770167686

push

github

web-flow
feat: per-route timeout and throttle (#140)

* add plan: per-route-timeout-throttle

* feat: add Timeout and Throttle fields to URLMapper with file provider parsing

Adds per-route Timeout (time.Duration) and Throttle (int) fields to the
URLMapper struct. Zero values preserve existing global-fallback behavior.

extendMapper now propagates both fields through the simple-extension path
so routes like /api/ -> /dst/ don't silently lose per-route config before
reaching Match().

File (yaml) provider parses timeout as a duration string and throttle as
int. Negative timeout/throttle values surface as parse errors.

Part of plan 20260512-per-route-timeout-throttle.md (Task 1 of 10).

* feat: extend static provider CSV format with timeout and throttle fields

Extend rule format from server,source,dest[,ping[,forward-health-checks]]
to server,source,dest[,ping[,forward-health-checks[,timeout[,throttle]]]].
Empty positional fields inherit global defaults; invalid duration,
non-integer throttle, or negative values return parse errors at startup.

* feat: add timeout and throttle labels to docker provider

Read reproxy.<n>.timeout and reproxy.<n>.throttle labels via the
existing labelN helper. Invalid duration, non-integer, or negative
values warn and fall back to zero (matches the warn-and-zero pattern
of forward-health-checks/keep-host), so a single bad label cannot
crash discovery for the entire fleet.

* feat: add timeout and throttle labels to consul-catalog provider

Parse reproxy.timeout and reproxy.throttle labels with warn-and-zero
semantics matching the docker provider behavior.

* feat: add routeTimeoutHandler middleware for per-route request deadlines

When a matched URLMapper has Timeout > 0, wrap the request context with
context.WithTimeout and override the connection's read/write deadlines via
http.ResponseController. The middleware runs immediately after matchHandler
and before per-route auth/throttle so auth and limiter work runs inside the
per-r... (continued)

183 of 191 new or added lines in 7 files covered. (95.81%)

2580 of 3257 relevant lines covered (79.21%)

31.23 hits per line

Relevant lines Covered
Build:
Build:
3257 RELEVANT LINES 2580 COVERED LINES
31.23 HITS PER LINE
Source Files on master
  • Tree
  • List 19
  • Changed 7
  • Source Changed 0
  • Coverage Changed 7
Coverage ∆ File Lines Relevant Covered Missed Hits/Line

Recent builds

Builds Branch Commit Type Ran Committer Via Coverage
25770167686 master feat: per-route timeout and throttle (#140) * add plan: per-route-timeout-throttle * feat: add Timeout and Throttle fields to URLMapper with file provider parsing Adds per-route Timeout (time.Duration) and Throttle (int) fields to the URLMapper... push 13 May 2026 12:22AM UTC web-flow github
79.21
25722912491 master chore(deps): bump go to 1.26 and update all dependencies Update go directive in go.mod, CI workflows (ci.yml, release.yml), and Dockerfile from 1.25 to 1.26. Run `go get -u ./...` and `go mod vendor` to bump all direct and transitive deps to thei... push 12 May 2026 08:33AM UTC umputun github
78.31
25721950550 master fix(proxy): bound RoundRobinSelector return to current n (#250) (#251) * fix(proxy): bound RoundRobinSelector return to current n When alive-backend count shrinks between calls (e.g. health-check flips a backend dead), the previously stored last... push 12 May 2026 08:12AM UTC web-flow github
78.34
23132077120 master docs: document forward-health-checks for file and static providers push 16 Mar 2026 07:13AM UTC umputun github
78.36
23132036129 master Add per-route forward-health-checks option (#246) * add ForwardHealthChecks field to URLMapper and all providers Add a new per-route boolean option `forward-health-checks` to URLMapper, parsed by all providers (docker, file, consul-catalog, stat... push 16 Mar 2026 07:10AM UTC web-flow github
78.36
23094110714 master Merge pull request #248 from paskal/ci/workflow-hardening ci: harden workflows, upgrade actions, fix caching push 14 Mar 2026 06:51PM UTC web-flow github
78.23
22729522259 master Merge pull request #245 from paskal/fix/ci-security-hardening harden docker workflow against CI injection attacks push 05 Mar 2026 06:00PM UTC web-flow github
78.23
22643941688 master fix: add http.Flusher to metrics responseWriter for SSE streaming (#247) metrics middleware wraps http.ResponseWriter to capture status codes, but the wrapper did not implement http.Flusher. This caused httputil.ReverseProxy to fall back to buffe... push 03 Mar 2026 09:42PM UTC web-flow github
78.19
21997932082 master Merge pull request #242 from 2128506/master implemented cli / environment option for disabling HTTP to HTTPS redirect push 13 Feb 2026 06:23PM UTC web-flow github
78.16
21997065962 master fix(lint): suppress revive var-naming for plugin package in golangci config push 13 Feb 2026 05:54PM UTC umputun github
78.48
See All Builds (674)
  • Repo on GitHub
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc