Skip to Content Skip to Search

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
Methods
C
N
R
W

Class Public methods

new(config_path:, key_path:, env_key:, raise_if_missing_key:)

# File activesupport/lib/active_support/encrypted_configuration.rb, line 36
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
end

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

read()

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

# File activesupport/lib/active_support/encrypted_configuration.rb, line 42
def read
  super
rescue ActiveSupport::EncryptedFile::MissingContentError
  # Allow a config to be started without a file present
  ""
end

write(contents)

# File activesupport/lib/active_support/encrypted_configuration.rb, line 49
def write(contents)
  deserialize(contents)

  super
end