23 lines
487 B
Ruby
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
|