argus-cluster/specs/mvp/v2.5/v2.5_api.md

110 lines
2.0 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# MVP v2.5 API 设计User + Task + Queue
v2.5 在 v2.0 API 基础上,新增 **User Management** 与多租户隔离。
约束:
- 仍使用内部 tokenAPI key
- 不引入外部 IAM
- TaskSpec 仍为 YAML沿用现有结构化字段
---
## 1. Auth
Header
- `Authorization: Bearer <api_token>`
服务端行为:
-`api_token` 映射到 `user_id`
- 之后的 task 操作默认仅作用于该 `user_id`
Admin token可选
- 支持额外配置 `MVP_ADMIN_TOKEN`(或 user.role=admin
- admin 可跨用户查询/取消(用于运维)。
---
## 2. User Management
### 2.1 创建用户admin
`POST /api/v2/users`
RequestJSON
```json
{"user_id":"alice","display_name":"Alice"}
```
Response
```json
{"user_id":"alice","state":"ACTIVE"}
```
### 2.2 为用户签发 tokenadmin
`POST /api/v2/users/{user_id}/tokens`
Response只返回一次明文 token
```json
{"user_id":"alice","token":"mvp_u_..."}
```
### 2.3 禁用用户admin
`POST /api/v2/users/{user_id}:disable`
---
## 3. Task Management多租户
### 3.1 提交任务
`POST /api/v2/tasks`
Body
- `Content-Type: application/yaml`
- raw TaskSpec YAML训练语义字段不含 user_id
Response
```json
{"task_id":"mvp25-ppo-20251225-170001-2a3f","state":"QUEUED"}
```
服务端 side effects
- 记录 tasks.user_id由 token 得到)
- 计算输出目录:`/private/users/<uid>/jobs/<ray_submission_id>/...`
### 3.2 查询任务(仅本人)
`GET /api/v2/tasks/{task_id}`
若 task 不属于当前 user
- 返回 `404`(避免泄露存在性)
### 3.3 取消任务(仅本人)
`POST /api/v2/tasks/{task_id}:cancel`
---
## 4. Queue/Debug
### 4.1 查看队列(本人视角)
`GET /api/v2/queue`
返回该 user 的 pending/running 列表。
### 4.2 管理员查看全局队列admin
`GET /api/v2/admin/queue`
---
## 5. Logs
`GET /api/v2/tasks/{task_id}/logs?attempt=latest&tail=2000`
行为与 v2.0 一致:透传 Ray Job logs tail。