From 0f4bac7aedce25f1cdf80acd2eaf85e679cd6863 Mon Sep 17 00:00:00 2001 From: Steffen Scheib Date: Mon, 20 Mar 2023 13:43:12 +0100 Subject: [PATCH] Add missing filtering mechanism for the Thycotic Devops Vault credential lookup --- awx/main/credential_plugins/dsv.py | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/awx/main/credential_plugins/dsv.py b/awx/main/credential_plugins/dsv.py index 9c89199710..78d5e6a4f0 100644 --- a/awx/main/credential_plugins/dsv.py +++ b/awx/main/credential_plugins/dsv.py @@ -35,8 +35,14 @@ dsv_inputs = { 'type': 'string', 'help_text': _('The secret path e.g. /test/secret1'), }, + { + 'id': 'secret_field', + 'label': _('Secret Field'), + 'help_text': _('The field to extract from the secret'), + 'type': 'string', + }, ], - 'required': ['tenant', 'client_id', 'client_secret', 'path'], + 'required': ['tenant', 'client_id', 'client_secret', 'path', 'secret_field'], } if settings.DEBUG: @@ -52,5 +58,5 @@ if settings.DEBUG: dsv_plugin = CredentialPlugin( 'Thycotic DevOps Secrets Vault', dsv_inputs, - lambda **kwargs: SecretsVault(**{k: v for (k, v) in kwargs.items() if k in [field['id'] for field in dsv_inputs['fields']]}).get_secret(kwargs['path']), + lambda **kwargs: SecretsVault(**{k: v for (k, v) in kwargs.items() if k in [field['id'] for field in dsv_inputs['fields']]}).get_secret(kwargs['path'])['data'][kwargs['secret_field']], )