class SettingsReader::VaultResolver::Entry

Wrapper around vault secret object

Constants

MONTH

Attributes

address[R]
data[R]
secret[R]

Public Class Methods

new(address, secret) click to toggle source
# File lib/settings_reader/vault_resolver/entry.rb, line 9
def initialize(address, secret)
  @address = address
  @secret = secret
  @data = extract_data(secret)
  @lease_started = Time.now
end

Public Instance Methods

expired?() click to toggle source
# File lib/settings_reader/vault_resolver/entry.rb, line 20
def expired?
  return false unless leased?

  Time.now > @lease_started + lease_duration
end
expires_in() click to toggle source
# File lib/settings_reader/vault_resolver/entry.rb, line 26
def expires_in
  return MONTH unless leased?

  @lease_started + lease_duration - Time.now
end
lease_duration() click to toggle source
# File lib/settings_reader/vault_resolver/entry.rb, line 53
def lease_duration
  @secret.lease_duration.to_i
end
lease_id() click to toggle source
# File lib/settings_reader/vault_resolver/entry.rb, line 32
def lease_id
  @secret.lease_id
end
leased?() click to toggle source
# File lib/settings_reader/vault_resolver/entry.rb, line 16
def leased?
  @secret.renewable?
end
to_s() click to toggle source
# File lib/settings_reader/vault_resolver/entry.rb, line 49
def to_s
  address.to_s
end
update_renewed(new_secret) click to toggle source
# File lib/settings_reader/vault_resolver/entry.rb, line 36
def update_renewed(new_secret)
  @secret = new_secret
  @data = @data.merge(extract_data(new_secret).compact)
  @lease_started = Time.now
end
value_for(attribute) click to toggle source
# File lib/settings_reader/vault_resolver/entry.rb, line 42
def value_for(attribute)
  return data[attribute.to_sym] if data.key?(attribute.to_sym)
  return secret.public_send(attribute) if secret.respond_to?(attribute)

  nil
end

Private Instance Methods

extract_data(secret) click to toggle source
# File lib/settings_reader/vault_resolver/entry.rb, line 59
def extract_data(secret)
  secret.respond_to?(:data) && secret.data ? secret.data : {}
end