feat(server): 试运行部署与运营基线(E13/E14/E17/E19/E20/E21)
- 增加 deploy/trialrun:Docker Compose + env 模板 + runbook + 发布/回滚 checklist - 新增 DB/文件存储备份恢复脚本(backup/restore) - 新增 system.users 运营接口:创建/启用禁用/重置密码/分配角色 + 审计 - 新增 seed:trialrun 引导管理员账号(一次性口令) - 补齐 SIGTERM/SIGINT 优雅停机(关闭 job/HTTP/DB)
这个提交包含在:
+43
@@ -43,6 +43,19 @@ npm run seed:dev
|
||||
- 以上账号可通过 `SEED_*` 环境变量覆盖(见 `server/src/scripts/seed-dev.js`)。
|
||||
- 生产/试运行环境默认采用“管理员重置密码”,不建议启用默认弱口令。
|
||||
|
||||
试运行管理员引导(E20):
|
||||
```bash
|
||||
cd /home/shunli/Projects/hyb-oa/server
|
||||
TRIALRUN_ADMIN_EMAIL="[email protected]" \
|
||||
TRIALRUN_ADMIN_PHONE="13800000000" \
|
||||
TRIALRUN_ADMIN_PASSWORD="" \
|
||||
npm run seed:trialrun
|
||||
```
|
||||
|
||||
说明:
|
||||
- `TRIALRUN_ADMIN_PASSWORD` 为空时会生成并打印一次性口令(请立刻保存)。
|
||||
- 若管理员已存在,脚本只确保其为 active 且具备 `admin+employee` 角色,不会改动密码。
|
||||
|
||||
### 2.4 启动服务
|
||||
```bash
|
||||
cd /home/shunli/Projects/hyb-oa/server
|
||||
@@ -192,6 +205,25 @@ SERVE_CLIENT_DIST=true npm run dev
|
||||
- 访问 `http://127.0.0.1:3000` 即可打开前端(同域 cookie,减少 CORS 复杂度)。
|
||||
- SPA 路由(如 `/dashboard`)会回退到 `index.html`;`/api/*` 不参与回退。
|
||||
|
||||
### 4.8 试运行部署包(Docker Compose)
|
||||
试运行/上线演练建议使用仓库内置部署包:
|
||||
- `deploy/trialrun/runbook.md`
|
||||
- `deploy/trialrun/docker-compose.yml`
|
||||
- `deploy/trialrun/.env.example`
|
||||
- `deploy/trialrun/checklist.md`
|
||||
|
||||
备份/恢复脚本(E14):
|
||||
```bash
|
||||
cd /home/shunli/Projects/hyb-oa
|
||||
./scripts/backup-db.sh
|
||||
./scripts/restore-db.sh deploy/trialrun/backups/<db.dump>
|
||||
./scripts/backup-storage.sh
|
||||
./scripts/restore-storage.sh deploy/trialrun/backups/<storage.tar.gz> deploy/trialrun/data/storage
|
||||
```
|
||||
|
||||
优雅停机(E21):
|
||||
- `docker stop` / `Ctrl+C` 会触发 `SIGTERM/SIGINT`,server 会调用 `app.close()` 完成收敛关闭(定时任务/HTTP/DB)。
|
||||
|
||||
---
|
||||
|
||||
## 5. P2 API 摘要
|
||||
@@ -237,6 +269,17 @@ npm run job:revoke-expired-delegations
|
||||
npm run job:ocr-once
|
||||
```
|
||||
|
||||
### 5.8 账号与角色管理(E17,试运行运营)
|
||||
- `GET /api/users`:员工列表(分页/搜索)
|
||||
- `POST /api/users`:创建员工(含初始密码)
|
||||
- `POST /api/users/:id/disable`:禁用员工(tokenVersion+1 + 撤销 refresh)
|
||||
- `POST /api/users/:id/enable`:启用员工(tokenVersion+1 + 撤销 refresh)
|
||||
- `POST /api/users/:id/reset-password`:重置密码(返回一次性口令,tokenVersion+1)
|
||||
- `POST /api/users/:id/roles`:设置角色(tokenVersion+1 + 撤销 refresh)
|
||||
|
||||
权限:
|
||||
- `system.users`(hr/admin;admin 具备 `*`)
|
||||
|
||||
---
|
||||
|
||||
## 6. 关键环境变量
|
||||
|
||||
在新工单中引用
屏蔽一个用户