forked from xiongyuxing/tiku-backend.net
feat: enforce tenant isolation and shared question bank
This commit is contained in:
14
README.md
14
README.md
@@ -34,7 +34,8 @@ Tiku.IntegrationTests # API / EF 模型集成测试
|
||||
- ASP.NET Authentication 负责身份认证。
|
||||
- ASP.NET Authorization 负责权限策略。
|
||||
- JWT + 数据库 `auth_sessions` 负责 access/refresh/session 闭环。
|
||||
- `ICurrentUser` / `ICurrentTenant` 统一当前用户和租户上下文。
|
||||
- `ICurrentUser` / 只读 `ITenantContext` 统一当前用户和请求租户上下文。
|
||||
- EF Core Query Filter、写入拦截器和 PostgreSQL 组合约束共同阻断跨租户读写。
|
||||
- PostgreSQL FK / unique / check / index 负责数据完整性底线。
|
||||
- 审计事件表记录关键行为。
|
||||
|
||||
@@ -64,7 +65,7 @@ Tiku.IntegrationTests # API / EF 模型集成测试
|
||||
|
||||
旧版对连接池、日志、跨域、限流、配置校验这些工程底座比较薄。新后端已经补上:
|
||||
|
||||
- 单例 `NpgsqlDataSource` + `AddDbContextPool<TikuDbContext>`。
|
||||
- 单例 `NpgsqlDataSource` + scoped `AddDbContext<TikuDbContext>`,避免租户状态跨请求复用。
|
||||
- Serilog 结构化日志和请求上下文日志。
|
||||
- 集中 CORS 配置,生产默认不放开 Origin。
|
||||
- ASP.NET RateLimiter 全局限流。
|
||||
@@ -89,18 +90,19 @@ Tiku.IntegrationTests # API / EF 模型集成测试
|
||||
数据库模型迁移已经完成到 greenfield 初始 schema:
|
||||
|
||||
```text
|
||||
Tiku.Infrastructure/Persistence/Migrations/20260725220742_InitialSchema.cs
|
||||
Tiku.Infrastructure/Persistence/Migrations/20260727084726_InitialSchema.cs
|
||||
```
|
||||
|
||||
当前 EF 模型覆盖:
|
||||
|
||||
- 租户、用户、成员、认证、Session、短信验证码
|
||||
- 地区、模块、院校、专业、科目、分类
|
||||
- 题库、题目、题目版本
|
||||
- 内容入口、内容节点、题集、练习蓝图
|
||||
- 平台公共题库、租户私有题库、题目引用和题目版本
|
||||
- 公共分类主干、租户扩展分类、内容入口、题集和练习蓝图
|
||||
- 词汇、手册、用户单词进度
|
||||
- 资源、图片、App 资源、视频解析、导入任务
|
||||
- 练习、答题、收藏、错题、报告、统计
|
||||
- 版本锁定练习、答题、收藏、错题、报告、统计
|
||||
- 自定义域名 DNS/TLS 生命周期和版本化前端运行时配置
|
||||
- 商品、订单、支付、权益、兑换码、优惠券
|
||||
- 推广、CRM、佣金
|
||||
- Banner、FAQ、公告、通知、徽章、审计
|
||||
|
||||
Reference in New Issue
Block a user