dev
This commit is contained in:
51
domain-api/app/core/config.py
Normal file
51
domain-api/app/core/config.py
Normal file
@@ -0,0 +1,51 @@
|
||||
from pathlib import Path
|
||||
|
||||
from pydantic import field_validator
|
||||
from pydantic_settings import BaseSettings, SettingsConfigDict
|
||||
|
||||
|
||||
BASE_DIR = Path(__file__).resolve().parents[2]
|
||||
WORKSPACE_DIR = BASE_DIR.parent
|
||||
DOMAINCHECK_DIR = WORKSPACE_DIR / "domainCheck"
|
||||
API_ENV_FILE = BASE_DIR / ".env"
|
||||
ENV_FILE = DOMAINCHECK_DIR / ".env"
|
||||
|
||||
|
||||
class Settings(BaseSettings):
|
||||
api_prefix: str = "/api/v1"
|
||||
api_host: str = "0.0.0.0"
|
||||
api_port: int = 8100
|
||||
cors_origins: list[str] = ["http://127.0.0.1:3200", "http://localhost:3200"]
|
||||
db_host: str = "127.0.0.1"
|
||||
db_port: int = 5432
|
||||
db_database: str = "domain"
|
||||
db_user: str = "postgres"
|
||||
db_password: str = "postgres"
|
||||
redis_host: str = "127.0.0.1"
|
||||
redis_port: int = 6379
|
||||
redis_password: str = ""
|
||||
redis_db: int = 0
|
||||
domain_root: str = str(DOMAINCHECK_DIR)
|
||||
admin_username: str = "admin"
|
||||
admin_password: str = "admin"
|
||||
worker_mode: str = "windows-local"
|
||||
worker_service_name: str = "domaincheck-worker"
|
||||
api_service_name: str = "domaincheck-api"
|
||||
|
||||
@field_validator("cors_origins", mode="before")
|
||||
@classmethod
|
||||
def parse_cors_origins(cls, value: object) -> object:
|
||||
if isinstance(value, str):
|
||||
if value.strip().startswith("["):
|
||||
return value
|
||||
return [item.strip() for item in value.split(",") if item.strip()]
|
||||
return value
|
||||
|
||||
model_config = SettingsConfigDict(
|
||||
env_file=(str(API_ENV_FILE), str(ENV_FILE)),
|
||||
env_file_encoding="utf-8",
|
||||
extra="ignore",
|
||||
)
|
||||
|
||||
|
||||
settings = Settings()
|
||||
Reference in New Issue
Block a user