Skip to content

Instantly share code, notes, and snippets.

@mcrd25
Created January 3, 2023 04:10
Show Gist options
  • Save mcrd25/9eefe3fe6ad91c753a59c237a5a70cff to your computer and use it in GitHub Desktop.
Save mcrd25/9eefe3fe6ad91c753a59c237a5a70cff to your computer and use it in GitHub Desktop.
Python Based Secret Manager
import os
import json
class SecretManager:
def __init__(self):
self.secrets = {}
def get_secrets(self, service_name):
if service_name in self.secrets:
return self.secrets[service_name]
else:
secrets_file = f"{service_name}_secrets.json"
if os.path.exists(secrets_file):
with open(secrets_file, "r") as f:
secrets = json.load(f)
self.secrets[service_name] = secrets
return secrets
else:
raise Exception(f"Secrets for {service_name} not found")
def get_services(self):
return list(self.secrets.keys())
"""Example of use fwith openai:
secret_manager = SecretManager()
secrets = secret_manager.get_secrets("openai")
assert "openai" in secret_manager.get_services()
openai.api_key = secrets["api_key"]
Example of json File contents/format:
{
"api_key": "ihaguhdfgkjhsdfgkhsdkfghskjdfg",
"org_key": "asfhiuashdfiuhfiuhsadiufhasuidfsadf",
"another_key": "iodafihdfgjhdfsghkdsjfghksdfgsdfgsdfg"
"""
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment