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

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