guzhi/app/settings/config.py
邹方成 01ed8fb25b feat: 添加短信验证码绕过功能并更新API权限同步
- 添加SMS_BYPASS_CODE配置允许特定验证码绕过验证
- 实现角色与API权限的自动同步功能
- 更新评估模型的时间字段为可空
- 移除前端PC路由配置
- 更新Docker镜像版本至v2.6
- 切换开发环境API基础地址
2025-12-02 16:41:03 +08:00

119 lines
4.9 KiB
Python

import os
import typing
from pydantic_settings import BaseSettings
class Settings(BaseSettings):
VERSION: str = "0.1.0"
APP_TITLE: str = "Vue FastAPI Admin"
PROJECT_NAME: str = "Vue FastAPI Admin"
APP_DESCRIPTION: str = "Description"
CORS_ORIGINS: typing.List = ["*"]
CORS_ALLOW_CREDENTIALS: bool = True
CORS_ALLOW_METHODS: typing.List = ["*"]
CORS_ALLOW_HEADERS: typing.List = ["*"]
DEBUG: bool = True
# 服务器配置
SERVER_HOST: str = "https://value.cdcee.net"
SERVER_PORT: int = 9999
BASE_URL: str = f"{SERVER_HOST}"
PROJECT_ROOT: str = os.path.abspath(os.path.join(os.path.dirname(__file__), os.pardir))
BASE_DIR: str = os.path.abspath(os.path.join(PROJECT_ROOT, os.pardir))
LOGS_ROOT: str = os.path.join(BASE_DIR, "app/logs")
SECRET_KEY: str = "3488a63e1765035d386f05409663f55c83bfae3b3c61a932744b20ad14244dcf" # openssl rand -hex 32
JWT_ALGORITHM: str = "HS256"
JWT_ACCESS_TOKEN_EXPIRE_MINUTES: int = 60 * 24 * 7 # 7 day
TORTOISE_ORM: dict = {
"connections": {
# SQLite configuration
# "sqlite": {
# "engine": "tortoise.backends.sqlite",
# "credentials": {"file_path": f"{BASE_DIR}/db.sqlite3"}, # Path to SQLite database file
# },
# MySQL/MariaDB configuration
# Install with: tortoise-orm[asyncmy]
"mysql": {
"engine": "tortoise.backends.mysql",
"credentials": {
"host": "sh-cynosdbmysql-grp-88th45wy.sql.tencentcdb.com", # Database host address
"port": 28555, # Database port
"user": "root", # Database username
"password": "api2api..", # Database password
"database": "valuation_service", # Database name
},
},
# PostgreSQL configuration
# Install with: tortoise-orm[asyncpg]
# "postgres": {
# "engine": "tortoise.backends.asyncpg",
# "credentials": {
# "host": "localhost", # Database host address
# "port": 5432, # Database port
# "user": "yourusername", # Database username
# "password": "yourpassword", # Database password
# "database": "yourdatabase", # Database name
# },
# },
# MSSQL/Oracle configuration
# Install with: tortoise-orm[asyncodbc]
# "oracle": {
# "engine": "tortoise.backends.asyncodbc",
# "credentials": {
# "host": "localhost", # Database host address
# "port": 1433, # Database port
# "user": "yourusername", # Database username
# "password": "yourpassword", # Database password
# "database": "yourdatabase", # Database name
# },
# },
# SQLServer configuration
# Install with: tortoise-orm[asyncodbc]
# "sqlserver": {
# "engine": "tortoise.backends.asyncodbc",
# "credentials": {
# "host": "localhost", # Database host address
# "port": 1433, # Database port
# "user": "yourusername", # Database username
# "password": "yourpassword", # Database password
# "database": "yourdatabase", # Database name
# },
# },
},
"apps": {
"models": {
"models": ["app.models", "aerich.models"],
"default_connection": "mysql",
},
},
"use_tz": False, # Whether to use timezone-aware datetimes
"timezone": "Asia/Shanghai", # Timezone setting
}
DATETIME_FORMAT: str = "%Y-%m-%d %H:%M:%S"
ALIBABA_CLOUD_ACCESS_KEY_ID: typing.Optional[str] = "LTAI5tA8gcgM8Qc7K9qCtmXg"
ALIBABA_CLOUD_ACCESS_KEY_SECRET: typing.Optional[str] = "eWZIWi6xILGtmPSGyJEAhILX5fQx0h"
ALIYUN_SMS_SIGN_NAME: typing.Optional[str] = "成都文化产权交易所"
ALIYUN_SMS_ENDPOINT: str = "dysmsapi.aliyuncs.com"
ALIYUN_SMS_TEMPLATE_CODE_VERIFY: typing.Optional[str] = "SMS_498140213"
ALIYUN_SMS_TEMPLATE_CODE_REPORT: typing.Optional[str] = "SMS_498190229"
SMS_CODE_DIGITS: int = 6
SMS_DEBUG_LOG_CODE: bool = True
ALIYUN_USE_DEFAULT_CREDENTIALS: bool = False
ALIYUN_SMS_TEMPLATE_PARAM_CODE_KEY: typing.Optional[str] = "code"
SMS_BYPASS_CODE: typing.Optional[str] = "202511"
SMTP_HOST: typing.Optional[str] = "smtp.qiye.aliyun.com"
SMTP_PORT: typing.Optional[int] = 465
SMTP_USERNAME: typing.Optional[str] = "value@cdcee.net"
SMTP_PASSWORD: typing.Optional[str] = "PPXbILdGlRCn2VOx"
SMTP_TLS: bool = False
SMTP_FROM: typing.Optional[str] = "value@cdcee.net"
settings = Settings()