Spaces:
Running
Running
import platform | |
from pathlib import Path | |
from loguru import logger | |
def set_secure_permissions(file_path: Path) -> None: | |
if platform.system() in {"Linux", "Darwin"}: # Unix/Linux/Mac | |
file_path.chmod(0o600) | |
elif platform.system() == "Windows": | |
import win32api | |
import win32con | |
import win32security | |
user, _, _ = win32security.LookupAccountName("", win32api.GetUserName()) | |
sd = win32security.GetFileSecurity(str(file_path), win32security.DACL_SECURITY_INFORMATION) | |
dacl = win32security.ACL() | |
# Set the new DACL for the file: read and write access for the owner, no access for everyone else | |
dacl.AddAccessAllowedAce( | |
win32security.ACL_REVISION, | |
win32con.GENERIC_READ | win32con.GENERIC_WRITE, | |
user, | |
) | |
sd.SetSecurityDescriptorDacl(1, dacl, 0) | |
win32security.SetFileSecurity(str(file_path), win32security.DACL_SECURITY_INFORMATION, sd) | |
else: | |
logger.error("Unsupported OS") | |
def write_secret_to_file(path: Path, value: str) -> None: | |
path.write_text(value, encoding="utf-8") | |
try: | |
set_secure_permissions(path) | |
except Exception: # noqa: BLE001 | |
logger.exception("Failed to set secure permissions on secret key") | |
def read_secret_from_file(path: Path) -> str: | |
return path.read_text(encoding="utf-8") | |