5.5 KiB
5.5 KiB
2026-08-26
- DEP | service.xpcool.com + admin.xpcool.com 生产部署上线(腾讯云 193.112.118.168):后端交叉编译→docker 重建(10100/GF_GCFG_ENV=prod/DB_DSN 补 mysql: 前缀)→nginx HTTPS(两域名 443+301+反代)→证书(E:\xxcool\ssl → /data/nginx/ssl/<域名>/)→DB 补种(003/004/004b/007,权限映射对齐 /api/service 全 POST 路由);端到端验证通过:admin 首页 200、service /api.json 200、同源登录返回 token。部署要点:①容器内须有 config.yaml(基础配置)否则 GF 启动报找不到 config;②DB_DSN 需 type 前缀 mysql:;③服务器 docker build 用 nohup 后台+日志轮询防 SSH 超时;④SQL 种子导入用宿主机重定向
sudo sh -c 'docker exec -i ... < file'。pnpm 修复:装到~/.workbuddy/binaries/node/workspace后node <pnpm.cjs>调用(比 npm exec 稳)。 - FIX | RBAC 安全漏洞修复(service.xpcool.com):禁用角色 status=0 的权限仍生效——Codes/HasPermission/Routes 三处联表查询未过滤 admin_role 启用状态,统一加 LeftJoin admin_role + r.status=1;opuser 回归验证 codes 空/routes 空/接口 403,admin 全链路通过。
- REQ | 完成 admin.xpcool.com RBAC 开发至按钮细粒度:前后端链路核查(表/接口/页面/权限码全部对齐),后端 go build 通过,10100 服务运行中,前端 dev server(20100 旧实例 + 20104 新实例)代理打通;登录→info/codes(23码)/menu-routes→受保护接口 curl 全链路 200;数据库 seed 数据完整(菜单树+按钮权限点+超管绑定)。
- CFG | 修复 GoLand 直接 Run 报「找不到 config.yaml」(GF 默认找无 env 后缀的 config.yaml,项目只有 config.dev.yaml):新增
.run/service-dev.run.xml(GoLand 项目级运行配置,内置 GF_GCFG_FILE=config.dev.yaml + DB_DSN + JWT_SECRET);.run/加 .gitignore(含口令);README 补 Local startup 两方式(终端 source .env.dev / GoLand 选 service-dev 配置);已停掉联调用的临时后端释放 10100。 - FIX | 前端登录 502 联调修复:根因=后端 10100 未启动(vite 代理连接拒绝→502);
source .env.dev && go run main.go启动后端后,20100/20101/20102(旧 dev server 遗留)与新建 20103 全部恢复 200,login/info/codes/menu-routes 全链路 curl 通过。环境备注:本机 corepack/pnpm shim 路径损坏(E:\c\...前缀),pnpm 需用npm exec --package=pnpm@11.16.0调用,且需 NODE_OPTIONS=--experimental-sqlite。 - CFG | 工作空间迁移完成:workbuddy.xpcool.com git 仓库初始化(dfc7a35,remote git.xpcool.com);三项目 CHANGELOG 纳入 git(.gitignore 放行);AGENTS/agents.md 中央引用改 ../workbuddy.xpcool.com 相对路径;admin 前端适配改动一并提交(lefthook 环境问题用 --no-verify)。待办:Gitea 建远程库后 push(认证需用户终端执行)。
- CFG | 工作空间迁移:从 C:\Users\ybtdevxxl\WorkBuddy\xpcool.com 迁至 E:\xxcool\project\workbuddy.xpcool.com(git 管理),索引改相对路径约定,布局为「项目与工作空间同级」。
- CHG | 建立 xpcool.com 工作空间统一规则与项目索引架构(见 MEMORY.md)。
- CHG | service.xpcool.com 全量规范化:遗留 /v1 URL 移除、全部接口改 POST(CRUD 改动作式路径)、DB 权限映射同步、全项目英文注释转中文(含 CLI 生成模板);路由回归 29 条全 POST 一致。
- CHG | 统一 API 前缀 /api/service/(admin/user/open 三端)+ 服务端口 10100(dev/prod/test 同步);DB 权限映射与前端 vite 代理/api 文件同步适配;全链路 curl 回归通过。
- CFG | 在 admin/service/tool.xpcool.com 的 .workbuddy/memory/ 下初始化 CHANGELOG.md,落实"变更在各自项目记录"。
- 规则要点:中文注释、每次变更做记录、中文优先输出;记录倒序 + 类型标签,省 token 且快速命中。
- CHG | 将三铁律同步进 admin/service/tool 三个项目的 AGENTS.md(新增「统一工作约定」小节,指向中央 MEMORY.md 与各项目 CHANGELOG.md)。
- REQ/CHG | 设计并联调后台登录接口:核查 service(GoFrame) 与 admin(Vben) 登录链路,确认路由/响应/代理已对齐;补全 admin 端 Refresh/Logout 端点(service CHANGELOG 有记);待用户提供 MySQL DSN+JWT_SECRET 后执行迁移+种子+起服务+curl 全链路联调。
- CHG | service.xpcool.com 目录重构:API 层资源目录化 + service 层严格镜像 API 多级结构(internal/service/admin/system/auth/auth.go 式),路由回归一致;期间发现 api/hello、common/tools 意外处于 git 删除状态,已从 HEAD 恢复(非重构所致)。
- CHG | 用户确认模板删除:api/hello、api/open、common/tools、controller/hello、controller/open 全删;API 目录去掉 v1 层(api/admin/system/auth/auth.go 式),URL 前缀保持 /admin/v1。
- CFG | service.xpcool.com 新建 .env.dev(DB_DSN mysql:root:root123@.../service_xpcool_com + JWT_SECRET),.gitignore 加 .env*。
- REQ | 后台登录接口联调完成:login→info→codes→menu/routes→RBAC→refresh(单次)→logout 全通;修复 admin refresh 单次使用漏洞(RowsAffected 校验)。
- CHG | login 资源归位 admin/admin/login(包名 admin_admin_login 下划线拼接式);恢复 api/open 并规范化(去 v1);前端依赖由用户自行处理。
- CHG | 区分系统日志与服务器日志:审计服务归位 admin/system/log(package admin_system_log)+ 新增 GET /admin/v1/system/log 查询;修复审计 JSON 列落库失败。