feat: 独立运维控制台 (sundynix-admin) — LLM 模型配置控制面前端

新增独立 Vite+React 控制台(:5174),运维在此配置控制面,区别于桌面端构建者 UI。

- sundynix-admin: 模型页(列表[激活徽标/脱敏key] + 登记表单 + 测试连接 + 激活/删除)
  → 调 Gateway /api/v1/admin/models*;数据源/租户/护栏 占位(规划中);Gateway 健康灯
- gateway CORS 补 DELETE(控制台删除模型用)
- Makefile admin 目标(Vite :5174); .claude/launch.json 加 admin-console

验证: npm build✓; 真实浏览器跑通——控制台拉到真实模型列表, 填表→测试连接
✓连接成功(HTTP 200,browser→GW→mock), 保存→表格新增行。激活会经 NATS 热更新
Dispatcher(上一提交已证)。控制台↔控制面↔Dispatcher 全链路打通。

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
Blizzard
2026-06-10 15:54:01 +08:00
parent 3c65189f30
commit 6f5b98f186
16 changed files with 3085 additions and 3 deletions
+1 -1
View File
@@ -42,7 +42,7 @@ func New(db *store.Postgres, cache *store.Redis, bus *nats.Bus) *gin.Engine {
func cors() gin.HandlerFunc {
return func(c *gin.Context) {
c.Header("Access-Control-Allow-Origin", "*")
c.Header("Access-Control-Allow-Methods", "GET, POST, PUT, OPTIONS")
c.Header("Access-Control-Allow-Methods", "GET, POST, PUT, DELETE, OPTIONS")
c.Header("Access-Control-Allow-Headers", "Content-Type, X-User-ID, X-Session-ID")
if c.Request.Method == "OPTIONS" {
c.AbortWithStatus(204)