RIG v2.2.0 Release Notes

Release Date: 2019-06-17 // almost 5 years ago
  • โž• Added

    • New Prometheus metric: rig_proxy_requests_total. For details see [metrics-details.md](docs/metrics-details.md). #157
    • The respond-via-Kafka feature uses a correlation ID for associating the response with the original request. This correlation ID is now cryptographically verified, which prevents an attacker on the internal network to reroute responses to other users connected to RIG. #218
    • ๐Ÿ‘ Apache Avro is now supported for consuming from, and producing to, Kafka. The implementation uses the Confluent Schema Registry to fetch Avro schemas.
    • โž• Added new set of topics in documentation about the API Gateway, even streams and scaling.
    • โž• Added examples section to the documentation website.
    • Added new response_from option -- http_async together with new internal POST endpoint /v1/responses. You can send correlated response to /v1/responses and complete initial Proxy request. #213
    • Implement HTTP Transport Binding for CloudEvents v0.2. A special fallback to "structured mode" in case the content type is "application/json" and the "ce-specversion" header is not set ensures this change is backward compatible with existing setups. #153
    • ๐Ÿ†• New request body format for endpoints with kafka and kinesis targets; see Deprecated below.

    ๐Ÿ”„ Changed

    • The environment variable KAFKA_GROUP_ID has been replaced with the following environment variables, where each of them has a distinct default value: KAFKATOFILTER_KAFKA_GROUP_ID, KAFKATOHTTP_KAFKA_GROUP_ID, PROXY_KAFKA_RESPONSE_KAFKA_GROUP_ID. #206
    • 0๏ธโƒฃ The default Kafka source topic for the Kafka-to-HTTP event stream has been changed to rig. The feature was introduced to forward all incoming events to an (external) HTTP endpoint, so it makes sense to use the default topic for incoming events here too.
    • ๐ŸŽ Changed :refresh_subscriptions GenServer handler from call to cast to improve performance. #224

    ๐Ÿ›  Fixed

    • ๐Ÿ›  Fixed a bug that caused the subscriptions endpoint to return an internal server error when running RIG in a clustered setup. #194
    • ๐Ÿ‘Œ Support for forwarding HTTP/1.1 responses over a HTTP/2 connection by dropping connection-related HTTP headers. #193
    • โž• Added missing id field to swagger spec for message API.
    • ๐Ÿ›  Fixed random generation of group IDs for Kafka consumer groups. This led to wrong partition distribution when using multiple RIG nodes. Now consumers will have the same ID which can be changed via environment variable - defaults to rig.
    • ๐Ÿ”ง When forwarding an HTTP request, the Host request header is now set to the target_url defined by the proxy configuration. #188
    • ๐Ÿ›  Fixed missing swagger.json file in production Docker image.
    • โž• Added missing CORS headers for Kafka/Kinesis target type when not using response_from.
    • ๐Ÿ›  Fixed schema registry validation when using binary messages in Kafka consumer. #202
    • Forwarding events to HTTP did not contain (all) Kafka messages, as the Kafka consumer group ID was shared with the consumer for forwarding events to frontends. #206

    ๐Ÿ—„ Deprecated

    • ๐Ÿ”ง Endpoints configured with target kafka or kinesis now expect a different body format (that is, the previous format is deprecated). This aligns the request body format with the other endpoints that accept CloudEvents.

    For example, instead of using this:

      {
        "partition": "the-partition-key",
        "event": {
          "specversion": "0.2",
          "type": "what_has_happened",
          "source": "ui",
          "id": "123"
        }
      }
    

    you should put the partition key in the CloudEvent's "rig" extension instead:

      {
        "specversion": "0.2",
        "rig": {
          "target_partition": "the-partition-key"
        },
        "type": "what_has_happened",
        "source": "ui",
        "id": "123"
      }