Class: Mihari::Emitters::Yeti
- Defined in:
- lib/mihari/emitters/yeti.rb
Constant Summary
Constants included from Concerns::Retriable
Concerns::Retriable::DEFAULT_CONDITION, Concerns::Retriable::RETRIABLE_ERRORS
Instance Attribute Summary collapse
- #api_key ⇒ String? readonly
- #artifacts ⇒ Array<Mihari::Models::Artifact>
- #url ⇒ String? readonly
Attributes inherited from Base
Attributes inherited from Actor
Instance Method Summary collapse
-
#call(artifacts) ⇒ Object
Create a Hive alert.
- #configured? ⇒ Boolean
-
#initialize(rule:, options: nil, **params) ⇒ Yeti
constructor
A new instance of Yeti.
- #target ⇒ String
Methods inherited from Base
#get_result, inherited, #parallel?
Methods inherited from Actor
configuration_keys, #get_result, key, key_aliases, keys, #retry_exponential_backoff, #retry_interval, #retry_times, #timeout, type, #validate_configuration!
Methods included from Concerns::Retriable
Methods included from Concerns::Configurable
Constructor Details
#initialize(rule:, options: nil, **params) ⇒ Yeti
Returns a new instance of Yeti.
20 21 22 23 24 25 26 27 |
# File 'lib/mihari/emitters/yeti.rb', line 20 def initialize(rule:, options: nil, **params) super(rule:, options:) @url = params[:url] || Mihari.config.yeti_url @api_key = params[:api_key] || Mihari.config.yeti_api_key @artifacts = [] end |
Instance Attribute Details
#api_key ⇒ String? (readonly)
10 11 12 |
# File 'lib/mihari/emitters/yeti.rb', line 10 def api_key @api_key end |
#artifacts ⇒ Array<Mihari::Models::Artifact>
13 14 15 |
# File 'lib/mihari/emitters/yeti.rb', line 13 def artifacts @artifacts end |
#url ⇒ String? (readonly)
7 8 9 |
# File 'lib/mihari/emitters/yeti.rb', line 7 def url @url end |
Instance Method Details
#call(artifacts) ⇒ Object
Create a Hive alert
41 42 43 44 45 46 47 |
# File 'lib/mihari/emitters/yeti.rb', line 41 def call(artifacts) return if artifacts.empty? @artifacts = artifacts client.create_observables({observables:}) end |
#configured? ⇒ Boolean
32 33 34 |
# File 'lib/mihari/emitters/yeti.rb', line 32 def configured? api_key? && url? end |
#target ⇒ String
52 53 54 |
# File 'lib/mihari/emitters/yeti.rb', line 52 def target URI(url).host || "N/A" end |