zhangwenjian
bb34108831
fix 🐛 : 移除 refresh_token 接口,修复 token 可无限续期问题
...
close #820
GET /api/v1/refresh_token 用业务 token 即可换取新 token,而续期上限
MaxRefresh 依据的 orig_iat 在每次续期时被一并重置,上限永远无法到达 ——
token 一旦泄露即等同于永久访问权,且无任何吊销手段。
该路由此前还位于 CasbinExclude 中,不受 Casbin 约束,任何角色的已登录用户
都可调用。
官方前端从未使用它:store 中虽有 refreshToken action,但全仓库无一处
dispatch,属死代码。移除不影响正常登录与鉴权流程。
破坏性变更:自行调用该端点实现续期的使用者需改为重新登录。正确的无感续期
应在 go-admin-core 中区分 access token 与 refresh token 后重新实现,不应
沿用此路由。
2026-08-14 21:42:52 +08:00
wenjianzhang
b7fd92f39b
Merge pull request #854 from go-admin-team/docs/agents-and-demo-module
...
feat✨ : 新增 app/demo 参照模块与 AGENTS.md 规范文档
2026-08-14 21:37:57 +08:00
zhangwenjian
63b800a3ba
docs 📝 : 补充 sqlite3 构建标签与迁移目录说明
...
driver 配置为 sqlite3 时不带 -tags sqlite3 会在 nil 函数上 panic,
报错不提及构建标签,容易误判为环境损坏;同时说明 version/ 与
version-local/ 的区别,后者已被 gitignore,提交到本仓库的迁移必须放 version/。
2026-08-14 21:17:37 +08:00
zhangwenjian
ed9450a2d5
feat ✨ : 补充 demo 模块的菜单与权限种子数据
...
一个业务模块要在界面上可用,需要四类数据协同:
sys_api 后端路由登记,Casbin 据此判定
sys_menu 侧边栏菜单,含目录 M、菜单 C、按钮 F 三级
sys_menu_api_rule 菜单与接口的关联,角色保存时据此生成策略
casbin_rule 实际生效的权限策略
菜单的 menu_name 与前端组件 name 保持一致(DemoProduct),按钮的
permission 与前端 v-permisaction 标识一致(demo:product:add 等)。
策略写入 casbin_rule 而非 sys_casbin_rule:后者对应的 models.CasbinRule
是历史遗留,其 7 列 size:512 唯一索引在 MySQL 下会超出索引长度限制,实际
生效的是 adapter 创建的 casbin_rule 表。
所有写入均为存在则更新、不存在则插入,迁移可安全地在已有数据的库上执行。
实测:在含 67 条菜单、121 条接口的库上执行后各表数据正确;清除版本记录重
跑一次,各表行数不变,确认幂等。
2026-08-14 16:57:55 +08:00
zhangwenjian
1d551a10ab
docs 📝 : 新增 AGENTS.md 与架构说明
...
AGENTS.md 是给 AI 编码工具与新贡献者的约定,只记录「不遵守就会出错」的
规则,技术栈版本与命令交由 go.mod 和 Makefile 表达,避免文档与代码脱节。
标准写法指向 app/demo/——那是可编译、有测试的参照物,文档与它冲突时以它
为准。
docs/architecture.md 承载不易从代码直接读出的语义:DataScope 五档的过滤
方式、定时任务的 JobExec 接口、多数据源约束、迁移目录的分工。
内容整理自此前未纳入版本控制的 CLAUDE.md,撰写时逐条对照代码核实,修正
了其中两处失效描述(构建工具已非 Vue CLI;JobExec 的方法是 Exec(interface{})
而非 Run(string))。CLAUDE.md 现改为指向 AGENTS.md 的软链,两者不再各自
漂移。
2026-08-14 16:49:48 +08:00
zhangwenjian
4d7c9e5a12
feat ✨ : 补充 demo 模块的建表迁移
...
放在 version/ 而非 version-local/:后者已被 .gitignore 忽略,是留给使用
者存放自身迁移脚本的位置,示例迁移需随框架一起分发。文件注释中说明了这
一区分。
2026-08-14 16:46:53 +08:00
zhangwenjian
d1f5fe5681
feat ✨ : 新增 app/demo 标准 CRUD 参照模块
...
作为编码约定的可执行参照物:文档会滞后,而这个模块过时会导致构建或测试
失败,因此以它为准。
目录骨架与自动注册文件由项目自带的脚手架生成:
go run main.go app -n demo
它同时产出 cmd/api/demo.go,其中的 init() 将路由追加进 AppRouters,
无需在任何中心文件手工登记。
模块本身演示了单表 CRUD 的推荐写法——直接使用 common/actions 提供的五个
通用 Action,因此只有 model、dto、router 三个业务文件,没有 apis 与
service。手写 Handler 的场景仅在业务超出单表 CRUD 时才需要。
DTO 中详情/删除入参内嵌 dto.ObjectById 以复用其 Bind 与 GetId,不重复
实现 uri 绑定与批量 ids 合并逻辑。
补充 8 项测试锁定通用 Action 的接口约束,其中最关键的是 Generate() 必须
返回副本——Action 在并发请求间复用实例,就地返回会串数据。反向验证:将
Generate 改为就地返回,测试立即失败。
2026-08-14 16:46:09 +08:00
zhangwenjian
e8c2e0a966
chore 🔧 : 修正 .DS_Store 忽略规则
...
原规则 `*/.DS_Store` 只匹配子目录一层,仓库根目录下的 .DS_Store 不在其
中。改为 `.DS_Store`,匹配任意层级。
2026-08-14 16:45:55 +08:00
wenjianzhang
cef0a19a9c
Merge pull request #853 from go-admin-team/fix/community-pr-batch
...
fix🐛 : 处理社区 PR 中仍然成立的四项修复
2026-08-14 15:46:43 +08:00
zhangwenjian
c0e81363dc
docs 📝 : 修正 Makefile 注释错别字
...
「实际决对路径」→「实际绝对路径」。
问题由 PR #847 指出。
2026-08-14 15:35:55 +08:00
zhangwenjian
df2e4a2b48
fix 🐛 : 修正欢迎页 iframe 高度塌陷
...
页面通过 JS 计算并设置 iframe 高度,但 html 与 body 未声明高度,
百分比高度失去参照,iframe 在部分场景下塌陷为 0。
补充 html,body{height:100%} 与 iframe 的 height:100%,并为原先缺失的
overflow-y 声明补上分号。
问题由 PR #829 指出。
2026-08-14 15:35:55 +08:00
zhangwenjian
9088ebc2e1
refactor 🎨 : 修正文件名拼写 int_router.go → init_router.go
...
该文件内容为 init() 函数中的路由注册,原文件名少了一个字母。
问题由 PR #787 指出。
2026-08-14 15:35:55 +08:00
zhangwenjian
9f2dec3036
fix 🐛 : 修正 GeneralDelDto.GetIds 重复追加 Id
...
该方法先在开头追加了 Id,随后 else 分支中又追加一次:仅传 Id 时返回
[5 5],删除接口会对同一条记录执行两次 DELETE。
if g.Id != 0 { ids = append(ids, g.Id) }
if len(g.Ids) > 0 { ... } else {
if g.Id > 0 { ids = append(ids, g.Id) } // 重复
}
去掉冗余分支,同时将首个判断由 != 0 收紧为 > 0,与 Ids 中逐个元素的
过滤条件保持一致(负数 Id 无意义)。
补充单元测试,覆盖仅 Id、仅 Ids、二者并存、含非正数、全空回退等场景。
问题由 PR #848 指出。
2026-08-14 15:35:55 +08:00
wenjianzhang
ea049f9b06
Merge pull request #852 from go-admin-team/fix/ci-deploy-guard
...
fix🐛 : 限制部署步骤仅在 master 收到 push 时执行
2026-08-12 15:41:26 +08:00
zhangwenjian
1f1349a685
docs 📝 : 更新在线体验地址
...
Element UI vue2 演示站已升级为 Element Plus + Vue 3,域名同步更换为
vue.go-admin.pro。
Arco Design vue3 演示站(vue3.go-admin.dev)已下线,移除对应条目。
2026-08-12 12:27:41 +08:00
zhangwenjian
dcef2df38e
fix 🐛 : 限制部署步骤仅在 master 收到 push 时执行
...
本工作流同时由 push 与 pull_request 触发,而推送镜像与重启服务两步没有
任何事件限制。其后果是:任何指向 master 的 PR 一经创建,就会把 PR 分支
构建出的镜像推送到镜像仓库,并 docker rm -f 掉线上容器、用该镜像重新启
动 API 服务——发生在代码被审查和合并之前。
同仓库分支发起的 PR 可以取到 secrets,因此该路径实际可达;历史运行记录
中已多次出现由 pull_request 事件触发的成功部署。
为两步加上 event_name 与 ref 双重判断。额外判断 ref 是考虑到日后若有人
向 on.push.branches 追加分支,部署不会随之扩散。
Tidy 与 Build 不受影响,PR 仍会执行编译校验。
2026-08-12 12:27:33 +08:00
zhangwenjian
92834d6e39
publish 🚀 : 版本号更新至 2.3.0
v2.3.0
2026-08-12 00:22:31 +08:00
zhangwenjian
f06540883b
fix 🐛 : 修复 Docker 镜像发布的 tag 条件失效问题
...
if 表达式中不应使用 ${{ }} 包裹:startsWith(${{github.ref}}, 'refs/tags/')
会先将 github.ref 替换为裸字符串再参与表达式求值,导致条件判断失效,
使得每次 push 到 master 都会构建并推送镜像至 ghcr.io,而非仅在打 tag 时发布。
同时 on.push 缺少 tags 配置,打 tag 实际不会触发该工作流。
修正后:push 分支仅执行 Go 构建,打 tag 才发布镜像。
2026-08-11 11:09:39 +08:00
zhangwenjian
3c9ce5b6b0
chore 🔧 : 升级 x/image 修复 TIFF 解码漏洞
2026-08-10 22:17:28 +08:00
zhangwenjian
ff8a59550a
fix 🐛 : 修复镜像同步因浅克隆被拒绝的问题
2026-08-10 21:21:01 +08:00
zhangwenjian
7cddef33a2
git 🙈 : 将 go.sum 纳入版本控制
2026-08-10 20:51:00 +08:00
zhangwenjian
7013c2fa4a
chore 🔧 : 移除依赖已封禁 action 的 issue 自动化流程
2026-08-10 20:51:00 +08:00
zhangwenjian
65bacacb38
docs 📝 : 更新 README 环境要求版本说明
2026-08-10 20:45:39 +08:00
zhangwenjian
45587028c3
config 🔧 : CI 升级 Go 版本并更新 Actions 至最新
2026-08-10 20:45:39 +08:00
zhangwenjian
887c9cca4b
chore 🔧 : 升级 Go 至 1.26.5 并同步升级依赖
2026-08-10 20:45:36 +08:00
wenjianzhang
a6ddb113fc
Update LICENSE.md
2026-08-08 13:55:08 +08:00
wenjianzhang
b83eef8670
Fix image source in README.md
...
Updated image source in README.md for go-admin.
2026-05-22 11:20:39 +08:00
zhangwenjian
43dcd61c51
config 🔧 : update go-version to 1.24 in build workflow
...
go.mod requires go 1.24, go mod tidy fails when runner uses 1.18.
2026-05-15 17:52:12 +08:00
zhangwenjian
1bd64d4562
config 🔧 : pin all GitHub Actions to full-length commit SHAs
...
Replace version tags (@v1/@v2/@v3/@master) with pinned commit SHAs
across all workflow files to satisfy go-admin-team organization
security policy requiring immutable action references.
2026-05-15 17:48:41 +08:00
zhangwenjian
44e81bc72f
git 🙈 : 补充忽略本地开发配置文件
...
- 新增忽略 config/settings.local.dev.yml
2026-05-15 17:37:42 +08:00
zhangwenjian
3312f8b7b9
chore 🔧 : 升级依赖 mergo 模块路径
...
- 替换 github.com/imdario/mergo 为上游迁移后的 dario.cat/mergo v1.0.1
2026-05-15 17:37:42 +08:00
zhangwenjian
d6a2272f9d
git 🙈 : 完善 .gitignore 忽略规则
...
- 新增忽略编译产物 go-admin-server
- 新增忽略本地工具配置目录
2026-05-15 17:37:42 +08:00
wenjianzhang
a5cc0a9e29
Add read and write timeout to HTTP server
2025-09-10 09:39:54 +08:00
wenjianzhang
3f995735e9
Merge pull request #834 from hosea3000/edit-no-confirm
...
点击编辑的时候不需要弹框确认,交互不太友好
2025-05-20 11:41:02 +08:00
wenjianzhang
b65b74dee5
Merge pull request #832 from hosea3000/fix-number-input
...
fix🐛 : 修复自动生成代码时选择字段类型为int64, 前端提交还是string 导致报错的问题
2025-05-20 11:40:21 +08:00
Hosea
98cf3ad95a
fix 🐛 : 点击编辑的时候不需要弹框确认,交互不友好
2025-05-20 10:57:36 +08:00
Hosea
8649d8d791
fix 🐛 : 修复自动生成代码时选择字段类型为int64, 前端提交还是string 导致报错的问题
2025-05-13 15:48:45 +08:00
wenjianzhang
817e34c6aa
refactor 🎨 : 重构文件上传逻辑,拆分处理函数以提高可读性和维护性
2025-04-13 22:20:06 +08:00
wenjianzhang
952cd92648
refactor 🎨 : 清理 sys_server_monitor.go 文件,移除未使用的导入并格式化代码
2025-04-13 22:17:17 +08:00
wenjianzhang
6b1e961a7f
refactor 🎨 : 重构系统监控代码,拆分功能为多个函数以提高可读性和维护性
2025-04-13 22:15:10 +08:00
wenjianzhang
762eba5af7
refactor 🎨 : 重构 Setup 函数,拆分为多个子函数以提高可读性和维护性
2025-04-13 22:04:12 +08:00
wenjianzhang
e82128f679
refactor 🎨 : 优化获取客户端 IP 的逻辑,增加对 X-Forwarded-For 和 X-Real-IP 的处理
2025-04-13 22:00:04 +08:00
wenjianzhang
8f8a197db1
delete 🎉 : 移除示例代码 run.go
v2.2.0
2025-04-08 20:49:36 +08:00
wenjianzhang
364854eda0
docs 📝 : 更新 go-admin 版本号至 2.2.0
2025-04-08 20:49:29 +08:00
wenjianzhang
b259e91f4d
Merge remote-tracking branch 'origin/master'
...
# Conflicts:
# go.mod
2025-04-08 20:45:25 +08:00
wenjianzhang
76411f80bc
refactor 🎨 : 优化日志记录方式,统一使用 log.Info 替代 log.Println
2025-04-08 20:30:35 +08:00
wenjianzhang
5494353229
fix 🐛 : 修复获取本地主机IP的函数调用错误
2025-04-08 20:30:24 +08:00
wenjianzhang
afe5efbe36
refactor 🎨 : remove unused distributed lock setup code in initialize.go
2025-04-08 20:30:05 +08:00
wenjianzhang
db422785fc
fix 🐛 : include captcha answer in GenerateCaptchaHandler for improved logging
2025-04-08 20:29:38 +08:00
wenjianzhang
4ac68323da
fix: improve error logging in jobbase.go for better clarity
2025-04-08 20:23:23 +08:00