Skip to content

Commit a31af7d

Browse files
bfaulk96jetersen
andauthored
Add optional required parameter to VaultSecretValue (#186)
Co-authored-by: Joseph Petersen <[email protected]>
1 parent a6f8189 commit a31af7d

File tree

5 files changed

+25
-3
lines changed

5 files changed

+25
-3
lines changed

Diff for: .idea/codeStyles/Project.xml

+4-2
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Diff for: src/main/java/com/datapipe/jenkins/vault/VaultAccessor.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -174,7 +174,7 @@ public static Map<String, String> retrieveVaultSecrets(Run<?,?> run, PrintStream
174174
for (VaultSecretValue value : vaultSecret.getSecretValues()) {
175175
String vaultKey = value.getVaultKey();
176176
String secret = values.get(vaultKey);
177-
if (StringUtils.isBlank(secret)) {
177+
if (StringUtils.isBlank(secret) && value.getIsRequired()) {
178178
throw new IllegalArgumentException(
179179
"Vault Secret " + vaultKey + " at " + path
180180
+ " is either null or empty. Please check the Secret in Vault.");

Diff for: src/main/java/com/datapipe/jenkins/vault/model/VaultSecretValue.java

+12
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,7 @@ public class VaultSecretValue
4040
extends AbstractDescribableImpl<VaultSecretValue> {
4141

4242
private String envVar;
43+
private boolean isRequired = DescriptorImpl.DEFAULT_IS_REQUIRED;
4344
private final String vaultKey;
4445

4546
@Deprecated
@@ -58,6 +59,11 @@ public void setEnvVar(String envVar) {
5859
this.envVar = envVar;
5960
}
6061

62+
@DataBoundSetter
63+
public void setIsRequired(boolean isRequired) {
64+
this.isRequired = isRequired;
65+
}
66+
6167
/**
6268
*
6369
* @return envVar if value is not empty otherwise return vaultKey
@@ -70,10 +76,16 @@ public String getVaultKey() {
7076
return vaultKey;
7177
}
7278

79+
public boolean getIsRequired() {
80+
return isRequired;
81+
}
82+
7383
@Extension
7484
public static final class DescriptorImpl
7585
extends Descriptor<VaultSecretValue> {
7686

87+
public final static Boolean DEFAULT_IS_REQUIRED = true;
88+
7789
@Override
7890
public String getDisplayName() {
7991
return "Environment variable/vault secret value pair";

Diff for: src/main/resources/com/datapipe/jenkins/vault/model/VaultSecretValue/config.jelly

+4
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,10 @@
99
<f:textbox/>
1010
</f:entry>
1111

12+
<f:entry field="isRequired">
13+
<f:checkbox title="Required?" default="${descriptor.DEFAULT_IS_REQUIRED}" />
14+
</f:entry>
15+
1216
<f:entry title="">
1317
<div align="right">
1418
<f:repeatableDeleteButton/>
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
<div>
2+
A toggle to determine if the given Vault secret value must be present in your secret<br/>
3+
If checked, the value is required; the plugin will throw an error if the value is not found in the secret.
4+
</div>

0 commit comments

Comments
 (0)