Module: Familia::Settings

Included in:
Familia, Horreum::DefinitionMethods
Defined in:
lib/familia/settings.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Instance Attribute Details

#current_key_version(val = nil) ⇒ Object



54
55
56
57
# File 'lib/familia/settings.rb', line 54

def current_key_version(val = nil)
  @current_key_version = val if val
  @current_key_version
end

#default_expiration(v = nil) ⇒ Object



32
33
34
35
# File 'lib/familia/settings.rb', line 32

def default_expiration(v = nil)
  @default_expiration = v unless v.nil?
  @default_expiration
end

#delim(val = nil) ⇒ Object



17
18
19
20
# File 'lib/familia/settings.rb', line 17

def delim(val = nil)
  @delim = val if val
  @delim
end

#encryption_keys(val = nil) ⇒ Object



49
50
51
52
# File 'lib/familia/settings.rb', line 49

def encryption_keys(val = nil)
  @encryption_keys = val if val
  @encryption_keys
end

#encryption_personalization(val = nil) ⇒ String

Personalization string for BLAKE2b key derivation in XChaCha20Poly1305. This provides cryptographic domain separation, ensuring derived keys are unique per application even with identical master keys and contexts. Must be 16 bytes or less (automatically padded with null bytes).

Examples:

Familia.configure do |config|
  config.encryption_personalization = 'MyApp1.0'
end

Parameters:

  • val (String, nil) (defaults to: nil)

    The personalization string, or nil to get current value

Returns:

  • (String)

    Current personalization string



71
72
73
74
75
76
77
78
# File 'lib/familia/settings.rb', line 71

def encryption_personalization(val = nil)
  if val
    raise ArgumentError, 'Personalization string cannot exceed 16 bytes' if val.bytesize > 16

    @encryption_personalization = val
  end
  @encryption_personalization
end

#logical_database(v = nil) ⇒ Object



37
38
39
40
41
# File 'lib/familia/settings.rb', line 37

def logical_database(v = nil)
  Familia.trace :DB, dbclient, "#{@logical_database} #{v}", caller(1..1) if Familia.debug?
  @logical_database = v unless v.nil?
  @logical_database
end

#prefix(val = nil) ⇒ Object



22
23
24
25
# File 'lib/familia/settings.rb', line 22

def prefix(val = nil)
  @prefix = val if val
  @prefix
end

#suffix(val = nil) ⇒ Object



27
28
29
30
# File 'lib/familia/settings.rb', line 27

def suffix(val = nil)
  @suffix = val if val
  @suffix
end

Instance Method Details

#configObject



80
81
82
# File 'lib/familia/settings.rb', line 80

def config
  self
end

#default_suffixObject

We define this do-nothing method because it reads better than simply Familia.suffix in some contexts.



45
46
47
# File 'lib/familia/settings.rb', line 45

def default_suffix
  suffix
end