Skip to content

v1.3.2

Choose a tag to compare

@fabiocicerchia fabiocicerchia released this 28 Sep 05:46
· 12 commits to main since this release
Immutable release. Only release title and notes can be modified.
61ca933

Changes

    • added end-to-end tests - refactoring - minor fixes - improved logging - added docs - http2https
    • https - http2 - readme - coverage
    • refactoring - added tests - saving data into redis with gob - added load balancing (roundrobin) - improved CI - added tests in dockerfile - linted - added check for race conditions - added config struct
    • added graceful shutdown - small refactoring - gzip
    • fix codecov in ci - fixing tests - added script flags - added tlsfuzzer - docs
  • Add FUNDING.yml + contact CTA
  • Add license scan report and status (#64)
  • Added the required mention in the readme for OpenSSL
  • Bump alpine from 3.12.1 to 3.12.2 (#61)
  • Bump alpine from 3.12.2 to 3.12.3 (#66)
  • Bump alpine from 3.12.3 to 3.13.0
  • Bump alpine from 3.13.0 to 3.13.2
  • Bump alpine from 3.13.2 to 3.13.5
  • Bump alpine from 3.13.5 to 3.14.0
  • Bump golang from 1.15.4-alpine3.12 to 1.15.5-alpine3.12
  • Bump golang from 1.15.5-alpine3.12 to 1.15.6-alpine3.12 (#39)
  • Bump golang from 1.15.6-alpine3.12 to 1.16.1-alpine3.12
  • Bump golang from 1.16.1-alpine3.12 to 1.16.3-alpine3.12
  • Bump ws from 7.4.1 to 7.4.6 in /test/full-setup
  • Cache dns upstream - closed #52
  • Cancel superseded CI runs on the same ref
  • Compile on different platforms and provide it on each release (#138)
  • Create codeql-analysis.yml
  • Dedupe balancer init logic and metrics label-building (ponytail audit)
  • Docker multi distro builds (#22)
  • Domain overrides settings #35 (#106)
  • Feature/update dependencies (#161)
  • Fix mis-indented Kubernetes deployment manifest (Pod-spec fields nested under containers)
  • Fixed missing TLS files + Refactoring (#102)
  • Fixed paambaati/codeclimate-action@v2.7.4
  • HTTP2 Pusher interface is broken (#65)
  • Harden runtime images: drop root, add libcap for privileged-port binding, add HEALTHCHECK
  • LB Algorithms (#108)
  • Merge branch 'main' into claude/amazing-meitner-sf2tv5
  • Merge branch 'main' into feature/issue-58-negative-caching
  • Merge branch 'main' into feature/redis_cluster
  • Merge branch 'main' into v0.2.0
  • Merge branch 'main' of github.com:fabiocicerchia/go-proxy-cache into main
  • Merge branch 'main' of github.com:fabiocicerchia/go-proxy-cache into main
  • Merge pull request #1 from fabiocicerchia/dependabot/docker/golang-1.15.5-alpine3.12
  • Merge pull request #155 from Aireuropa/feature/redis_cluster
  • Merge pull request #163 from fabiocicerchia/upgrading
  • Merge pull request #166 from fabiocicerchia/dependabot/npm_and_yarn/test/full-setup/ws/semver-7.5.4
  • Merge pull request #167 from fabiocicerchia/dependabot/go_modules/golang.org/x/net-0.17.0
  • Merge pull request #168 from fabiocicerchia/dependabot/npm_and_yarn/test/full-setup/ws/sideway/formula-3.0.1
  • Merge pull request #169 from fabiocicerchia/dependabot/npm_and_yarn/test/full-setup/ws/fastify-3.29.5
  • Merge pull request #181 from fabiocicerchia/dependabot/go_modules/google.golang.org/protobuf-1.33.0
  • Merge pull request #203 from fabiocicerchia/snyk-fix-581307a6c304b01df5c951da54754b77
  • Merge pull request #204 from fabiocicerchia/snyk-fix-75590cef215191f584789739b1eb8b4f
  • Merge pull request #205 from fabiocicerchia/dependabot/npm_and_yarn/test/full-setup/ws/ws-8.17.1
  • Merge pull request #206 from fabiocicerchia/dependabot/go_modules/golang.org/x/net-0.23.0
  • Merge pull request #207 from fabiocicerchia/dependabot/npm_and_yarn/test/full-setup/ws/multi-2fd66afbb9
  • Merge pull request #208 from fabiocicerchia/feature/jwt-validation
  • Merge pull request #249 from fabiocicerchia/dependabot/go_modules/golang.org/x/crypto-0.45.0
  • Merge pull request #255 from fabiocicerchia/snyk-fix-0df44f11c41149909d0486d54aec263a
  • Merge pull request #257 from fabiocicerchia/snyk-fix-0ef06eee9a8975e6a542fa80f84f65af
  • Merge pull request #258 from fabiocicerchia/claude/amazing-meitner-sf2tv5
  • Merge pull request #260 from fabiocicerchia/dependabot/npm_and_yarn/test/full-setup/ws/ws-8.21.0
  • Merge pull request #263 from fabiocicerchia/dependabot/npm_and_yarn/test/full-setup/ws/multi-51c8167ac1
  • Merge pull request #264 from fabiocicerchia/feature/issue-21-eviction-policy
  • Merge pull request #265 from fabiocicerchia/feature/issue-22-byte-range-cache
  • Merge pull request #266 from fabiocicerchia/feature/issue-58-negative-caching
  • Merge pull request #267 from fabiocicerchia/feature/issue-57-collapsed-forwarding
  • Merge pull request #268 from fabiocicerchia/fix/issue-11-hsts-mitm
  • Merge pull request #270 from fabiocicerchia/gandalf-fixes
  • Merge pull request #271 from fabiocicerchia/dependabot/npm_and_yarn/test/full-setup/ws/brace-expansion-2.1.4
  • Merge pull request #3 from fabiocicerchia/https
  • Merge pull request #67 from fabiocicerchia/v0.2.0
  • Merge pull request #78 from fabiocicerchia/dependabot/docker/alpine-3.13.0
  • Merge pull request #83 from fabiocicerchia/dependabot/docker/alpine-3.13.2
  • Merge pull request #84 from fabiocicerchia/dependabot/docker/golang-1.16.1-alpine3.12
  • Merge pull request #91 from fabiocicerchia/dependabot/docker/golang-1.16.3-alpine3.12
  • Merge pull request #92 from fabiocicerchia/dependabot/docker/alpine-3.13.5
  • Merge pull request #94 from fabiocicerchia/dependabot/npm_and_yarn/test/full-setup/ws-7.4.6
  • Merge pull request #96 from fabiocicerchia/dependabot/docker/alpine-3.14.0
  • Merge pull request #99 from fabiocicerchia/dependabot/docker/alpine-3.14.1
  • Opentracing (#18)
  • Pin GitHub Actions to commit SHAs
  • Production-Ready (#5)
  • Prometheus Metrics (#111)
  • Support HTTP Basic Auth on upstreams - closed #46
  • Update FUNDING.yml
  • added TTL based on s-maxage or max-age
  • added allowed statuses and methods
  • added banner for supporting the project
  • added changelog
  • added export methods comments
  • added extra details in cache_*_total prometheus metrics
  • added functional tests
  • added grc for test colouring
  • added healthcheck + purge method
  • added helm chart & kustomization manifests (#27)
  • added jwt validation
  • added missing file for readthedocs.io
  • added multi arch build (#21)
  • added port in healthchecks (#130)
  • added redis cluster support
  • added support for expires header
  • added tests
  • added yaml config
  • adding extra metrics + graphs in grafana (#28)
  • adding tests
  • adjusted and extended redis cluster support
  • build(deps): bump @opentelemetry/core, @opentelemetry/auto-instrumentations-node, @opentelemetry/exporter-jaeger, @opentelemetry/resources, @opentelemetry/sdk-trace-base and @opentelemetry/sdk-trace-web
  • build(deps): bump @sideway/formula in /test/full-setup/ws
  • build(deps): bump alpine from 3.14.0 to 3.14.1
  • build(deps): bump alpine from 3.14.1 to 3.14.2 (#105)
  • build(deps): bump alpine from 3.14.2 to 3.15.0 (#117)
  • build(deps): bump alpine from 3.15.0 to 3.15.2 (#129)
  • build(deps): bump alpine from 3.15.2 to 3.15.4 (#136)
  • build(deps): bump brace-expansion in /test/full-setup/ws
  • build(deps): bump cookie and @opentelemetry/auto-instrumentations-node
  • build(deps): bump fastify from 3.27.4 to 3.29.5 in /test/full-setup/ws
  • build(deps): bump go.opentelemetry.io/otel/sdk (#288)
  • build(deps): bump golang from 1.17.0-alpine3.14 to 1.17.8-alpine3.14 (#123)
  • build(deps): bump golang from 1.17.8-alpine3.14 to 1.18.0-alpine3.14 (#125)
  • build(deps): bump golang from 1.18.0-alpine3.14 to 1.18.2-alpine3.14 (#140)
  • build(deps): bump golang.org/x/crypto from 0.21.0 to 0.45.0
  • build(deps): bump golang.org/x/net from 0.10.0 to 0.17.0
  • build(deps): bump golang.org/x/net from 0.17.0 to 0.23.0
  • build(deps): bump google.golang.org/protobuf from 1.31.0 to 1.33.0
  • build(deps): bump semver from 7.3.5 to 7.5.4 in /test/full-setup/ws
  • build(deps): bump ws from 8.18.0 to 8.21.0 in /test/full-setup/ws
  • build(deps): bump ws from 8.5.0 to 8.17.1 in /test/full-setup/ws
  • changed copyright year
  • changed misleading description
  • changed readme badges
  • changelog
  • chg: Add tests for etags http headers - closes #71
  • chg: benchmarks - closed #14 (#59)
  • chg: displaying omitted when printing configuration settings
  • chg: linted
  • chg: refactor to have an upstream pool - closed #47
  • chg: refactoring
  • chg: refactoring + removed some todos
  • chg: refactoring + removing other todos
  • chg: refactoring + tests
  • chg: refactoring to use DomainID consistenly in various places + changed some logging
  • chg: updated changelog for v1.1.0
  • chg: upgraded package.json
  • chore(release): bump version to 1.3.1 (#281)
  • chore(release): bump version to 1.3.2 (#290)
  • chore: declare this repository in the paved catalog (#286)
  • ci: move Builds off the retired ubuntu-20.04 runner
  • ci: post dependency drift and SBOM diffs to boneyard (#285)
  • ci: post this repository's gandalf record to proofhouse (#284)
  • ci: stop re-running on main what the pull request already proved (#287)
  • circuit breaker
  • converted to use opentelemetry rather than opentracing (#20)
  • corrected changelog for v1.0.0
  • coverage
  • deprecating http/2 push
  • deps update
  • deps version bump
  • dev: added comments to explain critical settings related to issue #35
  • disabled codeclimate in pipeline, as it is not working and still waiting from customer support
  • disabled tests in dockerfile
  • docs: remove the broken FOSSA badge
  • enterprise cleanup
  • feat(cache): add negative caching for configurable error statuses
  • feat(cache): expose Redis maxmemory-policy for eviction (LRU/LFU/etc)
  • feat(handler): collapse concurrent identical GET/HEAD upstream fetches
  • feat(purge): add IP allowlist and shared-secret auth for PURGE
  • feat(upstream): gate collapsed forwarding behind a feature flag (default off)
  • fix(balancer): close healthcheck response bodies
  • fix(balancer): eliminate data races between health checks and Pick
  • fix(balancer): prevent index-out-of-range panic in ip-hash Pick
  • fix(balancer): prevent index-out-of-range panic in round-robin Pick
  • fix(build): drop -march=native from CGO_CFLAGS (#280)
  • fix(cache): bypass cache for Range requests and partial content responses
  • fix(cache): respect min lower bound in soft-expiration jitter
  • fix(ci): disable GO_MODULES alongside GO in super-linter (#274)
  • fix(deps): update all Go dependencies to current versions
  • fix(docker): update EOL base images and Go builders
  • fix(handler): handle IPv6 hosts in GetHostname
  • fix(handler): reuse the upstream transport instead of building one per request (#289)
  • fix(healthcheck): report REDIS status based on all connections
  • fix(healthcheck): return HTTP 500 when Redis is unavailable
  • fix(jwt): don't run JWT validation when no JWKS URL is configured
  • fix(jwt): set Content-Type before writing the response header
  • fix(logger): escape attacker-controlled fields in access log lines
  • fix(publish): publish to GHCR, on demand, signed, from one build (#279)
  • fix(publish): sign both registries even when a tag is refused (#283)
  • fix(redis): avoid panic in Get when circuit breaker is open
  • fix(release): don't let an annotated tag break the release workflow (#282)
  • fix(security): add configurable HSTS header to mitigate MITM/SSL-stripping
  • fix(server): make graceful shutdown actually graceful
  • fix(server): stop multiplying duration timeouts by time.Second
  • fix(tls): stop mutating a shared tls.Config across domains
  • fix(tls): use a stable, configurable autocert cache directory
  • fix(transport): don't panic on HTTP/2 push failure
  • fix(utils): handle IPv6 addresses correctly in StripPort
  • fix: Automatically push to Docker Hub - closed #103
  • fix: Dockerfile to reduce vulnerabilities (#127)
  • fix: Dockerfile to reduce vulnerabilities (#142)
  • fix: Fix CodeClimate broken coverage - closed #44
  • fix: Test logging to file - closes #73
  • fix: add tags in Configuration struct - closed #41
  • fix: added docker push to makefile
  • fix: added missing docs for golint
  • fix: broken build pipeline
  • fix: broken tests for logs
  • fix: docker/Dockerfile to reduce vulnerabilities
  • fix: docker/Dockerfile.amazonlinux to reduce vulnerabilities
  • fix: docker/Dockerfile.amazonlinux to reduce vulnerabilities
  • fix: docker/Dockerfile.debian to reduce vulnerabilities
  • fix: fix CodeClimate broken coverage - #44
  • fix: fixing to achieve good score on BetterCodeHub - #40
  • fix: generating dummy tls certificates for tests
  • fix: health-check the upstream over the upstream's own scheme (#277)
  • fix: least-privilege workflow tokens, super-linter v8, and unswallowed errors on the request path (#273)
  • fix: lowered priority from WARN to INFO in case of MISS in redis + fixed one test + fixed wrong wildcard schema being passed to the proxy
  • fix: refactoring to avoid to share HTTP headers with sensitive information in redis key
  • fix: replacing correctly the cache_status_label variable
  • fix: say which check turned a request away, instead of "mostly likely" (#276)
  • fix: store responses that have no Vary header (#278)
  • fix: tests for chunking - closed #43
  • fix: using correct tls certificates on test/full-setup
  • fix: using the correct redis connection in case of wildcard scheme matching
  • fixed broken insecurebridge
  • fixed broken tests
  • fixed docker network, tests are successful
  • fixed dockerfile build
  • fixed error Cannot process Upstream URL: parse "123abc.com:8080": first path segment in URL cannot contain colon while using an upstream hostname with port without specifying its protocol
  • fixed golang version base image for docker
  • fixed image logo
  • fixed some todos
  • fixed typo in build-multiarch
  • fixing CodeQL issue: Log entries created from user input
  • fixing build
  • fixing sca (#34)
  • fixing tests after refactoring
  • implemented opentelemetry - closed 56 (#110)
  • improved dashboard - #4
  • improving builds in github actions
  • initial commit
  • install grc dep in github actions
  • linting
  • linting
  • linting
  • more fixes
  • multi-domains
  • new: Add log support for sentry/syslog/rsyslog (#112)
  • new: Add tests for HTTP2 Push - closes #75
  • new: Async storing in redis to avoid latency - closed #55
  • new: Handle ETags - closes #10 (#62)
  • new: Kubernetes Example - closes #60
  • new: Missing locks on write/read on redis - closes #45
  • new: Prevent Cache Stampede + Serve STALE cache - closed #48 #18
  • new: Upstream healthchecks - closed #49
  • new: Use X-Forwarded-Proto - closes #26
  • new: WebSockets - closes #16 (#63)
  • new: add readthedocs.org - closes #30
  • new: added new label for HIT/MISS in the logs
  • new: added tests for websockets
  • new: check configuration validity - closed #7
  • new: docker docs - closed #34
  • new: make health-check optional, with config flag - closed #29
  • new: make release - closed #6
  • new: set log line format in config - closed #32
  • no global variables (renamed co to jwtConfig)
  • opentelemetry refactoring
  • perf(cache): return empty Vary slice when header is absent
  • perf(config): make DomainConf memoization actually work
  • perf(jwt): cache compiled excluded-path regexes
  • prometheus refactoring
  • refactor: elevate-code sweep (#275)
  • refactoring
  • refactoring
  • refactoring
  • refactoring
  • refactoring
  • refactoring
  • refactoring
  • refactoring
  • refactoring
  • refactoring + CII Best Practices
  • refactoring + tests
  • refactoring + tests
  • refactoring tests
  • refactoring tests
  • removed unused lock file
  • restored code
  • restored nginx image
  • small adjustments to fix mostly the tests
  • small fixes
  • small fixes to solve mostly linting issues
  • small refactoring
  • small refactoring + polishing of folder structure
  • switch from gob to msgpack
  • updated changelog
  • updated changelog
  • updated changelog + fixes on makefile
  • updated changelog for v0.3.0
  • updated changelog for v1.0.0
  • updated docker image tags for full test
  • updated go dependencies
  • updated testing docs
  • updated ws test dependencies
  • upgraded components in docker nginx to a newer version (not latest though)
  • upgraded deps for ws test
  • version bump for golang image
  • version bump for ws deps
  • version upgrades + fixing sca
  • wip chunks
  • wip for vary header