特殊接口 - 平台基础

查首页导航/菜单接口、个人信息读写、我的项目组列表、审批同意拒绝撤销与资源提额申请接口时

06-二次开发 / API参考
navbarmenu导航菜单userinfo用户信息my project项目组approval审批apply_quota资源提额feature check弹窗

平台基础特殊接口

涵盖首页导航/菜单(/myapp)、用户信息(/userinfo/api)、项目组(/project_modelview/api)、审批管理(/approval_modelview/api)。

菜单 /myapp/menu 与右侧导航 /myapp/navbar_right 的完整返回体结构另见 菜单与导航接口

首页导航 /myapp

代码文件:myapp/views/home.pyroute_base = '/myapp'

顶部右侧导航

GET  /myapp/navbar_right

无需参数。返回右上角导航按钮列表(文档、反馈等)。受配置 DOCUMENTATION_URLBUG_REPORT_URL 控制;如配置了 NAVBAR_RIGHT 则直接返回该配置。

响应示例:

[
  {"icon": "<svg>...</svg>", "link": "https://github.com/data-infra/cube-studio/wiki"},
  {"icon": "<svg>...</svg>", "link": "<BUG_REPORT_URL>"}
]

说明:每项为 {icon, link}(文档按钮无 text 字段)。

左侧平台导航栏

GET  /myapp/navbar_left

无需参数。返回平台切换导航列表(取自配置 NAVBAR_LEFT,默认空数组时前端不渲染)。

响应示例:

[
  {"icon": "🚀", "text": "小模型训推", "link": "/frontend/"},
  {"icon": "📊", "text": "平台二", "link": "/platform2/"}
]

底部智能助手按钮

GET  /myapp/navbar_bottom

无需参数。返回 AI 助手入口配置,需后端配置 AI_ASSISTANT_URL(默认 /claude/,见 myapp/config.py:848)。

响应示例:

[
  {"title": "AI智能客服", "icon": "<svg>...</svg>", "url": "/claude/"}
]

顶部菜单 + 侧边子菜单

GET  /myapp/menu
参数 类型 必填 说明
is_admin bool 是否返回管理员菜单(默认根据当前用户 g.user.is_admin() 自动判定)

返回层级菜单结构,根据用户角色、多租户权限动态过滤。节点 menu_type 取值:api / innerRoute / out_link / iframe(见 home.py)。

响应示例:

[
  {
    "name": "group",
    "title": "项目空间",
    "isExpand": false,
    "isMenu": true,
    "icon": "<svg>...</svg>",
    "children": [
      {"name": "project_group", "title": "项目组", "children": [...]}
    ]
  }
]

页面弹窗检查

GET  /myapp/feature/check
参数 类型 必填 说明
url string 当前页面 URL

根据当前页面路由返回弹窗提示内容(如新功能引导、告警信息)。

响应示例:

{
  "title": "弹窗标题",
  "content": "弹窗内容(支持HTML)",
  "type": "html",
  "delay": 30000,
  "hit": false,
  "target": "/frontend/..."
}

用户信息 /userinfo

代码文件:myapp/views/view_user_role.pyroute_base = '/userinfo/api'

查看/编辑个人信息

GET   /userinfo/api/current/userinfo    # 查看
POST  /userinfo/api/current/userinfo    # 编辑

GET 响应示例:

{
  "username": "user1",
  "email": "user@example.com",
  "nickname": "用户一",
  "roles": "role1,role2",
  "active": true,
  "org": "org1",
  "quota": "all,jupyter,cpu,10",
  "secret": "api-key-xyz",
  "balance": 100.5,
  "created_on": "2024-01-01T00:00:00",
  "changed_on": "2024-05-20T00:00:00",
  "wechat": "wechat-handle",
  "is_admin": true,
  "is_system": false,
  "org_projects": [
    {"name": "project1", "describe": "描述", "id": 1, "users": {"user1": {"id": 1}}}
  ],
  "projects": [
    {"name": "project1", "describe": "描述", "id": 1, "role": "dev"}
  ]
}

POST 请求体(JSON):

{
  "username": "user1",
  "password": "新密码(可选)",
  "email": "new@example.com",
  "nickname": "新昵称",
  "wechat": "wechat-handle",
  "org": "org1"
}

POST 响应:

{"status": 0, "message": "修正完成", "result": {}}

说明: username 和 email 不能与系统中其他用户重复。密码字段如果传入,会自动 hash 后存储。


项目组 /project_modelview

代码文件:myapp/views/view_team.pyroute_base = '/project_modelview/api'

我有权限的项目组

GET  /project_modelview/api/my/project

无需参数。返回当前用户有权限的项目组列表。

响应示例:

[
  {"name": "project1", "id": 1, "describe": "项目描述", "role": "admin"}
]

说明:

  • 全局管理员:返回所有 org 类型项目
  • 组织管理员(多租户):返回组织内成员创建的项目
  • 普通用户:仅返回通过 Project_User 加入的项目
  • role 字段可选值:admincreatordevopsauditor

审批管理 /approval_modelview

代码文件:myapp/views/view_approval.pyroute_base = '/approval_modelview/api'

审批:同意或拒绝

POST  /approval_modelview/api/approve/<approval_id>
参数 位置 类型 说明
approval_id path int 审批记录 ID
action body string approvereject
comment body string 审批意见

响应:

{"status": 0, "message": "ok", "result": {"id": 123, "result": "passed"}}

错误响应:

{"status": 1, "message": "错误原因"}

说明: 当前用户必须在该审批当前阶段的审批人列表中。

审批:申请人撤销

POST  /approval_modelview/api/cancel/<approval_id>
参数 位置 类型 说明
approval_id path int 审批记录 ID

响应:

{"status": 0, "message": "ok", "result": {"id": 123, "result": "cancelled"}}

说明: 仅审批申请人或管理员可撤销。

待我审批列表

GET  /approval_modelview/api/my_pending

无需参数。返回当前用户需要审批的待处理项(最近 200 条,按 id 降序)。

响应:

{
  "status": 0,
  "message": "ok",
  "result": [
    {
      "id": 123,
      "req_type": "resource_increase",
      "label": "资源提额 project=1",
      "applicant": "user1",
      "stage": "项目组负责人审批"
    }
  ]
}

申请资源提额

GET/POST  /approval_modelview/api/apply_quota/<project_id>
参数 位置 类型 说明
project_id path int 项目组 ID
quota query/body string 申请的资源配额
reason query/body string 申请原因

响应: 302 重定向到 /frontend/group/notifications/approval?id={approval_id}

说明: 自动创建审批流程,审批人为项目组创建者。

最后更新 2026-06-30完整文档以官方仓库为准:GitHub Wiki