Sha256: 4f0b59aa4860825b3ceb54f4355b3462d047ef26ffd61429aae1417d98949537

Contents?: true

Size: 1.18 KB

Versions: 15

Compression:

Stored size: 1.18 KB

Contents

# frozen_string_literal: true

module Karafka
  module Web
    module Tracking
      # Namespace for all tracking related contracts
      module Contracts
        # Contract for error reporting
        # Since producers and consumers report their errors to the same topic, we need to have
        # a unified contract for both
        class Error < Web::Contracts::Base
          configure

          required(:schema_version) { |val| val.is_a?(String) }
          required(:type) { |val| val.is_a?(String) && !val.empty? }
          required(:error_class) { |val| val.is_a?(String) && !val.empty? }
          required(:error_message) { |val| val.is_a?(String) }
          required(:backtrace) { |val| val.is_a?(String) }
          required(:details) { |val| val.is_a?(Hash) }
          required(:occurred_at) { |val| val.is_a?(Float) }

          nested(:process) do
            required(:name) { |val| val.is_a?(String) && !val.empty? }
            # Tags may not be present for producers because they may operate from outside of
            # karafka taggable process
            optional(:tags) { |val| val.is_a?(Karafka::Core::Taggable::Tags) }
          end
        end
      end
    end
  end
end

Version data entries

15 entries across 15 versions & 1 rubygems

Version Path
karafka-web-0.8.2 lib/karafka/web/tracking/contracts/error.rb
karafka-web-0.8.1 lib/karafka/web/tracking/contracts/error.rb
karafka-web-0.8.0 lib/karafka/web/tracking/contracts/error.rb
karafka-web-0.8.0.rc1 lib/karafka/web/tracking/contracts/error.rb
karafka-web-0.7.10 lib/karafka/web/tracking/contracts/error.rb
karafka-web-0.7.9 lib/karafka/web/tracking/contracts/error.rb
karafka-web-0.7.8 lib/karafka/web/tracking/contracts/error.rb
karafka-web-0.7.7 lib/karafka/web/tracking/contracts/error.rb
karafka-web-0.7.6 lib/karafka/web/tracking/contracts/error.rb
karafka-web-0.7.5 lib/karafka/web/tracking/contracts/error.rb
karafka-web-0.7.4 lib/karafka/web/tracking/contracts/error.rb
karafka-web-0.7.3 lib/karafka/web/tracking/contracts/error.rb
karafka-web-0.7.2 lib/karafka/web/tracking/contracts/error.rb
karafka-web-0.7.1 lib/karafka/web/tracking/contracts/error.rb
karafka-web-0.7.0 lib/karafka/web/tracking/contracts/error.rb