Class: Secvault::RailsSecrets
- Inherits:
-
Object
- Object
- Secvault::RailsSecrets
- 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
-
.root ⇒ Object
Returns the value of attribute root.
Class Method Summary collapse
-
.load(env: Rails.env) ⇒ Object
(also: parse_default, read)
Load secrets from the default config/secrets.yml file.
-
.parse(paths, env:) ⇒ Object
Parse secrets from one or more YAML files.
Class Attribute Details
.root ⇒ Object
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 |