feat: add A-card operations frontend and backend foundation
This commit is contained in:
+38
-1
@@ -5,4 +5,41 @@
|
||||
模块合并,外部 REST 契约保持不变。
|
||||
|
||||
底层走的是 `common.storage.AsyncStorageBackend` 抽象,按
|
||||
`settings.storage_backend` 切换 s3 / local 两种实现。
|
||||
`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 完全分离,运维路由只读写 `ops_*`。
|
||||
- 当前已落地 P0 ORM,以及模型列表、模型详情、指定月份监控结果三条接口。
|
||||
- `OPERATIONS_DATA_MODE=mock` 时仍走真实鉴权、Workspace校验和API响应,
|
||||
仅将业务查询替换为后端Mock数据;切换为 `database` 后读取运维库。
|
||||
- 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>
|
||||
```
|
||||
|
||||
Reference in New Issue
Block a user