v0.12.0 PG 16→18.6 + 备份系统(pg_basebackup 全量/增量+S3 归档+保留链)+ RBAC 用户分层(content/commerce/system)

This commit is contained in:
bigcode
2026-11-04 08:27:14 +08:00
parent b16c33c08b
commit 14fd4fb0e7
5870 changed files with 11085 additions and 52 deletions
+24
View File
@@ -1,7 +1,31 @@
# 后台(Admin / CRM)与 MCP 说明
> v0.12.0 起:PG 16 → 18.6(增量备份能力)、备份系统(全量/增量/S3)、用户权限分层。
> v0.11.0 起:后台按「功能接近原版 WordPress + 现代化 CRM 界面」重做一轮,并新增站点管理 MCP 服务器。
## 用户权限分层(RBAC)
两类用户:**普通用户**(customer,仅商城账号)与**后台用户**(admin > manager > editor)。能力矩阵(`src/server/auth.ts` requireCapability):
| 能力域 | 允许角色 | 覆盖操作 |
| --- | --- | --- |
| content | admin/manager/editor | 内容保存/删除、修订恢复、媒体上传/编辑、菜单项、筛选、重定向 |
| commerce | admin/manager | 产品保存/删除、订单状态、询盘状态 |
| system | admin | 用户管理、系统设置、语言、备份、审计日志查看 |
用户页 `/admin/users/` 提供「全部 / 后台用户 / 普通用户」Tab。
## 备份系统(PostgreSQL 18 物理备份)
- PG 已升级 **16.15 → 18.6**(容器 `dusuniot-pg`,`summarize_wal=on`,命名卷 `dusuniot-pg18-data`,`--restart unless-stopped`;旧 16 容器保留为 `dusuniot-pg16-old` 可回滚)
- 全量:`pg_basebackup -Fp -Xs` → `backups/pg/full-<ts>/`
- 增量:`pg_basebackup --incremental=<最近备份>/backup_manifest`(PG 17+ 能力;实测全量 124MB → 增量 5.4MB)
- 归档:每次备份 tar.gz → `backups/artifacts/`;配置 S3 后上传(Bun.S3Client,支持 multipart 大文件)
- 保留:保留最近 N 个全量链(该全量及其后全部增量),本地与 S3 同步清理
- 恢复:`pg_combinebackup 全量 增量…` 合并 → 作为 PGDATA 启动(已在容器内实测恢复 699 内容完整)
- 定时:settings.backup.schedule 开启后,jobs worker(`bun scripts/jobs-worker.ts`)按间隔执行 `backup.run`(自动增量、无备份时全量),完成后自排下一轮
- UI:`/admin/backups`(仅 admin):立即全量/增量、本地+S3 列表、删除、S3/保留/定时配置
## 后台功能清单(/admin,React + Ant Design)
| 模块 | 路由 | 能力 |