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
Namespace
Class
- ActiveSupport::EncryptedConfiguration::InvalidContentError
- ActiveSupport::EncryptedConfiguration::InvalidKeyError
Methods
Class Public methods
new(config_path:, key_path:, env_key:, raise_if_missing_key:)
📝 Source code
# 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
🔎 See on GitHub
Instance Public methods
config()
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 } }
📝 Source code
# File activesupport/lib/active_support/encrypted_configuration.rb, line 85
def config
@config ||= deep_symbolize_keys(deserialize(read))
end
🔎 See on GitHub
read()
Reads the file and returns the decrypted content. See EncryptedFile#read
.
📝 Source code
# File activesupport/lib/active_support/encrypted_configuration.rb, line 62
def read
super
rescue ActiveSupport::EncryptedFile::MissingContentError
# Allow a config to be started without a file present
""
end
🔎 See on GitHub