25 lines
885 B
Python
25 lines
885 B
Python
"""应用配置:环境变量优先,秘密不落盘。"""
|
|
|
|
from functools import lru_cache
|
|
|
|
from pydantic_settings import BaseSettings, SettingsConfigDict
|
|
|
|
|
|
class Settings(BaseSettings):
|
|
model_config = SettingsConfigDict(env_prefix="HUNJING_", env_file=".env", extra="ignore")
|
|
|
|
env: str = "development"
|
|
# 开发档管理员邮箱白名单(逗号分隔):命中邮箱在首次登录(建户)时即为 admin 角色;
|
|
# 已存在的普通用户不自动提权。正式管理员治理属 WP-14。
|
|
dev_admin_emails: str = ""
|
|
log_level: str = "info"
|
|
api_port: int = 8000
|
|
database_url: str = "postgresql+asyncpg://hunjing:hunjing_dev_password@127.0.0.1:5432/hunjing"
|
|
storage_root: str = "storage"
|
|
sandbox_enabled: bool = False # 未启用时隔离插件执行 fail-closed
|
|
|
|
|
|
@lru_cache
|
|
def get_settings() -> Settings:
|
|
return Settings()
|