插件注册表

本页内容

插件注册表是中央市场的去中心化继承者。没有单一机构拥有它或决定哪些插件被列出,使插件可被发现的索引——聚合器——是任何人都可以运行的。当您将站点指向注册表时,管理仪表板会从那里而不是从市场浏览和安装插件。

它构建在 AT Protocol 之上,这是 Bluesky 背后的网络。

注册表 vs. 市场

市场和注册表都允许管理员从管理仪表板浏览、安装、更新和移除沙箱插件。安装体验——能力同意、校验和验证、沙箱运行器——是相同的。它们的区别在于谁控制目录以及您信任谁。

市场注册表
控制一家公司拥有和运营没有中央所有者;任何人都可以运行聚合器
发现由市场服务提供由索引网络的聚合器提供
审核运营者审查列表并可以移除标签者发出您选择接受的下架和验证标签
您信任谁市场运营者您指向的聚合器,加上您接受的任何标签者

您为给定站点配置其中一个。当设置了 experimental.registry 时,管理员的浏览和安装流程使用注册表。

启用注册表

注册表需要 sandboxRunner,因为注册表插件始终在沙箱中运行。有关运行器设置,请参阅安装插件

以下配置将站点指向参考聚合器:

import { defineConfig } from "astro/config";
import emdash from "emdash/astro";

export default defineConfig({
  integrations: [
    emdash({
      sandboxRunner: "@emdash-cms/sandbox-cloudflare",
      experimental: {
        registry: "https://registry.emdashcms.com",
      },
    }),
  ],
});

简单的 URL 字符串是简写形式。当您需要标签者或发布经过时间策略时,使用对象形式:

emdash({
  sandboxRunner: "@emdash-cms/sandbox-cloudflare",
  experimental: {
    registry: {
      aggregatorUrl: "https://registry.emdashcms.com",
      acceptLabelers: "did:plc:emdashverification",
      policy: {
        minimumReleaseAge: "48h",
        minimumReleaseAgeExclude: ["did:plc:yourfirstpartydid"],
      },
    },
  },
})

聚合器 URL 在生产环境中必须是 HTTPS(开发环境允许 http://localhost)。

配置选项

  • acceptLabelers — 转发给聚合器的标签者 DID 的逗号分隔列表。标签者应用下架和验证标签;聚合器根据您接受的标签过滤和注释结果。未设置时,聚合器应用其运营者默认集。
  • policy.minimumReleaseAge — 在选择要安装或更新的版本时,保留比此经过时间更新的发布,扩大下架到达的时间窗口,防止受损发布到达您的站点。接受持续时间字符串("24h""7d")或秒数。
  • policy.minimumReleaseAgeExclude — 免于保留的 DID,用于您明确接受其发布节奏的发布者(如您自己的第一方插件)。每个条目是裸的发布者 DID,或用于免除单个包的 <did>/<slug> 对。仅接受 DID,不接受句柄。

浏览和安装

  1. 打开管理面板,导航到 插件 > 注册表
  2. 浏览或搜索。每个结果显示发布者的已验证句柄、最新版本和任何标签。
  3. 打开插件查看其 README、截图、声明的访问权限和发布历史。
  4. 点击 安装 并查看能力同意对话框。
  5. 确认。

安装会验证下载的字节与发布校验和是否匹配,确认捆绑包的插件 ID 和版本与发布匹配,并确认其声明的能力与您批准的内容匹配。更新和卸载的工作方式与市场插件相同。

信任模型

注册表是去中心化的,因此信任是明确的。在激活插件之前,EmDash 独立验证工件字节的哈希是否与发布校验和匹配,捆绑包是否对应其声明的插件 ID 和版本,以及其能力是否与同意对话框匹配。

接下来阅读