From c598aae837e6c989636881a04149be074a22a099 Mon Sep 17 00:00:00 2001 From: Mike Crute Date: Mon, 15 Nov 2021 23:08:01 -0800 Subject: vault: allow getting arbitrary objects --- vault/simple_client.go | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/vault/simple_client.go b/vault/simple_client.go index 560ebfe..4ceb4b5 100644 --- a/vault/simple_client.go +++ b/vault/simple_client.go @@ -42,6 +42,19 @@ func loginAndRead(path string) (*api.Secret, error) { return s, nil } +func GetVaultKeyStruct(path string, out interface{}) error { + s, err := loginAndRead(fmt.Sprintf("kv/data/%s", path)) + if err != nil { + return err + } + + if err = mapstructure.Decode(s.Data["data"], out); err != nil { + return err + } + + return nil +} + func GetVaultKey(path string) (Credential, error) { s, err := loginAndRead(fmt.Sprintf("kv/data/%s", path)) if err != nil { -- cgit v1.2.3