feat: expand superadmin edits and minio docs
This commit is contained in:
65
docs/storage_minio_smoke_test.md
Normal file
65
docs/storage_minio_smoke_test.md
Normal file
@@ -0,0 +1,65 @@
|
||||
# MinIO Storage Smoke Test
|
||||
|
||||
This note records local MinIO setup for S3-compatible storage simulation.
|
||||
|
||||
## Docker setup (local)
|
||||
|
||||
Image sources used in this environment:
|
||||
- `docker.hub.ipao.vip/minio/minio:latest`
|
||||
- `docker.hub.ipao.vip/minio/mc:latest`
|
||||
|
||||
Start MinIO (console on 9001):
|
||||
|
||||
```bash
|
||||
sudo -n docker run -d --name quyun-minio \
|
||||
-p 9000:9000 -p 9001:9001 \
|
||||
-e MINIO_ROOT_USER=minioadmin \
|
||||
-e MINIO_ROOT_PASSWORD=minioadmin \
|
||||
docker.hub.ipao.vip/minio/minio:latest server /data --console-address ":9001"
|
||||
```
|
||||
|
||||
## Bucket init
|
||||
|
||||
```bash
|
||||
mkdir -p /tmp/quyun-mc
|
||||
sudo -n docker run --rm --network host -v /tmp/quyun-mc:/root/.mc docker.hub.ipao.vip/minio/mc:latest \
|
||||
alias set local http://127.0.0.1:9000 minioadmin minioadmin
|
||||
sudo -n docker run --rm --network host -v /tmp/quyun-mc:/root/.mc docker.hub.ipao.vip/minio/mc:latest \
|
||||
mb -p local/quyun-assets
|
||||
sudo -n docker run --rm --network host -v /tmp/quyun-mc:/root/.mc docker.hub.ipao.vip/minio/mc:latest \
|
||||
ls local
|
||||
```
|
||||
|
||||
## Config sample
|
||||
|
||||
```toml
|
||||
[Storage]
|
||||
Type = "s3"
|
||||
AccessKey = "minioadmin"
|
||||
SecretKey = "minioadmin"
|
||||
Region = "us-east-1"
|
||||
Bucket = "quyun-assets"
|
||||
Endpoint = "http://127.0.0.1:9000"
|
||||
PathStyle = true
|
||||
```
|
||||
|
||||
Use the bundled config file for local runs:
|
||||
|
||||
```bash
|
||||
ENV_LOCAL=minio make serve
|
||||
```
|
||||
|
||||
## Smoke test (optional)
|
||||
|
||||
```bash
|
||||
sudo -n docker run --rm --network host -v /tmp/quyun-mc:/root/.mc -v "$(pwd)":/work -w /work docker.hub.ipao.vip/minio/mc:latest \
|
||||
cp ./README.md local/quyun-assets/smoke/README.md
|
||||
sudo -n docker run --rm --network host -v /tmp/quyun-mc:/root/.mc docker.hub.ipao.vip/minio/mc:latest \
|
||||
ls local/quyun-assets/smoke
|
||||
```
|
||||
|
||||
## Cleanup
|
||||
|
||||
```bash
|
||||
sudo -n docker rm -f quyun-minio
|
||||
```
|
||||
@@ -30,3 +30,5 @@ PathStyle = true
|
||||
```
|
||||
|
||||
For AWS S3, set `Endpoint` with `https://` (e.g., `https://s3.amazonaws.com`) and keep `PathStyle` as `false` unless your provider requires path-style access.
|
||||
|
||||
For local MinIO setup and a smoke test, see `docs/storage_minio_smoke_test.md` (includes `ENV_LOCAL=minio`).
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
## 当前范围与约束
|
||||
- 认证仅使用 JWT(不做 OAuth/Cookie 方案)。
|
||||
- 支付集成暂不做,订单/退款仅按既有数据结构做流程与统计。
|
||||
- 存储仅使用本地 FS 模拟,真实 Provider 延后统一接入。
|
||||
- 存储需要接入本地 MinIO 进行真实 Provider 模拟,保留本地 FS 作为兜底。
|
||||
- 多租户路由强隔离(`/t/:tenantCode/v1` + TenantResolver)已启用,后续仅做细节优化。
|
||||
|
||||
## 统一原则
|
||||
@@ -63,11 +63,63 @@
|
||||
**测试方案**
|
||||
- owner 与非 owner 上传分支。
|
||||
|
||||
### 4) 超管全量可编辑(补齐写操作缺口)(已完成)
|
||||
**需求目标**
|
||||
- 超管可对系统内现有对象执行“修改/新增/删除/审核”等操作,不受租户边界限制。
|
||||
- 补齐已存在能力但缺少 `/super/v1` 写入口的模块。
|
||||
|
||||
**技术方案(后端)**
|
||||
- 租户创建完善
|
||||
- `POST /super/v1/tenants`:补齐 `expired_at`(基于 `duration`)与 `tenant_users` 管理员成员关系写入。
|
||||
- 创作者设置超管入口
|
||||
- 新增 `GET /super/v1/creators/:tenantID<int>/settings`
|
||||
- 新增 `PUT /super/v1/creators/:tenantID<int>/settings`
|
||||
- 复用 `services.Creator.GetSettings/UpdateSettings`,由超管直传 tenantID + operatorID。
|
||||
- 收款账户超管管理
|
||||
- 新增 `POST /super/v1/creators/:tenantID<int>/payout-accounts`
|
||||
- 新增 `PATCH /super/v1/payout-accounts/:id<int>`(编辑/禁用/备注)
|
||||
- 复用现有收款账户结构体与校验逻辑。
|
||||
- 用户资料超管编辑
|
||||
- 新增 `PATCH /super/v1/users/:id<int>`(允许更新昵称/头像/实名标记等基础字段)。
|
||||
|
||||
**测试方案**
|
||||
- CreateTenant 后 `expired_at` 与 `tenant_users` 均落库。
|
||||
- 超管可读取/更新创作者设置,权限校验通过。
|
||||
- 超管可新增/编辑收款账户。
|
||||
- 超管可更新用户资料,字段校验生效。
|
||||
|
||||
### 5) 通知模板支持编辑(已完成)
|
||||
**需求目标**
|
||||
- 支持模板更新、启用/停用,避免误建模板不可修正。
|
||||
|
||||
**技术方案(后端/前端)**
|
||||
- API
|
||||
- 新增 `PATCH /super/v1/notifications/templates/:id<int>`
|
||||
- (可选)新增 `DELETE /super/v1/notifications/templates/:id<int>`
|
||||
- 前端:`Notifications.vue` 增加“编辑模板”弹窗与启用开关。
|
||||
|
||||
**测试方案**
|
||||
- 编辑模板后列表与详情一致。
|
||||
- 禁用模板后不允许用于群发(或提示不可用)。
|
||||
|
||||
### 6) 本地 MinIO 模拟真实存储 Provider(已完成)
|
||||
**需求目标**
|
||||
- 本地环境可用 MinIO 模拟真实 S3 Provider,验证上传/访问链路。
|
||||
|
||||
**技术方案(后端/本地环境)**
|
||||
- Docker:拉起 MinIO(含 access/secret、bucket 初始化)。
|
||||
- `Storage` 配置支持 S3/MinIO 模式(endpoint + path style)。
|
||||
- 更新 `docs/storage_provider.md` 与新增 smoke test 文档。
|
||||
|
||||
**测试方案**
|
||||
- 上传 -> MinIO -> 读取 URL 可访问。
|
||||
- 本地 FS 与 MinIO 配置切换可用。
|
||||
|
||||
---
|
||||
|
||||
## P1(高优先)
|
||||
|
||||
### 4) ID 类型统一(int64 / model 注入)(已完成)
|
||||
### 7) ID 类型统一(int64 / model 注入)(已完成)
|
||||
**需求目标**
|
||||
- 所有业务 ID 使用 `int64`,路由参数统一 `:id<int>`。
|
||||
|
||||
@@ -79,7 +131,7 @@
|
||||
**测试方案**
|
||||
- 关键接口:正常请求 + 参数类型错误时返回明确错误。
|
||||
|
||||
### 5) 内容访问策略完善(资源权限与预览差异化)(已完成)
|
||||
### 8) 内容访问策略完善(资源权限与预览差异化)(已完成)
|
||||
**需求目标**
|
||||
- 媒体资源访问遵循:未购仅预览,已购全量,作者/管理员全量。
|
||||
- 签名 URL 或下载地址生成前进行权限校验。
|
||||
@@ -96,7 +148,7 @@
|
||||
**测试方案**
|
||||
- 未登录/未购/已购/作者/管理员的可见资源集合一致性。
|
||||
|
||||
### 6) 审计参数传递规范化(已完成)
|
||||
### 9) 审计参数传递规范化(已完成)
|
||||
**需求目标**
|
||||
- 审计服务禁止自行读取 `ctx`,改为显式传入操作者信息。
|
||||
|
||||
@@ -111,7 +163,7 @@
|
||||
|
||||
## P2(中优先)
|
||||
|
||||
### 7) 运营统计报表(曝光/转化/订单/退款)(已完成)
|
||||
### 10) 运营统计报表(曝光/转化/订单/退款)(已完成)
|
||||
**需求目标**
|
||||
- 提供租户维度与时间范围的核心指标统计与导出。
|
||||
|
||||
@@ -127,7 +179,7 @@
|
||||
**测试方案**
|
||||
- 统计口径一致性;筛选组合;导出任务可用性。
|
||||
|
||||
### 8) 超管后台治理能力(健康度/异常监控/内容审核)(已完成)
|
||||
### 11) 超管后台治理能力(健康度/异常监控/内容审核)(已完成)
|
||||
**需求目标**
|
||||
- 提供超管对租户的健康指标、异常趋势、内容合规审核。
|
||||
|
||||
@@ -142,7 +194,7 @@
|
||||
**测试方案**
|
||||
- 审核状态流转有效性;异常阈值命中结果。
|
||||
|
||||
### 9) 性能优化(避免 N+1)(已完成)
|
||||
### 12) 性能优化(避免 N+1)(已完成)
|
||||
**需求目标**
|
||||
- 列表/统计场景避免逐条查询。
|
||||
|
||||
@@ -157,17 +209,17 @@
|
||||
|
||||
## P3(延后)
|
||||
|
||||
### 10) 真实存储 Provider 接入
|
||||
### 13) 真实存储 Provider 接入(生产)
|
||||
**需求目标**
|
||||
- 接入 OSS/云存储,统一上传/访问路径策略。
|
||||
- 接入 OSS/云存储(生产环境),统一上传/访问路径策略。
|
||||
|
||||
**技术方案(后端)**
|
||||
- 通过配置注入 Provider,保留本地 FS 作为 dev fallback。
|
||||
- 通过配置注入 Provider,保留本地 FS/MinIO 作为 dev fallback。
|
||||
|
||||
**测试方案**
|
||||
- 本地 FS + 真实 Provider 两套配置可用性。
|
||||
- 本地 FS + MinIO + 真实 Provider 三套配置可用性。
|
||||
|
||||
### 11) 支付集成
|
||||
### 14) 支付集成
|
||||
**需求目标**
|
||||
- 最终阶段对接真实支付。
|
||||
|
||||
@@ -191,6 +243,9 @@
|
||||
- ID 类型已统一为 int64(仅保留 upload_id/external_id/uuid 等非数字标识)。
|
||||
- 内容资源权限与预览差异化(未购预览、已购/管理员/成员全量)。
|
||||
- 审计操作显式传入操作者信息(服务层不再依赖 ctx 读取)。
|
||||
- 超管全量可编辑(租户创建补齐、创作者设置/结算账户/用户资料写入口)。
|
||||
- 通知模板支持编辑(超管接口 + 前端编辑入口)。
|
||||
- 本地 MinIO 模拟真实存储 Provider(本地容器与文档指引)。
|
||||
- 运营统计报表(overview + CSV 导出基础版)。
|
||||
- 超管后台治理能力(健康度/异常监控/内容审核)。
|
||||
- 性能优化(避免 N+1:订单/租户列表批量聚合 + topics 聚合)。
|
||||
|
||||
Reference in New Issue
Block a user