feat: bootstrap local platform development

This commit is contained in:
2026-07-28 17:01:44 +08:00
parent 5732df8886
commit e7d350ec3d
19 changed files with 3230 additions and 7 deletions

View File

@@ -46,7 +46,26 @@ docs # ADR、架构说明和迁移路线
GET /platform-admin/
```
它是功能原型壳,不是正式视觉规范。默认 mock 模式;联调时通过 `runtime-config.js` 注入同源 `/api`、平台 access token provider 和 API 模式
它是功能原型壳,不是正式视觉规范。当前默认连接同源真实 API并提供平台登录、首次改密和 TOTP MFA 流程token 只保存在当前浏览器标签的 `sessionStorage`。真实模式不会回退显示 Mock 数据,目前开放概览、租户、员工和审计这组已经落地后端契约的页面,账务、公共题库等页面随对应 API 实现逐步开放
本地首次启动先创建 `tiku` 数据库并执行迁移:
```bash
createdb -h 127.0.0.1 -U "$(whoami)" tiku
ASPNETCORE_ENVIRONMENT=Development dotnet run --project Tiku.DbMigrator
```
Development 首次迁移会通过 EF Core 官方推荐的 `UseSeeding` / `UseAsyncSeeding` 初始化平台超级管理员Migration Lock 保证并发安全,后续重复执行迁移会幂等跳过,不会重置密码或重复创建:
```text
登录地址http://localhost:5090/platform-admin/
初始账号admin@tiku.local
初始密码:由 Tiku.DbMigrator 安全随机生成,仅在首次初始化的终端输出一次
```
首次登录必须立即修改初始密码并绑定 TOTP MFA。如果丢失首次输出的临时密码应删除尚无业务数据的本地开发库后重新初始化不要把密码补写到源码、`appsettings*.json` 或 README。Production 不会自动创建默认管理员,必须使用下文的显式安全引导命令。
开发环境只隐藏 EF Core 成功 SQL 日志ORM 警告与错误仍会输出。
当前不把后端改成 MVC/Razor也不为这个静态 demo 单独维护 Node 服务。后续平台端产品化时,建议迁为独立 React/Vite/Next 工程,.NET 继续提供 API。
@@ -85,6 +104,7 @@ PostgreSQL guard 负责 EF 无法表达的跨表租户不变量:
## 文档入口
- [本地开发快速开始](docs/quickstart.md)
- [当前认证、授权与 Host 安全策略](docs/architecture/authentication-authorization-security.md)
- [认证与授权待补强清单](docs/architecture/authentication-authorization-hardening-plan.md)
- [迁移路线与剩余范围](docs/migration-roadmap.md)
@@ -117,7 +137,7 @@ dotnet ef migrations has-pending-model-changes \
--startup-project Tiku.DbMigrator
```
首次部署可在迁移完成后创建平台超级管理员:
Production 首次部署可在迁移完成后显式创建平台超级管理员:
```bash
export TIKU_BOOTSTRAP_PLATFORM_ADMIN_EMAIL='admin@example.com'