feat(auth): add admin bootstrap and username login
Initialize admin bootstrap settings during startup, persist username support in auth flows, and align frontend auth requests with local API behavior.
This commit is contained in:
@@ -3,15 +3,15 @@ from pydantic_settings import BaseSettings, SettingsConfigDict
|
||||
from typing import Literal
|
||||
|
||||
|
||||
BASE_DIR = Path(__file__).resolve().parent.parent
|
||||
ENV_FILE = BASE_DIR / ".env"
|
||||
REPO_ROOT = Path(__file__).resolve().parents[2]
|
||||
ENV_FILE = REPO_ROOT / ".env"
|
||||
|
||||
|
||||
def _resolve_path(value: str) -> str:
|
||||
path = Path(value)
|
||||
if path.is_absolute():
|
||||
return str(path)
|
||||
return str((BASE_DIR / path).resolve())
|
||||
return str((REPO_ROOT / path).resolve())
|
||||
|
||||
|
||||
class Settings(BaseSettings):
|
||||
@@ -31,10 +31,10 @@ class Settings(BaseSettings):
|
||||
|
||||
# === 数据库 ===
|
||||
DATABASE_URL: str = "sqlite+aiosqlite:///./data/jarvis.db"
|
||||
DATA_DIR: str = "./data"
|
||||
DATA_DIR: str = "data"
|
||||
|
||||
# === ChromaDB ===
|
||||
CHROMA_PERSIST_DIR: str = "./data/chroma"
|
||||
CHROMA_PERSIST_DIR: str = "data/chroma"
|
||||
|
||||
# === LLM 配置 ===
|
||||
# 支持: openai / claude / ollama / deepseek / custom
|
||||
@@ -63,8 +63,15 @@ class Settings(BaseSettings):
|
||||
CORS_ORIGINS: list[str] = ["http://localhost:5173", "http://localhost:3000"]
|
||||
|
||||
# === 文件上传 ===
|
||||
UPLOAD_DIR: str = "./data/uploads"
|
||||
UPLOAD_DIR: str = "data/uploads"
|
||||
MAX_UPLOAD_SIZE: int = 50 * 1024 * 1024
|
||||
MINERU_LANGUAGE: Literal["ch", "en"] = "ch"
|
||||
|
||||
# === 管理员 bootstrap ===
|
||||
ADMIN: str = ""
|
||||
ADMIN_EMAIL: str = ""
|
||||
ADMIN_PASSWORD: str = ""
|
||||
ADMIN_FULL_NAME: str = "Administrator"
|
||||
|
||||
# === 向量化 ===
|
||||
EMBEDDING_MODEL: str = "text-embedding-3-small"
|
||||
|
||||
Reference in New Issue
Block a user