Skip to Content Skip to Search

class ActiveSupport::EncryptedConfiguration

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

Inherits From

Public class methods

Source code GitHub
# 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

Public instance methods

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 GitHub
# File activesupport/lib/active_support/encrypted_configuration.rb, line 85
def config
  @config ||= deep_symbolize_keys(deserialize(read))
end

Reads the file and returns the decrypted content. See EncryptedFile#read.

Source code GitHub
# 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

Namespace

Definition files