11package 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
85import 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 ;
914import com .infisical .sdk .util .InfisicalException ;
10- import java .util .List ;
1115
1216public class SecretsClient {
13- private final ApiClient httpClient ;
14-
15- public SecretsClient (ApiClient apiClient ) {
16- this .httpClient = apiClient ;
17- }
18-
19- public List <Secret > ListSecrets (String projectId , String environmentSlug , String secretPath , Boolean expandSecretReferences , Boolean recursive , Boolean includeImports ) throws InfisicalException {
20- var url = String .format ("%s%s" , this .httpClient .GetBaseUrl (), "/api/v3/secrets/raw" );
21-
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 ();
30-
31- var listSecrets = this .httpClient .get (url , queryParameters , ListSecretsResponse .class );
32-
33- return listSecrets .getSecrets ();
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+ }
3451 }
3552
36- public Secret GetSecret ( String secretName , String projectId , String environmentSlug , String secretPath , Boolean expandSecretReferences , Boolean includeImports , String secretType ) throws InfisicalException {
37- var url = String . format ( "%s%s" , this . httpClient . GetBaseUrl (), String . format ( "/api/v3/secrets/raw/%s" , secretName ));
53+ return listSecrets . getSecrets ();
54+ }
3855
39- var queryParameters = new QueryBuilder ()
40- .add ("workspaceId" , projectId )
41- .add ("environment" , environmentSlug )
42- .add ("secretPath" , secretPath )
43- .add ("expandSecretReferences" , Helper .booleanToString (expandSecretReferences ))
44- .add ("includeImports" , Helper .booleanToString (includeImports ))
45- .add ("type" , secretType )
46- .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 ));
4759
48- var result = this .httpClient .get (url , queryParameters , SingleSecretResponse .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 ();
4968
50- return result .getSecret ();
51- }
69+ var result = this .httpClient .get (url , queryParameters , SingleSecretResponse .class );
5270
53- public Secret UpdateSecret ( String secretName , String projectId , String environmentSlug , String secretPath , String newSecretValue , String newSecretName ) throws InfisicalException {
54- var url = String . format ( "%s%s" , this . httpClient . GetBaseUrl (), String . format ( "/api/v3/secrets/raw/%s" , secretName ));
71+ return result . getSecret ();
72+ }
5573
56- var inputBuilder = UpdateSecretInput .builder ()
57- .secretPath (secretPath )
58- .projectId (projectId )
59- .environmentSlug (environmentSlug )
60- .newSecretName (newSecretName )
61- .secretValue (newSecretValue );
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 ));
6277
63- if (newSecretName != null ) inputBuilder .newSecretName (newSecretName );
64- if (newSecretName != null ) inputBuilder .secretValue (newSecretValue );
78+ var inputBuilder = UpdateSecretInput .builder ()
79+ .secretPath (secretPath )
80+ .projectId (projectId )
81+ .environmentSlug (environmentSlug )
82+ .newSecretName (newSecretName )
83+ .secretValue (newSecretValue );
6584
66- var requestInput = inputBuilder .build ();
85+ if (newSecretName != null )
86+ inputBuilder .newSecretName (newSecretName );
87+ if (newSecretName != null )
88+ inputBuilder .secretValue (newSecretValue );
6789
90+ var requestInput = inputBuilder .build ();
6891
69- var result = this .httpClient .patch (url , requestInput , SingleSecretResponse .class );
70-
71- return result .getSecret ();
72- }
92+ var result = this .httpClient .patch (url , requestInput , SingleSecretResponse .class );
7393
94+ return result .getSecret ();
95+ }
7496
75- public Secret CreateSecret (String secretName , String secretValue , String projectId , String environmentSlug , String secretPath ) throws InfisicalException {
76- var url = String .format ("%s%s" , this .httpClient .GetBaseUrl (), String .format ("/api/v3/secrets/raw/%s" , secretName ));
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 ));
77100
78- var createSecretInput = CreateSecretInput .builder ()
79- .secretPath (secretPath )
80- .projectId (projectId )
81- .environmentSlug (environmentSlug )
82- .secretValue (secretValue )
83- .build ();
101+ var createSecretInput = CreateSecretInput .builder ()
102+ .secretPath (secretPath )
103+ .projectId (projectId )
104+ .environmentSlug (environmentSlug )
105+ .secretValue (secretValue )
106+ .build ();
84107
85- createSecretInput .setSecretValue (!secretValue .isEmpty () ? secretValue : "" );
108+ createSecretInput .setSecretValue (!secretValue .isEmpty () ? secretValue : "" );
86109
87- var result = this .httpClient .post (url , createSecretInput , SingleSecretResponse .class );
110+ var result = this .httpClient .post (url , createSecretInput , SingleSecretResponse .class );
88111
89- return result .getSecret ();
90- }
112+ return result .getSecret ();
113+ }
91114
92- public Secret DeleteSecret (String secretName , String projectId , String environmentSlug , String secretPath ) throws InfisicalException {
93- var url = String .format ("%s%s" , this .httpClient .GetBaseUrl (), String .format ("/api/v3/secrets/raw/%s" , secretName ));
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 ));
94118
95- var deleteSecretInput = DeleteSecretInput .builder ()
96- .secretPath (secretPath )
97- .projectId (projectId )
98- .environmentSlug (environmentSlug )
99- .build ();
119+ var deleteSecretInput = DeleteSecretInput .builder ()
120+ .secretPath (secretPath )
121+ .projectId (projectId )
122+ .environmentSlug (environmentSlug )
123+ .build ();
100124
101- var result = this .httpClient .delete (url , deleteSecretInput , SingleSecretResponse .class );
102- return result .getSecret ();
103- }
125+ var result = this .httpClient .delete (url , deleteSecretInput , SingleSecretResponse .class );
126+ return result .getSecret ();
127+ }
104128}
0 commit comments