Your Name e735f74c23 test: add domain constants tests
Add tests for domain constant values:
- Status constants (active, disabled, error, etc.)
- Role constants (admin, user)
- Platform constants (anthropic, openai, gemini, etc.)
- Account type constants (oauth, apikey, bedrock, etc.)
- Redeem type constants
- PromoCode status constants
- Adjustment type constants
- Subscription type/status constants
- Model mapping verification
2026-05-29 21:04:33 +08:00
2026-04-07 19:00:51 +08:00
2026-05-29 21:04:33 +08:00
2026-04-07 19:00:51 +08:00
2026-04-18 18:43:29 +08:00

User Management System (UMS)

企业级用户管理系统,支持 RBAC 角色权限管理、多因素认证、设备信任和安全审计。

快速开始

安装 UMS CLI

# 下载对应平台的二进制文件
# Linux/macOS
curl -L -o ums https://github.com/user-management-system/ums/releases/latest/download/ums-linux-amd64
chmod +x ums

# Windows
curl -L -o ums.exe https://github.com/user-management-system/ums/releases/latest/download/ums-windows-amd64.exe

# 或使用 Go 安装
go install github.com/user-management-system/cmd/ums@latest

初始化系统

# 交互式初始化(推荐)
ums init

# 非交互式初始化
ums init \
  --admin-user admin \
  --admin-pass MySecretPassword123 \
  --admin-email admin@example.com \
  --cors-origin http://localhost:3000

初始化命令会:

  1. 生成安全的 JWT 密钥
  2. 创建配置文件 config.yaml.env
  3. 创建数据库目录并执行迁移
  4. 初始化默认角色、权限和管理员账号

启动服务

ums serve

服务启动后访问 http://localhost:8080/health 确认服务正常运行。

前端

cd frontend/admin
npm install
npm run dev

项目结构

.
├── cmd/
│   ├── ums/              # UMS CLI 入口
│   │   └── cmd/          # CLI 子命令
│   │       ├── init.go   # 初始化命令
│   │       ├── serve.go  # 服务启动命令
│   │       └── version.go # 版本命令
│   └── server/           # 后端服务入口
├── internal/            # 后端代码
│   ├── api/handler/     # HTTP 处理器
│   ├── api/middleware/  # 中间件(认证、权限、限流)
│   ├── auth/            # 认证服务JWT/SSO
│   ├── repository/      # 数据访问层
│   ├── service/         # 业务逻辑层
│   ├── server/         # 服务器核心逻辑
│   └── domain/          # 领域模型
├── frontend/admin/      # 管理后台前端
├── configs/             # 配置文件
├── docs/                # 详细文档
└── data/                # SQLite 数据库目录

核心功能

功能 说明
用户管理 注册、登录、CRUD、批量操作
RBAC 角色继承、权限细粒度控制
TOTP Google Authenticator 二次验证
设备信任 信任设备免二次验证
登录日志 完整操作审计
Webhook 事件通知user.created/deleted 等)
SSO CAS 协议支持

安全特性

安全修复 状态
LIKE 查询 SQL 注入防护 已修复
登录失败计数器原子操作 已修复
Refresh Token 黑名单 fail-closed 已修复
验证码 Replay 防护 已修复
CORS 危险配置检测 已修复
UpdateUser IDOR 授权检查 已修复
Login TOTP 设备信任门禁 已修复
游标分页排序一致性 已修复
错误信息泄露防护 已修复
OAuth context 正确传播 已修复
密码修改后 Token 失效PCE 已修复

CLI 命令

ums init          # 初始化系统(交互式或非交互式)
ums serve         # 启动服务器
ums version       # 显示版本信息

# ums serve 选项
ums serve --port 8080           # 指定端口
ums serve --config ./prod.yaml  # 指定配置文件

# ums init 选项
ums init --db-type sqlite                # 数据库类型
ums init --db-path ./data/ums.db         # 数据库路径
ums init --redis-enable                  # 启用 Redis
ums init --redis-host localhost          # Redis 地址
ums init --admin-user admin             # 管理员用户名
ums init --admin-pass MyPassword123      # 管理员密码
ums init --admin-email admin@example.com # 管理员邮箱
ums init --port 8080                    # 服务端口
ums init --cors-origin http://example.com # CORS 域名
ums init --yes                          # 跳过确认

配置文件

初始化后生成以下配置文件:

config.yaml - 主配置文件

server:
  port: 8080
  mode: release
database:
  type: sqlite
  dbname: "./data/user_management.db"
jwt:
  secret: "<自动生成的密钥>"
redis:
  enabled: false

.env - 环境变量(包含敏感信息,请勿提交)

JWT_SECRET=<自动生成的密钥>
BOOTSTRAP_SECRET=<自动生成的密钥>
DEFAULT_ADMIN_EMAIL=admin@example.com
DEFAULT_ADMIN_PASSWORD=<您设置的密码>

开发命令

# 构建 CLI
make build-cli

# 构建所有平台 CLI
make build-cli-all

# 构建服务器
go build ./cmd/server

# 后端最低验证矩阵
go vet ./...
go test ./... -count=1

# 前端最低验证矩阵(显式移除 NODE_ENV=production 干扰)
cd frontend/admin && env -u NODE_ENV npm run lint
cd frontend/admin && env -u NODE_ENV npm run build
cd frontend/admin && env -u NODE_ENV npm run test:run

部署

  • 开发部署:docs/DEPLOYMENT.md
  • 生产部署:DEPLOY_GUIDE.md
  • 运行手册:docs/guides/ 目录下的 7 个 Runbook

测试状态2026-05-29 live snapshot

测试类型 状态
Go 构建 通过
Go vet 通过
Go 测试 通过(go test ./... -count=1
前端 lint 通过
前端构建 通过
前端测试 通过82 files / 522 tests
依赖审计 通过prod/dev 均 0 漏洞)
浏览器级 E2E 通过Playwright CDP full-chain

项目状态

完整项目状态:docs/status/REAL_PROJECT_STATUS.md

2026-05-29 最新状态:

  • 后端 build / vet / full test matrix 全绿
  • 前端 lint / build / unit test 全绿
  • 前端 dev toolchain 审计收敛为 0 漏洞
  • 浏览器级真实 E2E 已闭环
  • 全部 P0/P1 review blocker 已修复
  • 当前项目评级B / 有条件就绪

边界说明: 当前可以诚实宣称的是“本地可审计的后端/前端验证与浏览器级真实 E2E 已闭环”;不应夸大为“所有生产外部集成和完整上线材料都已全部闭环”。

Description
No description provided
Readme 6 MiB
Languages
Go 71.2%
TypeScript 20%
PowerShell 3.2%
JavaScript 2.7%
Shell 1.5%
Other 1.3%