Encrypted Configuration¶ ↑
Provides convenience methods on top of EncryptedFile to access values stored as encrypted YAML.
Values can be accessed via Hash methods, such as fetch and dig, or via dynamic accessor methods, similar to OrderedOptions.
my_config = ActiveSupport::EncryptedConfiguration.new(...) my_config.read # => "some_secret: 123\nsome_namespace:\n another_secret: 456" my_config[:some_secret] # => 123 my_config.some_secret # => 123 my_config.dig(:some_namespace, :another_secret) # => 456 my_config.some_namespace.another_secret # => 456 my_config.fetch(:foo) # => KeyError my_config.foo! # => KeyError
- CLASS ActiveSupport::EncryptedConfiguration::InvalidContentError
- CLASS ActiveSupport::EncryptedConfiguration::InvalidKeyError
Class Public methods
new(config_path:, key_path:, env_key:, raise_if_missing_key:) Link
# File activesupport/lib/active_support/encrypted_configuration.rb, line 54 def initialize(config_path:, key_path:, env_key:, raise_if_missing_key:) super content_path: config_path, key_path: key_path, env_key: env_key, raise_if_missing_key: raise_if_missing_key @config = nil @options = nil end
Instance Public methods
config() Link
Returns the decrypted content as a Hash with symbolized keys.
my_config = ActiveSupport::EncryptedConfiguration.new(...)
my_config.read # => "some_secret: 123\nsome_namespace:\n another_secret: 456"
my_config.config
# => { some_secret: 123, some_namespace: { another_secret: 789 } }
keys() Link
Returns an array of symbolized keys from the decrypted configuration.
my_config = ActiveSupport::EncryptedConfiguration.new(...) my_config.read # => "some_secret: 123\nsome_namespace:\n another_secret: 456" my_config.keys # => [:some_secret, :some_namespace]
option(*key, default: nil) Link
Find singular or nested keys. Returns nil if the key isn’t found. If a default value is defined, it (or its callable value) will be returned on a missing key or nil value.
Given configuration:
db_port: null database: host: "db.example.com"
Examples:
option(:database, :host) # => "db.example.com" option(:missing) # => nil option(:missing, default: "localhost") # => "localhost" option(:missing, default: -> { "localhost" }) # => "localhost" option(:db_port, default: 5432) # => 5432 (nil values use default)
read() Link
Reads the file and returns the decrypted content. See EncryptedFile#read.
reload() Link
Reload the cached values in case any of them changed or new ones were added during runtime.
require(*key) Link
Find singular or nested keys. Raises KeyError if not found or nil.
Given configuration:
db_port: null database: host: "db.example.com"
Examples:
require(:database, :host) # => "db.example.com" require(:missing) # => KeyError require(:db_port) # => KeyError (nil values are treated as missing)