Module: Familia
- Extended by:
- Connection, Logging, SecureIdentifier, Settings, Utils
- Defined in:
- lib/familia.rb,
lib/familia/base.rb,
lib/familia/utils.rb,
lib/familia/errors.rb,
lib/familia/horreum.rb,
lib/familia/logging.rb,
lib/familia/version.rb,
lib/familia/features.rb,
lib/familia/settings.rb,
lib/familia/data_type.rb,
lib/familia/connection.rb,
lib/familia/encryption.rb,
lib/familia/field_type.rb,
lib/familia/horreum/utils.rb,
lib/familia/horreum/settings.rb,
lib/familia/secure_identifier.rb,
lib/familia/encryption/manager.rb,
lib/familia/horreum/connection.rb,
lib/familia/encryption/provider.rb,
lib/familia/encryption/registry.rb,
lib/familia/features/expiration.rb,
lib/familia/features/expiration.rb,
lib/familia/data_type/types/list.rb,
lib/familia/horreum/serialization.rb,
lib/familia/data_type/types/string.rb,
lib/familia/data_type/types/hashkey.rb,
lib/familia/encryption_request_cache.rb,
lib/familia/features/encrypted_fields.rb,
lib/familia/features/transient_fields.rb,
lib/familia/horreum/database_commands.rb,
lib/familia/data_type/types/sorted_set.rb,
lib/familia/horreum/definition_methods.rb,
lib/familia/horreum/management_methods.rb,
lib/familia/data_type/types/unsorted_set.rb,
lib/familia/horreum/related_fields_management.rb,
lib/familia/encryption/providers/aes_gcm_provider.rb,
lib/familia/features/encrypted_fields/encrypted_field_type.rb,
lib/familia/features/transient_fields/transient_field_type.rb,
lib/familia/encryption/providers/xchacha20_poly1305_provider.rb,
lib/familia/encryption/providers/secure_xchacha20_poly1305_provider.rb
Overview
⚠️ RUBY MEMORY SAFETY WARNING ⚠️
This encryption provider, like all Ruby-based cryptographic implementations, stores secrets (keys, plaintext, derived keys) as Ruby strings in memory.
SECURITY IMPLICATIONS: - Keys remain in memory after use (garbage collection timing is unpredictable) - Ruby strings cannot be securely wiped from memory - Memory dumps may contain cryptographic secrets - Swap files may persist secrets to disk - String operations create copies that persist in memory
Ruby provides NO memory safety guarantees for cryptographic secrets.
For production systems handling sensitive data, consider: - Hardware Security Modules (HSMs) - External key management services - Languages with manual memory management - Cryptographic appliances with secure memory
Defined Under Namespace
Modules: Base, Connection, Encryption, Features, Logging, SecureIdentifier, Settings, Utils Classes: DataType, EncryptedFieldType, EncryptionError, FieldType, HashKey, HighRiskFactor, Horreum, KeyNotFoundError, List, NoConnectionAvailable, NoIdentifier, NonUniqueKey, NotConnected, Problem, Set, SortedSet, String, TransientFieldType
Constant Summary collapse
- VERSION =
'2.0.0.pre5'- FeatureDefinition =
Data.define(:name, :depends_on)
- VALID_STRATEGIES =
%i[raise skip warn overwrite].freeze
Constants included from SecureIdentifier
Class Attribute Summary collapse
-
.debug ⇒ Object
Returns the value of attribute debug.
-
.members ⇒ Object
readonly
Returns the value of attribute members.
Attributes included from Logging
Attributes included from Connection
#connection_provider, #connection_required, #database_clients, #enable_database_counter, #enable_database_logging, #uri
Attributes included from Settings
#current_key_version, #default_expiration, #delim, #encryption_keys, #encryption_personalization, #logical_database, #prefix, #suffix
Class Method Summary collapse
-
.configure {|_self| ... } ⇒ Object
A convenience pattern for configuring Familia.
-
.debug? ⇒ Boolean
Checks if debug mode is enabled.
Methods included from SecureIdentifier
generate_hex_id, generate_hex_trace_id, generate_id, generate_trace_id, min_length_for_bits, shorten_to_external_id, shorten_to_trace_id
Methods included from Logging
Methods included from Connection
connect, dbclient, pipeline, reconnect, transaction, with_connection
Methods included from Settings
Methods included from Utils
dbkey, distinguisher, join, now, pretty_path, pretty_stack, qstamp, serverid, split
Class Attribute Details
.debug ⇒ Object
Returns the value of attribute debug.
39 40 41 |
# File 'lib/familia.rb', line 39 def debug @debug end |
.members ⇒ Object (readonly)
Returns the value of attribute members.
40 41 42 |
# File 'lib/familia.rb', line 40 def members @members end |
Class Method Details
.configure {|_self| ... } ⇒ Object
A convenience pattern for configuring Familia.
55 56 57 |
# File 'lib/familia.rb', line 55 def configure yield self end |
.debug? ⇒ Boolean
Checks if debug mode is enabled
e.g. Familia.debug = true
64 65 66 |
# File 'lib/familia.rb', line 64 def debug? @debug == true end |