Sha256: 8266b66a68ddf5ed43dac664d288c4b5dda7dba573a61bfcc28bed3df95bf4a5
Contents?: true
Size: 1001 Bytes
Versions: 9
Compression:
Stored size: 1001 Bytes
Contents
# frozen_string_literal: true module Karafka module Contracts # Consumer group topic validation rules. class ConsumerGroupTopic < Base params do required(:consumer).filled required(:deserializer).filled required(:id).filled(:str?, format?: Karafka::Contracts::TOPIC_REGEXP) required(:kafka).filled required(:max_messages) { int? & gteq?(1) } required(:initial_offset).filled(included_in?: %w[earliest latest]) required(:max_wait_time).filled { int? & gteq?(10) } required(:manual_offset_management).filled(:bool?) required(:name).filled(:str?, format?: Karafka::Contracts::TOPIC_REGEXP) end rule(:kafka) do # This will trigger rdkafka validations that we catch and re-map the info and use dry # compatible format Rdkafka::Config.new(value).send(:native_config) rescue Rdkafka::Config::ConfigError => e key(:kafka).failure(e.message) end end end end
Version data entries
9 entries across 9 versions & 1 rubygems