elastic_backend_fast/app/config/settings.py
2025-11-29 15:48:25 +03:30

72 lines
2.5 KiB
Python

import os
from functools import lru_cache
from pydantic_settings import BaseSettings, SettingsConfigDict
from pathlib import Path
from typing import Optional
class Settings(BaseSettings):
model_config = SettingsConfigDict(env_file=".env", env_file_encoding="utf-8", extra="ignore")
jwtKey: Optional[str] = ""
is_mode_develop: int = 0
# Elasticsearch connection
elasticsearch_url: str = "http://localhost:9200"
elasticsearch_username: Optional[str] = None
elasticsearch_password: Optional[str] = None
elasticsearch_verify_certs: Optional[bool] = False
elasticsearch_ca_certs_path: Optional[str] = None
ai_rag_host: Optional[str] = None
ai_rag_host_gpu: Optional[str] = None
backup_file: Optional[str] = None
# Config base path where per-type configs live
config_base_path: str = "app/configs"
enable_back_permition: bool = False
# Networking
request_timeout_seconds: int = 30
disable_es_startup: bool = False
base_project:Path = Path(__file__).resolve().parent.parent.parent
current_user_id:Optional[int] = 0
permit_type:Optional[str] = "DB"
permit_db_type:Optional[str] = "mysql"
permit_database_user:Optional[str] = None
permit_database_password:Optional[str] = None
permit_database_host:Optional[str] = None
permit_database_port:Optional[int] = 8090
permit_database_name:Optional[str] = None
MYSQL_host:Optional[str] = None
MYSQL_username:Optional[str] = None
MYSQL_port:Optional[str] = None
MYSQL_password:Optional[str] = None
@lru_cache
def get_settings() -> Settings:
settings = Settings(env_file="config.env",env_file_encoding="utf-8",extra="ignore")
settings.elasticsearch_username = os.environ.get("ELASTIC_username")
settings.elasticsearch_password = os.environ.get("ELASTIC_password")
settings.elasticsearch_url = os.environ.get("ELASTIC_URL")
settings.ai_rag_host = os.environ.get("ai_rag_host")
settings.ai_rag_host_gpu = os.environ.get("ai_rag_host_gpu")
settings.jwtKey = os.environ.get("TAVASI_jwtKey")
settings.enable_back_permition = os.environ.get("CONFIG_enable_back_permition")
settings.is_mode_develop = os.environ.get("CONFIG_develop")
settings.MYSQL_host = os.environ.get("MYSQL_host")
settings.MYSQL_username = os.environ.get("MYSQL_username")
settings.MYSQL_port = os.environ.get("MYSQL_port")
settings.MYSQL_password = os.environ.get("MYSQL_password")
return settings