Skip to content

Releases: SuperiorChuo/gopherforge

v0.3.0

Choose a tag to compare

@github-actions github-actions released this 26 Jul 03:59

新增

  • 官方镜像双架构(同步自主项目):release.yml 补 QEMU,platforms
    linux/arm64——arm64 云机与 Apple Silicon 自本版起可直接拉官方镜像部署,
    不再被迫本地构建(代价是发版构建时长约翻倍)。
  • 审计日志保留策略(同步自主项目):AUDIT_LOG_RETENTION_DAYS 按天数周期
    自动清理操作/登录日志(默认 0=关闭,绝不隐式删数据;audit_logs 是合规取证
    面,刻意不在自动清理范围)。后台任务没有租户上下文,直接走既有清理链路会
    回落默认租户漏删其余租户——DAO 为此新增显式命名的跨租户方法(保留策略专用,
    租户闸门本身不动);每轮经 jobbeat 上报任务中心心跳(audit.log_retention),
    失败标 error。

安全

  • grpc 升至 1.82.1(同步自主项目):消除 GHSA-hrxh-6v49-42gf(HIGH,xDS
    RBAC 与 HTTP/2 漏洞),6 个模块的 indirect 依赖统一升级。govulncheck 判定
    漏洞符号不可达,但 trivy 门禁按设计拦截"有修复版的 HIGH",升级后 PR 的
    CI 全部解堵。
  • bpm 依赖升级:x/crypto 0.54、x/net 0.56(同步自主项目):消除 2026-07-25
    当天新披露的 ssh/agent/knownhosts(CVE-2026-39828 等,含未授权命令执行)与
    x/net html/idna 系列 HIGH——bpm 是仓内唯一低于修复线的模块,其余本就 ≥0.52/0.55。
  • bpm 弱凭据名单对齐 auth/monitor 口径(同步自主项目):补齐 aws/access-key
    系 8 个条目与 minioadmin/secret-key/secretkey,并新增 dev- 前缀兜底
    ——生产环境下 dev-xxx 形态的 token 一律视为占位符,经 sanitize 归零后由
    使用点 fail closed(此前只逐个枚举,换个名字就漏)。

文档

  • 文档站充实:RBAC / 多租户 / 审批流 / 代码生成器四个模块页扩写为操作走查级
    ——接口与权限码速查表、数据范围六档、任务动作约束、Excel 导入导出、套餐约束
    语义、类型映射等,事实均自代码提取;顺带修正两处与实现不符的旧描述(代码
    生成器并无「组件类型」可配,控件按列类型自动推断;产物为 model/store/handlers/
    routes,无独立 service 层)。新增「审计日志」模块页、「常见问题 FAQ」与
    「版本升级」(含 0.1.0→0.2.0 注意事项)三个页面。中英两条线同步更新。
  • 部署文档跟上 v0.2.0:生产部署页(website 与 docs/deployment.md 同源)新增
    「方式 A · 拉官方 ghcr 镜像」(IMAGE_PREFIX/IMAGE_TAG 用法、amd64-only 说明),
    升级/回滚章节改为镜像版本切换优先;中英首页与部署页版本口径更新为 v0.2.0

镜像

本次共 8 个镜像,每个都带 v0.3.0sha-14ceb00 两个 tag(正式版另更新 latest):

  • ghcr.io/superiorchuo/gopherforge/go-admin-kit-audit-service:v0.3.0
  • ghcr.io/superiorchuo/gopherforge/go-admin-kit-auth-service:v0.3.0
  • ghcr.io/superiorchuo/gopherforge/go-admin-kit-bpm-service:v0.3.0
  • ghcr.io/superiorchuo/gopherforge/go-admin-kit-file-service:v0.3.0
  • ghcr.io/superiorchuo/gopherforge/go-admin-kit-frontend:v0.3.0
  • ghcr.io/superiorchuo/gopherforge/go-admin-kit-identity-service:v0.3.0
  • ghcr.io/superiorchuo/gopherforge/go-admin-kit-monitor-service:v0.3.0
  • ghcr.io/superiorchuo/gopherforge/go-admin-kit-system-service:v0.3.0

部署(compose)

cd microservices
# 写进 microservices/.env,或直接前置到命令上
export IMAGE_PREFIX=ghcr.io/superiorchuo/gopherforge/go-admin-kit
export IMAGE_TAG=v0.3.0
# 有状态服务在独立 infra 栈,先起它(数据不随应用栈重建)
docker compose -p go-admin-kit-infra -f docker-compose.infra.yml up -d
# 应用栈:拉版本化镜像后直接起,不本地构建
docker compose -f docker-compose.yml pull
docker compose -f docker-compose.yml up -d --no-build

不设 IMAGE_PREFIX / IMAGE_TAG 时,compose 仍解析为本地构建的
go-admin-kit-<服务名>:latest,行为与发版前一致。

v0.2.0

Choose a tag to compare

@github-actions github-actions released this 25 Jul 18:06

新增(工程化)

  • 发布流程与供应链扫描(同步自主项目):新增 release.yml(tag v* 触发 →
    SemVer 与 CHANGELOG 门禁 → Go/前端/契约三条门禁 → 8 个镜像推 ghcr.io →
    建 GitHub Release;镜像双 tag vX.Y.Z + sha-<7位>latest 仅非预发布时更新,
    服务清单由 docker compose config --format json 现算而非硬编码)、
    security-scan.yml(govulncheck 按模块跑,第三方符号级可达才阻断、stdlib 与
    非符号级只告警;trivy 只对 HIGH/CRITICAL 且上游已有修复版本阻断)、
    dependabot.yml(gomod / npm / github-actions / docker,weekly)。
    trivy 刻意不用 aquasecurity/trivy-action——2026-03 该 action 的 76 个 tag 曾被
    强推为窃取 runner secret 的恶意版本,改跑固定版本官方镜像。
  • 镜像名版本化:compose 里每个可构建服务显式声明
    ${IMAGE_PREFIX:-go-admin-kit}-<服务名>:${IMAGE_TAG:-latest},两变量都不设时
    与旧推导名完全一致(本机开发 / CI bake / ops 脚本零改动)。
  • CI 补 shared-modulebpm-service 两个门禁shared 是 8 个服务共用的
    公共库(metrics/logger/response/jobbeat/mask/iploc),改坏了全线崩却一直没有门禁。
  • CI 的 Go 版本抽成顶层 env.GO_VERSION,升版本只改一处;setup-buildx-action
    upload-artifact 同步升到当前主版本(后者 v4 已是 Node 20 弃用线)。

安全

  • Go 工具链升 1.26.5(同步自主项目):go.work 与 9 个模块加 toolchain go1.26.5
    刻意不抬高 go 语言版本指令——那是使用者的最低要求,抬高会强迫下游全部升级,
    而消除 stdlib 漏洞只需用新工具链编译。实测 govulncheck 在 services/shared
    由 3 条 stdlib 符号级可达降为 0 条(crypto/tls 需 1.26.5,1.26.4 不够)。
  • bpm 生产配置强校验APP_ENV=productionJWT_SECRET(<32 位或占位符)与
    DB_PASSWORD(空/弱值)拒绝启动;其余内部 token 不阻断启动,改为在使用点
    fail closed 并打 WARNING——BPM_INTERNAL_TOKEN 缺失或为占位符时 /internal
    端点一律 503,绝不拿公开的开发占位符当真凭据校验。占位符判定用 dev- 前缀兜底。
  • 清掉 compose 中 alertmanager 的 NOTIFY_INTERNAL_TOKEN 开发占位符默认值,
    让"没配"就是没配,不再静默注入一个人尽皆知的 token。

修复

  • 认证与监控契约:加固刷新协调并完善 OpenAPI 生成链路(即 v0.2.0-rc.2 的候选期修复)。

文档

  • 文档站新增「更新日志」页(中英各一个导航入口),经 @include 直读仓库根
    CHANGELOG.md——与 release.yml 抽取的 Release notes 同一来源,发版后
    GitHub Release、文档站、仓库三处日志天然一致,无需维护第二份。
  • CONTRIBUTING.md 技术栈订正 Go + Vue → React;启动流程改为 make compose-up
    (数据栈在独立 infra compose,只起应用栈会失败);移除仓库内不存在的 monolith/ 引用。
  • SECURITY.mdMYSQL_ROOT_PASSWORDDB_PASSWORD、MySQL → PostgreSQL;
    新增「已知边界」显式声明未实现 CSRF 防护(纯 Bearer + SPA,改用 cookie 承载
    token 需自行补齐);补生产自校验的分服务准确口径。
  • 新增 CODE_OF_CONDUCT.md(Contributor Covenant v2.1 中文版)。
  • README 中英两版:服务数订正为 7 个 Go 服务进程,补行为准则与收录范围链接。

0.2.0 正式版相对 0.1.0 的完整范围 = 本段落 + 下方 [0.2.0-rc.1] 段落。

镜像

本次共 8 个镜像,每个都带 v0.2.0sha-41a7654 两个 tag(正式版另更新 latest):

  • ghcr.io/superiorchuo/gopherforge/go-admin-kit-audit-service:v0.2.0
  • ghcr.io/superiorchuo/gopherforge/go-admin-kit-auth-service:v0.2.0
  • ghcr.io/superiorchuo/gopherforge/go-admin-kit-bpm-service:v0.2.0
  • ghcr.io/superiorchuo/gopherforge/go-admin-kit-file-service:v0.2.0
  • ghcr.io/superiorchuo/gopherforge/go-admin-kit-frontend:v0.2.0
  • ghcr.io/superiorchuo/gopherforge/go-admin-kit-identity-service:v0.2.0
  • ghcr.io/superiorchuo/gopherforge/go-admin-kit-monitor-service:v0.2.0
  • ghcr.io/superiorchuo/gopherforge/go-admin-kit-system-service:v0.2.0

部署(compose)

cd microservices
# 写进 microservices/.env,或直接前置到命令上
export IMAGE_PREFIX=ghcr.io/superiorchuo/gopherforge/go-admin-kit
export IMAGE_TAG=v0.2.0
# 有状态服务在独立 infra 栈,先起它(数据不随应用栈重建)
docker compose -p go-admin-kit-infra -f docker-compose.infra.yml up -d
# 应用栈:拉版本化镜像后直接起,不本地构建
docker compose -f docker-compose.yml pull
docker compose -f docker-compose.yml up -d --no-build

不设 IMAGE_PREFIX / IMAGE_TAG 时,compose 仍解析为本地构建的
go-admin-kit-<服务名>:latest,行为与发版前一致。

v0.2.0-rc.2

v0.2.0-rc.2 Pre-release
Pre-release

Choose a tag to compare

@SuperiorChuo SuperiorChuo released this 25 Jul 05:06
2efa1e8

版本范围

  • 修复刷新后的注销仍使用旧 refresh token 的问题。
  • 为 Web Locks 与 IndexedDB 刷新协调增加统一 deadline、异常恢复和滚动发布兼容。
  • 增加 token pair 原子快照及旧版本页面兼容迁移。
  • 完善 monitor OpenAPI schema、可选请求体类型和 retention_days 参数约束。
  • 增加跨页面、跨版本和存储操作不结束场景的 Playwright 回归。
  • CI 增加 OpenAPI JSON 与生成 TypeScript 类型的一致性检查,并对已审查的 React Router RSC 公告保留显式临时 allowlist。

验证

  • GitHub CI 运行 30144833020:9/9 job 通过。
  • Micro Integration Smoke:网关 API smoke 与 Playwright E2E 通过。
  • monitor go test ./...go vet ./... 与 golangci-lint 通过。
  • OpenAPI contract 4/4、smoke unit 7/7、前端 lint/build 通过;lint 仅有既有 warning。

已知限制

  • react-router 当前版本仍被 npm audit 标记为 RSC 专项高危公告 GHSA-qwww-vcr4-c8h2;本项目使用 BrowserRouter,CI 仅对此单一已审查公告做临时 allowlist,任何其他生产依赖公告仍会阻断 CI。待上游安全版本发布后移除该例外。
  • 这是 v0.x Release Candidate,不是稳定生产版;上线前仍需完成密钥替换、迁移备份和回滚演练。

v0.2.0-rc.1

v0.2.0-rc.1 Pre-release
Pre-release

Choose a tag to compare

@SuperiorChuo SuperiorChuo released this 24 Jul 10:14
a552527

版本范围

  • 加固跨标签页登录态刷新与 refresh token 轮转。
  • 补齐 monitor 服务路由、OpenAPI 契约和前端生成类型。
  • 修复双 Compose 栈集成 CI,并同步中英文 README、CHANGELOG、产品线说明与 VitePress 文档。

验证

已知限制

这是 v0.x 的 Release Candidate,不是稳定生产版。认证刷新仍需继续完善 Web Locks 异常降级、严格刷新截止时间、轮转请求超时后的恢复,以及对应 E2E 断言。上线前请完成密钥替换、迁移备份和回滚演练。

v0.1.0 · 微服务脚手架首个版本

Choose a tag to compare

@SuperiorChuo SuperiorChuo released this 19 Jul 03:08

v0.1.0 · 微服务脚手架首个版本

Go Admin Kit 微服务脚手架:只含平台无关的基础设施服务,不带业务耦合,是干净的二次开发起点。

Go + Gin + PostgreSQL 16 后端,React 19 + Ant Design 6 前端,Traefik 网关统一验签,Docker Compose 一键起全栈。


✨ 内置能力

🏗️ 基础设施

  • 认证鉴权:验证码 / TOTP 两步登录、JWT Access/Refresh 轮转与吊销、OAuth(GitHub / 微信)、登录限流
  • RBAC:用户 / 角色 / 权限 / 部门 / 菜单,角色数据范围(全部 / 部门及以下 / 仅本人)
  • 多租户:共享库 + tenant_id,登录带租户码,网关头透传
  • 系统管理:字典 / 公告 / 在线用户 / 文件上传(MinIO),系统设置走数据库热配置——控制台改完即生效,密钥不进代码
  • 审计与监控:登录 / 操作 / 审计三类日志(NATS 事件持久消费),服务器 / PG / Redis / 定时任务监控,Prometheus + Grafana + 可选 OTel 链路
  • 微服务架构:auth / identity / system / audit / file / monitor + shared 按域拆分,Traefik ForwardAuth 统一验签(业务服务只信任网关注入的 X-Auth-* 头),goose 版本化迁移,OpenAPI 3.1 契约随 CI 校验漂移

⚛️ 前端

React 19 + Ant Design 6,深空暗色 / 白蓝亮色双主题,玻璃拟态视觉,全模块一套设计语言。

⚙️ 工程化

  • GitHub Actions:各服务独立 test+vet、前端 lint+build+audit、OpenAPI 契约漂移校验、迁移彩排、compose 集成冒烟(API smoke + Playwright E2E 经网关)
  • pre-commit 密钥扫描钩子
  • 运维脚本:PG 每日备份、镜像回滚
  • Docker Compose 一键启动全栈;宿主机端口默认只绑 loopback

🚀 快速开始

git clone https://github.com/SuperiorChuo/go-admin-kit.git
cd go-admin-kit/microservices
cp .env.example .env
docker compose up -d --build
  • 统一网关:http://localhost:8000
  • 默认账号:admin / admin123(生产请立即改密并替换 JWT_SECRET

🛠️ 如何扩展业务

这是干净的脚手架。加业务能力 = 在 services/ 下新建一个微服务 + 加 go.work + compose 服务块 + Traefik 路由标签,迁移落 monitor/migrations/,前端补页面/接口/菜单。底座保持通用,避免做成巨石。

详见 READMECHANGELOG