secvault 3.3.0 → 3.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 710d3e06fdda8db93c2e7ca401e8eaa9aa973b5c350dba8773a15a41458c71df
4
- data.tar.gz: 123cf43f089b2880f4c80035253510c97aaff711193c41e40b768605702a06db
3
+ metadata.gz: 5c8fcd4008fa8d015c158b77b325cbd26d9b00adcf53d84004e98a416becc00a
4
+ data.tar.gz: 306184e42264bbd333c57d8fd41a17d8a38cbc340191872f9701c578cf2f1659
5
5
  SHA512:
6
- metadata.gz: 257a70771cad2fe8581071a9aad9a3abc18fabf176d1ed902fd9962657a8a15a1e8a8d966b9a00912e4aa58eb129f4e1d3ba754d6e319aab4c2f0d05ffcd5a31
7
- data.tar.gz: 5783d0e4fa433d1beb8984e7d8a7d5946502249b4449e5e6ba97f2eedadf1063ec1982e11327757ee593aa9198a3203461ee1a59f3cb01356b1a800ba0aadbd7
6
+ metadata.gz: b09b21744c868890cf7c68d39cd61a4dfd45dadb6e4ec69c6d831d38d0203e02ca793c3298e46a1a3463ee7c11a03d31e90dd4e53fcfd0414800e8288276b275
7
+ data.tar.gz: f8f4ebdd164e945ec13af8a8393a47d21603cea6ddc48e62922d430ee6a37e799bfb1f882ca22806d5bd4baa5084d034d633b155c1efffbc11240d32018269a8
data/README.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # Secvault
2
2
 
3
- Simple YAML secrets management for Rails. Uses standard YAML anchors for sharing configuration.
3
+ Rails secrets.yml functionality for Rails 7.2+. Secvault restores the classic Rails secrets.yml functionality that was removed in Rails 7.2, allowing you to manage secrets using the familiar YAML-based approach.
4
4
 
5
5
  [![Gem Version](https://img.shields.io/gem/v/secvault.svg)](https://rubygems.org/gems/secvault)
6
6
  [![CI](https://github.com/unnitallman/secvault/actions/workflows/ci.yml/badge.svg)](https://github.com/unnitallman/secvault/actions/workflows/ci.yml)
@@ -48,38 +48,41 @@ module Secvault
48
48
  class EarlyLoader
49
49
  class << self
50
50
  def setup_early_secrets(app)
51
- puts "[Secvault Debug] setup_early_secrets called" unless Rails.env.production?
51
+ # Captured in a local variable because `define_singleton_method` below binds
52
+ # `self` to `Rails.application`, which doesn't have `debug_secvault?`.
53
+ in_debug_mode = debug_secvault?
54
+ puts "[Secvault Debug] setup_early_secrets called" if in_debug_mode
52
55
 
53
56
  if Rails.application.respond_to?(:secrets) && !Rails.application.secrets.empty?
54
- puts "[Secvault Debug] Secrets already exist, skipping early load" unless Rails.env.production?
57
+ puts "[Secvault Debug] Secrets already exist, skipping early load" if in_debug_mode
55
58
  return
56
59
  end
57
60
 
58
61
  # Look for Secvault configuration in the app
59
62
  secrets_config = find_secvault_config(app)
60
- puts "[Secvault Debug] Found config: #{secrets_config&.keys}" unless Rails.env.production?
63
+ puts "[Secvault Debug] Found config: #{secrets_config&.keys}" if in_debug_mode
61
64
  return unless secrets_config
62
65
 
63
66
  begin
64
67
  # Load secrets using the configuration found
65
68
  all_secrets = Secvault::Secrets.parse(secrets_config[:files], env: Rails.env)
66
- puts "[Secvault Debug] Loaded secrets keys: #{all_secrets.keys}" unless Rails.env.production?
69
+ puts "[Secvault Debug] Loaded secrets keys: #{all_secrets.keys}" if in_debug_mode
67
70
 
68
71
  # Set up Rails.application.secrets immediately
69
72
  Rails.application.define_singleton_method(:secrets) do
70
73
  @secrets ||= begin
71
74
  current_secrets = ActiveSupport::OrderedOptions.new
72
75
  current_secrets.merge!(all_secrets)
73
- puts "[Secvault Debug] Returning secrets with encryption: #{current_secrets.encryption}" unless Rails.env.production?
76
+ puts "[Secvault Debug] Returning secrets with encryption: #{current_secrets.encryption}" if in_debug_mode
74
77
  current_secrets
75
78
  end
76
79
  end
77
80
 
78
81
  # Test the secrets immediately
79
82
  test_encryption = Rails.application.secrets.encryption
80
- puts "[Secvault Debug] Test access - encryption: #{test_encryption.class} - #{test_encryption}" unless Rails.env.production?
83
+ puts "[Secvault Debug] Test access - encryption: #{test_encryption.class} - #{test_encryption}" if in_debug_mode
81
84
 
82
- Rails.logger&.info "[Secvault] Early secrets loaded from #{secrets_config[:files].size} files" unless Rails.env.production?
85
+ Rails.logger&.info "[Secvault] Early secrets loaded from #{secrets_config[:files].size} files" if in_debug_mode
83
86
  rescue => e
84
87
  Rails.logger&.warn "[Secvault] Failed to load early secrets: #{e.message}"
85
88
  end
@@ -150,6 +153,10 @@ module Secvault
150
153
  Rails.logger&.warn "[Secvault] Failed to parse config file #{config_file}: #{e.message}"
151
154
  nil
152
155
  end
156
+
157
+ def debug_secvault?
158
+ ENV["DEBUG_SECVAULT"] == "true"
159
+ end
153
160
  end
154
161
  end
155
162
  end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Secvault
4
- VERSION = "3.3.0"
4
+ VERSION = "3.4.0"
5
5
  end
metadata CHANGED
@@ -1,14 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: secvault
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.3.0
4
+ version: 3.4.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Unnikrishnan KP
8
- autorequire:
9
8
  bindir: exe
10
9
  cert_chain: []
11
- date: 2025-09-30 00:00:00.000000000 Z
10
+ date: 1980-01-02 00:00:00.000000000 Z
12
11
  dependencies:
13
12
  - !ruby/object:Gem::Dependency
14
13
  name: rails
@@ -80,7 +79,6 @@ metadata:
80
79
  homepage_uri: https://github.com/unnitallman/secvault
81
80
  source_code_uri: https://github.com/unnitallman/secvault
82
81
  changelog_uri: https://github.com/unnitallman/secvault/blob/main/CHANGELOG.md
83
- post_install_message:
84
82
  rdoc_options: []
85
83
  require_paths:
86
84
  - lib
@@ -95,8 +93,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
95
93
  - !ruby/object:Gem::Version
96
94
  version: '0'
97
95
  requirements: []
98
- rubygems_version: 3.5.10
99
- signing_key:
96
+ rubygems_version: 4.0.3
100
97
  specification_version: 4
101
98
  summary: Simple Rails secrets.yml functionality for Rails 7.1+, 7.2+ and Rails 8.0+
102
99
  test_files: []