github.com/hellofresh/janus@v0.0.0-20230925145208-ce8de8183c67/CHANGELOG.md (about)

     1  # Unreleased
     2  
     3  --
     4  
     5  # 4.0.0
     6  
     7  ## Changed
     8  - Official docker image moved to [Docker Hub](https://hub.docker.com/repository/docker/hellofreshtech/janus) and can be pulled with `docker pull hellofreshtech/janus`
     9  - Test and release flow uses the latest stable Go version
    10  
    11  # 3.8.19
    12  
    13  ## Added
    14  - Added `JAEGER_AGENT_HOST` and `JAEGER_AGENT_PORT` environment variable to allow specifying host and port separately instead of as the full URL.
    15     -- Note: you are still able to specify `TRACING_JAEGER_SAMPLING_SERVER_URL`
    16  
    17  # 3.8.13, 3.8.14, 3.8.15, 3.8.16, 3.8.17, 3.8.18
    18  
    19  ## Added
    20  - experimental helm charts
    21  
    22  # 3.8.12
    23  
    24  ## Changed
    25  
    26  - Changed trace sampling behavior when `TRACING_IS_PUBLIC_ENDPOINT` is set to false
    27  
    28  # 3.8.11
    29  
    30  ## Added
    31  - Added trace debugging setting (`tracing.DebugTraceKey`) to get the Trace ID of a debug request in the response
    32  - Added `TRACING_IS_PUBLIC_ENDPOINT` environment variable to allow trace propagation
    33  
    34  ## Changed
    35  - Releases are now built with go1.12
    36  - Updated github client dependency
    37  
    38  --
    39  
    40  # 3.8.10
    41  
    42  ## Fixed
    43  - Rate limiter logs correct (forwarded) IP if configuration is set to respect `X-Forwarded-For` and `X-Real-IP` headers
    44  
    45  # 3.8.9
    46  - Added `CONN_PURGE_INTERVAL` environment variable as a way to prevent stale http keep-alive connections
    47  
    48  # 3.8.8
    49  
    50  ## Added
    51  - Rate limiter configuration to respect `X-Forwarded-For` and `X-Real-IP` headers
    52  
    53  ## Changed
    54  - Rate limiter plugin now ignores `X-Forwarded-For` and `X-Real-IP` headers by default
    55  
    56  # 3.8.7
    57  
    58  ## Added
    59  
    60  - Url parameters can be used in the target definition. Thanks to @Serjick
    61  - Request-ID to error handler logs
    62  - Additional attributes to tracing spans
    63  
    64  ## Changed
    65  
    66  - Log writer initialized earlier
    67  - Use in-memory repository for basic auth plugin when Mongo is not available
    68  - Use `gofrs/uuid` instead of `satori/go.uuid`
    69  - Rate limiter respects `X-Forwarded-For` and `X-Real-IP` HTTP headers
    70  
    71  ## Fixed
    72  
    73  - Circuit breaker plugin statsd collector prefix
    74  
    75  # 3.8.6
    76  
    77  ## Updated
    78  
    79  - `http_server_request_latency` to include HTTP method key
    80  
    81  # 3.8.5
    82  
    83  ## Fixed
    84  - Fixed plugin configuration not being validated
    85  
    86  ## Updated
    87  - Added stats and tracing support with opencensus
    88  
    89  ## Removed
    90  - Tracing support via opentracing.io
    91  
    92  # 3.8.4
    93  
    94  ## Fixed
    95  - Fixed configuration listener that made API stuck
    96  
    97  # 3.8.3
    98  
    99  ## Added
   100  - Support b3 http propagation format for jaeger
   101  
   102  ## Fixed
   103  - Race condition on application start. Reported on #348
   104  
   105  ## Updated
   106  - Added more debug information to recovery handler to track application errors
   107  - New `options_passthrough` parameter for CORS plugin. Thanks to @locker1776
   108  
   109  # 3.8.1
   110  
   111  ## Fixed
   112  - Open tracing error and http status code tags were not being set during tracing
   113  
   114  # 3.8.0
   115  
   116  ## Added
   117  - New Retry plugin: you can now configure your endpoints to have a retry in case of a failed request
   118  - New `read`, `write` and `idle` timeouts for Janus server global configurations
   119  - New `dial` and `response_header` timeouts that can be set per endpoint
   120  - New `/debug/pprof` endpoint (handlers from `net/http/pprof`) on API port for debugging and profiling (can be enabled with `start` command flags)
   121  - Alias `rr` for roundrobin balancer
   122  - Add request id as a tag into tracing for seamlessly correlation in tracing UI
   123  
   124  ## Fixed
   125  - Fixed bug when using the configuration file in a linux/64 system
   126  
   127  ## Updated
   128  - Added `name` parameter for `cb` (Circuit Breaker) plugin to set group explicitly
   129  
   130  ## Removed
   131  - Redis is not necessary anymore for the cluster to work
   132  - Removed proxy definition property `enable_load_balancing` as it was not being used
   133  
   134  # 3.7.0
   135  
   136  ## Added
   137  
   138  - Leeway support for JWT date fields validation
   139  - Support for zero weight when using the weight algorithm for balancing
   140  - New header `X-Request-Id` that makes sure it create a new id for each request. It also ties it up with open tracing
   141  
   142  ## Fixed
   143  
   144  - Fixed oauth rate limit reported on #276
   145  
   146  ## Removed
   147  
   148  - `Upstream_URL` support is removed, see the [Upgrade Notes](docs/upgrade/3.7.x.md)
   149  
   150  # 3.6.0
   151  
   152  ## Added
   153  
   154  - Extra JWT metrics for token validation success and error
   155  
   156  ## Fixed
   157  
   158  - Fixed a bug for the `oauth servers` when rows were empty it was returning `null` on the json response
   159  
   160  ## Updated
   161  
   162  - Bumped [stats-go](https://github.com/hellofresh/stats-go) to current latest stable version (0.6.3) - this changes stats DSN config value format, see [`stats-go`](https://github.com/hellofresh/stats-go#instance-creation) docs for details
   163  
   164  # 3.5.0
   165  
   166  ## Added
   167  
   168  - Check GitHub permissions. Sets `is_admin` into the jwt token when the chosen provider is Github
   169  - Jaeger support as distributed tracing backend
   170  - Added Proxy Listen Path validation to prevent `chi` from panicking in case of invalid listen path
   171  - Added load balancing for upstream targets. Now you can add multiple upstream targets and Janus will balance the requests.
   172  - Added support for url parameters both in listen path and upstreams.
   173  
   174  ## Fixed
   175  
   176  - Monitor health check endpoints only of active proxies. Reported on #203
   177  - Fix hot reload was not working when using in memory storage implementation
   178  - Fix oauth servers post endpoint incorrect behaviour. Reported on #234
   179  - Add constant time compare to basic auth password. Reported on #194
   180  
   181  ## Removed
   182  
   183  - Appdash support
   184  
   185  ## Updated
   186  
   187  - THe docker image does not depend on a github release anymore
   188  
   189  ## Deprecated
   190  
   191  - `upstream_url` is now deprecated in favor of using the `upstreams` object. This will allow Janus to balance requests if you have more than one upstream target.
   192  
   193  # 3.3.0
   194  
   195  ## Added
   196  
   197  - Added response transformer plugin
   198  - Added basic auth plugin
   199  - Added github login for the Admin API
   200  
   201  ## Updated
   202  
   203  - Changed our dependency management tool from glide to Dep
   204  
   205  ## Fixed
   206  
   207  - Fixed problems when using -c flag to specify a configuration file
   208  - Fixed oAuth2 introspection token strategy when configuring an oauth server
   209  
   210  # 3.2.1
   211  
   212  ## Added
   213  
   214  - Added request body limit plugin
   215  - Track application start/restart with stats metrics `<prefix>.app.init.<host>.<app-file>`
   216  
   217  ## Fixed
   218  
   219  - Concurrent map writes in [stats-go](https://github.com/hellofresh/stats-go/pull/15)
   220  - Non sampled spans recording in [gcloud-opentracing](https://github.com/hellofresh/gcloud-opentracing/pull/1)
   221  
   222  # 3.2.0
   223  
   224  ## Added
   225  - Added support for JWT signature validation chain for `jwt` token strategy
   226  - Added support for OAuth2 `introspection` token strategy
   227  - Added rate limit configurations for all endpoints of an OAuth2 server
   228  
   229  ## Removed
   230  - Dropped support for `storage` token strategy
   231  
   232  # 3.1.0
   233  
   234  ## Changed
   235  
   236  - Moved Concourse CI scripts to another repo
   237  - Changed health check JSON output to be in alignment with [health-go](https://github.com/hellofresh/health-go)
   238  - Logging configuring is now handled by [logging-go](https://github.com/hellofresh/logging-go), so more logging options now
   239  - Bumped Chi router to 3.0, see [changelog](https://github.com/go-chi/chi/blob/master/CHANGELOG.md) if you're using parametrised urls
   240  
   241  ## Added
   242  
   243  - Added [plugin to transform](./docs/plugins/request_transformer.md) a request to an upstream. You can now modify headers and query string before the request is sent
   244  - Added godog for behaviour tests
   245  - Allow insecure upstream SSL certificate
   246  - Added health-check statement on the Dockerfile. This will allow you to deploy the container to swarm/kubernetes/ecs and have it checked the `/status` endpoint.
   247  
   248  # 3.0.0
   249  
   250  ## Changed
   251  
   252  - Using viper to load the API definitions when using file based configurations. This allows you to configure your API definitions in YAML, JSON and TOML.
   253  - The underling router was changed from [httptreemux](https://github.com/dimfeld/httptreemux) to [Chi](https://github.com/pressly/chi).
   254  - Proper Mux reload when an API or OAuth server is changed
   255  
   256  ## Added
   257  
   258  - Adds the ability to hot reload proxy definitions. To enable this feature you MUST use Redis as your datastore. If you use `in memory` storage this feature will not be enabled.
   259  - Added the ability to enable or disable plugins per API definitions. This will bring us a lot of flexibility in developing new plugins and hooking them up. This feature is a BC and we should upgrade the major version because of that.
   260  - Added health checks to any API definition
   261  
   262  ## Fixed
   263  
   264  - Rate limit bug that was around for quite a while.
   265  - Problems when creating a new API definition
   266  
   267  # 2.2.0
   268  
   269  ## Changed
   270  
   271  - Now the docker image is super tiny, less then 14mb when decompressed.
   272  - Using commands to start Janus. This way we can improve the organization on how we want the binary to work. Also, this will allow us to probably move towards an ideal solution for hot reload of configs.
   273  
   274  ## Added
   275  
   276  - Added coveralls as our coverage tool.
   277  - Added plugins specifically for the round tripper. This allows us to decouple the token logic from the tripper.
   278  
   279  # 2.1.0
   280  
   281  ## Changed
   282  
   283  - The CI pipeline now bumps the patch version automatically.
   284  - Updated docker compose to use the TOML config file
   285  - Replaced the statsd implementation for our stats-go package
   286  
   287  ## Added
   288  
   289  - Added Open Tracing support. Available tracers are Google Cloud Platform and Jaeger.
   290  
   291  # 2.0.0
   292  
   293  ## Changed
   294  
   295  - Split the application in two different ports, an administrative port (defaults to `8081`) and proxies port (defaults to `8080`). This way we avoid route collision with the admin routes and also we don't need to load tons of middlewares for the admin routes that are not necessary.
   296  - Now the docker image is super tiny, less then 14mb when decompressed.
   297  - API Definition and OAuth Server Definition don't depend on an ID anymore, now the name becomes the unique identifier. This works both in MongoDB and file based configurations.
   298  - Handled 404 in a more elegant way
   299  
   300  ## Added
   301  
   302  - Added possibility to create configurations using YAML, JSON, TOML or environemnt variables.
   303  - Added a host matcher middleware.