1.5.18 (2018-08-15)
Implemented enhancements:
- Support HandlerProvider definitions in handler.yml configuration definitions #258
- When stopping the server, give 30 seconds grace period to let service discovery propagate to all clients #20
Fixed bugs:
- Fix issue causing path variables not to show up in query params when using new handler config #250
- Reproduce issue in handler chaining, ensure that the MiddlewareHandler interface is respected #247
Closed issues:
- Re-starting Server no longer works #263
- health endpoint with serviceId as path parameter #262
- Address graceful server shutdown while encountering an exception during start-up #261
- add a default consul.yml for consul client #260
- flatten the config files into the same directory for k8s #257
- add getJwtClaimsWithExpiresIn for digital signing only in light-oauth2 token service #256
- remove description in the CorrelationHandler config file #255
- enable http2 for consul client when TLS is enabled #246
- catastrophic setExchangeStatus calls without args #244
- upgrade to undertow 2.0.11.Final #243
- several enhancements for Consul registration #242
- networknt page is not working #238
- extend Http2Client to OAuth 2.0 provider communication to support arbitrary number of parameters #181
Merged pull requests:
- Adding HandlerProvider support to list of handlers. #259 (NicholasAzar)
- Do not require ignored config #254 (logi)
- Descriptive Exception on unknown chain or handler in handler.yml #253 (logi)
- Fix issue causing query params to be missing from exchange. #251 (NicholasAzar)
- Safer set exchange status #245 (logi)
Upgrade Guidelines:
- There are two dependencies are upgraded in this release.
<version.undertow>2.0.11.Final</version.undertow>
<version.json-schema-validator>0.1.21</version.json-schema-validator>
- A new consul.yml has been introduced to provide three options for health checks. httpCheck is recommended.
# Consul URL for accessing APIs
consulUrl: https://198.55.49.188:8500
# deregister the service after the amount of time after health check failed.
deregisterAfter: 2m
# health check interval for TCP or HTTP check. Or it will be the TTL for TTL check. Every 10 seconds,
# TCP or HTTP check request will be sent. Or if there is no heartbeat request from service after 10 seconds,
# then mark the service is critical.
checkInterval: 10s
# One of the following health check approach will be selected. Two passive (TCP and HTTP) and one active (TTL)
# enable health check TCP. Ping the IP/port to ensure that the service is up. This should be used for most of
# the services with simple dependencies. If the port is open on the address, it indicates that the service is up.
tcpCheck: false
# enable health check HTTP. An HTTP get request will be sent to the service to ensure that 200 response status is
# coming back. This is suitable for a service that depends on a database or other infrastructure services. You should
# implement a customized health check handler that checks dependencies. i.e. if DB is down, return status 400.
httpCheck: true
# enable health check TTL. When this is enabled, Consul won't actively check your service to ensure it is healthy,
# but your service will call check endpoint with a heartbeat to indicate it is alive. This requires that the service
# is built on top of light-4j and the above options are not available. For example, your service is behind NAT.
ttlCheck: false
Here is the document on how to use it.
https://doc.networknt.com/tutorial/common/discovery/http-health/
- Consul client parameters are moved to consul.yml from service.yml
- com.networknt.consul.client.ConsulClient:
- com.networknt.consul.client.ConsulClientImpl
-
A new handler.yml has been introduced to support multiple middleware handler chains. For more detail please refer to https://doc.networknt.com/concern/handler/
-
All config files in tls and oauth subfolders are moved to the parent config directory for Kubernetes and Openshift secrets creation. The following files have references to the files in sub folders before and need to be updated. server.yml, client.yml, security.yml and jwt.yml