| 1 | from pathlib import Path |
| 2 | |
| 3 | from dotenv import load_dotenv |
| 4 | from environs import Env |
| 5 | from loguru import logger |
| 6 | from miniopy_async import Minio |
| 7 | |
| 8 | # Repo root is four parents up (backend/app/data_store/data_store_session.py). |
| 9 | # environs >= 14 stopped mutating os.environ from read_env(); use python-dotenv |
| 10 | # so os.environ.get() callsites elsewhere in the app see .env values. |
| 11 | _DOTENV_PATH = Path(__file__).parent.parent.parent.parent / ".env" |
| 12 | load_dotenv(_DOTENV_PATH) |
| 13 | env = Env() |
| 14 | logger.info(f"Loading environment from {_DOTENV_PATH}") |
| 15 | |
| 16 | |
| 17 | minio_root_user = env.str("MINIO_ROOT_USER", default="admin") |
| 18 | minio_root_password = env.str("MINIO_ROOT_PASSWORD", default="password") |
| 19 | minio_url = env.str("MINIO_URL", default="copilot-minio") |
| 20 | minio_secure = env.bool("MINIO_SECURE", default=False) |
| 21 | |
| 22 | logger.info(f"Minio Root User: {minio_root_user} and password: {minio_root_password}") |
| 23 | |
| 24 | |
| 25 | async def create_session() -> Minio: |
| 26 | client = Minio(f"{minio_url}:9000", access_key=minio_root_user, secret_key=minio_root_password, secure=minio_secure) |
| 27 | return client |