C cenaly.com
免费开始

自定义编辑器

管理后台沙箱内置专属微编辑器:供店长或第三方开发者使用,按权限访问账户数据

2 min read 在演示中打开此界面
On this page 14

自定义编辑器

有些工作不在任何面板中,因为它只属于您:按供应商公式重新计算价格、将目录与他方核算系统核对、一次性填写批次特征的界面。“自定义编辑器” 板块让您自己编写这样的小型编辑器(或委托他人编写),并在管理后台内部运行——在沙盒中,仅访问您所授权的数据。

打开方式:管理面板 → 自定义编辑器(admin.cenaly.com/custom-editors)。该板块通过应用商店中的**“自定义编辑器 (SDK)”卡片启用——默认处于隐藏状态。页面上的“📌 添加到侧边栏”**按钮可在频繁使用时将其放入侧边菜单。


这是什么板块#

插件是一个编译好的脚本(index.js)及其描述文件(manifest.json)。面板将脚本加载到隔离框架中:它无法访问您的会话、管理后台代码或网络。它只能通过网桥与数据交互——一组允许的请求,每个请求都会根据所授予的权限进行校验。

页面由以下区块组成:

区块 内容
已安装编辑器 插件卡片:名称、“版本”、“权限”、“放置位置”、“允许的网络主机”、“已更新”、来源(仓库和标签链接)。操作:“打开”、“启用”/“停用”、检查更新、“删除”
安装编辑器 从磁盘文件安装
从 GitHub 安装 通过公开仓库地址和标签安装
🤖 使用 AI 开发(氛围编程) 项目模板、AI 代理提示词和作为测试数据的目录快照
👩‍💻 开发者访问权限 向承包商授予开发者模式的临时权限
🛠️ 开发者模式 直接从您的计算机运行插件,无需安装

打开的编辑器占据整个屏幕,页面地址会带有 ?app=<标识符> 标记——可将此链接分享给有访问权限的人。


启动所需条件#

条件 用途
应用商店中的**“自定义编辑器 (SDK)”**卡片 该板块较为小众,默认关闭
您是账户所有者 只有所有者才能安装、启用、删除插件及授予权限;员工只能查看只读列表
编译好的插件:index.js + manifest.json 可以是您自己的、来自开发者的,或公开 GitHub 仓库中的发布版本
用于开发——为开发者准备的员工账户 开发者模式通过其工作登录邮箱授予

第 1 步:决定由谁编写编辑器#

有三种途径,区别在于谁持有代码:

途径 适合谁 如何操作
按我们的模板使用 AI 代理 愿意用语言描述任务的所有者 “使用 AI 开发”区块:模板 + 提示词 → 代理构建发布版本 → 您进行安装
自己或聘请的开发者 有承包商或团队中有开发者 授予其开发者模式权限,他在真实账户上编写和调试,您安装完成的发布版本
来自 GitHub 的现成发布版本 插件已编写完成(由您或为您编写) “从 GitHub 安装”:仓库地址和标签

在所有三种情况下,安装权始终归所有者:即使拥有权限的开发者也只能在自己的开发者模式中运行其代码,而不能将其安装到账户中。


第 2 步:使用 AI 开发(氛围编程)#

**“🤖 使用 AI 开发(氛围编程)”**区块提供四项内容,以便将任务交给 AI 代理(Claude Code、Cursor 等)而无需从头解释契约:

  1. “⬇️ 下载项目模板 (zip)”——现成的插件框架:清单、入口点、契约描述(GUIDE.en.md)和代理指令。压缩包直接在浏览器中生成,无需下载任何外部内容。
  2. “📋 复制代理提示词”——英文任务文本:从模板开始,参照指南,如何验证结果。
  3. 代理工具集配置——借助它,代理可构建插件、启动沙盒的本地副本测试台、截取屏幕截图和状态快照,最后构建发布版本:用于手动安装的 zip 或 GitHub 发布版本。
  4. “⬇️ 下载目录快照(测试夹具)”——您的分类和项目以文件形式提供,以便代理在真实数据而非虚构数据上进行测试。

⚠️ 快照中会完全剔除其他插件的自定义字段:其他扩展存储在您卡片上的数据不会随夹具离开账户。


第 3 步:安装编辑器#

从文件安装。 “安装编辑器”区块:选择“捆绑包 (index.js)”和“清单 (manifest.json)” → “检查并安装”。面板首先检查清单——标识符、本地化名称、版本、最低 SDK 版本、放置位置、权限和网络主机列表——然后显示同意书:“此编辑器请求:”以及用通俗语言列出的权限。在您点击“安装”之前,不会安装任何内容。

从 GitHub 安装。 “从 GitHub 安装”区块:“仓库(URL 或 owner/repo)”字段、“标签(留空 = 最新发布版本)”字段和“检查仓库”按钮。约定很简单:manifest.json 位于仓库根目录,编译好的 dist/index.js 在标签中,标签格式为 v{版本}。清单和捆绑包直接从您的浏览器拉取。在两种情况下,安装时都会计算并记住捆绑包指纹 (sha256):如果文件之后被替换,启动将被阻止,面板会要求重新安装编辑器。


权限与放置位置#

权限(也叫作用域)由插件在清单中申请,安装时由你确认。完整列表如下,网桥不具备除此之外的任何能力:

权限 可访问内容
读取目录 分类、项目、特征以及卡片的自定义字段
创建和修改目录项目 创建和编辑项目、批量导入、自定义字段和特征定义
按门店修改价格、可售状态和停售清单 与门店菜单中的面板功能相同
读取商品库存目录 只读访问库存的品名表
在你的存储中保存自身设置 插件在你账户中的自有键(每个键最多 1 MB)
扩展的服务端部分 在我们服务器上调用插件代码——这是它访问互联网的唯一方式

列表中完全没有的内容,插件无论如何配置都拿不到:访客与客户、订单、收据、财务、员工、聊天和通话,网桥一律不提供。

放置位置(插槽)有三种:

插槽 出现位置
独立页面 “自定义编辑器”分区内的条目,全屏打开
目录页面上的按钮 目录项目旁边的工具
“库存”分区的标签页 插件以库存标签页形式呈现——我们的内置扩展“VetIS”就是这样打包的

开发者模式与承包商访问权限#

开发者模式(“🛠️ 开发者模式”区块)会从你的电脑实时挂载插件:“包 URL”字段只接受 localhost / 127.0.0.1 地址,旁边是“清单 JSON”,以及“启动 dev 会话”按钮。此时指纹不会被固定,会话持续到标签页关闭为止;“停止 dev 会话”会立即将其关闭。

开发者授权(“👩‍💻 开发者访问”区块)在编写者不是所有者时需要。为开发者创建一个普通的员工账户,然后由所有者发放授权:“开发者邮箱(其 staff 登录名)”、“允许的权限”、“有效期(天)”以及可选备注 → “授予访问权限”。随时可通过“撤销”按钮收回。

授权能做什么、不能做什么:

  • 能——仅限开发者模式,且限于你勾选的权限(默认有效期 14 天,最长 90 天);
  • 权限按交集裁剪:清单申请的与授权发放的取交集;即使清单中申请了多余权限,插件也拿不到;
  • 不能——安装、启用和删除插件:这些仍归所有者。

更新、启用与删除#

操作 方式
打开 卡片上的“打开”按钮(或带 ?app=… 的链接)
临时停用 “停用”——插件仍保持安装,但不执行,也不在其位置显示
更新 来自 GitHub 的插件——先“检查更新”,再“更新到 …”;如果版本已是最新,面板会提示“已安装最新版本”。来自文件的插件通过重新安装来更新
删除 “删除”并确认:设置和条目会被移除,已上传的发行版保留在存储中

没有自动更新是刻意的:他人代码的新版本意味着新指纹,可能还有新权限,因此更新始终是所有者的自觉操作。


内置扩展#

我们自己的部分模块也打包为相同格式——从行为上可以看出,但无需安装它们:它们随面板一同提供,在应用商店中通过卡片启用,而不是在本分区。

目前这样的模块只有一个——面向俄罗斯的 “Mercury/VetIS”:它以“库存”分区的标签页形式存在,在同一沙箱中执行,并接受相同的指纹校验。内置扩展不会出现在已安装编辑器列表中。


编辑器能做什么、不能做什么#

能 不能
在已授予权限范围内读取和修改目录 获取你的密码或利用你的会话
显示自己的界面、通知和确认请求 打开自身周围管理后台的代码或数据
打开面板原生的项目编辑器 从插件窗口直接访问互联网
在你的账户中保存自身设置 在你的卡片上看到其他插件的数据
通过服务端部分访问互联网——且仅限于清单中列出的 https 地址(不超过八个) 在文件被替换后执行:指纹不匹配会阻止启动

第三方插件会在卡片上标注警告:“沙箱中的第三方应用——它绝不会索要密码。” 如果插件索要面板登录信息、支付数据或短信验证码,那是诈骗,而不是扩展在正常工作。


限制#

  • 该板块默认关闭,面向编写代码(或委托编写代码)的人:普通所有者在这里无事可做。
  • 除查看外,所有操作仅限账户所有者。 员工只能只读访问该中心;开发者模式仅在有效授权下可用。
  • 不支持私有 GitHub 仓库——仓库必须公开,安装按标签进行。
  • 没有自动更新:插件更新始终由所有者发起。
  • 没有第三方插件商店。 现成扩展不会通过面板发布或出售——来源只能是你的文件或你的仓库。
  • 只有三个插槽(自有页面、目录按钮、仓库标签页)——插件无法嵌入面板的任意界面。
  • 网桥不提供客人、订单、财务、员工和对话数据——无法通过权限绕过,这类请求根本不存在。
  • 没有单独的“插件做了某事”日志。 权限显示在卡片上,目录修改会进入常规项目历史;如需管控,请从仅授予只读权限的插件开始。
  • 技术上限: 包最大 4 MB,清单中最多 8 个网络地址,单个存储键最大 1 MB;服务端运行最长 30 秒,单次最多 50 次外部请求。
  • 插件数据保留在你品牌的云端:cenaly.ru 上的账户,其服务端状态存放在俄罗斯境内。

故障排除#

症状 请检查
菜单中没有该板块 应用商店中是否启用了“自定义编辑器 (SDK)”卡片;是否通过“📌 添加到侧边栏”按钮将板块移出
员工看不到安装按钮 这是设计如此:安装、删除和授权仅限账户所有者
“存储中的包与已安装的指纹不匹配。启动已阻止” 插件文件在安装后被替换——请重新安装编辑器以写入新指纹
“编辑器未按时启动(10 秒内没有 connect())” 插件未建立连接:其代码有误或打包的文件不对
“无法加载编辑器包” 发布版本不可用或文件已损坏——请重新安装
通过链接 ?app=… 跳转时提示“编辑器未找到或已关闭” 插件已在卡片上删除或关闭
“无法从 GitHub 获取编辑器” 仓库为私有、根目录缺少 manifest.json、标签中缺少 dist/index.js,或标签未按 v{版本} 约定命名
“仅允许 localhost / 127.0.0.1 地址” 开发者模式有意不接受外部地址——请在本地启动构建
插件看不到所需数据 核对卡片上的“权限”;开发者的授权权限还会与授权范围取交集进一步削减
插件无法访问外部服务 沙箱没有直接网络:访问由服务端发起,且地址必须在清单中
“编辑器报告有未保存的更改。仍要关闭吗?” 插件自身报告了草稿——关闭前请先在插件内保存工作

常见问题#

需要会编程吗?#

安装现成的发布版本——不需要。获得发布版本本身——需要:由开发者或 AI 代理按照“使用 AI 开发”板块中的模板编写。该板块是代码工具,而不是“鼠标”构建器。

别人的插件能看到我的客户或营收吗?#

不能。插件在沙箱中运行,只能通过网桥获取数据,而网桥恰好只能做六件事:目录、价格和停售清单、仓库参考、自有存储、调用自有服务端以及界面元素。客人、订单、收据、财务、员工和对话数据根本不在其中。特定插件被允许什么,始终显示在其卡片的“权限”一行中。

如何将开发交给承包商,又不让他进入整个账户?#

为他创建一个员工账户,然后在“开发者访问”板块中授予权限:只勾选所需的权限并设置期限(默认 14 天,最长 90 天)。他将获得开发者模式,仅此而已;插件安装仍由你负责。授权可通过一个按钮撤销。

作者发布新版本时,插件会自动更新吗?#

不会。更新由所有者发起:“检查更新” → “更新到 …”。这样新版本不会在无人知晓的情况下出现在账户中——因为随版本一起,请求的权限也可能发生变化。

插件将自己的设置和数据存储在哪里?#

在你的账户中,位于其标识符下的独立存储中(每个键最大 1 MB),此外,如果插件使用它们,还会存储在你卡片的自定义字段中——每个插件只能看到自己的空间。cenaly.ru 上的账户,其服务端及其状态保留在俄罗斯境内。

这与 API 和 MCP 有何不同?#

开发者 API 和 自有 PBX 的 MCP 用于程序在外部工作时:自有网站、第三方账户系统、AI 代理。自定义编辑器则相反,是面板内部的界面:员工像打开普通管理页面一样打开它,无需离开工作窗口。


相关板块#

Was this article helpful?