fix(doc): fix doc

This commit is contained in:
2026-01-31 13:37:15 +08:00
parent d071e1a27d
commit 6b68a368f1
10 changed files with 158 additions and 17 deletions

View File

@@ -16,6 +16,18 @@
- `apps`:租户已开通应用列表(如 `["cms","tms"]`
- `apps_version`:租户 enabled_apps 版本号(用于客户端判断是否需要刷新会话)
## OpenAPI/Scalar 可配置参数(环境变量)
为方便本地调试与演示,服务会在生成 OpenAPI 文档时,将部分 Header 参数的示例值按环境变量动态注入(影响 `/scalar` 展示,不影响服务鉴权逻辑):
- `IAM_DOCS_DEFAULT_TENANT_ID`:默认租户 ID用于 `X-Tenant-ID` Header 的 example
- 未设置时默认:`11111111-1111-1111-1111-111111111111`
- 可选强制:`IAM_DOCS_REQUIRE_TENANT_ID=1`(未设置则启动时直接失败)
- `IAM_DOCS_DEFAULT_TOKEN`:默认 Token用于 `Authorization` Header 的 example
- 可填写裸 JWT 或 `Bearer <jwt>`;裸 JWT 会自动补齐 `Bearer `
- 未设置时默认:`Bearer <access_token>`
- 可选强制:`IAM_DOCS_REQUIRE_TOKEN=1`(未设置则启动时直接失败)
## 通用响应结构
成功响应:
@@ -63,6 +75,7 @@
**POST** `/tenants/register`
- Tag`Tenant`
- Header
- Body
@@ -88,6 +101,7 @@
**POST** `/auth/register`
- Tag`Auth`
- Header`X-Tenant-ID: 00000000-0000-0000-0000-000000000001`
- Body
@@ -99,6 +113,7 @@
**POST** `/auth/register`
- Tag`Auth`
- 必需 Header`X-Tenant-ID: <tenant_id>`
- Body
@@ -116,6 +131,7 @@
**POST** `/auth/login`
- Tag`Auth`
- 必需 Header`X-Tenant-ID: <tenant_id>`
- Body
@@ -135,6 +151,7 @@
**GET** `/tenants/me`
- Tag`Tenant`
- 必需 Header`Authorization: Bearer <access_token>`
- 可选 Header`X-Tenant-ID: <tenant_id>`(如提供必须与 token tenant_id 一致)
@@ -148,6 +165,7 @@
**GET** `/me/permissions`
- Tag`Me`
- 必需 Header`Authorization: Bearer <access_token>`
成功200
@@ -169,12 +187,14 @@
**GET** `/platform/tenants/{tenant_id}/enabled-apps`
- Tag`Tenant`
- Header`Authorization: Bearer <access_token>`(平台租户下登录得到的 token
#### 4.1.2 设置某租户 enabled_apps全量覆盖幂等
**PUT** `/platform/tenants/{tenant_id}/enabled-apps`
- Tag`Tenant`
- Header`Authorization: Bearer <access_token>`
- Body
@@ -185,11 +205,18 @@
说明:
- `expected_version` 可选,用于并发控制;不匹配会返回 409。
- 登录签发 token 时会自动把 `apps/apps_version` 注入到 JWT并对 `permissions` 按 enabled_apps 过滤。
- `enabled_apps` 必须是“应用注册表 apps 表”中存在且 `status=active` 的应用 ID若传入未知/已下线应用(例如 `dms`),接口会返回 400。
enabled_apps 维护建议:
- 新增应用:通过数据库迁移向 `apps(id,name,description,status)` 插入一行(`id` 推荐全小写短标识,如 `cms` / `tms`)。
- 下线应用:将 `apps.status` 置为非 `active`(例如 `disabled`),之后将无法再被设置进任何租户的 enabled_apps。
- 查询可用应用(示例 SQL`SELECT id, name, status FROM apps ORDER BY id;`
### Step 5列出用户User
**GET** `/users?page=1&page_size=20`
- Tag`User`
- 必需 Header`Authorization: Bearer <access_token>`
- 分页规则:
- `page` 默认 1必须 >= 1
@@ -205,6 +232,7 @@
**GET** `/roles`
- Tag`Role`
- 必需 Header`Authorization: Bearer <access_token>`
成功200
@@ -221,12 +249,14 @@
**GET** `/users/{id}/roles`
- Tag`User`
- Header`Authorization: Bearer <access_token>`
#### 7.2 设置用户角色(全量覆盖,幂等;需要 user:write
**PUT** `/users/{id}/roles`
- Tag`User`
- Header`Authorization: Bearer <access_token>`
- Body