fix(admin): address Copilot review findings

- Reflect built-in defaults for boolean settings (ALLOW_PRIVATE_URLS
  defaults on) and allow clearing a saved boolean back to default,
  so the SSRF toggle matches actual runtime behavior.
- Harden JSON loading: filter settings values to strings only, and
  schema-validate stored ADMIN_PROVIDERS entries, dropping malformed
  ones instead of letting them reach runtime code.
- Set beforeunload returnValue so the unsaved-changes prompt shows in
  all browsers; reject non-finite numbers in settings validation.
- Fix README/CN/JA docs that claimed the panel auto-generates
  AI_MODELS_CONFIG (providers are merged at read time, not written).
- Add unit tests for corrupted-file value filtering and provider
  schema validation.
This commit is contained in:
dayuan.jiang
2026-06-12 11:34:11 +09:00
parent 3764b9b620
commit f96a0c5a18
15 changed files with 126 additions and 16 deletions

View File

@@ -228,7 +228,7 @@ npm run dev
1. 设置 `ADMIN_PASSWORD` 环境变量(不设置则面板禁用)。
2. 访问 `/admin` 并登录。
3. 在 Models 区块中添加提供商及其 API Key 和模型列表——交互与应用内的模型设置相同。保存后这些模型成为所有用户可用的服务端模型,凭证和 `AI_MODELS_CONFIG` 会自动生成
3. 在 Models 区块中添加提供商及其 API Key 和模型列表——交互与应用内的模型设置相同。保存后这些模型成为所有用户可用的服务端模型;它们存储在 `data/settings.json` 中,并在请求时与环境中的 `AI_MODELS_CONFIG` / `ai-models.json` 合并(面板不会修改这些环境文件)
4. 其余区块涵盖访问码、生成参数、功能开关、可观测性和配额。保存的设置会写入 `data/settings.json` 并立即生效,无需重启(少数设置如 Langfuse 和 DynamoDB 标记为"需要重启")。
优先级:面板中保存的设置覆盖环境变量,环境变量覆盖内置默认值。删除已保存的值会回退到环境变量。

View File

@@ -227,7 +227,7 @@ AWS BedrockとOpenRouter以外のすべてのプロバイダーはカスタム
1. `ADMIN_PASSWORD` 環境変数を設定します(未設定の場合、パネルは無効になります)。
2. `/admin` にアクセスしてサインインします。
3. Models セクションでプロバイダーの API キーとモデルリストを追加します — アプリ内のモデル設定と同じ UI です。保存するとそれらは全ユーザーが利用できるサーバーサイドモデルになり、認証情報と `AI_MODELS_CONFIG` は自動生成されます
3. Models セクションでプロバイダーの API キーとモデルリストを追加します — アプリ内のモデル設定と同じ UI です。保存するとそれらは全ユーザーが利用できるサーバーサイドモデルになります。`data/settings.json` に保存され、リクエスト時に環境の `AI_MODELS_CONFIG` / `ai-models.json` とマージされます(パネルがこれらの環境ファイルを変更することはありません)
4. その他のセクションはアクセスコード、生成パラメータ、機能、可観測性、クォータをカバーします。保存された設定は `data/settings.json` に書き込まれ、即座に反映されます — 再起動は不要ですLangfuse や DynamoDB など一部の設定は「再起動が必要」と表示されます)。
優先順位:パネルで保存された設定は環境変数を上書きし、環境変数は組み込みのデフォルト値を上書きします。保存した値を削除すると環境変数にフォールバックします。