Class: Legion::Data::Encryption::KeyProvider

Inherits:
Object
  • Object
show all
Includes:
Logging::Helper
Defined in:
lib/legion/data/encryption/key_provider.rb

Instance Method Summary collapse

Methods included from Logging::Helper

#handle_exception

Constructor Details

#initialize(mode: :auto) ⇒ KeyProvider

Returns a new instance of KeyProvider.



12
13
14
15
# File 'lib/legion/data/encryption/key_provider.rb', line 12

def initialize(mode: :auto)
  @mode = mode
  @key_cache = {}
end

Instance Method Details

#clear_cache!Object



22
23
24
25
# File 'lib/legion/data/encryption/key_provider.rb', line 22

def clear_cache!
  @key_cache.clear
  log.debug 'Cleared encryption key cache'
end

#key_for(tenant_id: nil) ⇒ Object



17
18
19
20
# File 'lib/legion/data/encryption/key_provider.rb', line 17

def key_for(tenant_id: nil)
  cache_key = tenant_id || '__default__'
  @key_cache[cache_key] ||= derive_key(tenant_id)
end