Skip to content

Releases: configcat/configcat-proxy

v2.0.1

28 Aug 14:44
64e8421

Choose a tag to compare

Changed

  • Restructured how the HTTP transport / user agent overriding is used.
  • Updated dependencies.

Fixed

  • Format errors.

v2.0.0

22 Aug 14:31
40450c8

Choose a tag to compare

Added

  • Auto configuration with Proxy profiles. The Proxy now has the ability to use Proxy profiles to determine which SDK keys to download and distribute. It periodically checks for profile changes, allowing it to pick up the changes on the fly, without needing a restart. For more details, see the documentation.
  • The CDN proxy endpoint now accepts SDK keys. This allows the usage of SDK keys at the ConfigCat SDK initialization. (Before, only the SDK identifier was accepted with the configcat-proxy/ prefix)
    import * as configcat from "@configcat/sdk";
    
    var configCatClient = configcat.getClient(
      "#YOUR-SDK-KEY#", 
      configcat.PollingMode.AutoPoll,
      { baseUrl: "http://localhost:8050" } // Proxy URL
    );
  • Endpoints for conforming OpenFeature Remote Evaluation Protocol (OFREP).
    import { OFREPWebProvider } from '@openfeature/ofrep-web-provider';
    
    OpenFeature.setProvider(
      new OFREPWebProvider({
        baseUrl: 'http://localhost:8050', // Proxy URL
        headers: [
          ['X-ConfigCat-SdkId', '#SDK-IDENTIFIER#'],
        ],
      }),
    );

Changed

  • Replaced httprouter with http.ServeMux.

v1.1.3

10 Apr 09:46
fbc5c3a

Choose a tag to compare

Changed

  • Updated dependencies due to 2025/04 security vulnerability reports.

v1.1.2

04 Mar 00:14
24234cd

Choose a tag to compare

Changed

  • Updated dependencies due to security vulnerability reports.

v1.1.1

29 Jan 14:05
ac69a7a

Choose a tag to compare

Changed

  • Updated dependencies due to security vulnerability reports.

v1.1.0

29 Jan 00:12
91c41c0

Choose a tag to compare

Added

  • Multi-platform Docker image with linux/arm64 and linux/amd64 arch.

v1.0.1

08 Aug 11:54

Choose a tag to compare

Changed

  • Updated dependencies due to 2024-08 security check.

v1.0.0

11 Apr 13:25
39c1f26

Choose a tag to compare

Changed

  • Marking the current state as the first stable version. 🎉
  • Dependency updates due to vulnerability reports.

v0.5.0

27 Mar 16:31
73b722b

Choose a tag to compare

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

14 Mar 13:08
27566ea

Choose a tag to compare

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.
    • configcat_stream_msg_sent_total: Total number of all messages sent with streaming.
      • Tags:
        • sdk: The related SDK's identifier.
        • type: sse or grpc.
        • flag: The flag's key that was evaluated.
  • 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 content down and initializing. Each SDK node starts with the initializing status, and later, when initialized, it switches to one of the remaining (healthy, degraded, or down) statuses.
    The proxy's status becomes down when each SDK has down status. It becomes degraded when at least one degraded or down 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.