开发者控制台

目标读者:使用本地 Alpha 控制台创建项目、邀请成员、查看玩家反馈的开发者。

开发者控制台运行在 http://localhost:4173,默认连接 http://localhost:4100 的 admin API。公开根路由是产品 Landing 页面;登录后的路由提供真实操作台。

账号须先验证邮箱才能访问组织与项目。JWT 绑定真实服务端会话;普通退出撤销当前会话,全部退出、改密、重置、禁用和注销撤销对应的全部会话。旧 Alpha 身份和数据不迁移。恢复、注销、SMTP 和数据保留边界见账号与安全

最小示例

cd ../echo-nebula-infra
./scripts/e2e-all.sh
open http://localhost:4173

使用 Developer A 注册、验证邮箱并登录,创建组织、项目和 project key。在团队区域邀请 Developer B,复制邀请 token,然后以 Developer B 登录并接受该 token。Developer C 不应看到 A 的项目或反馈。

组织 owner 可以在组织面板修改成员角色或移除成员;admin 只能管理非 owner 成员。界面会保护最后一名 owner,等待服务端确认后才更新角色 badge,并通过行内两步确认执行移除。移除组织成员关系不会撤销直接项目访问。

组织详情设置

打开 /orgs/{organization_id} 可以查看组织标识并修改显示名称。拥有 owneradmin 角色的成员可以编辑名称;developerqaviewer 成员通过只读设置摘要看到相同的服务端确认值,不会出现编辑表单。system_admin 账号本身不获得 tenant 编辑权限,除非它同时显式拥有 owneradmin membership。组织 ID、当前角色和 slug 始终只读,修改名称不会改变 ID 或 slug。

Console 会按原始草稿检查 120 个 Unicode code point 上限,再去除首尾空白并拒绝规范化后的空名称;规范化草稿没有变化时,保存按钮不可用。保存只发送 { "name": ... },放弃修改会恢复最后一次服务端确认的组织。页面不会乐观更新摘要,只有 API 返回包含相同不可变标识字段的有效完整 Organization 响应后才接受变更。名称可以与其他组织相同。

项目详情设置

打开 /projects/{project_id} 可以查看项目标识与设置。组织 owner/admin 或直接项目 admin 可以修改项目名称、SDK 默认语言、默认环境和五项 SDK feature gate;developer、QA 和 viewer 看到同一份服务端确认值,但只能读取。项目 ID、当前角色和 slug 始终只读,修改名称不会改变 slug。

Console 会去除名称和环境草稿的首尾空白,校验精确的 zh-CNenja,并在规范化草稿没有变更时禁用保存。请求只发送有变化的顶层字段;只要任一 feature toggle 改变,就发送包含 screenshotrecent_logsbreadcrumbsoffline_queuecontact 的完整对象。放弃修改会恢复最后一次服务端确认的项目;保存后也只在 API 返回有效完整 Project 响应时更新摘要。SDK 默认语言影响 SDK/玩家反馈面板内容,不会改变 Console UI 语言。

项目 feature gate 只定义项目允许提供什么能力,不等于玩家同意。启用截图、最近日志或联系方式不会预选或记录 consent。每次新打开反馈面板时,截图、最近日志和隐私确认都保持未勾选;只有玩家在本次提交中明确填写联系方式时才会包含 contact。每条 report 都保存自己的 consent 快照。breadcrumbsoffline_queue 是项目能力,不是新增 consent 字段。

列表分页

反馈列表以每页 50 条请求真实 API,并显示当前范围与 total。上一页和下一页按钮根据 offsethas_more 启用;改变项目、状态、类别或搜索词时会回到 offset=0。如果并发数据或筛选变化使当前 offset 超出结果范围,Console 会请求最后一个有效页,而不是展示永久空白页。

其余当前管理界面需要完整上下文的集合会自动沿 has_more 聚合所有页,包括组织成员/邀请、项目成员/邀请/keys,以及反馈详情的附件/评论。每一页仍必须是精确的 { items, offset, limit, total, has_more },且所有页的 total 必须一致;畸形或漂移响应不会作为有效数据合并。组织与项目导航来自不分页的 Developer Graph,不会把第一批 50 条误当成完整导航图。

常见错误

下一步

运行 Admin API 示例,并和控制台流程对照。