Module: Ironclad
- Defined in:
- lib/ironclad.rb,
lib/ironclad/cli.rb,
lib/ironclad/diff.rb,
lib/ironclad/cache.rb,
lib/ironclad/config.rb,
lib/ironclad/source.rb,
lib/ironclad/railtie.rb,
lib/ironclad/version.rb,
lib/ironclad/key_store.rb,
lib/ironclad/cache/null.rb,
lib/ironclad/capistrano.rb,
lib/ironclad/cache/keyctl.rb,
lib/ironclad/cache/keychain.rb,
lib/ironclad/source/one_password.rb,
lib/generators/ironclad/install_generator.rb
Overview
Sources Rails credential keys from a secrets manager, cached in the local OS keystore.
Defined Under Namespace
Modules: Cache, Capistrano, Diff, Generators, Source Classes: CLI, Config, Error, KeyStore, Railtie
Constant Summary collapse
- GIT_DIFF_DRIVER =
'rails_credentials'- DIFF_COMMAND =
'bin/ironclad diff'- VERSION =
'0.4.0'
Class Attribute Summary collapse
Class Method Summary collapse
- .config ⇒ Object
- .configure_git_diff!(command = DIFF_COMMAND) ⇒ Object
- .configured? ⇒ Boolean
-
.key(environment = 'default', refresh: false) ⇒ Object
Return the credentials key for an environment, using the read-through cache.
-
.reset! ⇒ Object
Reset memoized state (mainly for tests).
- .store ⇒ Object
Class Attribute Details
.config_path ⇒ Object
22 23 24 |
# File 'lib/ironclad.rb', line 22 def config_path @config_path ||= File.join(Dir.pwd, 'config', 'ironclad.yml') end |
Class Method Details
.config ⇒ Object
30 31 32 |
# File 'lib/ironclad.rb', line 30 def config @config ||= Config.load(config_path) end |
.configure_git_diff!(command = DIFF_COMMAND) ⇒ Object
44 45 46 47 48 49 |
# File 'lib/ironclad.rb', line 44 def configure_git_diff!(command = DIFF_COMMAND) return unless enrolled_in_git_diff? system('git', 'config', "diff.#{GIT_DIFF_DRIVER}.textconv", command, %i[out err] => File::NULL) end |
.configured? ⇒ Boolean
26 27 28 |
# File 'lib/ironclad.rb', line 26 def configured? File.exist?(config_path) end |
.key(environment = 'default', refresh: false) ⇒ Object
Return the credentials key for an environment, using the read-through cache. Pass refresh: true to bypass the cache after a key rotation.
40 41 42 |
# File 'lib/ironclad.rb', line 40 def key(environment = 'default', refresh: false) store.key(environment.to_s, refresh: refresh) end |
.reset! ⇒ Object
Reset memoized state (mainly for tests).
52 53 54 55 |
# File 'lib/ironclad.rb', line 52 def reset! @config = nil @store = nil end |