Class: Secvault::RailsSecrets

Inherits:
Object
  • Object
show all
Defined in:
lib/secvault/rails_secrets.rb

Overview

Rails::Secrets compatibility class Provides the classic Rails::Secrets interface for backwards compatibility This replicates the Rails < 7.2 Rails::Secrets class functionality

Class Attribute Summary collapse

Class Method Summary collapse

Class Attribute Details

.rootObject

Returns the value of attribute root.



9
10
11
# File 'lib/secvault/rails_secrets.rb', line 9

def root
  @root
end

Class Method Details

.load(env: Rails.env) ⇒ Object Also known as: parse_default, read

Load secrets from the default config/secrets.yml file



37
38
39
40
# File 'lib/secvault/rails_secrets.rb', line 37

def load(env: Rails.env)
  secrets_path = Rails.root.join("config/secrets.yml")
  parse([secrets_path], env: env)
end

.parse(paths, env:) ⇒ Object

Parse secrets from one or more YAML files

Supports:

  • ERB templating for environment variables
  • Environment-specific sections (YAML anchors handle sharing)
  • Multiple files (merged in order)
  • Deep symbolized keys

Examples:

# Single file
Rails::Secrets.parse(['config/secrets.yml'], env: 'development')

# Multiple files (merged in order)
Rails::Secrets.parse([
'config/secrets.yml',
'config/secrets.local.yml'
], env: 'development')

# Load default config/secrets.yml
Rails::Secrets.load  # uses current Rails.env
Rails::Secrets.load(env: 'production')


32
33
34
# File 'lib/secvault/rails_secrets.rb', line 32

def parse(paths, env:)
  Secvault::Secrets.parse(paths, env: env.to_s)
end