Files
iam-service/docs/APP_API.md
2026-01-31 15:44:56 +08:00

3.5 KiB
Raw Permalink Blame History

App 生命周期管理接口(平台级)

本模块用于维护“允许的 App 注册表apps并提供应用上下线审批含生效时间与审计记录能力。

权限与访问级别

本模块所有接口均为平台级接口:

  • URL 前缀:/platform
  • 认证:Authorization: Bearer <access_token>
  • 权限:平台权限(系统角色 SuperAdmin)校验

权限码:

  • iam:app:read:查询 apps 与审批单
  • iam:app:write:创建/更新 apps、提交上下线申请
  • iam:app:approve:审批上下线申请
  • iam:app:delete删除软删除app

通用响应结构

成功:

{ "code": 0, "message": "Success|Created", "data": {}, "trace_id": null }

错误(示例):

{ "code": 20003, "message": "Permission denied: iam:app:read", "details": null, "trace_id": null }

常见错误码:

  • 20000/20006未认证缺少 Authorization
  • 20003无权限缺少平台权限码
  • 30000参数错误格式/长度/取值非法)
  • 30002资源不存在app / request_id 不存在)
  • 30003资源冲突app_id 重复)

1) 新增 App

POST /platform/apps

Body

  • id应用标识符2~32[a-z0-9_-],建议小写,如 cms/tms
  • name:名称(必填,<=100
  • description:描述(可选)
  • app_type:类型(可选,默认 generic,建议小写短标识)
  • owner:负责人/团队(可选,<=100

示例:

curl -X POST "http://127.0.0.1:3000/platform/apps" \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{ "id":"dms","name":"DMS","description":"Document","app_type":"product","owner":"team-a" }'

2) 查询 App 列表(分页/筛选/排序)

GET /platform/apps

Query

  • page:默认 1
  • page_size:默认 20范围 1..=200
  • status:可选(active|disabled|deleted
  • app_type:可选
  • created_from / created_to可选RFC3339
  • sort_byid|name|status|app_type|created_at|updated_at(默认 created_at
  • sort_orderasc|desc(默认 desc

3) 查询 App 详情

GET /platform/apps/{app_id}

4) 更新 App 基础信息

PATCH /platform/apps/{app_id}

Body全部可选

  • name
  • description
  • app_type
  • owner

5) 申请 App 上下线(审批 + 生效时间)

POST /platform/apps/{app_id}/status-change-requests

Body

  • to_statusactive|disabled
  • effective_at可选RFC3339不填表示审批后立即生效
  • reason:可选

说明:

  • 新建审批单初始 status=pending
  • 审批通过后:
    • effective_at 为空或已到达,则自动应用并把审批单状态置为 applied
    • effective_at 在未来,则审批单状态为 approved,在后续列表/查询时会尝试自动应用到期变更

6) 查询审批单列表

GET /platform/app-status-change-requests

Query

  • status:可选(pending|approved|applied|rejected
  • page / page_size

7) 审批通过 / 驳回

通过:

POST /platform/app-status-change-requests/{request_id}/approve

Body

  • effective_at:可选(用于覆盖/补充生效时间)

驳回:

POST /platform/app-status-change-requests/{request_id}/reject?reason=...

8) 删除 App软删除

DELETE /platform/apps/{app_id}

说明:

  • 软删除会将 apps.status 标记为 deleted
  • 若设置环境变量 IAM_SENSITIVE_ACTION_TOKEN,必须同时提供 HeaderX-Sensitive-Token: <token>