Skip to content

Commit fa16211

Browse files
committed
fix: overload ListSecrets to avoid breaking changes
1 parent 938b953 commit fa16211

File tree

1 file changed

+100
-82
lines changed

1 file changed

+100
-82
lines changed
Lines changed: 100 additions & 82 deletions
Original file line numberDiff line numberDiff line change
@@ -1,110 +1,128 @@
11
package com.infisical.sdk.resources;
22

3-
import com.infisical.sdk.api.QueryBuilder;
4-
import com.infisical.sdk.models.*;
5-
6-
import com.infisical.sdk.util.Helper;
3+
import java.util.List;
74

85
import com.infisical.sdk.api.ApiClient;
6+
import com.infisical.sdk.api.QueryBuilder;
7+
import com.infisical.sdk.models.CreateSecretInput;
8+
import com.infisical.sdk.models.DeleteSecretInput;
9+
import com.infisical.sdk.models.ListSecretsResponse;
10+
import com.infisical.sdk.models.Secret;
11+
import com.infisical.sdk.models.SingleSecretResponse;
12+
import com.infisical.sdk.models.UpdateSecretInput;
13+
import com.infisical.sdk.util.Helper;
914
import com.infisical.sdk.util.InfisicalException;
10-
import java.util.List;
1115

1216
public class SecretsClient {
13-
private final ApiClient httpClient;
14-
15-
public SecretsClient(ApiClient apiClient) {
16-
this.httpClient = apiClient;
17+
private final ApiClient httpClient;
18+
19+
public SecretsClient(ApiClient apiClient) {
20+
this.httpClient = apiClient;
21+
}
22+
23+
// Overload to avoid breaking changes for new setSecretsOnSystemProperties
24+
// parameter
25+
public List<Secret> ListSecrets(String projectId, String environmentSlug, String secretPath,
26+
Boolean expandSecretReferences, Boolean recursive, Boolean includeImports) throws InfisicalException {
27+
return ListSecrets(projectId, environmentSlug, secretPath, expandSecretReferences, recursive, includeImports,
28+
false);
29+
}
30+
31+
public List<Secret> ListSecrets(String projectId, String environmentSlug, String secretPath,
32+
Boolean expandSecretReferences, Boolean recursive, Boolean includeImports, Boolean setSecretsOnSystemProperties)
33+
throws InfisicalException {
34+
var url = String.format("%s%s", this.httpClient.GetBaseUrl(), "/api/v3/secrets/raw");
35+
36+
var queryParameters = new QueryBuilder()
37+
.add("workspaceId", projectId)
38+
.add("environment", environmentSlug)
39+
.add("secretPath", secretPath)
40+
.add("expandSecretReferences", Helper.booleanToString(expandSecretReferences))
41+
.add("recursive", Helper.booleanToString(recursive))
42+
.add("includeImports", Helper.booleanToString(includeImports))
43+
.build();
44+
45+
var listSecrets = this.httpClient.get(url, queryParameters, ListSecretsResponse.class);
46+
47+
if (setSecretsOnSystemProperties) {
48+
for (Secret secret : listSecrets.getSecrets()) {
49+
System.setProperty(secret.getSecretKey(), secret.getSecretValue());
50+
}
1751
}
1852

19-
public List<Secret> ListSecrets(String projectId, String environmentSlug, String secretPath, Boolean expandSecretReferences, Boolean recursive, Boolean includeImports, Boolean setSecretsOnSystemProperties) throws InfisicalException {
20-
var url = String.format("%s%s", this.httpClient.GetBaseUrl(), "/api/v3/secrets/raw");
53+
return listSecrets.getSecrets();
54+
}
2155

22-
var queryParameters = new QueryBuilder()
23-
.add("workspaceId", projectId)
24-
.add("environment", environmentSlug)
25-
.add("secretPath", secretPath)
26-
.add("expandSecretReferences", Helper.booleanToString(expandSecretReferences))
27-
.add("recursive", Helper.booleanToString(recursive))
28-
.add("includeImports", Helper.booleanToString(includeImports))
29-
.build();
56+
public Secret GetSecret(String secretName, String projectId, String environmentSlug, String secretPath,
57+
Boolean expandSecretReferences, Boolean includeImports, String secretType) throws InfisicalException {
58+
var url = String.format("%s%s", this.httpClient.GetBaseUrl(), String.format("/api/v3/secrets/raw/%s", secretName));
3059

31-
var listSecrets = this.httpClient.get(url, queryParameters, ListSecretsResponse.class);
60+
var queryParameters = new QueryBuilder()
61+
.add("workspaceId", projectId)
62+
.add("environment", environmentSlug)
63+
.add("secretPath", secretPath)
64+
.add("expandSecretReferences", Helper.booleanToString(expandSecretReferences))
65+
.add("includeImports", Helper.booleanToString(includeImports))
66+
.add("type", secretType)
67+
.build();
3268

33-
if (setSecretsOnSystemProperties) {
34-
for (Secret secret : listSecrets.getSecrets()) {
35-
System.setProperty(secret.getSecretKey(), secret.getSecretValue());
36-
}
37-
}
69+
var result = this.httpClient.get(url, queryParameters, SingleSecretResponse.class);
3870

39-
return listSecrets.getSecrets();
40-
}
71+
return result.getSecret();
72+
}
4173

42-
public Secret GetSecret(String secretName, String projectId, String environmentSlug, String secretPath, Boolean expandSecretReferences, Boolean includeImports, String secretType) throws InfisicalException {
43-
var url = String.format("%s%s", this.httpClient.GetBaseUrl(), String.format("/api/v3/secrets/raw/%s", secretName));
74+
public Secret UpdateSecret(String secretName, String projectId, String environmentSlug, String secretPath,
75+
String newSecretValue, String newSecretName) throws InfisicalException {
76+
var url = String.format("%s%s", this.httpClient.GetBaseUrl(), String.format("/api/v3/secrets/raw/%s", secretName));
4477

45-
var queryParameters = new QueryBuilder()
46-
.add("workspaceId", projectId)
47-
.add("environment", environmentSlug)
48-
.add("secretPath", secretPath)
49-
.add("expandSecretReferences", Helper.booleanToString(expandSecretReferences))
50-
.add("includeImports", Helper.booleanToString(includeImports))
51-
.add("type", secretType)
52-
.build();
78+
var inputBuilder = UpdateSecretInput.builder()
79+
.secretPath(secretPath)
80+
.projectId(projectId)
81+
.environmentSlug(environmentSlug)
82+
.newSecretName(newSecretName)
83+
.secretValue(newSecretValue);
5384

54-
var result = this.httpClient.get(url, queryParameters, SingleSecretResponse.class);
85+
if (newSecretName != null)
86+
inputBuilder.newSecretName(newSecretName);
87+
if (newSecretName != null)
88+
inputBuilder.secretValue(newSecretValue);
5589

56-
return result.getSecret();
57-
}
90+
var requestInput = inputBuilder.build();
5891

59-
public Secret UpdateSecret(String secretName, String projectId, String environmentSlug, String secretPath, String newSecretValue, String newSecretName) throws InfisicalException {
60-
var url = String.format("%s%s", this.httpClient.GetBaseUrl(), String.format("/api/v3/secrets/raw/%s", secretName));
92+
var result = this.httpClient.patch(url, requestInput, SingleSecretResponse.class);
6193

62-
var inputBuilder = UpdateSecretInput.builder()
63-
.secretPath(secretPath)
64-
.projectId(projectId)
65-
.environmentSlug(environmentSlug)
66-
.newSecretName(newSecretName)
67-
.secretValue(newSecretValue);
94+
return result.getSecret();
95+
}
6896

69-
if (newSecretName != null) inputBuilder.newSecretName(newSecretName);
70-
if (newSecretName != null) inputBuilder.secretValue(newSecretValue);
97+
public Secret CreateSecret(String secretName, String secretValue, String projectId, String environmentSlug,
98+
String secretPath) throws InfisicalException {
99+
var url = String.format("%s%s", this.httpClient.GetBaseUrl(), String.format("/api/v3/secrets/raw/%s", secretName));
71100

72-
var requestInput = inputBuilder.build();
101+
var createSecretInput = CreateSecretInput.builder()
102+
.secretPath(secretPath)
103+
.projectId(projectId)
104+
.environmentSlug(environmentSlug)
105+
.secretValue(secretValue)
106+
.build();
73107

108+
createSecretInput.setSecretValue(!secretValue.isEmpty() ? secretValue : "");
74109

75-
var result = this.httpClient.patch(url, requestInput, SingleSecretResponse.class);
110+
var result = this.httpClient.post(url, createSecretInput, SingleSecretResponse.class);
76111

77-
return result.getSecret();
78-
}
79-
80-
81-
public Secret CreateSecret(String secretName, String secretValue, String projectId, String environmentSlug, String secretPath) throws InfisicalException {
82-
var url = String.format("%s%s", this.httpClient.GetBaseUrl(), String.format("/api/v3/secrets/raw/%s", secretName));
112+
return result.getSecret();
113+
}
83114

84-
var createSecretInput = CreateSecretInput.builder()
85-
.secretPath(secretPath)
86-
.projectId(projectId)
87-
.environmentSlug(environmentSlug)
88-
.secretValue(secretValue)
89-
.build();
115+
public Secret DeleteSecret(String secretName, String projectId, String environmentSlug, String secretPath)
116+
throws InfisicalException {
117+
var url = String.format("%s%s", this.httpClient.GetBaseUrl(), String.format("/api/v3/secrets/raw/%s", secretName));
90118

91-
createSecretInput.setSecretValue(!secretValue.isEmpty() ? secretValue : "");
119+
var deleteSecretInput = DeleteSecretInput.builder()
120+
.secretPath(secretPath)
121+
.projectId(projectId)
122+
.environmentSlug(environmentSlug)
123+
.build();
92124

93-
var result = this.httpClient.post(url, createSecretInput, SingleSecretResponse.class);
94-
95-
return result.getSecret();
96-
}
97-
98-
public Secret DeleteSecret(String secretName, String projectId, String environmentSlug, String secretPath) throws InfisicalException {
99-
var url = String.format("%s%s", this.httpClient.GetBaseUrl(), String.format("/api/v3/secrets/raw/%s", secretName));
100-
101-
var deleteSecretInput = DeleteSecretInput.builder()
102-
.secretPath(secretPath)
103-
.projectId(projectId)
104-
.environmentSlug(environmentSlug)
105-
.build();
106-
107-
var result = this.httpClient.delete(url, deleteSecretInput, SingleSecretResponse.class);
108-
return result.getSecret();
109-
}
125+
var result = this.httpClient.delete(url, deleteSecretInput, SingleSecretResponse.class);
126+
return result.getSecret();
127+
}
110128
}

0 commit comments

Comments
 (0)