feat(governance): automate identity and comparison coverage

This commit is contained in:
ogt
2026-07-14 16:15:41 +08:00
parent 2dcc2122c4
commit 4bfb9dbefd
31 changed files with 2763 additions and 578 deletions

View File

@@ -80,7 +80,19 @@ def _require_env(var_name: str, *, insecure_values: tuple[str, ...] = ()) -> str
_sys.exit(1)
LOGIN_PASSWORD = _require_env("LOGIN_PASSWORD")
MOMO_AUTH_IDENTITY_MODE = os.getenv("MOMO_AUTH_IDENTITY_MODE", "auto").strip().lower()
if MOMO_AUTH_IDENTITY_MODE not in {"auto", "shadow", "hybrid", "database"}:
raise ValueError(
"MOMO_AUTH_IDENTITY_MODE 必須是 auto、shadow、hybrid 或 database"
)
# Database-only mode no longer depends on the legacy shared credential. Auto,
# hybrid and shadow keep it available only until their controlled cutover gate.
LOGIN_PASSWORD = (
os.getenv("LOGIN_PASSWORD", "")
if MOMO_AUTH_IDENTITY_MODE == "database"
else _require_env("LOGIN_PASSWORD")
)
SECRET_KEY = _require_env("SECRET_KEY", insecure_values=('your_flask_secret_key', 'change_me', ''))
# ==========================================
@@ -402,7 +414,7 @@ YOUTUBE_API_KEY = os.getenv('YOUTUBE_API_KEY', '')
# ==========================================
# 系統版本與路徑
# ==========================================
SYSTEM_VERSION = "V10.787"
SYSTEM_VERSION = "V10.789"
LOG_FILE_PATH = os.path.join(BASE_DIR, 'logs/system.log')
public_url = PUBLIC_URL # 用於模板顯示