Skip to content

v0.1.11

Choose a tag to compare

@github-actions github-actions released this 01 Oct 04:49
· 6 commits to main since this release

Added

  • Rate limits can now be shared across multiple Keygate instances through Redis or Valkey. Set REDIS_URL and every instance
    counts against the same limits. Before this release REDIS_URL was accepted but had no effect, so each instance limited on its
    own and N instances allowed N times the configured limit.
  • The bundled docker-compose.yml passes REDIS_URL through to the container.

Changed

  • If Redis becomes slow or unreachable, rate limiting falls back to per-instance in-memory limits instead of failing. Each Redis
    call gives up after 250 ms, a circuit breaker stops retrying a dead endpoint, and Keygate reconnects automatically once Redis is
    back, without a restart.
  • REDIS_URL accepts redis:// and rediss:// URLs as well as a bare host:port. A malformed URL is logged without exposing
    the password, and Keygate starts with in-memory limits.
  • Rate-limit keys are namespaced per install, derived from BASE_URL, so several installs can share one Redis database. Installs
    that share a domain should use separate database numbers, for example redis://host:6379/1.
  • Built with Go 1.27. Dependencies are updated, including fixes for known vulnerabilities in golang.org/x/net,
    golang.org/x/text and quic-go.
  • Release images build faster, especially for arm64.

Upgrade notes

  • No database migration or configuration change is required. Without REDIS_URL, rate limiting behaves exactly as before.
  • Building from source now requires Go 1.27.
  • Webhook URLs with a malformed host, such as an IPv6 address without brackets (http://::1/), are now rejected. Use brackets
    instead: http://[::1]/.

Full Changelog: v0.1.10...v0.1.11