No-frills all-in-one HTTP API gateway

Related tags

Network sx
Overview

SX: a minimal, declarative API gateway

WARNING: not production ready. Use at your own risk! Need something better? Check out nginx, Caddy or Envoy

SX is an all-in-one HTTP API gateway. It's intended to be the least-intrusive and simple as possible. It does not support TLS by design: add it on top.

This doesn't mean it's not feature packed - in fact, it provides:

  • load balancing with multiple addresses (if running in Kubernetes you should just use the Service address)
  • service mapping in YAML
  • route grouping/matching (with simple glob patterns)
  • route group authorization (Basic Auth or JWT Bearer token)
  • caching and rate limiting (WIP) (requires Redis)
    • both support key extraction from request parameters
  • Prometheus metrics (and provides a simple Grafana dashboard you can import and customize)

It's very simple to deploy, and provides standard YAML manifests for:

  • docker-compose (includes Redis; also includes pre-configured Prometheus and Grafana)
  • Kubernetes (Redis not included)

Importantly, it supports auto-reload for the Kubernetes ConfigMap. Note this can take a few seconds up to a few minutes depending on the kubelet's sync interval.

It's also stateless - which means you can simply horizontally scale it, run in on preemptible/spot nodes, whatever (you should bring your own scaling for Redis, though).

Configuration

Here's an example configuration file:

redis:
  readaddresses:
    - localhost:6379
  writeaddresses:
    - localhost:6379

services:
  - name: example
    addresses:
      - localhost:8080
    routes:
      - routes:
          - name: private
            method: POST
            path: /private
            ratelimit:
              perminute: 30
            auth:
              bearer:
                publickey: '{"use":"sign","kty":"oct","kid":"005456ff-1262-4bf0-a608-8534e1fe2763","alg":"HS256","k":"L0FCL4hivd7ShePdJnzEEoqlwoOfCrkcqdbXdADNk0s523xV7C5Sr6GiRIMpvNIelEsR6ta7MZnELY4JoHrm_w"}'
          - name: home
            method: GET
            path: /*
            cache:
              ttl: 5m

Routes are matched in the order they are defined.

valyala/fasthttp support

SX partially supports valyala/fasthttp. Many things don't work, though, for example:

  • request/response streaming: fasthttp currently buffers everything
  • cache/rate limiting
  • metrics
Issues
  • chore(deps): bump github.com/prometheus/client_golang from 1.11.0 to 1.12.0

    chore(deps): bump github.com/prometheus/client_golang from 1.11.0 to 1.12.0

    Bumps github.com/prometheus/client_golang from 1.11.0 to 1.12.0.

    Release notes

    Sourced from github.com/prometheus/client_golang's releases.

    1.12.0 / 2022-01-19

    • [CHANGE] example/random: Move flags and metrics into main() #935
    • [FEATURE] API client: Support wal replay status api #944
    • [FEATURE] Use the runtime/metrics package for the Go collector for 1.17+ #955
    • [ENHANCEMENT] API client: Update /api/v1/status/tsdb to include headStats #925
    • [ENHANCEMENT] promhttp: Check validity of method and code label values #962

    What's Changed

    New Contributors

    Full Changelog: https://github.com/prometheus/client_golang/compare/v1.11.0...v1.12.0

    Changelog

    Sourced from github.com/prometheus/client_golang's changelog.

    1.12.0 / 2022-01-19

    • [CHANGE] example/random: Move flags and metrics into main() #935
    • [FEATURE] API client: Support wal replay status api #944
    • [FEATURE] Use the runtime/metrics package for the Go collector for 1.17+ #955
    • [ENHANCEMENT] API client: Update /api/v1/status/tsdb to include headStats #925
    • [ENHANCEMENT] promhttp: Check validity of method and code label values #962
    Commits
    • 0108796 Cut v1.12.0 (#966)
    • 5bd9ee5 go.*: Update dependencies (#965)
    • 9075cdf promhttp: Check validity of method and code label values (#962)
    • 22da949 Use the runtime/metrics package for the Go collector for 1.17+ (#955)
    • dc1559e Update /api/v1/status/tsdb to include headStats (#925)
    • e6e54e8 Merge pull request #944 from yeya24/add-wal-replay-status
    • 98fbd99 Merge pull request #952 from prometheus/repo_sync
    • 70a41d5 Update common Prometheus files
    • dbf420e Merge pull request #928 from prometheus/repo_sync
    • 1d09783 Merge pull request #950 from mrueg/go-1.17
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies 
    opened by dependabot[bot] 3
  • chore(deps): bump github.com/fsnotify/fsnotify from 1.5.1 to 1.5.3

    chore(deps): bump github.com/fsnotify/fsnotify from 1.5.1 to 1.5.3

    Bumps github.com/fsnotify/fsnotify from 1.5.1 to 1.5.3.

    Changelog

    Sourced from github.com/fsnotify/fsnotify's changelog.

    Changelog

    All notable changes to this project will be documented in this file.

    The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.

    [Unreleased]

    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies 
    opened by dependabot[bot] 1
  • chore(deps): bump github.com/fsnotify/fsnotify from 1.5.1 to 1.5.2

    chore(deps): bump github.com/fsnotify/fsnotify from 1.5.1 to 1.5.2

    Bumps github.com/fsnotify/fsnotify from 1.5.1 to 1.5.2.

    Changelog

    Sourced from github.com/fsnotify/fsnotify's changelog.

    Changelog

    All notable changes to this project will be documented in this file.

    The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.

    [Unreleased]

    Commits
    • ceba4ef Add a feature to return the directories and files that are being monitored (#...
    • 712fe1d Fix potential crash on windows if raw.FileNameLength exceeds syscall.MAX_PATH...
    • bfa0135 Allow build on unsupported GOOS (#424)
    • c4cd7f3 Add FreeBSD testing in Github Actions (#419)
    • f482481 Integration Tests: consistent sleeps with informative names (#422)
    • f10a232 Enable cross-compilation builds on PRs (#423)
    • ebaf806 Re-enable tests for PRs (#415)
    • 508ee5e Don't set poller.fd twice in newFdPoller (#406)
    • c11d74b Run cross-compilation builds on every push (#420)
    • 73c3b57 fix go vet warnings: call to (*T).Fatalf from a non-test goroutine (#416)
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies 
    opened by dependabot[bot] 1
  • chore(deps): bump github.com/valyala/fasthttp from 1.34.0 to 1.35.0

    chore(deps): bump github.com/valyala/fasthttp from 1.34.0 to 1.35.0

    Bumps github.com/valyala/fasthttp from 1.34.0 to 1.35.0.

    Release notes

    Sourced from github.com/valyala/fasthttp's releases.

    v1.35.0

    • 7a5afdd Use %v for errors and %q for strings (#1262) (Erik Dubbelboer)
    • e4a541f support adding/removing clients from LBClient (#1243) (Cam Sweeney)
    • b4152d1 Only set RequestCtx.s once (Erik Dubbelboer)
    • d4c739e State active (#1260) (Erik Dubbelboer)
    • f3bce3a Add Go 1.18 support (#1253) (Aoang)
    • c674263 Fix race conditions in tests (Erik Dubbelboer)
    • 286828e add a test for AppendQuotedArg (#1255) (ZhangYunHao)
    • 2044e1e reduce unnessary type assart (#1254) (tyltr)
    • 3101938 Imporve AppendHTMLEscape fast path (#1249) (ZhangYunHao)
    • d1753f7 bytesconv: add appropriate build tags for s390x (#1250) (Nick Rosbrook)
    • 8f5e51f Add connection pool queuing strategies in HostClient. (#1238) (Y.Horie)
    • f7423e3 Fix AppendHTMLEscape (#1248) (ZhangYunHao)
    • 1a5f2f4 Read response when client closes connection #1232 (#1233) (ArminBTVS)
    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies 
    opened by dependabot[bot] 1
  • chore(deps): bump github.com/golang-jwt/jwt/v4 from 4.3.0 to 4.4.0

    chore(deps): bump github.com/golang-jwt/jwt/v4 from 4.3.0 to 4.4.0

    Bumps github.com/golang-jwt/jwt/v4 from 4.3.0 to 4.4.0.

    Release notes

    Sourced from github.com/golang-jwt/jwt/v4's releases.

    v4.4.0

    What's Changed

    New Contributors

    Full Changelog: https://github.com/golang-jwt/jwt/compare/v4.3.0...v4.4.0

    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies 
    opened by dependabot[bot] 1
  • chore(deps): bump github.com/go-redis/redis/v8 from 8.11.4 to 8.11.5

    chore(deps): bump github.com/go-redis/redis/v8 from 8.11.4 to 8.11.5

    Bumps github.com/go-redis/redis/v8 from 8.11.4 to 8.11.5.

    Release notes

    Sourced from github.com/go-redis/redis/v8's releases.

    v8.11.5

    Please refer to CHANGELOG.md for details

    Changelog

    Sourced from github.com/go-redis/redis/v8's changelog.

    8.11.5 (2022-03-17)

    Bug Fixes

    • add missing Expire methods to Cmdable (17e3b43)
    • add whitespace for avoid unlikely colisions (7f7c181)
    • example/otel compile error (#2028) (187c07c)
    • extra/redisotel: set span.kind attribute to client (065b200)
    • format (96f53a0)
    • invalid type assert in stringArg (de6c131)
    • rename Golang to Go (#2030) (b82a2d9)
    • set timeout for WAIT command. Fixes #1963 (333fee1)
    • update some argument counts in pre-allocs (f6974eb)

    Features

    • Add redis v7's NX, XX, GT, LT expire variants (e19bbb2)
    • add support for acl sentinel auth in universal client (ab0ccc4)
    • add support for COPY command (#2016) (730afbc)
    • add support for passing extra attributes added to spans (39faaa1)
    • add support for time.Duration write and scan (2f1b74e)
    • redisotel: ability to override TracerProvider (#1998) (bf8d4aa)
    • set net.peer.name and net.peer.port in otel example (69bf454)
    Commits
    • cae6772 Merge pull request #2050 from go-redis/release/v8.11.5
    • 6f7d7a1 chore: release v8.11.5 (release.sh)
    • 081bf6b chore: tweak release script
    • 04b1478 Merge branch 'master' of github.com:go-redis/redis
    • dbd417a chore: add hll example
    • d28f1f8 Merge pull request #2042 from go-redis/dependabot/github_actions/actions/chec...
    • cfc0812 chore(deps): bump actions/checkout from 2 to 3
    • 65e242e Merge pull request #2039 from jsievenpiper/sentinel-universal
    • ab0ccc4 feat: add support for acl sentinel auth in universal client
    • 730afbc feat: add support for COPY command (#2016)
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies 
    opened by dependabot[bot] 1
  • chore(deps): bump github.com/valyala/fasthttp from 1.31.0 to 1.32.0

    chore(deps): bump github.com/valyala/fasthttp from 1.31.0 to 1.32.0

    Bumps github.com/valyala/fasthttp from 1.31.0 to 1.32.0.

    Release notes

    Sourced from github.com/valyala/fasthttp's releases.

    v1.32.0

    • 7eeb00e Make tests less flaky (#1189) (Erik Dubbelboer)
    • d19b872 Update tcpdialer.go (#1188) (Mikhail Faraponov)
    • c727b99 Release UseHostHeader in ReleaseRequest() (#1185) (Tolyar)
    • 6c0518b Fix UseHostHeader for DoTimeout + tests (#1184) (Tolyar)
    • 6b55811 Add MaxIdleWorkerDuration to Server. (#1183) (Kilos Liu)
    • 4517204 Allow to set Host header for Client (#1169) (Tolyar)
    • 258a4c1 fix: reset response after reset user values on keep-alive connections (#1176) (Sergio VS)
    • e9db537 Use %w to wrap errors (#1175) (Erik Dubbelboer)
    • 7db0597 Fix bad request trailer panic (Erik Dubbelboer)
    • 4aadf9a Fix parseTrailer panic (Erik Dubbelboer)
    • da7ff7a Add trailer support (#1165) (ichx)
    • 017f0aa fix: reset request after reset user values on keep-alive connections (#1162) (Sergio VS)
    • 3b117f8 feat: close idle connections when server shutdown (#1155) (ichx)
    • a94a2c3 Remove redundant code (#1154) (ichx)
    • f7c354c Fix race condition in Client.mCleaner (Erik Dubbelboer)
    • c078a9d Add string and bytes buffer convert trick in README (#1151) (ichx)
    • 3ff6aaa uri: isHttps() and isHttp() (#1150) (Sergey Ponomarev)
    • 8febad0 http.go: Request.SetURI() (Fix #1141) (#1148) (Sergey Ponomarev)
    • 2ca01c7 fix: Status Line parsing and writing (#1135) (Shivansh Vij)
    • 931d0a4 Fix lint (Erik Dubbelboer)
    • d613502 use sync.map is better (#1145) (halst)
    • c15e642 Don't run all race tests on windows (#1143) (Erik Dubbelboer)
    • 6006c87 chore (#1137) (tyltr)
    • 6d4db9b Fix race condition in getTCPAddrs (Erik Dubbelboer)
    • 528dd62 feat: ability to read body separate from header (#1130) (Shivansh Vij)
    • 556aa81 feat: ability to edit status messages (#1126) (Valentin Paz Marcolla)
    • 4cfec1a feat: make public Server.TLSConfig (#1128) (Sergio VS)
    • fe7d90e remove redundant code (#1127) (tyltr)
    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies 
    opened by dependabot[bot] 1
  • chore(deps): bump github.com/valyala/fasthttp from 1.33.0 to 1.34.0

    chore(deps): bump github.com/valyala/fasthttp from 1.33.0 to 1.34.0

    Bumps github.com/valyala/fasthttp from 1.33.0 to 1.34.0.

    Release notes

    Sourced from github.com/valyala/fasthttp's releases.

    v1.34.0

    • 59f94a3 Update github.com/klauspost/compress (#1237) (Mikhail Faraponov)
    • 62c15a5 Don't reset RequestCtx.s (#1234) (Erik Dubbelboer)
    • 7670c6e Fix windows tests (#1235) (Erik Dubbelboer)
    • f54ffa1 feature: Keep the memory usage of the service at a stable level (#1216) (Rennbon)
    • 15262ec Warn about unsafe ServeFile usage (#1228) (Erik Dubbelboer)
    • 1116d03 Fix panic while reading invalid trailers (Erik Dubbelboer)
    • 856ca8e Update dependencies (#1230) (Mikhail Faraponov)
    • 6b5bc7b Add windows support to normalizePath (Erik Dubbelboer)
    • f0b0cfe Don't log ErrBadTrailer by default (Erik Dubbelboer)
    • 6937fee fix: (useless check), skip Response body if http method HEAD (#1224) (Pavel Burak)
    • b85d2a2 Fix http proxy behavior (#1221) (Aoang)
    • ad8a07a RequestHeader support set no default ContentType (#1218) (Jack.Ju)
    • c94581c support configure HostClient (#1214) (lin longhjui)
    • 632e222 Client examples (#1208) (Sergey Ponomarev)
    • 6a3cc23 uri_test.go use example.com for clearness (#1212) (Sergey Ponomarev)
    • 9d665e0 Update dependencies (#1204) (Mikhail Faraponov)
    • 8d7953e Fix scheme check for not yet parsed requests (#1203) (ArminBTVS)
    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies 
    opened by dependabot[bot] 0
  • chore(deps): bump github.com/golang-jwt/jwt/v4 from 4.2.0 to 4.3.0

    chore(deps): bump github.com/golang-jwt/jwt/v4 from 4.2.0 to 4.3.0

    Bumps github.com/golang-jwt/jwt/v4 from 4.2.0 to 4.3.0.

    Release notes

    Sourced from github.com/golang-jwt/jwt/v4's releases.

    v4.3.0

    What's Changed

    New Contributors

    Full Changelog: https://github.com/golang-jwt/jwt/compare/v4.2.0...v4.3.0

    Commits
    • 279dd19 Set json encoding precision (#162)
    • 863d23d fix: fixed typo detect by cSpell (#164)
    • 2387103 Add JWT logo image attribution (#161)
    • d0c0939 updated README.md to contain more extensions (#155)
    • e01ed05 remove unnecessary for loop in token signing string for readability (#34)
    • 78a18c0 Implementing Is(err) bool to support Go 1.13 style error checking (#136)
    • 0fb40d3 use errors.Is for extractor errors (#141)
    • See full diff in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies 
    opened by dependabot[bot] 0
  • chore(deps): bump github.com/prometheus/client_golang from 1.11.0 to 1.12.1

    chore(deps): bump github.com/prometheus/client_golang from 1.11.0 to 1.12.1

    Bumps github.com/prometheus/client_golang from 1.11.0 to 1.12.1.

    Release notes

    Sourced from github.com/prometheus/client_golang's releases.

    1.12.1 / 2022-01-29

    • [BUGFIX] Make the Go 1.17 collector concurrency-safe #969
      • Use simpler locking in the Go 1.17 collector #975
    • [BUGFIX] Reduce granularity of histogram buckets for Go 1.17 collector #974
    • [ENHANCEMENT] API client: make HTTP reads more efficient #976

    Full Changelog: https://github.com/prometheus/client_golang/compare/v1.12.0...v1.12.1

    1.12.0 / 2022-01-19

    • [CHANGE] example/random: Move flags and metrics into main() #935
    • [FEATURE] API client: Support wal replay status api #944
    • [FEATURE] Use the runtime/metrics package for the Go collector for 1.17+ #955
    • [ENHANCEMENT] API client: Update /api/v1/status/tsdb to include headStats #925
    • [ENHANCEMENT] promhttp: Check validity of method and code label values #962

    What's Changed

    New Contributors

    Full Changelog: https://github.com/prometheus/client_golang/compare/v1.11.0...v1.12.0

    Changelog

    Sourced from github.com/prometheus/client_golang's changelog.

    1.12.1 / 2022-01-29

    • [BUGFIX] Make the Go 1.17 collector concurrency-safe #969
      • Use simpler locking in the Go 1.17 collector #975
    • [BUGFIX] Reduce granularity of histogram buckets for Go 1.17 collector #974
    • [ENHANCEMENT] API client: make HTTP reads more efficient #976

    1.12.0 / 2022-01-19

    • [CHANGE] example/random: Move flags and metrics into main() #935
    • [FEATURE] API client: Support wal replay status api #944
    • [FEATURE] Use the runtime/metrics package for the Go collector for 1.17+ #955
    • [ENHANCEMENT] API client: Update /api/v1/status/tsdb to include headStats #925
    • [ENHANCEMENT] promhttp: Check validity of method and code label values #962
    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies 
    opened by dependabot[bot] 0
  • chore(deps): bump github.com/valyala/fasthttp from 1.31.0 to 1.33.0

    chore(deps): bump github.com/valyala/fasthttp from 1.31.0 to 1.33.0

    Bumps github.com/valyala/fasthttp from 1.31.0 to 1.33.0.

    Release notes

    Sourced from github.com/valyala/fasthttp's releases.

    v1.33.0

    • 61aa8b1 remove redundant code (#1202) (tyltr)
    • 4369776 fix(hijack): reuse RequestCtx (#1201) (Sergio VS)
    • 2aca3e8 fix(hijack): reset userValues after hijack handler execution (#1199) (Sergio VS)
    • 9123060 Updated dependencies (#1194) (Mikhail Faraponov)

    v1.32.0

    • 7eeb00e Make tests less flaky (#1189) (Erik Dubbelboer)
    • d19b872 Update tcpdialer.go (#1188) (Mikhail Faraponov)
    • c727b99 Release UseHostHeader in ReleaseRequest() (#1185) (Tolyar)
    • 6c0518b Fix UseHostHeader for DoTimeout + tests (#1184) (Tolyar)
    • 6b55811 Add MaxIdleWorkerDuration to Server. (#1183) (Kilos Liu)
    • 4517204 Allow to set Host header for Client (#1169) (Tolyar)
    • 258a4c1 fix: reset response after reset user values on keep-alive connections (#1176) (Sergio VS)
    • e9db537 Use %w to wrap errors (#1175) (Erik Dubbelboer)
    • 7db0597 Fix bad request trailer panic (Erik Dubbelboer)
    • 4aadf9a Fix parseTrailer panic (Erik Dubbelboer)
    • da7ff7a Add trailer support (#1165) (ichx)
    • 017f0aa fix: reset request after reset user values on keep-alive connections (#1162) (Sergio VS)
    • 3b117f8 feat: close idle connections when server shutdown (#1155) (ichx)
    • a94a2c3 Remove redundant code (#1154) (ichx)
    • f7c354c Fix race condition in Client.mCleaner (Erik Dubbelboer)
    • c078a9d Add string and bytes buffer convert trick in README (#1151) (ichx)
    • 3ff6aaa uri: isHttps() and isHttp() (#1150) (Sergey Ponomarev)
    • 8febad0 http.go: Request.SetURI() (Fix #1141) (#1148) (Sergey Ponomarev)
    • 2ca01c7 fix: Status Line parsing and writing (#1135) (Shivansh Vij)
    • 931d0a4 Fix lint (Erik Dubbelboer)
    • d613502 use sync.map is better (#1145) (halst)
    • c15e642 Don't run all race tests on windows (#1143) (Erik Dubbelboer)
    • 6006c87 chore (#1137) (tyltr)
    • 6d4db9b Fix race condition in getTCPAddrs (Erik Dubbelboer)
    • 528dd62 feat: ability to read body separate from header (#1130) (Shivansh Vij)
    • 556aa81 feat: ability to edit status messages (#1126) (Valentin Paz Marcolla)
    • 4cfec1a feat: make public Server.TLSConfig (#1128) (Sergio VS)
    • fe7d90e remove redundant code (#1127) (tyltr)
    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies 
    opened by dependabot[bot] 0
  • chore(deps): bump github.com/valyala/fasthttp from 1.34.0 to 1.36.0

    chore(deps): bump github.com/valyala/fasthttp from 1.34.0 to 1.36.0

    Bumps github.com/valyala/fasthttp from 1.34.0 to 1.36.0.

    Release notes

    Sourced from github.com/valyala/fasthttp's releases.

    v1.36.0

    • 7cc6f4c Fix DoTimeout Streaming body bug (Erik Dubbelboer)
    • 9a0b4d0 optimize (#1275) (tyltr)
    • e3d2512 optimize (#1272) (tyltr)
    • b40b5a4 Update tlsClientHandshake (#1263) (Mikhail Faraponov)
    • c7576cc Added Windows support and removed some panics (#1264) (Mauro Leggieri)
    • f0e1be5 add nil check of req.body and resp.body on ReleaseBody (#1266) (zzzzwc)

    v1.35.0

    • 7a5afdd Use %v for errors and %q for strings (#1262) (Erik Dubbelboer)
    • e4a541f support adding/removing clients from LBClient (#1243) (Cam Sweeney)
    • b4152d1 Only set RequestCtx.s once (Erik Dubbelboer)
    • d4c739e State active (#1260) (Erik Dubbelboer)
    • f3bce3a Add Go 1.18 support (#1253) (Aoang)
    • c674263 Fix race conditions in tests (Erik Dubbelboer)
    • 286828e add a test for AppendQuotedArg (#1255) (ZhangYunHao)
    • 2044e1e reduce unnessary type assart (#1254) (tyltr)
    • 3101938 Imporve AppendHTMLEscape fast path (#1249) (ZhangYunHao)
    • d1753f7 bytesconv: add appropriate build tags for s390x (#1250) (Nick Rosbrook)
    • 8f5e51f Add connection pool queuing strategies in HostClient. (#1238) (Y.Horie)
    • f7423e3 Fix AppendHTMLEscape (#1248) (ZhangYunHao)
    • 1a5f2f4 Read response when client closes connection #1232 (#1233) (ArminBTVS)
    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies 
    opened by dependabot[bot] 0
  • chore(deps): bump github.com/fsnotify/fsnotify from 1.5.1 to 1.5.4

    chore(deps): bump github.com/fsnotify/fsnotify from 1.5.1 to 1.5.4

    Bumps github.com/fsnotify/fsnotify from 1.5.1 to 1.5.4.

    Release notes

    Sourced from github.com/fsnotify/fsnotify's releases.

    v1.5.4

    What's Changed

    New Contributors

    Full Changelog: https://github.com/fsnotify/fsnotify/compare/v1.5.2...v1.5.4

    v1.5.2

    What's Changed

    New Contributors

    Full Changelog: https://github.com/fsnotify/fsnotify/compare/v1.5.1...v1.5.2

    Changelog

    Sourced from github.com/fsnotify/fsnotify's changelog.

    [1.5.4] - 2022-04-25

    • Windows: add missing defer to Watcher.WatchList #447
    • go.mod: use latest x/sys #444
    • Fix compilation for OpenBSD #443

    [1.5.3] - 2022-04-22

    • This version is retracted. An incorrect branch is published accidentally #445

    [1.5.2] - 2022-04-21

    • Add a feature to return the directories and files that are being monitored #374
    • Fix potential crash on windows if raw.FileNameLength exceeds syscall.MAX_PATH #361
    • Allow build on unsupported GOOS #424
    • Don't set poller.fd twice in newFdPoller #406
    • fix go vet warnings: call to (*T).Fatalf from a non-test goroutine #416
    Commits
    • 0f4b979 Prepare for v1.5.4 (#448)
    • 97640bb Windows: add missing defer to Watcher.WatchList (#447)
    • b52bbe8 README.md: link to pkg.go.dev for golang.org/x/sys package (#441)
    • 243d395 go.mod: use latest x/sys (#444)
    • 8fa037f Fix compilation for OpenBSD (#443)
    • ceba4ef Add a feature to return the directories and files that are being monitored (#...
    • 712fe1d Fix potential crash on windows if raw.FileNameLength exceeds syscall.MAX_PATH...
    • bfa0135 Allow build on unsupported GOOS (#424)
    • c4cd7f3 Add FreeBSD testing in Github Actions (#419)
    • f482481 Integration Tests: consistent sleeps with informative names (#422)
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies 
    opened by dependabot[bot] 0
  • chore(deps): bump github.com/golang-jwt/jwt/v4 from 4.3.0 to 4.4.1

    chore(deps): bump github.com/golang-jwt/jwt/v4 from 4.3.0 to 4.4.1

    Bumps github.com/golang-jwt/jwt/v4 from 4.3.0 to 4.4.1.

    Release notes

    Sourced from github.com/golang-jwt/jwt/v4's releases.

    v4.4.1

    What's Changed

    Note, this release contains a Go module retraction for a prior release v4.4.0:

    retract (
        v4.4.0 // Contains a backwards incompatible change to the Claims interface.
    )
    

    Full Changelog: https://github.com/golang-jwt/jwt/compare/v4.4.0...v4.4.1

    v4.4.0

    What's Changed

    New Contributors

    Full Changelog: https://github.com/golang-jwt/jwt/compare/v4.3.0...v4.4.0

    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies 
    opened by dependabot[bot] 0
Owner
Giorgio Pellero
Giorgio Pellero
The Durudex gateway combines all durudex services so that it can be used through a single gateway.

The Durudex gateway combines all durudex services so that it can be used through a single gateway.

null 10 Mar 17, 2022
All-in-one Network Gateway for Malware analysis

aio-gw [EXPERIMENTAL]: All-in-one Network Gateway for Malware analysis. currently at Alpha stage. HELP NEEDED: if you're keen to contribute to aio-gw,

Ali Mosajjal 2 Jan 30, 2022
Grpc-gateway-map-null - gRPC Gateway test using nullable values in map

Demonstrate gRPC gateway behavior with nullable values in maps Using grpc-gatewa

null 1 Jan 6, 2022
A Realtime API Gateway used with NATS to build REST, real time, and RPC APIs, where all your clients are synchronized seamlessly.

Realtime API Gateway Synchronize Your Clients Visit Resgate.io for guides, live demos, and resources. Resgate is a Go project implementing a realtime

Resgate.io - Synchronize Your Clients 567 Apr 13, 2022
All-in-one DHCP, TFTP, and HTTP PXE server

Pixy All-in-one DHCP, TFTP, and HTTP PXE server All in one solution for the beast of a problem that PXE usually offers up. TFTP All pxeboot image file

null 7 Mar 24, 2022
Drop-in replacement for Go net/http when running in AWS Lambda & API Gateway

Package gateway provides a drop-in replacement for net/http's ListenAndServe for use in AWS Lambda & API Gateway, simply swap it out for gateway.Liste

Apex 618 May 3, 2022
A pair of local reverse proxies (one in Windows, one in Linux) for Tailscale on WSL2

tailscale-wsl2 TL;DR Running two reverse proxies (one in Windows, one in the WSL2 Linux VM), the Windows Tailscale daemon can be accessed via WSL2: $

Danny Hermes 20 May 9, 2022
Super fault-tolerant gateway for HTTP clusters, written in Go. White paper for reference - https://github.com/gptankit/serviceq-paper

ServiceQ ServiceQ is a fault-tolerant gateway for HTTP clusters. It employs probabilistic routing to distribute load during partial cluster shutdown (

Ankit Gupta 66 Apr 14, 2022
Crank4go API Gateway Brief Introduction It is a Golang implementation of Crank4j

Crank4go API Gateway Brief Introduction It is a Golang implementation of Crank4j, which derived from Cranker. the follow introduction is quoted from t

null 124 Apr 15, 2022
Transparent TLS and HTTP proxy serve and operate on all 65535 ports, with domain regex whitelist and rest api control

goshkan Transparent TLS and HTTP proxy serve & operating on all 65535 ports, with domain regex whitelist and rest api control tls and http on same por

Sina Ghaderi 9 Mar 16, 2022
Parse any web page for URLs and return the HTTP response code of each one.

ParseWebPage - Fully Functional WebPage Parser Parse any web page for URLs and return the HTTP response code of each one. Creators ?? Steven Williams

null 0 Oct 25, 2021
Arvind Iyengar 1 Mar 21, 2022
Internet connectivity for your VPC-attached Lambda functions without a NAT Gateway

lambdaeip Internet connectivity for your VPC-attached Lambda functions without a NAT Gateway Background I occasionally have serverless applications th

Glass Echidna 21 Feb 12, 2022
the pluto is a gateway new time, high performance, high stable, high availability, easy to use

pluto the pluto is a gateway new time, high performance, high stable, high availability, easy to use Acknowledgments thanks nbio for providing low lev

mobus 2 Sep 19, 2021
A standalone ipfs gateway

rainbow Because ipfs should just work like unicorns and rainbows Building go build Running rainbow Configuration NAME: rainbow - a standalone ipf

IPFS 22 May 3, 2022
Apollo Federation Gateway v1 implementations by Go

fedeway Apollo Federation Gateway v1 implementations by Go. ⚠️ This product is under development. don't use in production. ⚠️ TODO implements validati

Masahiro Wakame 10 Apr 9, 2022
apache dubbo gateway,L7 proxy,virtual host,k8s ingress controller.

apache dubbo gateway,L7 proxy,virtual host,k8s ingress controller.

null 1 Nov 19, 2021
Go based grpc - grpc gateway micro service example

go-grpc-gateway-server This repository provides an example for go based microservice. Go micro services developed based on gRPC protobuf's and also us

Suresh Yekasiri 0 Dec 8, 2021
Simple installation script for grpc-gateway

Grpc-Gateway-installation Grpc-gateway is a plugin of Google protocol buffer compiler, it reads the definitions from .proto file and generates a rever

null 0 Dec 16, 2021