agent-Specialization/api_doc/auth.md

97 lines
2.5 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.

# 鉴权与目录结构API v1
本项目的 API v1 使用 **Bearer Token** 鉴权,并且与网页端账号体系隔离。
---
## 1) 鉴权方式
所有需要鉴权的 API 请求都必须带 Header
```
Authorization: Bearer <TOKEN>
```
- `<TOKEN>` 是你分配给 API 调用方的明文 token
- 服务端不会保存明文 token只保存其 SHA256
---
## 2) API 用户与 token 的配置文件
文件:`data/api_users.json`
结构示例:
```json
{
"users": {
"api_demo": {
"token_sha256": "9d2f30ce92cee1301dbbdc990aed245a781c34717a1bf51a7a368b6f4ae28f50",
"created_at": "2026-01-23",
"note": "dev generated"
}
}
}
```
说明:
- `users` 的 key 是 API 用户名(仅用于区分与落盘路径)
- 调用时只需要 token用户名不会作为参数传入
> 修改 `data/api_users.json` 后通常需要重启服务以生效(取决于当前是否支持热加载)。
---
## 3) 目录结构(多工作区)
API 用户根目录(默认):`api/users/<api_user>/`
在该目录下包含:
### 3.1 用户级共享目录prompts / personalization
```
api/users/<api_user>/shared/
prompts/
<name>.txt
personalization/
personalization.json # 默认个性化(主文件)
<name>.json # 命名个性化
```
说明:
- `prompts``personalization` 是**用户级共享**:不同 workspace 共用同一份配置;
- `/api/v1/prompts``/api/v1/personalizations` 操作的就是这里的文件。
### 3.2 工作区目录(每个 workspace 独立)
```
api/users/<api_user>/workspaces/<workspace_id>/
project/ # 工具读写根目录(容器挂载目录)
user_upload/ # 上传目录API 只允许在这里上传/下载)
data/ # 对话/备份等数据落盘(工作区独立)
conversations/
conv_*.json
backups/
prompts -> ../../shared/prompts # 软链(可能不存在)
personalization -> ../../shared/personalization # 软链(可能不存在)
logs/
```
说明:
- 每个 workspace 都会启动**独立容器**(隔离执行环境);
- `project/``data/` 都是 workspace 级:对话文件不会跨 workspace 混用;
- `user_upload/` 也是 workspace 级:不同 workspace 互相不可见。
---
## 4) 并发规则
- 并发限制以 workspace 为粒度:同一 API 用户的同一 `workspace_id` 同时只允许一个任务运行。
- 不同 workspace 可以同时运行多个任务。