Skip to content

Commit 1ee2c81

Browse files
authored
Option to retrive only a key value from vault (#37)
1 parent 985ab5c commit 1ee2c81

File tree

2 files changed

+14
-1
lines changed

2 files changed

+14
-1
lines changed

himl/secret_resolvers.py

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
# governing permissions and limitations under the License.
1010

1111
import logging
12+
import os
1213
from .simplessm import SimpleSSM
1314
from .simples3 import SimpleS3
1415
from .simplevault import SimpleVault
@@ -85,6 +86,12 @@ def resolve(self, secret_type, secret_params):
8586
path = self.get_param_or_exception("path", secret_params)
8687
return vault().get_path(path)
8788

89+
if "key" in secret_params.keys():
90+
key_path = os.path.split(self.get_param_or_exception("key", secret_params))
91+
path = key_path[0]
92+
key = key_path[1]
93+
return vault().get_key(path, key)
94+
8895

8996
class AggregatedSecretResolver(SecretResolver):
9097
def __init__(self, default_aws_profile=None):

himl/simplevault.py

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -66,8 +66,14 @@ def get_token(self, policy):
6666
def get_path(self, path):
6767
mount_point = os.getenv('VAULT_MOUNT_POINT', 'kv')
6868
client = self.get_vault_client()
69-
7069
result = client.secrets.kv.v2.read_secret_version(mount_point=mount_point, path=path)
7170
secret_data = result['data']['data']
7271

7372
return secret_data
73+
74+
def get_key(self, path, key):
75+
secret_data = self.get_path(path)
76+
print(secret_data)
77+
secret_key_value = secret_data[key]
78+
79+
return secret_key_value

0 commit comments

Comments
 (0)