Module: Legion::Extensions::Node::Runners::Vault

Includes:
Helpers::Lex
Defined in:
lib/legion/extensions/node/runners/vault.rb

Instance Method Summary collapse

Instance Method Details

#push_vault_token(public_key:, node_name:) ⇒ Object



29
30
31
32
33
34
35
36
# File 'lib/legion/extensions/node/runners/vault.rb', line 29

def push_vault_token(public_key:, node_name:, **)
  return {} unless Legion::Settings[:crypt][:vault][:token]

  encrypted = Legion::Crypt.encrypt_from_keypair(message: Legion::Settings[:crypt][:vault][:token],
                                                 pub_key: public_key)
  Legion::Extensions::Node::Transport::Messages::PushVaultToken.new(token: encrypted, queue_name: node_name).publish
  {}
end

#receive_vault_token(message:, **opts) ⇒ Object

rubocop:disable Metrics/AbcSize



15
16
17
18
19
20
21
22
23
24
25
26
27
# File 'lib/legion/extensions/node/runners/vault.rb', line 15

def receive_vault_token(message:, **opts) # rubocop:disable Metrics/AbcSize
  return if Legion::Settings[:crypt][:vault][:connected]

  Legion::Settings[:crypt][:vault][:token] = Legion::Crypt.decrypt_from_keypair(message: message)
  i[protocol address port].each do |setting|
    next unless opts.key? setting
    next unless Legion::Settings[:crypt][:vault][setting].nil?

    Legion::Settings[:crypt][:vault][setting] = opts[setting]
  end
  Legion::Crypt.connect_vault
  {}
end

#request_tokenObject



3
4
5
6
7
8
# File 'lib/legion/extensions/node/runners/vault.rb', line 3

def request_token(**)
  return {} if Legion::Settings[:crypt][:vault][:connected]
  return {} unless Legion::Settings[:crypt][:vault][:enabled]

  request_vault_token
end

#request_vault_tokenObject



10
11
12
13
# File 'lib/legion/extensions/node/runners/vault.rb', line 10

def request_vault_token(**)
  Legion::Extensions::Node::Transport::Messages::RequestVaultToken.new.publish
  {}
end