Skip to content

Sync api_key plugin with management UI contract #2

@yzbf-lin

Description

@yzbf-lin

背景

当前 api_key 独立插件仓库与实际接入的 API Key 管理页面存在契约偏差,导致前后端能力无法完整对齐。

当前前端管理页已按插件方式实现以下能力:

  • API Key 列表分页查询
  • 按名称搜索
  • 新增 / 编辑
  • 快捷启用 / 停用
  • 复制令牌
  • 菜单 SQL 集成

但独立插件仓库当前仍存在以下问题:

  • 列表接口未补齐分页依赖,分页查询会报错
  • 缺少状态切换接口,无法支持列表快捷启停
  • 删除接口未透传 is_superuser
  • 列表结果中的 key 脱敏逻辑对分页结果处理不正确
  • 创建/编辑接口仍使用 expire_days,与前端当前使用的 expire_time 不一致
  • 插件仓库缺少用于宿主集成的菜单 SQL

目标

将独立插件仓库同步到当前 API Key 管理页面使用的实际后端契约,保证插件可独立发布,并能支撑宿主项目中的 API Key 管理功能。

拟改动

  • 修复 API Key 列表分页接口
  • 新增 PUT /api/v1/sys/api-keys/{pk}/status
  • 删除接口补齐 is_superuser 透传
  • 修复分页结果中 key 的脱敏逻辑
  • 创建/编辑参数从 expire_days 统一为 expire_time
  • 新增插件级 sql/mysql/api_key_menu.sql

影响范围

  • api/v1/sys/api_key.py
  • schema/api_key.py
  • service/api_key_service.py
  • crud/crud_api_key.py
  • sql/mysql/api_key_menu.sql

验收标准

  • 列表接口支持正常分页返回
  • 前端可通过状态接口快捷启用/停用 API Key
  • 列表中的 key 返回值已按掩码展示
  • 创建/编辑接口可直接接收 expire_time
  • 插件仓库包含 sql/mysql/api_key_menu.sql
  • python3 -m py_compile api/v1/sys/api_key.py schema/api_key.py service/api_key_service.py crud/crud_api_key.py 通过

备注

该 issue 用于承接独立插件仓库与 API Key 管理页面的能力同步。

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions