Skip to content

Commit f10e6fb

Browse files
committed
requested sink changes
1 parent 206e2f6 commit f10e6fb

File tree

6 files changed

+154
-17
lines changed

6 files changed

+154
-17
lines changed

.gitignore

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -67,3 +67,5 @@ target/
6767

6868
# IDEs
6969
.idea
70+
71+
.env

sink/.env.example

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
SECRETS_PROJECT_ID=<secrets-project-id>
2+
SECRETS_ENVIRONMENT_SLUG=<secrets-environment-slug>
3+
MACHINE_IDENTITY_UNIVERSAL_AUTH_CLIENT_ID=<machine-identity-universal-auth-client-id>
4+
MACHINE_IDENTITY_UNIVERSAL_AUTH_CLIENT_SECRET=<machine-identity-universal-auth-client-secret>
5+
SITE_URL=<site-url>
6+
KMS_PROJECT_ID=<kms-project-id>

sink/cache_deletion_test.py

Lines changed: 78 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,78 @@
1+
from infisical_sdk import InfisicalSDKClient
2+
import time
3+
import os
4+
import random
5+
import string
6+
7+
8+
def loadEnvVarsFromFileIntoEnv():
9+
d = dict()
10+
with open("./.env", "r") as fp:
11+
for line in fp:
12+
line = line.strip()
13+
if line and not line.startswith("#"):
14+
line = line.split("=", 1)
15+
d[line[0]] = line[1]
16+
17+
for key, value in d.items():
18+
os.environ[key] = value
19+
20+
loadEnvVarsFromFileIntoEnv()
21+
22+
SECRETS_PROJECT_ID = os.getenv("SECRETS_PROJECT_ID")
23+
SECRETS_ENVIRONMENT_SLUG = os.getenv("SECRETS_ENVIRONMENT_SLUG")
24+
25+
MACHINE_IDENTITY_UNIVERSAL_AUTH_CLIENT_ID = os.getenv("MACHINE_IDENTITY_UNIVERSAL_AUTH_CLIENT_ID")
26+
MACHINE_IDENTITY_UNIVERSAL_AUTH_CLIENT_SECRET = os.getenv("MACHINE_IDENTITY_UNIVERSAL_AUTH_CLIENT_SECRET")
27+
SITE_URL = os.getenv("SITE_URL")
28+
29+
cache_enabled_client = InfisicalSDKClient(host=SITE_URL, cache_ttl=10)
30+
cache_enabled_client.auth.universal_auth.login(MACHINE_IDENTITY_UNIVERSAL_AUTH_CLIENT_ID, MACHINE_IDENTITY_UNIVERSAL_AUTH_CLIENT_SECRET)
31+
32+
33+
time_start_cache_disabled = time.time()
34+
35+
def randomStringNoSpecialChars(length: int = 10) -> str:
36+
return ''.join(random.choices(string.ascii_letters + string.digits, k=length))
37+
38+
created_sec = cache_enabled_client.secrets.create_secret_by_name(
39+
secret_name=f"TEST_{randomStringNoSpecialChars()}",
40+
project_id=SECRETS_PROJECT_ID,
41+
environment_slug=SECRETS_ENVIRONMENT_SLUG,
42+
secret_path="/",
43+
secret_value=f"secret_value_{randomStringNoSpecialChars()}",
44+
)
45+
46+
47+
single_secret_cached = cache_enabled_client.secrets.get_secret_by_name(
48+
secret_name=created_sec.secretKey,
49+
project_id=SECRETS_PROJECT_ID,
50+
environment_slug=SECRETS_ENVIRONMENT_SLUG,
51+
secret_path="/",
52+
expand_secret_references=True,
53+
include_imports=True)
54+
55+
print(single_secret_cached)
56+
57+
58+
deleted_secret = cache_enabled_client.secrets.delete_secret_by_name(
59+
secret_name=created_sec.secretKey,
60+
project_id=SECRETS_PROJECT_ID,
61+
environment_slug=SECRETS_ENVIRONMENT_SLUG,
62+
secret_path="/",
63+
)
64+
65+
print(deleted_secret)
66+
67+
# Should error
68+
try:
69+
single_secret_cached = cache_enabled_client.secrets.get_secret_by_name(
70+
secret_name=created_sec.secretKey,
71+
project_id=SECRETS_PROJECT_ID,
72+
environment_slug=SECRETS_ENVIRONMENT_SLUG,
73+
secret_path="/",
74+
expand_secret_references=True,
75+
include_imports=True)
76+
except Exception as e:
77+
print(e)
78+
print("Good, we errored as expected!")

sink/cache_expire_test.py

Lines changed: 20 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,28 @@
11
from infisical_sdk import InfisicalSDKClient
22

33
import time
4+
import os
45

5-
SECRETS_PROJECT_ID = "8770e386-6392-4bfa-a377-a1e2d981668a"
6-
SECRETS_ENVIRONMENT_SLUG = "dev"
6+
def loadEnvVarsFromFileIntoEnv():
7+
d = dict()
8+
with open("./.env", "r") as fp:
9+
for line in fp:
10+
line = line.strip()
11+
if line and not line.startswith("#"):
12+
line = line.split("=", 1)
13+
d[line[0]] = line[1]
714

8-
MACHINE_IDENTITY_UNIVERSAL_AUTH_CLIENT_ID = "<client-id>"
9-
MACHINE_IDENTITY_UNIVERSAL_AUTH_CLIENT_SECRET = "<client-secret>"
10-
SITE_URL = "http://localhost:8080"
15+
for key, value in d.items():
16+
os.environ[key] = value
17+
18+
loadEnvVarsFromFileIntoEnv()
19+
20+
SECRETS_PROJECT_ID = os.getenv("SECRETS_PROJECT_ID")
21+
SECRETS_ENVIRONMENT_SLUG = os.getenv("SECRETS_ENVIRONMENT_SLUG")
22+
23+
MACHINE_IDENTITY_UNIVERSAL_AUTH_CLIENT_ID = os.getenv("MACHINE_IDENTITY_UNIVERSAL_AUTH_CLIENT_ID")
24+
MACHINE_IDENTITY_UNIVERSAL_AUTH_CLIENT_SECRET = os.getenv("MACHINE_IDENTITY_UNIVERSAL_AUTH_CLIENT_SECRET")
25+
SITE_URL = os.getenv("SITE_URL")
1126

1227
cache_enabled_client = InfisicalSDKClient(host=SITE_URL, cache_ttl=10)
1328
cache_enabled_client.auth.universal_auth.login(MACHINE_IDENTITY_UNIVERSAL_AUTH_CLIENT_ID, MACHINE_IDENTITY_UNIVERSAL_AUTH_CLIENT_SECRET)

sink/cache_test.py

Lines changed: 21 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,28 @@
11
from infisical_sdk import InfisicalSDKClient
22
import time
3+
import os
34

4-
SECRETS_PROJECT_ID = "8770e386-6392-4bfa-a377-a1e2d981668a"
5-
SECRETS_ENVIRONMENT_SLUG = "dev"
65

7-
MACHINE_IDENTITY_UNIVERSAL_AUTH_CLIENT_ID = "<client-id>"
8-
MACHINE_IDENTITY_UNIVERSAL_AUTH_CLIENT_SECRET = "<client-secret>"
9-
SITE_URL = "http://localhost:8080"
6+
def loadEnvVarsFromFileIntoEnv():
7+
d = dict()
8+
with open("./.env", "r") as fp:
9+
for line in fp:
10+
line = line.strip()
11+
if line and not line.startswith("#"):
12+
line = line.split("=", 1)
13+
d[line[0]] = line[1]
14+
15+
for key, value in d.items():
16+
os.environ[key] = value
17+
18+
loadEnvVarsFromFileIntoEnv()
19+
20+
SECRETS_PROJECT_ID = os.getenv("SECRETS_PROJECT_ID")
21+
SECRETS_ENVIRONMENT_SLUG = os.getenv("SECRETS_ENVIRONMENT_SLUG")
22+
23+
MACHINE_IDENTITY_UNIVERSAL_AUTH_CLIENT_ID = os.getenv("MACHINE_IDENTITY_UNIVERSAL_AUTH_CLIENT_ID")
24+
MACHINE_IDENTITY_UNIVERSAL_AUTH_CLIENT_SECRET = os.getenv("MACHINE_IDENTITY_UNIVERSAL_AUTH_CLIENT_SECRET")
25+
SITE_URL = os.getenv("SITE_URL")
1026

1127
cache_disabled_client = InfisicalSDKClient(host=SITE_URL, cache_ttl=None)
1228
cache_disabled_client.auth.universal_auth.login(MACHINE_IDENTITY_UNIVERSAL_AUTH_CLIENT_ID, MACHINE_IDENTITY_UNIVERSAL_AUTH_CLIENT_SECRET)

sink/example.py

Lines changed: 27 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -2,18 +2,36 @@
22

33
import random
44
import base64
5+
import os
56
import string
67

7-
sdkInstance = InfisicalSDKClient(host="http://localhost:8080")
8+
def loadEnvVarsFromFileIntoEnv():
9+
d = dict()
10+
with open("./.env", "r") as fp:
11+
for line in fp:
12+
line = line.strip()
13+
if line and not line.startswith("#"):
14+
line = line.split("=", 1)
15+
d[line[0]] = line[1]
816

9-
MACHINE_IDENTITY_UNIVERSAL_AUTH_CLIENT_ID = "<client-id>"
10-
MACHINE_IDENTITY_UNIVERSAL_AUTH_CLIENT_SECRET = "<client-secret>"
17+
for key, value in d.items():
18+
os.environ[key] = value
1119

12-
sdkInstance.auth.universal_auth.login(MACHINE_IDENTITY_UNIVERSAL_AUTH_CLIENT_ID, MACHINE_IDENTITY_UNIVERSAL_AUTH_CLIENT_SECRET)
20+
loadEnvVarsFromFileIntoEnv()
21+
22+
sdkInstance = InfisicalSDKClient(host=os.getenv("SITE_URL"))
23+
24+
25+
SECRETS_PROJECT_ID = os.getenv("SECRETS_PROJECT_ID")
26+
KMS_PROJECT_ID = os.getenv("KMS_PROJECT_ID")
27+
SECRETS_ENVIRONMENT_SLUG = os.getenv("SECRETS_ENVIRONMENT_SLUG")
1328

14-
SECRETS_PROJECT_ID = "8770e386-6392-4bfa-a377-a1e2d981668a"
15-
SECRETS_ENVIRONMENT_SLUG = "staging"
16-
KMS_PROJECT_ID = "c54edf7a-f861-4131-afdc-b0ad5faec5dc"
29+
MACHINE_IDENTITY_UNIVERSAL_AUTH_CLIENT_ID = os.getenv("MACHINE_IDENTITY_UNIVERSAL_AUTH_CLIENT_ID")
30+
MACHINE_IDENTITY_UNIVERSAL_AUTH_CLIENT_SECRET = os.getenv("MACHINE_IDENTITY_UNIVERSAL_AUTH_CLIENT_SECRET")
31+
SITE_URL = os.getenv("SITE_URL")
32+
33+
34+
sdkInstance.auth.universal_auth.login(MACHINE_IDENTITY_UNIVERSAL_AUTH_CLIENT_ID, MACHINE_IDENTITY_UNIVERSAL_AUTH_CLIENT_SECRET)
1735

1836

1937
def random_string(length: int = 10) -> str:
@@ -75,6 +93,8 @@ def random_string(length: int = 10) -> str:
7593
include_imports=True
7694
)
7795

96+
97+
all_secrets.secrets = [secret for secret in all_secrets.secrets if secret.secretKey != "TEST"]
7898
if len(all_secrets.secrets) != 1:
7999
raise Exception("Expected 1 secret, got {}".format(len(all_secrets.secrets)))
80100

0 commit comments

Comments
 (0)