Sha256: 5e1b35a76b0207ecbd131dc941739d6a7d2ac6ed6a89903665d493d713ebd848

Contents?: true

Size: 1.58 KB

Versions: 9

Compression:

Stored size: 1.58 KB

Contents

# frozen_string_literal: true

module Karafka
  module Web
    module Ui
      module Models
        # Allows for a granular control over what parts of messages are being displayed
        # There are scenarios where payload or other parts of messages should not be presented
        # because they may contain sensitive data. This API allows to manage that on a per message
        # basis.
        class VisibilityFilter
          # @param _message [::Karafka::Messages::Message]
          # @return [Boolean] should message key be visible
          def key?(_message)
            true
          end

          # @param _message [::Karafka::Messages::Message]
          # @return [Boolean] should message headers be visible
          def headers?(_message)
            true
          end

          # @param message [::Karafka::Messages::Message]
          # @return [Boolean] should message payload be visible
          def payload?(message)
            !message.headers.key?('encryption')
          end

          # Should it be allowed to download this message raw payload
          #
          # @param message [::Karafka::Messages::Message]
          # @return [Boolean] true if downloads allowed
          def download?(message)
            payload?(message)
          end

          # Should it be allowed to download the deserialized and sanitized payload as JSON
          #
          # @param message [::Karafka::Messages::Message]
          # @return [Boolean] true if exports allowed
          def export?(message)
            payload?(message)
          end
        end
      end
    end
  end
end

Version data entries

9 entries across 9 versions & 1 rubygems

Version Path
karafka-web-0.9.1 lib/karafka/web/ui/models/visibility_filter.rb
karafka-web-0.9.0 lib/karafka/web/ui/models/visibility_filter.rb
karafka-web-0.9.0.rc3 lib/karafka/web/ui/models/visibility_filter.rb
karafka-web-0.9.0.rc2 lib/karafka/web/ui/models/visibility_filter.rb
karafka-web-0.9.0.rc1 lib/karafka/web/ui/models/visibility_filter.rb
karafka-web-0.8.2 lib/karafka/web/ui/models/visibility_filter.rb
karafka-web-0.8.1 lib/karafka/web/ui/models/visibility_filter.rb
karafka-web-0.8.0 lib/karafka/web/ui/models/visibility_filter.rb
karafka-web-0.8.0.rc1 lib/karafka/web/ui/models/visibility_filter.rb