docbrown/app/lib/app_secrets.rb
2022-12-02 10:03:39 -06:00

23 lines
487 B
Ruby

class AppSecrets
def self.[](key)
result = Vault.kv(namespace).read(key)&.data&.fetch(:value) if vault_enabled?
result ||= ApplicationConfig[key]
result
rescue Vault::VaultError
ApplicationConfig[key]
end
def self.[]=(key, value)
Vault.kv(namespace).write(key, value: value)
end
def self.vault_enabled?
ENV["VAULT_TOKEN"].present?
end
def self.namespace
ENV.fetch("VAULT_SECRET_NAMESPACE", nil)
end
private_class_method :namespace
end