module UmbrellioUtils::Vault

Public Instance Methods

create_kv_engine(path) click to toggle source
# File lib/umbrellio_utils/vault.rb, line 11
def create_kv_engine(path)
  ::Vault.logical.write(
    "sys/mounts/#{path}",
    config: {},
    generate_signing_key: true,
    options: { version: 2 },
    path: path.to_s,
    type: "kv",
  )
end
secret_engine_present?(engine_path) click to toggle source
# File lib/umbrellio_utils/vault.rb, line 7
def secret_engine_present?(engine_path)
  ::Vault.logical.read("sys/mounts").data.key?("#{engine_path}/".to_sym)
end
write_to_kv(engine_path:, secret_path:, data:) click to toggle source
# File lib/umbrellio_utils/vault.rb, line 22
def write_to_kv(engine_path:, secret_path:, data:)
  full_data_path = File.join(engine_path, "data", secret_path)
  full_meta_path = File.join(engine_path, "metadata", secret_path)
  ::Vault.logical.write(full_data_path, data: data)
  ::Vault.logical.write(full_meta_path, id: secret_path, max_versions: 1, cas_required: false)
end