…
OmniPanel

Developer Docs

插件开发文档

第三方按 plugin.json 声明能力,Host 用固定壳渲染——不按插件 ID 特判。以下为站内摘要;完整字段表与协议见仓库 docs/plugins。

概述

插件以签名的 .omni-plugin 包分发。云厂商与 Nacos 等为官方市场可下载插件(download-only),不随客户端 bundled。字段枚举与 schema 单源:@omnipanel/plugin-sdk。

八种身份(kind)

  • engine — 数据库工作台
  • module — 模块工作台
  • cloud — 云工作台
  • panel — 服务器面板
  • importer — 导入向导
  • theme — 主题
  • addon — 扩展
  • knowledge — 知识源

三级开放(L1 / L2 / L3)

  • L1:只写 plugin.json。
  • L2:call + host.*。
  • L3:Overlay iframe。

脚手架与打包

仓库根目录用 create-plugin 脚手架,再 pack 成签名包:

node scripts/create-plugin.mjs <name> engine
node scripts/create-plugin.mjs <name> module
node scripts/create-plugin.mjs <name> cloud
node scripts/create-plugin.mjs <name> js-logic
cargo run -p omnipanel-plugin-pkg --bin pack -- plugins-custom/<name> <name>.omni-plugin

安装:设置 → 插件 →「安装本地插件」。与内置同 id 的包会被拒绝覆盖。

权限与安全

写操作若清单带 dangerAction,前端会走确认令牌;插件不能自签。Host 注入凭据,插件 vault 仅 plugin:{id}:* 命名空间。