- 新增 model_deploy 与 model_operations 双库查询,支持模型列表、模型详情、单月监控结果和运维工作台真实接口。 - 关闭运维模块生产 Mock 数据,补充缺表/空数据降级、工作台空状态和首条纵向链路测试。 - 按业务团队、模型团队、管理员权限矩阵接入菜单、页面、操作按钮和后端接口权限校验,支持 business_team 角色。 - 更新工作台布局、深色欢迎卡片、全宽页面适配、顶部回退,以及权限分组展示。 - 新增架构实现基线、周目标完成情况和角色权限矩阵初始化 SQL 文档。
48 lines
2.0 KiB
Markdown
48 lines
2.0 KiB
Markdown
# Backend
|
||
|
||
统一 FastAPI 管理服务。包含用户、Workspace、脚本、稳定版本、调度定义、
|
||
立即运行以及 S3 对象接口。原 `platform_api` 与 `storage_api` 已在此
|
||
模块合并,外部 REST 契约保持不变。
|
||
|
||
底层走的是 `common.storage.AsyncStorageBackend` 抽象,按
|
||
`settings.storage_backend` 切换 s3 / local 两种实现。
|
||
|
||
## A 卡模型运维模块
|
||
|
||
运维能力作为同一 FastAPI 进程内的独立 bounded context 接入:
|
||
|
||
- 平台库继续使用 `DATABASE_URL`,负责登录、角色和工作空间校验。
|
||
- 运维库使用 `OPERATIONS_DATABASE_URL`;未配置时自动复用平台库连接信息,
|
||
仅将库名切换为 `model_operations`。
|
||
- `PLATFORM_READ_DATABASE_URL` 与 `DEPLOY_DATABASE_URL` 使用独立只读
|
||
Session;MySQL 事务会显式执行 `SET TRANSACTION READ ONLY`。
|
||
- 三套 SQLAlchemy engine/session factory 完全分离:模型、版本和银行基础信息从
|
||
`model_deploy` 只读查询,监控结果与运维业务数据从 `model_operations` 查询或写入。
|
||
- 当前已落地 P0 ORM,以及模型列表、模型详情、指定月份监控结果三条接口。
|
||
- 运维模型接口联查 `model_deploy` 与 `model_operations`;模型方写入部署/银行/版本
|
||
信息和监控结果后,列表、模型详情、工作台及指定月份监控结果由后端统一返回。
|
||
- Redis作为可选加速层接入:缓存聚合查询并承载通知 Streams;MySQL
|
||
Outbox仍是可靠事实源,Redis不可用时主接口继续运行。
|
||
|
||
本地启动:
|
||
|
||
```bash
|
||
uv run --package backend --env-file .env uvicorn backend.main:app \
|
||
--host 0.0.0.0 --port 8010 --reload
|
||
```
|
||
|
||
运维模块探针:
|
||
|
||
```text
|
||
GET /api/v1/operations/health
|
||
```
|
||
|
||
真实业务接口均需登录 Cookie 和 `workspace_id` 查询参数:
|
||
|
||
```text
|
||
GET /api/v1/operations/models?workspace_id=<ULID>
|
||
GET /api/v1/operations/models/{model_id}?workspace_id=<ULID>
|
||
GET /api/v1/operations/models/{model_id}/monitor-results?month=YYYY-MM&workspace_id=<ULID>
|
||
GET /api/v1/operations/workbench?workspace_id=<ULID>
|
||
```
|