• 简体中文
  • 插件数据模型

    本页供修改后端实现或排查持久化状态时查阅。首次开发插件先读 Quickstart,无需先了解全部数据库表。

    数据分为版本声明、用户安装与权限、设备执行和消息处理四组。下表按职责列出插件记录;具体字段和状态以 service/migrations/、service/pkg/model/ 与 service/pkg/repo/plugin/ 为准。

    目录与版本

    表保存什么
    plugin插件身份与发布者;账户私有插件记录 owner。
    plugin_release不可变作者清单、能力资源、文件索引摘要、来源、信任与平台元数据;本地导入的 native_metadata_json 不含程序或 Skill 字节。
    plugin_release_capability版本声明的能力及配置;用于校验和发现,不代表用户已授予权限。
    plugin_prepared_package绑定 owner、device generation、action 和 release 的短期本地准备回执;没有包字节,安装认领前须核对期限与设备。
    plugin_package_blob静态声明摄入的摘要与元数据;本地包内容只保存在 Runner,不是服务端二进制存储。

    plugin.json.name 是稳定标识。面向用户的名称由 extensions["com.liyanlabs"].displayName 声明,随不可变的 plugin_release 作者清单保存;未声明时显示标识。安装时从包读取,不要求用户另填名称。

    安装与权限

    表保存什么
    plugin_installation账户选择的版本、设备和启用状态。
    plugin_installation_operation一次安装、更新、启用、禁用、修复或卸载;记录请求身份、状态、设备回执和启用确认回执。
    plugin_connection外部身份、命名本地配置、设备及凭据版本等非秘密信息。
    plugin_permission用户权限策略的追加式修订;可覆盖安装或单项能力。
    plugin_secret现有 schema 中的加密 secret 记录;不能作为第三方插件服务端保存 API 凭据的入口。
    plugin_oauth_attempt现有 OAuth state / PKCE 交换记录;表和路由存在不表示通用 OAuth 已接通。

    设备与智能体运行时

    表保存什么
    plugin_device_enrollment设备公钥、发布渠道、在线租约及代次。
    plugin_device_action绑定安装/release/schema/设备代次的短期动作,如原生配置或选择目录/archive;不含操作凭据。
    plugin_runtime_instance一个已配置的智能体运行时实例,例如 Codex profile;普通业务 provider 不需要此记录。
    plugin_runtime_session一次聊天与本地智能体执行的绑定,记录设备代次和本次调用检查依据。
    plugin_runtime_event运行时事件及其顺序、摘要和投影进度;保存后再确认接收。

    外部操作与消息

    表保存什么
    plugin_effect_intent发送消息等外部写操作的参数、审批依据和结果;结果不明时供对账。
    plugin_inbound_event已认证、去重的入站事件及处理状态。
    plugin_inbound_outbox事务提交后的产品事件发布任务;不承担离线 provider 执行。
    plugin_channel_route外部会话到 LiyanLabs 聊天的映射。
    plugin_channel_outbox聊天回复的外发任务及执行结果。
    plugin_webhook_endpoint公网入口绑定信息与验证材料,不含 GitHub API token。
    plugin_github_webhook_deliveryGitHub delivery 去重和在线 Runner 本地保存回执;不保存原始消息正文。
    plugin_audit_event已脱敏的安装、权限、设备和业务操作审计记录。

    权限与状态

    能力声明是作者描述;plugin_permission 才是用户策略。读取、设备访问与入站事件使用 allow / deny;本地可撤销操作使用 prompt / allow / deny;外部写操作使用 prompt / deny。字段定义见 service/pkg/core/plugin/permission/service.go。

    安装操作同时记录包回执和启用确认回执;只看到 succeeded 还应核对确认是否完成。接口会投影待确认状态,见 service/pkg/core/plugin/lifecycle/activation.go。

    飞书和 GitHub 的操作凭据保存在设备。当前 API 的 provider OAuth 交换使用 unavailable 实现,见 service/pkg/web/database_plugin_routes.go;不要把现有 secret/OAuth 表写成可用的服务端凭据方案。

    客户端模块图由当前安装、release capability、权限和设备状态投影而来,不存在独立的 UI 安装表。Web / 原生模块与 provider 属于同一插件版本;更新或撤销会使旧图失效。模块代码仍从确切 Runner 按授权读取。

    长时间等待与失败应先按排障指南查看 operation、setup 和 health,不要直接修改数据库状态或插入权限记录。

    包内图标

    原生插件包通过 extensions["com.liyanlabs"].icon 指向一个包内 PNG、JPEG 或 WebP。打包器生成 icon 文件角色、大小与 SHA-256;原生导入和服务端都验证声明、角色、文件摘要、图片格式和尺寸。图标最多 256 KiB,宽高各不超过 1024 像素。服务端只保存这张公开图片的展示元数据,返回受限的 icon_data_url,不会返回可执行文件或设备路径。没有声明时使用通用插件图标;内置插件保留目录指定的品牌图标。图标不授予任何执行或数据权限。