Releases: configcat/configcat-proxy
Releases · configcat/configcat-proxy
v1.0.1
v1.0.0
v0.5.0
Added
- Support for two more external cache providers:
- MongoDB
- DynamoDB
Changed
- The Proxy now uses a single cache client for each ConfigCat SDK instead of one client / SDK.
- ConfigCat SDKs are now managed within a single service to prepare for an auto-configuration feature where an external source could dynamically determine the SDK list within the Proxy. (possibly fetched from the ConfigCat Public API)
v0.4.2
Added
-
Option to turn gRPC health check service on/off.
grpc: health_check_enabled: true # default: true
-
Option to turn gRPC server reflection on/off.
grpc: server_reflection_enabled: true # default: false
-
Option to control the keep-alive settings of the gRPC server.
grpc: keep_alive: # these values are only examples max_connection_idle: 15 # If a client is idle for 15 seconds, send a GOAWAY max_connection_age: 30 # If any connection is alive for more than 30 seconds, send a GOAWAY max_connection_age_grace: 5 # Allow 5 seconds for pending RPCs to complete before forcibly closing connections time: 5 # Ping the client if it is idle for 5 seconds to ensure the connection is still active timeout: 1 # Wait 1 second for the ping ack before assuming the connection is dead
-
Option to turn off the main HTTP server in case of gRPC-only usage.
http: enabled: false # default: true
-
Two more metric indicators:
configcat_grpc_rpc_duration_seconds
: Histogram of RPC calls (duration/count).- Tags:
method
: Name of the RPC service method.code
: Response status code.
- Tags:
configcat_stream_msg_sent_total
: Total number of all messages sent with streaming.- Tags:
sdk
: The related SDK's identifier.type
:sse
orgrpc
.flag
: The flag's key that was evaluated.
- Tags:
-
Detailed RPC debug logging for gRPC calls. It is enabled automatically when the gRPC's logging option is set to
debug
.
Changed
- Two more status indicators were added to the
/status
endpoint's contentdown
andinitializing
. Each SDK node starts with theinitializing
status, and later, when initialized, it switches to one of the remaining (healthy
,degraded
, ordown
) statuses.
The proxy's status becomesdown
when each SDK hasdown
status. It becomesdegraded
when at least onedegraded
ordown
SDK exists.down
means that the related SDK can't accept evaluation requests because it doesn't have a valid config JSON (neither from cache nor from the ConfigCat CDN) to work with.degraded
means that the related SDK has a valid config JSON in its memory or from the external cache, but the last two refresh attempts failed, so it might work with stale config JSON data.
- SSE and gRPC stream requests are now rejected when the related SDK doesn't have a valid config JSON to work with or when the requested feature flag key doesn't exist. These requests were accepted before but got a
null
result through the built-up connection.
v0.4.1
v0.4.0
Added
- #17: Ability to host the
/status
endpoint on either (or both) the main (default:8050
) or the diagnostics (default:8051
) HTTP ports. By default, it's enabled for the diagnostics port (default:8051
) only.- Enabling for the main HTTP port:
http: # port: 8050 status: enabled: true
- Enabling for the diagnostics HTTP port:
diag: # port: 8051 status: enabled: true
- Enabling for the main HTTP port:
Fixed
- #18: When a non-existing feature flag key is posted to the
/api/{sdkId}/eval
endpoint, the response is now a400 Bad request
instead of the500 Internal server error
.
Breaking Changes
- By default, the
/status
endpoint is not enabled anymore on the main HTTP port (default:8050
). Instead, if not configured otherwise, it's only available on the diagnostics port (default:8051
). - The
/metrics
endpoint configuration (along with the/status
endpoint's configuration) is moved under thediag
configuration node.
Before:Now:metrics: port: 8051 enabled: true
The names of the metrics related environment variables were also changed:diag: port: 8051 #<-- port of the diagnostics webserver (that will host the private '/metrics' and '/status' endpoints) enabled: true #<-- controls whether the diagnostics webserver should run or not status: enabled: true #<-- controls whether the '/status' endpoint should be enabled on the diagnostics HTTP (8051) port metrics: enabled: true #<--controls whether the '/metrics' endpoint for Prometheus should be enabled on the diagnostics HTTP (8051) port
CONFIGCAT_METRICS_ENABLED
=>CONFIGCAT_DIAG_METRICS_ENABLED
CONFIGCAT_METRICS_PORT
=>CONFIGCAT_DIAG_PORT
v0.3.1
v0.3.0
Changed
- The user object passed to the API / SSE endpoints now accepts the following field types (instead of just
string
):string
,number
,string[]
.
Breaking changes
- The CDN proxy endpoint now serves the new config JSON v6 format. Therefore, only those SDK versions can be pointed to the proxy that already supports this format. The actual support table is available in the docs. Not supported SDKs must be used with an earlier proxy version (
<v0.3.0
). - The user map passed over gRPC in the
EvalRequest
message now accepts a newUserValue
type, which allows the setting of adouble
,string
,google.protobuf.Timestamp
, and aStringList
as user attribute. See the updated docs of the service definition.