Sha256: 4757b97b3c278276770d8f092f6a56301b2c32dd4a06ba89128ac34b75124f0f

Contents?: true

Size: 787 Bytes

Versions: 10

Compression:

Stored size: 787 Bytes

Contents

# frozen_string_literal: true

module Mihari
  module Emitters
    class Database < Base
      def valid?
        true
      end

      #
      # Create an alert
      #
      # @param [Arra<Mihari::Artifact>] artifacts
      # @param [Mihari::Structs::Rule] rule
      #
      # @return [Mihari::Alert]
      #
      def emit(artifacts:, rule:)
        return if artifacts.empty?

        tags = rule.tags.filter_map { |name| Tag.find_or_create_by(name: name) }.uniq
        taggings = tags.map { |tag| Tagging.new(tag_id: tag.id) }

        alert = Alert.new(
          artifacts: artifacts,
          taggings: taggings,
          rule_id: rule.id
        )
        alert.save
        alert
      end

      def configuration_keys
        %w[database_url]
      end
    end
  end
end

Version data entries

10 entries across 10 versions & 1 rubygems

Version Path
mihari-5.2.2 lib/mihari/emitters/database.rb
mihari-5.2.1 lib/mihari/emitters/database.rb
mihari-5.2.0 lib/mihari/emitters/database.rb
mihari-5.1.4 lib/mihari/emitters/database.rb
mihari-5.1.3 lib/mihari/emitters/database.rb
mihari-5.1.2 lib/mihari/emitters/database.rb
mihari-5.1.1 lib/mihari/emitters/database.rb
mihari-5.1.0 lib/mihari/emitters/database.rb
mihari-5.0.1 lib/mihari/emitters/database.rb
mihari-5.0.0 lib/mihari/emitters/database.rb