外掛註冊表

本頁內容

外掛註冊表是中央市場的去中心化繼承者。沒有單一機構擁有它或決定哪些外掛被列出,使外掛可被發現的索引——聚合器——是任何人都可以執行的。當您將站點指向註冊表時,管理儀表板會從那裡而不是從市場瀏覽和安裝外掛。

它建構在 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 和版本,以及其能力是否與同意對話框相符。

接下來閱讀