Skip to content

Commit c84056c

Browse files
Merge pull request #21 from Infisical/daniel/fixes
(Fix): Python process hanging & schema issue, .NET attach to process env
2 parents f123e75 + 4c46f9b commit c84056c

File tree

8 files changed

+30
-8
lines changed

8 files changed

+30
-8
lines changed

.gitignore

+2
Original file line numberDiff line numberDiff line change
@@ -172,6 +172,8 @@ InfisicalClient.egg-info
172172

173173
__pycache__
174174
crates/infisical-py/infisical_client/schemas.py
175+
crates/infisical-py/infisical_client/infisical_py.*.so
176+
crates/infisical-py/infisical_client/infisical_py.*.dll
175177

176178

177179
infisical_py.so

.vscode/settings.json

+2
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,8 @@
2222
"napi",
2323
"openapi",
2424
"openapitools",
25+
"pyclass",
26+
"pymethods",
2527
"quicktype",
2628
"reqwest",
2729
"rngs"

crates/infisical-py/Cargo.toml

+2-1
Original file line numberDiff line numberDiff line change
@@ -10,8 +10,9 @@ crate-type = ["cdylib"]
1010

1111
[dependencies]
1212
pyo3 = { version = "0.20.0", features = ["extension-module"] }
13-
pyo3-log = "0.9.0"
1413
infisical-json = { path = "../infisical-json" }
14+
env_logger = "0.10.1"
15+
log = "0.4.20"
1516

1617
[build-dependencies]
1718
pyo3-build-config = { version = "0.20.0" }

crates/infisical-py/infisical_client/infisical_client.py

+4-4
Original file line numberDiff line numberDiff line change
@@ -8,25 +8,25 @@
88
from .schemas import CreateSecretOptions, ResponseForCreateSecretResponse
99

1010
from .schemas import EncryptSymmetricOptions, EncryptSymmetricResponse, ResponseForEncryptSymmetricResponse
11-
from .schemas import DecryptSymmetricOptions, DecryptSymmetricResponse, ResponseForDecryptSymmetricResponse
11+
from .schemas import DecryptSymmetricOptions, ResponseForDecryptSymmetricResponse
1212

1313
from .schemas import ArbitraryOptions, ResponseForCreateSymmetricKeyResponse
1414

1515
from .infisical_py import InfisicalClient as RustInfisicalClient
1616
import os
1717

1818
class InfisicalClient:
19-
def __init__(self, settings: ClientSettings = None):
19+
def __init__(self, settings: ClientSettings = None, debug: bool = False):
2020

2121
if settings is None:
22-
self.inner = RustInfisicalClient(None)
22+
self.inner = RustInfisicalClient(settings, debug)
2323
else:
2424

2525
settings.user_agent = "infisical-python-sdk"
2626

2727
settings_json = json.dumps(settings.to_dict())
2828

29-
self.inner = RustInfisicalClient(settings_json)
29+
self.inner = RustInfisicalClient(settings_json, debug)
3030

3131
def _run_command(self, command: Command) -> Any:
3232
response_json = self.inner.run_command(json.dumps(command.to_dict()))
Binary file not shown.

crates/infisical-py/src/client.rs

+9-2
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
extern crate log;
12
use infisical_json::client::Client as JsonClient;
23
use pyo3::prelude::*;
34

@@ -7,8 +8,14 @@ pub struct InfisicalClient(JsonClient);
78
#[pymethods]
89
impl InfisicalClient {
910
#[new]
10-
pub fn new(settings_string: Option<String>) -> Self {
11-
pyo3_log::init();
11+
pub fn new(settings_string: Option<String>, debug: Option<bool>) -> Self {
12+
if debug.unwrap_or(false) == true {
13+
// This will only fail if another logger was already initialized, so we can ignore the result
14+
let _ = env_logger::Builder::from_default_env()
15+
.filter_level(log::LevelFilter::Debug)
16+
.try_init();
17+
}
18+
1219
Self(JsonClient::new(settings_string))
1320
}
1421

crates/infisical/src/client/client.rs

+2-1
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,8 @@ pub struct Client {
2020

2121
impl Client {
2222
pub fn new(settings_input: Option<ClientSettings>) -> Self {
23-
let settings = settings_input.expect("Settings not found or were set improperly.");
23+
// We should allow the user to not provide settings, so they can still use encryption methods that don't require authentication.
24+
let settings = settings_input.unwrap_or(ClientSettings::default());
2425

2526
let c = Self {
2627
auth: ClientAuth {

languages/csharp/Infisical.Sdk/InfisicalClient.cs

+9
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,15 @@ public SecretElement[] ListSecrets(ListSecretsOptions options)
4242

4343
if (result is { Success: true })
4444
{
45+
46+
if (options.AttachToProcessEnv == true)
47+
{
48+
foreach (var secret in result.Data.Secrets)
49+
{
50+
Environment.SetEnvironmentVariable(secret.SecretKey, secret.SecretValue);
51+
}
52+
}
53+
4554
return result.Data.Secrets;
4655
}
4756

0 commit comments

Comments
 (0)