Agent 开发计划及完成状态
码不停提
根据开发需求,AI 自己制定开发计划,并将完成状态更新回文档
码不停提
根据开发需求,AI 自己制定开发计划,并将完成状态更新回文档
本项目要求使用 Go 语言开发;目前已经建好了的数据表,初始数据表结构,可查看 /docs/sql/database.sql
./console 工程骨架(Vue3 + Vite + TS + Pinia + ElementPlus + Tailwind)/api 路径策略落地:Vite proxy + Nginx 示例配置(见 ./nginx/console.conf.example)围绕后台 console 落地,补齐“用户管理”能力:
group=system 和 group=project 用户(分页 page/page_size)mobile / display_name / statusmobile / display_name(不允许修改 status)围绕“后台账号安全 + project 用户后台能力 + 列表体验”,进行以下增量:
[x] 后台账号 2FA(不引入 pending 状态)
ADMIN_TOTP_ISSUER 配置项(用于后台账号 otpauth issuer)is_active=0,保留 secret 可复启)[x] 列表分页统一
data 数组 + paging 对象(page/page_size/total)page/page_size 并按分页返回page/page_size 并按分页返回[x] Projects 列表增强与启停
display_name[x] Project user 登录与权限收敛
[x] 用户管理规则调整
status[x] Project User Identifiers 列表
project_user_identifiers + project_user_credentialsis_active/last_used_at/created_atproject_id/email/mobile/is_active + 分页围绕“open API 访问可观测性 + 运维便利”,增加 API 访问日志列表与自动清理:
[x] Admin API:open API 访问日志列表
GET /admin/v1/api_call/logs(仅 /open/v1/* 调用)page/page_size(与 audit logs 对齐)project_id/api_key/status_code/method/path/ip/since/until[x] 数据保留:保留最近 30 天(服务内 ticker 清理)
API_CALL_LOG_RETENTION_DAYS(默认 30)API_CALL_LOG_CLEANUP_INTERVAL(默认 1h,Go duration,例如 10m/1h/24h)API_CALL_LOG_CLEANUP_BATCH_SIZE(默认 2000)[x] SQL:补索引
docs/sql/migrations/20260127_add_api_call_logs_indexes.sqldocs/sql/database.sql围绕“后台账号信息 + 修改/重置密码 + 强制改密”,增加以下能力:
email/display_name/mobile/must_change_passwordPATCH /admin/v1/me/password)password_changed_at,使旧 token 失效POST /admin/v1/users/{id}/reset_password)must_change_password=1,并更新 password_changed_atcode=MUST_CHANGE_PASSWORD)docs/admin-api.mddocs/sql/migrations/20260127_add_user_password_policies.sql;全量脚本同步 docs/sql/database.sql)围绕“Dashboard 监控(角色隔离)+ ECharts 可视化”,增加以下能力:
[x] Admin API:open API 调用统计(Dashboard 数据源)
GET /admin/v1/api_call/stats/summarysince/until(RFC3339;默认最近 24h)project_id(可选)GET /admin/v1/api_call/stats/timeseriessince/until(RFC3339;默认最近 24h)bucket(默认 5m;allowlist:1m|5m|15m|1h|24h)project_id(可选)GET /admin/v1/api_call/stats/by_projectsince/until(RFC3339;默认最近 24h)limit(默认 10;最大 50)GET /admin/v1/api_call/stats/by_endpointproject_id(必填)since/until、limit(默认 10;最大 50)[x] 权限边界(后端强制)
project_id 过滤[x] 文档同步更新
docs/admin-api.md 补齐 /admin/v1/api_call/stats/* 统计接口说明与示例[x] Console:Dashboard 页面 + ECharts
/dashboard)echarts + vue-echarts)并封装通用组件html.dark 切换图表主题/重建围绕“Project API Key 可读性 + 鉴权错误返回一致性 + 控制台体验”,增加以下能力:
[x] Project api_key 缩短(仍保证唯一)
projects.api_key 改为 17 位:16 位 payload + 1 位校验位ABCDEFGHJKMNPQRSTUVWXYZ23456789(不包含 0/1/I/L/O)4-4-4-4-1 分组uk_api_key 唯一冲突做有限重试[x] Open API 鉴权(OpenAuth)错误响应 JSON 化
http.Error 纯文本错误改为 JSON:{"ok":false,"message":"..."}api_key 格式与校验位(不兼容旧 key;开发阶段可清库)[x] Console 体验优化
4-4-4-4-1 分组展示api_secret 仅显示一次,遗失只能重置围绕“控制台内置 API 文档页(暗黑模式 + 语法高亮 + 复制 + TOC)”,增加以下能力:
[x] Admin API:提供开放接口文档获取接口
GET /admin/v1/docs/open-api,返回 markdown 内容(用于控制台渲染)docs/admin-api.md[x] Console:新增“API Document”页面
html.dark)console/package.json 要求 Node >= 20.19.0)。service 目录执行 go test ./... / go run ./cmd/serverconsole 目录执行 pnpm install / pnpm dev暂无目录